aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.coveragerc2
-rw-r--r--.gitignore2
-rw-r--r--.pylintrc1
-rw-r--r--INFO11
-rw-r--r--INFO.yaml84
-rw-r--r--ansible/baremetal_scale_out_ixia_correlated_test.yaml (renamed from ansible/multi_port_baremetal_ixia_correlated_test.yaml)6
-rw-r--r--ansible/baremetal_scale_out_ixia_correlated_test_templates.yml (renamed from ansible/multi_port_baremetal_ixia_correlated_test_templates.yml)36
-rw-r--r--ansible/build_vm.yml44
-rw-r--r--ansible/build_yardstick_image.yml34
-rw-r--r--ansible/clone_repos.yml13
-rw-r--r--ansible/deploy_kube.yml28
-rw-r--r--ansible/group_vars/all.yml22
-rw-r--r--ansible/group_vars/master.yml39
-rw-r--r--ansible/image_uploaders/upload_yardstick_image.yml7
-rw-r--r--ansible/infra_deploy.yml50
-rw-r--r--ansible/install-inventory.ini29
-rw-r--r--ansible/install.yaml224
-rw-r--r--ansible/install_trex_standalone.yml51
-rw-r--r--ansible/kube-inventory.ini6
-rw-r--r--ansible/library/fetch_url_and_verify.py7
-rw-r--r--ansible/load_images.yml30
-rw-r--r--ansible/multi_port_baremetal_ixia_test.yaml1
-rw-r--r--ansible/multi_port_baremetal_ixia_test_templates.yml12
-rw-r--r--ansible/multi_port_baremetal_test_templates.yml12
-rw-r--r--ansible/nsb_setup.yml26
-rw-r--r--ansible/prepare_env.yml4
-rw-r--r--ansible/prepare_openstack.yml17
-rw-r--r--ansible/roles/add_custom_repos/tasks/main.yml2
-rw-r--r--ansible/roles/add_repos_jumphost/tasks/Debian.yml80
-rw-r--r--ansible/roles/add_repos_jumphost/tasks/main.yml (renamed from ansible/install_dependencies.yml)9
-rw-r--r--ansible/roles/add_repos_jumphost/vars/main.yml17
-rw-r--r--ansible/roles/barometer_collectd/tasks/main.yaml40
-rw-r--r--ansible/roles/build_cni/defaults/main.yml16
-rw-r--r--ansible/roles/build_cni/tasks/main.yml49
-rw-r--r--ansible/roles/build_yardstick_image/tasks/cloudimg_modify_normal.yml56
-rw-r--r--ansible/roles/build_yardstick_image/tasks/cloudimg_modify_nsb.yml129
-rw-r--r--ansible/roles/build_yardstick_image/tasks/main.yml14
-rw-r--r--ansible/roles/build_yardstick_image/tasks/post_build.yml56
-rw-r--r--ansible/roles/build_yardstick_image/tasks/pre_build.yml214
-rw-r--r--ansible/roles/build_yardstick_image/vars/main.yml33
-rw-r--r--ansible/roles/configure_gui/tasks/main.yml38
-rw-r--r--ansible/roles/configure_nginx/tasks/main.yml33
-rw-r--r--ansible/roles/configure_nginx/templates/yardstick.conf.j218
-rw-r--r--ansible/roles/configure_rabbitmq/tasks/main.yml39
-rw-r--r--ansible/roles/configure_rabbitmq/templates/rabbitmq.sh.j220
-rw-r--r--ansible/roles/configure_uwsgi/tasks/main.yml53
-rw-r--r--ansible/roles/configure_uwsgi/templates/yardstick.ini.j218
-rw-r--r--ansible/roles/convert_openrc/tasks/main.yml12
-rw-r--r--ansible/roles/create_dockerfile/templates/centos/Dockerfile2
-rw-r--r--ansible/roles/create_dockerfile/templates/ubuntu/Dockerfile2
-rw-r--r--ansible/roles/create_samplevnfs_image/tasks/main.yml2
-rw-r--r--ansible/roles/create_storperf_admin_rc/tasks/main.yml9
-rw-r--r--ansible/roles/create_storperf_admin_rc/templates/storperf_admin-rc.j24
-rw-r--r--ansible/roles/docker/tasks/Debian.yml26
-rw-r--r--ansible/roles/docker/tasks/main.yml6
-rw-r--r--ansible/roles/docker/templates/daemon.json.j21
-rw-r--r--ansible/roles/docker/vars/main.yml2
-rw-r--r--ansible/roles/download_civetweb/defaults/main.yml4
-rw-r--r--ansible/roles/download_civetweb/tasks/main.yml4
-rw-r--r--ansible/roles/download_collectd/defaults/main.yml2
-rw-r--r--ansible/roles/download_dpdk/defaults/main.yml23
-rw-r--r--ansible/roles/download_dpdk/tasks/main.yml20
-rw-r--r--ansible/roles/download_drivers/defaults/main.yml22
-rw-r--r--ansible/roles/download_drivers/tasks/i40evf.yml40
-rw-r--r--ansible/roles/download_drivers/tasks/main.yml15
-rw-r--r--ansible/roles/download_l2fwd/defaults/main.yml4
-rw-r--r--ansible/roles/download_l2fwd/tasks/main.yml32
-rw-r--r--ansible/roles/download_pktgen/defaults/main.yml8
-rw-r--r--ansible/roles/download_pktgen/tasks/main.yml42
-rw-r--r--ansible/roles/download_samplevnfs/defaults/main.yml15
-rw-r--r--ansible/roles/download_samplevnfs/tasks/main.yml4
-rw-r--r--ansible/roles/download_trex/defaults/main.yml3
-rw-r--r--ansible/roles/download_trex/tasks/main.yml9
-rw-r--r--ansible/roles/enable_cpu_isolation_on_boot/defaults/main.yml21
-rw-r--r--ansible/roles/enable_cpu_isolation_on_boot/tasks/main.yml59
-rwxr-xr-xansible/roles/enable_hugepages_on_boot/tasks/main.yml34
-rw-r--r--ansible/roles/enable_iommu_on_boot/tasks/main.yml79
-rw-r--r--ansible/roles/enable_iommu_on_boot/tasks/manual_modify_grub.yml32
-rw-r--r--ansible/roles/enable_iommu_on_boot/vars/main.yml19
-rw-r--r--ansible/roles/infra_check_requirements/tasks/main.yml80
-rw-r--r--ansible/roles/infra_check_requirements/vars/main.yml17
-rw-r--r--ansible/roles/infra_create_network/tasks/create_xml.yml91
-rw-r--r--ansible/roles/infra_create_network/tasks/main.yml22
-rw-r--r--ansible/roles/infra_create_vms/tasks/configure_vm.yml354
-rw-r--r--ansible/roles/infra_create_vms/tasks/create_interfaces.yml84
-rw-r--r--ansible/roles/infra_create_vms/tasks/main.yml45
-rw-r--r--ansible/roles/infra_create_vms/tasks/validate_vms.yml54
-rw-r--r--ansible/roles/infra_deploy_openstack/tasks/configure_kolla.yml40
-rw-r--r--ansible/roles/infra_deploy_openstack/tasks/configure_openstack.yml67
-rw-r--r--ansible/roles/infra_deploy_openstack/tasks/install_kolla.yml54
-rw-r--r--ansible/roles/infra_deploy_openstack/tasks/main.yml125
-rw-r--r--ansible/roles/infra_deploy_openstack/tasks/rampup_openstack.yml43
-rw-r--r--ansible/roles/infra_deploy_openstack/templates/multinode.j239
-rw-r--r--ansible/roles/infra_deploy_openstack/vars/main.yml18
-rw-r--r--ansible/roles/infra_destroy_previous_configuration/tasks/delete_network.yml53
-rw-r--r--ansible/roles/infra_destroy_previous_configuration/tasks/delete_vm.yml29
-rw-r--r--ansible/roles/infra_destroy_previous_configuration/tasks/main.yml64
-rw-r--r--ansible/roles/infra_install_dependencies/tasks/Debian.yml34
-rw-r--r--ansible/roles/infra_install_dependencies/tasks/main.yml15
-rw-r--r--ansible/roles/infra_prepare_vms/tasks/main.yml102
-rw-r--r--ansible/roles/infra_rampup_stack_nodes/tasks/configure_docker.yml48
-rw-r--r--ansible/roles/infra_rampup_stack_nodes/tasks/install_packets.yml85
-rw-r--r--ansible/roles/infra_rampup_stack_nodes/tasks/main.yml39
-rw-r--r--ansible/roles/infra_rampup_stack_nodes/tasks/update_conf_files.yml69
-rw-r--r--ansible/roles/infra_rampup_stack_nodes/tasks/update_keys.yml48
-rw-r--r--ansible/roles/infra_rampup_stack_nodes/vars/main.yml16
-rw-r--r--ansible/roles/init_kubeadm/defaults/main.yml27
-rw-r--r--ansible/roles/init_kubeadm/tasks/kubeadm.yml50
-rw-r--r--ansible/roles/init_kubeadm/tasks/kubectl.yml26
-rw-r--r--ansible/roles/init_kubeadm/tasks/main.yml70
-rw-r--r--ansible/roles/init_kubeadm/templates/10-multus-cni.conf.j21
-rw-r--r--ansible/roles/init_kubeadm/templates/cmk-init-pod.yaml.j232
-rw-r--r--ansible/roles/init_kubeadm/templates/crd-network.yaml.j226
-rw-r--r--ansible/roles/init_kubeadm/templates/kube-flannel.yaml.j2158
-rw-r--r--ansible/roles/init_kubeadm/templates/net-flannel.yaml.j224
-rw-r--r--ansible/roles/init_kubeadm/templates/roles.yaml.j229
-rw-r--r--ansible/roles/install_civetweb/defaults/main.yml6
-rwxr-xr-xansible/roles/install_dependencies_jumphost/tasks/Debian.yml106
-rw-r--r--ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml (renamed from ansible/roles/install_dependencies/tasks/RedHat.yml)13
-rw-r--r--[-rwxr-xr-x]ansible/roles/install_dependencies_jumphost/tasks/Suse.yml (renamed from ansible/roles/install_dependencies/tasks/Debian.yml)47
-rw-r--r--ansible/roles/install_dependencies_jumphost/tasks/main.yml (renamed from ansible/roles/install_dependencies/tasks/main.yml)0
-rw-r--r--ansible/roles/install_dependencies_kubernetes/tasks/main.yml19
-rwxr-xr-xansible/roles/install_dpdk/tasks/Debian.yml1
-rw-r--r--ansible/roles/install_dpdk/tasks/main.yml23
-rw-r--r--ansible/roles/install_dpdk/vars/main.yml11
-rwxr-xr-xansible/roles/install_dpdk_shared/tasks/Debian.yml1
-rw-r--r--ansible/roles/install_dpdk_shared/tasks/main.yml16
-rw-r--r--ansible/roles/install_dpdk_shared/vars/main.yml9
-rwxr-xr-xansible/roles/install_drivers/tasks/Debian.yml16
-rw-r--r--ansible/roles/install_drivers/tasks/RedHat.yml16
-rw-r--r--ansible/roles/install_drivers/tasks/i40evf.yml31
-rw-r--r--ansible/roles/install_drivers/tasks/main.yml28
-rw-r--r--ansible/roles/install_go/defaults/main.yml18
-rw-r--r--ansible/roles/install_go/tasks/main.yml40
-rw-r--r--ansible/roles/install_image_dependencies/defaults/main.yml4
-rw-r--r--ansible/roles/install_image_dependencies/tasks/main.yml2
-rw-r--r--ansible/roles/install_kube/defaults/main.yml16
-rw-r--r--ansible/roles/install_kube/tasks/main.yml30
-rw-r--r--ansible/roles/install_pktgen/tasks/main.yml25
-rw-r--r--ansible/roles/install_samplevnf/tasks/main.yml32
-rw-r--r--ansible/roles/install_samplevnf/vars/main.yml4
-rw-r--r--ansible/roles/install_trex/defaults/main.yml2
-rw-r--r--ansible/roles/install_trex/tasks/main.yml3
-rw-r--r--ansible/roles/install_yardstick/tasks/main.yml67
-rw-r--r--ansible/roles/set_package_installer_proxy/templates/apt_conf.j23
-rw-r--r--ansible/standalone_ovs_scale_out_ixia_correlated_test.yaml3
-rw-r--r--ansible/standalone_ovs_scale_out_ixia_test.yaml1
-rw-r--r--ansible/standalone_sriov_scale_out_ixia_correlated_test.yaml3
-rw-r--r--ansible/standalone_sriov_scale_out_ixia_test.yaml1
-rw-r--r--ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml19
-rw-r--r--ansible/ubuntu_server_cloudimg_modify.yml1
-rw-r--r--ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml17
-rw-r--r--ansible/yardstick-install-inventory.ini20
-rw-r--r--ansible/yardstick_config.yml1
-rw-r--r--api/database/v2/models.py1
-rw-r--r--api/resources/v1/env.py26
-rw-r--r--api/resources/v1/testsuites.py3
-rw-r--r--api/resources/v2/environments.py35
-rw-r--r--api/resources/v2/images.py69
-rw-r--r--api/resources/v2/openrcs.py11
-rw-r--r--api/resources/v2/tasks.py24
-rw-r--r--api/server.py4
-rw-r--r--api/urls.py1
-rw-r--r--api/utils/influx.py41
-rw-r--r--dashboard/NSB-vEPC-Network-Metrics-1540991445293.json1354
-rw-r--r--dashboard/Prox_BM_IRQ-1543341374112.json24069
-rw-r--r--dashboard/Prox_BM_L2FWD-4Port_MultiSize-1518452496550.json5841
-rw-r--r--dashboard/Prox_BM_L3FWD-2Port-1507803870940.json1003
-rw-r--r--dashboard/Prox_BM_L3FWD-2Port-1544192619129.json12132
-rw-r--r--dashboard/Prox_BM_L3FWD-4Port-1507803878020.json1151
-rw-r--r--dashboard/Prox_BM_L3FWD-4Port-1544192654086.json13098
-rw-r--r--dashboard/Prox_BM_vPE-4Port-1507804058631.json1163
-rw-r--r--dashboard/Prox_BM_vpe-4Port-1529345833067.json10152
-rw-r--r--dashboard/Prox_Baremetal_L3FWD-4Port_NFVi-1540906828739.json13889
-rw-r--r--dashboard/RFC2544_2Port.json639
-rw-r--r--dashboard/RFC2544_2Port_Multiframesize.json908
-rw-r--r--dashboard/VPP_BM_HW_aesgcm.json2419
-rw-r--r--dashboard/VPP_BM_SW_aesgcm.json2419
-rw-r--r--dashboard/Vims_Baremetal.json8895
-rw-r--r--dashboard/Vims_Heat.json8905
-rw-r--r--dashboard/opnfv_yardstick_tc006.json8
-rw-r--r--dashboard/opnfv_yardstick_tc015.json355
-rw-r--r--dashboard/opnfv_yardstick_tc019.json8
-rw-r--r--dashboard/opnfv_yardstick_tc045.json8
-rw-r--r--dashboard/opnfv_yardstick_tc046.json8
-rw-r--r--dashboard/opnfv_yardstick_tc047.json8
-rw-r--r--dashboard/opnfv_yardstick_tc048.json8
-rw-r--r--dashboard/opnfv_yardstick_tc051.json6
-rw-r--r--dashboard/opnfv_yardstick_tc052.json6
-rw-r--r--dashboard/opnfv_yardstick_tc056.json301
-rw-r--r--dashboard/opnfv_yardstick_tc058.json265
-rw-r--r--dashboard/opnfv_yardstick_tc082.json10
-rw-r--r--dashboard/vCMTS_DownstreamProcessingPerSG.json23834
-rw-r--r--dashboard/vCMTS_DownstreamThroughput.json14241
-rw-r--r--dashboard/vCMTS_DownstreamTimeSeries.json7542
-rw-r--r--dashboard/vCMTS_PlatformMetrics.json52402
-rw-r--r--dashboard/vCMTS_PowerConsumption.json5295
-rw-r--r--dashboard/vCMTS_SystemSummary.json5626
-rw-r--r--dashboard/vCMTS_UpstreamProcessingPerSG.json9378
-rw-r--r--dashboard/vCMTS_UpstreamThroughput.json12341
-rw-r--r--dashboard/vCMTS_UpstreamTimeSeries.json7541
-rw-r--r--docker/Dockerfile31
-rw-r--r--docker/Dockerfile.aarch64.patch50
-rw-r--r--docker/Dockerfile_ubuntu1862
-rw-r--r--docker/k8s/Dockerfile39
-rwxr-xr-xdocker/supervisor.sh7
-rw-r--r--docs/conf.py1
-rw-r--r--docs/conf.yaml3
-rw-r--r--docs/index.rst17
-rw-r--r--docs/release/release-notes/release-notes.rst435
-rw-r--r--docs/release/results/euphrates_fraser_comparison.rst610
-rw-r--r--docs/release/results/images/tc002_pod.pngbin0 -> 39106 bytes
-rw-r--r--docs/release/results/images/tc002_pod_fraser.pngbin0 -> 22935 bytes
-rw-r--r--docs/release/results/images/tc002_scenario.pngbin0 -> 44920 bytes
-rw-r--r--docs/release/results/images/tc002_scenario_fraser.pngbin0 -> 25892 bytes
-rw-r--r--docs/release/results/images/tc010_pod.pngbin0 -> 44349 bytes
-rw-r--r--docs/release/results/images/tc010_pod_fraser.pngbin0 -> 37525 bytes
-rw-r--r--docs/release/results/images/tc010_scenario.pngbin0 -> 51251 bytes
-rw-r--r--docs/release/results/images/tc010_scenario_fraser.pngbin0 -> 45190 bytes
-rw-r--r--docs/release/results/images/tc011_pod.pngbin0 -> 43308 bytes
-rw-r--r--docs/release/results/images/tc011_pod_fraser.pngbin0 -> 25593 bytes
-rw-r--r--docs/release/results/images/tc011_scenario.pngbin0 -> 43647 bytes
-rw-r--r--docs/release/results/images/tc011_scenario_fraser.pngbin0 -> 28152 bytes
-rw-r--r--docs/release/results/images/tc012_pod.pngbin0 -> 47996 bytes
-rw-r--r--docs/release/results/images/tc012_pod_fraser.pngbin0 -> 36168 bytes
-rw-r--r--docs/release/results/images/tc012_scenario.pngbin0 -> 51405 bytes
-rw-r--r--docs/release/results/images/tc012_scenario_fraser.pngbin0 -> 41289 bytes
-rw-r--r--docs/release/results/images/tc014_pod.pngbin0 -> 36462 bytes
-rw-r--r--docs/release/results/images/tc014_pod_fraser.pngbin0 -> 29513 bytes
-rw-r--r--docs/release/results/images/tc014_scenario.pngbin0 -> 42056 bytes
-rw-r--r--docs/release/results/images/tc014_scenario_fraser.pngbin0 -> 36018 bytes
-rw-r--r--docs/release/results/images/tc069_pod.pngbin0 -> 41823 bytes
-rw-r--r--docs/release/results/images/tc069_pod_fraser.pngbin0 -> 36041 bytes
-rw-r--r--docs/release/results/images/tc069_scenario.pngbin0 -> 46728 bytes
-rw-r--r--docs/release/results/images/tc069_scenario_fraser.pngbin0 -> 43834 bytes
-rw-r--r--docs/release/results/images/tc082_pod.pngbin0 -> 28096 bytes
-rw-r--r--docs/release/results/images/tc082_pod_fraser.pngbin0 -> 25078 bytes
-rw-r--r--docs/release/results/images/tc082_scenario.pngbin0 -> 16082 bytes
-rw-r--r--docs/release/results/images/tc083_pod.pngbin0 -> 29533 bytes
-rw-r--r--docs/release/results/images/tc083_pod_fraser.pngbin0 -> 25476 bytes
-rw-r--r--docs/release/results/images/tc083_scenario.pngbin0 -> 16481 bytes
-rw-r--r--docs/release/results/index.rst6
-rw-r--r--docs/release/results/os-nosdn-kvm-ha.rst270
-rw-r--r--docs/release/results/os-nosdn-nofeature-ha.rst492
-rw-r--r--docs/release/results/os-nosdn-nofeature-noha.rst259
-rw-r--r--docs/release/results/os-odl_l2-bgpvpn-ha.rst53
-rw-r--r--docs/release/results/os-odl_l2-nofeature-ha.rst743
-rw-r--r--docs/release/results/os-odl_l2-sfc-ha.rst231
-rw-r--r--docs/release/results/os-onos-nofeature-ha.rst257
-rw-r--r--docs/release/results/os-onos-sfc-ha.rst517
-rw-r--r--docs/release/results/overview.rst85
-rw-r--r--docs/release/results/results.rst51
-rw-r--r--docs/release/results/tc002-network-latency.rst525
-rw-r--r--docs/release/results/tc010-memory-read-latency.rst510
-rw-r--r--docs/release/results/tc011-packet-delay-variation.rst432
-rw-r--r--docs/release/results/tc012-memory-read-write-bandwidth.rst513
-rw-r--r--docs/release/results/tc014-cpu-processing-speed.rst512
-rw-r--r--docs/release/results/tc069-memory-write-bandwidth.rst516
-rw-r--r--docs/release/results/tc082-context-switches-under-load.rst187
-rw-r--r--docs/release/results/tc083-network-throughput-between-vm.rst187
-rw-r--r--docs/release/results/yardstick-opnfv-vtc.rst248
-rw-r--r--docs/requirements.txt5
-rw-r--r--docs/templates/test_results_template.rst23
-rwxr-xr-xdocs/testing/developer/devguide/devguide.rst399
-rwxr-xr-xdocs/testing/developer/devguide/devguide_nsb_prox.rst1480
-rw-r--r--docs/testing/developer/devguide/images/PROX_BNG_QOS.pngbin0 -> 134443 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Baremetal_config.pngbin0 -> 89189 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Gen_2port_cfg.pngbin0 -> 83907 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Gen_GUI.pngbin0 -> 236854 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Grafana_1.pngbin0 -> 76923 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Grafana_2.pngbin0 -> 76976 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Grafana_3.pngbin0 -> 76762 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Grafana_4.pngbin0 -> 20013 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Grafana_5.pngbin0 -> 66525 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Grafana_6.pngbin0 -> 88051 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Handle_2port_cfg.pngbin0 -> 105591 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Hardware_Arch.pngbin0 -> 322529 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Openstack_stack_list.pngbin0 -> 11178 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Openstack_stack_show_a.pngbin0 -> 189101 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Openstack_stack_show_b.pngbin0 -> 143152 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_SUT_GUI.pngbin0 -> 150147 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Software_Arch.pngbin0 -> 38458 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Test_BM_Script.pngbin0 -> 94927 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Test_HEAT_Script1.pngbin0 -> 87627 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Test_HEAT_Script2.pngbin0 -> 85248 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Test_ovs_dpdk_Script_1.pngbin0 -> 60578 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Test_ovs_dpdk_Script_2.pngbin0 -> 92664 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Traffic_profile.pngbin0 -> 95758 bytes
-rw-r--r--docs/testing/developer/devguide/images/PROX_Yardstick_config.pngbin0 -> 86567 bytes
-rw-r--r--docs/testing/developer/devguide/images/vPE_Diagram.pngbin0 -> 82640 bytes
-rw-r--r--docs/testing/developer/devguide/index.rst2
-rwxr-xr-xdocs/testing/user/userguide/01-introduction.rst56
-rw-r--r--docs/testing/user/userguide/02-methodology.rst27
-rwxr-xr-xdocs/testing/user/userguide/03-architecture.rst87
-rw-r--r--docs/testing/user/userguide/04-installation.rst482
-rw-r--r--docs/testing/user/userguide/05-operation.rst296
-rw-r--r--docs/testing/user/userguide/06-yardstick-plugin.rst (renamed from docs/testing/user/userguide/05-yardstick_plugin.rst)91
-rw-r--r--docs/testing/user/userguide/07-result-store-InfluxDB.rst (renamed from docs/testing/user/userguide/06-result-store-InfluxDB.rst)45
-rw-r--r--docs/testing/user/userguide/08-grafana.rst (renamed from docs/testing/user/userguide/07-grafana.rst)32
-rw-r--r--docs/testing/user/userguide/09-api.rst (renamed from docs/testing/user/userguide/08-api.rst)304
-rw-r--r--docs/testing/user/userguide/09-yardstick_user_interface.rst29
-rw-r--r--docs/testing/user/userguide/10-vtc-overview.rst128
-rw-r--r--docs/testing/user/userguide/10-yardstick-user-interface.rst64
-rw-r--r--docs/testing/user/userguide/11-nsb-overview.rst203
-rw-r--r--docs/testing/user/userguide/12-nsb-overview.rst258
-rw-r--r--docs/testing/user/userguide/12-nsb_installation.rst889
-rw-r--r--docs/testing/user/userguide/13-nsb-installation.rst1542
-rw-r--r--docs/testing/user/userguide/13-nsb_operation.rst270
-rw-r--r--docs/testing/user/userguide/14-nsb-operation.rst706
-rw-r--r--docs/testing/user/userguide/15-list-of-tcs.rst271
-rw-r--r--docs/testing/user/userguide/code/multi-devstack-compute-local.conf53
-rw-r--r--docs/testing/user/userguide/code/multi-devstack-controller-local.conf64
-rw-r--r--docs/testing/user/userguide/code/pod_ixia.yaml31
-rw-r--r--docs/testing/user/userguide/code/single-devstack-local.conf62
-rw-r--r--docs/testing/user/userguide/code/single-yardstick-pod.conf22
-rw-r--r--docs/testing/user/userguide/comp-intro.rst4
-rw-r--r--docs/testing/user/userguide/glossary.rst136
-rw-r--r--docs/testing/user/userguide/index.rst19
-rwxr-xr-x[-rw-r--r--]docs/testing/user/userguide/nsb/nsb-list-of-tcs.rst13
-rw-r--r--docs/testing/user/userguide/nsb/tc_bng_pppoe_rfc2544_ixia.rst177
-rw-r--r--docs/testing/user/userguide/nsb/tc_bng_pppoe_rfc2544_ixia_8ports_1port_congested.rst179
-rw-r--r--docs/testing/user/userguide/nsb/tc_epc_dedicated_bearer_landslide.rst156
-rw-r--r--docs/testing/user/userguide/nsb/tc_epc_default_bearer_landslide.rst149
-rw-r--r--docs/testing/user/userguide/nsb/tc_epc_network_service_request_landslide.rst159
-rw-r--r--docs/testing/user/userguide/nsb/tc_epc_saegw_tput_relocation_landslide.rst167
-rw-r--r--docs/testing/user/userguide/nsb/tc_epc_ue_service_request_landslide.rst174
-rwxr-xr-xdocs/testing/user/userguide/nsb/tc_pktgen_k8s_vcmts.rst102
-rw-r--r--docs/testing/user/userguide/nsb/tc_prox_context_vpe_port.rst6
-rw-r--r--docs/testing/user/userguide/nsb/tc_vfw_rfc2544.rst189
-rw-r--r--docs/testing/user/userguide/nsb/tc_vfw_rfc2544_correlated.rst130
-rw-r--r--docs/testing/user/userguide/nsb/tc_vfw_rfc3511.rst133
-rw-r--r--docs/testing/user/userguide/nsb/tc_vims_context_sipp.rst96
-rw-r--r--docs/testing/user/userguide/nsb/tc_vpp_baremetal_crypto_ipsec.rst113
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc010.rst3
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc011.rst6
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc012.rst1
-rwxr-xr-xdocs/testing/user/userguide/opnfv_yardstick_tc015.rst141
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc019.rst29
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc025.rst11
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc027.rst2
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc040.rst2
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc042.rst4
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc045.rst11
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc046.rst11
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc047.rst11
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc048.rst11
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc049.rst11
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc050.rst63
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc052.rst19
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc053.rst5
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc055.rst4
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc056.rst9
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc057.rst39
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc058.rst16
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc063.rst1
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc069.rst6
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc073.rst2
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc074.rst93
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc081.rst8
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc084.rst141
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc087.rst191
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc088.rst129
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc089.rst129
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc090.rst151
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc091.rst138
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc092.rst201
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc093.rst189
-rw-r--r--docs/testing/user/userguide/references.rst23
-rw-r--r--etc/infra/infra_deploy_multi.yaml.sample97
-rw-r--r--etc/infra/infra_deploy_one.yaml.sample46
-rw-r--r--etc/infra/infra_deploy_two.yaml.sample63
-rw-r--r--etc/yardstick/nodes/apex_baremetal/pod.yaml46
-rw-r--r--etc/yardstick/nodes/apex_virtual/pod.yaml40
-rw-r--r--etc/yardstick/nodes/fuel_baremetal/pod.yaml33
-rw-r--r--etc/yardstick/nodes/pod.yaml.nsb.sample.ixia1
-rw-r--r--etc/yardstick/nodes/pod.yaml.vpp.sample84
-rw-r--r--etc/yardstick/nodes/standalone/baremetal_trex.yaml4
-rw-r--r--etc/yardstick/nodes/standalone/ixia_correlated_template.yaml7
-rw-r--r--etc/yardstick/nodes/standalone/ixia_template.yaml3
-rw-r--r--etc/yardstick/nodes/standalone/pod_bm_vnf.yaml4
-rw-r--r--etc/yardstick/nodes/standalone/pod_bm_vnf_scale_out.yaml37
-rw-r--r--etc/yardstick/nodes/standalone/pod_landslide.yaml130
-rw-r--r--etc/yardstick/nodes/standalone/pod_landslide_network_dedicated.yaml163
-rw-r--r--etc/yardstick/nodes/standalone/pod_vepc_sut.yaml37
-rw-r--r--etc/yardstick/nodes/standalone/sipp_baremetal_pod.yaml52
-rw-r--r--etc/yardstick/nodes/standalone/sipp_pod.yaml30
-rw-r--r--etc/yardstick/nodes/standalone/trex_bm.yaml.sample7
-rw-r--r--etc/yardstick/yardstick.conf.sample2
-rw-r--r--gui/app/index.html1
-rw-r--r--gui/app/scripts/controllers/container.controller.js5
-rw-r--r--gui/app/scripts/controllers/content.controller.js7
-rw-r--r--gui/app/scripts/controllers/main.js4
-rw-r--r--gui/app/scripts/controllers/projectDetail.controller.js34
-rw-r--r--gui/app/scripts/controllers/sut.controller.js58
-rw-r--r--gui/app/scripts/controllers/taskModify.controller.js63
-rw-r--r--gui/app/scripts/factory/main.factory.js15
-rw-r--r--gui/app/scripts/router.config.js9
-rw-r--r--gui/app/views/container.html2
-rw-r--r--gui/app/views/layout/sideNav.html5
-rw-r--r--gui/app/views/modal/taskCreate.html19
-rw-r--r--gui/app/views/sut.html33
-rw-r--r--gui/app/views/taskmodify.html23
-rw-r--r--gui/bower.json2
-rwxr-xr-xgui/gui.sh3
-rw-r--r--gui/package.json3
-rwxr-xr-xinstall.sh12
-rwxr-xr-xnsb_setup.sh93
-rw-r--r--requirements.txt141
-rw-r--r--samples/MoongenL2fwd.yaml96
-rw-r--r--samples/MoongenTestPMD.yaml106
-rw-r--r--samples/dummy-no-context.yaml2
-rw-r--r--samples/dummy.yaml1
-rwxr-xr-xsamples/energy.yaml53
-rw-r--r--samples/fio.yaml30
-rw-r--r--samples/lmbench.yaml33
-rw-r--r--samples/netperf_soak.yaml71
-rw-r--r--samples/parser.yaml1
-rw-r--r--samples/ping-mixed-network.yaml65
-rw-r--r--samples/ping-one-exising-network.yaml50
-rw-r--r--samples/ping-security-group.yaml74
-rw-r--r--samples/ping-two-exising-network.yaml58
-rw-r--r--samples/ping_bottlenecks.yaml38
-rw-r--r--samples/storage_bottlenecks.yaml85
-rw-r--r--samples/storperf.yaml1
-rw-r--r--samples/test_suite.yaml3
-rw-r--r--samples/vnf_samples/nsut/2trex/tc_trex_baremetal_context.yaml14
-rw-r--r--samples/vnf_samples/nsut/2trex/trex_tg_topology.yaml18
-rw-r--r--samples/vnf_samples/nsut/acl/acl_1rule.yaml60
-rw-r--r--samples/vnf_samples/nsut/acl/acl_rules.yaml47
-rw-r--r--samples/vnf_samples/nsut/acl/acl_rules.yaml.sample47
-rw-r--r--samples/vnf_samples/nsut/acl/acl_worstcaserules.yaml64
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_ixia_template.yaml9
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_template.yaml8
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_template.yaml10
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_scale_out_template.yaml60
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml12
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml)13
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_packetsize.yaml (renamed from samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml)12
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.yaml)12
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic.yaml (renamed from samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml)14
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml (renamed from samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml)12
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_trex.yaml)12
-rw-r--r--samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_trex.yaml)12
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_bottlenecks_scale_out.yaml123
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml)13
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_10.yaml (renamed from samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_10.yaml)16
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_2.yaml (renamed from samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_2.yaml)16
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_4.yaml (renamed from samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_4.yaml)16
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_out.yaml (renamed from samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_out.yaml)16
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml (renamed from samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml)14
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_trex_external_rfc2544_ipv4_1rule_1flow_packetsize.yaml (renamed from samples/vnf_samples/nsut/acl/tc_heat_trex_external_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml)19
-rw-r--r--samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_correlated_scale_out_template.yaml7
-rw-r--r--samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_scale_out_template.yaml4
-rw-r--r--samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_scale_out.yaml4
-rw-r--r--samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml)15
-rw-r--r--samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml)24
-rw-r--r--samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_correlated_scale_out_template.yaml7
-rw-r--r--samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_scale_out_template.yaml5
-rw-r--r--samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_scale_out.yaml4
-rw-r--r--samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml)15
-rw-r--r--samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml)20
-rwxr-xr-xsamples/vnf_samples/nsut/agnostic/HTTP_requests_concurrency.yaml56
-rw-r--r--samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_2ports.yaml49
-rw-r--r--samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_4ports.yaml71
-rw-r--r--samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_8ports.yaml114
-rwxr-xr-xsamples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixload_2ports.yaml50
-rw-r--r--samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_tmpl.yaml52
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_http_concurrent_connections_ixload.yaml37
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_http_connections_ixload.yaml37
-rwxr-xr-xsamples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_suite.yaml27
-rwxr-xr-xsamples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_template.yaml40
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_http_simulated_users_ixload.yaml40
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_http_throughput_ixload.yaml (renamed from samples/vnf_samples/nsut/prox/baremetal/throughput/tc_ipv4_1flow_64B_packetsize.yaml)29
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_http_transactions_ixload.yaml (renamed from samples/vnf_samples/nsut/prox/ovs-dpdk/http_tests/tc_FileSize-1K_Requests-1M_Concurrency-100.yaml)39
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_ixia.yaml45
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_ixia_multi_framesize.yaml47
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex.yaml52
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml63
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia_L3.yaml55
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_ixia.yaml52
-rw-r--r--samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_8ports_1port_congested_IMIX.yaml84
-rw-r--r--samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_IMIX_scale_up.yaml100
-rw-r--r--samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-scale-up.yaml52
-rw-r--r--samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-scale-up.yaml52
-rw-r--r--samples/vnf_samples/nsut/cgnapt/standalone-args.yaml49
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_ixia_template.yaml12
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_template.yaml7
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_template.yaml11
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_scale_out_template.yaml59
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml12
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_scale_up.yaml49
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml)13
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_ixia_scale_up.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia_scale_up.yaml)13
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml)12
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex_correlated_traffic.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml)14
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml64
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml67
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_dynamic_cgnapt_ixia.yaml15
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_64B_trex.yaml)12
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_1flow_64B_trex.yaml)14
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml124
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml124
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex.yaml)16
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_10.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_10.yaml)16
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_2.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_2.yaml)16
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_4.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_4.yaml)16
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_out.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_out.yaml)16
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_template.yaml7
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_scale_out_template.yaml4
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_scale_out.yaml4
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml)15
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_trex.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml)20
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml111
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml109
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_correlated_scale_out_template.yaml7
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_scale_out_template.yaml5
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_scale_out.yaml4
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml)15
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_trex.yaml (renamed from samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml)20
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml101
-rw-r--r--samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml98
-rw-r--r--samples/vnf_samples/nsut/cmts/cmts-tg-topology.yaml39
-rwxr-xr-xsamples/vnf_samples/nsut/cmts/k8s_vcmts_topology.yaml36
-rw-r--r--samples/vnf_samples/nsut/cmts/tc_k8s_pktgen_01.yaml171
-rwxr-xr-xsamples/vnf_samples/nsut/cmts/tc_vcmts_k8s_pktgen.yaml360
-rw-r--r--samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixload.yaml50
-rw-r--r--samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixload_4port.yaml72
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_CPS.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1024k_Requests-65000_Concurrency.yaml)17
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_CPS_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPS.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPS_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPUT.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPUT_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_CPS.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_512k_Requests-65000_Concurrency.yaml)17
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_CPS_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPS.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPS_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPUT.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPUT_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_CPS.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_256k_Requests-65000_Concurrency.yaml)17
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_CPS_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPS.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPS_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPUT.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPUT_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_CPS.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_4k_Requests-65000_Concurrency.yaml)17
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_CPS_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPS.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPS_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPUT.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPUT_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_CPS.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_64k_Requests-65000_Concurrency.yaml)16
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_CPS_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPS.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPS_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPUT.yaml43
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPUT_4port.yaml43
-rw-r--r--samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml95
-rw-r--r--samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml96
-rw-r--r--samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml95
-rw-r--r--samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml96
-rw-r--r--samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml95
-rw-r--r--samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml96
-rw-r--r--samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml95
-rw-r--r--samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml96
-rw-r--r--samples/vnf_samples/nsut/ipsec/vpp-tg-topology-scale-up.yaml65
-rw-r--r--samples/vnf_samples/nsut/ping/tc_external_ping_heat_context.yaml8
-rw-r--r--samples/vnf_samples/nsut/ping/tc_ping_baremetal_context.yaml6
-rw-r--r--samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml10
-rw-r--r--samples/vnf_samples/nsut/ping/tc_ping_ovs_dpdk_context.yaml6
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_acl-2.cfg9
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_acl-4.cfg17
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_all-2.cfg8
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_bng-4.cfg14
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_bng_qos-4.cfg14
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_buffering-1.cfg3
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_buffering-2.cfg75
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_buffering-4.cfg122
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_l2fwd-2.cfg15
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_l2fwd-4.cfg32
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_l2fwd_multiflow-2.cfg33
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_l2fwd_multiflow-4.cfg60
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_l2fwd_pktTouch-2.cfg7
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_l2fwd_pktTouch-4.cfg15
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_l3fwd-2.cfg24
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_l3fwd-4.cfg49
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_lb-2.cfg114
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_lb-4.cfg115
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_lw_aftr-4.cfg34
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_mpls_tag_untag-2.cfg7
-rw-r--r--samples/vnf_samples/nsut/prox/configs/gen_mpls_tag_untag-4.cfg15
-rw-r--r--samples/vnf_samples/nsut/prox/configs/handle_bng-4.cfg4
-rw-r--r--samples/vnf_samples/nsut/prox/configs/handle_bng_qos-4.cfg4
-rw-r--r--samples/vnf_samples/nsut/prox/configs/handle_buffering-2.cfg74
-rw-r--r--samples/vnf_samples/nsut/prox/configs/handle_buffering-4.cfg118
-rw-r--r--samples/vnf_samples/nsut/prox/configs/handle_l3fwd-2.cfg13
-rw-r--r--samples/vnf_samples/nsut/prox/configs/handle_l3fwd-4.cfg15
-rw-r--r--samples/vnf_samples/nsut/prox/configs/handle_lb-2.cfg81
-rw-r--r--samples/vnf_samples/nsut/prox/configs/handle_lb-4.cfg37
-rw-r--r--samples/vnf_samples/nsut/prox/configs/ipv4-2port.lua100
-rw-r--r--samples/vnf_samples/nsut/prox/configs/ipv4.lua130
-rw-r--r--samples/vnf_samples/nsut/prox/configs/ipv4_bng.lua99
-rw-r--r--samples/vnf_samples/nsut/prox/configs/irq.cfg46
-rw-r--r--samples/vnf_samples/nsut/prox/configs/irq2.cfg66
-rw-r--r--samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_1518B_packetsize.yaml45
-rw-r--r--samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_64B_packetsize.yaml45
-rw-r--r--samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_IMIX_packetsize.yaml45
-rw-r--r--samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_1518B_packetsize.yaml45
-rw-r--r--samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_64B_packetsize.yaml45
-rw-r--r--samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_IMIX_packetsize.yaml45
-rw-r--r--samples/vnf_samples/nsut/prox/prox-baremetal-1.yaml4
-rw-r--r--samples/vnf_samples/nsut/prox/prox-baremetal-2.yaml7
-rw-r--r--samples/vnf_samples/nsut/prox/prox-baremetal-4.yaml6
-rw-r--r--samples/vnf_samples/nsut/prox/prox-irq-baremetal.yaml47
-rw-r--r--samples/vnf_samples/nsut/prox/prox-tg-topology-0.yaml49
-rw-r--r--samples/vnf_samples/nsut/prox/prox-tg-topology-1.yaml4
-rw-r--r--samples/vnf_samples/nsut/prox/prox-tg-topology-2.yaml4
-rw-r--r--samples/vnf_samples/nsut/prox/prox-tg-topology-4.yaml28
-rw-r--r--samples/vnf_samples/nsut/prox/prox-tg-topology-scale-out.yaml53
-rw-r--r--samples/vnf_samples/nsut/prox/prox-tg-topology-scale-up.yaml52
-rw-r--r--samples/vnf_samples/nsut/prox/prox_tg_bm.yaml37
-rw-r--r--samples/vnf_samples/nsut/prox/sriov/http_tests/tc_FileSize-1K_Requests-1M_Concurrency-100.yaml39
-rw-r--r--samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_1518B_packetsize.yaml40
-rw-r--r--samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_64B_packetsize.yaml40
-rw-r--r--samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_IMIX_packetsize.yaml40
-rw-r--r--samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_1518B_packetsize.yaml40
-rw-r--r--samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_64B_packetsize.yaml40
-rw-r--r--samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_IMIX_packetsize.yaml40
-rw-r--r--samples/vnf_samples/nsut/prox/standalone-args.yaml46
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-2.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-4.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-scale-up.yaml65
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_binsearch-2.yaml4
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_bng-4.yaml22
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_bng_qos-4.yaml22
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-1.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-2.yaml55
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-4.yaml55
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-scale-up.yaml55
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_irq.yaml59
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-2.yaml10
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-4.yaml21
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-scale-up.yaml57
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_multiflow-2.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_multiflow-4.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_pktTouch-2.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_pktTouch-4.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-2.yaml13
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-4.yaml11
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-scale-up.yaml57
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-2.yaml64
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-4.yaml24
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-scale-up.yaml57
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_lw_aftr-4.yaml10
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-2.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-4.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-scale-up.yaml55
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_ramp-2.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_baremetal_vpe-4.yaml16
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-2.yaml9
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-4.yaml15
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-scale-up.yaml103
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_bng-4.yaml24
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_bng_qos-4.yaml22
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-1.yaml11
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-2.yaml88
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-4.yaml110
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-scale-up.yaml95
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-2-l3fwd-2.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-2.yaml11
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-4-l3fwd-4.yaml8
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-4.yaml14
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-l3fwd-scale-up.yaml128
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-scale-up.yaml94
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2-scale-out.yaml113
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2.yaml10
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-4.yaml14
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_pktTouch-2.yaml10
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_pktTouch-4.yaml14
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-2.yaml15
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-4.yaml17
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-scale-up.yaml97
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-2.yaml100
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-4.yaml22
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-scale-up.yaml97
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_lw_aftr-4.yaml10
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-2.yaml10
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-4.yaml14
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-scale-up.yaml94
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_heat_context_vpe-4.yaml16
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_acl-scale-up.yaml111
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_buffering-scale-up.yaml105
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-2.yaml95
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-4.yaml113
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml103
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml102
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_pktTouch-2.yaml95
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_pktTouch-4.yaml111
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l3fwd-scale-up.yaml107
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_lb-scale-up.yaml114
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_mpls_tagging-scale-up.yaml101
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_acl-scale-up.yaml101
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_buffering-scale-up.yaml95
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-2.yaml83
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-4.yaml98
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml92
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml92
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_pktTouch-2.yaml83
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_pktTouch-4.yaml98
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-2.yaml86
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-4.yaml102
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-scale-up.yaml95
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_lb-scale-up.yaml103
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_mpls_tagging-scale-up.yaml91
-rw-r--r--samples/vnf_samples/nsut/router/tc_baremetal_rfc2544_ipv4_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/router/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml)12
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports.yaml (renamed from samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_256B.yaml)14
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1024B.yaml102
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1280B.yaml102
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_128B.yaml102
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1518B.yaml102
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_512B.yaml102
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_64B.yaml102
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports.yaml (renamed from samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1024B.yaml)14
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1280B.yaml120
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_128B.yaml120
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1518B.yaml120
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_256B.yaml120
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_512B.yaml120
-rw-r--r--samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_64B.yaml120
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1024B_trex.yaml116
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1280B_trex.yaml116
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_128B_trex.yaml116
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1518B_trex.yaml115
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_256B_trex.yaml116
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_512B_trex.yaml116
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_trex.yaml (renamed from samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_64B_trex.yaml)14
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1024B_trex.yaml106
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1280B_trex.yaml106
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_128B_trex.yaml106
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1518B_trex.yaml106
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_512B_trex.yaml106
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_64B_trex.yaml106
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_trex.yaml (renamed from samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_256B_trex.yaml)14
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1280B_trex.yaml141
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_128B_trex.yaml141
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1518B_trex.yaml142
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_256B_trex.yaml141
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_512B_trex.yaml141
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_64B_trex.yaml140
-rw-r--r--samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_trex.yaml (renamed from samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1024B_trex.yaml)15
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1024B_trex.yaml125
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1280B_trex.yaml125
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_128B_trex.yaml125
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_256B_trex.yaml125
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_512B_trex.yaml125
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_64B_trex.yaml125
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_trex.yaml (renamed from samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1518B_trex.yaml)14
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_6ports_1518B_trex.yaml14
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1024B_trex.yaml93
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1280B_trex.yaml93
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_128B_trex.yaml93
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1518B_trex.yaml93
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_256B_trex.yaml92
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_512B_trex.yaml93
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_trex.yaml (renamed from samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_64B_trex.yaml)14
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1280B_trex.yaml121
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_128B_trex.yaml121
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1518B_trex.yaml121
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_256B_trex.yaml121
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_512B_trex.yaml121
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_64B_trex.yaml121
-rw-r--r--samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_trex.yaml (renamed from samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1024B_trex.yaml)14
-rw-r--r--samples/vnf_samples/nsut/udp_replay/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml6
-rw-r--r--samples/vnf_samples/nsut/udp_replay/tc_heat_rfc2544_ipv4_1flow_64B_trex.yaml10
-rw-r--r--samples/vnf_samples/nsut/udp_replay/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml14
-rw-r--r--samples/vnf_samples/nsut/udp_replay/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml14
-rw-r--r--samples/vnf_samples/nsut/vepc/landslide_tg_topology.yaml50
-rw-r--r--samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide.yaml58
-rw-r--r--samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide_multi_dmf.yaml57
-rw-r--r--samples/vnf_samples/nsut/vepc/tc_epc_network_dedicated_bearer_create_landslide.yaml164
-rw-r--r--samples/vnf_samples/nsut/vepc/tc_epc_network_service_request_landslide.yaml67
-rw-r--r--samples/vnf_samples/nsut/vepc/tc_epc_saegw_tput_relocation_landslide.yaml62
-rw-r--r--samples/vnf_samples/nsut/vepc/tc_epc_ue_dedicated_bearer_create_landslide.yaml74
-rw-r--r--samples/vnf_samples/nsut/vepc/tc_epc_ue_service_request_landslide.yaml228
-rw-r--r--samples/vnf_samples/nsut/vepc/vepc_vnf_topology_landslide.yaml50
-rw-r--r--samples/vnf_samples/nsut/vfw/acl_1rule.yaml60
-rw-r--r--samples/vnf_samples/nsut/vfw/standalone-args.yaml45
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml17
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency_4port.yaml12
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml49
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml)13
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia_4port.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml)14
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia_scale_up.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_scale_up.yaml)13
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.yaml)12
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_4port.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_4port.yaml)12
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml)14
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml59
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex.yaml48
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml62
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_ixia.yaml)13
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_trex.yaml)12
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_ixia_template.yaml9
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml6
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_template.yaml10
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_scale_out_template.yaml60
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-10Gbps_Throughput.yaml16
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-65000_Concurrency.yaml16
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-65000_Connections.yaml16
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml83
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml83
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml82
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml82
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml82
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml)13
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml)14
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_trex_4port.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex_4port.yaml)13
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml122
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml122
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex.yaml95
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_4port.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_4port.yaml)13
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_computeKPI.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_computeKPI.yaml)16
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_10.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_10.yaml)16
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_2.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_2.yaml)16
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_4.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_4.yaml)16
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_out.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_out.yaml)16
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_iterationipc.yaml96
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale-up.yaml90
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale_out.yaml115
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_trex.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml)21
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_sriov_external_rfc2544_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml)47
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml)15
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml)20
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml106
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml105
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_correlated_scale_out_template.yaml7
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_scale_out_template.yaml5
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_scale_out.yaml4
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_ixia.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml)15
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_trex.yaml (renamed from samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml)20
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml96
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml94
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_correlated_scale_out_template.yaml7
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_scale_out_template.yaml5
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_scale_out.yaml4
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-scale-up.yaml53
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml52
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw_tg_topology_scale_out.yaml53
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_2_lb_1_sw.conf52
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_4_lb_1_sw.conf52
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_6_lb_1_sw.conf51
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_8_lb_1_sw.conf52
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_8_ports_10_lb_1_sw.conf52
-rw-r--r--samples/vnf_samples/nsut/vims/tc_vims_baremetal_sipp.yaml57
-rw-r--r--samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml97
-rw-r--r--samples/vnf_samples/nsut/vims/vims-topology.yaml52
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml11
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml10
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml10
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml12
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml12
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml10
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_ixia.yaml13
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml18
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_config/action_bulk_512.txt14
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_config/vpe_config_2_ports100
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_config/vpe_script_sample631
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_vnf_topology.yaml12
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixia.yaml6
-rw-r--r--samples/vnf_samples/traffic_profiles/acl/acl_ipv4_profile_1flows.ixncfgbin93841 -> 0 bytes
-rw-r--r--samples/vnf_samples/traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows.ixncfgbin71988 -> 0 bytes
-rw-r--r--samples/vnf_samples/traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows_3node_latency.ixncfgbin70874 -> 0 bytes
-rw-r--r--samples/vnf_samples/traffic_profiles/http_tests/HTTP_1024K-requests_65000_concurrency.yaml24
-rw-r--r--samples/vnf_samples/traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml55
-rw-r--r--samples/vnf_samples/traffic_profiles/http_tests/HTTP_256K-requests_65000_concurrency.yaml24
-rw-r--r--samples/vnf_samples/traffic_profiles/http_tests/HTTP_4K-requests_65000_concurrency.yaml24
-rw-r--r--samples/vnf_samples/traffic_profiles/http_tests/HTTP_512K-requests_65000_concurrency.yaml24
-rw-r--r--samples/vnf_samples/traffic_profiles/http_tests/HTTP_64K-requests_65000_concurrency.yaml24
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-10.yaml4
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-2.yaml4
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-3.yaml4
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-4.yaml4
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-ixia-scale-out.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-scale-out.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml103
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput-tmpl.yaml79
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml9
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-10.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-2.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-4.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-out.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml104
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput_latency_vpp.yaml72
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput_scale_out.yaml102
-rw-r--r--samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml3
-rw-r--r--samples/vnf_samples/traffic_profiles/ixia/ixia_ipv4_profile_2_port.ixncfgbin93841 -> 0 bytes
-rw-r--r--samples/vnf_samples/traffic_profiles/ixia/ixia_ipv4_profile_4_port.ixncfgbin77930 -> 0 bytes
-rw-r--r--samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml21
-rw-r--r--samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml64
-rw-r--r--samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_cgnapt.yaml16
-rw-r--r--samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_scale_up.yaml95
-rw-r--r--samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng_1port_congested-8.yaml392
-rw-r--r--samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng_scale_up.yaml90
-rw-r--r--samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vpe.yaml40
-rw-r--r--samples/vnf_samples/traffic_profiles/ixload/HTTP-ConcurrentConnections_2Ports.rxf (renamed from samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-1024K.rxf)35
-rw-r--r--samples/vnf_samples/traffic_profiles/ixload/HTTP-Connections_2Ports.rxf1289
-rw-r--r--samples/vnf_samples/traffic_profiles/ixload/HTTP-SimulatedUsers_2Ports.rxf (renamed from samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-1B.rxf)81
-rw-r--r--samples/vnf_samples/traffic_profiles/ixload/HTTP-Throughput_2Ports.rxf (renamed from samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-4K.rxf)59
-rw-r--r--samples/vnf_samples/traffic_profiles/ixload/HTTP-Transactions_2Ports.rxf (renamed from samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-256K.rxf)59
-rw-r--r--samples/vnf_samples/traffic_profiles/ixload/http_ixload.yaml56
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_fb_udp.yaml79
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_fb_udp_tcp.yaml136
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_udp.yaml79
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_udp_tcp.yaml136
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_session_default_bearer.yaml147
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_session_default_bearer_multi_dmf.yaml150
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_session_network_dedicated_bearer.yaml681
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_session_network_service_request.yaml341
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_session_saegw_relocation.yaml177
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_session_ue_dedicated_bearer.yaml353
-rw-r--r--samples/vnf_samples/traffic_profiles/landslide/landslide_session_ue_service_request.yaml378
-rw-r--r--samples/vnf_samples/traffic_profiles/pktgen_throughput.yaml21
-rw-r--r--samples/vnf_samples/traffic_profiles/prox_binsearch.yaml6
-rw-r--r--samples/vnf_samples/traffic_profiles/prox_bng.yaml2
-rw-r--r--samples/vnf_samples/traffic_profiles/prox_irq.yaml22
-rw-r--r--samples/vnf_samples/traffic_profiles/prox_vpe.yaml6
-rw-r--r--samples/vnf_samples/traffic_profiles/sip.yaml25
-rw-r--r--samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-64K.rxf1284
-rw-r--r--samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports_Concurrency.rxf24
-rw-r--r--samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-1024K.rxf2392
-rw-r--r--samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-1B.rxf2392
-rw-r--r--samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-256K.rxf2392
-rw-r--r--samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-4K.rxf2392
-rw-r--r--samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-64K.rxf2392
-rw-r--r--samples/vnf_samples/traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfgbin93841 -> 0 bytes
-rw-r--r--samples/vnf_samples/traffic_profiles/vfw/vfw_ipv4_profile_muttiport.ixncfgbin77930 -> 0 bytes
-rw-r--r--samples/vnf_samples/traffic_profiles/vpe/vpe_ipv4_profile_1flows.ixncfgbin103360 -> 0 bytes
-rw-r--r--samples/vnf_samples/traffic_profiles/vpe/vpe_ipv4_profile_256Kflows.ixncfgbin103357 -> 0 bytes
-rw-r--r--samples/vnf_samples/vnf_descriptors/agnostic_vnf.yaml44
-rw-r--r--samples/vnf_samples/vnf_descriptors/ixia_rfc2544_tpl.yaml1
-rw-r--r--samples/vnf_samples/vnf_descriptors/prox_irq_vnf.yaml (renamed from samples/vnf_samples/vnf_descriptors/tg_prox_tpl-4.yaml)22
-rw-r--r--samples/vnf_samples/vnf_descriptors/prox_vnf.yaml (renamed from samples/vnf_samples/vnf_descriptors/prox_vnf-1.yaml)0
-rw-r--r--samples/vnf_samples/vnf_descriptors/tg_ixload.yaml1
-rw-r--r--samples/vnf_samples/vnf_descriptors/tg_ixload_4port.yaml1
-rw-r--r--samples/vnf_samples/vnf_descriptors/tg_landslide_tpl.yaml38
-rw-r--r--samples/vnf_samples/vnf_descriptors/tg_pktgen.yaml47
-rw-r--r--samples/vnf_samples/vnf_descriptors/tg_prox_irq.yaml (renamed from samples/vnf_samples/vnf_descriptors/tg_prox_tpl-1.yaml)23
-rw-r--r--samples/vnf_samples/vnf_descriptors/tg_prox_tpl.yaml (renamed from samples/vnf_samples/vnf_descriptors/tg_prox_tpl-2.yaml)0
-rw-r--r--samples/vnf_samples/vnf_descriptors/tg_sipp_vnfd.yaml54
-rwxr-xr-xsamples/vnf_samples/vnf_descriptors/tg_vcmts_tpl.yaml77
-rw-r--r--samples/vnf_samples/vnf_descriptors/tg_vpp_tpl.yaml49
-rw-r--r--samples/vnf_samples/vnf_descriptors/vepc_vnf.yaml38
-rw-r--r--samples/vnf_samples/vnf_descriptors/vims_hss_vnfd.yaml (renamed from samples/vnf_samples/vnf_descriptors/prox_vnf-2.yaml)24
-rw-r--r--samples/vnf_samples/vnf_descriptors/vims_pcscf_vnfd.yaml (renamed from samples/vnf_samples/vnf_descriptors/prox_vnf-4.yaml)24
-rwxr-xr-xsamples/vnf_samples/vnf_descriptors/vnf_vcmts_tpl.yaml77
-rw-r--r--samples/vnf_samples/vnf_descriptors/vpp_vnfd.yaml74
-rw-r--r--setup.cfg43
-rw-r--r--[-rwxr-xr-x]setup.py85
-rw-r--r--test-requirements.txt28
-rwxr-xr-xtests/ci/ansible_load_images.sh2
-rwxr-xr-xtests/ci/load_images.sh55
-rwxr-xr-xtests/ci/prepare_env.sh146
-rwxr-xr-xtests/ci/prepare_storperf_admin-rc.sh5
-rwxr-xr-xtests/ci/yardstick-verify4
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc001.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc002.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc005.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc008.yaml5
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc009.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc010.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc011.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc012.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc014.yaml2
-rwxr-xr-xtests/opnfv/test_cases/opnfv_yardstick_tc015.yaml60
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc023.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc040.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc042.yaml11
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc047.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc048.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc050.yaml81
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc053.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc056.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc058.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc069.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc070.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc071.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc072.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml29
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc076.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc079.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc080.yaml8
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc081.yaml4
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc082.yaml2
-rwxr-xr-xtests/opnfv/test_cases/opnfv_yardstick_tc083.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc084.yaml2
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc087.yaml278
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc088.yaml78
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc089.yaml78
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc090.yaml76
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc091.yaml57
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc092.yaml276
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc093.yaml313
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc094.yaml93
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-calico-nofeature-noha_daily.yaml (renamed from tests/opnfv/test_suites/opnfv_vTC_weekly.yaml)14
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-canal-lb-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-canal-nofeature-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-contiv-nofeature-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-flannel-nofeature-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-multus-lb-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-multus-nofeature-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-nosdn-istio-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-nosdn-lb_ceph-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-nosdn-nofeature-ha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-nosdn-nofeature-noha_daily.yaml46
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-nosdn-stor4nfv-ha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-nosdn-stor4nfv-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-ocl-lb-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_k8-sriov-cni-nofeature-noha_daily.yaml18
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-bar-ha_daily.yaml8
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-bar-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-calipso-noha_daily.yaml62
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-fdio-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-kvm-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-kvm-noha_daily.yaml4
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk-ha_daily.yaml11
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk-noha_daily.yaml9
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk_bar-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk_bar-noha_daily.yaml4
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-lxd-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-lxd-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-nofeature-ha_daily.yaml186
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-nofeature-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-openbaton-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-openo-ha_daily.yaml8
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-ovs-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-ovs-noha_daily.yaml4
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-ovs_dpdk-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-nosdn-ovs_dpdk-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-ocl-nofeature-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-ocl-nofeature-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-bgpvpn-noha_daily.yaml (renamed from tests/opnfv/test_suites/opnfv_vTC_daily.yaml)15
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-nofeature-ha_daily.yaml21
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-nofeature-noha_daily.yaml19
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-ovs-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-ovs-noha_daily.yaml64
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-ovs_dpdk-ha_daily.yaml38
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-ovs_dpdk-noha_daily.yaml38
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-ovs_offload-noha_daily.yaml38
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-sfc-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-sfc-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-sriov-noha_daily.yaml38
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l2-bgpvpn-ha_daily.yaml2
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l2-bgpvpn-noha_daily.yaml2
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l2-fdio-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l2-moon-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l2-moon-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l2-nofeature-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l2-nofeature-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l2-sfc-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l2-sfc-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l3-nofeature-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l3-nofeature-noha_daily.yaml4
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl_l3-ovs-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-onos-nofeature-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-onos-nofeature-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-onos-sfc-ha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_os-onos-sfc-noha_daily.yaml4
-rw-r--r--tests/opnfv/test_suites/opnfv_os-ovn-nofeature-ha_daily.yaml38
-rw-r--r--tests/opnfv/test_suites/opnfv_os-ovn-nofeature-noha_daily.yaml6
-rw-r--r--tests/opnfv/test_suites/opnfv_performance.yaml8
-rw-r--r--tests/unit/apiserver/utils/test_influx.py62
-rw-r--r--tests/unit/benchmark/contexts/standalone/test_model.py414
-rw-r--r--tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py377
-rw-r--r--tests/unit/benchmark/contexts/test_dummy.py32
-rw-r--r--tests/unit/benchmark/contexts/test_heat.py503
-rw-r--r--tests/unit/benchmark/contexts/test_kubernetes.py205
-rw-r--r--tests/unit/benchmark/core/test_plugin.py102
-rw-r--r--tests/unit/benchmark/core/test_report.py72
-rw-r--r--tests/unit/benchmark/core/test_task.py314
-rw-r--r--tests/unit/benchmark/runner/test_base.py95
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py84
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_scenario_general.py71
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_serviceha.py77
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_attach_volume.py33
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_check_value.py46
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py34
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_image.py41
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_keypair.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_network.py39
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_router.py39
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_sec_group.py39
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_server.py42
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_subnet.py41
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_volume.py40
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_image.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_keypair.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_network.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_router.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py37
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_server.py35
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_delete_volume.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_detach_volume.py35
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_get_flavor.py33
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_get_server.py50
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_pktgen.py746
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py181
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_vsperf.py136
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py237
-rw-r--r--tests/unit/benchmark/scenarios/parser/test_parser.py62
-rw-r--r--tests/unit/benchmark/scenarios/storage/test_storperf.py238
-rw-r--r--tests/unit/benchmark/scenarios/test_base.py53
-rw-r--r--tests/unit/cmd/commands/test_env.py69
-rw-r--r--tests/unit/common/test_openstack_utils.py46
-rw-r--r--tests/unit/network_services/collector/test_subscriber.py98
-rw-r--r--tests/unit/network_services/helpers/test_cpu.py119
-rw-r--r--tests/unit/network_services/helpers/test_dpdkbindnic_helper.py260
-rw-r--r--tests/unit/network_services/libs/ixia_libs/test_IxNet.py876
-rw-r--r--tests/unit/network_services/test_yang_model.py135
-rw-r--r--tests/unit/network_services/traffic_profile/test_base.py62
-rw-r--r--tests/unit/network_services/traffic_profile/test_http.py45
-rw-r--r--tests/unit/network_services/traffic_profile/test_ixia_rfc2544.py646
-rw-r--r--tests/unit/network_services/traffic_profile/test_prox_binsearch.py99
-rw-r--r--tests/unit/network_services/traffic_profile/test_rfc2544.py290
-rw-r--r--tests/unit/network_services/traffic_profile/test_traffic_profile.py246
-rw-r--r--tests/unit/network_services/vnf_generic/vnf/acl_1rule.yaml47
-rw-r--r--tests/unit/network_services/vnf_generic/vnf/test_sample_vnf.py2077
-rw-r--r--tests/unit/network_services/vnf_generic/vnf/test_tg_ixload.py320
-rw-r--r--tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py352
-rw-r--r--tests/unit/orchestrator/test_heat.py339
-rw-r--r--tests/unit/orchestrator/test_kubernetes.py114
-rw-r--r--tools/coding-checks.sh9
-rw-r--r--tools/cover.sh23
-rwxr-xr-xtools/kube-setup-one-node.sh44
-rwxr-xr-xtools/run_tests.sh27
-rwxr-xr-xtools/virt_ci_rampup.sh45
-rw-r--r--tox.ini20
-rw-r--r--upper-constraints.txt18
-rw-r--r--yardstick/__init__.py3
-rw-r--r--yardstick/benchmark/contexts/__init__.py20
-rw-r--r--yardstick/benchmark/contexts/base.py134
-rw-r--r--yardstick/benchmark/contexts/dummy.py35
-rw-r--r--yardstick/benchmark/contexts/heat.py252
-rw-r--r--yardstick/benchmark/contexts/kubernetes.py129
-rw-r--r--yardstick/benchmark/contexts/model.py45
-rw-r--r--yardstick/benchmark/contexts/node.py72
-rw-r--r--yardstick/benchmark/contexts/standalone/model.py276
-rw-r--r--yardstick/benchmark/contexts/standalone/ovs_dpdk.py324
-rw-r--r--yardstick/benchmark/contexts/standalone/sriov.py119
-rw-r--r--yardstick/benchmark/core/__init__.py1
-rw-r--r--yardstick/benchmark/core/report.py385
-rw-r--r--yardstick/benchmark/core/task.py332
-rwxr-xr-xyardstick/benchmark/runners/arithmetic.py11
-rwxr-xr-xyardstick/benchmark/runners/base.py71
-rw-r--r--yardstick/benchmark/runners/duration.py17
-rwxr-xr-xyardstick/benchmark/runners/dynamictp.py7
-rw-r--r--yardstick/benchmark/runners/iteration.py47
-rw-r--r--yardstick/benchmark/runners/proxduration.py166
-rw-r--r--yardstick/benchmark/runners/search.py9
-rw-r--r--yardstick/benchmark/runners/sequence.py40
-rw-r--r--yardstick/benchmark/scenarios/availability/attacker/attacker_baremetal.py32
-rw-r--r--yardstick/benchmark/scenarios/availability/attacker/attacker_process.py15
-rw-r--r--yardstick/benchmark/scenarios/availability/attacker/baseattacker.py3
-rw-r--r--yardstick/benchmark/scenarios/availability/director.py22
-rwxr-xr-xyardstick/benchmark/scenarios/availability/ha_tools/fault_process_kill.bash4
-rw-r--r--yardstick/benchmark/scenarios/availability/ha_tools/nova/add_server_to_existing_secgroup.bash26
-rw-r--r--yardstick/benchmark/scenarios/availability/ha_tools/nova/create_instance_from_image.bash26
-rw-r--r--yardstick/benchmark/scenarios/availability/ha_tools/nova/delete_instance.bash24
-rw-r--r--yardstick/benchmark/scenarios/availability/ha_tools/nova/get_server_privateip.bash24
-rw-r--r--yardstick/benchmark/scenarios/availability/ha_tools/nova/remove_server_from_secgroup.bash25
-rwxr-xr-xyardstick/benchmark/scenarios/availability/ha_tools/start_service.bash13
-rw-r--r--yardstick/benchmark/scenarios/availability/monitor/basemonitor.py2
-rw-r--r--yardstick/benchmark/scenarios/availability/monitor/monitor_command.py12
-rw-r--r--yardstick/benchmark/scenarios/availability/monitor/monitor_multi.py28
-rw-r--r--yardstick/benchmark/scenarios/availability/monitor/monitor_process.py20
-rw-r--r--yardstick/benchmark/scenarios/availability/operation_conf.yaml11
-rw-r--r--yardstick/benchmark/scenarios/availability/scenario_general.py34
-rwxr-xr-xyardstick/benchmark/scenarios/availability/serviceha.py41
-rw-r--r--yardstick/benchmark/scenarios/base.py75
-rw-r--r--yardstick/benchmark/scenarios/compute/cyclictest.py4
-rw-r--r--yardstick/benchmark/scenarios/compute/lmbench.py6
-rw-r--r--yardstick/benchmark/scenarios/compute/perf.py20
-rw-r--r--yardstick/benchmark/scenarios/compute/qemu_migrate.py4
-rw-r--r--yardstick/benchmark/scenarios/compute/ramspeed.py6
-rw-r--r--yardstick/benchmark/scenarios/compute/unixbench.py2
-rw-r--r--yardstick/benchmark/scenarios/compute/unixbench_benchmark.bash6
-rw-r--r--[-rwxr-xr-x]yardstick/benchmark/scenarios/energy/__init__.py (renamed from tests/functional/__init__.py)0
-rw-r--r--yardstick/benchmark/scenarios/energy/energy.py139
-rw-r--r--yardstick/benchmark/scenarios/lib/attach_volume.py35
-rw-r--r--yardstick/benchmark/scenarios/lib/check_value.py17
-rw-r--r--yardstick/benchmark/scenarios/lib/create_floating_ip.py46
-rw-r--r--yardstick/benchmark/scenarios/lib/create_image.py71
-rw-r--r--yardstick/benchmark/scenarios/lib/create_keypair.py49
-rw-r--r--yardstick/benchmark/scenarios/lib/create_network.py41
-rw-r--r--yardstick/benchmark/scenarios/lib/create_router.py46
-rw-r--r--yardstick/benchmark/scenarios/lib/create_sec_group.py40
-rw-r--r--yardstick/benchmark/scenarios/lib/create_server.py74
-rw-r--r--yardstick/benchmark/scenarios/lib/create_subnet.py60
-rw-r--r--yardstick/benchmark/scenarios/lib/create_volume.py50
-rw-r--r--yardstick/benchmark/scenarios/lib/delete_floating_ip.py26
-rw-r--r--yardstick/benchmark/scenarios/lib/delete_image.py36
-rw-r--r--yardstick/benchmark/scenarios/lib/delete_keypair.py29
-rw-r--r--yardstick/benchmark/scenarios/lib/delete_network.py27
-rw-r--r--yardstick/benchmark/scenarios/lib/delete_router.py24
-rw-r--r--yardstick/benchmark/scenarios/lib/delete_router_interface.py28
-rw-r--r--yardstick/benchmark/scenarios/lib/delete_server.py33
-rw-r--r--yardstick/benchmark/scenarios/lib/delete_volume.py30
-rw-r--r--yardstick/benchmark/scenarios/lib/detach_volume.py33
-rw-r--r--yardstick/benchmark/scenarios/lib/get_flavor.py37
-rw-r--r--yardstick/benchmark/scenarios/lib/get_server.py84
-rw-r--r--yardstick/benchmark/scenarios/networking/iperf3.py17
-rw-r--r--yardstick/benchmark/scenarios/networking/moongen_testpmd.bash62
-rw-r--r--yardstick/benchmark/scenarios/networking/moongen_testpmd.py379
-rwxr-xr-xyardstick/benchmark/scenarios/networking/netperf.py10
-rwxr-xr-xyardstick/benchmark/scenarios/networking/netperf_node.py7
-rw-r--r--yardstick/benchmark/scenarios/networking/nstat.py2
-rw-r--r--yardstick/benchmark/scenarios/networking/ping.py18
-rw-r--r--yardstick/benchmark/scenarios/networking/ping6.py13
-rw-r--r--yardstick/benchmark/scenarios/networking/pktgen.py124
-rw-r--r--yardstick/benchmark/scenarios/networking/pktgen_dpdk.py30
-rw-r--r--yardstick/benchmark/scenarios/networking/pktgen_dpdk_latency_benchmark.bash32
-rw-r--r--yardstick/benchmark/scenarios/networking/pktgen_dpdk_throughput.py8
-rw-r--r--yardstick/benchmark/scenarios/networking/sfc_openstack.py16
-rw-r--r--yardstick/benchmark/scenarios/networking/testpmd_fwd.bash16
-rw-r--r--yardstick/benchmark/scenarios/networking/vnf_generic.py614
-rw-r--r--yardstick/benchmark/scenarios/networking/vsperf.py31
-rw-r--r--yardstick/benchmark/scenarios/networking/vsperf_dpdk.py50
-rw-r--r--yardstick/benchmark/scenarios/parser/parser.py8
-rw-r--r--yardstick/benchmark/scenarios/storage/fio.py18
-rw-r--r--yardstick/benchmark/scenarios/storage/storperf.py134
-rw-r--r--yardstick/cmd/cli.py7
-rw-r--r--yardstick/cmd/commands/report.py23
-rw-r--r--yardstick/cmd/commands/task.py24
-rw-r--r--yardstick/common/ansible_common.py88
-rw-r--r--yardstick/common/constants.py51
-rw-r--r--yardstick/common/exceptions.py372
-rw-r--r--yardstick/common/html_template.py124
-rw-r--r--yardstick/common/httpClient.py4
-rw-r--r--yardstick/common/import_tools.py31
-rw-r--r--yardstick/common/kubernetes_utils.py181
-rw-r--r--yardstick/common/messaging/__init__.py28
-rw-r--r--yardstick/common/messaging/consumer.py86
-rw-r--r--yardstick/common/messaging/payloads.py73
-rw-r--r--yardstick/common/messaging/producer.py75
-rw-r--r--yardstick/common/nsb_report.css34
-rw-r--r--yardstick/common/nsb_report.html.j275
-rw-r--r--yardstick/common/nsb_report.js170
-rw-r--r--yardstick/common/openstack_utils.py1153
-rw-r--r--yardstick/common/packages.py87
-rw-r--r--yardstick/common/privsep.py23
-rw-r--r--yardstick/common/report.html.j2184
-rw-r--r--yardstick/common/utils.py349
-rw-r--r--yardstick/common/yaml_loader.py12
-rw-r--r--yardstick/dispatcher/__init__.py9
-rw-r--r--yardstick/dispatcher/influxdb.py34
-rw-r--r--yardstick/network_services/collector/subscriber.py49
-rw-r--r--yardstick/network_services/constants.py20
-rw-r--r--yardstick/network_services/helpers/cpu.py103
-rw-r--r--yardstick/network_services/helpers/dpdkbindnic_helper.py332
-rw-r--r--yardstick/network_services/helpers/samplevnf_helper.py121
-rw-r--r--yardstick/network_services/helpers/vpp_helpers/__init__.py (renamed from tests/unit/apiserver/resources/__init__.py)0
-rw-r--r--yardstick/network_services/helpers/vpp_helpers/abstract_search_algorithm.py53
-rw-r--r--yardstick/network_services/helpers/vpp_helpers/multiple_loss_ratio_search.py688
-rw-r--r--yardstick/network_services/helpers/vpp_helpers/ndr_pdr_result.py68
-rw-r--r--yardstick/network_services/helpers/vpp_helpers/receive_rate_interval.py88
-rw-r--r--yardstick/network_services/helpers/vpp_helpers/receive_rate_measurement.py58
-rw-r--r--yardstick/network_services/libs/ixia_libs/IxNet/IxNet.py344
-rw-r--r--yardstick/network_services/libs/ixia_libs/ixnet/__init__.py (renamed from tests/unit/benchmark/__init__.py)0
-rw-r--r--yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py1132
-rw-r--r--yardstick/network_services/nfvi/resource.py149
-rw-r--r--yardstick/network_services/pipeline.py13
-rw-r--r--yardstick/network_services/traffic_profile/__init__.py38
-rw-r--r--yardstick/network_services/traffic_profile/base.py70
-rw-r--r--yardstick/network_services/traffic_profile/http.py4
-rw-r--r--yardstick/network_services/traffic_profile/http_ixload.py171
-rw-r--r--yardstick/network_services/traffic_profile/ixia_rfc2544.py485
-rw-r--r--yardstick/network_services/traffic_profile/landslide_profile.py47
-rw-r--r--yardstick/network_services/traffic_profile/pktgen.py61
-rw-r--r--yardstick/network_services/traffic_profile/prox_binsearch.py135
-rw-r--r--yardstick/network_services/traffic_profile/prox_irq.py48
-rw-r--r--yardstick/network_services/traffic_profile/prox_profile.py25
-rw-r--r--yardstick/network_services/traffic_profile/rfc2544.py474
-rw-r--r--yardstick/network_services/traffic_profile/sip.py32
-rw-r--r--yardstick/network_services/traffic_profile/trex_traffic_profile.py (renamed from yardstick/network_services/traffic_profile/traffic_profile.py)234
-rw-r--r--yardstick/network_services/traffic_profile/vpp_rfc2544.py339
-rw-r--r--yardstick/network_services/utils.py4
-rw-r--r--yardstick/network_services/vnf_generic/vnf/acl_vnf.py216
-rw-r--r--yardstick/network_services/vnf_generic/vnf/agnostic_vnf.py46
-rw-r--r--yardstick/network_services/vnf_generic/vnf/base.py39
-rw-r--r--yardstick/network_services/vnf_generic/vnf/cgnapt_vnf.py10
-rw-r--r--yardstick/network_services/vnf_generic/vnf/epc_vnf.py53
-rw-r--r--yardstick/network_services/vnf_generic/vnf/ipsec_vnf.py498
-rw-r--r--yardstick/network_services/vnf_generic/vnf/prox_helpers.py517
-rw-r--r--yardstick/network_services/vnf_generic/vnf/prox_irq.py200
-rw-r--r--yardstick/network_services/vnf_generic/vnf/prox_vnf.py90
-rw-r--r--yardstick/network_services/vnf_generic/vnf/router_vnf.py6
-rw-r--r--yardstick/network_services/vnf_generic/vnf/sample_vnf.py536
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_imsbench_sipp.py143
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_ixload.py75
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_landslide.py1226
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_ping.py2
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_pktgen.py88
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_prox.py31
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py828
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_rfc2544_trex.py145
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_trex.py34
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_trex_vpp.py178
-rwxr-xr-xyardstick/network_services/vnf_generic/vnf/tg_vcmts_pktgen.py215
-rw-r--r--yardstick/network_services/vnf_generic/vnf/udp_replay.py17
-rwxr-xr-xyardstick/network_services/vnf_generic/vnf/vcmts_vnf.py273
-rw-r--r--yardstick/network_services/vnf_generic/vnf/vfw_vnf.py24
-rw-r--r--yardstick/network_services/vnf_generic/vnf/vims_vnf.py105
-rw-r--r--yardstick/network_services/vnf_generic/vnf/vnf_ssh_helper.py62
-rw-r--r--yardstick/network_services/vnf_generic/vnf/vpe_vnf.py195
-rw-r--r--yardstick/network_services/vnf_generic/vnf/vpp_helpers.py751
-rw-r--r--yardstick/network_services/yang_model.py108
-rw-r--r--yardstick/orchestrator/heat.py373
-rw-r--r--yardstick/orchestrator/kubernetes.py462
-rwxr-xr-xyardstick/resources/scripts/install/ovs_deploy.bash23
-rw-r--r--yardstick/resources/templates/add_ip_address.vat1
-rw-r--r--yardstick/resources/templates/add_ip_neighbor.vat1
-rw-r--r--yardstick/resources/templates/add_route.vat1
-rw-r--r--yardstick/resources/templates/del_route.vat1
-rw-r--r--yardstick/resources/templates/flush_ip_addresses.vat1
-rw-r--r--yardstick/resources/templates/hw_interface_set_mtu.vat1
-rw-r--r--yardstick/resources/templates/interface_dump.vat1
-rw-r--r--yardstick/resources/templates/set_if_state.vat1
-rw-r--r--yardstick/service/__init__.py12
-rw-r--r--yardstick/service/environment.py101
-rw-r--r--yardstick/ssh.py204
-rw-r--r--yardstick/tests/__init__.py (renamed from tests/unit/__init__.py)151
-rw-r--r--yardstick/tests/fixture.py47
-rw-r--r--yardstick/tests/functional/__init__.py (renamed from tests/unit/benchmark/contexts/__init__.py)0
-rw-r--r--yardstick/tests/functional/base.py46
-rw-r--r--yardstick/tests/functional/benchmark/__init__.py (renamed from tests/unit/benchmark/contexts/standalone/__init__.py)0
-rw-r--r--yardstick/tests/functional/benchmark/core/__init__.py (renamed from tests/unit/benchmark/core/__init__.py)0
-rw-r--r--yardstick/tests/functional/benchmark/core/test_report.py314
-rw-r--r--yardstick/tests/functional/benchmark/scenarios/__init__.py (renamed from tests/unit/benchmark/runner/__init__.py)0
-rw-r--r--yardstick/tests/functional/benchmark/scenarios/networking/__init__.py (renamed from tests/unit/benchmark/scenarios/__init__.py)0
-rw-r--r--yardstick/tests/functional/benchmark/scenarios/networking/test_vnf_generic.py195
-rw-r--r--yardstick/tests/functional/common/__init__.py (renamed from tests/unit/benchmark/scenarios/availability/__init__.py)0
-rw-r--r--yardstick/tests/functional/common/fake_directory_package/README.md2
-rw-r--r--yardstick/tests/functional/common/fake_directory_package/setup.py29
-rw-r--r--yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/__init__.py (renamed from tests/unit/benchmark/scenarios/compute/__init__.py)0
-rw-r--r--yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/__init__.py (renamed from tests/unit/benchmark/scenarios/dummy/__init__.py)0
-rw-r--r--yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/scenarios/__init__.py (renamed from tests/unit/benchmark/scenarios/lib/__init__.py)0
-rw-r--r--yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/scenarios/dummy2/__init__.py (renamed from tests/unit/benchmark/scenarios/networking/__init__.py)0
-rw-r--r--yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/scenarios/dummy2/dummy2.py40
-rw-r--r--yardstick/tests/functional/common/fake_module/__init__.py (renamed from tests/unit/benchmark/scenarios/parser/__init__.py)0
-rw-r--r--yardstick/tests/functional/common/fake_module/fake_library.py17
-rw-r--r--yardstick/tests/functional/common/fake_pip_package/yardstick_new_plugin-1.0.0.tar.gzbin0 -> 1650 bytes
-rw-r--r--yardstick/tests/functional/common/messaging/__init__.py (renamed from tests/unit/benchmark/scenarios/storage/__init__.py)0
-rw-r--r--yardstick/tests/functional/common/messaging/test_messaging.py99
-rw-r--r--yardstick/tests/functional/common/test_packages.py100
-rw-r--r--yardstick/tests/functional/common/test_utils.py72
-rwxr-xr-xyardstick/tests/functional/test_cli_runner.py (renamed from tests/functional/test_cli_runner.py)4
-rwxr-xr-xyardstick/tests/functional/test_cli_scenario.py (renamed from tests/functional/test_cli_scenario.py)4
-rwxr-xr-xyardstick/tests/functional/utils.py (renamed from tests/functional/utils.py)0
-rw-r--r--yardstick/tests/integration/dummy-scenario-heat-context.yaml38
-rw-r--r--yardstick/tests/unit/__init__.py23
-rw-r--r--yardstick/tests/unit/apiserver/__init__.py (renamed from tests/unit/apiserver/__init__.py)17
-rw-r--r--yardstick/tests/unit/apiserver/resources/__init__.py (renamed from tests/unit/cmd/__init__.py)0
-rw-r--r--yardstick/tests/unit/apiserver/resources/test_env_action.py (renamed from tests/unit/apiserver/resources/test_env_action.py)13
-rw-r--r--yardstick/tests/unit/apiserver/resources/v1/__init__.py (renamed from tests/unit/cmd/commands/__init__.py)0
-rw-r--r--yardstick/tests/unit/apiserver/resources/v1/test_testsuites.py35
-rw-r--r--yardstick/tests/unit/apiserver/resources/v2/__init__.py (renamed from tests/unit/common/__init__.py)0
-rw-r--r--yardstick/tests/unit/apiserver/resources/v2/test_images.py46
-rw-r--r--yardstick/tests/unit/apiserver/utils/__init__.py (renamed from tests/unit/dispatcher/__init__.py)0
-rw-r--r--yardstick/tests/unit/apiserver/utils/test_influx.py91
-rw-r--r--yardstick/tests/unit/base.py23
-rw-r--r--yardstick/tests/unit/benchmark/__init__.py (renamed from tests/unit/network_services/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/__init__.py (renamed from tests/unit/network_services/collector/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/nodes_duplicate_sample.yaml (renamed from tests/unit/benchmark/contexts/nodes_duplicate_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/nodes_duplicate_sample_new.yaml (renamed from tests/unit/benchmark/contexts/nodes_duplicate_sample_new.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/nodes_duplicate_sample_ovs.yaml (renamed from tests/unit/benchmark/contexts/nodes_duplicate_sample_ovs.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/nodes_sample.yaml (renamed from tests/unit/benchmark/contexts/nodes_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/nodes_sample_new.yaml (renamed from tests/unit/benchmark/contexts/nodes_sample_new.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/nodes_sample_new_sriov.yaml (renamed from tests/unit/benchmark/contexts/nodes_sample_new_sriov.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/nodes_sample_ovs.yaml (renamed from tests/unit/benchmark/contexts/nodes_sample_ovs.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/nodes_sample_ovsdpdk.yaml (renamed from tests/unit/benchmark/contexts/nodes_sample_ovsdpdk.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/standalone/__init__.py (renamed from tests/unit/network_services/helpers/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/standalone/nodes_duplicate_sample.yaml (renamed from tests/unit/benchmark/contexts/standalone/nodes_duplicate_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/standalone/nodes_ovs_dpdk_sample.yaml (renamed from tests/unit/benchmark/contexts/standalone/nodes_ovs_dpdk_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/standalone/nodes_sample.yaml (renamed from tests/unit/benchmark/contexts/standalone/nodes_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/standalone/nodes_sriov_sample.yaml (renamed from tests/unit/benchmark/contexts/standalone/nodes_sriov_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/standalone/test_model.py640
-rw-r--r--yardstick/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py500
-rw-r--r--yardstick/tests/unit/benchmark/contexts/standalone/test_sriov.py (renamed from tests/unit/benchmark/contexts/standalone/test_sriov.py)228
-rw-r--r--yardstick/tests/unit/benchmark/contexts/standalone_duplicate_sample.yaml (renamed from tests/unit/benchmark/contexts/standalone_duplicate_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/standalone_sample.yaml (renamed from tests/unit/benchmark/contexts/standalone_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/contexts/test_base.py174
-rw-r--r--yardstick/tests/unit/benchmark/contexts/test_dummy.py86
-rw-r--r--yardstick/tests/unit/benchmark/contexts/test_heat.py893
-rw-r--r--yardstick/tests/unit/benchmark/contexts/test_kubernetes.py273
-rw-r--r--yardstick/tests/unit/benchmark/contexts/test_model.py (renamed from tests/unit/benchmark/contexts/test_model.py)15
-rw-r--r--yardstick/tests/unit/benchmark/contexts/test_node.py (renamed from tests/unit/benchmark/contexts/test_node.py)254
-rw-r--r--yardstick/tests/unit/benchmark/core/__init__.py (renamed from tests/unit/network_services/libs/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/core/no_constraint_no_args_scenario_sample.yaml (renamed from tests/unit/benchmark/core/no_constraint_no_args_scenario_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/core/no_constraint_with_args_scenario_sample.yaml (renamed from tests/unit/benchmark/core/no_constraint_with_args_scenario_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/core/test_plugin.py148
-rw-r--r--yardstick/tests/unit/benchmark/core/test_report.py584
-rw-r--r--yardstick/tests/unit/benchmark/core/test_task.py644
-rw-r--r--yardstick/tests/unit/benchmark/core/test_testcase.py (renamed from tests/unit/benchmark/core/test_testcase.py)24
-rw-r--r--yardstick/tests/unit/benchmark/core/with_constraint_no_args_scenario_sample.yaml (renamed from tests/unit/benchmark/core/with_constraint_no_args_scenario_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/core/with_constraint_with_args_scenario_sample.yaml (renamed from tests/unit/benchmark/core/with_constraint_with_args_scenario_sample.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/runner/__init__.py (renamed from tests/unit/network_services/libs/ixia_libs/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/runner/test_arithmetic.py446
-rw-r--r--yardstick/tests/unit/benchmark/runner/test_base.py119
-rw-r--r--yardstick/tests/unit/benchmark/runner/test_duration.py315
-rw-r--r--yardstick/tests/unit/benchmark/runner/test_iteration.py45
-rw-r--r--yardstick/tests/unit/benchmark/runner/test_proxduration.py286
-rw-r--r--yardstick/tests/unit/benchmark/runner/test_search.py (renamed from tests/unit/benchmark/runner/test_search.py)82
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/__init__.py (renamed from tests/unit/network_services/nfvi/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/__init__.py (renamed from tests/unit/network_services/traffic_profile/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py93
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_attacker_general.py (renamed from tests/unit/benchmark/scenarios/availability/test_attacker_general.py)2
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_attacker_process.py (renamed from tests/unit/benchmark/scenarios/availability/test_attacker_process.py)2
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_baseattacker.py36
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_basemonitor.py (renamed from tests/unit/benchmark/scenarios/availability/test_basemonitor.py)44
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_baseoperation.py (renamed from tests/unit/benchmark/scenarios/availability/test_baseoperation.py)38
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py (renamed from tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py)56
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_director.py (renamed from tests/unit/benchmark/scenarios/availability/test_director.py)6
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_command.py (renamed from tests/unit/benchmark/scenarios/availability/test_monitor_command.py)66
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_general.py (renamed from tests/unit/benchmark/scenarios/availability/test_monitor_general.py)6
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_multi.py (renamed from tests/unit/benchmark/scenarios/availability/test_monitor_multi.py)29
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_process.py (renamed from tests/unit/benchmark/scenarios/availability/test_monitor_process.py)18
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_operation_general.py (renamed from tests/unit/benchmark/scenarios/availability/test_operation_general.py)6
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py (renamed from tests/unit/benchmark/scenarios/availability/test_result_checker_general.py)6
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_scenario_general.py76
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_serviceha.py131
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/availability/test_util.py (renamed from tests/unit/benchmark/scenarios/availability/test_util.py)41
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/__init__.py (renamed from tests/unit/network_services/vnf_generic/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/cachestat_sample_output.txt (renamed from tests/unit/benchmark/scenarios/compute/cachestat_sample_output.txt)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt (renamed from tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/cpuload_sample_output2.txt (renamed from tests/unit/benchmark/scenarios/compute/cpuload_sample_output2.txt)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt (renamed from tests/unit/benchmark/scenarios/compute/memload_sample_output.txt)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_cachestat.py (renamed from tests/unit/benchmark/scenarios/compute/test_cachestat.py)2
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_computecapacity.py (renamed from tests/unit/benchmark/scenarios/compute/test_computecapacity.py)2
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_cpuload.py (renamed from tests/unit/benchmark/scenarios/compute/test_cpuload.py)2
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_cyclictest.py (renamed from tests/unit/benchmark/scenarios/compute/test_cyclictest.py)18
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_lmbench.py (renamed from tests/unit/benchmark/scenarios/compute/test_lmbench.py)66
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_memload.py (renamed from tests/unit/benchmark/scenarios/compute/test_memload.py)10
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_plugintest.py (renamed from tests/unit/benchmark/scenarios/compute/test_plugintest.py)2
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_qemumigrate.py (renamed from tests/unit/benchmark/scenarios/compute/test_qemumigrate.py)18
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_ramspeed.py (renamed from tests/unit/benchmark/scenarios/compute/test_ramspeed.py)14
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_spec_cpu.py (renamed from tests/unit/benchmark/scenarios/compute/test_spec_cpu.py)11
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_spec_cpu_for_vm.py (renamed from tests/unit/benchmark/scenarios/compute/test_spec_cpu_for_vm.py)8
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/compute/test_unixbench.py (renamed from tests/unit/benchmark/scenarios/compute/test_unixbench.py)16
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/dummy/__init__.py (renamed from tests/unit/network_services/vnf_generic/vnf/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/dummy/test_dummy.py (renamed from tests/unit/benchmark/scenarios/dummy/test_dummy.py)6
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/energy/__init__.py (renamed from tests/unit/orchestrator/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/energy/energy_sample_chassis_output.txt14
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/energy/energy_sample_power_metrics.txt300
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/energy/test_energy.py182
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/__init__.py (renamed from yardstick/network_services/libs/ixia_libs/IxNet/__init__.py)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_add_memory_load.py (renamed from tests/unit/benchmark/scenarios/lib/test_add_memory_load.py)14
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_attach_volume.py56
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py (renamed from tests/unit/benchmark/scenarios/lib/test_check_connectivity.py)20
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_check_numa_info.py (renamed from tests/unit/benchmark/scenarios/lib/test_check_numa_info.py)22
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_check_value.py63
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_flavor.py (renamed from tests/unit/benchmark/scenarios/lib/test_create_flavor.py)10
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py57
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_image.py55
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_keypair.py57
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_network.py57
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_port.py (renamed from tests/unit/benchmark/scenarios/lib/test_create_port.py)17
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_router.py57
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py59
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_server.py59
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_subnet.py58
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_create_volume.py58
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_flavor.py (renamed from tests/unit/benchmark/scenarios/lib/test_delete_flavor.py)12
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py55
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_image.py52
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_keypair.py51
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_network.py54
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_port.py (renamed from tests/unit/benchmark/scenarios/lib/test_delete_port.py)11
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router.py54
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router_gateway.py (renamed from tests/unit/benchmark/scenarios/lib/test_delete_router_gateway.py)13
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py56
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_server.py54
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_delete_volume.py52
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_detach_volume.py57
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_get_flavor.py57
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_get_migrate_target_host.py (renamed from tests/unit/benchmark/scenarios/lib/test_get_migrate_target_host.py)16
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_get_numa_info.py (renamed from tests/unit/benchmark/scenarios/lib/test_get_numa_info.py)17
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_get_server.py57
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/lib/test_get_server_ip.py (renamed from tests/unit/benchmark/scenarios/lib/test_get_server_ip.py)8
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/__init__.py0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/imix_voice.yaml (renamed from tests/unit/benchmark/scenarios/networking/imix_voice.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/iperf3_sample_output.json (renamed from tests/unit/benchmark/scenarios/networking/iperf3_sample_output.json)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/iperf3_sample_output_udp.json (renamed from tests/unit/benchmark/scenarios/networking/iperf3_sample_output_udp.json)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/ipv4_1flow_Packets_vpe.yaml (renamed from tests/unit/benchmark/scenarios/networking/ipv4_1flow_Packets_vpe.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/ipv4_throughput_vpe.yaml (renamed from tests/unit/benchmark/scenarios/networking/ipv4_throughput_vpe.yaml)0
-rwxr-xr-xyardstick/tests/unit/benchmark/scenarios/networking/netperf_sample_output.json (renamed from tests/unit/benchmark/scenarios/networking/netperf_sample_output.json)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/netutilization_sample_output1.txt (renamed from tests/unit/benchmark/scenarios/networking/netutilization_sample_output1.txt)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/netutilization_sample_output2.txt (renamed from tests/unit/benchmark/scenarios/networking/netutilization_sample_output2.txt)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_iperf3.py (renamed from tests/unit/benchmark/scenarios/networking/test_iperf3.py)38
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_moongen_testpmd.py353
-rwxr-xr-xyardstick/tests/unit/benchmark/scenarios/networking/test_netperf.py (renamed from tests/unit/benchmark/scenarios/networking/test_netperf.py)14
-rwxr-xr-xyardstick/tests/unit/benchmark/scenarios/networking/test_netperf_node.py (renamed from tests/unit/benchmark/scenarios/networking/test_netperf_node.py)14
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_netutilization.py (renamed from tests/unit/benchmark/scenarios/networking/test_netutilization.py)2
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_networkcapacity.py (renamed from tests/unit/benchmark/scenarios/networking/test_networkcapacity.py)2
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_nstat.py (renamed from tests/unit/benchmark/scenarios/networking/test_nstat.py)43
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_ping.py (renamed from tests/unit/benchmark/scenarios/networking/test_ping.py)20
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_ping6.py (renamed from tests/unit/benchmark/scenarios/networking/test_ping6.py)14
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen.py453
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py136
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk_throughput.py (renamed from tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk_throughput.py)45
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_sfc.py (renamed from tests/unit/benchmark/scenarios/networking/test_sfc.py)9
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_vnf_generic.py (renamed from tests/unit/benchmark/scenarios/networking/test_vnf_generic.py)624
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_vsperf.py196
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py181
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/tg_trex_tpl.yaml (renamed from tests/unit/benchmark/scenarios/networking/tg_trex_tpl.yaml)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/networking/vpe_vnf_topology.yaml (renamed from tests/unit/benchmark/scenarios/networking/vpe_vnf_topology.yaml)22
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/parser/__init__.py0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/parser/test_parser.py70
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/storage/__init__.py0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/storage/fio_read_sample_output.json (renamed from tests/unit/benchmark/scenarios/storage/fio_read_sample_output.json)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/storage/fio_rw_sample_output.json (renamed from tests/unit/benchmark/scenarios/storage/fio_rw_sample_output.json)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/storage/fio_write_sample_output.json (renamed from tests/unit/benchmark/scenarios/storage/fio_write_sample_output.json)0
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/storage/test_bonnie.py (renamed from tests/unit/benchmark/scenarios/storage/test_bonnie.py)11
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/storage/test_fio.py (renamed from tests/unit/benchmark/scenarios/storage/test_fio.py)35
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/storage/test_storagecapacity.py (renamed from tests/unit/benchmark/scenarios/storage/test_storagecapacity.py)9
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/storage/test_storperf.py513
-rw-r--r--yardstick/tests/unit/benchmark/scenarios/test_base.py135
-rw-r--r--yardstick/tests/unit/common/__init__.py0
-rw-r--r--yardstick/tests/unit/common/banned_modules/__init__.py0
-rw-r--r--yardstick/tests/unit/common/banned_modules/banned_module.py17
-rw-r--r--yardstick/tests/unit/common/banned_modules/importing_module.py21
-rw-r--r--yardstick/tests/unit/common/config_sample.yaml (renamed from tests/unit/common/config_sample.yaml)0
-rw-r--r--yardstick/tests/unit/common/messaging/__init__.py0
-rw-r--r--yardstick/tests/unit/common/messaging/test_consumer.py54
-rw-r--r--yardstick/tests/unit/common/messaging/test_payloads.py82
-rw-r--r--yardstick/tests/unit/common/messaging/test_producer.py53
-rw-r--r--yardstick/tests/unit/common/test_ansible_common.py (renamed from tests/unit/common/test_ansible_common.py)209
-rw-r--r--yardstick/tests/unit/common/test_exceptions.py28
-rw-r--r--yardstick/tests/unit/common/test_httpClient.py (renamed from tests/unit/common/test_httpClient.py)8
-rw-r--r--yardstick/tests/unit/common/test_import_tools.py46
-rw-r--r--yardstick/tests/unit/common/test_kubernetes_utils.py447
-rw-r--r--yardstick/tests/unit/common/test_openstack_utils.py730
-rw-r--r--yardstick/tests/unit/common/test_packages.py88
-rw-r--r--yardstick/tests/unit/common/test_process.py (renamed from tests/unit/common/test_process.py)10
-rw-r--r--yardstick/tests/unit/common/test_template_format.py (renamed from tests/unit/common/test_template_format.py)17
-rw-r--r--yardstick/tests/unit/common/test_utils.py (renamed from tests/unit/common/test_utils.py)498
-rw-r--r--yardstick/tests/unit/common/test_yaml_loader.py (renamed from tests/unit/common/test_yaml_loader.py)10
-rw-r--r--yardstick/tests/unit/dispatcher/__init__.py0
-rw-r--r--yardstick/tests/unit/dispatcher/test_influxdb.py (renamed from tests/unit/dispatcher/test_influxdb.py)21
-rw-r--r--yardstick/tests/unit/dispatcher/test_influxdb_line_protocol.py (renamed from tests/unit/dispatcher/test_influxdb_line_protocol.py)1
-rw-r--r--yardstick/tests/unit/network_services/__init__.py0
-rw-r--r--yardstick/tests/unit/network_services/collector/__init__.py0
-rw-r--r--yardstick/tests/unit/network_services/collector/test_publisher.py (renamed from tests/unit/network_services/collector/test_publisher.py)5
-rw-r--r--yardstick/tests/unit/network_services/collector/test_subscriber.py120
-rw-r--r--yardstick/tests/unit/network_services/helpers/__init__.py0
-rw-r--r--yardstick/tests/unit/network_services/helpers/acl_vnf_topology_ixia.yaml (renamed from tests/unit/network_services/helpers/acl_vnf_topology_ixia.yaml)0
-rw-r--r--yardstick/tests/unit/network_services/helpers/test_cpu.py215
-rw-r--r--yardstick/tests/unit/network_services/helpers/test_dpdkbindnic_helper.py632
-rw-r--r--yardstick/tests/unit/network_services/helpers/test_iniparser.py (renamed from tests/unit/network_services/helpers/test_iniparser.py)8
-rw-r--r--yardstick/tests/unit/network_services/helpers/test_samplevnf_helper.py (renamed from tests/unit/network_services/helpers/test_samplevnf_helper.py)434
-rw-r--r--yardstick/tests/unit/network_services/helpers/vpp_helpers/__init__.py0
-rw-r--r--yardstick/tests/unit/network_services/helpers/vpp_helpers/test_multiple_loss_ratio_search.py2164
-rw-r--r--yardstick/tests/unit/network_services/helpers/vpp_helpers/test_ndr_pdr_result.py91
-rw-r--r--yardstick/tests/unit/network_services/helpers/vpp_helpers/test_receive_rate_interval.py100
-rw-r--r--yardstick/tests/unit/network_services/helpers/vpp_helpers/test_receive_rate_measurement.py44
-rw-r--r--yardstick/tests/unit/network_services/libs/__init__.py0
-rw-r--r--yardstick/tests/unit/network_services/libs/ixia_libs/__init__.py0
-rw-r--r--yardstick/tests/unit/network_services/libs/ixia_libs/test_ixnet_api.py1057
-rw-r--r--yardstick/tests/unit/network_services/nfvi/__init__.py0
-rw-r--r--yardstick/tests/unit/network_services/nfvi/test_collectd.py (renamed from tests/unit/network_services/nfvi/test_collectd.py)55
-rw-r--r--yardstick/tests/unit/network_services/nfvi/test_resource.py (renamed from tests/unit/network_services/nfvi/test_resource.py)90
-rw-r--r--yardstick/tests/unit/network_services/test_utils.py (renamed from tests/unit/network_services/test_utils.py)2
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/__init__.py0
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_base.py112
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_fixed.py (renamed from tests/unit/network_services/traffic_profile/test_fixed.py)13
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_http.py47
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_http_ixload.py (renamed from tests/unit/network_services/traffic_profile/test_http_ixload.py)202
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_ixia_rfc2544.py1024
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_landslide_profile.py136
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_pktgen.py63
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_prox_acl.py (renamed from tests/unit/network_services/traffic_profile/test_prox_acl.py)22
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_prox_binsearch.py302
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_prox_irq.py57
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_prox_profile.py (renamed from tests/unit/network_services/traffic_profile/test_prox_profile.py)37
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_prox_ramp.py (renamed from tests/unit/network_services/traffic_profile/test_prox_ramp.py)4
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_rfc2544.py341
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_sip.py51
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_trex_traffic_profile.py277
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_vpp_rfc2544.py890
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/__init__.py0
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/test_vnfdgen.py (renamed from tests/unit/network_services/vnf_generic/test_vnfdgen.py)22
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/__init__.py0
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml (renamed from tests/unit/network_services/vnf_generic/vnf/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml)6
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_acl_vnf.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_acl_vnf.py)234
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_agnostic_vnf.py68
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_base.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_base.py)20
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_cgnapt_vnf.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_cgnapt_vnf.py)235
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_epc_vnf.py92
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_ipsec_vnf.py2151
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py)1003
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_irq.py828
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py)135
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_router_vnf.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_router_vnf.py)43
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_sample_vnf.py1532
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_imsbench_sipp.py481
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_ixload.py287
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_landslide.py1951
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_ping.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_tg_ping.py)54
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_pktgen.py66
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_prox.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_tg_prox.py)49
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py1265
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py)157
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py)365
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_trex_vpp.py1130
-rwxr-xr-xyardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_vcmts_pktgen.py652
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_udp_replay.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_udp_replay.py)84
-rwxr-xr-xyardstick/tests/unit/network_services/vnf_generic/vnf/test_vcmts_vnf.py651
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_vfw_vnf.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_vfw_vnf.py)72
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_vims_vnf.py713
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_vpe_vnf.py (renamed from tests/unit/network_services/vnf_generic/vnf/test_vpe_vnf.py)217
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_vpp_helpers.py1723
-rw-r--r--yardstick/tests/unit/orchestrator/__init__.py0
-rw-r--r--yardstick/tests/unit/orchestrator/test_heat.py417
-rw-r--r--yardstick/tests/unit/orchestrator/test_kubernetes.py643
-rw-r--r--yardstick/tests/unit/service/__init__.py0
-rw-r--r--yardstick/tests/unit/service/test_environment.py46
-rw-r--r--yardstick/tests/unit/test_cmd/__init__.py0
-rw-r--r--yardstick/tests/unit/test_cmd/commands/__init__.py0
-rw-r--r--yardstick/tests/unit/test_cmd/commands/test_env.py69
-rw-r--r--yardstick/tests/unit/test_cmd/commands/test_testcase.py (renamed from tests/unit/cmd/commands/test_testcase.py)10
-rw-r--r--yardstick/tests/unit/test_cmd/test_NSBperf.py (renamed from tests/unit/cmd/test_NSBperf.py)65
-rw-r--r--yardstick/tests/unit/test_ssh.py (renamed from tests/unit/test_ssh.py)184
1641 files changed, 344618 insertions, 50812 deletions
diff --git a/.coveragerc b/.coveragerc
index f67853192..3ad7f68a6 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -14,4 +14,4 @@ source = yardstick
[report]
ignore_errors = True
precision = 3
-omit = yardstick/vTC/*
+omit = yardstick/vTC/*,yardstick/tests/functional/*
diff --git a/.gitignore b/.gitignore
index 8be48ac62..79e351fce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,5 @@ cover/
.idea/
# tox virtualenvs
.tox/
+# docs build artifacts
+docs/_build/*
diff --git a/.pylintrc b/.pylintrc
index f5dd77665..78f656269 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -36,6 +36,7 @@ disable=
dangerous-default-value,
deprecated-lambda,
expression-not-assigned,
+ fixme,
global-statement,
literal-comparison,
no-init,
diff --git a/INFO b/INFO
index c19a9d518..8b3da274e 100644
--- a/INFO
+++ b/INFO
@@ -2,8 +2,8 @@ Project: Test framework for verifying infrastructure compliance (yardstick)
Project Creation Date: April 28th, 2015
Project Category: Integration & Testing
Lifecycle State: Incubation
-Primary Contact: ross.b.brattain@intel.com
-Project Lead: ross.b.brattain@intel.com
+Primary Contact: limingjiang@huawei.com
+Project Lead: limingjiang@huawei.com
Jira Project Name: Infrastructure Verification
Jira Project Prefix: Yardstick
Mailing list tag: [Yardstick]
@@ -11,15 +11,18 @@ IRC: #opnfv-yardstick
Repository: yardstick
Committers:
-jorgen.w.karlsson@ericsson.com
jean.gaoliang@huawei.com
-vincenzo.m.riccobene@intel.com
lvjing5@huawei.com
wu.zhihui1@zte.com.cn
14_ykl@tongji.edu.cn
limingjiang@huawei.com
trevor.cooper@intel.com
ross.b.brattain@intel.com
+chenjiankun1@huawei.com
+rodolfo.alonso.hernandez@intel.com
+emma.l.foley@intel.com
+abhijit.sinha@intel.com
+volodymyrx.mytnyk@intel.com
Link to TSC approval: http://meetbot.opnfv.org/meetings/
Link to approval of additional submitters:
diff --git a/INFO.yaml b/INFO.yaml
new file mode 100644
index 000000000..8776e830e
--- /dev/null
+++ b/INFO.yaml
@@ -0,0 +1,84 @@
+---
+project: 'Test framework for verifying infrastructure compliance (yardstick)'
+project_creation_date: 'April 28th, 2015'
+project_category: 'Integration & Testing'
+lifecycle_state: 'Incubation'
+project_lead: &opnfv_yardstick_ptl
+ name: 'Rex Lee'
+ email: 'limingjiang@huawei.com'
+ company: 'huawei.com'
+ id: 'rexlee8776'
+ timezone: 'UTC+8'
+primary_contact: *opnfv_yardstick_ptl
+issue_tracking:
+ type: 'jira'
+ url: 'https://jira.opnfv.org/projects/Yardstick'
+ key: 'Yardstick'
+mailing_list:
+ type: 'mailman2'
+ url: 'opnfv-tech-discuss@lists.opnfv.org'
+ tag: '[yardstick]'
+realtime_discussion:
+ type: irc
+ server: 'freenode.net'
+ channel: '#opnfv-yardstick'
+meetings:
+ - type: 'gotomeeting+irc'
+ agenda: 'https://wiki.opnfv.org/display/yardstick/Yardstick+Meetings'
+ url: 'https://global.gotomeeting.com/join/819733085'
+ server: 'freenode.net'
+ channel: '#opnfv-yardstick'
+ repeats: 'weekly'
+ time: '08:30 UTC'
+repositories:
+ - 'yardstick'
+committers:
+ - <<: *opnfv_yardstick_ptl
+ - name: 'Kubi'
+ email: 'jean.gaoliang@huawei.com'
+ company: 'huawei.com'
+ id: 'kubi'
+ - name: 'Jing Lu'
+ email: 'lvjing5@huawei.com'
+ company: 'huawei.com'
+ id: 'JingLu5'
+ - name: 'zhihui wu'
+ email: 'wu.zhihui1@zte.com.cn'
+ company: 'zte.com.cn'
+ id: 'wu.zhihui'
+ - name: 'Trevor Cooper'
+ email: 'trevor.cooper@intel.com'
+ company: 'intel.com'
+ id: 'trev'
+ - name: 'Jack Chan'
+ email: 'chenjiankun1@huawei.com'
+ company: 'huawei.com'
+ id: 'chenjiankun'
+ - name: 'Emma Foley'
+ email: 'emma.l.foley@intel.com'
+ company: 'intel.com'
+ id: 'elfoley'
+ - name: 'Rodolfo Alonso Hernandez'
+ email: 'rodolfo.alonso.hernandez@intel.com'
+ company: 'intel.com'
+ id: 'rodolfo.ah'
+ - name: 'Kanglin Yin'
+ email: '14_ykl@tongji.edu.cn'
+ company: 'tongji.edu.cn'
+ id: 'tjuyinkanglin'
+ - name: 'Abhijit Sinha'
+ email: 'abhijit.sinha@intel.com'
+ company: 'intel.com'
+ id: 'abhijitsinha'
+ - name: 'Ross Brattain'
+ email: 'ross.b.brattain@intel.com'
+ id: 'rbbratta'
+ company: 'intel.com'
+ - name: 'Volodymyr Mytnyk'
+ email: 'volodymyrx.mytnyk@intel.com'
+ id: 'vmytnykx'
+ company: 'intel.com'
+tsc:
+ # yamllint disable rule:line-length
+ approval: 'http//meetbot.opnfv.org/meetings/'
+ # yamllint enable rule:line-length
diff --git a/ansible/multi_port_baremetal_ixia_correlated_test.yaml b/ansible/baremetal_scale_out_ixia_correlated_test.yaml
index ba92b5cd3..13f6fef15 100644
--- a/ansible/multi_port_baremetal_ixia_correlated_test.yaml
+++ b/ansible/baremetal_scale_out_ixia_correlated_test.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation. #
+# Copyright (c) 2018 Intel Corporation. #
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
@@ -42,7 +42,6 @@
lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0"
root_dir: "/opt/ixia/ixos-api/8.01.0.2/"
py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/"
- py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi"
dut_result_dir: "/mnt/results"
version: "8.01.106.3"
pcis:
@@ -113,6 +112,7 @@
ip:
mgmt:
- '1.2.1.6/24'
+ - '1.2.1.7/24'
uplink:
- '152.16.100.10/24'
- '172.16.100.10/24'
@@ -128,6 +128,6 @@
- '00:00:00:9e:00:fb'
tasks:
- - include: multi_port_baremetal_ixia_correlated_test_templates.yml
+ - include: baremetal_scale_out_ixia_correlated_test_templates.yml
with_items: "{{ scale_out }}"
diff --git a/ansible/multi_port_baremetal_ixia_correlated_test_templates.yml b/ansible/baremetal_scale_out_ixia_correlated_test_templates.yml
index 6f73d8c01..11d3d4674 100644
--- a/ansible/multi_port_baremetal_ixia_correlated_test_templates.yml
+++ b/ansible/baremetal_scale_out_ixia_correlated_test_templates.yml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation. #
+# Copyright (c) 2018 Intel Corporation. #
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
@@ -15,6 +15,10 @@
- set_fact:
num_vnfs: "{{ item }}"
+- file:
+ path: /etc/yardstick/nodes
+ state: directory
+
- debug:
var: num_vnfs
verbosity: 2
@@ -24,33 +28,33 @@
dest: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
- template:
- src: ../etc/yardstick/nodes/standalone/ixia_template.yaml
- dest: /etc/yardstick/nodes/ixia_{{ num_vnfs }}.yaml
+ src: ../etc/yardstick/nodes/standalone/ixia_correlated_template.yaml
+ dest: /etc/yardstick/nodes/ixia_correlated_{{ num_vnfs }}.yaml
- template:
- src: ../etc/yardstick/nodes/standalone/pod_bm_vnf.yaml
+ src: ../etc/yardstick/nodes/standalone/pod_bm_vnf_scale_out.yaml
dest: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml
- template:
- src: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_template.yaml
- dest: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_{{ num_vnfs }}.yaml
+ src: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_scale_out_template.yaml
+ dest: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_scale_out_{{ num_vnfs }}.yaml
- template:
- src: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-correlated-multi-port.yaml
- dest: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml
+ src: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-correlated-scale-out.yaml
+ dest: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
- template:
- src: ../samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_template.yaml
- dest: ../samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_{{num_vnfs}}.yaml
+ src: ../samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_scale_out_template.yaml
+ dest: ../samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_scale_out_{{num_vnfs}}.yaml
- template:
- src: ../samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-correlated-multi-port.yaml
- dest: ../samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml
+ src: ../samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-correlated-scale-out.yaml
+ dest: ../samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
- template:
- src: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_template.yaml
- dest: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_{{num_vnfs}}.yaml
+ src: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_scale_out_template.yaml
+ dest: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_scale_out_{{num_vnfs}}.yaml
- template:
- src: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-correlated-multi-port.yaml
- dest: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml
+ src: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-correlated-scale-out.yaml
+ dest: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
diff --git a/ansible/build_vm.yml b/ansible/build_vm.yml
new file mode 100644
index 000000000..9774f9ff5
--- /dev/null
+++ b/ansible/build_vm.yml
@@ -0,0 +1,44 @@
+- name: Prepare to build VM
+ hosts: jumphost
+ become: yes
+ vars:
+ img_prop_item: "{{ IMG_PROPERTY }}"
+ img_arch: "{{ YARD_IMG_ARCH }}"
+
+ tasks:
+ - name: Include pre-build
+ include_role:
+ name: build_yardstick_image
+ tasks_from: pre_build.yml
+ when:
+ - installation_mode != inst_mode_container
+
+
+- name: Build VM in chroot
+ hosts: chroot_image
+ connection: chroot
+ become: yes
+ vars:
+ img_property: "{{ IMG_PROPERTY }}"
+ environment: "{{ proxy_env }}"
+
+ tasks:
+ - name: Include image build
+ include_role:
+ name: build_yardstick_image
+ tasks_from: "cloudimg_modify_{{ img_property }}.yml"
+ when:
+ - installation_mode != inst_mode_container
+
+
+- name: Clear up after VM is built
+ hosts: jumphost
+ become: yes
+
+ tasks:
+ - name: Include post-build
+ include_role:
+ name: build_yardstick_image
+ tasks_from: post_build.yml
+ when:
+ - installation_mode != inst_mode_container
diff --git a/ansible/build_yardstick_image.yml b/ansible/build_yardstick_image.yml
index 7f709873e..495a547bb 100644
--- a/ansible/build_yardstick_image.yml
+++ b/ansible/build_yardstick_image.yml
@@ -19,17 +19,22 @@
'amd64': disk1
'arm64': uefi1
boot_mode: "{{ boot_modes[YARD_IMG_ARCH] }}"
- image_filename: "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}-{{ boot_mode }}.img"
- image_path: "{{ release }}/current/{{ image_filename }}"
+ image_filename:
+ 'xenial': "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}-{{ boot_mode }}.img"
+ 'bionic': "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}.img"
+ image_path: "{{ release }}/current/{{ image_filename[release] }}"
host: "{{ lookup('env', 'HOST')|default('cloud-images.ubuntu.com', true)}}"
image_url: "{{ lookup('env', 'IMAGE_URL')|default('https://' ~ host ~ '/' ~ image_path, true) }}"
- image_dest: "{{ workspace }}/{{ image_filename }}"
+ image_dest: "{{ workspace }}/{{ image_filename[release] }}"
sha256sums_path: "{{ release }}/current/SHA256SUMS"
sha256sums_filename: "{{ sha256sums_path|basename }}"
sha256sums_url: "{{ lookup('env', 'SHA256SUMS_URL')|default('https://' ~ host ~ '/' ~ sha256sums_path, true) }}"
workspace: "{{ lookup('env', 'workspace')|default('/tmp/workspace/yardstick', true) }}"
raw_imgfile_basename: "yardstick-{{ release }}-server.raw"
+ growpart_package:
+ RedHat: cloud-utils-growpart
+ Debian: cloud-guest-utils
environment:
- PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin
- "{{ proxy_env }}"
@@ -39,6 +44,8 @@
key: image_builder
- package: name=parted state=present
+ - package: name=kpartx state=present
+ - package: name="{{ growpart_package[ansible_os_family] }}" state=present
- set_fact:
imgfile: "{{ normal_image_file }}"
@@ -54,7 +61,7 @@
- set_fact:
raw_imgfile: "{{ workspace }}/{{ raw_imgfile_basename }}"
- # cleanup non-lxd
+ # cleanup non-lxd
- name: unmount all old mount points
mount:
name: "{{ item }}"
@@ -69,6 +76,21 @@
command: kpartx -dv "{{ raw_imgfile }}"
ignore_errors: true
+ - name: Debug dump loop devices
+ command: losetup -a
+ ignore_errors: true
+
+ - name: delete loop devices for image file
+ # use this because kpartx -dv will fail if raw_imgfile was delete
+ # but in theory we could have deleted file still attached to loopback device?
+ # use grep because of // and awk
+ shell: losetup -O NAME,BACK-FILE | grep "{{ raw_imgfile_basename }}" | awk '{ print $1 }' | xargs -l1 losetup -v -d
+ ignore_errors: true
+
+ - name: Debug dump loop devices again
+ command: losetup -a
+ ignore_errors: true
+
- name: delete {{ raw_imgfile }}
file:
path: "{{ raw_imgfile }}"
@@ -99,7 +121,8 @@
command: "qemu-img resize -f raw {{ raw_imgfile }} +2G"
- name: resize parition to allow for more VNFs
- command: "parted -s -a optimal {{ raw_imgfile }} resizepart 1 100%"
+ # use growpart because maybe it handles GPT better than parted
+ command: growpart {{ raw_imgfile }} 1
- name: create mknod devices in chroot
command: "mknod -m 0660 /dev/loop{{ item }} b 7 {{ item }}"
@@ -109,7 +132,6 @@
tags: mknod_devices
- name: find first partition device
-# command: kpartx -l "{{ loop_device }}"
command: kpartx -l "{{ raw_imgfile }}"
register: kpartx_res
diff --git a/ansible/clone_repos.yml b/ansible/clone_repos.yml
index 6f69b6b15..f35be0016 100644
--- a/ansible/clone_repos.yml
+++ b/ansible/clone_repos.yml
@@ -17,21 +17,8 @@
YARDSTICK_REPO: "{{ lookup('env', 'YARDSTICK_REPO')|default('https://gerrit.opnfv.org/gerrit/yardstick', true) }}"
YARDSTICK_REPO_DIR: "{{ lookup('env', 'YARDSTICK_REPO_DIR')|default('/home/opnfv/repos/yardstick', true) }}"
YARDSTICK_BRANCH: "{{ lookup('env', 'YARDSTICK_BRANCH')|default('master', true) }}"
- RELENG_REPO: "{{ lookup('env', 'RELENG_REPO')|default('https://gerrit.opnfv.org/gerrit/releng', true) }}"
- RELENG_REPO_DIR: "{{ lookup('env', 'RELENG_REPO_DIR')|default('/home/opnfv/repos/releng', true) }}"
- RELENG_BRANCH: "{{ lookup('env', 'RELENG_BRANCH')|default('master', true) }}"
-
tasks:
- - name: Updating releng -> "{{ RELENG_BRANCH }}"
- git:
- repo: "{{ RELENG_REPO }}"
- dest: "{{ RELENG_REPO_DIR }}"
- version: "{{ RELENG_BRANCH }}"
- accept_hostkey: yes
- recursive: no
- force: yes
-
- name: Updating yardstick -> "{{ YARDSTICK_BRANCH }}"
git:
repo: "{{ YARDSTICK_REPO }}"
diff --git a/ansible/deploy_kube.yml b/ansible/deploy_kube.yml
new file mode 100644
index 000000000..b71e7dc7c
--- /dev/null
+++ b/ansible/deploy_kube.yml
@@ -0,0 +1,28 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- hosts: master
+ become: yes
+ environment: "{{ proxy_env }}"
+ roles:
+ - set_package_installer_proxy
+ - install_dependencies_kubernetes
+ - docker
+ - install_go
+ - install_kube
+ - build_cni
+ - role: download_dpdk
+ dpdk_version: "17.02.1"
+ - install_dpdk
+ - init_kubeadm
diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 359968277..e94d24023 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -1,9 +1,25 @@
---
target_os: "Ubuntu"
-YARD_IMG_ARCH: "amd64"
+YARD_IMG_ARCH: "{{ YARD_IMAGE_ARCH | default('amd64') }}"
+IMG_PROPERTY: "{{ IMAGE_PROPERTY | default('normal') }}"
clone_dest: /opt/tempT
-release: xenial
+release: "{{ OS_RELEASE | default('xenial') }}"
normal_image_file: "{{ workspace }}/yardstick-image.img"
nsb_image_file: "{{ workspace }}/yardstick-nsb-image.img"
ubuntu_image_file: /tmp/workspace/yardstick/yardstick-trusty-server.raw
-proxy_env: {}
+arch_amd64: "amd64"
+arch_arm64: "arm64"
+inst_mode_baremetal: "baremetal"
+inst_mode_container: "container"
+inst_mode_container_pull: "container_pull"
+ubuntu_archive:
+ "amd64": "http://archive.ubuntu.com/ubuntu/"
+ "arm64": "http://ports.ubuntu.com/ubuntu-ports/"
+installation_mode: "{{ INSTALLATION_MODE | default('baremetal') }}"
+yardstick_dir: "{{ YARDSTICK_DIR | default('/home/opnfv/repos/yardstick') }}"
+proxy_env:
+ PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin
+ http_proxy: "{{ lookup('env', 'http_proxy') }}"
+ https_proxy: "{{ lookup('env', 'https_proxy') }}"
+ ftp_proxy: "{{ lookup('env', 'ftp_proxy') }}"
+ no_proxy: "{{ lookup('env', 'no_proxy') }}"
diff --git a/ansible/group_vars/master.yml b/ansible/group_vars/master.yml
new file mode 100644
index 000000000..f5f703a2f
--- /dev/null
+++ b/ansible/group_vars/master.yml
@@ -0,0 +1,39 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+cni_info:
+ multus-cni:
+ repo_url: https://github.com/Intel-Corp/multus-cni
+ repo_ver: v1.2
+ build_script: build
+ sriov-cni:
+ repo_url: https://github.com/Intel-Corp/sriov-cni
+ repo_ver: v0.4.0
+ build_script: build
+ containernetworking-cni:
+ repo_url: https://github.com/containernetworking/cni
+ repo_ver: v0.6.0
+ build_script: build.sh
+ containernetworking-plugins:
+ repo_url: https://github.com/containernetworking/plugins
+ repo_ver: v0.7.1
+ build_script: build.sh
+kubeadm_kubernetes_version: 1.9.3
+# Default CIDR defined in kube-flannel.yml
+kubeadm_pod_network_cidr: 10.244.0.0/16
+kubelet_cluster_dns_ip: 172.20.0.10
+docker_daemon_config:
+ bip: 172.10.1.1/16
+ fixed-cidr: 172.10.0.0/24
+ mtu: 1500
diff --git a/ansible/image_uploaders/upload_yardstick_image.yml b/ansible/image_uploaders/upload_yardstick_image.yml
index 9364c52a5..e61e2ab67 100644
--- a/ansible/image_uploaders/upload_yardstick_image.yml
+++ b/ansible/image_uploaders/upload_yardstick_image.yml
@@ -18,10 +18,9 @@
- get_url:
url: "{{ CLOUD_IMG_URL }}"
dest: "{{ CLOUD_IMAGE }}"
-
- - name: Extra cloud image kernel
- - unarchive:
- asdf:
+#
+# - name: Extra cloud image kernel
+# - unarchive:
- os_image:
name: yardstick-{{ release }}-kernel
diff --git a/ansible/infra_deploy.yml b/ansible/infra_deploy.yml
new file mode 100644
index 000000000..4a5716eee
--- /dev/null
+++ b/ansible/infra_deploy.yml
@@ -0,0 +1,50 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- hosts: jumphost
+ vars:
+ rs_file: "{{ RS_FILE }}"
+ clean_up: "{{ CLEAN_UP | default(False) }}" # If True will be delete all VMs, networks, disk images
+
+ tasks:
+ - set_fact:
+ proxy_host: "{{ lookup('env', 'http_proxy') | urlsplit('hostname') }}"
+ proxy_proto: "{{ lookup('env', 'http_proxy') | urlsplit('scheme') }}"
+ proxy_port: "{{ lookup('env', 'http_proxy') | urlsplit('port') }}"
+
+ - set_fact:
+ proxy_host_ip: "{{ lookup('dig', proxy_host) }}"
+
+ roles:
+ - infra_install_dependencies
+ - infra_destroy_previous_configuration
+ - infra_check_requirements
+ - infra_create_network
+ - infra_create_vms
+ - infra_prepare_vms
+
+- hosts: deploy,regular,yardstickG
+ gather_facts: no
+ become: yes
+
+ roles:
+ - infra_rampup_stack_nodes
+
+
+- hosts: deploy
+ become: yes
+ environment: "{{ proxy_env }}"
+
+ roles:
+ - infra_deploy_openstack
diff --git a/ansible/install-inventory.ini b/ansible/install-inventory.ini
new file mode 100644
index 000000000..07d2c13f4
--- /dev/null
+++ b/ansible/install-inventory.ini
@@ -0,0 +1,29 @@
+# the group of systems on which to install yardstick
+# by default just localhost
+[jumphost]
+localhost ansible_connection=local
+
+# section below is only due backward compatibility.
+# it will be removed later
+[yardstick:children]
+jumphost
+
+[yardstick-baremetal]
+# baremetal-node ansible_host=192.168.2.51 ansible_user=ubuntu ansible_ssh_pass=password ansible_connection=ssh
+
+[yardstick-standalone]
+# standalone-node ansible_host=192.168.2.52 ansible_user=ubuntu ansible_ssh_pass=password ansible_connection=ssh
+
+[all:vars]
+# Uncomment credentials below if needed
+# ansible_user=root
+# ansible_ssh_pass=root
+# ansible_ssh_private_key_file=/root/.ssh/id_rsa
+
+# When IMG_PROPERTY is passed neither normal nor nsb set "path_to_vm=/path/to/image" to add it to OpenStack
+# path_to_img=/tmp/workspace/yardstick-image.img
+
+# List of CPUs to be isolated (not used by default)
+# Grub line will be extended with: "isolcpus=<ISOL_CPUS> nohz=on nohz_full=<ISOL_CPUS> rcu_nocbs=1<ISOL_CPUS>"
+# ISOL_CPUS=2-27,30-55 # physical cpu's for all NUMA nodes, four cpu's reserved for kernel
+# ISOL_CPUS=2-27,58-83 # physical cpu's for first NUMA node, four cpu's reserved for kernel
diff --git a/ansible/install.yaml b/ansible/install.yaml
new file mode 100644
index 000000000..a78a11f68
--- /dev/null
+++ b/ansible/install.yaml
@@ -0,0 +1,224 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- hosts: jumphost
+ become: yes
+ vars:
+ virtual_environment: "{{ VIRTUAL_ENVIRONMENT | default(False) }}"
+ nsb_dir: "{{ NSB_DIR | default('/opt/nsb_bin/') }}"
+
+ pre_tasks:
+
+ - name: Create NSB binaries directory, accessible to any user
+ file:
+ path: "{{ nsb_dir }}"
+ state: directory
+ owner: root
+ mode: 0777
+ when:
+ - installation_mode != inst_mode_container_pull
+
+ roles:
+ - add_repos_jumphost
+ - install_dependencies_jumphost
+ - { role: install_yardstick, when: installation_mode != inst_mode_container_pull }
+ - { role: configure_uwsgi, when: installation_mode != inst_mode_container_pull }
+ - { role: configure_nginx, when: installation_mode != inst_mode_container_pull }
+ - { role: configure_gui, when: installation_mode != inst_mode_container_pull }
+ - { role: download_trex, when: installation_mode != inst_mode_container_pull }
+ - { role: install_trex, when: installation_mode != inst_mode_container_pull }
+ - role: configure_rabbitmq
+ install_mode: "{{ installation_mode }}"
+
+
+ post_tasks:
+
+ - service:
+ name: nginx
+ state: restarted
+ when: installation_mode == inst_mode_baremetal
+
+ - shell: uwsgi -i /etc/yardstick/yardstick.ini
+ when: installation_mode == inst_mode_baremetal
+
+
+- name: Prepare baremetal and standalone servers
+ hosts: yardstick-baremetal,yardstick-standalone
+ become: yes
+ vars_files:
+ - roles/download_dpdk/defaults/main.yml
+ environment: "{{ proxy_env }}"
+
+ roles:
+ - add_custom_repos
+ - role: set_package_installer_proxy
+ when: proxy_env is defined and proxy_env
+ # can't update grub in chroot/docker
+ - enable_hugepages_on_boot
+ - enable_iommu_on_boot
+ - enable_cpu_isolation_on_boot
+ # needed for collectd plugins
+ - increase_open_file_limits
+ - install_image_dependencies
+ - role: download_dpdk
+ dpdk_version: "{{ dpdk_version_for_PROX }}"
+ - role: install_dpdk
+ dpdk_version: "{{ dpdk_version_for_PROX }}"
+ - download_samplevnfs
+ - role: install_samplevnf
+ vnf_name: PROX
+ - download_dpdk
+ - install_dpdk
+ - download_trex
+ - install_trex
+ - download_civetweb
+ - install_civetweb
+ - role: install_samplevnf
+ vnf_name: UDP_Replay
+ - role: install_samplevnf
+ vnf_name: ACL
+ - role: install_samplevnf
+ vnf_name: FW
+ - role: install_samplevnf
+ vnf_name: CGNAPT
+ # build shared DPDK for collectd only, required DPDK downloaded already
+ - install_dpdk_shared
+ - install_rabbitmq
+ - download_intel_cmt_cat
+ - install_intel_cmt_cat
+ - download_pmu_tools
+ - install_pmu_tools
+ - download_collectd
+ - install_collectd
+ - docker
+ - barometer_collectd
+
+- name: Prepare to build VM
+ hosts: yardstick-standalone
+ become: yes
+ vars:
+ img_prop_item: "{{ IMG_PROPERTY }}"
+ img_arch: "{{ YARD_IMG_ARCH }}"
+ environment: "{{ proxy_env }}"
+
+ tasks:
+ - file:
+ dest: /tmp/ansible
+ state: directory
+ mode: 0755
+
+ - name: Copy ansible folder to remote DUT
+ copy:
+ src: "."
+ dest: /tmp/ansible
+
+ - name: Install DUT related packages
+ apt:
+ name: "{{ packages }}"
+ vars:
+ packages:
+ - qemu-kvm
+ - libvirt-bin
+ - bridge-utils
+ - fping
+ - genisoimage
+
+ # There is a bug with the easy install ansible module in Ubuntu 16.04 linux.
+ # Refer https://github.com/ansible/ansible/issues/23534
+ - name: Install pip
+ shell: easy_install -U pip
+ when:
+ - ansible_distribution == 'Ubuntu'
+ - ansible_distribution_major_version|int <= 16
+
+ - name: Install python-pip
+ action: "{{ ansible_pkg_mgr }} name=python-pip state=present"
+ when:
+ - ansible_distribution == 'Ubuntu'
+ - ansible_distribution_major_version|int >= 17
+
+ - name: Update pip ansible docker
+ pip:
+ name: "ansible==2.5.5"
+
+ # This is used as workaround as ansible doesn't support chroot on remote server
+ - name: Run ansible on remote
+ shell: "ansible-playbook -e OS_RELEASE={{ OS_RELEASE }} -e IMAGE_PROPERTY={{ IMAGE_PROPERTY }} -e YARD_IMAGE_ARCH={{ YARD_IMAGE_ARCH }} -i install-inventory.ini build_vm.yml -vv"
+ args:
+ chdir: "/tmp/ansible"
+
+
+- name: Add OpenStack variables, image
+ hosts: jumphost
+ vars:
+ openrc_flag: false
+ vars_files:
+ - yardstick_config.yml
+
+ pre_tasks:
+ - name: Get information about external VM image
+ stat:
+ path: "{{ path_to_img }}"
+ register: image_file_stat
+ when:
+ - path_to_img is defined
+ - imgfile is not defined
+
+ - set_fact:
+ imgfile: "{{ path_to_img }}"
+ when:
+ - path_to_img is defined
+ - imgfile is not defined
+ - image_file_stat.stat.islnk is defined
+ - not image_file_stat.stat.islnk
+
+ - set_fact:
+ openrc_flag: true
+ when:
+ - openrc_file is defined
+ - imgfile is defined
+
+ roles:
+ - { role: convert_openrc, when: openrc_file is defined }
+ - { role: clean_images, when: openrc_flag }
+ - { role: clean_flavors, when: openrc_flag }
+ - { role: create_samplevnfs_image, when: openrc_flag }
+ environment:
+ "{{ openrc | default({}) }}"
+
+
+- name: Start yardstick container on jumphost
+ hosts: jumphost
+
+ tasks:
+ - name: Install docker needed to pull Yardstick container
+ include_role:
+ name: docker
+ when: installation_mode == inst_mode_container_pull
+
+ - name: Start yardstick container
+ docker_container:
+ name: yardstick
+ pull: yes
+ recreate: yes
+ image: "{{ yardstick_docker_image|default('opnfv/yardstick:latest') }}"
+ state: started
+ restart_policy: always
+ privileged: yes
+ interactive: yes
+ volumes:
+ - "{{ openrc_file|default('/dev/null') }}:/etc/yardstick/openstack.creds:ro"
+ - /var/run/docker.sock:/var/run/docker.sock
+ - /etc/localtime:/etc/localtime:ro
+ when: installation_mode == inst_mode_container_pull
diff --git a/ansible/install_trex_standalone.yml b/ansible/install_trex_standalone.yml
deleted file mode 100644
index 9cf64142b..000000000
--- a/ansible/install_trex_standalone.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (c) 2017 Intel Corporation.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
----
-- hosts: yardstick
- vars:
- ansible_python_interpreter: "/usr/bin/env python"
- # needed for virtualenv
- NSB_INSTALL_DIR: /root/nsb_install
- INSTALL_BIN_PATH: /opt/nsb_bin
- #TREX_DOWNLOAD: "https://trex-tgn.cisco.com/trex/release/v2.05.tar.gz"
- TREX_VERSION: v2.20
- TREX_DOWNLOAD: "https://trex-tgn.cisco.com/trex/release/{{ TREX_VERSION }}.tar.gz"
-
- tasks:
- - get_url:
- url: "{{ TREX_DOWNLOAD }}"
- dest: "{{ NSB_INSTALL_DIR }}"
- checksum: "sha256:b9620341e552d2ef71d5ffa39ef92f12a1186836c250390db77bd7228497b91c"
-
- - unarchive:
- src: "{{ NSB_INSTALL_DIR }}/{{ TREX_DOWNLOAD|basename }}"
- dest: "{{ NSB_INSTALL_DIR }}"
- copy: no
-
- - file: path="{{ INSTALL_BIN_PATH }}/trex" state=absent
- - file: path="{{ INSTALL_BIN_PATH }}/trex" state=directory
-
- - command: mv "{{ NSB_INSTALL_DIR }}/{{ TREX_DOWNLOAD|basename|regex_replace('\.tar.gz', '') }}" "{{ INSTALL_BIN_PATH }}/trex/scripts"
-
- - file: path="{{ INSTALL_BIN_PATH }}/trex/scripts/automation/trex_control_plane/stl/__init__.py" state=touch
-
- - command: cp "{{ INSTALL_BIN_PATH }}/trex/scripts/dpdk_nic_bind.py" "{{ INSTALL_BIN_PATH }}"
-
- - name: add scripts to PYTHONPATH
- lineinfile:
- dest: /etc/environment
- regexp: "^PYTHONPATH="
- line: "PYTHONPATH={{ INSTALL_BIN_PATH }}/trex/scripts/automation/trex_control_plane:{{ INSTALL_BIN_PATH }}/trex/scripts/automation/trex_control_plane/stl:{{ NSB_INSTALL_DIR }}/yardstick"
- state: present
- create: yes
diff --git a/ansible/kube-inventory.ini b/ansible/kube-inventory.ini
new file mode 100644
index 000000000..ff11b391d
--- /dev/null
+++ b/ansible/kube-inventory.ini
@@ -0,0 +1,6 @@
+[master]
+kube-master ansible_host=192.168.1.155
+
+[master:vars]
+ansible_user=ubuntu
+ansible_ssh_private_key_file=ubuntu.key
diff --git a/ansible/library/fetch_url_and_verify.py b/ansible/library/fetch_url_and_verify.py
index 6c5c0a8c2..13e8608b2 100644
--- a/ansible/library/fetch_url_and_verify.py
+++ b/ansible/library/fetch_url_and_verify.py
@@ -13,6 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+# pylint: disable-all
+
DOCUMENTATION = '''
---
module: fetch_url_and_verify
@@ -42,6 +44,7 @@ def main():
dest = params['dest']
sha256url = params['sha256url']
retries = params['retries']
+ sha256line = ''
image_dir, image_filename = os.path.split(dest)
rc, stdout, stderr = module.run_command(['curl', '-sS', sha256url])
@@ -59,7 +62,7 @@ def main():
module.exit_json(changed=False, dest=dest, url=url,
sha256sum=sha256sum)
- for retry in range(retries):
+ for _ in range(retries):
curl_rc, stdout, stderr = module.run_command(
['curl', '-sS', '-o', dest, url], cwd=image_dir)
if curl_rc == 0:
@@ -74,7 +77,7 @@ def main():
# <<INCLUDE_ANSIBLE_MODULE_COMMON>>
-from ansible.module_utils.basic import * # noqa
+from ansible.module_utils.basic import *
if __name__ == '__main__':
main()
diff --git a/ansible/load_images.yml b/ansible/load_images.yml
index a4c130d46..d4b24c864 100644
--- a/ansible/load_images.yml
+++ b/ansible/load_images.yml
@@ -29,41 +29,15 @@
IMAGE_COMMAND: yardstick-img-modify
IMAGE_OUTPUT: "/tmp/workspace/yardstick/yardstick-image.tar.gz"
-# QCOW_IMAGE: "/tmp/workspace/yardstick/yardstick-image.img"
-# RAW_IMAGE: "/tmp/workspace/yardstick/yardstick-image.tar.gz"
-# IMAGE_COMMANDS:
-# 'lxd': yardstick-img-lxd-modify
-# 'default': yardstick-img-modify
-
-
roles:
- role: add_fuel_jumphost
when: "INSTALLER_TYPE == 'fuel'"
- role: detect_fuel_arch
when: "INSTALLER_TYPE == 'fuel'"
-# post_tasks:
-#
-# - command: "{{ DEPLOY_VARS[DEPLOY_SCENARIO].IMAGE_COMMAND }}" "{{ IMAGE_MODIFY_SCRIPT }}"
-# become: true
-# register: image_modify_result
-# retries: 2
-# untils: image_modify_result|succeeded
-#
-# - stat: path="{{ DEPLOY_VARS[DEPLOY_SCENARIO].IMAGE_OUTPUT }}"}
-# register: output_stat
-#
-# - fail: msg=""
-# when: not output_stat
-
-
- include: build_yardstick_image.yml
+ vars:
+ img_property: normal
- include: image_uploaders/upload_yardstick_image.yml
-# upload cirros
-# upload vanilla ubuntu cloud_image
-
-# - include: create_flavors.yml
-
-
diff --git a/ansible/multi_port_baremetal_ixia_test.yaml b/ansible/multi_port_baremetal_ixia_test.yaml
index 52bc40b43..d2dfaa3c4 100644
--- a/ansible/multi_port_baremetal_ixia_test.yaml
+++ b/ansible/multi_port_baremetal_ixia_test.yaml
@@ -42,7 +42,6 @@
lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0"
root_dir: "/opt/ixia/ixos-api/8.01.0.2/"
py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/"
- py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi"
dut_result_dir: "/mnt/results"
version: "8.01.106.3"
pcis:
diff --git a/ansible/multi_port_baremetal_ixia_test_templates.yml b/ansible/multi_port_baremetal_ixia_test_templates.yml
index f2e04a2d1..832f025a1 100644
--- a/ansible/multi_port_baremetal_ixia_test_templates.yml
+++ b/ansible/multi_port_baremetal_ixia_test_templates.yml
@@ -15,6 +15,10 @@
- set_fact:
num_vnfs: "{{ item }}"
+- file:
+ path: /etc/yardstick/nodes
+ state: directory
+
- debug:
var: num_vnfs
verbosity: 2
@@ -25,15 +29,15 @@
- template:
src: ../etc/yardstick/nodes/standalone/ixia_template.yaml
- dest: /etc/yardstick/nodes/ixia_{{ num_vnfs }}.yaml
+ dest: /etc/yardstick/nodes/baremetal_ixia_{{ num_vnfs }}.yaml
- template:
src: ../etc/yardstick/nodes/standalone/pod_bm_vnf.yaml
dest: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml
- template:
- src: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml
- dest: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_{{ num_vnfs }}.yaml
+ src: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_ixia_template.yaml
+ dest: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_ixia_{{ num_vnfs }}.yaml
- template:
src: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-multi-port.yaml
@@ -45,7 +49,7 @@
- template:
src: ../samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-multi-port.yaml
- dest: ../samples/vnf_samples/nsut/acl/acl-tg-topology-multi-port-ixia-{{ num_vnfs }}.yaml
+ dest: ../samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-multi-port-{{ num_vnfs }}.yaml
- template:
src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml
diff --git a/ansible/multi_port_baremetal_test_templates.yml b/ansible/multi_port_baremetal_test_templates.yml
index 4b905f8c7..2d0259364 100644
--- a/ansible/multi_port_baremetal_test_templates.yml
+++ b/ansible/multi_port_baremetal_test_templates.yml
@@ -15,6 +15,10 @@
- set_fact:
num_vnfs: "{{ item }}"
+- file:
+ path: /etc/yardstick/nodes
+ state: directory
+
- debug:
var: num_vnfs
verbosity: 2
@@ -40,8 +44,8 @@
dest: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-multi-port-{{ num_vnfs }}.yaml
- template:
- src: ../samples/vnf_samples/nsut/acl/tc_baremetal_vfw_rfc2544_template.yaml
- dest: ../samples/vnf_samples/nsut/acl/tc_baremetal_vfw_rfc2544_{{ num_vnfs }}.yaml
+ src: ../samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_template.yaml
+ dest: ../samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_{{ num_vnfs }}.yaml
- template:
src: ../samples/vnf_samples/nsut/acl/acl-tg-topology-multi-port.yaml
@@ -52,8 +56,8 @@
dest: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-{{ num_vnfs }}.yaml
- template:
- src: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_vfw_rfc2544_template.yaml
- dest: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_vfw_rfc2544_{{ num_vnfs }}.yaml
+ src: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_template.yaml
+ dest: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_{{ num_vnfs }}.yaml
- template:
src: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-multi-port.yaml
diff --git a/ansible/nsb_setup.yml b/ansible/nsb_setup.yml
index bfe5d2349..fcde1d1b2 100644
--- a/ansible/nsb_setup.yml
+++ b/ansible/nsb_setup.yml
@@ -12,18 +12,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-#- name: Prepare baremetal machine
-# include: ubuntu_server_baremetal_deploy_samplevnfs.yml
-# vars:
-# YARD_IMG_ARCH: amd64
-#
-#- name: Install jumphost dependencies and configure docker
-# hosts: jumphost
-# environment:
-# "{{ proxy_env }}"
-# roles:
-# - install_dependencies
-# - docker
+- name: Prepare baremetal machine
+ include: ubuntu_server_baremetal_deploy_samplevnfs.yml
+ vars:
+ YARD_IMG_ARCH: amd64
+
+- name: Install jumphost dependencies and configure docker
+ hosts: jumphost
+ environment:
+ "{{ proxy_env }}"
+ roles:
+ - install_dependencies_jumphost
+ - docker
- name: "handle all openstack stuff when: openrc_file is defined"
include: prepare_openstack.yml
@@ -37,7 +37,7 @@
name: yardstick
pull: yes
recreate: yes
- image: opnfv/yardstick:latest
+ image: "{{ yardstick_docker_image|default('opnfv/yardstick:latest') }}"
state: started
restart_policy: always
privileged: yes
diff --git a/ansible/prepare_env.yml b/ansible/prepare_env.yml
index a1299c38e..321521334 100644
--- a/ansible/prepare_env.yml
+++ b/ansible/prepare_env.yml
@@ -28,10 +28,6 @@
- fail: msg="{{ INSTALLER_TYPE }} not in {{ INSTALLERS }}"
when: not openrc_present and (INSTALLER_TYPE not in INSTALLERS)
- - name: fetch OS credentials
- command: "{{ RELENG_REPO_DIR }}/utils/fetch_os_creds.sh {{ '-v' if DEPLOY_TYPE == 'virt' else '' }} -d {{ OPENRC }} -i {{ INSTALLER_TYPE }} -a {{ INSTALLER_IP }}"
- when: not openrc_present
-
roles:
- role: convert_openrc
diff --git a/ansible/prepare_openstack.yml b/ansible/prepare_openstack.yml
index 8456c9e59..c9067c9fb 100644
--- a/ansible/prepare_openstack.yml
+++ b/ansible/prepare_openstack.yml
@@ -12,27 +12,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-- name: convert openrc_file to openrc env dict
+- name: Convert openrc_file to openrc env dict
hosts: jumphost
vars_files:
- yardstick_config.yml
roles:
- convert_openrc
-###
-# Build yardstick image for openstack quest
-# check included file for other vars/env
-###
-- include: build_yardstick_image.yml
+- name: Build Yardstick image for OpenStack
+ include: build_yardstick_image.yml
vars:
YARD_IMG_ARCH: amd64
- release: xenial
+ img_property: nsb
-###
-# Delete old yardstick image and flavors
-# Upload new image
-###
-- name: cleanup old openstack images, upload new
+- name: Cleanup old OpenStack images and upload the new one
hosts: jumphost
vars_files:
- yardstick_config.yml
diff --git a/ansible/roles/add_custom_repos/tasks/main.yml b/ansible/roles/add_custom_repos/tasks/main.yml
index 7341ad07d..b1dfd542d 100644
--- a/ansible/roles/add_custom_repos/tasks/main.yml
+++ b/ansible/roles/add_custom_repos/tasks/main.yml
@@ -12,5 +12,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-- include: "{{ target_os|lower }}.yml"
+- include_tasks: "{{ target_os|lower }}.yml"
diff --git a/ansible/roles/add_repos_jumphost/tasks/Debian.yml b/ansible/roles/add_repos_jumphost/tasks/Debian.yml
new file mode 100644
index 000000000..e15699617
--- /dev/null
+++ b/ansible/roles/add_repos_jumphost/tasks/Debian.yml
@@ -0,0 +1,80 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+# Arguments needed: arch_arm64, arch_amd64, ubuntu_archive
+
+- name: Set the repositories architecture name
+ set_fact:
+ arch: "{{ arch_arm64 if ansible_architecture == 'aarch64' else arch_amd64 }}"
+ extra_arch: "{{ arch_amd64 if ansible_architecture == 'aarch64' else arch_arm64 }}"
+
+- name: Define the repositories names
+ set_fact:
+ repo: "{{ ubuntu_archive[arch] }}"
+ extra_repo: "{{ ubuntu_archive[extra_arch] }}"
+
+- name: Add architecture to the default repository list
+ replace:
+ path: "{{ sources_list_file }}"
+ regexp: '(^deb\s+)([^\[].*)$'
+ replace: 'deb [arch={{ arch }}] \2'
+
+- name: Remove support for source repositories
+ replace:
+ path: "{{ sources_list_file }}"
+ regexp: "^deb-src "
+ replace: "# deb-src "
+
+- name: Add extra architecture
+ command: "dpkg --add-architecture {{ extra_arch }}"
+
+- name: Define the default release version
+ copy:
+ dest: "{{ default_distro_file }}"
+ content: 'APT::Default-Release "{{ ansible_distribution_release }}";'
+
+- name: Remove extra repository file
+ file:
+ path: "{{ repo_file }}"
+ state: absent
+ ignore_errors: yes
+
+- name: Add extra repository file
+ file:
+ path: "{{ repo_file }}"
+ state: touch
+
+- name: Add the repository for qemu_static_user/xenial
+ blockinfile:
+ path: "{{ repo_file }}"
+ marker: "MARKER"
+ content: |
+ deb [arch={{ arch }}] {{ repo }} xenial-updates universe
+ when: ansible_distribution_release != "xenial"
+
+- name: Add extra architecture repositories if installing in container
+ blockinfile:
+ path: "{{ repo_file }}"
+ marker: "MARKER"
+ content: |
+ deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }} main universe multiverse restricted
+ deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }}-updates main universe multiverse restricted
+ deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }}-security main universe multiverse restricted
+ when: installation_mode == "container"
+
+- name: Remove the marker
+ lineinfile:
+ dest: "{{ repo_file }}"
+ state: absent
+ regexp: "MARKER"
diff --git a/ansible/install_dependencies.yml b/ansible/roles/add_repos_jumphost/tasks/main.yml
index 1c7d20170..f50fd9f0d 100644
--- a/ansible/install_dependencies.yml
+++ b/ansible/roles/add_repos_jumphost/tasks/main.yml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation.
+# Copyright (c) 2018 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,8 +12,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-- name: install yardstick dependencies
- hosts: all
-
- roles:
- - install_dependencies
+- include: "{{ ansible_os_family }}.yml"
+ when: ansible_os_family == "Debian"
diff --git a/ansible/roles/add_repos_jumphost/vars/main.yml b/ansible/roles/add_repos_jumphost/vars/main.yml
new file mode 100644
index 000000000..30e444711
--- /dev/null
+++ b/ansible/roles/add_repos_jumphost/vars/main.yml
@@ -0,0 +1,17 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+repo_file: "/etc/apt/sources.list.d/yardstick.list"
+sources_list_file: "/etc/apt/sources.list"
+default_distro_file: "/etc/apt/apt.conf.d/default-distro"
diff --git a/ansible/roles/barometer_collectd/tasks/main.yaml b/ansible/roles/barometer_collectd/tasks/main.yaml
new file mode 100644
index 000000000..c06540c3f
--- /dev/null
+++ b/ansible/roles/barometer_collectd/tasks/main.yaml
@@ -0,0 +1,40 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: Remove barometer-collectd container
+ docker_container:
+ name: barometer-collectd
+ state: absent
+
+- name: Remove barometer-collectd image
+ docker_image:
+ name: opnfv/barometer-collectd
+ state: absent
+
+- name: Prepare collectd container
+ docker_container:
+ name: barometer-collectd
+ image: opnfv/barometer-collectd
+ volumes:
+ - /opt/collectd/etc/collectd.conf.d/:/opt/collectd/etc/collectd.conf.d
+ - /var/run:/var/run
+ - /tmp:/tmp
+ - /var/lib/collectd:/var/lib/collectd
+ command: "/run_collectd.sh"
+ detach: yes
+ state: present
+ restart: no
+ privileged: yes
+ network_mode: host
diff --git a/ansible/roles/build_cni/defaults/main.yml b/ansible/roles/build_cni/defaults/main.yml
new file mode 100644
index 000000000..18aa418f4
--- /dev/null
+++ b/ansible/roles/build_cni/defaults/main.yml
@@ -0,0 +1,16 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+cni_src_dir: /opt/cni/src
+cni_bin_dir: /opt/cni/bin
diff --git a/ansible/roles/build_cni/tasks/main.yml b/ansible/roles/build_cni/tasks/main.yml
new file mode 100644
index 000000000..ee66686f8
--- /dev/null
+++ b/ansible/roles/build_cni/tasks/main.yml
@@ -0,0 +1,49 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Get CNI driver sources
+ git:
+ repo: "{{ item.value.repo_url }}"
+ dest: "{{ cni_src_dir }}/{{ item.key }}"
+ version: "{{ item.value.repo_ver }}"
+ with_dict: "{{ cni_info }}"
+
+- name: Compile CNI drivers
+ command: "{{ cni_src_dir }}/{{ item.key }}/{{ item.value.build_script }}"
+ environment: "{{ go_env }}"
+ args:
+ chdir: "{{ cni_src_dir }}/{{ item.key }}"
+ with_dict: "{{ cni_info }}"
+
+- name: Get list of compiled CNI binaries
+ shell: ls -1 {{ item.key }}/bin/*
+ register: ls_cni_binaries_result
+ args:
+ chdir: "{{ cni_src_dir }}"
+ with_dict: "{{ cni_info }}"
+
+- set_fact:
+ cni_binary_list: "{{ cni_binary_list|default([]) + item.stdout_lines }}"
+ with_items: "{{ ls_cni_binaries_result.results }}"
+
+- name: Create CNI binaries dir
+ file: path={{ cni_bin_dir }} state=directory
+
+- name: Copy CNI binaries into kublet bin dir
+ copy:
+ src: "{{ cni_src_dir }}/{{ item }}"
+ dest: "{{ cni_bin_dir }}/"
+ remote_src: yes
+ mode: 0755
+ with_items: "{{ cni_binary_list }}"
diff --git a/ansible/roles/build_yardstick_image/tasks/cloudimg_modify_normal.yml b/ansible/roles/build_yardstick_image/tasks/cloudimg_modify_normal.yml
new file mode 100644
index 000000000..435b43856
--- /dev/null
+++ b/ansible/roles/build_yardstick_image/tasks/cloudimg_modify_normal.yml
@@ -0,0 +1,56 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- debug:
+ msg: "chrooted in {{ inventory_hostname }}"
+
+- debug:
+ var: proxy_env
+ verbosity: 2
+
+- include_role:
+ name: "{{ role_item }}"
+ with_items:
+ - reset_resolv_conf
+ - add_custom_repos
+ - modify_cloud_config
+ loop_control:
+ loop_var: role_item
+
+- include_role:
+ name: set_package_installer_proxy
+ when: proxy_env is defined and proxy_env
+
+- include_role:
+ name: install_image_dependencies
+
+- include_vars: roles/download_unixbench/defaults/main.yml
+ when: unixbench_dest is undefined
+
+- include_vars: roles/download_ramspeed/defaults/main.yml
+ when: ramspeed_dest is undefined
+
+- include_role:
+ name: "{{ role_item }}"
+ with_items:
+ - download_l2fwd
+ - download_unixbench
+ - install_unixbench
+ - download_ramspeed
+ - install_ramspeed
+ - download_cachestat
+ loop_control:
+ loop_var: role_item
+
+ environment: "{{ proxy_env }}"
diff --git a/ansible/roles/build_yardstick_image/tasks/cloudimg_modify_nsb.yml b/ansible/roles/build_yardstick_image/tasks/cloudimg_modify_nsb.yml
new file mode 100644
index 000000000..65b9b8188
--- /dev/null
+++ b/ansible/roles/build_yardstick_image/tasks/cloudimg_modify_nsb.yml
@@ -0,0 +1,129 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- debug:
+ msg: "chrooted in {{ inventory_hostname }}"
+
+- debug:
+ var: proxy_env
+ verbosity: 2
+
+- debug: msg="play_hosts={{play_hosts}}"
+
+- include_role:
+ name: "{{ role_item }}"
+ with_items:
+ - reset_resolv_conf
+ - add_custom_repos
+ - modify_cloud_config
+ loop_control:
+ loop_var: role_item
+
+- include_role:
+ name: set_package_installer_proxy
+ when: proxy_env is defined and proxy_env
+
+- include_vars: roles/install_dpdk/vars/main.yml
+ when: dpdk_make_arch is undefined
+
+- include_vars: roles/download_dpdk/defaults/main.yml
+ when: dpdk_version is undefined
+
+- include_vars: roles/download_trex/defaults/main.yml
+ when: trex_unarchive is undefined
+
+- include_vars: roles/download_civetweb/defaults/main.yml
+ when: civetweb_dest is undefined
+
+- include_role:
+ name: "{{ role_item }}"
+ with_items:
+ - install_image_dependencies
+ - enable_hugepages_on_boot # can't update grub in chroot/docker
+ - increase_open_file_limits # needed for collectd plugins
+ - download_trex
+ - install_trex
+ - download_civetweb
+ - install_civetweb
+ loop_control:
+ loop_var: role_item
+ environment: "{{ proxy_env }}"
+
+- include_vars: roles/install_dpdk/defaults/main.yml
+ when: INSTALL_BIN_PATH is undefined
+
+- include_vars: roles/download_samplevnfs/defaults/main.yml
+
+- include_role:
+ name: "{{ role_item }}"
+ vars:
+ dpdk_version: "{{ dpdk_version_for_PROX }}"
+ with_items:
+ - download_dpdk
+ - install_dpdk
+ - download_samplevnfs
+ loop_control:
+ loop_var: role_item
+ environment: "{{ proxy_env }}"
+
+- name: Install PROX
+ include_role:
+ name: install_samplevnf
+ vars:
+ vnf_name: PROX
+
+- include_role:
+ name: "{{ role_item }}"
+ with_items:
+ - download_dpdk
+ - install_dpdk
+ - download_pktgen
+ - install_pktgen
+ loop_control:
+ loop_var: role_item
+ environment: "{{ proxy_env }}"
+
+- include_vars: roles/download_samplevnfs/defaults/main.yml
+ when: samplevnf_dest is undefined
+- set_fact:
+ samplevnf_path: "{{ samplevnf_dest }}"
+- include_role:
+ name: install_samplevnf
+ with_items:
+ - UDP_Replay
+ - ACL
+ - FW
+ - CGNAPT
+ loop_control:
+ loop_var: vnf_name
+
+- include_vars: roles/download_drivers/defaults/main.yml
+ when: i40evf_path is undefined
+
+- include_role:
+ name: "{{ role_item }}"
+ with_items:
+ - install_dpdk_shared # build shared DPDK for collectd only, required DPDK downloaded already
+ - install_rabbitmq
+ - download_intel_cmt_cat
+ - install_intel_cmt_cat
+ - download_pmu_tools
+ - install_pmu_tools
+ - download_collectd
+ - install_collectd
+ - download_drivers
+ - install_drivers
+ loop_control:
+ loop_var: role_item
+ environment: "{{ proxy_env }}"
diff --git a/ansible/roles/build_yardstick_image/tasks/main.yml b/ansible/roles/build_yardstick_image/tasks/main.yml
new file mode 100644
index 000000000..e21cbb766
--- /dev/null
+++ b/ansible/roles/build_yardstick_image/tasks/main.yml
@@ -0,0 +1,14 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
diff --git a/ansible/roles/build_yardstick_image/tasks/post_build.yml b/ansible/roles/build_yardstick_image/tasks/post_build.yml
new file mode 100644
index 000000000..14b7a3d17
--- /dev/null
+++ b/ansible/roles/build_yardstick_image/tasks/post_build.yml
@@ -0,0 +1,56 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: convert image to image file
+ command: qemu-img convert -c -o compat=0.10 -O qcow2 {{ raw_imgfile }} {{ imgfile }}
+
+# Post build yardstick image
+- group_by:
+ key: image_builder
+
+- name: remove ubuntu policy-rc.d workaround
+ file:
+ path: "{{ mountdir }}/usr/sbin/policy-rc.d"
+ state: absent
+ when: "target_os == 'Ubuntu'"
+
+- name: cleanup fake tmp fstab
+ file:
+ path: "{{ fake_fstab }}"
+ state: absent
+
+- mount:
+ name: "{{ mountdir }}/proc"
+ state: unmounted
+
+- mount:
+ name: "{{ mountdir }}/run"
+ state: unmounted
+
+- mount:
+ name: "{{ mountdir }}"
+ state: unmounted
+
+- name: kpartx -dv to delete all image partition device nodes
+ command: kpartx -dv "{{ raw_imgfile }}"
+ ignore_errors: true
+
+- debug:
+ msg: "yardstick image = {{ imgfile }}"
+
+- set_fact:
+ imgdest: "/var/lib/libvirt/images/{{ imgfile | basename}}"
+
+- name: Copy image to libvirt images
+ shell: "cp {{ imgfile }} {{ imgdest }}"
diff --git a/ansible/roles/build_yardstick_image/tasks/pre_build.yml b/ansible/roles/build_yardstick_image/tasks/pre_build.yml
new file mode 100644
index 000000000..3ac8e90e9
--- /dev/null
+++ b/ansible/roles/build_yardstick_image/tasks/pre_build.yml
@@ -0,0 +1,214 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Group
+ group_by:
+ key: image_builder
+
+- package: name=parted state=present
+ environment: "{{ proxy_env }}"
+
+- package: name=kpartx state=present
+ environment: "{{ proxy_env }}"
+
+- package: name="{{ growpart_package[ansible_os_family] }}" state=present
+ environment: "{{ proxy_env }}"
+
+- set_fact:
+ imgfile: "{{ normal_image_file }}"
+ when: img_prop_item == "normal"
+
+- set_fact:
+ imgfile: "{{ nsb_image_file }}"
+ when: img_prop_item == "nsb"
+
+- set_fact:
+ mountdir: "{{ lookup('env', 'mountdir')|default('/mnt/yardstick', true) }}"
+ raw_imgfile: "{{ workspace }}/{{ raw_imgfile_basename }}"
+
+# cleanup non-lxd
+- name: unmount all old mount points
+ mount:
+ name: "{{ item }}"
+ state: unmounted
+ with_items:
+ # order matters
+ - "{{ mountdir }}/proc"
+ - "{{ mountdir }}/run"
+ - "{{ mountdir }}"
+ - "/mnt/{{ release }}"
+
+- name: kpartx -dv to delete all image partition device nodes
+ command: kpartx -dv "{{ raw_imgfile }}"
+ ignore_errors: true
+
+- name: Debug dump loop devices
+ command: losetup -a
+ ignore_errors: true
+
+- name: delete loop devices for image file
+ # use this because kpartx -dv will fail if raw_imgfile was delete
+ # but in theory we could have deleted file still attached to loopback device?
+ # use grep because of // and awk
+ shell: losetup -O NAME,BACK-FILE | grep "{{ raw_imgfile_basename }}" | awk '{ print $1 }' | xargs -l1 losetup -v -d
+ ignore_errors: true
+
+- name: Debug dump loop devices again
+ command: losetup -a
+ ignore_errors: true
+
+- name: delete {{ raw_imgfile }}
+ file:
+ path: "{{ raw_imgfile }}"
+ state: absent
+
+# common
+- name: remove {{ mountdir }}
+ file:
+ path: "{{ mountdir }}"
+ state: absent
+
+# download-common
+- name: remove {{ workspace }}
+ file:
+ path: "{{ workspace }}"
+ state: directory
+
+- name: "fetch {{ image_url }} and verify "
+ fetch_url_and_verify:
+ url: "{{ image_url }}"
+ sha256url: "{{ sha256sums_url }}"
+ dest: "{{ image_dest }}"
+
+- name: convert image to raw
+ command: "qemu-img convert {{ image_dest }} {{ raw_imgfile }}"
+
+- name: resize image to allow for more VNFs
+ command: "qemu-img resize -f raw {{ raw_imgfile }} +2G"
+
+- name: resize parition to allow for more VNFs
+ # use growpart because maybe it handles GPT better than parted
+ command: growpart {{ raw_imgfile }} 1
+
+- name: create mknod devices in chroot
+ command: "mknod -m 0660 /dev/loop{{ item }} b 7 {{ item }}"
+ args:
+ creates: "/dev/loop{{ item }}"
+ with_sequence: start=0 end=9
+ tags: mknod_devices
+
+- name: find first partition device
+ command: kpartx -l "{{ raw_imgfile }}"
+ register: kpartx_res
+
+- set_fact:
+ image_first_partition: "{{ kpartx_res.stdout_lines[0].split()[0] }}"
+
+- set_fact:
+ # assume / is the first partition
+ image_first_partition_device: "/dev/mapper/{{ image_first_partition }}"
+
+- name: use kpartx to create device nodes for the raw image loop device
+ # operate on the loop device to avoid /dev namespace missing devices
+ command: kpartx -avs "{{ raw_imgfile }}"
+
+- name: parted dump raw image
+ command: parted "{{ raw_imgfile }}" print
+ register: parted_res
+
+- debug:
+ var: parted_res
+ verbosity: 2
+
+- name: use blkid to find filesystem type of first partition device
+ command: blkid -o value -s TYPE {{ image_first_partition_device }}
+ register: blkid_res
+
+- set_fact:
+ image_fs_type: "{{ blkid_res.stdout.strip() }}"
+
+- fail:
+ msg: "We only support ext4 image filesystems because we have to resize"
+ when: image_fs_type != "ext4"
+
+- name: fsck the image filesystem
+ command: "e2fsck -y -f {{ image_first_partition_device }}"
+
+- name: resize filesystem to full partition size
+ command: resize2fs {{ image_first_partition_device }}
+
+- name: fsck the image filesystem
+ command: "e2fsck -y -f {{ image_first_partition_device }}"
+
+- name: make tmp disposable fstab
+ command: mktemp --tmpdir fake_fstab.XXXXXXXXXX
+ register: mktemp_res
+
+- set_fact:
+ fake_fstab: "{{ mktemp_res.stdout.strip() }}"
+
+- name: mount first parition on image device
+ mount:
+ src: "{{ image_first_partition_device }}"
+ name: "{{ mountdir }}"
+ # fstype is required
+ fstype: "{{ image_fs_type }}"
+ # !!!!!!! this is required otherwise we add entries to /etc/fstab
+ # and prevent the system from booting
+ fstab: "{{ fake_fstab }}"
+ state: mounted
+
+- name: mount chroot /proc
+ mount:
+ src: none
+ name: "{{ mountdir }}/proc"
+ fstype: proc
+ # !!!!!!! this is required otherwise we add entries to /etc/fstab
+ # and prevent the system from booting
+ fstab: "{{ fake_fstab }}"
+ state: mounted
+
+- name: mount chroot /run
+ mount:
+ src: /run
+ name: "{{ mountdir }}/run"
+ fstype: tmpfs
+ opts: bind
+ # !!!!!!! this is required otherwise we add entries to /etc/fstab
+ # and prevent the system from booting
+ fstab: "{{ fake_fstab }}"
+ state: mounted
+
+- name: if arm copy qemu-aarch64-static into chroot
+ copy:
+ src: /usr/bin/qemu-aarch64-static
+ dest: "{{ mountdir }}/usr/bin"
+ when: img_arch == arch_arm64
+
+- name: create ubuntu policy-rc.d workaround
+ copy:
+ content: "{{ '#!/bin/sh\nexit 101\n' }}"
+ dest: "{{ mountdir }}/usr/sbin/policy-rc.d"
+ mode: 0755
+ when: "target_os == 'Ubuntu'"
+
+- name: add chroot as host
+ add_host:
+ name: "{{ mountdir }}"
+ groups: chroot_image,image_builder
+ connection: chroot
+ ansible_python_interpreter: /usr/bin/python3
+ # set this host variable here
+ nameserver_ip: "{{ ansible_dns.nameservers[0] }}"
+ image_type: vm
diff --git a/ansible/roles/build_yardstick_image/vars/main.yml b/ansible/roles/build_yardstick_image/vars/main.yml
new file mode 100644
index 000000000..3d4054408
--- /dev/null
+++ b/ansible/roles/build_yardstick_image/vars/main.yml
@@ -0,0 +1,33 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+boot_modes:
+ 'amd64': disk1
+ 'arm64': uefi1
+boot_mode: "{{ boot_modes[YARD_IMG_ARCH] }}"
+image_filename:
+ 'xenial': "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}-{{ boot_mode }}.img"
+ 'bionic': "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}.img"
+image_path: "{{ release }}/current/{{ image_filename[release] }}"
+host: "{{ lookup('env', 'HOST')|default('cloud-images.ubuntu.com', true)}}"
+image_url: "{{ lookup('env', 'IMAGE_URL')|default('https://' ~ host ~ '/' ~ image_path, true) }}"
+image_dest: "{{ workspace }}/{{ image_filename[release] }}"
+sha256sums_path: "{{ release }}/current/SHA256SUMS"
+sha256sums_filename: "{{ sha256sums_path|basename }}"
+sha256sums_url: "{{ lookup('env', 'SHA256SUMS_URL')|default('https://' ~ host ~ '/' ~ sha256sums_path, true) }}"
+workspace: "{{ lookup('env', 'workspace')|default('/tmp/workspace/yardstick', true) }}"
+raw_imgfile_basename: "yardstick-{{ release }}-server.raw"
+growpart_package:
+ RedHat: cloud-utils-growpart
+ Debian: cloud-guest-utils
diff --git a/ansible/roles/configure_gui/tasks/main.yml b/ansible/roles/configure_gui/tasks/main.yml
new file mode 100644
index 000000000..665053ccf
--- /dev/null
+++ b/ansible/roles/configure_gui/tasks/main.yml
@@ -0,0 +1,38 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Define variables
+ set_fact:
+ gui_dir: "{{ yardstick_dir }}/gui/"
+
+- name: Run gui.sh
+ shell:
+ cmd: /bin/bash gui.sh
+ chdir: "{{ gui_dir }}"
+
+- name: Create nginx/yardstick directory
+ file:
+ path: /etc/nginx/yardstick
+ state: directory
+ recurse: yes
+
+- name: Remove /etc/nginx/yardstick/gui/dist directory if it exists
+ file:
+ path: /etc/nginx/yardstick/gui/dist
+ state: absent
+
+- name: Move dist to /etc/nginx/yardstick/gui
+ shell:
+ cmd: mv dist /etc/nginx/yardstick/gui
+ chdir: "{{ gui_dir }}"
diff --git a/ansible/roles/configure_nginx/tasks/main.yml b/ansible/roles/configure_nginx/tasks/main.yml
new file mode 100644
index 000000000..e0f7f75bb
--- /dev/null
+++ b/ansible/roles/configure_nginx/tasks/main.yml
@@ -0,0 +1,33 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Define variables
+ set_fact:
+ socket_file: "{{ socket_file|default('/var/run/yardstick.sock') }}"
+
+- name: Make sure conf.d directory exists
+ file:
+ path: /etc/nginx/conf.d
+ state: directory
+
+- name: Create the nginx config file
+ template:
+ src: yardstick.conf.j2
+ dest: "/etc/nginx/conf.d/yardstick.conf"
+
+- name: Configure ports if RedHat OS
+ shell: |
+ semanage port -m -t http_port_t -p tcp 5000
+ semanage port -m -t http_port_t -p udp 5000
+ when: ansible_os_family == "RedHat"
diff --git a/ansible/roles/configure_nginx/templates/yardstick.conf.j2 b/ansible/roles/configure_nginx/templates/yardstick.conf.j2
new file mode 100644
index 000000000..484096cec
--- /dev/null
+++ b/ansible/roles/configure_nginx/templates/yardstick.conf.j2
@@ -0,0 +1,18 @@
+server {
+ listen 5000;
+ server_name localhost;
+ index index.htm index.html;
+ location / {
+ include uwsgi_params;
+ client_max_body_size 2000m;
+ uwsgi_pass unix://{{ socket_file }};
+ }
+
+ location /gui/ {
+ alias /etc/nginx/yardstick/gui/;
+ }
+
+ location /report/ {
+ alias /tmp/;
+ }
+}
diff --git a/ansible/roles/configure_rabbitmq/tasks/main.yml b/ansible/roles/configure_rabbitmq/tasks/main.yml
new file mode 100644
index 000000000..59998abc0
--- /dev/null
+++ b/ansible/roles/configure_rabbitmq/tasks/main.yml
@@ -0,0 +1,39 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- block:
+ - name: Restart rabbitmq
+ service:
+ name: rabbitmq-server
+ state: restarted
+
+ - name: rabbitmqctl start_app
+ shell: rabbitmqctl start_app
+
+ - name: Configure rabbitmq
+ rabbitmq_user:
+ user: yardstick
+ password: yardstick
+ configure_priv: .*
+ read_priv: .*
+ write_priv: .*
+ state: present
+ when: install_mode == inst_mode_baremetal
+
+- name: Create rabbitmq file for supervisor
+ template:
+ src: rabbitmq.sh.j2
+ dest: /etc/yardstick/rabbitmq.sh
+ mode: 0755
+ when: install_mode == inst_mode_container
diff --git a/ansible/roles/configure_rabbitmq/templates/rabbitmq.sh.j2 b/ansible/roles/configure_rabbitmq/templates/rabbitmq.sh.j2
new file mode 100644
index 000000000..a91565c01
--- /dev/null
+++ b/ansible/roles/configure_rabbitmq/templates/rabbitmq.sh.j2
@@ -0,0 +1,20 @@
+#!/bin/bash
+trap "rabbitmqctl stop_app" EXIT
+
+rabbitmqctl stop_app
+service rabbitmq-server restart
+rabbitmqctl start_app
+
+tmp_file="/tmp/$(basename -- $0).configured"
+if [ ! -f "$tmp_file" ]; then
+ rabbitmqctl add_user yardstick yardstick
+ rabbitmqctl set_permissions -p / yardstick '.*' '.*' '.*'
+ touch "$tmp_file"
+fi
+
+while :
+do
+ sleep 5
+ service rabbitmq-server status > /dev/null 2>&1 || exit 1
+ rabbitmqctl report | grep "Status of node rabbit@`hostname`" > /dev/null 2>&1 || exit 1
+done
diff --git a/ansible/roles/configure_uwsgi/tasks/main.yml b/ansible/roles/configure_uwsgi/tasks/main.yml
new file mode 100644
index 000000000..8822bda53
--- /dev/null
+++ b/ansible/roles/configure_uwsgi/tasks/main.yml
@@ -0,0 +1,53 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Define variables
+ set_fact:
+ config_dir: "/etc/yardstick/"
+ log_dir: "/var/log/yardstick/"
+ socket_file: "/var/run/yardstick.sock"
+
+- name: Create UWSGI config directory
+ file:
+ path: "/etc/yardstick"
+ state: directory
+ owner: root
+ mode: 0755
+
+- name: Create API log directory
+ file:
+ path: "{{ log_dir }}"
+ state: directory
+ owner: root
+ mode: 0777
+
+- name: Create the socket for communicating
+ file:
+ path: "{{ socket_file }}"
+ state: touch
+ owner: root
+ mode: 0644
+
+- set_fact:
+ uwsgi_log: "logto"
+ when: installation_mode == inst_mode_container
+
+- set_fact:
+ uwsgi_log: "daemonize"
+ when: installation_mode != inst_mode_container
+
+- name: Create the UWSGI config file
+ template:
+ src: yardstick.ini.j2
+ dest: "{{ config_dir }}yardstick.ini"
diff --git a/ansible/roles/configure_uwsgi/templates/yardstick.ini.j2 b/ansible/roles/configure_uwsgi/templates/yardstick.ini.j2
new file mode 100644
index 000000000..1890f16f9
--- /dev/null
+++ b/ansible/roles/configure_uwsgi/templates/yardstick.ini.j2
@@ -0,0 +1,18 @@
+[uwsgi]
+master = true
+debug = true
+chdir = {{ yardstick_dir }}/api
+module = server
+plugins = python
+processes = 10
+threads = 5
+async = true
+max-requests = 5000
+chmod-socket = 666
+callable = app_wrapper
+enable-threads = true
+close-on-exec = 1
+{{ uwsgi_log }} = {{ log_dir }}/uwsgi.log
+socket = {{ socket_file }}
+{# If virtual environment, we need to add:
+ virtualenv = <virtual_env> #}
diff --git a/ansible/roles/convert_openrc/tasks/main.yml b/ansible/roles/convert_openrc/tasks/main.yml
index 1606b0bc5..00aa13615 100644
--- a/ansible/roles/convert_openrc/tasks/main.yml
+++ b/ansible/roles/convert_openrc/tasks/main.yml
@@ -18,7 +18,7 @@
- debug: var=openrc
- set_fact:
- yardstick_url_ip: "{{ openrc.OS_AUTH_URL|urlsplit|attr('hostname') }}"
+ yardstick_url_ip: "{{ openrc.OS_AUTH_URL|urlsplit('hostname') }}"
- debug: var=yardstick_url_ip
@@ -29,14 +29,8 @@
auth_url: "{{ openrc.OS_AUTH_URL }}"
password: "{{ openrc.OS_PASSWORD }}"
username: "{{ openrc.OS_USERNAME }}"
- project_name: "{{ openrc.OS_PROJECT_NAME }}"
-# tenant_name: "{{ openrc.OS_TENANT_NAME }}"
+ project_name: "{{ openrc.OS_PROJECT_NAME|default(openrc.OS_TENANT_NAME) }}"
project_domain_name: "{{ openrc.OS_PROJECT_DOMAIN_NAME }}"
-# user_domain_name: "{{ openrc.OS_USER_DOMAIN_NAME }}"
- # BUGS: We need to specify identity_api_version == 3, but we can't do it here
- # because it is not the write place
- # we need to set it via OS_IDENTITY_API_VERSION or clouds.yaml
-# identity_api_version: "{{ openrc.OS_IDENTITY_API_VERSION }}"
- debug: var=os_auth
@@ -44,7 +38,7 @@
clouds:
demo:
# must specify API version here
- identity_api_version: "{{ openrc.OS_IDENTITY_API_VERSION }}"
+ identity_api_version: "{{ openrc.OS_IDENTITY_API_VERSION|default(3) }}"
auth: "{{ os_auth }}"
- template:
diff --git a/ansible/roles/create_dockerfile/templates/centos/Dockerfile b/ansible/roles/create_dockerfile/templates/centos/Dockerfile
index ca104c8f8..96d8a0041 100644
--- a/ansible/roles/create_dockerfile/templates/centos/Dockerfile
+++ b/ansible/roles/create_dockerfile/templates/centos/Dockerfile
@@ -18,7 +18,6 @@ ENV REPOS_DIR /home/opnfv/repos
# Yardstick repo
ENV YARDSTICK_REPO_DIR ${REPOS_DIR}/yardstick
-ENV RELENG_REPO_DIR ${REPOS_DIR}/releng
RUN yum -y install\
deltarpm \
@@ -50,7 +49,6 @@ RUN yum -y install\
RUN mkdir -p ${REPOS_DIR} && \
git config --global http.sslVerify false && \
git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO_DIR} && \
- git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO_DIR}
# install yardstick + dependencies
# explicity pin pip version to avoid future issues like the ill-fated pip 8.0.0 release
diff --git a/ansible/roles/create_dockerfile/templates/ubuntu/Dockerfile b/ansible/roles/create_dockerfile/templates/ubuntu/Dockerfile
index 7fbc4f01a..6eba3a841 100644
--- a/ansible/roles/create_dockerfile/templates/ubuntu/Dockerfile
+++ b/ansible/roles/create_dockerfile/templates/ubuntu/Dockerfile
@@ -18,7 +18,6 @@ ENV REPOS_DIR /home/opnfv/repos
# Yardstick repo
ENV YARDSTICK_REPO_DIR ${REPOS_DIR}/yardstick
-ENV RELENG_REPO_DIR ${REPOS_DIR}/releng
RUN sed -i -e 's/^deb /deb [arch=amd64] /g;s/^deb-src /# deb-src /g' /etc/apt/sources.list && \
echo "\n\
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty main universe multiverse restricted \n\
@@ -63,7 +62,6 @@ RUN apt-get update && apt-get install -y \
RUN mkdir -p ${REPOS_DIR} && \
git config --global http.sslVerify false && \
git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO_DIR} && \
- git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO_DIR}
# install yardstick + dependencies
# explicity pin pip version to avoid future issues like the ill-fated pip 8.0.0 release
diff --git a/ansible/roles/create_samplevnfs_image/tasks/main.yml b/ansible/roles/create_samplevnfs_image/tasks/main.yml
index c83cccab5..ab7371a12 100644
--- a/ansible/roles/create_samplevnfs_image/tasks/main.yml
+++ b/ansible/roles/create_samplevnfs_image/tasks/main.yml
@@ -19,6 +19,6 @@
is_public: yes
disk_format: qcow2
container_format: bare
- filename: "{{ raw_imgfile }}"
+ filename: "{{ imgfile }}"
properties:
hw_vif_multiqueue_enabled: true
diff --git a/ansible/roles/create_storperf_admin_rc/tasks/main.yml b/ansible/roles/create_storperf_admin_rc/tasks/main.yml
index bd1418e89..f63d1d814 100644
--- a/ansible/roles/create_storperf_admin_rc/tasks/main.yml
+++ b/ansible/roles/create_storperf_admin_rc/tasks/main.yml
@@ -12,15 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-- name: Fetch TENANT_ID
- os_project_facts:
- name: admin
- environment: "{{ openrc }}"
-
-- name: Fetch TENANT_ID
- set_fact:
- os_tenant_id: "{{ openstack_projects[0].id }}"
-
- name: Create storperf_admin-rc
template:
src: storperf_admin-rc.j2
diff --git a/ansible/roles/create_storperf_admin_rc/templates/storperf_admin-rc.j2 b/ansible/roles/create_storperf_admin_rc/templates/storperf_admin-rc.j2
index 410ab24df..888e87118 100644
--- a/ansible/roles/create_storperf_admin_rc/templates/storperf_admin-rc.j2
+++ b/ansible/roles/create_storperf_admin_rc/templates/storperf_admin-rc.j2
@@ -1,7 +1,5 @@
OS_AUTH_URL="{{ openrc.OS_AUTH_URL }}"
OS_USERNAME="{{ openrc.OS_USERNAME|default('admin') }}"
OS_PASSWORD="{{ openrc.OS_PASSWORD|default('console') }}"
-OS_TENANT_NAME="{{ openrc.OS_TENANT_NAME|default('admin') }}"
OS_VOLUME_API_VERSION="{{ openrc.OS_VOLUME_API_VERSION|default('2') }}"
-OS_PROJECT_NAME="{{ openrc.OS_PROJECT_NAME|default(openrc.OS_TENANT_NAME) }}"
-OS_TENANT_ID="{{ os_tenant_id }}"
+OS_PROJECT_NAME="{{ openrc.OS_PROJECT_NAME|openrc.OS_TENANT_NAME|default('admin') }}"
diff --git a/ansible/roles/docker/tasks/Debian.yml b/ansible/roles/docker/tasks/Debian.yml
index cf4128774..a03040d88 100644
--- a/ansible/roles/docker/tasks/Debian.yml
+++ b/ansible/roles/docker/tasks/Debian.yml
@@ -12,15 +12,21 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
- - name: add Ubuntu docker repo
- apt_repository: repo='deb [trusted=yes] {{ ubuntu_docker_url }} ubuntu-{{ ansible_distribution_release }} main' state=present
+ - name: Install docker.io
+ action: "{{ ansible_pkg_mgr }} name=docker.io state=present force=yes"
- - name: ensure correct docker version
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: "{{ docker_packages[ansible_os_family] }}"
+ - name: Update package manager cache
+ tags:
+ - cache_update
+ package:
+ update_cache: yes
- - name: remove Ubuntu docker repo
- apt_repository:
- repo: 'deb [trusted=yes] {{ ubuntu_docker_url }} ubuntu-{{ ansible_distribution_release }} main'
- state: absent
- update_cache: no
+ - name: Install python-pip
+ package:
+ name: python-pip
+ state: present
+
+ - name: Install docker-py
+ pip:
+ name: docker-py
+ state: present
diff --git a/ansible/roles/docker/tasks/main.yml b/ansible/roles/docker/tasks/main.yml
index bbec371a8..18e441462 100644
--- a/ansible/roles/docker/tasks/main.yml
+++ b/ansible/roles/docker/tasks/main.yml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation.
+# Copyright (c) 2017-2019 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -18,6 +18,10 @@
- name: create docker service config dir
file: path=/etc/systemd/system/docker.service.d state=directory
+ - name: docker configuration
+ template: src=daemon.json.j2 dest=/etc/docker/daemon.json owner=root mode=0644
+ when: 'docker_daemon_config is defined'
+
- name: create docker proxy config
template: src=http-proxy-conf.j2 dest=/etc/systemd/system/docker.service.d/http-proxy.conf owner=root mode=0644
when: 'proxy_env is defined and "http_proxy" in proxy_env or "https_proxy" in proxy_env'
diff --git a/ansible/roles/docker/templates/daemon.json.j2 b/ansible/roles/docker/templates/daemon.json.j2
new file mode 100644
index 000000000..57bdc9f63
--- /dev/null
+++ b/ansible/roles/docker/templates/daemon.json.j2
@@ -0,0 +1 @@
+{{ docker_daemon_config | to_nice_json }}
diff --git a/ansible/roles/docker/vars/main.yml b/ansible/roles/docker/vars/main.yml
index 8b5077490..a735d523d 100644
--- a/ansible/roles/docker/vars/main.yml
+++ b/ansible/roles/docker/vars/main.yml
@@ -16,5 +16,3 @@ docker_project_url: https://yum.dockerproject.org
docker_packages:
"RedHat":
- docker-engine-1.13.1
- "Debian":
- - docker-engine=1.13.1*
diff --git a/ansible/roles/download_civetweb/defaults/main.yml b/ansible/roles/download_civetweb/defaults/main.yml
index 5efc9bb56..289e52ce8 100644
--- a/ansible/roles/download_civetweb/defaults/main.yml
+++ b/ansible/roles/download_civetweb/defaults/main.yml
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-civetweb_url: https://sourceforge.net/projects/civetweb/files/1.9/CivetWeb_V1.9.zip
+civetweb_url: https://iweb.dl.sourceforge.net/project/civetweb/1.9.1/CivetWeb_V1.9.1.zip
civetweb_file: "{{ civetweb_url|basename }}"
civetweb_dest: "{{ clone_dest }}/civetweb"
-civetweb_sha256s: "sha256:947a546bfccd733c79dff9565227fa74f4d17750650ff49312ef4b2d032fa8c8"
+civetweb_sha256s: "sha256:69a82f042eae0197fb50b09861a8e2c5fff2871c196a21edd122bb8ce34ca0f3"
diff --git a/ansible/roles/download_civetweb/tasks/main.yml b/ansible/roles/download_civetweb/tasks/main.yml
index 03dd3ccd3..b6a475774 100644
--- a/ansible/roles/download_civetweb/tasks/main.yml
+++ b/ansible/roles/download_civetweb/tasks/main.yml
@@ -18,6 +18,10 @@
dest: "{{ clone_dest }}/"
validate_certs: False
checksum: "{{ civetweb_sha256s }}"
+ register: package_result
+ until: package_result is succeeded
+ retries: 10
+ delay: 5
- name: unarchive civetweb
unarchive:
diff --git a/ansible/roles/download_collectd/defaults/main.yml b/ansible/roles/download_collectd/defaults/main.yml
index 9beaeb897..3f5632394 100644
--- a/ansible/roles/download_collectd/defaults/main.yml
+++ b/ansible/roles/download_collectd/defaults/main.yml
@@ -1,4 +1,4 @@
---
collectd_url: "https://github.com/collectd/collectd.git"
collectd_dest: "{{ clone_dest }}/collectd"
-collectd_version: "c870991a2d614e51c03c0da76e9aef997343551b"
+collectd_version: "collectd-5.8"
diff --git a/ansible/roles/download_dpdk/defaults/main.yml b/ansible/roles/download_dpdk/defaults/main.yml
index fb42ed48a..b2d959eed 100644
--- a/ansible/roles/download_dpdk/defaults/main.yml
+++ b/ansible/roles/download_dpdk/defaults/main.yml
@@ -1,10 +1,19 @@
---
-dpdk_version: "17.02"
-dpdk_url: "http://dpdk.org/browse/dpdk/snapshot/dpdk-{{ dpdk_version }}.zip"
+dpdk_version: "17.05"
+dpdk_version_for_PROX: "18.11"
+dpdk_url: "http://fast.dpdk.org/rel/dpdk-{{ dpdk_version }}.tar.xz"
dpdk_file: "{{ dpdk_url|basename }}"
-dpdk_unarchive: "{{ dpdk_file|regex_replace('[.]zip$', '') }}"
+dpdk_unarchive: "{{ dpdk_file|regex_replace('[.]tar[.]xz$', '') }}"
dpdk_dest: "{{ clone_dest }}/"
-dpdk_sha256s:
- "17.02": "sha256:c675285d5eab8e7e8537a10bdae6f03c603caa80cb4bf5b055ddd482e3b7d67f"
- "16.04": "sha256:65e587af439b21abf54c644f86ba5ce7ea65657b3272480dcd78b769d2aecac3"
- "16.07": "sha256:46fee52f9b3ff54df869414c69f122aea8f744de5ed5f8fb275a22cc9cefe094"
+
+dpdk_md5:
+ "16.07.2": "md5:4922ea2ec935b64ff5c191fec53344a6"
+ "16.11.7": "md5:c081d113dfd57633e3bc3ebc802691be"
+ "17.02.1": "md5:cbdf8b7a92ce934d47c38cbc9c20c54a"
+ "17.05": "md5:0a68c31cd6a6cabeed0a4331073e4c05" #Ubuntu 17.10 support
+ "17.05.2": "md5:37afc9ce410d8e6945a1beb173074003" #unsupported
+ "17.08.2": "md5:dd239a878c8c40cf482fdfe438f8d99c" #unsupported
+ "17.11.3": "md5:68ca84ac878011acf44e75d33b46f55b" #unsupported
+ "18.02.2": "md5:75ad6d39b513649744e49c9fcbbb9ca5" #unsupported
+ "18.05": "md5:9fc86367cd9407ff6a8dfea56c4eddc4" #unsupported
+ "18.11": "md5:04b86f4a77f4f81a7fbd26467dd2ea9f" # Not supported by SampleVNFs except PROX
diff --git a/ansible/roles/download_dpdk/tasks/main.yml b/ansible/roles/download_dpdk/tasks/main.yml
index bcb5dde1a..e434536a3 100644
--- a/ansible/roles/download_dpdk/tasks/main.yml
+++ b/ansible/roles/download_dpdk/tasks/main.yml
@@ -25,7 +25,11 @@
url: "{{ dpdk_url }}"
dest: "{{ dpdk_dest }}"
validate_certs: False
- checksum: "{{ dpdk_sha256s[dpdk_version] }}"
+ checksum: "{{ dpdk_md5[dpdk_version] }}"
+ register: package_result
+ until: package_result is succeeded
+ retries: 10
+ delay: 5
- unarchive:
src: "{{ dpdk_dest }}/{{ dpdk_file }}"
@@ -37,8 +41,20 @@
path: "{{ dpdk_dest }}/{{ dpdk_file }}"
state: absent
+- name: find unzipped DPDK folder
+ find:
+ paths: "{{ dpdk_dest }}"
+ patterns: "^dpdk-.*{{ dpdk_version }}$"
+ file_type: directory
+ use_regex: yes
+ register: dpdk_folder_match
+
+- fail:
+ msg: "Cannot find unzipped DPDK folder or more than one found"
+ when: dpdk_folder_match.matched != 1
+
- set_fact:
- dpdk_path: "{{ dpdk_dest }}/{{ dpdk_unarchive }}"
+ dpdk_path: "{{ dpdk_folder_match.files[0].path }}"
- set_fact:
RTE_SDK: "{{ dpdk_path }}"
diff --git a/ansible/roles/download_drivers/defaults/main.yml b/ansible/roles/download_drivers/defaults/main.yml
new file mode 100644
index 000000000..bf1e48a23
--- /dev/null
+++ b/ansible/roles/download_drivers/defaults/main.yml
@@ -0,0 +1,22 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+i40evf_version: "3.5.13"
+i40evf_gzfile: "i40evf-{{ i40evf_version }}.tar.gz"
+i40evf_url: "https://netix.dl.sourceforge.net/project/e1000/i40evf%20stable/{{ i40evf_version }}/{{ i40evf_gzfile }}"
+i40evf_dest: "{{ clone_dest }}/"
+i40evf_path: "{{ i40evf_dest }}/{{ i40evf_gzfile|regex_replace('[.]tar[.]gz$', '') }}"
+i40evf_checksum:
+ "3.4.2": "sha256:a8e2a722fb2f8ac874cb39545a331761841f1724830ff1581d2012dd37314645"
+ "3.5.13": "sha256:e57b95b694c8480b905e72ea13caac8714d6bb0c9eabe37cca655505b808f033" \ No newline at end of file
diff --git a/ansible/roles/download_drivers/tasks/i40evf.yml b/ansible/roles/download_drivers/tasks/i40evf.yml
new file mode 100644
index 000000000..48a0330ab
--- /dev/null
+++ b/ansible/roles/download_drivers/tasks/i40evf.yml
@@ -0,0 +1,40 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Directory to store i40evf driver
+ file:
+ path: "{{ i40evf_dest }}"
+ state: directory
+
+- name: Fetch i40evf driver
+ get_url:
+ url: "{{ i40evf_url }}"
+ dest: "{{ i40evf_dest }}/{{ i40evf_gzfile }}"
+ validate_certs: False
+ checksum: "{{ i40evf_checksum[i40evf_version] }}"
+ register: package_result
+ until: package_result is succeeded
+ retries: 10
+ delay: 5
+
+- name: Unarchive the i40evf file
+ unarchive:
+ src: "{{ i40evf_dest }}/{{ i40evf_gzfile }}"
+ dest: "{{ i40evf_dest }}"
+ copy: no
+
+- name: Cleanup the archive to save space
+ file:
+ path: "{{ i40evf_dest }}/{{ i40evf_gzfile }}"
+ state: absent
diff --git a/ansible/roles/download_drivers/tasks/main.yml b/ansible/roles/download_drivers/tasks/main.yml
new file mode 100644
index 000000000..b7c1e0f1f
--- /dev/null
+++ b/ansible/roles/download_drivers/tasks/main.yml
@@ -0,0 +1,15 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- include: i40evf.yml
diff --git a/ansible/roles/download_l2fwd/defaults/main.yml b/ansible/roles/download_l2fwd/defaults/main.yml
new file mode 100644
index 000000000..1bc76ef3e
--- /dev/null
+++ b/ansible/roles/download_l2fwd/defaults/main.yml
@@ -0,0 +1,4 @@
+---
+l2fwd_url: "http://artifacts.opnfv.org/yardstick/third-party/l2fwd.tar"
+l2fwd_file: "l2fwd.tar"
+l2fwd_dest: "/home"
diff --git a/ansible/roles/download_l2fwd/tasks/main.yml b/ansible/roles/download_l2fwd/tasks/main.yml
new file mode 100644
index 000000000..43b0ec366
--- /dev/null
+++ b/ansible/roles/download_l2fwd/tasks/main.yml
@@ -0,0 +1,32 @@
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- file:
+ path: "{{ l2fwd_dest }}"
+ state: directory
+
+- name: fetch dpdk
+ get_url:
+ url: "{{ l2fwd_url }}"
+ dest: "{{ l2fwd_dest }}"
+ register: package_result
+ until: package_result is succeeded
+ retries: 10
+ delay: 5
+
+- unarchive:
+ src: "{{ l2fwd_dest }}/{{ l2fwd_file }}"
+ dest: "{{ l2fwd_dest }}/"
+ copy: no
+ mode: 0777
diff --git a/ansible/roles/download_pktgen/defaults/main.yml b/ansible/roles/download_pktgen/defaults/main.yml
new file mode 100644
index 000000000..b598e1d56
--- /dev/null
+++ b/ansible/roles/download_pktgen/defaults/main.yml
@@ -0,0 +1,8 @@
+---
+pktgen_version: "3.2.12"
+pktgen_url: "http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/pktgen-{{ pktgen_version }}.zip"
+pktgen_file: "{{ pktgen_url|basename }}"
+pktgen_unarchive: "{{ pktgen_file|regex_replace('[.]zip$', '') }}"
+pktgen_dest: "{{ clone_dest }}/"
+pktgen_sha256s:
+ "3.2.12": "sha256:a20aeb677fb847c0871acabb6e8f965ba3485e92f92e86e0bb5dc11c787b11d8"
diff --git a/ansible/roles/download_pktgen/tasks/main.yml b/ansible/roles/download_pktgen/tasks/main.yml
new file mode 100644
index 000000000..b5ac8cfe8
--- /dev/null
+++ b/ansible/roles/download_pktgen/tasks/main.yml
@@ -0,0 +1,42 @@
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- file:
+ path: "{{ pktgen_dest }}"
+ state: directory
+
+- name: fetch pktgen
+ get_url:
+ url: "{{ pktgen_url }}"
+ dest: "{{ pktgen_dest }}"
+ validate_certs: False
+ checksum: "{{ pktgen_sha256s[pktgen_version] }}"
+ register: package_result
+ until: package_result is succeeded
+ retries: 10
+ delay: 5
+
+- unarchive:
+ src: "{{ pktgen_dest }}/{{ pktgen_file }}"
+ dest: "{{ pktgen_dest }}/"
+ copy: no
+
+- name: cleanup tar file to save space
+ file:
+ path: "{{ pktgen_dest }}/{{ pktgen_file }}"
+ state: absent
+
+- set_fact:
+ pktgen_path: "{{ pktgen_dest }}/{{ pktgen_unarchive }}"
+
diff --git a/ansible/roles/download_samplevnfs/defaults/main.yml b/ansible/roles/download_samplevnfs/defaults/main.yml
index e40eb67c0..2ae4d6159 100644
--- a/ansible/roles/download_samplevnfs/defaults/main.yml
+++ b/ansible/roles/download_samplevnfs/defaults/main.yml
@@ -1,4 +1,17 @@
---
+# samplevnf_version must be a valid version accepted by "git checkout"
+# It can be either:
+# - a branch name: fetch branch latest commits, as of installation time
+# - a tag name: frozen and reproducible, from stable branches, or
+# - a commit id: frozen and reproducible, from any branch
+# Some examples:
+# - branch name: "master", "stable/gambia", "stable/fraser"
+# - tag name: "opnfv-6.2.0"
+# - commit id: "3afd384b7e68a3cd29f4d2cdf39785f8441d0b6f"
+# Please refer to https://git.opnfv.org/samplevnf for possible values
+# beyond the one specified below
+
samplevnf_url: "https://git.opnfv.org/samplevnf"
samplevnf_dest: "{{ clone_dest }}/samplevnf"
-samplevnf_version: "stable/euphrates"
+samplevnf_version: "47123bfc1b3c0d0b01884aebbce1a3e09ad7ddb0"
+path_json: "{{ INSTALL_BIN_PATH }}/{{ inventory_hostname | basename }}_sample_vnf.json"
diff --git a/ansible/roles/download_samplevnfs/tasks/main.yml b/ansible/roles/download_samplevnfs/tasks/main.yml
index e9d4142c9..f98f2a42d 100644
--- a/ansible/roles/download_samplevnfs/tasks/main.yml
+++ b/ansible/roles/download_samplevnfs/tasks/main.yml
@@ -27,3 +27,7 @@
- set_fact:
samplevnf_path: "{{ samplevnf_dest }}"
+
+- file:
+ dest: "{{ path_json }}"
+ state: absent
diff --git a/ansible/roles/download_trex/defaults/main.yml b/ansible/roles/download_trex/defaults/main.yml
index 6e8fa7020..cbaae1d84 100644
--- a/ansible/roles/download_trex/defaults/main.yml
+++ b/ansible/roles/download_trex/defaults/main.yml
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-trex_version: v2.28
+trex_version: v2.41
trex_url: "https://trex-tgn.cisco.com/trex/release/{{ trex_version }}.tar.gz"
trex_file: "{{ trex_url|basename }}"
trex_unarchive: "{{ trex_file|regex_replace('[.]tar.gz$', '') }}"
@@ -20,3 +20,4 @@ trex_dest: "{{ clone_dest }}/"
trex_sha256s:
"v2.20": "sha256:eb5a069f758a36133a185c7e27af10834ca03d11441165403529fbd7844658fb"
"v2.28": "sha256:c3f08aabbd69dddb09843984d41acbe9ba1af6a6ef3380a7830f7c9e33134207"
+ "v2.41": "sha256:aa4122d82cc7b25a16a20d6dd465eccd89e31c51816d4103765b86d06a8b9810"
diff --git a/ansible/roles/download_trex/tasks/main.yml b/ansible/roles/download_trex/tasks/main.yml
index baa964fd8..44449a9c0 100644
--- a/ansible/roles/download_trex/tasks/main.yml
+++ b/ansible/roles/download_trex/tasks/main.yml
@@ -12,12 +12,21 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
+- name: make sure trex_dest exists
+ file:
+ path: "{{ trex_dest }}"
+ state: directory
+
- name: fetch Trex
get_url:
url: "{{ trex_url }}"
dest: "{{ trex_dest }}"
validate_certs: False
checksum: "{{ trex_sha256s[trex_version] }}"
+ register: package_result
+ until: package_result is succeeded
+ retries: 10
+ delay: 5
- name: unarchive Trex
unarchive:
diff --git a/ansible/roles/enable_cpu_isolation_on_boot/defaults/main.yml b/ansible/roles/enable_cpu_isolation_on_boot/defaults/main.yml
new file mode 100644
index 000000000..fda366682
--- /dev/null
+++ b/ansible/roles/enable_cpu_isolation_on_boot/defaults/main.yml
@@ -0,0 +1,21 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+grub_file: "/etc/default/grub"
+isolcpus_help_string: ' # added by Yardstick ansible isolcpus role'
+isolcpu_params: " isolcpus={{ ISOL_CPUS }} nohz=on nohz_full={{ ISOL_CPUS }} rcu_nocbs={{ ISOL_CPUS }}"
+enable_isolcpu: 'GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX{{ isolcpu_params }}"'
+update_grub:
+ Debian: "update-grub2"
+ RedHat: "grub2-mkconfig -o /boot/grub2/grub.cfg"
diff --git a/ansible/roles/enable_cpu_isolation_on_boot/tasks/main.yml b/ansible/roles/enable_cpu_isolation_on_boot/tasks/main.yml
new file mode 100644
index 000000000..e11288bfd
--- /dev/null
+++ b/ansible/roles/enable_cpu_isolation_on_boot/tasks/main.yml
@@ -0,0 +1,59 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Check if isolcpus is set by this role in {{ grub_file}}
+ lineinfile:
+ path: "{{ grub_file }}"
+ regexp: '{{ isolcpus_help_string }}'
+ state: absent
+ check_mode: yes
+ register: is_nsb_isolcpus_role
+ ignore_errors: True
+
+- name: Check if isolcpus is set by someone else
+ lineinfile:
+ path: "{{ grub_file }}"
+ regexp: "isolcpus="
+ state: absent
+ check_mode: yes
+ register: is_isolcpu
+ ignore_errors: True
+
+- name: Send warning that CPU isolation cannot be configured
+ debug:
+ msg: "WARNING: CPU isolation is not configured"
+ when:
+ - not is_nsb_isolcpus_role.changed and not is_isolcpu.changed
+ - ISOL_CPUS is not defined
+
+- name: Send info that CPU isolation configured by someone else
+ debug:
+ msg: "INFO: NOT modified, CPU isolation is already configured by someone."
+ when:
+ - not is_nsb_isolcpus_role.changed and is_isolcpu.changed
+
+- name: Add/update isolcpus when ISOL_CPUS is defined and not set at all or set by this role
+ lineinfile:
+ path: "{{ grub_file }}"
+ regexp: "{{ isolcpus_help_string }}"
+ line: '{{ enable_isolcpu }} {{ isolcpus_help_string }}'
+ when:
+ - is_nsb_isolcpus_role.changed or not is_nsb_isolcpus_role.changed and not is_isolcpu.changed
+ - ISOL_CPUS is defined
+
+- name: Update grub for bare metal usage
+ command: "{{ update_grub[ansible_os_family] }}"
+ when:
+ - is_nsb_isolcpus_role.changed or not is_nsb_isolcpus_role.changed and not is_isolcpu.changed
+ - ISOL_CPUS is defined
diff --git a/ansible/roles/enable_hugepages_on_boot/tasks/main.yml b/ansible/roles/enable_hugepages_on_boot/tasks/main.yml
index 75526eb19..f84e07545 100755
--- a/ansible/roles/enable_hugepages_on_boot/tasks/main.yml
+++ b/ansible/roles/enable_hugepages_on_boot/tasks/main.yml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-- name: check if hugepages are set by this role
+- name: Check if hugepages are set by this role
command: "grep -o '{{ hugepage_param_regex }}' /etc/default/grub"
register: is_mine_huge
ignore_errors: True
@@ -22,46 +22,32 @@
# stat: path="/sys/firmware/efi"
# register: efi
-- name: check if hugepages are set by someone else
+- name: Check if hugepages are set by someone else
command: "grep -o 'default_hugepagesz=' /etc/default/grub"
register: is_huge
ignore_errors: True
-- fail:
+- debug:
msg: "Hugepages already set by someone else"
when: is_mine_huge.stdout == "" and is_huge.stdout != ""
-- name: configure hugepages as idempotent block
+- name: Configure hugepages as idempotent block
block:
- - name: use 8 for auto num_hugepages and 1G size
+ - name: Use 8 for auto num_hugepages and 1G size
set_fact:
num_hugepages: 8
when: num_hugepages|default("auto") == "auto"
- - name: set hugepages in grub
+ - name: Set hugepages in grub
lineinfile:
dest: /etc/default/grub
regexp: '{{ hugepage_param_regex }}'
line: '{{ hugepage_param }}'
state: present
- - name: create hugetables mount
- file:
- path: "{{ hugetable_mount }}"
- state: directory
-
- - name: mount hugetlbfs
- mount:
- name: "{{ hugetable_mount }}"
- src: nodev
- fstype: hugetlbfs
- state: present
-
- - service:
- name: procps
- enabled: yes
-
- include: manual_modify_grub.yml
# only tested on Ubuntu, kernel line is probably different on other distros
when: ansible_distribution == "Ubuntu"
- when: is_mine_huge.stdout == ""
+ when:
+ - is_mine_huge.stdout == ""
+ - is_huge.stdout == ""
diff --git a/ansible/roles/enable_iommu_on_boot/tasks/main.yml b/ansible/roles/enable_iommu_on_boot/tasks/main.yml
new file mode 100644
index 000000000..2772a5d52
--- /dev/null
+++ b/ansible/roles/enable_iommu_on_boot/tasks/main.yml
@@ -0,0 +1,79 @@
+# Copyright (c) 2017-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Set iommu_boot_params for Intel
+ set_fact:
+ iommu_boot_params: ' intel_iommu=on iommu=pt'
+ when: hostvars[inventory_hostname]['ansible_system_vendor'] == "Intel Corporation"
+
+- name: Set iommu_boot_params for AMD
+ set_fact:
+ iommu_boot_params: ' amd_iommu=on iommu=pt'
+ when: hostvars[inventory_hostname]['ansible_system_vendor'] == "AuthenticAMD"
+
+- block:
+ - name: Define grub string for IOMMU
+ set_fact:
+ enable_iommu: 'GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX{{ iommu_boot_params }}'
+
+ - name: check if iommu is set by this role in {{ grub_file}}
+ lineinfile:
+ path: "{{ grub_file}}"
+ regexp: '{{ iommu_help_string }}'
+ line: '{{ iommu_help_string }}'
+ state: absent
+ check_mode: yes
+ register: is_nsb_iommu_role
+ ignore_errors: True
+
+ - name: Check if IOMMU is set by someone else
+ lineinfile:
+ path: "{{ grub_file}}"
+ regexp: "_iommu="
+ line: '{{ iommu_help_string }}'
+ state: absent
+ check_mode: yes
+ register: is_iommu
+ ignore_errors: True
+
+ - name: Send info that IOMMU is configured by someone else
+ debug:
+ msg: "INFO: NOT modified, IOMMU is already configured by someone."
+ when:
+ - not is_nsb_iommu_role.changed
+ - is_iommu.changed
+
+ - block:
+ - name: Add IOMMU when it is not set
+ lineinfile:
+ path: "{{ grub_file }}"
+ regexp: "{{ iommu_help_string }}"
+ line: '{{ enable_iommu }}" {{ iommu_help_string }}'
+
+ - name: find boot grub.cfg
+ find:
+ paths: /boot
+ file_type: file
+ patterns: 'grub*.cfg'
+ recurse: yes
+ register: grub_files
+
+ - include: manual_modify_grub.yml
+ # only tested on Ubuntu, kernel line is probably different on other distros
+ with_items: "{{ grub_files.files }}"
+ when:
+ - ansible_distribution == "Ubuntu"
+ - not is_nsb_iommu_role.changed
+ - not is_iommu.changed
+ when: iommu_boot_params is defined
diff --git a/ansible/roles/enable_iommu_on_boot/tasks/manual_modify_grub.yml b/ansible/roles/enable_iommu_on_boot/tasks/manual_modify_grub.yml
new file mode 100644
index 000000000..e0c880912
--- /dev/null
+++ b/ansible/roles/enable_iommu_on_boot/tasks/manual_modify_grub.yml
@@ -0,0 +1,32 @@
+# Copyright (c) 2017-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: check if iommu is set by this role in /boot grub.cfg files
+ lineinfile:
+ path: "{{ item.path }}"
+ regexp: '{{ iommu_boot_params }}'
+ line: '{{ iommu_boot_params }}'
+ state: absent
+ check_mode: yes
+ register: is_mine_iommu_boot_grub
+ ignore_errors: True
+
+- name: added iommu to grub manually because we can't run update-grub in chroot
+ replace:
+ path: "{{ item.path }}"
+ regexp: '(.*linux\s+/boot/vmlinuz.*)$'
+ replace: '\1{{ iommu_boot_params }}'
+ when: not is_mine_iommu_boot_grub.changed
+
+- debug: var=ansible_kernel
diff --git a/ansible/roles/enable_iommu_on_boot/vars/main.yml b/ansible/roles/enable_iommu_on_boot/vars/main.yml
new file mode 100644
index 000000000..d2575ffd6
--- /dev/null
+++ b/ansible/roles/enable_iommu_on_boot/vars/main.yml
@@ -0,0 +1,19 @@
+# Copyright (c) 2017-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+grub_file: "/etc/default/grub"
+iommu_help_string: ' # added by Yardstick ansible iommu role'
+update_grub:
+ Debian: "update-grub2"
+ RedHat: "grub2-mkconfig -o /boot/grub2/grub.cfg"
diff --git a/ansible/roles/infra_check_requirements/tasks/main.yml b/ansible/roles/infra_check_requirements/tasks/main.yml
new file mode 100644
index 000000000..991bd7383
--- /dev/null
+++ b/ansible/roles/infra_check_requirements/tasks/main.yml
@@ -0,0 +1,80 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Reread system properties
+ setup:
+
+- name: Include
+ include_vars:
+ file: "{{ rs_file }}"
+ name: infra_deploy_vars
+
+- name: Store total CPU, RAM, Disk requested resources
+ set_fact:
+ vcpu_t: "{{ item.vcpus|int + vcpu_t | int }}"
+ vram_t: "{{ item.ram|int + vram_t | int }}"
+ disk_t: "{{ item.disk|int + disk_t | int }}"
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+- name: Fail if not enough RAM
+ fail:
+ msg: "Failed, not enough RAM, required: {{ vram_t }}, available {{ ansible_memory_mb.nocache.free }}"
+ when: ansible_memory_mb.nocache.free < vram_t | int
+
+- name: Fail if not enough CPU
+ fail:
+ msg: "Failed, not enough CPU, required: {{ vcpu_t }}, available {{ ansible_processor_vcpus }}"
+ when: ansible_processor_vcpus < vcpu_t | int
+
+- name: Define default network counter
+ set_fact:
+ num_default_network_detected: 0
+
+- name: Increment counter for every default network detected
+ set_fact:
+ num_default_network_detected: "{{ num_default_network_detected | int + 1 }}"
+ when:
+ - item.default_gateway is defined
+ - item.default_gateway == True
+ with_items: "{{ infra_deploy_vars.networks }}"
+
+- name: Fail if more than 1 or 0 default networks
+ fail:
+ msg: "Failed, there must be 1 default network: {{ num_default_network_detected }} detected"
+ when: num_default_network_detected | int != 1
+
+- name: Fail if not enough Disk space
+ set_fact:
+ disk_avail: "{% for mount in ansible_mounts if mount.mount == '/' %}{{ (mount.size_available/1024/1024) | int }}{% endfor %}"
+- fail:
+ msg: "Failed, not enough disk space, required {{ disk_t }}, available: {{ disk_avail }}"
+ when: disk_avail|int < disk_t | int
+
+- set_fact:
+ ostack_nodes: "{{ ostack_nodes | default([]) + [item.openstack_node] }}"
+ when: item.openstack_node is defined
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+# all-in-one node node type must be controller, multinode requires at least one controller and one compute node
+- fail:
+ msg: "OpenStack node types currently supported: controller, compute. Check input VMs file."
+ when: ostack_nodes is undefined or ostack_nodes | length < 1
+
+- fail:
+ msg: "In all-in-one configuration OpenStack node type must be controller."
+ when: ostack_nodes | length == 1 and 'controller' not in ostack_nodes
+
+- fail:
+ msg: "At least one controller and one compute node expected when total number of OpenStack nodes is more than one."
+ when: ostack_nodes | length > 1 and not ('compute' in ostack_nodes and 'controller' in ostack_nodes)
diff --git a/ansible/roles/infra_check_requirements/vars/main.yml b/ansible/roles/infra_check_requirements/vars/main.yml
new file mode 100644
index 000000000..219c33875
--- /dev/null
+++ b/ansible/roles/infra_check_requirements/vars/main.yml
@@ -0,0 +1,17 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+vcpu_t: 0
+vram_t: 0
+disk_t: 0
diff --git a/ansible/roles/infra_create_network/tasks/create_xml.yml b/ansible/roles/infra_create_network/tasks/create_xml.yml
new file mode 100644
index 000000000..345b77927
--- /dev/null
+++ b/ansible/roles/infra_create_network/tasks/create_xml.yml
@@ -0,0 +1,91 @@
+# Copyright (c) 2017-2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Define XML file name
+ set_fact:
+ xml_file: "{{ '/tmp/'+item.name+'.xml' }}"
+
+- name: Delete the file, if exists
+ file:
+ path: "{{ xml_file }}"
+ state: absent
+
+- name: Create a new empty file
+ file:
+ path: "{{ xml_file }}"
+ state: touch
+
+- name: Add root "network" node
+ blockinfile:
+ path: "{{ xml_file }}"
+ marker: ""
+ content: |
+ <network>
+ </network>
+
+- name: Add new children nodes to "network" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /network
+ add_children:
+ - name: "{{ item.name }}"
+ - forward:
+ mode: nat
+ - bridge:
+ name: "{{ item.name }}"
+ stp: "on"
+ delay: "0"
+ - ip:
+ address: "{{ item.host_ip }}"
+ netmask: "{{ item.netmask }}"
+ pretty_print: yes
+
+- name: Add new children nodes to "forward" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /network/forward
+ add_children:
+ - nat
+ pretty_print: yes
+
+- name: Add new children nodes to "nat" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /network/forward/nat
+ add_children:
+ - port:
+ start: "1024"
+ end: "65535"
+ pretty_print: yes
+
+- name: Define the networks
+ virt_net:
+ command: define
+ name: "{{ item.name }}"
+ xml: "{{ lookup('file', xml_file) }}"
+
+- name: Set autostart to yes
+ virt_net:
+ autostart: yes
+ name: "{{ item.name }}"
+
+- name: Start the networks
+ virt_net:
+ command: start
+ name: "{{ item.name }}"
+
+- name: Remove XML file
+ file:
+ path: "{{ xml_file }}"
+ state: absent
diff --git a/ansible/roles/infra_create_network/tasks/main.yml b/ansible/roles/infra_create_network/tasks/main.yml
new file mode 100644
index 000000000..025a775a1
--- /dev/null
+++ b/ansible/roles/infra_create_network/tasks/main.yml
@@ -0,0 +1,22 @@
+# Copyright (c) 2017-2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Include
+ include_vars:
+ file: "{{ rs_file }}"
+ name: infra_deploy_vars
+
+- name: Create XML file
+ include_tasks: create_xml.yml
+ with_items: "{{ infra_deploy_vars.networks }}"
diff --git a/ansible/roles/infra_create_vms/tasks/configure_vm.yml b/ansible/roles/infra_create_vms/tasks/configure_vm.yml
new file mode 100644
index 000000000..a6a5e0618
--- /dev/null
+++ b/ansible/roles/infra_create_vms/tasks/configure_vm.yml
@@ -0,0 +1,354 @@
+# Copyright (c) 2017-2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Remove directory
+ file:
+ path: "{{ '/tmp/'+node_item.hostname }}"
+ state: absent
+
+- name: Create directory
+ file:
+ path: "{{ '/tmp/'+node_item.hostname }}"
+ state: directory
+ mode: 0755
+
+- name: Define user-data file name
+ set_fact:
+ user_data: "{{ '/tmp/'+node_item.hostname+'/user-data' }}"
+
+- name: Define image-dir
+ set_fact:
+ image_dir: "{{ '/var/lib/libvirt/images/' }}"
+
+- name: Create a new empty file for user-data
+ file:
+ path: "{{ user_data }}"
+ state: touch
+
+- name: Add user-data
+ blockinfile:
+ path: "{{ user_data }}"
+ marker: "MARKER"
+ content: |
+ #cloud-config
+ preserve_hostname: False
+ hostname: {{ node_item.hostname }}
+ output:
+ all: ">> /var/log/cloud-init.log"
+ ssh_pwauth: True
+ users:
+ - name: {{ node_item.user }}
+ lock-passwd: False
+ plain_text_passwd: {{ node_item.password }}
+ chpasswd: { expire: False }
+ sudo: ALL=(ALL) NOPASSWD:ALL
+ ssh_pwauth: True
+
+- name: Remove the marker
+ lineinfile:
+ dest: "{{ user_data }}"
+ state: absent
+ regexp: "MARKER"
+
+- name: Define network-config file name
+ set_fact:
+ network_config: "{{ '/tmp/'+node_item.hostname+'/network-config' }}"
+
+- name: Create a new empty file for network-config
+ file:
+ path: "{{ network_config }}"
+ state: touch
+
+- name: Add network-data
+ blockinfile:
+ path: "{{ network_config }}"
+ marker: "MARKER"
+ content: |
+ version: 2
+ ethernets:
+
+- name: Define meta-data file name
+ set_fact:
+ meta_data: "{{ '/tmp/'+node_item.hostname+'/meta-data' }}"
+
+- name: Create a new empty file for meta-data
+ file:
+ path: "{{ meta_data }}"
+ state: touch
+
+- name: Add meta-data
+ blockinfile:
+ path: "{{ meta_data }}"
+ marker: "MARKER"
+ content: |
+ instance-id: {{ node_item.hostname }}
+ local-hostname: {{ node_item.hostname }}
+
+- name: Remove the marker
+ lineinfile:
+ dest: "{{ meta_data }}"
+ state: absent
+ regexp: "MARKER"
+
+- name: Define xml file name
+ set_fact:
+ xml_file: "{{ '/tmp/'+node_item.hostname+'/'+node_item.hostname+'.xml' }}"
+
+- name: Create a new empty file for xml file
+ file:
+ path: "{{ xml_file }}"
+ state: touch
+
+- name: Add root "domain" node
+ blockinfile:
+ path: "{{ xml_file }}"
+ marker: ""
+ content: |
+ <domain>
+ </domain>
+
+- name: Add "type" attribute to "domain" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain
+ attribute: type
+ value: "kvm"
+ pretty_print: yes
+
+- name: Add new children nodes to "domain" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain
+ add_children:
+ - name: "{{ node_item.hostname }}"
+ - memory: "{{ node_item.ram }}"
+ - vcpu: "{{ node_item.vcpus }}"
+ - os
+ - cpu
+ - devices
+ pretty_print: yes
+
+- name: Add "unit" attribute to "memory" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/memory
+ attribute: unit
+ value: "MB"
+ pretty_print: yes
+
+- name: Add "placement" attribute to "vcpu" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/vcpu
+ attribute: placement
+ value: "static"
+ pretty_print: yes
+
+- name: Add new children nodes to "os" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/os
+ add_children:
+ - type: "hvm"
+ - boot
+ pretty_print: yes
+
+- name: Add "arch" attribute to "type" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/os/type
+ attribute: arch
+ value: "x86_64"
+ pretty_print: yes
+
+- name: Add "dev" attribute to "boot" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/os/boot
+ attribute: dev
+ value: "hd"
+ pretty_print: yes
+
+- name: Add new children nodes to "cpu" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/cpu
+ add_children:
+ - cache
+ pretty_print: yes
+
+- name: Add "mode" attribute to "cpu" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/cpu
+ attribute: mode
+ value: "host-passthrough"
+ pretty_print: yes
+
+- name: Add "mode" attribute to "cache" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/cpu/cache
+ attribute: mode
+ value: "passthrough"
+ pretty_print: yes
+
+- name: Add new children nodes to "devices" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/devices
+ add_children:
+ - disk:
+ type: file
+ device: disk
+ - controller:
+ type: virtio-serial
+ index: '0'
+ - serial:
+ type: pty
+ - console:
+ type: pty
+ tty: '/dev/pts/14'
+ - graphics:
+ type: vnc
+ port: '-1'
+ autoport: 'yes'
+ pretty_print: yes
+
+- name: Add new children nodes to "disk" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/devices/disk
+ add_children:
+ - driver:
+ name: qemu
+ type: qcow2
+ - source:
+ file: "{{ '/var/lib/libvirt/images/'+node_item.hostname+'.qcow2' }}"
+ - target:
+ dev: vda
+ bus: virtio
+ - alias:
+ name: virtio-disk0
+ pretty_print: yes
+
+- name: Add new children nodes to "graphics" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/devices/graphics
+ add_children:
+ - listen:
+ type: address
+ address: 0.0.0.0
+ pretty_print: yes
+
+- name: Add new children nodes to "devices" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/devices
+ add_children:
+ - disk:
+ type: file
+ device: cdrom
+ pretty_print: yes
+
+- name: Add new children nodes to "disk" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/devices/disk
+ add_children:
+ - source:
+ file: "{{ '/var/lib/libvirt/images/'+node_item.hostname+'-ci-data.img' }}"
+ - target:
+ dev: hdb
+ bus: ide
+ - readonly
+ pretty_print: yes
+
+- name: Configure controller
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/devices/controller
+ add_children:
+ - alias:
+ name: virtio-serial0
+ pretty_print: yes
+
+- name: Configure serial
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/devices/serial
+ add_children:
+ - source:
+ path: '/dev/pts/14'
+ - target:
+ port: '0'
+ - alias:
+ name: 'serial0'
+ pretty_print: yes
+
+- name: Configure console
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/devices/console
+ add_children:
+ - source:
+ path: '/dev/pts/14'
+ - target:
+ port: '0'
+ type: 'serial'
+ - alias:
+ name: 'serial0'
+ pretty_print: yes
+
+- set_fact:
+ slot_address: 5
+
+- name: Populate network-config and add interface to xml file
+ include_tasks: create_interfaces.yml
+ extra_vars: "{{ network_config xml_file slot_address mac_address_counter }}"
+ loop_control:
+ loop_var: interface_item
+ with_items: "{{ node_item.interfaces }}"
+
+- name: Create directory
+ file:
+ path: "{{ '/tmp/'+node_item.hostname }}"
+ state: directory
+ mode: 0755
+
+- name: Generate iso image
+ shell: >
+ genisoimage -output {{ image_dir+node_item.hostname+'-ci-data.img' }} -volid cidata -joliet
+ -r {{ '/tmp/'+node_item.hostname+'/network-config' }} {{ '/tmp/'+node_item.hostname+'/user-data' }} {{ '/tmp/'+node_item.hostname+'/meta-data' }}
+ &>> {{ '/tmp/'+node_item.hostname+'/hostname.log' }}
+
+- name: Copy and convert the ubuntu image
+ shell: >
+ qemu-img convert -O qcow2 {{ node_item.image }} {{ image_dir+node_item.hostname+'.qcow2' }}
+
+- name: Resize image
+ shell: >
+ qemu-img resize {{ image_dir+node_item.hostname+'.qcow2' }} {{ node_item.disk }}M
+
+- name: Define the VMs
+ virt:
+ command: define
+ name: "{{ node_item.hostname }}"
+ xml: "{{ lookup('file', '/tmp/'+node_item.hostname+'/'+node_item.hostname+'.xml') }}"
+
+- name: Start the VMs
+ virt:
+ command: create
+ name: "{{ node_item.hostname }}"
diff --git a/ansible/roles/infra_create_vms/tasks/create_interfaces.yml b/ansible/roles/infra_create_vms/tasks/create_interfaces.yml
new file mode 100644
index 000000000..12b2726dc
--- /dev/null
+++ b/ansible/roles/infra_create_vms/tasks/create_interfaces.yml
@@ -0,0 +1,84 @@
+# Copyright (c) 2017-2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- set_fact:
+ mac_address_arg: "mac_address"
+
+- set_fact:
+ mac_address_arg: "macaddress"
+ when:
+ - ansible_distribution == 'Ubuntu'
+ - ansible_distribution_major_version|int >= 18
+
+- name: Add network-data
+ blockinfile:
+ path: "{{ network_config }}"
+ insertafter: 'ethernets:'
+ marker: "MARKER"
+ block: |2
+ {{ 'enp0s%d:'| format( slot_address | int) }}
+ match:
+ {{ mac_address_arg }}: {{ '52:54:00:5d:7d:%02x'| format( mac_address_counter | int) }}
+ addresses:
+ - {{ interface_item.ip }}/{{ (interface_item.ip + '/' + interface_item.netmask) | ipaddr('prefix') }}
+
+- name: Add default gateway
+ blockinfile:
+ path: "{{ network_config }}"
+ insertafter: "{{ interface_item.ip }}"
+ marker: "MARKER"
+ block: |2
+ gateway4: {{ default_bridge.host_ip }}
+ when:
+ - default_bridge is defined
+ - default_bridge.name == interface_item.network
+
+- name: Remove the marker introduced in network-data
+ lineinfile:
+ dest: "{{ network_config }}"
+ state: absent
+ regexp: "MARKER"
+
+- name: Add new children nodes to "domain" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/devices
+ add_children:
+ - interface:
+ type: 'bridge'
+ pretty_print: yes
+
+- name: Add new children nodes to "domain" node
+ xml:
+ path: "{{ xml_file }}"
+ xpath: /domain/devices/interface
+ add_children:
+ - source:
+ bridge: "{{ interface_item.network }}"
+ - model:
+ type: 'virtio'
+ - address:
+ type: 'pci'
+ domain: '0x0000'
+ bus: '0x00'
+ slot: "{{ '0x%02x'| format( slot_address | int) }}"
+ function: '0x0'
+ - mac:
+ address: "{{ '52:54:00:5d:7d:%02x'| format( mac_address_counter | int) }}"
+ pretty_print: yes
+
+- set_fact:
+ slot_address: "{{ slot_address | int + 1 }}"
+- set_fact:
+ mac_address_counter: "{{ mac_address_counter | int + 1 }}"
diff --git a/ansible/roles/infra_create_vms/tasks/main.yml b/ansible/roles/infra_create_vms/tasks/main.yml
new file mode 100644
index 000000000..b422a9205
--- /dev/null
+++ b/ansible/roles/infra_create_vms/tasks/main.yml
@@ -0,0 +1,45 @@
+# Copyright (c) 2017-2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Include
+ include_vars:
+ file: "{{ rs_file }}"
+ name: infra_deploy_vars
+
+- set_fact:
+ mac_address_counter: 0
+
+- set_fact:
+ default_bridge: "{{ item }}"
+ when:
+ - item.default_gateway is defined
+ - item.default_gateway == True
+ with_items: "{{ infra_deploy_vars.networks }}"
+
+- name: Create XML file
+ include_tasks: configure_vm.yml
+ loop_control:
+ loop_var: node_item
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+- name: Create list of dictionaries with vm name, ip address
+ set_fact:
+ vm_name_ip: "{{ vm_name_ip|default([]) + [{item.hostname: item.interfaces[1].ip}] }}"
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+- name: Make sure VM is reachable
+ include_tasks: validate_vms.yml
+ loop_control:
+ loop_var: name_ip
+ with_items: "{{ vm_name_ip }}"
diff --git a/ansible/roles/infra_create_vms/tasks/validate_vms.yml b/ansible/roles/infra_create_vms/tasks/validate_vms.yml
new file mode 100644
index 000000000..ce5eff211
--- /dev/null
+++ b/ansible/roles/infra_create_vms/tasks/validate_vms.yml
@@ -0,0 +1,54 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Validate if VM is responding
+ wait_for:
+ host: "{{ item.value }}"
+ port: 22
+ timeout: 10
+ with_dict: "{{ name_ip }}"
+ register: result
+ ignore_errors: yes
+
+- name: Stop VM if it is not responding
+ virt:
+ name: "{{ item.key }}"
+ command: destroy
+ when: result is failed
+ with_dict: "{{ name_ip }}"
+
+- name: Wait for VM is being stopped
+ pause:
+ seconds: 10
+ when: result is failed
+
+- name: Start VM
+ virt:
+ name: "{{ item.key }}"
+ command: start
+ when: result is failed
+ with_dict: "{{ name_ip }}"
+
+- name: Validate if VM is responding
+ wait_for:
+ host: "{{ item.value }}"
+ port: 22
+ timeout: 10
+ when: result is failed
+ with_dict: "{{ name_ip }}"
+ register: result
+
+- fail:
+ msg: "FAILED on {{ name_ip }}"
+ when: result is failed
diff --git a/ansible/roles/infra_deploy_openstack/tasks/configure_kolla.yml b/ansible/roles/infra_deploy_openstack/tasks/configure_kolla.yml
new file mode 100644
index 000000000..9713c0d1e
--- /dev/null
+++ b/ansible/roles/infra_deploy_openstack/tasks/configure_kolla.yml
@@ -0,0 +1,40 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Modify globals.yml
+ replace:
+ path: /etc/kolla/globals.yml
+ regexp: "{{ item.find }}"
+ replace: "{{ item.insert_after }}"
+ with_items:
+ - { find: '^#kolla_base_distro:.*', insert_after: 'kolla_base_distro: "ubuntu"' }
+ - { find: '^#kolla_install_type:.*', insert_after: 'kolla_install_type: "source"' }
+ - { find: '^#openstack_release:.*', insert_after: 'openstack_release: "pike"' }
+ - { find: 'kolla_internal_vip_address:.*', insert_after: 'kolla_internal_vip_address: "{{ deployvm_ip }}"' }
+ - { find: '^#network_interface:.*', insert_after: 'network_interface: "{{ hostvars[ansible_host].ansible_default_ipv4.interface }}"' }
+ - { find: '^#neutron_external_interface:.*', insert_after: 'neutron_external_interface: "{{ neutron_iface }}"' }
+ - { find: '^#enable_haproxy:.*', insert_after: 'enable_haproxy: "no"'}
+ - { find: '^#enable_heat:.*' , insert_after: 'enable_heat: "yes"'}
+ - { find: '^#docker_registry:.*', insert_after: 'docker_registry: "{{ ansible_host }}:4000"' }
+
+- name: Generate multinode from inventory
+ template:
+ src: templates/multinode.j2
+ dest: "{{ git_repos_path + 'multinode' }}"
+
+- set_fact:
+ path2multinode: "{{ git_repos_path + kolla_ans_path + '/ansible/inventory/multinode' }}"
+
+- name: Append rest groups to multinode file
+ shell: line=`grep -n '\[deployment\]' {{ path2multinode }} | cut -d ':' -f1` && tail -n +$line {{ path2multinode }} >> "{{ git_repos_path + 'multinode' }}"
diff --git a/ansible/roles/infra_deploy_openstack/tasks/configure_openstack.yml b/ansible/roles/infra_deploy_openstack/tasks/configure_openstack.yml
new file mode 100644
index 000000000..3963cb64c
--- /dev/null
+++ b/ansible/roles/infra_deploy_openstack/tasks/configure_openstack.yml
@@ -0,0 +1,67 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Create folders
+ file:
+ path: "{{ item }}"
+ state: directory
+ with_items:
+ - /etc/kolla/config/nova
+ - /etc/kolla/config/neutron
+
+- set_fact:
+ filter_ops: RetryFilter,AvailabilityZoneFilter,RamFilter,DiskFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,SameHostFilter
+
+- name: Configure OpenStack Nova
+ copy:
+ content: |
+ [filter_scheduler]
+ enabled_filters = {{ filter_ops }}
+ [libvirt]
+ cpu_mode = host-passthrough
+ dest: /etc/kolla/config/nova.conf
+
+- name: Configure OpenStack Neutron
+ copy:
+ content: |
+ [DEFAULT]
+ service_plugins=neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
+ [securitygroup]
+ firewall_driver = neutron.agent.firewall.NoopFirewallDriver
+ [ml2]
+ extension_drivers=port_security
+ [agent]
+ extensions=port_security
+ dest: /etc/kolla/config/neutron.conf
+
+- name: Configure OpenStack ml2_plugin.ini
+ copy:
+ content: |
+ [ml2]
+ tenant_network_types = vxlan
+ extension_drivers = port_security
+ type_drivers = vlan,flat,local,vxlan
+ mechanism_drivers = openvswitch
+ [ml2_type_flat]
+ flat_networks = physnet1
+ [ml2_type_vlan]
+ network_vlan_ranges = physnet1
+ [securitygroup]
+ firewall_driver = iptables_hybrid
+ [ovs]
+ datapath_type = system
+ bridge_mappings = physnet1:br-ex
+ tunnel_bridge = br-tun
+ local_ip = {{ deployvm_ip }}
+ dest: /etc/kolla/config/neutron/ml2_plugin.ini
diff --git a/ansible/roles/infra_deploy_openstack/tasks/install_kolla.yml b/ansible/roles/infra_deploy_openstack/tasks/install_kolla.yml
new file mode 100644
index 000000000..38c163c6c
--- /dev/null
+++ b/ansible/roles/infra_deploy_openstack/tasks/install_kolla.yml
@@ -0,0 +1,54 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Download kolla and kolla-ansible from git repos
+ git:
+ repo: "{{ item.repo }}"
+ dest: "{{ git_repos_path + item.dir }}"
+ version: stable/pike
+ with_items:
+ - { dir: "{{ kolla_path }}", repo: 'https://git.openstack.org/openstack/kolla'}
+ - { dir: "{{ kolla_ans_path }}", repo: 'https://git.openstack.org/openstack/kolla-ansible' }
+
+- name: Copy kolla-ansible password.yml and globals.yml
+ shell: cp -r "{{ git_repos_path + kolla_ans_path + '/etc/kolla/' }}" /etc/
+
+- name: Copy kolla-ansible all-in-one, multinode
+ shell: cp * "{{ git_repos_path }}"
+ args:
+ chdir: "{{ git_repos_path + kolla_ans_path + '/ansible/inventory/' }}"
+
+- name: Install requirements
+ pip:
+ chdir: "{{ item[0] }}"
+ requirements: "{{ item[1] }}"
+ with_nested:
+ - [ "{{ git_repos_path + kolla_path }}", "{{ git_repos_path + kolla_ans_path }}" ]
+ - [ 'requirements.txt', 'test-requirements.txt' ]
+
+- name: pip install .
+ pip:
+ chdir: "{{ item }}"
+ name: '.'
+ with_items:
+ - "{{ git_repos_path + kolla_path }}"
+ - "{{ git_repos_path + kolla_ans_path }}"
+
+- name: Run setup.py
+ shell: "python setup.py install"
+ args:
+ chdir: "{{ item }}"
+ with_items:
+ - "{{ git_repos_path + kolla_path }}"
+ - "{{ git_repos_path + kolla_ans_path }}"
diff --git a/ansible/roles/infra_deploy_openstack/tasks/main.yml b/ansible/roles/infra_deploy_openstack/tasks/main.yml
new file mode 100644
index 000000000..ba5d5bc54
--- /dev/null
+++ b/ansible/roles/infra_deploy_openstack/tasks/main.yml
@@ -0,0 +1,125 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+# This script is based on https://docs.openstack.org/kolla-ansible/pike/user/quickstart.html
+- name: Include variables
+ include_vars:
+ file: "{{ rs_file }}"
+ name: infra_deploy_vars
+
+- set_fact:
+ traffic_ip: "{{ item.interfaces[1].ip }}"
+ when: item.hostname == ansible_host
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+- name: Get neutron iface
+ set_fact:
+ neutron_iface: "{{ item }}"
+ when:
+ - hostvars[ansible_host]['ansible_' + item.replace('-', '_')].ipv4 is defined
+ - hostvars[ansible_host]['ansible_' + item.replace('-', '_')].ipv4.address is defined
+ - hostvars[ansible_host]['ansible_' + item.replace('-', '_')].ipv4.address == traffic_ip
+ with_items: "{{ hostvars[ansible_host].ansible_interfaces }}"
+
+- name: Create a registry container
+ docker_container:
+ name: registry
+ image: registry:2
+ restart_policy: always
+ ports:
+ - "4000:5000"
+
+- name: Download and install Kolla
+ include_tasks: install_kolla.yml
+
+- name: Configure Kolla
+ include_tasks: configure_kolla.yml
+
+- name: Configure Open Stack
+ include_tasks: configure_openstack.yml
+
+- name: Ramp up Open Stack
+ include_tasks: rampup_openstack.yml
+
+- name: Update admin-openrc.sh
+ lineinfile:
+ path: /etc/kolla/admin-openrc.sh
+ regexp: "{{ item.find }}"
+ line: "{{ item.add }}"
+ with_items:
+ - { find: 'EXTERNAL_NETWORK', add: 'export EXTERNAL_NETWORK=public' }
+ - { find: 'OS_AUTH_TYPE', add: 'export OS_AUTH_TYPE=password' }
+
+- name: Copy env file
+ shell: cp /etc/kolla/admin-openrc.sh /tmp/admin-openrc.yaml
+
+- name: Rework as env vars
+ replace:
+ path: /tmp/admin-openrc.yaml
+ regexp: 'export\s+(.*)=(.*)'
+ replace: '\1: \2'
+
+- name: Download OpenStack env file
+ fetch:
+ src: /tmp/admin-openrc.yaml
+ dest: /tmp/
+ flat: yes
+
+- include_vars:
+ file: /tmp/admin-openrc.yaml
+ name: ostack_env
+
+- name: Re-assign IP address
+ shell: ip address show {{ neutron_iface }} | awk '/inet/ {print $2}'
+ when: neutron_iface is defined
+ register: ip_netmask
+
+- shell: >
+ ip addr del dev {{ neutron_iface }} {{ ip_netmask.stdout }} &&
+ ip addr add dev br-ex {{ infra_deploy_vars.networks[1].host_ip }}/{{ ip_netmask.stdout_lines[0].split('/')[1] }}
+ when:
+ - neutron_iface is defined
+ - ip_netmask.stdout | length > 0
+
+- name: Create external network
+ os_network:
+ name: public
+ external: yes
+ provider_physical_network: physnet1
+ provider_network_type: flat
+ environment:
+ - no_proxy: "{{ lookup('env', 'no_proxy') + ',' + ansible_host + ',' + hostvars[ansible_host].ansible_default_ipv4.address }}"
+ - "{{ ostack_env }}"
+
+- name: Create sub-network
+ os_subnet:
+ name: public-subnet
+ network_name: public
+ cidr: "{{ ip_netmask.stdout }}"
+ allocation_pool_start: "{{ infra_deploy_vars.networks[1].dhcp_ip_start }}"
+ allocation_pool_end: "{{ infra_deploy_vars.networks[1].dhcp_ip_stop }}"
+ gateway_ip: "{{ infra_deploy_vars.networks[1].host_ip }}"
+ enable_dhcp: no
+ environment:
+ - no_proxy: "{{ lookup('env', 'no_proxy') + ',' + ansible_host + ',' + hostvars[ansible_host].ansible_default_ipv4.address }}"
+ - "{{ ostack_env }}"
+
+- name: Upload OpenStack env file to Yardstick VM
+ copy:
+ src: /etc/kolla/admin-openrc.sh
+ dest: '/tmp/admin-openrc.sh'
+ delegate_to: "{{ item }}"
+ when: "groups['yardstickG'] is defined"
+ with_items:
+ - "{{ groups['yardstickG'] }}"
diff --git a/ansible/roles/infra_deploy_openstack/tasks/rampup_openstack.yml b/ansible/roles/infra_deploy_openstack/tasks/rampup_openstack.yml
new file mode 100644
index 000000000..c75bec685
--- /dev/null
+++ b/ansible/roles/infra_deploy_openstack/tasks/rampup_openstack.yml
@@ -0,0 +1,43 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Generate passwords
+ shell: kolla-genpwd
+
+- name: Generate the kolla-build.conf
+ shell: tox -e genconfig
+ args:
+ chdir: "{{ git_repos_path + kolla_path }}"
+
+- set_fact:
+ target: "{{ git_repos_path + 'all-in-one' }}"
+
+- set_fact:
+ target: "{{ git_repos_path + 'multinode' }}"
+ when: "groups['ostack'] | length > 1"
+
+- name: Run kolla-ansible precheck
+ shell: kolla-ansible prechecks -i "{{ target }}"
+
+- name: Build kolla-ansible
+ shell: kolla-build -b ubuntu -t source --profile default --tag pike --registry {{ ansible_host }}:4000 --push
+
+- name: Pull images from registry
+ shell: kolla-ansible pull -i "{{ target }}"
+
+- name: Run kolla-ansible deploy
+ shell: kolla-ansible deploy -i "{{ target }}"
+
+- name: Create an openrc file
+ shell: kolla-ansible post-deploy
diff --git a/ansible/roles/infra_deploy_openstack/templates/multinode.j2 b/ansible/roles/infra_deploy_openstack/templates/multinode.j2
new file mode 100644
index 000000000..57f87b521
--- /dev/null
+++ b/ansible/roles/infra_deploy_openstack/templates/multinode.j2
@@ -0,0 +1,39 @@
+{% set control_dict = {} %}
+{% set compute_dict = {} %}
+{% for host in groups['ostack'] %}
+{% if hostvars[host].node_type is defined and hostvars[host].node_type == 'controller' %}
+{% set control_dict = control_dict.update({hostvars[host].ansible_host: hostvars[host].ansible_default_ipv4.interface}) %}
+{% endif %}
+{% endfor %}
+{% for host in groups['ostack'] %}
+{% if hostvars[host].node_type is defined and hostvars[host].node_type == 'compute' %}
+{% for iface in hostvars[host].ansible_interfaces %}
+{%- if ((hostvars[host]['ansible_' + iface.replace('-', '_')].ipv4 is defined) and
+ (hostvars[host]['ansible_' + iface.replace('-', '_')].ipv4.address is defined) and
+ (hostvars[host]['ansible_' + iface.replace('-', '_')].ipv4.address == hostvars[host].secondary_ip)) -%}
+{% set compute_dict = compute_dict.update({hostvars[host].ansible_host: iface}) %}
+{% endif %}
+{% endfor %}
+{% endif %}
+{% endfor %}
+{% macro print_node(in_dict, iface_str='', cnt=1) %}
+{%- for host, iface in in_dict | dictsort -%}
+{% if loop.index <= cnt %}
+{% if iface_str %}
+{{ host }} ansible_ssh_user={{ hostvars[host].ansible_user }} ansible_private_key_file=/root/.ssh/id_rsa ansible_become=True {{ iface_str }}={{ iface }}
+{% else %}
+{{ host }} ansible_ssh_user={{ hostvars[host].ansible_user }} ansible_private_key_file=/root/.ssh/id_rsa ansible_become=True
+{% endif %}
+{% endif %}
+{% endfor %}
+{% endmacro %}
+[control]
+{{ print_node(control_dict, iface_str='network_interface', cnt=control_dict | length) }}
+[compute]
+{{ print_node(compute_dict, iface_str='network_interface', cnt=compute_dict | length) }}
+[network]
+{{ print_node(control_dict, iface_str='', cnt=control_dict | length) }}
+[monitoring]
+{{ print_node(control_dict) }}
+[storage]
+{{ print_node(control_dict, iface_str='', cnt=control_dict | length) }}
diff --git a/ansible/roles/infra_deploy_openstack/vars/main.yml b/ansible/roles/infra_deploy_openstack/vars/main.yml
new file mode 100644
index 000000000..bbea56847
--- /dev/null
+++ b/ansible/roles/infra_deploy_openstack/vars/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+kolla_path: "{{ 'https://git.openstack.org/openstack/kolla' | urlsplit('path') | basename }}"
+kolla_ans_path: "{{ 'https://git.openstack.org/openstack/kolla-ansible' | urlsplit('path') | basename }}"
+deployvm_ip: "{{ hostvars[ansible_host].host_ip }}"
+git_repos_path: '/tmp/repos/'
diff --git a/ansible/roles/infra_destroy_previous_configuration/tasks/delete_network.yml b/ansible/roles/infra_destroy_previous_configuration/tasks/delete_network.yml
new file mode 100644
index 000000000..5e616335a
--- /dev/null
+++ b/ansible/roles/infra_destroy_previous_configuration/tasks/delete_network.yml
@@ -0,0 +1,53 @@
+# Copyright (c) 2017-2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Destroy old networks created by virt
+ virt_net:
+ name: "{{ network_item }}"
+ command: destroy
+ when: clean_up | bool or network_item in deploy_nets
+
+# Ignoring errors as network can be created without being defined.
+# This can happen if a user manually creates a network using the virsh command.
+# If the network is not defined the undefine code will throw an error.
+- name: Undefine old networks defined by virt
+ virt_net:
+ name: "{{ network_item }}"
+ command: undefine
+ when: clean_up | bool or network_item in deploy_nets
+ ignore_errors: yes
+
+- name: Check if "ovs-vsctl" command is present
+ command: which ovs-vsctl
+ register: ovs_vsctl_present
+ ignore_errors: yes
+
+- name: Destroy OVS bridge if it exists
+ command: ovs-vsctl --if-exists -- del-br "{{ network_item }}"
+ when:
+ - ovs_vsctl_present.rc == 0
+ - clean_up | bool or network_item in deploy_nets
+ ignore_errors: yes
+
+- name: Check if linux bridge is present
+ stat: path="{{ '/sys/class/net/' + network_item + '/brif/' }}"
+ register: check_linux_bridge
+
+- name: Remove linux bridge if it exists
+ shell: |
+ ifconfig "{{ network_item }}" down
+ brctl delbr "{{ network_item }}"
+ when:
+ - check_linux_bridge.stat.exists
+ - clean_up | bool or network_item in deploy_nets
diff --git a/ansible/roles/infra_destroy_previous_configuration/tasks/delete_vm.yml b/ansible/roles/infra_destroy_previous_configuration/tasks/delete_vm.yml
new file mode 100644
index 000000000..91e949344
--- /dev/null
+++ b/ansible/roles/infra_destroy_previous_configuration/tasks/delete_vm.yml
@@ -0,0 +1,29 @@
+# Copyright (c) 2017-2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+# Ignore errors as VM can be destroyed without been undefined.
+- name: Destroy old VMs
+ virt:
+ command: destroy
+ name: "{{ vmhost_item }}"
+ when: clean_up | bool or vmhost_item in deploy_vms
+ ignore_errors: yes
+
+# Ignore errors as VM can be running while undefined
+- name: Undefine old VMs
+ virt:
+ command: undefine
+ name: "{{ vmhost_item }}"
+ when: clean_up | bool or vmhost_item in deploy_vms
+ ignore_errors: yes
diff --git a/ansible/roles/infra_destroy_previous_configuration/tasks/main.yml b/ansible/roles/infra_destroy_previous_configuration/tasks/main.yml
new file mode 100644
index 000000000..6c4aa33cf
--- /dev/null
+++ b/ansible/roles/infra_destroy_previous_configuration/tasks/main.yml
@@ -0,0 +1,64 @@
+# Copyright (c) 2017-2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Include input file
+ include_vars:
+ file: "{{ rs_file }}"
+ name: infra_deploy_vars
+
+- name: List virt-nets
+ virt_net: command=list_nets
+ register: virt_nets
+
+- name: List VMs
+ virt: command=list_vms
+ register: virt_vms
+
+- set_fact:
+ deploy_vms: "{{ deploy_vms | default([]) + [item.hostname] }}"
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+- name: Define old disk images to delete
+ shell: virsh domblklist {{ item }} | awk '/\/.*/ { print $2 }'
+ when: clean_up | bool or item in deploy_vms
+ with_items: "{{ virt_vms.list_vms }}"
+ register: virt_img
+
+- set_fact:
+ images: "{{ images | default([]) + item.stdout_lines }}"
+ when: item.stdout_lines is defined and item.stdout_lines | length > 0
+ with_items: "{{ virt_img.results }}"
+
+- name: Destroy old VMs
+ include_tasks: delete_vm.yml
+ loop_control:
+ loop_var: vmhost_item
+ with_items: "{{ virt_vms.list_vms }}"
+
+- set_fact:
+ deploy_nets: "{{ deploy_nets | default([]) + [item.name] }}"
+ with_items: "{{ infra_deploy_vars.networks }}"
+
+- name: Delete old networks
+ include_tasks: delete_network.yml
+ loop_control:
+ loop_var: network_item
+ with_items: "{{ virt_nets.list_nets }}"
+
+- name: Delete old disk images
+ file:
+ path: "{{ item }}"
+ state: absent
+ when: images is defined and images | length > 0
+ with_items: "{{ images }}"
diff --git a/ansible/roles/infra_install_dependencies/tasks/Debian.yml b/ansible/roles/infra_install_dependencies/tasks/Debian.yml
new file mode 100644
index 000000000..9f4dc1046
--- /dev/null
+++ b/ansible/roles/infra_install_dependencies/tasks/Debian.yml
@@ -0,0 +1,34 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Update repositories
+ apt:
+ update_cache: yes
+
+- name: Install core packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items:
+ - python-libvirt
+ - genisoimage
+ when: ansible_distribution_major_version|int == 16
+
+- name: Install core packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items:
+ - python-pip
+ - python-libvirt
+ - python-lxml
+ - python-netaddr
+ - genisoimage
+ when: ansible_distribution_major_version|int >= 18
diff --git a/ansible/roles/infra_install_dependencies/tasks/main.yml b/ansible/roles/infra_install_dependencies/tasks/main.yml
new file mode 100644
index 000000000..115b1e3b9
--- /dev/null
+++ b/ansible/roles/infra_install_dependencies/tasks/main.yml
@@ -0,0 +1,15 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- include_tasks: "{{ ansible_os_family }}.yml"
diff --git a/ansible/roles/infra_prepare_vms/tasks/main.yml b/ansible/roles/infra_prepare_vms/tasks/main.yml
new file mode 100644
index 000000000..4e0d9c373
--- /dev/null
+++ b/ansible/roles/infra_prepare_vms/tasks/main.yml
@@ -0,0 +1,102 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Include input file
+ include_vars:
+ file: "{{ rs_file }}"
+ name: infra_deploy_vars
+
+- name: Install setuptools
+ apt:
+ name: python-setuptools
+
+- name: Install pip
+ shell: easy_install pip
+ environment: "{{ proxy_env }}"
+
+- name: Install dependency for dns dig
+ pip:
+ name: dnspython
+ state: latest
+
+- set_fact:
+ block_str: "{{ block_str | default('') + item.interfaces[0].ip + ' ' + item.hostname + '\n'}}"
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+- name: Delete hosts between markers
+ blockinfile:
+ path: /etc/hosts
+ marker: "# {mark} generated hosts file"
+ content: ""
+
+- name: Update /etc/hosts
+ blockinfile:
+ path: /etc/hosts
+ block: |
+ {{ block_str }}
+ marker: "# {mark} generated hosts file"
+
+- name: Clear known hosts
+ shell: >
+ ssh-keygen -f /root/.ssh/known_hosts -R "{{ item.interfaces[0].ip }}";
+ ssh-keygen -f /root/.ssh/known_hosts -R "{{ item.hostname }}"
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+- set_fact:
+ controllers: "{{ controllers | default([]) + [item.hostname] }}"
+ when:
+ - item.openstack_node is defined
+ - item.openstack_node == 'controller'
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+- name: Add host controller as deploy
+ add_host:
+ hostname: "{{ item.hostname }}"
+ host_ip: "{{ item.interfaces[0].ip }}"
+ groups: deploy, ostack
+ ansible_host: "{{ item.hostname }}"
+ ansible_user: "{{ item.user }}"
+ ansible_ssh_pass: "{{ item.password }}"
+ node_type: "{{ item.openstack_node }}"
+ secondary_ip: "{{ item.interfaces[1].ip }}"
+ when: item.hostname == controllers[0]
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+- name: Add hosts others as controller, compute
+ add_host:
+ hostname: "{{ item.hostname }}"
+ host_ip: "{{ item.interfaces[0].ip }}"
+ groups: regular,ostack
+ ansible_host: "{{ item.hostname }}"
+ ansible_user: "{{ item.user }}"
+ ansible_ssh_pass: "{{ item.password }}"
+ node_type: "{{ item.openstack_node }}"
+ secondary_ip: "{{ item.interfaces[1].ip }}"
+ when:
+ - item.openstack_node is defined
+ - item.openstack_node == 'controller' or item.openstack_node == 'compute'
+ - item.hostname != controllers[0]
+ with_items: "{{ infra_deploy_vars.nodes }}"
+
+- name: Add yardstick host to group
+ add_host:
+ hostname: "{{ item.hostname }}"
+ host_ip: "{{ item.interfaces[0].ip }}"
+ groups: yardstickG
+ ansible_host: "{{ item.hostname }}"
+ ansible_user: "{{ item.user }}"
+ ansible_ssh_pass: "{{ item.password }}"
+ secondary_ip: "{{ item.interfaces[1].ip }}"
+ when: item.hostname == 'yardstickvm'
+ with_items: "{{ infra_deploy_vars.nodes }}"
diff --git a/ansible/roles/infra_rampup_stack_nodes/tasks/configure_docker.yml b/ansible/roles/infra_rampup_stack_nodes/tasks/configure_docker.yml
new file mode 100644
index 000000000..a6ae00e51
--- /dev/null
+++ b/ansible/roles/infra_rampup_stack_nodes/tasks/configure_docker.yml
@@ -0,0 +1,48 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- file:
+ path: /lib/systemd/system/docker.service.d
+ state: directory
+
+- copy:
+ content: |
+ [Service]
+ MountFlags=shared
+ dest: /lib/systemd/system/docker.service.d/kolla.conf
+
+- set_fact:
+ ostack_hosts: "{{ ostack_hosts | default([]) + [hostvars[item].ansible_host] }}"
+ with_items: "{{ groups['ostack'] }}"
+
+- name: Create proxy configuration for docker
+ copy:
+ content: |
+ [Service]
+ Environment="HTTP_PROXY={{ lookup('env', 'http_proxy') }}"
+ Environment="HTTPS_PROXY={{ lookup('env', 'https_proxy') }}"
+ Environment="FTP_PROXY={{ lookup('env', 'ftp_proxy') }}"
+ Environment="NO_PROXY={{ lookup('env', 'no_proxy') }},{{ hostvars[ansible_host].ansible_default_ipv4.address }},{{ ostack_hosts | join(',') }}"
+ dest: /lib/systemd/system/docker.service.d/http-proxy.conf
+
+- name: Update /etc/default/docker
+ lineinfile:
+ path: /etc/default/docker
+ line: 'DOCKER_OPTS="--dns {{ hostvars[ansible_host].ansible_default_ipv4.gateway }} --insecure-registry {{ deploy_host }}:4000"'
+
+- name: reload restart docker
+ systemd:
+ state: restarted
+ daemon_reload: yes
+ name: docker
diff --git a/ansible/roles/infra_rampup_stack_nodes/tasks/install_packets.yml b/ansible/roles/infra_rampup_stack_nodes/tasks/install_packets.yml
new file mode 100644
index 000000000..d22e8155a
--- /dev/null
+++ b/ansible/roles/infra_rampup_stack_nodes/tasks/install_packets.yml
@@ -0,0 +1,85 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Update apt cache
+ apt:
+ update_cache: yes
+ upgrade: yes
+ cache_valid_time: 36000
+ environment: "{{ proxy_env }}"
+
+- name: Install packets
+ apt:
+ name: "{{ item }}"
+ with_items:
+ - python-tox
+ - python-dev
+ - libffi-dev
+ - libssl-dev
+ - python3-dev
+ - ethtool
+ - ipmitool
+ - git
+ - ntp
+ - apparmor-utils
+ - docker.io
+ - libvirt-bin
+ - python-setuptools
+ - build-essential
+ environment: "{{ proxy_env }}"
+
+- name: Install pip
+ shell: easy_install pip
+ environment: "{{ proxy_env }}"
+
+- name: Update pip ansible docker
+ pip:
+ name: "{{ item }}"
+ state: latest
+ with_items:
+ - ansible
+ - docker
+ - tox
+ - shade
+ environment: "{{ proxy_env }}"
+
+- name: Remove conflicting packages
+ apt:
+ name: "{{ item }}"
+ state: absent
+ with_items:
+ - lxd
+ - lxc
+
+- name: Stop and disable libvirt
+ systemd:
+ state: stopped
+ enabled: no
+ name: libvirt-bin.service
+
+- name: Stop and disable apparmor service
+ systemd:
+ name: apparmor
+ state: stopped
+ enabled: no
+
+- name: Get stat of libvirtd apparmor profile
+ stat:
+ path: /etc/apparmor.d/disable/usr.sbin.libvirtd
+ register: apparmor_libvirtd_profile
+
+- name: Remove apparmor profile for libvirt
+ shell: ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/ && apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
+ when:
+ - apparmor_libvirtd_profile.stat.exists == False
diff --git a/ansible/roles/infra_rampup_stack_nodes/tasks/main.yml b/ansible/roles/infra_rampup_stack_nodes/tasks/main.yml
new file mode 100644
index 000000000..65d5e59d8
--- /dev/null
+++ b/ansible/roles/infra_rampup_stack_nodes/tasks/main.yml
@@ -0,0 +1,39 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+# Configure proxy and install python to support ansible
+- name: Create apt.conf proxy config
+ raw: >
+ echo 'Acquire::http::proxy "{{ hostvars[groups['jumphost'][0]].proxy_proto + '://' + hostvars[groups['jumphost'][0]].proxy_host_ip + ':' + hostvars[groups['jumphost'][0]].proxy_port }}";'
+ > /etc/apt/apt.conf.d/22proxy
+
+- name: Install python which is required to run ansible mudules
+ raw: apt-get update && apt-get install -y python
+
+- name: Gather facts
+ setup:
+
+- name: Update configuration files
+ include_tasks: update_conf_files.yml
+
+- name: Install packets
+ include_tasks: install_packets.yml
+ when: ansible_hostname in groups['ostack']
+
+- name: Configure docker settings
+ include_tasks: configure_docker.yml
+ when: ansible_hostname in groups['ostack']
+
+- name: generate and apply SSH keys
+ include_tasks: update_keys.yml
diff --git a/ansible/roles/infra_rampup_stack_nodes/tasks/update_conf_files.yml b/ansible/roles/infra_rampup_stack_nodes/tasks/update_conf_files.yml
new file mode 100644
index 000000000..424fb543b
--- /dev/null
+++ b/ansible/roles/infra_rampup_stack_nodes/tasks/update_conf_files.yml
@@ -0,0 +1,69 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Set hostname
+ shell: hostname {{ ansible_hostname }}
+
+- name: Delete hosts between markers
+ blockinfile:
+ path: /etc/hosts
+ marker: "# {mark} generated hosts file"
+ content: ""
+
+- set_fact:
+ block_str: "{{ block_str | default('') + hostvars[item].host_ip + ' ' + hostvars[item].ansible_host + '\n'}}"
+ with_items: "{{ groups['ostack'] }}"
+
+- name: Update /etc/hosts
+ blockinfile:
+ path: /etc/hosts
+ block: |
+ {{ block_str }}
+ marker: "# {mark} generated hosts file"
+
+- name: Update /etc/hosts
+ lineinfile:
+ path: /etc/hosts
+ regexp: ".*{{ hostvars[groups['jumphost'][0]].proxy_host }}.*"
+ line: "{{ hostvars[groups['jumphost'][0]].proxy_host_ip }} {{ hostvars[groups['jumphost'][0]].proxy_host }}"
+
+- name: Turn off IPv6
+ lineinfile:
+ path: /etc/sysctl.conf
+ regexp: '^{{ item }}.*'
+ line: "{{ item }} = 1"
+ with_items:
+ - 'net.ipv6.conf.all.disable_ipv6'
+ - 'net.ipv6.conf.default.disable_ipv6'
+ - 'net.ipv6.conf.lo.disable_ipv6'
+
+- name: Update IP configuration
+ shell: sysctl -p
+
+- name: Update resolv.conf
+ shell: echo "{{ 'nameserver ' + hostvars[ansible_host].ansible_default_ipv4.gateway }}" > /etc/resolvconf/resolv.conf.d/base
+
+- name: Update name servers
+ shell: resolvconf -u
+
+- name: Update /etc/environment
+ lineinfile:
+ path: /etc/environment
+ regexp: "{{ item.find }}"
+ line: "{{ item.add }}"
+ with_items:
+ - { find: 'http_proxy=', add: "{{ 'export http_proxy=' + lookup('env', 'http_proxy') }}" }
+ - { find: 'https_proxy=', add: "{{ 'export https_proxy=' + lookup('env', 'https_proxy') }}" }
+ - { find: 'ftp_proxy=', add: "{{ 'export ftp_proxy=' + lookup('env', 'ftp_proxy') }}" }
+ - { find: 'no_proxy=', add: "{{ 'export no_proxy=' + lookup('env', 'no_proxy') + ',' + ansible_host + ',' + hostvars[ansible_host].ansible_default_ipv4.address }}" }
diff --git a/ansible/roles/infra_rampup_stack_nodes/tasks/update_keys.yml b/ansible/roles/infra_rampup_stack_nodes/tasks/update_keys.yml
new file mode 100644
index 000000000..816f7cbca
--- /dev/null
+++ b/ansible/roles/infra_rampup_stack_nodes/tasks/update_keys.yml
@@ -0,0 +1,48 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Generate keys
+ user:
+ name: "{{ hostvars[ansible_host].ansible_user }}"
+ generate_ssh_key: yes
+ state: present
+ ssh_key_file: "/root/.ssh/id_rsa"
+
+- name: Get remote files
+ fetch:
+ src: "/root/.ssh/id_rsa.pub"
+ dest: "/tmp"
+
+- name: Update authorized_key
+ authorized_key:
+ key: "{{ lookup('file', '/tmp/{{ hostvars[item].ansible_host }}/root/.ssh/id_rsa.pub') }}"
+ state: present
+ user: "{{ hostvars[item].ansible_user }}"
+ with_items:
+ - "{{ groups['ostack'] }}"
+ - "{{ groups['yardstickG'] }}"
+
+- name: Make sure the known hosts file exists
+ file:
+ path: "{{ ssh_known_hosts_file }}"
+ state: touch
+
+- name: Add key to known hosts
+ known_hosts:
+ name: "{{ hostvars[item].ansible_host }}"
+ key: "{{ lookup('pipe', 'ssh-keyscan -t rsa {{ hostvars[item].ansible_host }}') }}"
+ path: "{{ ssh_known_hosts_file }}"
+ with_items:
+ - "{{ groups['ostack'] }}"
+ - "{{ groups['yardstickG'] }}"
diff --git a/ansible/roles/infra_rampup_stack_nodes/vars/main.yml b/ansible/roles/infra_rampup_stack_nodes/vars/main.yml
new file mode 100644
index 000000000..252eb86b3
--- /dev/null
+++ b/ansible/roles/infra_rampup_stack_nodes/vars/main.yml
@@ -0,0 +1,16 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+ssh_known_hosts_file: "/root/.ssh/known_hosts"
+deploy_host: "{{ hostvars[groups['deploy'][0]].ansible_host }}"
diff --git a/ansible/roles/init_kubeadm/defaults/main.yml b/ansible/roles/init_kubeadm/defaults/main.yml
new file mode 100644
index 000000000..3d868398d
--- /dev/null
+++ b/ansible/roles/init_kubeadm/defaults/main.yml
@@ -0,0 +1,27 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+cmk_rbc_rules_url: https://raw.githubusercontent.com/intel/CPU-Manager-for-Kubernetes/master/resources/authorization/cmk-rbac-rules.yaml
+cmk_serviceaccount: https://raw.githubusercontent.com/intel/CPU-Manager-for-Kubernetes/master/resources/authorization/cmk-serviceaccount.yaml
+dpdk_devbind_path: "{{ INSTALL_BIN_PATH|default('/opt') }}"
+multus_config:
+ name: node-cni-network
+ type: multus
+ kubeconfig: /etc/kubernetes/kubelet.conf
+ delegates:
+ - type: flannel
+ delegate:
+ isDefaultGateway: true
+ hairpinMode: true
+ masterplugin: true
diff --git a/ansible/roles/init_kubeadm/tasks/kubeadm.yml b/ansible/roles/init_kubeadm/tasks/kubeadm.yml
new file mode 100644
index 000000000..7c808a01c
--- /dev/null
+++ b/ansible/roles/init_kubeadm/tasks/kubeadm.yml
@@ -0,0 +1,50 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- set_fact:
+ service_cidr_param: --service-cidr={{ kubeadm_service_cidr }}
+ when: 'kubeadm_service_cidr is defined'
+
+- set_fact:
+ pod_network_cidr_param: --pod-network-cidr={{ kubeadm_pod_network_cidr }}
+ when: 'kubeadm_pod_network_cidr is defined'
+
+- set_fact:
+ kubernetes_version: --kubernetes-version {{ kubeadm_kubernetes_version }}
+ when: 'kubeadm_kubernetes_version is defined'
+
+- name: Initialize Kubernetes cluster
+ command: >
+ kubeadm init {{ pod_network_cidr_param|default('') }}
+ {{ service_cidr_param|default('') }} {{ kubernetes_version|default('') }}
+ --ignore-preflight-errors=all
+
+- name: Create Kubernetes configuration dir
+ file: path={{ ansible_env.HOME }}/.kube state=directory
+
+- name: Setup Kubernetes environment
+ copy:
+ src: /etc/kubernetes/admin.conf
+ dest: "{{ ansible_env.HOME }}/.kube/config"
+ remote_src: yes
+
+- name: Allow to schedule pods on the master
+ command: kubectl taint nodes --all node-role.kubernetes.io/master-
+
+- name: Wait for kube-dns pod to be in running state
+ command: kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o json
+ register: result
+ until: result.stdout|from_json|json_query('items[].status.phase|[0]') == "Running"
+ retries: 30
+ delay: 2
diff --git a/ansible/roles/init_kubeadm/tasks/kubectl.yml b/ansible/roles/init_kubeadm/tasks/kubectl.yml
new file mode 100644
index 000000000..dd8ad2f65
--- /dev/null
+++ b/ansible/roles/init_kubeadm/tasks/kubectl.yml
@@ -0,0 +1,26 @@
+# Copyright (c) 2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Generate temporary resource file
+ tempfile: state=file prefix=kubectl.{{ item }}.
+ register: config_file
+
+- name: Generate {{ item }} resource file
+ template: src={{ item }}.j2 dest={{ config_file.path }}
+
+- name: Create {{ item }} resource
+ command: kubectl create -f {{ config_file.path }}
+
+- name: Create Kubernetes configuration dir
+ file: path={{ config_file.path }} state=absent
diff --git a/ansible/roles/init_kubeadm/tasks/main.yml b/ansible/roles/init_kubeadm/tasks/main.yml
new file mode 100644
index 000000000..df7334ce1
--- /dev/null
+++ b/ansible/roles/init_kubeadm/tasks/main.yml
@@ -0,0 +1,70 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Disable swap
+ command: swapoff -a
+ ignore_errors: true
+
+- name: Reset Kubernetes cluster
+ command: kubeadm reset
+
+- name: Clean Kubernetes directories (w/o removing the folder itself)
+ shell: rm -fr {{ item }}/*
+ with_items:
+ - /etc/kubernetes
+ - /var/lib/cni
+ - /etc/cmk
+
+- name: Create Multus CNI plugin dir
+ file: path=/etc/cni/net.d state=directory
+
+- name: Configure Multus CNI plugin
+ template: src=10-multus-cni.conf.j2 dest=/etc/cni/net.d/10-multus-cni.conf owner=root mode=0644
+
+- name: Change default kubelet cluster dns IP
+ lineinfile:
+ path: /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
+ regexp: '^(.*)--cluster-dns=([0-9\.]*)( +.*)$'
+ line: '\1--cluster-dns={{ kubelet_cluster_dns_ip }}\3'
+ backrefs: yes
+ backup: yes
+
+- name: Systemd daemon reload
+ command: systemctl daemon-reload
+
+- name: Restart kubelet
+ service: name=kubelet state=restarted
+
+- name: Initialize kubeadm
+ include: kubeadm.yml
+
+- name: Create CMK Kubernetes resources
+ command: kubectl create -f {{ item }}
+ with_items:
+ - "{{ cmk_rbc_rules_url }}"
+ - "{{ cmk_serviceaccount }}"
+
+- name: Create Kubernetes resources
+ include: kubectl.yml
+ with_items:
+ - crd-network.yaml
+ - net-flannel.yaml
+ - roles.yaml
+ - kube-flannel.yaml
+ - cmk-init-pod.yaml
+
+- name: Create a ClusterRoleBinding for a particular ClusterRole
+ command: >
+ kubectl create clusterrolebinding multus-node-{{ ansible_hostname }}
+ --clusterrole=multus-crd-overpowered --user=system:node:{{ ansible_hostname }}
diff --git a/ansible/roles/init_kubeadm/templates/10-multus-cni.conf.j2 b/ansible/roles/init_kubeadm/templates/10-multus-cni.conf.j2
new file mode 100644
index 000000000..a68afaf26
--- /dev/null
+++ b/ansible/roles/init_kubeadm/templates/10-multus-cni.conf.j2
@@ -0,0 +1 @@
+{{ multus_config | to_nice_json }}
diff --git a/ansible/roles/init_kubeadm/templates/cmk-init-pod.yaml.j2 b/ansible/roles/init_kubeadm/templates/cmk-init-pod.yaml.j2
new file mode 100644
index 000000000..44c22581f
--- /dev/null
+++ b/ansible/roles/init_kubeadm/templates/cmk-init-pod.yaml.j2
@@ -0,0 +1,32 @@
+# Copyright (c) 2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+apiVersion: v1
+kind: Pod
+metadata:
+ labels:
+ app: cmk-cluster-init-pod
+ name: cmk-cluster-init-pod
+spec:
+ serviceAccountName: cmk-serviceaccount
+ containers:
+ - args:
+ # Change this value to pass different options to cluster-init.
+ - "/cmk/cmk.py cluster-init --host-list={{ ansible_hostname }} --saname=cmk-serviceaccount --cmk-img=si-docker.ir.intel.com/vcmts-ubuntu/cmk --num-dp-cores=4 --dp-mode=spread --num-cp-cores=1 --cp-mode=spread"
+ command:
+ - "/bin/bash"
+ - "-c"
+ image: si-docker.ir.intel.com/vcmts-ubuntu/cmk
+ name: cmk-cluster-init-pod
+ restartPolicy: Never
diff --git a/ansible/roles/init_kubeadm/templates/crd-network.yaml.j2 b/ansible/roles/init_kubeadm/templates/crd-network.yaml.j2
new file mode 100644
index 000000000..0e451c51a
--- /dev/null
+++ b/ansible/roles/init_kubeadm/templates/crd-network.yaml.j2
@@ -0,0 +1,26 @@
+# Copyright (c) 2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+apiVersion: "apiextensions.k8s.io/v1beta1"
+kind: CustomResourceDefinition
+metadata:
+ name: networks.kubernetes.com
+spec:
+ group: kubernetes.com
+ version: v1
+ scope: Namespaced
+ names:
+ plural: networks
+ singular: network
+ kind: Network
diff --git a/ansible/roles/init_kubeadm/templates/kube-flannel.yaml.j2 b/ansible/roles/init_kubeadm/templates/kube-flannel.yaml.j2
new file mode 100644
index 000000000..ddb849616
--- /dev/null
+++ b/ansible/roles/init_kubeadm/templates/kube-flannel.yaml.j2
@@ -0,0 +1,158 @@
+# Copyright (c) 2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+kind: ClusterRole
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+ name: flannel
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - pods
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/status
+ verbs:
+ - patch
+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+ name: flannel
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: flannel
+subjects:
+- kind: ServiceAccount
+ name: flannel
+ namespace: kube-system
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: flannel
+ namespace: kube-system
+---
+kind: ConfigMap
+apiVersion: v1
+metadata:
+ name: kube-flannel-cfg
+ namespace: kube-system
+ labels:
+ tier: node
+ app: flannel
+data:
+ cni-conf.json: |
+ {
+ "name": "cbr0",
+ "plugins": [
+ {
+ "type": "flannel",
+ "delegate": {
+ "hairpinMode": true,
+ "isDefaultGateway": true
+ }
+ },
+ {
+ "type": "portmap",
+ "capabilities": {
+ "portMappings": true
+ }
+ }
+ ]
+ }
+ net-conf.json: |
+ {
+ "Network": "{{ kubeadm_pod_network_cidr }}",
+ "Backend": {
+ "Type": "vxlan"
+ }
+ }
+---
+apiVersion: extensions/v1beta1
+kind: DaemonSet
+metadata:
+ name: kube-flannel-ds
+ namespace: kube-system
+ labels:
+ tier: node
+ app: flannel
+spec:
+ template:
+ metadata:
+ labels:
+ tier: node
+ app: flannel
+ spec:
+ hostNetwork: true
+ nodeSelector:
+ beta.kubernetes.io/arch: amd64
+ tolerations:
+ - key: node-role.kubernetes.io/master
+ operator: Exists
+ effect: NoSchedule
+ serviceAccountName: flannel
+ containers:
+ - name: kube-flannel
+ image: quay.io/coreos/flannel:v0.10.0-amd64
+ command:
+ - /opt/bin/flanneld
+ args:
+ - --ip-masq
+ - --kube-subnet-mgr
+ resources:
+ requests:
+ cpu: "100m"
+ memory: "50Mi"
+ limits:
+ cpu: "100m"
+ memory: "50Mi"
+ securityContext:
+ privileged: true
+ env:
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: POD_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ volumeMounts:
+ - name: run
+ mountPath: /run
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ volumes:
+ - name: run
+ hostPath:
+ path: /run
+ - name: cni
+ hostPath:
+ path: /etc/cni/net.d
+ - name: flannel-cfg
+ configMap:
+ name: kube-flannel-cfg
diff --git a/ansible/roles/init_kubeadm/templates/net-flannel.yaml.j2 b/ansible/roles/init_kubeadm/templates/net-flannel.yaml.j2
new file mode 100644
index 000000000..db25c6a89
--- /dev/null
+++ b/ansible/roles/init_kubeadm/templates/net-flannel.yaml.j2
@@ -0,0 +1,24 @@
+# Copyright (c) 2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+apiVersion: "kubernetes.com/v1"
+kind: Network
+metadata:
+ name: flannel
+plugin: flannel
+args: '[{
+ "delegate": {
+ "isDefaultGateway": true
+ }
+ }]'
diff --git a/ansible/roles/init_kubeadm/templates/roles.yaml.j2 b/ansible/roles/init_kubeadm/templates/roles.yaml.j2
new file mode 100644
index 000000000..b3509b048
--- /dev/null
+++ b/ansible/roles/init_kubeadm/templates/roles.yaml.j2
@@ -0,0 +1,29 @@
+# Copyright (c) 2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: multus-crd-overpowered
+rules:
+- apiGroups:
+ - '*'
+ resources:
+ - '*'
+ verbs:
+ - '*'
+- nonResourceURLs:
+ - '*'
+ verbs:
+ - '*'
diff --git a/ansible/roles/install_civetweb/defaults/main.yml b/ansible/roles/install_civetweb/defaults/main.yml
index 2235fe172..c97403688 100644
--- a/ansible/roles/install_civetweb/defaults/main.yml
+++ b/ansible/roles/install_civetweb/defaults/main.yml
@@ -15,7 +15,9 @@
civetweb_dest: "{{ clone_dest }}/civetweb"
civetweb_build_dependencies:
Debian:
- - libjson0
- - libjson0-dev
+# - libjson-c-dev=0.11-4ubuntu2
+# - libjson0
+# - libjson0-dev
- libssl-dev
+ - libjson-c-dev
RedHat:
diff --git a/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml b/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml
new file mode 100755
index 000000000..a229cc1a2
--- /dev/null
+++ b/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml
@@ -0,0 +1,106 @@
+# Copyright (c) 2017 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Update repositories
+ apt:
+ update_cache: yes
+
+- name: Install dependency for Ubuntu 18
+ action: "{{ ansible_pkg_mgr }} name=libssl1.0-dev state=present"
+ when:
+ - ansible_distribution == 'Ubuntu'
+ - ansible_distribution_major_version|int >= 17
+
+- name: Install core packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items:
+ - wget
+ - curl
+ - screen
+ - procps
+ - socat
+ - sshpass
+ - sudo
+ - vim
+ - libffi-dev
+ - libfuse-dev
+ - libxft-dev
+ - libxml2-dev
+ - libxss-dev
+ - libxslt1-dev
+ - libzmq3-dev
+ - qemu-user-static
+ - qemu-utils
+ - kpartx
+ - python
+ - python-setuptools
+ - python-dev
+ - python-libvirt
+ - python-virtualenv
+ - bridge-utils
+ - ebtables
+ - openssl
+ - ccze
+ - nginx-full
+ - uwsgi
+ - uwsgi-plugin-python
+ - supervisor
+ - lsof
+ - npm
+ - rabbitmq-server
+
+- name: Install libc6:arm64 package
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items:
+ - libc6:arm64
+ when:
+ - arch is defined
+ - arch != arch_arm64
+ - installation_mode == inst_mode_container
+
+- name: Remove dependencies that are no longer required
+ apt:
+ update_cache: yes
+
+- name: Remove useless packages from the cache
+ apt:
+ autoclean: yes
+
+# There is a bug with the easy install ansible module in Ubuntu 16.04 linux.
+# Refer https://github.com/ansible/ansible/issues/23534
+- name: Install pip
+ shell: easy_install -U pip
+ when:
+ - ansible_distribution == 'Ubuntu'
+ - ansible_distribution_major_version|int <= 16
+
+- name: Install python-pip
+ action: "{{ ansible_pkg_mgr }} name=python-pip state=present"
+ when:
+ - ansible_distribution == 'Ubuntu'
+ - ansible_distribution_major_version|int >= 17
+
+- name: Uninstall docker as it conflicts with docker-py
+ pip:
+ name:
+ - docker
+ state: absent
+
+- name: Install required docker-py module
+ pip:
+ name:
+ - docker-py
+ - shade
+ state: latest
+ environment: "{{ proxy_env }}"
diff --git a/ansible/roles/install_dependencies/tasks/RedHat.yml b/ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml
index a5d4d0b15..cb5315adb 100644
--- a/ansible/roles/install_dependencies/tasks/RedHat.yml
+++ b/ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml
@@ -42,5 +42,14 @@
- python-setuptools
- libffi-devel
- python-devel
- - kpartx
-
+ - nodejs
+ - npm
+ - gcc
+ - lsof
+ - procps
+ - bridge-utils
+ - ebtables
+ - openssl
+ - python-virtualenv
+ - ccze
+ - python-pip
diff --git a/ansible/roles/install_dependencies/tasks/Debian.yml b/ansible/roles/install_dependencies_jumphost/tasks/Suse.yml
index bba6fb13c..7932ed96d 100755..100644
--- a/ansible/roles/install_dependencies/tasks/Debian.yml
+++ b/ansible/roles/install_dependencies_jumphost/tasks/Suse.yml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation.
+# Copyright (c) 2018 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,39 +12,44 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
+- name: Install EPEL if needed
+ action: "{{ ansible_pkg_mgr }} name=epel-release state=present"
+ when: ansible_distribution in ['RedHat', 'CentOS', 'ScientificLinux']
+
- name: Install core packages
action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
with_items:
- - python-minimal
+ - deltarpm
- wget
+ - expect
- curl
- screen
- - procps
- git
- socat
- sshpass
- - libxslt1-dev
- - libffi-dev
- - libfuse-dev
- qemu-kvm
- - qemu-user-static
- - qemu-utils
- kpartx
- - libvirt0
- - python-libvirt
+ - libxslt-devel
+ - libffi-devel
+ - openssl-devel
+ - nginx
+ - uwsgi
+ - python-setuptools
+ - libffi-devel
+ - python-devel
+ - nodejs
+ - npm
+ - gcc
+ - lsof
+ - procps
- bridge-utils
- ebtables
- openssl
- - libssl-dev
- - python-dev
- python-virtualenv
- ccze
- - libxml2-dev
- - libxslt-dev
- - libzmq-dev
- - nginx-full
- - uwsgi
- - uwsgi-plugin-python
- - supervisor
- - python-setuptools
- - lsof
+
+# There is a bug with the easy install ansible module in suse linux.
+# Until this is fixed the shell command must be used
+# Refer https://github.com/ansible/ansible/issues/37296
+- name: Install pip
+ shell: easy_install -U pip
diff --git a/ansible/roles/install_dependencies/tasks/main.yml b/ansible/roles/install_dependencies_jumphost/tasks/main.yml
index 27660c3ca..27660c3ca 100644
--- a/ansible/roles/install_dependencies/tasks/main.yml
+++ b/ansible/roles/install_dependencies_jumphost/tasks/main.yml
diff --git a/ansible/roles/install_dependencies_kubernetes/tasks/main.yml b/ansible/roles/install_dependencies_kubernetes/tasks/main.yml
new file mode 100644
index 000000000..90098a48e
--- /dev/null
+++ b/ansible/roles/install_dependencies_kubernetes/tasks/main.yml
@@ -0,0 +1,19 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Install https download transport for APT
+ apt:
+ name: apt-transport-https
+ state: latest
+ update_cache: yes
diff --git a/ansible/roles/install_dpdk/tasks/Debian.yml b/ansible/roles/install_dpdk/tasks/Debian.yml
index 4f0c3c881..b76a0fbf8 100755
--- a/ansible/roles/install_dpdk/tasks/Debian.yml
+++ b/ansible/roles/install_dpdk/tasks/Debian.yml
@@ -17,6 +17,7 @@
with_items:
- libpcap-dev
- pciutils
+ - libelf-dev
- name: Install kernel headers
action: "{{ ansible_pkg_mgr }} name=linux-headers-{{ dpdk_kernel }} state=present"
diff --git a/ansible/roles/install_dpdk/tasks/main.yml b/ansible/roles/install_dpdk/tasks/main.yml
index 01ad4baf1..a1a377eb1 100644
--- a/ansible/roles/install_dpdk/tasks/main.yml
+++ b/ansible/roles/install_dpdk/tasks/main.yml
@@ -20,6 +20,10 @@
# with_fileglob:
# - "{{ local_nsb_path }}/patches/dpdk_custom_patch/0*.patch"
+- debug:
+ var: dpdk_version
+ verbosity: 2
+
- name: find kernel for image, (including chroot)
find_kernel:
kernel: "{{ ansible_kernel }}"
@@ -106,6 +110,7 @@
src: "{{ dpdk_path }}/{{ dpdk_make_arch }}/kmod/igb_uio.ko"
dest: "{{ dpdk_module_dir }}/igb_uio.ko"
remote_src: yes
+ when: dpdk_version is version(dpdk_version_for_PROX, '>=')
- name: run depmod for dpdk_kernel
command: depmod "{{ dpdk_kernel }}"
@@ -116,16 +121,26 @@
- name: copy dpdk-devbind.py to correct location
copy:
- src: "{{ dpdk_devbind[dpdk_version] }}"
+ src: "{{ dpdk_devbind_usertools if dpdk_version is version('17.02', '>=') else dpdk_devbind_tools }}"
dest: "{{ INSTALL_BIN_PATH }}/dpdk-devbind.py"
remote_src: yes
force: yes
mode: 0755
+ when: dpdk_version is version(dpdk_version_for_PROX, '>=')
+
+- name: make vPE binary
+ command: make -j {{ ansible_processor_vcpus }}
+ args:
+ chdir: "{{ dpdk_path }}/examples/ip_pipeline"
+ environment:
+ RTE_SDK: "{{ dpdk_path }}"
+ when: dpdk_version is version(dpdk_version_for_PROX, '!=')
-- name: make dpdk_nic_bind.py for backwards compatibility
+- name: Copy vPE to correct location
copy:
- src: "{{ dpdk_devbind[dpdk_version] }}"
- dest: "{{ INSTALL_BIN_PATH }}/dpdk_nic_bind.py"
+ src: "{{ dpdk_path }}/examples/ip_pipeline/build/app/ip_pipeline"
+ dest: "{{ INSTALL_BIN_PATH }}/vPE_vnf"
remote_src: yes
force: yes
mode: 0755
+ when: dpdk_version is version(dpdk_version_for_PROX, '!=')
diff --git a/ansible/roles/install_dpdk/vars/main.yml b/ansible/roles/install_dpdk/vars/main.yml
index 45bcc339b..957f47e99 100644
--- a/ansible/roles/install_dpdk/vars/main.yml
+++ b/ansible/roles/install_dpdk/vars/main.yml
@@ -1,9 +1,10 @@
---
-dpdk_make_arch: x86_64-native-linuxapp-gcc
+dpdk_make_archs:
+ "amd64": "x86_64-native-linuxapp-gcc"
+ "arm64": "arm64-native-linuxapp-gcc"
+dpdk_make_arch: "{{ dpdk_make_archs[YARD_IMG_ARCH] }}"
dpdk_module_dir: "/lib/modules/{{ dpdk_kernel }}/extra"
hugetable_mount: /mnt/huge
-dpdk_devbind:
- "16.07": "{{ dpdk_path }}/tools/dpdk-devbind.py"
- "17.02": "{{ dpdk_path }}/usertools/dpdk-devbind.py"
- "17.04": "{{ dpdk_path }}/usertools/dpdk-devbind.py"
+dpdk_devbind_tools: "{{ dpdk_path }}/tools/dpdk-devbind.py"
+dpdk_devbind_usertools: "{{ dpdk_path }}/usertools/dpdk-devbind.py"
dpdk_pmd_path: /usr/lib/dpdk-pmd/
diff --git a/ansible/roles/install_dpdk_shared/tasks/Debian.yml b/ansible/roles/install_dpdk_shared/tasks/Debian.yml
index c77e4f96a..641d8f9cd 100755
--- a/ansible/roles/install_dpdk_shared/tasks/Debian.yml
+++ b/ansible/roles/install_dpdk_shared/tasks/Debian.yml
@@ -16,6 +16,7 @@
action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
with_items:
- libpcap-dev
+ - libnuma-dev
- name: Install kernel headers
action: "{{ ansible_pkg_mgr }} name=linux-headers-{{ dpdk_kernel }} state=present"
diff --git a/ansible/roles/install_dpdk_shared/tasks/main.yml b/ansible/roles/install_dpdk_shared/tasks/main.yml
index 65954be04..94b9215bd 100644
--- a/ansible/roles/install_dpdk_shared/tasks/main.yml
+++ b/ansible/roles/install_dpdk_shared/tasks/main.yml
@@ -42,6 +42,15 @@
set_fact:
RTE_KERNELDIR: "/lib/modules/{{ dpdk_kernel }}/build"
+# make clean must be run here as DPDK-shared is a copy of the DPDK directory
+# which has already run the make command
+# no T= target for clean
+- command: make -j {{ ansible_processor_vcpus }} clean O={{ dpdk_make_arch }}
+ args:
+ chdir: "{{ dpdk_shared_path }}"
+ environment:
+ RTE_KERNELDIR: "{{ RTE_KERNELDIR }}"
+
- command: make -j {{ ansible_processor_vcpus }} config T={{ dpdk_make_arch }} O={{ dpdk_make_arch }}
args:
chdir: "{{ dpdk_shared_path }}"
@@ -85,13 +94,6 @@
regexp: '^CONFIG_RTE_EAL_PMD_PATH=""'
line: 'CONFIG_RTE_EAL_PMD_PATH="{{ dpdk_pmd_path }}"'
- # no T= target for clean
-- command: make -j {{ ansible_processor_vcpus }} clean O={{ dpdk_make_arch }}
- args:
- chdir: "{{ dpdk_shared_path }}"
- environment:
- RTE_KERNELDIR: "{{ RTE_KERNELDIR }}"
-
# TODO: disable ASLR
- command: make -j {{ ansible_processor_vcpus }}
diff --git a/ansible/roles/install_dpdk_shared/vars/main.yml b/ansible/roles/install_dpdk_shared/vars/main.yml
index 45bcc339b..b663cedd2 100644
--- a/ansible/roles/install_dpdk_shared/vars/main.yml
+++ b/ansible/roles/install_dpdk_shared/vars/main.yml
@@ -1,9 +1,8 @@
---
-dpdk_make_arch: x86_64-native-linuxapp-gcc
+dpdk_make_archs:
+ "amd64": "x86_64-native-linuxapp-gcc"
+ "arm64": "arm64-native-linuxapp-gcc"
+dpdk_make_arch: "{{ dpdk_make_archs[YARD_IMG_ARCH] }}"
dpdk_module_dir: "/lib/modules/{{ dpdk_kernel }}/extra"
hugetable_mount: /mnt/huge
-dpdk_devbind:
- "16.07": "{{ dpdk_path }}/tools/dpdk-devbind.py"
- "17.02": "{{ dpdk_path }}/usertools/dpdk-devbind.py"
- "17.04": "{{ dpdk_path }}/usertools/dpdk-devbind.py"
dpdk_pmd_path: /usr/lib/dpdk-pmd/
diff --git a/ansible/roles/install_drivers/tasks/Debian.yml b/ansible/roles/install_drivers/tasks/Debian.yml
new file mode 100755
index 000000000..27f6b74cc
--- /dev/null
+++ b/ansible/roles/install_drivers/tasks/Debian.yml
@@ -0,0 +1,16 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Install kernel headers
+ action: "{{ ansible_pkg_mgr }} name=linux-headers-{{ chroot_kernel }} state=present"
diff --git a/ansible/roles/install_drivers/tasks/RedHat.yml b/ansible/roles/install_drivers/tasks/RedHat.yml
new file mode 100644
index 000000000..d2e2a3768
--- /dev/null
+++ b/ansible/roles/install_drivers/tasks/RedHat.yml
@@ -0,0 +1,16 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Install kernel headers
+ action: "{{ ansible_pkg_mgr }} name=kernel-headers-{{ chroot_kernel }} state=present"
diff --git a/ansible/roles/install_drivers/tasks/i40evf.yml b/ansible/roles/install_drivers/tasks/i40evf.yml
new file mode 100644
index 000000000..1cd95ceb0
--- /dev/null
+++ b/ansible/roles/install_drivers/tasks/i40evf.yml
@@ -0,0 +1,31 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Make i40evf
+ make:
+ chdir: "{{ i40evf_path }}/src"
+ params:
+ BUILD_KERNEL: "{{ chroot_kernel }}"
+
+- name: Make i40evf install
+ make:
+ chdir: "{{ i40evf_path }}/src"
+ target: install
+ params:
+ BUILD_KERNEL: "{{ chroot_kernel }}"
+
+- name: Configure i40evf to load on boot
+ copy:
+ content: i40evf
+ dest: /etc/modules-load.d/i40evf.conf
diff --git a/ansible/roles/install_drivers/tasks/main.yml b/ansible/roles/install_drivers/tasks/main.yml
new file mode 100644
index 000000000..72a432e54
--- /dev/null
+++ b/ansible/roles/install_drivers/tasks/main.yml
@@ -0,0 +1,28 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Find kernel for image, (including chroot)
+ find_kernel:
+ kernel: "{{ ansible_kernel }}"
+ register: found_kernel
+
+# Do this before installing kernel headers
+- name: Set chroot_kernel to be the kernel we found
+ set_fact:
+ chroot_kernel: "{{ found_kernel.kernel }}"
+
+- include: "{{ ansible_os_family }}.yml"
+
+# Install drivers
+- include: i40evf.yml
diff --git a/ansible/roles/install_go/defaults/main.yml b/ansible/roles/install_go/defaults/main.yml
new file mode 100644
index 000000000..dee4f82d2
--- /dev/null
+++ b/ansible/roles/install_go/defaults/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+golang_repo_key_server: keyserver.ubuntu.com
+golang_repo_key_id: C73998DC9DFEA6DCF1241057308C15A29AD198E9
+golang_repo_url: deb http://ppa.launchpad.net/gophers/archive/ubuntu xenial main
+golang_bin_dir: /usr/lib/go-1.10/bin
diff --git a/ansible/roles/install_go/tasks/main.yml b/ansible/roles/install_go/tasks/main.yml
new file mode 100644
index 000000000..5489fadae
--- /dev/null
+++ b/ansible/roles/install_go/tasks/main.yml
@@ -0,0 +1,40 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Add go language gophers repo key
+ # due to a proxy issue in the ansible apt_key module on Ubuntu 17.10,
+ # it doesn't work to add key via `id` and `keyserver` parametes. Similar
+ # issue is described here: https://github.com/debops/ansible-elastic_co/issues/2
+ # apt_key:
+ # keyserver: "{{ golang_repo_key_server }}"
+ # id: "{{ golang_repo_key_id }}"
+ # As a workaround, we can use `apt-key` tool directly with proxy specified.
+ command: >
+ apt-key adv --keyserver {{ golang_repo_key_server }} --recv-keys
+ --keyserver-options http-proxy={{ proxy_env.http_proxy }}
+ {{ golang_repo_key_id }}
+
+- name: Add apt golang repository
+ apt_repository:
+ repo: "{{ golang_repo_url }}"
+ filename: golang-1.10-go
+
+- name: Install golang-1.10-go
+ apt:
+ name: golang-1.10-go
+
+- name: Setup Go environment variable
+ set_fact:
+ go_env:
+ PATH: "{{ golang_bin_dir }}:{{ ansible_env.PATH }}"
diff --git a/ansible/roles/install_image_dependencies/defaults/main.yml b/ansible/roles/install_image_dependencies/defaults/main.yml
index f0b53215a..558e68a9b 100644
--- a/ansible/roles/install_image_dependencies/defaults/main.yml
+++ b/ansible/roles/install_image_dependencies/defaults/main.yml
@@ -28,6 +28,9 @@ install_dependencies:
# for IxLoad
- libxft-dev
- libxss-dev
+ - expect
+ - libnuma-dev
+ - curl
RedHat:
- bc
- fio
@@ -48,3 +51,4 @@ install_dependencies:
- sysstat
- unzip
- python-devel
+ - curl
diff --git a/ansible/roles/install_image_dependencies/tasks/main.yml b/ansible/roles/install_image_dependencies/tasks/main.yml
index ffd30f33e..4e55339c2 100644
--- a/ansible/roles/install_image_dependencies/tasks/main.yml
+++ b/ansible/roles/install_image_dependencies/tasks/main.yml
@@ -19,5 +19,5 @@
action: "{{ ansible_pkg_mgr }} name={{ item }} state=latest update_cache=yes"
register: pkg_mgr_results
retries: "{{ pkg_mgr_retries }}"
- until: pkg_mgr_results|success
+ until: pkg_mgr_results is success
with_items: "{{ install_dependencies[ansible_os_family] }}"
diff --git a/ansible/roles/install_kube/defaults/main.yml b/ansible/roles/install_kube/defaults/main.yml
new file mode 100644
index 000000000..1ae57469d
--- /dev/null
+++ b/ansible/roles/install_kube/defaults/main.yml
@@ -0,0 +1,16 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+kubernetes_key_url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
+kubernetes_repo_url: deb http://apt.kubernetes.io/ kubernetes-xenial main
diff --git a/ansible/roles/install_kube/tasks/main.yml b/ansible/roles/install_kube/tasks/main.yml
new file mode 100644
index 000000000..ea4f0cdb5
--- /dev/null
+++ b/ansible/roles/install_kube/tasks/main.yml
@@ -0,0 +1,30 @@
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: Add kubernetes repo key
+ apt_key:
+ url: "{{ kubernetes_key_url }}"
+
+- name: Add apt kubernetes repository
+ apt_repository:
+ repo: "{{ kubernetes_repo_url }}"
+ filename: kubernetes
+
+- name: Install kubelet kubeadm kubectl kubernetes-cni
+ apt:
+ name:
+ - kubelet=1.9.3*
+ - kubeadm=1.9.3*
+ - kubectl=1.9.3*
+ force: yes
diff --git a/ansible/roles/install_pktgen/tasks/main.yml b/ansible/roles/install_pktgen/tasks/main.yml
new file mode 100644
index 000000000..294c77971
--- /dev/null
+++ b/ansible/roles/install_pktgen/tasks/main.yml
@@ -0,0 +1,25 @@
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: set build env vars
+ set_fact:
+ build_env_vars:
+ RTE_SDK: "{{ RTE_SDK }}"
+ RTE_TARGET: "{{ RTE_TARGET }}"
+
+- name: "make pktgen"
+ command: make
+ args:
+ chdir: "{{ pktgen_path }}"
+ environment: "{{ build_env_vars }}"
diff --git a/ansible/roles/install_samplevnf/tasks/main.yml b/ansible/roles/install_samplevnf/tasks/main.yml
index b5d33f668..ad147b00f 100644
--- a/ansible/roles/install_samplevnf/tasks/main.yml
+++ b/ansible/roles/install_samplevnf/tasks/main.yml
@@ -56,3 +56,35 @@
# make executable
mode: 0755
+- set_fact:
+ path_vnf: "{{ INSTALL_BIN_PATH }}/{{ vnf_app_names[vnf_name]}}"
+
+- stat:
+ path: "{{ path_vnf }}"
+ checksum_algorithm: md5
+ register: path_vnf_var
+
+- stat:
+ path: "{{ path_json }}"
+ register: path_json_var
+
+- name: Fetch from remote
+ fetch:
+ src: "{{ path_json }}"
+ dest: "{{ path_json }}"
+ flat: yes
+ when: path_json_var.stat.exists
+
+- name: Read from json
+ set_fact:
+ json_vars: "{{ lookup('file', path_json) | from_json }}"
+ when: path_json_var.stat.exists
+
+- set_fact:
+ json_vars: "{{ json_vars | default([]) | combine({ vnf_app_names[vnf_name]: {'branch_commit': samplevnf_version, 'path_vnf': path_vnf, 'md5': path_vnf_var.stat.checksum }}) }}"
+
+- name: Update json file
+ copy:
+ content: "{{ json_vars | to_nice_json }}"
+ dest: "{{ path_json }}"
+ mode: 0755
diff --git a/ansible/roles/install_samplevnf/vars/main.yml b/ansible/roles/install_samplevnf/vars/main.yml
index 45cea6820..e2a37377a 100644
--- a/ansible/roles/install_samplevnf/vars/main.yml
+++ b/ansible/roles/install_samplevnf/vars/main.yml
@@ -47,12 +47,12 @@ vnf_build_dependencies:
vnf_build_dirs:
ACL: vACL
FW: vFW
- CGNATP: vCGNAPT
+ CGNAPT: vCGNAPT
UDP_Replay: UDP_Replay
PROX: DPPD-PROX
vnf_app_names:
ACL: vACL
FW: vFW
- CGNATP: vCGNAPT
+ CGNAPT: vCGNAPT
UDP_Replay: UDP_Replay
PROX: prox
diff --git a/ansible/roles/install_trex/defaults/main.yml b/ansible/roles/install_trex/defaults/main.yml
index a5555e355..79a04fedd 100644
--- a/ansible/roles/install_trex/defaults/main.yml
+++ b/ansible/roles/install_trex/defaults/main.yml
@@ -13,6 +13,6 @@
# limitations under the License.
---
#TREX_DOWNLOAD: "https://trex-tgn.cisco.com/trex/release/v2.05.tar.gz"
-TREX_VERSION: v2.28
+TREX_VERSION: v2.41
TREX_DOWNLOAD: "{{ nsb_mirror_url|ternary(nsb_mirror_url, 'https://trex-tgn.cisco.com/trex/release' }}/{{ TREX_VERSION }}.tar.gz"
INSTALL_BIN_PATH: "/opt/nsb_bin"
diff --git a/ansible/roles/install_trex/tasks/main.yml b/ansible/roles/install_trex/tasks/main.yml
index 7ba1fc833..9113c887f 100644
--- a/ansible/roles/install_trex/tasks/main.yml
+++ b/ansible/roles/install_trex/tasks/main.yml
@@ -31,9 +31,6 @@
dest: "{{ INSTALL_BIN_PATH }}/trex_client"
state: link
-# Don't use trex/scripts/dpdk_nic_bind.py use DPDK usertools/dpdk-devbind.py
-#- command: cp "{{ INSTALL_BIN_PATH }}/trex/scripts/dpdk_nic_bind.py" "{{ INSTALL_BIN_PATH }}"
-
- name: add scripts to PYTHONPATH
lineinfile:
dest: /etc/environment
diff --git a/ansible/roles/install_yardstick/tasks/main.yml b/ansible/roles/install_yardstick/tasks/main.yml
new file mode 100644
index 000000000..f93f8eec3
--- /dev/null
+++ b/ansible/roles/install_yardstick/tasks/main.yml
@@ -0,0 +1,67 @@
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+# Arguments needed: map_min_addr_file, yardstick_dir
+
+- name: Define variables
+ set_fact:
+ map_min_addr_file: "/etc/sysctl.d/mmap_min_addr.conf"
+
+- name: Remove the kernel minimum virtual address restriction that a process is allowed to mmap
+ copy:
+ dest: "{{ map_min_addr_file }}"
+ content: "vm.mmap_min_addr = 0\n"
+
+- name: Config git SSL
+ git_config:
+ name: http.sslVerify
+ scope: global
+ value: False
+
+- name: Install Yardstick requirements (venv)
+ pip:
+ requirements: "{{ yardstick_dir }}/requirements.txt"
+ virtualenv: "{{ yardstick_dir }}/virtualenv"
+ async: 900
+ poll: 0
+ register: pip_installer
+ when: virtual_environment == True
+
+- name: Install Yardstick requirements
+ pip:
+ requirements: "{{ yardstick_dir }}/requirements.txt"
+ async: 900
+ poll: 0
+ register: pip_installer
+ when: virtual_environment == False
+
+- name: Check install Yardstick requirements
+ async_status:
+ jid: "{{ pip_installer.ansible_job_id }}"
+ register: job_result
+ until: job_result.finished
+ retries: 180
+
+- name: Install Yardstick code (venv)
+ pip:
+ name: "{{ yardstick_dir }}/"
+ editable: True
+ virtualenv: "{{ yardstick_dir }}/virtualenv"
+ when: virtual_environment == True
+
+- name: Install Yardstick code
+ pip:
+ name: "{{ yardstick_dir }}/"
+ editable: True
+ when: virtual_environment == False
diff --git a/ansible/roles/set_package_installer_proxy/templates/apt_conf.j2 b/ansible/roles/set_package_installer_proxy/templates/apt_conf.j2
index 5b57178a7..cba8eacd4 100644
--- a/ansible/roles/set_package_installer_proxy/templates/apt_conf.j2
+++ b/ansible/roles/set_package_installer_proxy/templates/apt_conf.j2
@@ -1,3 +1,6 @@
{% if "http_proxy" in proxy_env %}
Acquire::http::Proxy "{{ proxy_env.http_proxy }}";
{% endif %}
+{% if "https_proxy" in proxy_env %}
+Acquire::https::Proxy "{{ proxy_env.https_proxy }}";
+{% endif %}
diff --git a/ansible/standalone_ovs_scale_out_ixia_correlated_test.yaml b/ansible/standalone_ovs_scale_out_ixia_correlated_test.yaml
index 516676576..b54ea9b57 100644
--- a/ansible/standalone_ovs_scale_out_ixia_correlated_test.yaml
+++ b/ansible/standalone_ovs_scale_out_ixia_correlated_test.yaml
@@ -51,13 +51,12 @@
user: ""
password: ""
key_filename: ~
- tg_config:
+ tg_config:
ixchassis: "1.1.1.127" #ixia chassis ip
tcl_port: "8009" # tcl server port
lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0"
root_dir: "/opt/ixia/ixos-api/8.01.0.2/"
py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/"
- py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi"
dut_result_dir: "/mnt/results"
version: "8.01.106.3"
pcis:
diff --git a/ansible/standalone_ovs_scale_out_ixia_test.yaml b/ansible/standalone_ovs_scale_out_ixia_test.yaml
index ff665377f..cae373432 100644
--- a/ansible/standalone_ovs_scale_out_ixia_test.yaml
+++ b/ansible/standalone_ovs_scale_out_ixia_test.yaml
@@ -60,7 +60,6 @@
lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0"
root_dir: "/opt/ixia/ixos-api/8.01.0.2/"
py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/"
- py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi"
dut_result_dir: "/mnt/results"
version: "8.01.106.3"
pcis:
diff --git a/ansible/standalone_sriov_scale_out_ixia_correlated_test.yaml b/ansible/standalone_sriov_scale_out_ixia_correlated_test.yaml
index 45a4a498b..0e3a0af55 100644
--- a/ansible/standalone_sriov_scale_out_ixia_correlated_test.yaml
+++ b/ansible/standalone_sriov_scale_out_ixia_correlated_test.yaml
@@ -43,13 +43,12 @@
user: ""
password: ""
key_filename: ~
- tg_config:
+ tg_config:
ixchassis: "1.1.1.127" #ixia chassis ip
tcl_port: "8009" # tcl server port
lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0"
root_dir: "/opt/ixia/ixos-api/8.01.0.2/"
py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/"
- py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi"
dut_result_dir: "/mnt/results"
version: "8.01.106.3"
pcis:
diff --git a/ansible/standalone_sriov_scale_out_ixia_test.yaml b/ansible/standalone_sriov_scale_out_ixia_test.yaml
index 659dbef07..8fb09d9b9 100644
--- a/ansible/standalone_sriov_scale_out_ixia_test.yaml
+++ b/ansible/standalone_sriov_scale_out_ixia_test.yaml
@@ -49,7 +49,6 @@
lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0"
root_dir: "/opt/ixia/ixos-api/8.01.0.2/"
py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/"
- py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi"
dut_result_dir: "/mnt/results"
version: "8.01.106.3"
pcis:
diff --git a/ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml b/ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml
index 479b45c92..82d80fd5a 100644
--- a/ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml
+++ b/ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation.
+# Copyright (c) 2017-2019 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -15,6 +15,8 @@
- hosts: yardstick-standalone:jumphost
vars:
clone_dir: /tmp/yardstick-clone
+ vars_files:
+ - roles/download_dpdk/defaults/main.yml
environment:
"{{ proxy_env }}"
@@ -24,19 +26,24 @@
when: proxy_env is defined and proxy_env
# can't update grub in chroot/docker
- enable_hugepages_on_boot
+ - enable_iommu_on_boot
+ - enable_cpu_isolation_on_boot
# needed for collectd plugins
- increase_open_file_limits
- install_image_dependencies
- - role: download_dpdk
-# dpdk_version: "17.02"
- - install_dpdk
- download_trex
- install_trex
- download_civetweb
- install_civetweb
+ - role: download_dpdk
+ dpdk_version: "{{ dpdk_version_for_PROX }}"
+ - role: install_dpdk
+ dpdk_version: "{{ dpdk_version_for_PROX }}"
- download_samplevnfs
- role: install_samplevnf
vnf_name: PROX
+ - download_dpdk
+ - install_dpdk
- role: install_samplevnf
vnf_name: UDP_Replay
- role: install_samplevnf
@@ -44,7 +51,7 @@
- role: install_samplevnf
vnf_name: FW
- role: install_samplevnf
- vnf_name: CGNATP
+ vnf_name: CGNAPT
# build shared DPDK for collectd only, required DPDK downloaded already
- install_dpdk_shared
- install_rabbitmq
@@ -54,3 +61,5 @@
- install_pmu_tools
- download_collectd
- install_collectd
+ - docker
+ - barometer_collectd
diff --git a/ansible/ubuntu_server_cloudimg_modify.yml b/ansible/ubuntu_server_cloudimg_modify.yml
index 099d5803f..90235cc81 100644
--- a/ansible/ubuntu_server_cloudimg_modify.yml
+++ b/ansible/ubuntu_server_cloudimg_modify.yml
@@ -27,6 +27,7 @@
- modify_cloud_config
- role: set_package_installer_proxy
when: proxy_env is defined and proxy_env
+ - download_l2fwd
- install_image_dependencies
- download_unixbench
- install_unixbench
diff --git a/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml b/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
index dff7f976a..d894c3dc4 100644
--- a/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
+++ b/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
@@ -16,6 +16,8 @@
connection: chroot
vars:
clone_dir: /tmp/yardstick-clone
+ vars_files:
+ - roles/download_dpdk/defaults/main.yml
pre_tasks:
- debug:
@@ -35,16 +37,21 @@
- increase_open_file_limits
- modify_cloud_config
- install_image_dependencies
- - role: download_dpdk
-# dpdk_version: "17.02"
- - install_dpdk
- download_trex
- install_trex
- download_civetweb
- install_civetweb
+ - role: download_dpdk
+ dpdk_version: "{{ dpdk_version_for_PROX }}"
+ - role: install_dpdk
+ dpdk_version: "{{ dpdk_version_for_PROX }}"
- download_samplevnfs
- role: install_samplevnf
vnf_name: PROX
+ - download_dpdk
+ - install_dpdk
+ - download_pktgen
+ - install_pktgen
- role: install_samplevnf
vnf_name: UDP_Replay
- role: install_samplevnf
@@ -52,7 +59,7 @@
- role: install_samplevnf
vnf_name: FW
- role: install_samplevnf
- vnf_name: CGNATP
+ vnf_name: CGNAPT
# build shared DPDK for collectd only, required DPDK downloaded already
- install_dpdk_shared
- install_rabbitmq
@@ -62,3 +69,5 @@
- install_pmu_tools
- download_collectd
- install_collectd
+ - download_drivers
+ - install_drivers
diff --git a/ansible/yardstick-install-inventory.ini b/ansible/yardstick-install-inventory.ini
deleted file mode 100644
index e276076cc..000000000
--- a/ansible/yardstick-install-inventory.ini
+++ /dev/null
@@ -1,20 +0,0 @@
-# the group of systems on which to install yardstick
-# by default just localhost
-[jumphost]
-localhost ansible_connection=local
-
-# section below is only due backward compatibility.
-# it will be removed later
-[yardstick:children]
-jumphost
-
-[yardstick-standalone]
-# uncomment hosts below if you would to test yardstick-standalone/sriov scenarios
-#yardstick-standalone-node ansible_host=192.168.1.2
-#yardstick-standalone-node-2 ansible_host=192.168.1.2
-
-[all:vars]
-# incomment credentials below for yardstick-standalone
-#ansible_user=root
-#ansible_pass=root
-
diff --git a/ansible/yardstick_config.yml b/ansible/yardstick_config.yml
index 79ec1958e..32b853929 100644
--- a/ansible/yardstick_config.yml
+++ b/ansible/yardstick_config.yml
@@ -21,7 +21,6 @@ OPENRC: "{{ opnfv_root }}/openrc"
INSTALLERS: [apex, compass, fuel, joid]
INSTALLER_TYPE: "{{ lookup('env', 'INSTALLER_TYPE') }}"
YARDSTICK_REPO_DIR: "{{ lookup('env', 'YARDSTICK_REPO_DIR')|default('/home/opnfv/repos/yardstick', true) }}"
-RELENG_REPO_DIR: "{{ lookup('env', 'RELENG_REPO_DIR')|default('/home/opnfv/repos/releng', true) }}"
storperf_rc: "{{ opnfv_root }}/storperf_admin-rc"
DISPATCHER_TYPES:
diff --git a/api/database/v2/models.py b/api/database/v2/models.py
index 59dab3ebc..0ee811698 100644
--- a/api/database/v2/models.py
+++ b/api/database/v2/models.py
@@ -92,6 +92,7 @@ class V2Task(Base):
case_name = Column(String(30))
suite = Column(Boolean)
content = Column(Text)
+ params = Column(Text)
result = Column(Text)
error = Column(Text)
status = Column(Integer)
diff --git a/api/resources/v1/env.py b/api/resources/v1/env.py
index 7c831fd74..6c9eb8324 100644
--- a/api/resources/v1/env.py
+++ b/api/resources/v1/env.py
@@ -10,18 +10,24 @@ from __future__ import absolute_import
import errno
import logging
+
+import ipaddress
import os
import subprocess
import threading
import time
import uuid
import glob
+
+import six
import yaml
import collections
from six.moves import configparser
from oslo_serialization import jsonutils
from docker import Client
+from docker.errors import APIError
+from requests.exceptions import HTTPError
from api.database.v1.handlers import AsyncTaskHandler
from api.utils import influx
@@ -44,7 +50,7 @@ class V1Env(ApiResource):
def post(self):
return self._dispatch_post()
- def create_grafana(self, args):
+ def create_grafana(self, *args):
task_id = str(uuid.uuid4())
thread = threading.Thread(target=self._create_grafana, args=(task_id,))
@@ -82,7 +88,7 @@ class V1Env(ApiResource):
self._update_task_status(task_id)
LOG.info('Finished')
- except Exception as e:
+ except (APIError, HTTPError) as e:
self._update_task_error(task_id, str(e))
LOG.exception('Create grafana failed')
@@ -117,7 +123,7 @@ class V1Env(ApiResource):
"isDefault": True,
}
try:
- HttpClient().post(url, data, timeout=10)
+ HttpClient().post(url, data, timeout=60)
except Exception:
LOG.exception('Create datasources failed')
raise
@@ -145,7 +151,7 @@ class V1Env(ApiResource):
return any(t in a['RepoTags'][0]
for a in client.images() if a['RepoTags'])
- def create_influxdb(self, args):
+ def create_influxdb(self, *args):
task_id = str(uuid.uuid4())
thread = threading.Thread(target=self._create_influxdb, args=(task_id,))
@@ -185,7 +191,7 @@ class V1Env(ApiResource):
self._update_task_status(task_id)
LOG.info('Finished')
- except Exception as e:
+ except APIError as e:
self._update_task_error(task_id, str(e))
LOG.exception('Creating influxdb failed')
@@ -217,7 +223,7 @@ class V1Env(ApiResource):
consts.INFLUXDB_DB_NAME)
client.create_database(consts.INFLUXDB_DB_NAME)
LOG.info('Success to config influxDB')
- except Exception:
+ except HTTPError:
LOG.exception('Config influxdb failed')
def _change_output_to_influxdb(self, ip):
@@ -236,7 +242,7 @@ class V1Env(ApiResource):
with open(consts.CONF_FILE, 'w') as f:
parser.write(f)
- def prepare_env(self, args):
+ def prepare_env(self, *args):
task_id = str(uuid.uuid4())
thread = threading.Thread(target=self._prepare_env_daemon,
@@ -267,6 +273,8 @@ class V1Env(ApiResource):
LOG.info('Openrc file not found')
installer_ip = os.environ.get('INSTALLER_IP',
'192.168.200.2')
+ # validate installer_ip is a valid ipaddress
+ installer_ip = str(ipaddress.IPv4Address(six.u(installer_ip)))
installer_type = os.environ.get('INSTALLER_TYPE', 'compass')
LOG.info('Getting openrc file from %s', installer_type)
self._get_remote_rc_file(rc_file,
@@ -287,7 +295,7 @@ class V1Env(ApiResource):
self._update_task_status(task_id)
LOG.info('Finished')
- except Exception as e:
+ except (subprocess.CalledProcessError, OSError) as e:
self._update_task_error(task_id, str(e))
LOG.exception('Prepare env failed')
@@ -373,7 +381,7 @@ class V1Env(ApiResource):
LOG.info('Source openrc: Sourcing')
try:
self._source_file(consts.OPENRC)
- except Exception as e:
+ except subprocess.CalledProcessError as e:
LOG.exception('Failed to source openrc')
return result_handler(consts.API_ERROR, str(e))
LOG.info('Source openrc: Done')
diff --git a/api/resources/v1/testsuites.py b/api/resources/v1/testsuites.py
index 5f72c2ea6..3e14670b4 100644
--- a/api/resources/v1/testsuites.py
+++ b/api/resources/v1/testsuites.py
@@ -20,6 +20,7 @@ from yardstick.common.utils import result_handler
from yardstick.benchmark.core import Param
from yardstick.benchmark.core.task import Task
from api.swagger import models
+from api.database.v1.handlers import TasksHandler
LOG = logging.getLogger(__name__)
LOG.setLevel(logging.DEBUG)
@@ -58,7 +59,7 @@ class V1Testsuite(ApiResource):
task_args.update(args.get('opts', {}))
param = Param(task_args)
- task_thread = TaskThread(Task().start, param)
+ task_thread = TaskThread(Task().start, param, TasksHandler())
task_thread.start()
return result_handler(consts.API_SUCCESS, {'task_id': task_id})
diff --git a/api/resources/v2/environments.py b/api/resources/v2/environments.py
index 158e98be7..7e587be85 100644
--- a/api/resources/v2/environments.py
+++ b/api/resources/v2/environments.py
@@ -11,6 +11,7 @@ import logging
from oslo_serialization import jsonutils
from docker import Client
+from docker.errors import APIError
from api import ApiResource
from api.database.v2.handlers import V2EnvironmentHandler
@@ -20,6 +21,7 @@ from api.database.v2.handlers import V2ContainerHandler
from yardstick.common.utils import result_handler
from yardstick.common.utils import change_obj_to_dict
from yardstick.common import constants as consts
+from yardstick.service.environment import Environment
LOG = logging.getLogger(__name__)
LOG.setLevel(logging.DEBUG)
@@ -124,10 +126,41 @@ class V2Environment(ApiResource):
LOG.debug('container name: %s', container.name)
try:
client.remove_container(container.name, force=True)
- except Exception:
+ except APIError:
LOG.exception('remove container failed')
container_handler.delete_by_uuid(v)
environment_handler.delete_by_uuid(environment_id)
return result_handler(consts.API_SUCCESS, {'environment': environment_id})
+
+
+class V2SUT(ApiResource):
+
+ def get(self, environment_id):
+ try:
+ uuid.UUID(environment_id)
+ except ValueError:
+ return result_handler(consts.API_ERROR, 'invalid environment id')
+
+ environment_handler = V2EnvironmentHandler()
+ try:
+ environment = environment_handler.get_by_uuid(environment_id)
+ except ValueError:
+ return result_handler(consts.API_ERROR, 'no such environment id')
+
+ if not environment.pod_id:
+ return result_handler(consts.API_SUCCESS, {'sut': {}})
+
+ pod_handler = V2PodHandler()
+ try:
+ pod = pod_handler.get_by_uuid(environment.pod_id)
+ except ValueError:
+ return result_handler(consts.API_ERROR, 'no such pod id')
+ else:
+ pod_content = pod.content
+
+ env = Environment(pod=pod_content)
+ sut_info = env.get_sut_info()
+
+ return result_handler(consts.API_SUCCESS, {'sut': sut_info})
diff --git a/api/resources/v2/images.py b/api/resources/v2/images.py
index 0c36a0a26..c3e5ee73e 100644
--- a/api/resources/v2/images.py
+++ b/api/resources/v2/images.py
@@ -18,8 +18,7 @@ from api.database.v2.handlers import V2ImageHandler
from api.database.v2.handlers import V2EnvironmentHandler
from yardstick.common.utils import result_handler
from yardstick.common.utils import source_env
-from yardstick.common.utils import change_obj_to_dict
-from yardstick.common.openstack_utils import get_nova_client
+from yardstick.common import openstack_utils
from yardstick.common.openstack_utils import get_glance_client
from yardstick.common import constants as consts
@@ -47,39 +46,21 @@ class V2Images(ApiResource):
def get(self):
try:
source_env(consts.OPENRC)
- except Exception:
+ except OSError:
return result_handler(consts.API_ERROR, 'source openrc error')
- nova_client = get_nova_client()
- try:
- images_list = nova_client.images.list()
- except Exception:
+ image_list = openstack_utils.list_images()
+
+ if image_list is False:
return result_handler(consts.API_ERROR, 'get images error')
- else:
- images = {i.name: self.get_info(change_obj_to_dict(i)) for i in images_list}
+
+ images = {i.name: format_image_info(i) for i in image_list}
return result_handler(consts.API_SUCCESS, {'status': 1, 'images': images})
def post(self):
return self._dispatch_post()
- def get_info(self, data):
- try:
- size = data['OS-EXT-IMG-SIZE:size']
- except KeyError:
- size = None
- else:
- size = float(size) / 1024 / 1024
-
- result = {
- 'name': data.get('name', ''),
- 'discription': data.get('description', ''),
- 'size': size,
- 'status': data.get('status'),
- 'time': data.get('updated')
- }
- return result
-
def load_image(self, args):
try:
image_name = args['name']
@@ -268,7 +249,7 @@ class V2Images(ApiResource):
r = requests.head(url)
try:
file_size = int(r.headers['content-length'])
- except Exception:
+ except (TypeError, ValueError):
return
with open(path, 'wb') as f:
@@ -303,14 +284,13 @@ class V2Image(ApiResource):
except ValueError:
return result_handler(consts.API_ERROR, 'no such image id')
- nova_client = get_nova_client()
- images = nova_client.images.list()
+ images = openstack_utils.list_images()
try:
image = next((i for i in images if i.name == image.name))
except StopIteration:
pass
- return_image = self.get_info(change_obj_to_dict(image))
+ return_image = format_image_info(image)
return_image['id'] = image_id
return result_handler(consts.API_SUCCESS, {'image': return_image})
@@ -349,19 +329,16 @@ class V2Image(ApiResource):
return result_handler(consts.API_SUCCESS, {'image': image_id})
- def get_info(self, data):
- try:
- size = data['OS-EXT-IMG-SIZE:size']
- except KeyError:
- size = None
- else:
- size = float(size) / 1024 / 1024
-
- result = {
- 'name': data.get('name', ''),
- 'description': data.get('description', ''),
- 'size': size,
- 'status': data.get('status'),
- 'time': data.get('updated')
- }
- return result
+
+def format_image_info(image):
+ image_dict = {}
+
+ if image is None:
+ return image_dict
+
+ image_dict['name'] = image.name
+ image_dict['size'] = float(image.size) / 1024 / 1024
+ image_dict['status'] = image.status.upper()
+ image_dict['time'] = image.updated_at
+
+ return image_dict
diff --git a/api/resources/v2/openrcs.py b/api/resources/v2/openrcs.py
index cb506d0e8..4706b856a 100644
--- a/api/resources/v2/openrcs.py
+++ b/api/resources/v2/openrcs.py
@@ -21,6 +21,7 @@ from yardstick.common import constants as consts
from yardstick.common.utils import result_handler
from yardstick.common.utils import makedirs
from yardstick.common.utils import source_env
+from yardstick.common import exceptions as y_exc
LOG = logging.getLogger(__name__)
LOG.setLevel(logging.DEBUG)
@@ -57,7 +58,7 @@ class V2Openrcs(ApiResource):
openrc_data = self._get_openrc_dict()
except Exception:
LOG.exception('parse openrc failed')
- return result_handler(consts.API_ERROR, 'parse openrc failed')
+ raise y_exc.UploadOpenrcError()
openrc_id = str(uuid.uuid4())
self._write_into_database(environment_id, openrc_id, openrc_data)
@@ -67,7 +68,7 @@ class V2Openrcs(ApiResource):
self._generate_ansible_conf_file(openrc_data)
except Exception:
LOG.exception('write cloud conf failed')
- return result_handler(consts.API_ERROR, 'genarate ansible conf failed')
+ raise y_exc.UploadOpenrcError()
LOG.info('finish writing ansible cloud conf')
return result_handler(consts.API_SUCCESS, {'openrc': openrc_data, 'uuid': openrc_id})
@@ -102,7 +103,7 @@ class V2Openrcs(ApiResource):
source_env(consts.OPENRC)
except Exception:
LOG.exception('source openrc failed')
- return result_handler(consts.API_ERROR, 'source openrc failed')
+ raise y_exc.UpdateOpenrcError()
LOG.info('source openrc: Done')
openrc_id = str(uuid.uuid4())
@@ -113,7 +114,7 @@ class V2Openrcs(ApiResource):
self._generate_ansible_conf_file(openrc_vars)
except Exception:
LOG.exception('write cloud conf failed')
- return result_handler(consts.API_ERROR, 'genarate ansible conf failed')
+ raise y_exc.UpdateOpenrcError()
LOG.info('finish writing ansible cloud conf')
return result_handler(consts.API_SUCCESS, {'openrc': openrc_vars, 'uuid': openrc_id})
@@ -174,7 +175,7 @@ class V2Openrcs(ApiResource):
makedirs(consts.OPENSTACK_CONF_DIR)
with open(consts.CLOUDS_CONF, 'w') as f:
- yaml.dump(ansible_conf, f, default_flow_style=False)
+ yaml.safe_dump(ansible_conf, f, default_flow_style=False)
class V2Openrc(ApiResource):
diff --git a/api/resources/v2/tasks.py b/api/resources/v2/tasks.py
index 25a9cf109..17241ed63 100644
--- a/api/resources/v2/tasks.py
+++ b/api/resources/v2/tasks.py
@@ -38,6 +38,8 @@ class V2Tasks(ApiResource):
for t in tasks:
result = t['result']
t['result'] = jsonutils.loads(result) if result else None
+ params = t['params']
+ t['params'] = jsonutils.loads(params) if params else None
return result_handler(consts.API_SUCCESS, {'tasks': tasks})
@@ -94,6 +96,9 @@ class V2Task(ApiResource):
result = task_info['result']
task_info['result'] = jsonutils.loads(result) if result else None
+ params = task_info['params']
+ task_info['params'] = jsonutils.loads(params) if params else None
+
return result_handler(consts.API_SUCCESS, {'task': task_info})
def delete(self, task_id):
@@ -127,7 +132,6 @@ class V2Task(ApiResource):
return result_handler(consts.API_SUCCESS, {'task': task_id})
def put(self, task_id):
-
try:
uuid.UUID(task_id)
except ValueError:
@@ -166,6 +170,21 @@ class V2Task(ApiResource):
return result_handler(consts.API_SUCCESS, {'uuid': task_id})
+ def add_params(self, args):
+ task_id = args['task_id']
+ try:
+ params = args['params']
+ except KeyError:
+ return result_handler(consts.API_ERROR, 'params must be provided')
+
+ LOG.info('update params info in task')
+
+ task_handler = V2TaskHandler()
+ task_update_data = {'params': jsonutils.dumps(params)}
+ task_handler.update_attr(task_id, task_update_data)
+
+ return result_handler(consts.API_SUCCESS, {'uuid': task_id})
+
def add_case(self, args):
task_id = args['task_id']
try:
@@ -243,7 +262,8 @@ class V2Task(ApiResource):
data = {
'inputfile': ['/tmp/{}.yaml'.format(task.case_name)],
- 'task_id': task_id
+ 'task_id': task_id,
+ 'task-args': task.params
}
if task.suite:
data.update({'suite': True})
diff --git a/api/server.py b/api/server.py
index 37a1ab6a6..914fe8457 100644
--- a/api/server.py
+++ b/api/server.py
@@ -39,11 +39,13 @@ app.config['MAX_CONTENT_LENGTH'] = 2 * 1024 * 1024 * 1024
Swagger(app)
-api = Api(app)
+api = Api(app, errors=consts.API_ERRORS)
@app.teardown_request
def shutdown_session(exception=None):
+ if exception:
+ LOG.warning(exception.message)
db_session.remove()
diff --git a/api/urls.py b/api/urls.py
index 4b8e39e8f..9f0abcade 100644
--- a/api/urls.py
+++ b/api/urls.py
@@ -26,6 +26,7 @@ urlpatterns = [
Url('/api/v2/yardstick/environments', 'v2_environments'),
Url('/api/v2/yardstick/environments/action', 'v2_environments'),
Url('/api/v2/yardstick/environments/<environment_id>', 'v2_environment'),
+ Url('/api/v2/yardstick/environments/<environment_id>/sut', 'v2_sut'),
Url('/api/v2/yardstick/openrcs', 'v2_openrcs'),
Url('/api/v2/yardstick/openrcs/action', 'v2_openrcs'),
diff --git a/api/utils/influx.py b/api/utils/influx.py
index 9bc6e9abe..8f3604745 100644
--- a/api/utils/influx.py
+++ b/api/utils/influx.py
@@ -1,53 +1,60 @@
##############################################################################
# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+# Copyright (c) 2019 Intel Corporation
#
# 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 __future__ import absolute_import
import logging
-import six.moves.configparser as ConfigParser
-from six.moves.urllib.parse import urlsplit
-from influxdb import InfluxDBClient
+from six.moves import configparser as ConfigParser
+# NOTE(ralonsoh): pylint E0401 import error
+# https://github.com/PyCQA/pylint/issues/1640
+from six.moves.urllib.parse import urlsplit # pylint: disable=relative-import
+from influxdb import client as influxdb_client
from yardstick.common import constants as consts
+from yardstick.common import exceptions
+from yardstick import dispatcher
-logger = logging.getLogger(__name__)
+logger = logging.getLogger(__name__)
-def get_data_db_client():
+def get_data_db_client(db=None):
parser = ConfigParser.ConfigParser()
try:
parser.read(consts.CONF_FILE)
-
- if parser.get('DEFAULT', 'dispatcher') != 'influxdb':
- raise RuntimeError
-
- return _get_client(parser)
+ return _get_influxdb_client(parser, db)
except ConfigParser.NoOptionError:
- logger.error('can not find the key')
+ logger.error('Can not find the key')
raise
+def _get_influxdb_client(parser, db=None):
+ if dispatcher.INFLUXDB not in parser.get('DEFAULT', 'dispatcher'):
+ raise exceptions.InfluxDBConfigurationMissing()
-def _get_client(parser):
ip = _get_ip(parser.get('dispatcher_influxdb', 'target'))
user = parser.get('dispatcher_influxdb', 'username')
password = parser.get('dispatcher_influxdb', 'password')
- db_name = parser.get('dispatcher_influxdb', 'db_name')
- return InfluxDBClient(ip, consts.INFLUXDB_PORT, user, password, db_name)
+ if db is None:
+ db_name = parser.get('dispatcher_influxdb', 'db_name')
+ else:
+ db_name = db
+
+ return influxdb_client.InfluxDBClient(ip, consts.INFLUXDB_PORT, user,
+ password, db_name)
def _get_ip(url):
return urlsplit(url).hostname
-def query(query_sql):
+def query(query_sql, db=None):
try:
- client = get_data_db_client()
+ client = get_data_db_client(db)
logger.debug('Start to query: %s', query_sql)
return list(client.query(query_sql).get_points())
except RuntimeError:
diff --git a/dashboard/NSB-vEPC-Network-Metrics-1540991445293.json b/dashboard/NSB-vEPC-Network-Metrics-1540991445293.json
new file mode 100644
index 000000000..3d75aba91
--- /dev/null
+++ b/dashboard/NSB-vEPC-Network-Metrics-1540991445293.json
@@ -0,0 +1,1354 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "YardStick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ },
+ {
+ "name": "DS_COLLECTD",
+ "label": "collectd",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ },
+ {
+ "name": "VAR_RUN_ID",
+ "type": "constant",
+ "label": "run_id",
+ "value": "45",
+ "description": ""
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.6.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "table",
+ "name": "Table",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "text",
+ "name": "Text",
+ "version": ""
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": "5s",
+ "rows": [
+ {
+ "collapse": false,
+ "height": 1,
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "180",
+ "id": 6,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Test iterations",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "Test session config",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT max(\"tg__0.iteration\") FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id ",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "iterations"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Number of test Iterations",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "content": "<a style=\"font-size: 26px; color=#31A7D3\"><center>NSB vEPC Test : UE default bearer connections/disconnections using Spirent Landslide</center></a>\n<p>Test session details:</p>\n<ul style=\"margin-left: 10px\">\n<li>Spirent testcase covers simulation of UE, ENodeB and MME entities.</li>\n<li>vEPC VNF consists of 3 modules Subscriber Module, Management Module & Content Module.</li>\n<li>Listed below is the tests for <b>Network</b>, <b>NFVi / Platform</b> & <b>VNF</b> Metrics</li></ul>\n<p style=\"margin-left: 10px\">This test session aims to <b>create</b> and later <b>delete</b> a batch of user specified <b>UE sessions</b>. Once all sessions are established a specific data traffic flow should be transferred thru vEPC infrastructure.<p>",
+ "id": 12,
+ "links": [],
+ "mode": "html",
+ "span": 10,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": -103,
+ "panels": [],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 35,
+ "panels": [
+ {
+ "content": "<a style=\"font-size: 26px; color=#31A7D3\"><center>Network Metrics </center></a>",
+ "description": "",
+ "id": 33,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "0",
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30",
+ "id": 3,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "Test Summary",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT max(\"tg__0.Test Summary::Actual Session Connects\") FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Actual Session Connects"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Network | Total created sessions",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30",
+ "id": 8,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "Test Summary",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT max(\"tg__0.Test Summary::Actual Connect Rate (Sessions/Second) (P-I)\") FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id ",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Actual Connect Rate (Sessions/Second) (P-I)"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Network | Rate of created sessions",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30",
+ "id": 10,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "Test Summary",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT max(\"tg__0.Test Summary::Actual Session Disconnects\") FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Actual Session Disconnects"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Network | Total disconnected sessions",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30",
+ "id": 9,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "Test Summary",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT max(\"tg__0.Test Summary::Actual Disconnect Rate (Sessions/Second) (P-I)\") FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id ",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Actual Disconnect Rate (Sessions/Second) (P-I)"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Network | Rate of disconnected sessions",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "250",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 2,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Total created sessions",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "Test Summary",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT \"tg__0.Test Summary::Actual Session Connects\" FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Actual Session Connects"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ },
+ {
+ "alias": "Total disconnected sessions",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "Test Summary",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT \"tg__0.Test Summary::Actual Session Disconnects\" FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id AND $timeFilter",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Actual Session Disconnects"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Network | Total UE Sessions created/deleted",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Total Sessions",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 7,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Rate of sessions creation",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "Test Summary",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT \"tg__0.Test Summary::Actual Connect Rate (Sessions/Second) (P-I)\" FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Actual Connect Rate (Sessions/Second) (P-I)"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ },
+ {
+ "alias": "Rate of sessions deletion",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "Test Summary",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT \"tg__0.Test Summary::Actual Disconnect Rate (Sessions/Second) (P-I)\" FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id AND $timeFilter",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Actual Disconnect Rate (Sessions/Second) (P-I)"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Network | Rate of sessions creation/deletion",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Rate, sessions/second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 196,
+ "panels": [
+ {
+ "columns": [
+ {
+ "text": "Max",
+ "value": "max"
+ }
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "id": 5,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": 0,
+ "desc": true
+ },
+ "span": 4,
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "at S1-U interface",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "MME GTP Node",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT \"tg__0.MME GTP Node::Total Bits Sent/Sec (P-I)\" FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id ",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Total Bits Sent/Sec (P-I)"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ },
+ {
+ "alias": "at SGi interface",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "L3 Client",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT \"tg__0.L3 Client::Total Bits Sent/Sec (P-I)\" FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id ",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Total Bits Sent/Sec (P-I)"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ }
+ ],
+ "title": "Network | Throughput, bps",
+ "transform": "timeseries_aggregations",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 11,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 8,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "S1-U interface",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "MME GTP Node",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT \"tg__0.MME GTP Node::Total Bits Sent/Sec (P-I)\" FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Total Bits Sent/Sec (P-I)"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "run_id",
+ "operator": "=~",
+ "value": "/^$run_id$/"
+ }
+ ]
+ },
+ {
+ "alias": "SGi interface",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "L3 Client",
+ "orderByTime": "ASC",
+ "policy": "autogen",
+ "query": "SELECT \"tg__0.L3 Client::Total Bits Sent/Sec (P-I)\" FROM \"tc_epc_default_bearer_create_an_landslide\" WHERE \"tg__0.run_id\" = $run_id AND $timeFilter",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "Total Bits Sent/Sec (P-I)"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Network | Throughput, bps",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Throughput, bps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 34,
+ "legend": {
+ "alignAsTable": true,
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "rightSide": true,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU Idle Core $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "00966082-8831-E711-906E-0017A4403562"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "idle"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU | Idle",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "current": {
+ "value": "${VAR_RUN_ID}",
+ "text": "${VAR_RUN_ID}"
+ },
+ "hide": 0,
+ "label": "",
+ "name": "run_id",
+ "options": [
+ {
+ "value": "${VAR_RUN_ID}",
+ "text": "${VAR_RUN_ID}"
+ }
+ ],
+ "query": "${VAR_RUN_ID}",
+ "type": "constant"
+ }
+ ]
+ },
+ "time": {
+ "from": "now/d",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "NSB vEPC Network Metrics Abhijit",
+ "version": 1
+} \ No newline at end of file
diff --git a/dashboard/Prox_BM_IRQ-1543341374112.json b/dashboard/Prox_BM_IRQ-1543341374112.json
new file mode 100644
index 000000000..1b17f7eb1
--- /dev/null
+++ b/dashboard/Prox_BM_IRQ-1543341374112.json
@@ -0,0 +1,24069 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.4.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "text",
+ "name": "Text",
+ "version": ""
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": "5s",
+ "rows": [
+ {
+ "collapse": false,
+ "height": -6,
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 32px '#31A7D3'\"><center>OPNFV_Yardstick_NSB_PROX_BM_IRQ_Test</center> </a></h5>\n<center>\n<p>\n<p style=\"font: 24px '#FF5733'\"> \nThe application queries the status and timing information in order to detect spurious interrupts in the NFVi\n</a>\n</p>\n</center>",
+ "editable": true,
+ "error": false,
+ "height": "200px",
+ "id": 3,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Generator</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 7,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "600px",
+ "id": 2,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Max IRQ - CPU 1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "0-1 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter ",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "5-10 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "10-50 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "50-100 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "100-500 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "500-1000 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "1-5 ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "5-10 ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "10-50 ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.9\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "50-100 ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.10\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "100-500 ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.11\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "> 500ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.12\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 2",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 3",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 4",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_4.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 5",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_5.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 6",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_6.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 7",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_7.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 8",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_8.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Generator",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>No. of IRQs per second</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 438,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Core</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 230,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>MAX IRQ</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 231,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>0 - 1 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 232,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>1 - 5 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 233,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>5 - 10 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 234,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>10 - 50 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 235,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>50 - 100 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 236,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>100 - 500 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 237,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>500 - 1000 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 238,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>1 - 5 ms</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 239,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>5 - 10 ms</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 240,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center> > 10 ms</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 241,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "60",
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 242,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 18,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.core_1.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None-",
+ "value": ""
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 344,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.bucket_0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 218,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.bucket_1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 219,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 220,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 221,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 222,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 223,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.bucket_6\" )FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 224,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 225,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 226,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ },
+ {
+ "from": "",
+ "text": "",
+ "to": ""
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 243,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 244,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.core_2.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 245,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_2.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 246,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_2.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 247,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_2.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 248,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_2.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 249,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_2.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 250,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_2.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 251,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_2.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 252,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_2.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.bucket_7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 253,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 254,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_2.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 255,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_3.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 256,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.core_3.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 257,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_3.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 258,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_3.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 259,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_3.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 260,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean( \"tg__0.collect_stats.core_3.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 261,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_3.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 262,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_3.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 263,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_3.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 264,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_3.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 265,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_3.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 266,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_3.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 267,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_4.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 268,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.core_4.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_4.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 269,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_4.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 270,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_4.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 271,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_4.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 272,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_4.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 273,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean( \"tg__0.collect_stats.core_4.bucket_4\" ) FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 274,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_4.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 275,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_4.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 276,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_4.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 277,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"tg__0.collect_stats.core_4.bucket_8\" FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 278,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_4.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 279,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 280,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_5.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 281,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.bucket_0\" )FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "0.00"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 282,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 283,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 284,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 285,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 286,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 287,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 288,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 289,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 290,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_5.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 291,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 292,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.core_6.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_6.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 293,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 294,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 295,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 296,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 297,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 298,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 299,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 300,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 301,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 302,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_6.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 303,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 304,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.core_7.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 305,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 306,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 307,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 308,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 309,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 310,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 311,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 312,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 313,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 314,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_7.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 315,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_8.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 316,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.core_8.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter ",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 317,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_8.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_3.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 318,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean( \"tg__0.collect_stats.core_7.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 319,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_8.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 320,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_8.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 321,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_8.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 322,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_8.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 323,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_8.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 324,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_8.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "None",
+ "value": "-1"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 325,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_8.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_2.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 326,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_8.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_8.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>System Under Test</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 327,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "600px",
+ "id": 437,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Max IRQ - CPU 1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "0-1 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "5-10 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "10-50 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "50-100 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "100-500 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "500-1000 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "1-5 ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "5-10 ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "10-50 ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core_1.9\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "50-100 ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.10\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "100-500 ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.11\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "> 500ms",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.core1.12\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter)",
+ "rawQuery": false,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 2",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_2.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 3",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_3.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 4",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_4.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 5",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_5.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 6",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_6.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 7",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_7.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Max IRQ - CPU 8",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_8.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "System Under Test",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>No. of IRQs per second</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 439,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Core</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 329,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>MAX IRQ</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 330,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>0 - 1 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 331,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>1 - 5 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 332,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>5 - 10 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 333,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>10 - 50 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 334,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>50 - 100 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 335,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>100 - 500 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 336,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>500 - 1000 usec</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 337,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>1 - 5 ms</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 338,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>5 - 10 ms</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 339,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center> > 10 ms</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 340,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 341,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 342,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"vnf__0.collect_stats.core_1.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter\n",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 217,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_1.bucket_0"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 343,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 345,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 346,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 347,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 348,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 349,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 350,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 351,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 352,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_1.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_8.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 353,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 354,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"vnf__0.collect_stats.core_2.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 355,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 356,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 357,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 358,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 359,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 360,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 361,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 362,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 363,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 364,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_2.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_1.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 365,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 366,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"vnf__0.collect_stats.core_3.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 367,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 368,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 369,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 370,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 371,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 372,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 373,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 374,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 375,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 376,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_3.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_1.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 377,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 378,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"vnf__0.collect_stats.core_4.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 379,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 380,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 381,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 382,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 383,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 384,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 385,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 386,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 387,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 388,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_4.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_1.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 389,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 390,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"vnf__0.collect_stats.core_5.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 391,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 392,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 393,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 394,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 395,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 396,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 397,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 398,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 399,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 400,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_5.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_1.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 401,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 402,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"vnf__0.collect_stats.core_6.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 403,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 404,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 405,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 406,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 407,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 408,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 409,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 410,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 411,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 412,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_6.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter ",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_1.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 413,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 414,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"vnf__0.collect_stats.core_7.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter ",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 415,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 416,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 417,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 418,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 419,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 420,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 421,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 422,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 423,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 424,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_7.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_1.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 425,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.cpu\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter ",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.cpu"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 426,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"vnf__0.collect_stats.core_8.max_irq\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.max_irq"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 427,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 MAX IRQ",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.bucket_0\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 428,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.bucket_1\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 429,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.bucket_2\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 430,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.bucket_3\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 431,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.bucket_4\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 432,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.bucket_5\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 433,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.bucket_6\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 434,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.bucket_7\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 435,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.bucket_8\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.core_1.1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 2,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 436,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CORE 1 1-5 Microsecond",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_irq",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"vnf__0.collect_stats.core_8.overflow\") FROM \"tc_prox_baremetal_irq\" WHERE $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core_1.overflow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "yardstick",
+ "NSB",
+ "Prox",
+ "IRQ",
+ "BM"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-1h",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "Prox_BM_IRQ",
+ "version": 41
+} \ No newline at end of file
diff --git a/dashboard/Prox_BM_L2FWD-4Port_MultiSize-1518452496550.json b/dashboard/Prox_BM_L2FWD-4Port_MultiSize-1518452496550.json
new file mode 100644
index 000000000..2a219205b
--- /dev/null
+++ b/dashboard/Prox_BM_L2FWD-4Port_MultiSize-1518452496550.json
@@ -0,0 +1,5841 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.4.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "text",
+ "name": "Text",
+ "version": ""
+ }
+ ],
+ "annotations": {
+ "list": []
+ },
+ "editMode": false,
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": false,
+ "rows": [
+ {
+ "collapse": false,
+ "height": "100px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 32px '#31A7D3'\"><center>OPNFV_Yardstick_NSB_PROX_BM_L2FWD_4Port_Test</center> </a></h5>\n<center>\n<p>The application does Port forwarding without touching packets. It will take packets in from one port and forward them unmodified to another port </p>\n<p>The KPI is the number of packets per second for a specified packet size with an accepted minimal packet loss </p>\n</center>",
+ "editable": true,
+ "error": false,
+ "id": 3,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Throughput</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 7,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "300px",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "id": 6,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Cumulative Packets Sents",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 2
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 2
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Cumulative Load Sent by Generator",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "id": 9,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG xe-0 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe2.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe3.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 2
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 2
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Load Received by Generator",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "id": 43,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG xe-0 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe2.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe3.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 2
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 2
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Load Sent by Generator",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "300px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Prox L2Fwd Traffic Gen stats</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 8,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300",
+ "id": 4,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 1,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "SUT Packets Received",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.curr_packets_in"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 2
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 2
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT Stats - Load Received By SUT",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300",
+ "id": 39,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 1,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "SUT Packets Sent",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.curr_packets_in"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 2
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 2
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT Stats - Load Forwarded By SUT",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "250px",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "id": 2,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Load Requested by Generator",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.TxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Rx Throughput",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": true,
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 2
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 2
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Theoretical Throughput",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "id": 5,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Packet Size",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 2
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 2
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packet size",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": "Packet Size",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "250px",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 10,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "SUCCESS Tx Total",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.Status\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.tx_total"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ },
+ {
+ "alias": "SUCCESS Rx Total",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.Status\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.rx_total"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ },
+ {
+ "alias": "SUCCESS ALLOWABLE LOST PACKETS",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.Status\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.can_be_lost"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUCCESS CRITERIA: TX Total = Rx Total + Tolerated Loss",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "35",
+ "id": 12,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.duration"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Interval",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30",
+ "id": 11,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Test Duration",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.test_duration"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Duration",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30",
+ "id": 13,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Test Precision",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.test_precision"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Precision",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30",
+ "id": 14,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tolerated Loss",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.tolerated_loss"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Tolerated Loss",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "30",
+ "panels": [
+ {
+ "content": "<center>Packet size</center>",
+ "height": "30px",
+ "id": 15,
+ "links": [],
+ "mode": "html",
+ "span": 4,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<center>Theoretical Max Throughput (Million Packets Per Second)</center>",
+ "height": "30px",
+ "id": 16,
+ "links": [],
+ "mode": "html",
+ "span": 4,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<center>Max Actual Throughput (Million Packets Per Second)</center>",
+ "height": "30px",
+ "id": 17,
+ "links": [],
+ "mode": "html",
+ "span": 4,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "30px",
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 18,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theoretical Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 19,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 20,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Actual_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h3"
+ },
+ {
+ "collapse": false,
+ "height": "30",
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 21,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "128"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 22,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "128"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 23,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Actual_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "128"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "30px",
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 24,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "256"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 25,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "256"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 26,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Actual_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "256"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h3"
+ },
+ {
+ "collapse": false,
+ "height": -82,
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 27,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "512"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 28,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "512"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 29,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Actual_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "512"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h3"
+ },
+ {
+ "collapse": false,
+ "height": "30px",
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 30,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "1024"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 31,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "1024"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 32,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Actual_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "1024"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h3"
+ },
+ {
+ "collapse": false,
+ "height": "30px",
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 33,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "1280"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 34,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "1280"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 35,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Actual_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "1280"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "30",
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 44,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 45,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 46,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "40px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Latency</center> </a></h5>",
+ "height": "40",
+ "id": 41,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 47,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe0 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe0 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe0 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": "65000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 48,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe1 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe1 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe1 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": "65000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 49,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe2 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe2 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe2 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": "65000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 50,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe3 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe3 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe3 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": "65000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "40px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>SUT CPU Utilization</center> </a></h5>",
+ "height": "40px",
+ "id": 51,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "300px",
+ "id": 52,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": false,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 0 Utilization",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.0.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU 0 Utilization - Master Core",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "300px",
+ "id": 53,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 1 Utilization - L2FWD XE0 to XE1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.1.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU 1 Utilization - L2FWD XE0 to XE1",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "300px",
+ "id": 54,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 2 Utilization",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.2.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU 2 Utilization - L2FWD XE1 to XE0",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "300px",
+ "id": 55,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 3 Utilization",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.3.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU 3 Utilization - L2FWD XE2 to XE3",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "300px",
+ "id": 56,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 4 Utilization",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.4.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU 4 Utilization - L2FWD XE3 to XE2",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "300px",
+ "id": 57,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 5 Utilization",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l2fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.5.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU 5 Utilization",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "yardstick",
+ "NSB",
+ "Prox",
+ "L2fwd",
+ "4Port",
+ "BM"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-2d",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "Prox_BM_L2FWD-4Port_MultiSize",
+ "version": 12
+}
diff --git a/dashboard/Prox_BM_L3FWD-2Port-1507803870940.json b/dashboard/Prox_BM_L3FWD-2Port-1507803870940.json
deleted file mode 100644
index 4d8d15b0c..000000000
--- a/dashboard/Prox_BM_L3FWD-2Port-1507803870940.json
+++ /dev/null
@@ -1,1003 +0,0 @@
-{
- "__inputs": [
- {
- "name": "DS_YARDSTICK",
- "label": "yardstick",
- "description": "",
- "type": "datasource",
- "pluginId": "influxdb",
- "pluginName": "InfluxDB"
- }
- ],
- "__requires": [
- {
- "type": "grafana",
- "id": "grafana",
- "name": "Grafana",
- "version": "4.4.3"
- },
- {
- "type": "panel",
- "id": "graph",
- "name": "Graph",
- "version": ""
- },
- {
- "type": "datasource",
- "id": "influxdb",
- "name": "InfluxDB",
- "version": "1.0.0"
- },
- {
- "type": "panel",
- "id": "text",
- "name": "Text",
- "version": ""
- }
- ],
- "annotations": {
- "list": []
- },
- "editable": true,
- "gnetId": null,
- "graphTooltip": 0,
- "hideControls": false,
- "id": null,
- "links": [],
- "refresh": false,
- "rows": [
- {
- "collapse": false,
- "height": "100px",
- "panels": [
- {
- "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 32px '#31A7D3'\"><center>OPNFV_Yardstick_NSB_PROX_BM_L3Fwd_2Port_Test</center> </a></h5>\n<center>\n<p>The application performs routing of packets with LPM based look-up method.\nThe KPI is the number of packets per second for a specified packet size with an accepted minimal packet loss </p>\n</center>",
- "editable": true,
- "error": false,
- "id": 3,
- "links": [],
- "mode": "html",
- "span": 12,
- "title": "",
- "type": "text"
- },
- {
- "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Prox L3Fwd VNF stats</center> </a></h5>\n",
- "editable": true,
- "error": false,
- "height": "40",
- "id": 7,
- "links": [],
- "mode": "html",
- "span": 12,
- "title": "",
- "type": "text"
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "Row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "300px",
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "height": "300",
- "id": 4,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 1,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 12,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "VNF packets Forward",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-2",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "vnf__0.packets_fwd"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "VNF packets in",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-2",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "vnf__0.packets_in"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "VNF packets dropped",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-2",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "vnf__0.packets_dropped"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "VNF stats: Packet In, Forward and Dropped",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Packets",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Prox L3Fwd Traffic Gen stats</center> </a></h5>\n",
- "editable": true,
- "error": false,
- "height": "40",
- "id": 8,
- "links": [],
- "mode": "html",
- "span": 12,
- "title": "",
- "type": "text"
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "300px",
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 6,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TG xe-0 Out packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-2",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe0.out_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-1 Out packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-2",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe1.out_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "TG Port Stats: Out packets",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Packets",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 9,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TG xe-0 in packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-2",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe0.in_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-1 in packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-2",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe1.in_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "TG Port Stats: In packets",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Packets",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "250px",
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 2,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TG TX Throughput",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-2",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.TxThroughput"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG RX Throughput",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-2",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.RxThroughput"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "TG Throughput Stats",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Throughput in MPPS",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 5,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TG Packet Size",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-2",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.PktSize"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "Packet size",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "decbytes",
- "label": "Packet Size",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "250px",
- "panels": [],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- }
- ],
- "schemaVersion": 14,
- "style": "dark",
- "tags": [
- "NSB",
- "Prox",
- "BM",
- "L3Fwd",
- "2Port"
- ],
- "templating": {
- "list": []
- },
- "time": {
- "from": "2017-10-02T11:24:07.295Z",
- "to": "2017-10-02T11:26:12.649Z"
- },
- "timepicker": {
- "refresh_intervals": [
- "5s",
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ],
- "time_options": [
- "5m",
- "15m",
- "1h",
- "6h",
- "12h",
- "24h",
- "2d",
- "7d",
- "30d"
- ]
- },
- "timezone": "browser",
- "title": "Prox_BM_L3FWD-2Port",
- "version": 4
-} \ No newline at end of file
diff --git a/dashboard/Prox_BM_L3FWD-2Port-1544192619129.json b/dashboard/Prox_BM_L3FWD-2Port-1544192619129.json
new file mode 100644
index 000000000..08259140a
--- /dev/null
+++ b/dashboard/Prox_BM_L3FWD-2Port-1544192619129.json
@@ -0,0 +1,12132 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.6.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "text",
+ "name": "Text",
+ "version": ""
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": "5s",
+ "rows": [
+ {
+ "collapse": false,
+ "height": -6,
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 32px '#31A7D3'\"><center>OPNFV_Yardstick_NSB_PROX_BM_L3FWD_2Port_Test</center> </a></h5>\n<center>\n<p>\n<p style=\"font: 24px '#FF5733'\"> \nThe application performs routing of packets with LPM based look-up method.\nThe KPI is the number of packets per second for a specified packet size with an accepted minimal packet loss \n</a>\n</p>\n</center>",
+ "editable": true,
+ "error": false,
+ "height": "200px",
+ "id": 3,
+ "links": [],
+ "mode": "html",
+ "span": 8,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"font: 28px '#31A7D3'\"><center>Test Parameters</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "90px",
+ "id": 124,
+ "links": [],
+ "mode": "html",
+ "span": 4,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 125,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.duration"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Interval",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 126,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.test_precision"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Precision",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 127,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.test_duration"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Duration",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 128,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.tolerated_loss"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Tolerated Loss",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "300",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "fill": 1,
+ "height": "300px",
+ "id": 123,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sort": null,
+ "sortDesc": null,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Cumulative Packets Sents",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "line": true,
+ "lineColor": "rgba(0, 0, 0, 0)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgb(234, 112, 112, 0.22)",
+ "line": true,
+ "lineColor": "rgba(0, 0, 0, 0.01)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Cumulative Load Sent by Generator",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "Cumulative Load Sent by Generator",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "60",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Throughput</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 7,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 2,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Load Requested to Generator",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RequestedTxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Load Generated (by the Generator)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.TxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Load Received (by the Generator)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Generator Stats: Average Throughout per step",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 5,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Packet Size",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packet size",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "none",
+ "label": "Packet Size (Bytes)",
+ "logBase": 2,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 169,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 206,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "TG xe-0 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.out_packets\") / 1000000 FROM \"tc_prox_baremetal_l3fwd-2\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe0.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.live_stats.xe1.out_packets\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe1.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Sent by Generator per second and per interface",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 207,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG xe-0 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.in_packets\") / 1000000 FROM \"tc_prox_baremetal_l3fwd-2\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe0.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.live_stats.xe1.in_packets\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe1.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Received by Generator per second and per interface",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300",
+ "id": 4,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "sortDesc": false,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 1,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "SUT Packets Received",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.curr_packets_in"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT Stats - Load Received By SUT",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 39,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 1,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "SUT Packets Sent",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.curr_packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT Stats - Load Forwarded By SUT",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Generator Stats: Packets per Step</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 8,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 43,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "TG xe-0 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.out_packets\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe1.out_packets\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Sent by Generator per Step",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Step",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 9,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG xe-0 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.in_packets\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe1.in_packets\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Received by Generator per Step",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Step",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "400px",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 10,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sort": null,
+ "sortDesc": null,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "SUCCESS Tx Total",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"tg__0.collect_stats.tx_total\" FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.tx_total\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.tx_total"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ },
+ {
+ "alias": "SUCCESS Rx Total",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.rx_total"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ },
+ {
+ "alias": "SUCCESS ALLOWABLE LOST PACKETS",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.can_be_lost"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUCCESS CRITERIA: TX Total = Rx Total + Tolerated Loss",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 129,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "MAX Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"tg__0.collect_stats.tx_total\" FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.tx_total\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.MAX_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "MIN Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.MIN_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Current Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Test_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Line Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": "Percentage of Line Rate",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Performance Stats</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "30",
+ "id": 130,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 81,
+ "panels": [
+ {
+ "content": "<font size=\"1\"><center>Packet size</center></font>",
+ "height": "100px",
+ "id": 15,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Theoretical Max Throughput (MPPS)</center></font>",
+ "height": "100px",
+ "id": 16,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tx Throughput (MPPS)</center></font>",
+ "height": "100px",
+ "id": 17,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Rx Throughput (MPPS)</center></font>",
+ "height": "100px",
+ "id": 58,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tot Sent </center></font>",
+ "height": "100px",
+ "id": 61,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tot Received</center></font>",
+ "height": "100px",
+ "id": 62,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tot Dropped</center></font>",
+ "height": "100px",
+ "id": 63,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tolerated Loss</center></font>",
+ "height": "100px",
+ "id": 64,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Rx Throughput (Gbps)</center></font>",
+ "height": "100px",
+ "id": 131,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 132,
+ "links": [],
+ "mode": "html",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 133,
+ "links": [],
+ "mode": "html",
+ "span": 0,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 134,
+ "links": [],
+ "mode": "html",
+ "span": 0,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": -913,
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 18,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 19,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RequestedTxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 20,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 69,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 70,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 71,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 72,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 73,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 82,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 135,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 136,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 137,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 138,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 139,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 140,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 141,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 142,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 143,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 144,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 145,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 146,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 147,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 148,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 149,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 150,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 151,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 152,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 153,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 154,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 155,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 156,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 157,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 158,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 159,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 160,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 161,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 162,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 163,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 164,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 165,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 166,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 167,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 168,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 169,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 170,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 171,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 172,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 173,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 174,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 175,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 176,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 177,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 178,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 179,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 180,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 181,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 182,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 183,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 184,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 185,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 186,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 187,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 188,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 189,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 190,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 191,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 192,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 193,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 194,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 195,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 196,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 197,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 198,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 199,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 200,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 201,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 202,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 203,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 204,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-2\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 205,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h3"
+ },
+ {
+ "collapse": false,
+ "height": "40px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Latency</center> </a></h5>",
+ "height": "40",
+ "id": 41,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 47,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe0 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe0 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe0 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 48,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe1 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe1 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe1 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "40px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>CPU Utilization</center> </a></h5>",
+ "height": "40px",
+ "id": 51,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": -77,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "600px",
+ "id": 52,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 0 Utilization",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.0.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 1 Utilization - Gen XE0",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.1.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 2 Utilization - Gen XE1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.2.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 3 Utilization - Latency XE0",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.3.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 4 Utilization - Latency XE1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.4.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 5 Utilization - Idle",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.5.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Traffic Generator CPU Utilization",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "600px",
+ "id": 53,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 0 Utilization",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.0.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 1 Utilization - RX XE0 - Routing XE0 and XE1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.1.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 2 Utilization - RX XE1 - Routing XE0 and XE1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.2.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 3 Utilization - Idle",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.3.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 4 Utilization - Idle",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.4.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "VNF CPU Utilization",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "yardstick",
+ "NSB",
+ "Prox",
+ "L3fwd",
+ "2Port",
+ "BM"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-3h",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "Prox_BM_L3FWD-2Port",
+ "version": 9
+} \ No newline at end of file
diff --git a/dashboard/Prox_BM_L3FWD-4Port-1507803878020.json b/dashboard/Prox_BM_L3FWD-4Port-1507803878020.json
deleted file mode 100644
index 09184cb2d..000000000
--- a/dashboard/Prox_BM_L3FWD-4Port-1507803878020.json
+++ /dev/null
@@ -1,1151 +0,0 @@
-{
- "__inputs": [
- {
- "name": "DS_YARDSTICK",
- "label": "yardstick",
- "description": "",
- "type": "datasource",
- "pluginId": "influxdb",
- "pluginName": "InfluxDB"
- }
- ],
- "__requires": [
- {
- "type": "grafana",
- "id": "grafana",
- "name": "Grafana",
- "version": "4.4.3"
- },
- {
- "type": "panel",
- "id": "graph",
- "name": "Graph",
- "version": ""
- },
- {
- "type": "datasource",
- "id": "influxdb",
- "name": "InfluxDB",
- "version": "1.0.0"
- },
- {
- "type": "panel",
- "id": "text",
- "name": "Text",
- "version": ""
- }
- ],
- "annotations": {
- "list": []
- },
- "editable": true,
- "gnetId": null,
- "graphTooltip": 0,
- "hideControls": false,
- "id": null,
- "links": [],
- "refresh": false,
- "rows": [
- {
- "collapse": false,
- "height": "100px",
- "panels": [
- {
- "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 32px '#31A7D3'\"><center>OPNFV_Yardstick_NSB_PROX_BM_L3Fwd_4Port_Test</center> </a></h5>\n<center>\n<p>The application performs routing of packets with LPM based look-up method.\nThe KPI is the number of packets per second for a specified packet size with an accepted minimal packet loss </p>\n</center>",
- "editable": true,
- "error": false,
- "id": 3,
- "links": [],
- "mode": "html",
- "span": 12,
- "title": "",
- "type": "text"
- },
- {
- "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Prox L3Fwd VNF stats</center> </a></h5>\n",
- "editable": true,
- "error": false,
- "height": "40",
- "id": 7,
- "links": [],
- "mode": "html",
- "span": 12,
- "title": "",
- "type": "text"
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "Row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "300px",
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "height": "300",
- "id": 4,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 1,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 12,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "VNF packets Forward",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "vnf__0.packets_fwd"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "VNF packets in",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "vnf__0.packets_in"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "VNF packets dropped",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_heat_context_l3fwd-4",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "vnf__0.packets_dropped"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "VNF stats: Packet In, Forward and Dropped",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Packets",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Prox L3Fwd Traffic Gen stats</center> </a></h5>\n",
- "editable": true,
- "error": false,
- "height": "40",
- "id": 8,
- "links": [],
- "mode": "html",
- "span": 12,
- "title": "",
- "type": "text"
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "300px",
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 6,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TG xe-0 Out packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe0.out_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-1 Out packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe1.out_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-2 Out packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe2.out_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-3 Out packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "policy": "default",
- "refId": "D",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe3.out_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "TG Port Stats: Out packets",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Packets",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 9,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TG xe-0 in packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe0.in_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-1 in packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe1.in_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-2 in packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe2.in_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-3 in packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "policy": "default",
- "refId": "D",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe3.in_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "TG Port Stats: In packets",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Packets",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "250px",
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 2,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TG TX Throughput",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.TxThroughput"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG RX Throughput",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.RxThroughput"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "TG Throughput Stats",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Throughput in MPPS",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 5,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TG Packet Size",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_l3fwd-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.PktSize"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "Packet size",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "decbytes",
- "label": "Packet Size",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "250px",
- "panels": [],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- }
- ],
- "schemaVersion": 14,
- "style": "dark",
- "tags": [
- "NSB",
- "Prox",
- "BM",
- "4Port",
- "L3Fwd"
- ],
- "templating": {
- "list": []
- },
- "time": {
- "from": "2017-09-29T14:12:51.977Z",
- "to": "2017-09-29T14:19:29.296Z"
- },
- "timepicker": {
- "refresh_intervals": [
- "5s",
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ],
- "time_options": [
- "5m",
- "15m",
- "1h",
- "6h",
- "12h",
- "24h",
- "2d",
- "7d",
- "30d"
- ]
- },
- "timezone": "browser",
- "title": "Prox_BM_L3FWD-4Port",
- "version": 4
-} \ No newline at end of file
diff --git a/dashboard/Prox_BM_L3FWD-4Port-1544192654086.json b/dashboard/Prox_BM_L3FWD-4Port-1544192654086.json
new file mode 100644
index 000000000..cc8f6d4eb
--- /dev/null
+++ b/dashboard/Prox_BM_L3FWD-4Port-1544192654086.json
@@ -0,0 +1,13098 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.6.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "text",
+ "name": "Text",
+ "version": ""
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": "5s",
+ "rows": [
+ {
+ "collapse": false,
+ "height": -6,
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 32px '#31A7D3'\"><center>OPNFV_Yardstick_NSB_PROX_BM_L3FWD_4Port_Test</center> </a></h5>\n<center>\n<p>\n<p style=\"font: 24px '#FF5733'\"> \nThe application performs routing of packets with LPM based look-up method.\nThe KPI is the number of packets per second for a specified packet size with an accepted minimal packet loss \n</a>\n</p>\n</center>",
+ "editable": true,
+ "error": false,
+ "height": "200px",
+ "id": 3,
+ "links": [],
+ "mode": "html",
+ "span": 8,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"font: 28px '#31A7D3'\"><center>Test Parameters</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "90px",
+ "id": 124,
+ "links": [],
+ "mode": "html",
+ "span": 4,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 125,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.duration"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Interval",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 126,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.test_precision"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Precision",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 127,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.test_duration"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Duration",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 128,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.tolerated_loss"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Tolerated Loss",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "300",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "fill": 1,
+ "height": "300px",
+ "id": 123,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sort": null,
+ "sortDesc": null,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Cumulative Packets Sents",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "line": true,
+ "lineColor": "rgba(0, 0, 0, 0)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgb(234, 112, 112, 0.22)",
+ "line": true,
+ "lineColor": "rgba(0, 0, 0, 0.01)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Cumulative Load Sent by Generator",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "Cumulative Load Sent by Generator",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "60",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Throughput</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 7,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 2,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Load Requested to Generator",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RequestedTxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Load Generated (by the Generator)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.TxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Load Received (by the Generator)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Generator Stats: Average Throughout per step",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 5,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Packet Size",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packet size",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "none",
+ "label": "Packet Size (Bytes)",
+ "logBase": 2,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 169,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 206,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "TG xe-0 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.out_packets\") / 1000000 FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe0.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.live_stats.xe1.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe1.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe2.out_packets\") / 1000000 FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe2.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe3.out_packets\") / 1000000 FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe3.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Sent by Generator per second and per interface",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 207,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG xe-0 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.in_packets\") / 1000000 FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe0.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.live_stats.xe1.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe1.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.live_stats.xe2.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe2.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.live_stats.xe3.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe3.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Received by Generator per second and per interface",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300",
+ "id": 4,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "sortDesc": false,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 1,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "SUT Packets Received",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.curr_packets_in"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT Stats - Load Received By SUT",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 39,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 1,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "SUT Packets Sent",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.curr_packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT Stats - Load Forwarded By SUT",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Generator Stats: Packets per Step</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 8,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 43,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "TG xe-0 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe1.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe2.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe2.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe3.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe3.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Sent by Generator per Step",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Step",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 9,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG xe-0 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe1.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe2.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe2.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe3.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe3.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Received by Generator per Step",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Step",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "400px",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 10,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sort": null,
+ "sortDesc": null,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "SUCCESS Tx Total",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"tg__0.collect_stats.tx_total\" FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.tx_total\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.tx_total"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ },
+ {
+ "alias": "SUCCESS Rx Total",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.rx_total"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ },
+ {
+ "alias": "SUCCESS ALLOWABLE LOST PACKETS",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.can_be_lost"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUCCESS CRITERIA: TX Total = Rx Total + Tolerated Loss",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 129,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "MAX Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"tg__0.collect_stats.tx_total\" FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.tx_total\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.MAX_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "MIN Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.MIN_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Current Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Test_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Line Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": "Percentage of Line Rate",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Performance Stats</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "30",
+ "id": 130,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 81,
+ "panels": [
+ {
+ "content": "<font size=\"1\"><center>Packet size</center></font>",
+ "height": "100px",
+ "id": 15,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Theoretical Max Throughput (MPPS)</center></font>",
+ "height": "100px",
+ "id": 16,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tx Throughput (MPPS)</center></font>",
+ "height": "100px",
+ "id": 17,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Rx Throughput (MPPS)</center></font>",
+ "height": "100px",
+ "id": 58,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tot Sent </center></font>",
+ "height": "100px",
+ "id": 61,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tot Received</center></font>",
+ "height": "100px",
+ "id": 62,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tot Dropped</center></font>",
+ "height": "100px",
+ "id": 63,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tolerated Loss</center></font>",
+ "height": "100px",
+ "id": 64,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Rx Throughput (Gbps)</center></font>",
+ "height": "100px",
+ "id": 131,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 132,
+ "links": [],
+ "mode": "html",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 133,
+ "links": [],
+ "mode": "html",
+ "span": 0,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 134,
+ "links": [],
+ "mode": "html",
+ "span": 0,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": -913,
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 18,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 19,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RequestedTxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 20,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 69,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 70,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 71,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 72,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 73,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 82,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 135,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 136,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 137,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 138,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 139,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 140,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 141,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 142,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 143,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 144,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 145,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 146,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 147,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 148,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 149,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 150,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 151,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 152,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 153,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 154,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 155,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 156,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 157,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 158,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 159,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 160,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 161,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 162,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 163,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 164,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 165,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 166,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 167,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 168,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 169,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 170,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 171,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 172,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 173,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 174,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 175,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 176,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 177,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 178,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 179,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 180,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 181,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 182,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 183,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 184,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 185,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 186,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 187,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 188,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 189,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 190,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 191,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 192,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 193,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 194,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 195,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 196,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 197,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 198,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 199,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 200,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 201,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 202,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 203,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 204,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "30%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 205,
+ "links": [],
+ "mode": "markdown",
+ "span": 3,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h3"
+ },
+ {
+ "collapse": false,
+ "height": "40px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Latency</center> </a></h5>",
+ "height": "40",
+ "id": 41,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 47,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe0 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe0 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe0 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 48,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe1 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe1 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe1 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 49,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe2 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe2 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe2 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 50,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe3 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe3 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe3 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "40px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>CPU Utilization</center> </a></h5>",
+ "height": "40px",
+ "id": 51,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": -77,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "600px",
+ "id": 52,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 0 Utilization",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.0.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 1 Utilization - Gen XE0",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.1.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 2 Utilization - Gen XE1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.2.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 3 Utilization - Gen XE2",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.3.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 4 Utilization - Gen XE3",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.4.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 5 Utilization - Latency XE0",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.5.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 6 Utilization - Latency XE1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.6.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 7 Utilization - Latency XE2",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.7.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 8 Utilization - Latency XE3",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.8.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 8 Utilization - Idle",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg_0.yardstick.core.cpu.9.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Traffic Generator CPU Utilization",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "600px",
+ "id": 53,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 0 Utilization",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.0.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 1 Utilization - RX XE0 - Routing XE0 and XE1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.1.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 2 Utilization - RX XE1 - Routing XE0 and XE1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.2.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 3 Utilization - RX XE2 - Routing XE2 and XE3",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.3.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 4 Utilization - RX XE3 - Routing XE2 and XE3",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.4.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 5 Utilization - Idle",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.5.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 6 Utilization - Idle",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.6.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 7 Utilization - Idle",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.7.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 8 Utilization - Idle",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf_0.yardstick.core.cpu.8.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "VNF CPU Utilization",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "yardstick",
+ "NSB",
+ "Prox",
+ "L3fwd",
+ "4Port",
+ "BM"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-3h",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "Prox_BM_L3FWD-4Port",
+ "version": 9
+} \ No newline at end of file
diff --git a/dashboard/Prox_BM_vPE-4Port-1507804058631.json b/dashboard/Prox_BM_vPE-4Port-1507804058631.json
deleted file mode 100644
index 52afcaed3..000000000
--- a/dashboard/Prox_BM_vPE-4Port-1507804058631.json
+++ /dev/null
@@ -1,1163 +0,0 @@
-{
- "__inputs": [
- {
- "name": "DS_YARDSTICK",
- "label": "yardstick",
- "description": "",
- "type": "datasource",
- "pluginId": "influxdb",
- "pluginName": "InfluxDB"
- }
- ],
- "__requires": [
- {
- "type": "grafana",
- "id": "grafana",
- "name": "Grafana",
- "version": "4.4.3"
- },
- {
- "type": "panel",
- "id": "graph",
- "name": "Graph",
- "version": ""
- },
- {
- "type": "datasource",
- "id": "influxdb",
- "name": "InfluxDB",
- "version": "1.0.0"
- },
- {
- "type": "panel",
- "id": "text",
- "name": "Text",
- "version": ""
- }
- ],
- "annotations": {
- "list": []
- },
- "editable": true,
- "gnetId": null,
- "graphTooltip": 0,
- "hideControls": false,
- "id": null,
- "links": [],
- "refresh": false,
- "rows": [
- {
- "collapse": false,
- "height": "100px",
- "panels": [
- {
- "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 32px '#31A7D3'\"><center>OPNFV_Yardstick_NSB_PROX_BM_vPE_4Port_Test</center> </a></h5>\n<center>\n<p>The vPE handles packet processing, routing, QinQ encapsulation, flows, ACL rules, adds/removes MPLS tags and performs QoS </p>\n<p>The KPI is the number of packets per second for a specified packet size (min packet size is 68 byte) with an accepted minimal packet loss</p>\n</center>",
- "editable": true,
- "error": false,
- "id": 3,
- "links": [],
- "mode": "html",
- "span": 12,
- "title": "",
- "type": "text"
- },
- {
- "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Prox vPE VNF stats</center> </a></h5>\n",
- "editable": true,
- "error": false,
- "height": "40",
- "id": 7,
- "links": [],
- "mode": "html",
- "span": 12,
- "title": "",
- "type": "text"
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "Row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "300px",
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "height": "300",
- "id": 4,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 1,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 12,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "VNF packets Forward",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "vnf__0.packets_fwd"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "VNF packets in",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "vnf__0.packets_in"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "VNF packets dropped",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "vnf__0.packets_dropped"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "vPE VNF stats",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Packets",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Prox vPE Traffic Gen stats</center> </a></h5>\n",
- "editable": true,
- "error": false,
- "height": "40",
- "id": 8,
- "links": [],
- "mode": "html",
- "span": 12,
- "title": "",
- "type": "text"
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "300px",
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 6,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TG xe-0 Out packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe0.out_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-1 Out packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe1.out_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-2 Out packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe2.out_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-3 Out packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "D",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe3.out_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "TG Port Stats: Out packets",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Packets ",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 9,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TG xe-0 in packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe0.in_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-1 in packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe1.in_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-2 in packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe2.in_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "TG xe-3 in packets",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "D",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.xe3.in_packets"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "TG Port Stats: In packets",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Packets ",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "250px",
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 2,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "TX Throughput",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.TxThroughput"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- },
- {
- "alias": "RX Throughput",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.RxThroughput"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "TG Tx vs Rx Throughput",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Throughput in MPPS",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "id": 5,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "Packet Size",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "tc_prox_baremetal_vpe-4",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tg__0.PktSize"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 2
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 2
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "Packet size",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "bytes",
- "label": "Packet Size",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": "250px",
- "panels": [],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- }
- ],
- "schemaVersion": 14,
- "style": "dark",
- "tags": [
- "yardstick",
- "NSB",
- "Prox",
- "4Port",
- "BM",
- "vPE"
- ],
- "templating": {
- "list": []
- },
- "time": {
- "from": "2017-10-09T11:05:30.701Z",
- "to": "2017-10-09T11:11:21.952Z"
- },
- "timepicker": {
- "refresh_intervals": [
- "5s",
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ],
- "time_options": [
- "5m",
- "15m",
- "1h",
- "6h",
- "12h",
- "24h",
- "2d",
- "7d",
- "30d"
- ]
- },
- "timezone": "browser",
- "title": "Prox_BM_vPE-4Port",
- "version": 10
-} \ No newline at end of file
diff --git a/dashboard/Prox_BM_vpe-4Port-1529345833067.json b/dashboard/Prox_BM_vpe-4Port-1529345833067.json
new file mode 100644
index 000000000..6ef11e4f8
--- /dev/null
+++ b/dashboard/Prox_BM_vpe-4Port-1529345833067.json
@@ -0,0 +1,10152 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.4.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "text",
+ "name": "Text",
+ "version": ""
+ }
+ ],
+ "annotations": {
+ "list": []
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": false,
+ "rows": [
+ {
+ "collapse": false,
+ "height": "100px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 32px '#31A7D3'\"><center>OPNFV_Yardstick_NSB_PROX_BM_vPE_4Port_Test</center> </a></h5>\n<center>\n<p>The application does Port forwarding without touching packets. It will take packets in from one port and forward them unmodified to another port </p>\n<p>The KPI is the number of packets per second for a specified packet size with an accepted minimal packet loss </p>\n</center>",
+ "editable": true,
+ "error": false,
+ "id": 3,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 362,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "fill": 1,
+ "id": 123,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Cumulative Packets Sents",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "line": true,
+ "lineColor": "rgba(0, 0, 0, 0)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgb(234, 112, 112, 0.22)",
+ "line": true,
+ "lineColor": "rgba(0, 0, 0, 0.01)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Cumulative Load Sent by Generator",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Cumulative Load Sent by Generator",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 331,
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Throughput</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 7,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "id": 2,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Load Requested to Generator",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.RequestedTxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Load Generated (by the Generator)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.TxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Load Received (by the Generator)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Generator stats",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "id": 5,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sort": "min",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Packet Size",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "MAX Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.MAX_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "MIN Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.MIN_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Test Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Test_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packet size & Percent of Line Rate",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "none",
+ "label": "Packet Size (Bytes)",
+ "logBase": 2,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 288,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300",
+ "id": 4,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 1,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "SUT Packets Received",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.curr_packets_in"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT Stats - Load Received By SUT",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300",
+ "id": 39,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 1,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "SUT Packets Sent",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.curr_packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT Stats - Load Forwarded By SUT",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 289,
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Prox VPE Traffic Gen stats</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 8,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "id": 43,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "TG xe-0 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.xe0.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.xe1.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.xe2.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.xe3.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Sent by Generator",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets ",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "id": 9,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG xe-0 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.xe0.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.xe1.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.xe2.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.xe3.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Received by Generator",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "250px",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 10,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "SUCCESS Tx Total",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_tx_total"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "SUCCESS Rx Total",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_rx_total"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "SUCCESS ALLOWABLE LOST PACKETS",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_can_be_lost"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUCCESS CRITERIA: TX Total = Rx Total + Tolerated Loss",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "35",
+ "id": 12,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.duration"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Interval",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30",
+ "id": 11,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Test Duration",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.test_duration"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Duration",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30",
+ "id": 13,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Test Precision",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.test_precision"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Precision",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30",
+ "id": 14,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tolerated Loss",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.tolerated_loss"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Tolerated Loss",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": -153,
+ "panels": [
+ {
+ "content": "<center>Packet size</center>",
+ "height": "30px",
+ "id": 15,
+ "links": [],
+ "mode": "html",
+ "span": 2,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<center>Theoretical Max Throughput (MPPS)</center>",
+ "height": "30px",
+ "id": 16,
+ "links": [],
+ "mode": "html",
+ "span": 2,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<center>Tx Throughput (MPPS)</center>",
+ "height": "30px",
+ "id": 17,
+ "links": [],
+ "mode": "html",
+ "span": 2,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<center>Rx Throughput (MPPS)</center>",
+ "height": "30px",
+ "id": 58,
+ "links": [],
+ "mode": "html",
+ "span": 2,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<center>Tot Sent </center>",
+ "height": "40px",
+ "id": 61,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<center>Tot Received</center>",
+ "height": "30px",
+ "id": 62,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<center>Tot Dropped</center>",
+ "height": "30px",
+ "id": 63,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<center>Tot Can be Lost</center>",
+ "height": "30px",
+ "id": 64,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": -224,
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "hideTimeOverride": false,
+ "id": 18,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theoretical Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.Success_PktSize\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 68 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "hideTimeOverride": false,
+ "id": 19,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.theor_max_throughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 68 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 20,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_TxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 68 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 69,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_RxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 68 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 70,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_tx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 68 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 71,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_rx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 68 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 72,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_drop_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 68 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 73,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_can_be_lost\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 68 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 74,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theoretical Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.Success_PktSize\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 128 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 75,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Result_pktSize\" = 128 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 76,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_TxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 128 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 77,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_RxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 128 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 78,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_tx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 128 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 79,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_rx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 128 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 80,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_drop_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 128 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 81,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_can_be_lost\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 128 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 82,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theoretical Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.Success_PktSize\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 256 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 83,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Result_pktSize\" = 256 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 84,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_TxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 256 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 85,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_RxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 256 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 86,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_tx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 256 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 87,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_rx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 256 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 88,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_drop_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 256 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 89,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_can_be_lost\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 256 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 90,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theoretical Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.Success_PktSize\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 512 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 91,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Result_pktSize\" = 512 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 92,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_TxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 512 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 93,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_RxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 512 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 94,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_tx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 512 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 95,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_rx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 512 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 96,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_drop_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 512 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 97,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_can_be_lost\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 512 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 98,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theoretical Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.Success_PktSize\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1024 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 99,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Result_pktSize\" = 1024 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 100,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_TxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1024 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 101,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_RxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1024 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 102,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_tx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1024 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 103,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_rx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1024 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 104,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_drop_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1024 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 105,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_can_be_lost\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1024 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 106,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theoretical Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.Success_PktSize\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1280 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 107,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Result_pktSize\" = 1280 AND $timeFilter AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 108,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_TxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1280 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 109,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_RxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1280 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 110,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_tx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1280 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 111,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_rx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1280 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 112,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_drop_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1280 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 113,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_can_be_lost\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1280 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 114,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theoretical Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.Success_PktSize\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1518 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 115,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Max Throughput (Mpps)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Result_pktSize\" = 1518 AND $timeFilter AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "sum"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ },
+ {
+ "op": "=",
+ "text": "",
+ "value": ""
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 116,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_TxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1518 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 117,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_RxThroughput\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1518 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 118,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_tx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1518 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 119,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_rx_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1518 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 120,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_drop_total\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1518 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "30px",
+ "id": 121,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.Success_can_be_lost\") FROM \"tc_prox_baremetal_vpe-4\" WHERE \"tg__0.Success_PktSize\" = 1518 AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h3"
+ },
+ {
+ "collapse": false,
+ "height": "40px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Latency</center> </a></h5>",
+ "height": "40",
+ "id": 41,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 47,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe0 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.LatencyAvg.9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe0 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.LatencyMax.9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe0 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 48,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe1 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.LatencyAvg.10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe1 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.LatencyMax.10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe1 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 49,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe2 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.LatencyAvg.11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe2 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.LatencyMax.11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe2 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 50,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe3 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.LatencyAvg.12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe3 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.LatencyMax.12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe3 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "40px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>SUT CPU Utilization</center> </a></h5>",
+ "height": "40px",
+ "id": 51,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 5,
+ "fill": 1,
+ "height": "900px",
+ "id": 53,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sort": "avg",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU 0 - Master",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.0.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 1 - RX:inet0 - lbnetwork",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.1.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 2 - RX:inet1 - lbnetwork",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.2.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 3 - RX:cpe0 - lbnetwork",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"vnf__0.collect_stats.core.cpu.3.percent-user\") FROM \"tc_prox_baremetal_vpe-4\" WHERE $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.3.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 4 - RX:cpe1 - lbnetwork",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"vnf__0.collect_stats.core.cpu.4.percent-user\") FROM \"tc_prox_baremetal_vpe-4\" WHERE $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": false,
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.4.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 5 - TX:cpe0 - QoS",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.5.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 6 - TX:inet0",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.6.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 7 - TX:cpe1 - QoS",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.7.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 8 - TX:inet1",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.8.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 9 - Worker Downstream - qinqencapv4",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.9.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 10 - Worker Downstream - qinqencapv4",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.10.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 11 - Worker Downstream - qinqencapv4",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.11.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 12 - Worker Downstream - qinqencapv4",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.12.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 13 - Worker Upstream - acl, police, untag and routing",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.13.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 14 - Worker Upstream - acl, police, untag and routing",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.14.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 15 - Worker Upstream - acl, police, untag and routing",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.15.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "CPU 16 - Worker Upstream - acl, police, untag and routing",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_vpe-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.cpu.17.percent-user"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT CPU Utilization",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% Utilization",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "yardstick",
+ "NSB",
+ "Prox",
+ "vpe",
+ "4Port",
+ "BM"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "2018-06-18T16:42:35.488Z",
+ "to": "2018-06-18T17:57:41.922Z"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "Prox_BM_vpe-4Port",
+ "version": 7
+} \ No newline at end of file
diff --git a/dashboard/Prox_Baremetal_L3FWD-4Port_NFVi-1540906828739.json b/dashboard/Prox_Baremetal_L3FWD-4Port_NFVi-1540906828739.json
new file mode 100644
index 000000000..53d8cc2c2
--- /dev/null
+++ b/dashboard/Prox_Baremetal_L3FWD-4Port_NFVi-1540906828739.json
@@ -0,0 +1,13889 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ },
+ {
+ "name": "DS_COLLECTD",
+ "label": "collectd",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "panel",
+ "id": "blackmirror1-singlestat-math-panel",
+ "name": "Singlestat Math",
+ "version": "1.1.5"
+ },
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.6.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "text",
+ "name": "Text",
+ "version": ""
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": false,
+ "rows": [
+ {
+ "collapse": false,
+ "height": -6,
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 32px '#31A7D3'\"><center>OPNFV_Yardstick_NSB_PROX_Baremetal_L3FWD_4Port_Test</center> </a></h5>\n<center>\n<p>\n<p style=\"font: 24px '#FF5733'\"> \nThe application does Port forwarding without touching packets. It will take packets in from one port and forward them unmodified to another port \nThe KPI is the number of packets per second for a specified packet size with an accepted minimal packet loss\n</a>\n</p>\n</center>",
+ "editable": true,
+ "error": false,
+ "height": "200px",
+ "id": 3,
+ "links": [],
+ "mode": "html",
+ "span": 8,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"font: 28px '#31A7D3'\"><center>Test Parameters</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "90px",
+ "id": 124,
+ "links": [],
+ "mode": "html",
+ "span": 4,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 125,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.duration"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Interval",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 126,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.test_precision"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Precision",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 127,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.test_duration"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Test Duration",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 128,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.tolerated_loss"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "Tolerated Loss",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "300",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "fill": 1,
+ "height": "300px",
+ "id": 123,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Cumulative Packets Sents",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "#3f2b5b",
+ "line": true,
+ "lineColor": "rgba(0, 0, 0, 0)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Cumulative Load Sent by Generator",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "Cumulative Load Sent by Generator",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "60",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Throughput</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 7,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 2,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Load Requested to Generator",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RequestedTxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Load Generated (by the Generator)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.TxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Load Received (by the Generator)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Generator stats",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 5,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Packet Size",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packet size",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "none",
+ "label": "Packet Size (Bytes)",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 169,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300",
+ "id": 4,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 1,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "SUT Packets Received",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.curr_packets_in"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT Stats - Load Received By SUT",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 39,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 1,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "SUT Packets Sent",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.curr_packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT Stats - Load Forwarded By SUT",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Prox L3Fwd Traffic Gen stats</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "40",
+ "id": 8,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 43,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "TG xe-0 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe1.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe2.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": true,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe2.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe3.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": true,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe3.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Sent by Generator",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets ",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 9,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG xe-0 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe1.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe2.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": true,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe2.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 in packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe3.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": true,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe3.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Received by Generator",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "400px",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 10,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sort": null,
+ "sortDesc": null,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "SUCCESS Tx Total",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"tg__0.collect_stats.tx_total\" FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.tx_total\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.tx_total"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ },
+ {
+ "alias": "SUCCESS Rx Total",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.rx_total"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ },
+ {
+ "alias": "SUCCESS ALLOWABLE LOST PACKETS",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.can_be_lost"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgb(9, 35, 61)",
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUCCESS CRITERIA: TX Total = Rx Total + Tolerated Loss",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 129,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "MAX Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"tg__0.collect_stats.tx_total\" FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.tx_total\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.MAX_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "MIN Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.MIN_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Current Line Rate",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Test_Rate"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgb(9, 35, 61)",
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Line Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": "Percentage of Line Rate",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Performance Stats</center> </a></h5>\n",
+ "editable": true,
+ "error": false,
+ "height": "30",
+ "id": 130,
+ "links": [],
+ "minSpan": 12,
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 77,
+ "panels": [
+ {
+ "content": "<font size=\"1\"><center>Packet size</center></font>",
+ "height": "100px",
+ "id": 15,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Theoretical Max Throughput (MPPS)</center></font>",
+ "height": "100px",
+ "id": 16,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tx Throughput (MPPS)</center></font>",
+ "height": "100px",
+ "id": 17,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Rx Throughput (MPPS)</center></font>",
+ "height": "100px",
+ "id": 58,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tot Sent </center></font>",
+ "height": "100px",
+ "id": 61,
+ "links": [],
+ "mode": "html",
+ "span": 2,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tot Received</center></font>",
+ "height": "100px",
+ "id": 62,
+ "links": [],
+ "mode": "html",
+ "span": 2,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tot Dropped</center></font>",
+ "height": "100px",
+ "id": 63,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Tolerated Loss</center></font>",
+ "height": "100px",
+ "id": 64,
+ "links": [],
+ "mode": "html",
+ "span": 1,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<font size=\"1\"><center>Rx Throughput (Gbps)</center></font>",
+ "height": "100px",
+ "id": 131,
+ "links": [],
+ "mode": "html",
+ "span": 2,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 133,
+ "links": [],
+ "mode": "html",
+ "span": 0,
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "",
+ "height": "100px",
+ "id": 134,
+ "links": [],
+ "mode": "html",
+ "span": 0,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": -551,
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 18,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 19,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 20,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 69,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 70,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 71,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 72,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 73,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 82,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 64",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 136,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 137,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 138,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 139,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 140,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 141,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 142,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 143,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 144,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 128",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 146,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 147,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 148,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 149,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 150,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 151,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 152,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 153,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 154,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 256",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 156,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 157,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 158,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 159,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 160,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 161,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 162,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 163,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 164,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 512",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 166,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 167,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 168,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 169,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 170,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 171,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 172,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 173,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 174,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 1024",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 176,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 177,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 178,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 179,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 180,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 181,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 182,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 183,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 184,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 186,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 187,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 1280",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 188,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 189,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 190,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 191,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 192,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 193,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 194,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 1518",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 196,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "PktSize = 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Result"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "hideTimeOverride": false,
+ "id": 197,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Theor Max Throughput (Mpps) 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.theor_max_throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 198,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "TxThroughput 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.TxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 199,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "last",
+ "targets": [
+ {
+ "alias": "RxThroughput 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.pktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 200,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Tot Sent 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 201,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Tottal 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 202,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "drop total 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.drop_total\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 0,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 203,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Can be lost 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.Success_Throughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "100px",
+ "id": 204,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "Rx Throughput Gbps 2048",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"tg__0.collect_stats.RxThroughput_gbps\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 2048 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "tg__0.PktSize",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h3"
+ },
+ {
+ "collapse": false,
+ "height": "40px",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Latency</center> </a></h5>",
+ "height": "40",
+ "id": 41,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 47,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe0 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe0 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe0 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 48,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe1 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe1 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe1 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 49,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe2 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe2 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe2 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "height": "300px",
+ "id": 50,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "xe3 Latency Avg",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyAvg.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "xe3 Latency Max",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.LatencyMax.8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "xe3 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": -833,
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>NFVi metrics from Platform</center> </a></h5>",
+ "height": "40",
+ "id": 221,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 188,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 222,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU Freq Core $tag_type_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "type"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "type_instance"
+ ],
+ "type": "tag"
+ }
+ ],
+ "hide": false,
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$tg_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "ok",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Traffic Generator: CPU Core Frequency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "hertz",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 224,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU Idle % Core $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "type_instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ }
+ ],
+ "hide": false,
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$tg_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "idle"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "ok",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Tarffic Generator: CPU Core Idle %",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 225,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU Util % Core $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "type_instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ }
+ ],
+ "hide": false,
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$tg_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "ok",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Traffic Generator - CPU Core Utlization %",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 213,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU Freq Core $tag_type_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "type"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "type_instance"
+ ],
+ "type": "tag"
+ }
+ ],
+ "hide": false,
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "ok",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT - CPU Core Frequency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "hertz",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 218,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU Idle % Core $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "type_instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ }
+ ],
+ "hide": false,
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "idle"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "ok",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT - CPU Core Idle %",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 219,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU Util % Core $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "type_instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ }
+ ],
+ "hide": false,
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "ok",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT - CPU Core Utlization %",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "cacheTimeout": null,
+ "circleBackground": false,
+ "colorBackground": true,
+ "colorValue": false,
+ "datasource": "${DS_COLLECTD}",
+ "decimals": 3,
+ "defaultColor": "rgb(117, 117, 117)",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 226,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "math": "CPU_INST/CPU_CYCLES",
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sortOrder": "asc",
+ "sortOrderOptions": [
+ {
+ "text": "Ascending",
+ "value": "asc"
+ },
+ {
+ "text": "Descending",
+ "value": "desc"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "CPU_INST",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions"
+ }
+ ]
+ },
+ {
+ "alias": "CPU_CYCLES",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "cpu-cycles"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "color": "#2f575e"
+ }
+ ],
+ "title": "IPC from the SUT",
+ "type": "blackmirror1-singlestat-math-panel",
+ "valueFontSize": "80%",
+ "valueMappingColorBackground": "#787879",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "No data",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 206,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 5,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"value\") FROM \"intel_pmu_value\" WHERE (\"host\" = '00128F05-E0B0-E511-906E-0012795D96DD' AND \"type_instance\" = 'cpu-cycles') AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "cpu-cycles"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "warning",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Intel® PMU | SUT - CPU Cycles",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 207,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 5,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "warning",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Intel® PMU | SUT - CPU Instructions",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 208,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "cache-references"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "warning",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Intel® PMU | SUT - Cache references",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 209,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "cache-misses"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "warning",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Intel® PMU | SUT - Cache Misses",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 210,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "warning",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Intel® PMU | SUT - LLC Load Misses",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 211,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "CPU $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-store-misses"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "warning",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Intel® PMU | SUT - LLC Store Misses",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 276,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 212,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Memory Free",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "memory_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "free"
+ }
+ ]
+ },
+ {
+ "alias": "Memory Used",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "memory_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "used"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "critical",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "SUT - Platform Memory",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "decbits",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": -76,
+ "panels": [],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 216,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Memory BW Remote core $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "#052b51",
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Intel® RDT | SUT - Memory Bandwidth Local",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_COLLECTD}",
+ "fill": 1,
+ "id": 217,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Memory BW Remote core $tag_instance",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "instance"
+ ],
+ "type": "tag"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$sut_host$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "remote"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "#052b51",
+ "line": true,
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Intel® RDT | SUT - Memory Bandwidth Remote",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 199,
+ "panels": [],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "yardstick",
+ "NSB",
+ "Prox",
+ "L3Fwd",
+ "4Port",
+ "Heat",
+ "nfvi"
+ ],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "${DS_COLLECTD}",
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "sut_host",
+ "options": [],
+ "query": "SHOW TAG VALUES WITH KEY=host",
+ "refresh": 1,
+ "regex": "",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "${DS_COLLECTD}",
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "tg_host",
+ "options": [],
+ "query": "SHOW TAG VALUES WITH KEY=host",
+ "refresh": 1,
+ "regex": "",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
+ },
+ "time": {
+ "from": "2018-10-30T13:09:34.877Z",
+ "to": "2018-10-30T13:25:07.189Z"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "Prox_Baremetal_L3FWD-4Port_NFVi",
+ "version": 5
+} \ No newline at end of file
diff --git a/dashboard/RFC2544_2Port.json b/dashboard/RFC2544_2Port.json
new file mode 100644
index 000000000..de9448cee
--- /dev/null
+++ b/dashboard/RFC2544_2Port.json
@@ -0,0 +1,639 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.4.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "table",
+ "name": "Table",
+ "version": ""
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "datasource": "${DS_YARDSTICK}",
+ "enable": true,
+ "hide": false,
+ "iconColor": "rgb(248, 255, 0)",
+ "limit": 100,
+ "name": "status",
+ "query": "SELECT tg__0.collect_stats.Status FROM $test_name WHERE \"tg__0.collect_stats.Status\"='Success' AND task_id='$task_id'",
+ "showIn": 0,
+ "titleColumn": "Status",
+ "type": "alert"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": false,
+ "rows": [
+ {
+ "collapse": false,
+ "height": 200,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 0,
+ "hideTimeOverride": true,
+ "id": 3,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "$col",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"tg__0.collect_stats.xe0.InBytes\", \"tg__0.collect_stats.xe0.OutBytes\", \"tg__0.collect_stats.xe1.InBytes\", \"tg__0.collect_stats.xe1.OutBytes\" FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND $timeFilter",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.InBytes"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.OutBytes"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.InBytes"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.OutBytes"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Traffic bytes",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 303,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 1,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "$col",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Rate"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": "",
+ "logBase": 1,
+ "max": "100",
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 5,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "$col",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"vnf__0.collect_stats.core.memory.memory-free\", \"vnf__0.collect_stats.core.memory.memory-slab_recl\" FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND $timeFilter",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.memory.memory-free"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.memory.memory-slab_recl"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memmory",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "decbytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 255,
+ "panels": [
+ {
+ "columns": [],
+ "fontSize": "100%",
+ "id": 6,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": 0,
+ "desc": true
+ },
+ "span": 12,
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "Throughput",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "max",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "$col",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.RxThroughputBps\"), \"tg__0.collect_stats.DropPercentage\", \"tg__0.collect_stats.Iteration\", \"tg__0.collect_stats.PktSize\", \"tg__0.collect_stats.Rate\" FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND \"tg__0.collect_stats.Status\" = 'Success' AND $timeFilter",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughputBps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.DropPercentage"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Iteration"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Rate"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
+ }
+ ],
+ "title": "Throughput Best result",
+ "transform": "table",
+ "type": "table"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "${DS_YARDSTICK}",
+ "hide": 0,
+ "includeAll": false,
+ "label": "test_name",
+ "multi": false,
+ "name": "test_name",
+ "options": [],
+ "query": "SHOW MEASUREMENTS",
+ "refresh": 2,
+ "regex": "",
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "${DS_YARDSTICK}",
+ "hide": 0,
+ "includeAll": false,
+ "label": "task_id",
+ "multi": false,
+ "name": "task_id",
+ "options": [],
+ "query": "SHOW TAG VALUES FROM $test_name WITH KEY = \"task_id\" ",
+ "refresh": 2,
+ "regex": "",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
+ },
+ "time": {
+ "from": "2019-03-06T13:54:13.610Z",
+ "to": "2019-03-06T13:56:59.693Z"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "RFC2544",
+ "version": 4
+}
diff --git a/dashboard/RFC2544_2Port_Multiframesize.json b/dashboard/RFC2544_2Port_Multiframesize.json
new file mode 100644
index 000000000..2d8e9522f
--- /dev/null
+++ b/dashboard/RFC2544_2Port_Multiframesize.json
@@ -0,0 +1,908 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.4.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "datasource": "${DS_YARDSTICK}",
+ "enable": true,
+ "hide": false,
+ "iconColor": "rgb(248, 255, 0)",
+ "limit": 100,
+ "name": "status",
+ "query": "SELECT tg__0.collect_stats.Status FROM $test_name WHERE \"tg__0.collect_stats.Status\"='Success' AND task_id='$task_id'",
+ "showIn": 0,
+ "titleColumn": "Status",
+ "type": "alert"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": false,
+ "rows": [
+ {
+ "collapse": false,
+ "height": 200,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 0,
+ "hideTimeOverride": true,
+ "id": 3,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "$col",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"tg__0.collect_stats.xe0.InBytes\", \"tg__0.collect_stats.xe0.OutBytes\", \"tg__0.collect_stats.xe1.InBytes\", \"tg__0.collect_stats.xe1.OutBytes\" FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND \"tg__0.collect_stats.PktSize\" =~ /^$framesize$/ AND $timeFilter",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.InBytes"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.OutBytes"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.InBytes"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.OutBytes"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=~",
+ "value": "/^$framesize$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Traffic bytes",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 303,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 1,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "$col",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Rate"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=~",
+ "value": "/^$framesize$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "percent",
+ "label": "",
+ "logBase": 1,
+ "max": "100",
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 5,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "$col",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"vnf__0.collect_stats.core.memory.memory-free\", \"vnf__0.collect_stats.core.memory.memory-slab_recl\" FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND $timeFilter",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.memory.memory-free"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.core.memory.memory-slab_recl"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=~",
+ "value": "/^$framesize$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memmory",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "decbytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 255,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 4,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "64B",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"tg__0.collect_stats.RxThroughput\" FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND \"tg__0.collect_stats.PktSize\" =~ /^$framesize$/ AND $timeFilter ",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "64B"
+ }
+ ]
+ },
+ {
+ "alias": "128B",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.RxThroughput\") FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND \"tg__0.collect_stats.PktSize\" = '128B' AND $timeFilter",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "128B"
+ }
+ ]
+ },
+ {
+ "alias": "373B",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.RxThroughput\") FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND \"tg__0.collect_stats.PktSize\" = '128B' AND $timeFilter",
+ "rawQuery": false,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "373B"
+ }
+ ]
+ },
+ {
+ "alias": "512B",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.RxThroughput\") FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND \"tg__0.collect_stats.PktSize\" = '128B' AND $timeFilter",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "512B"
+ }
+ ]
+ },
+ {
+ "alias": "570B",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.RxThroughput\") FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND \"tg__0.collect_stats.PktSize\" = '128B' AND $timeFilter",
+ "rawQuery": false,
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "570B"
+ }
+ ]
+ },
+ {
+ "alias": "1400B",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "/^$test_name$/",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT max(\"tg__0.collect_stats.RxThroughput\") FROM /^$test_name$/ WHERE \"task_id\" =~ /^$task_id$/ AND \"tg__0.collect_stats.PktSize\" = '128B' AND $timeFilter",
+ "rawQuery": false,
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "max"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "task_id",
+ "operator": "=~",
+ "value": "/^$task_id$/"
+ },
+ {
+ "condition": "AND",
+ "key": "tg__0.collect_stats.PktSize",
+ "operator": "=",
+ "value": "1400B"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Throughput",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "max"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "${DS_YARDSTICK}",
+ "hide": 0,
+ "includeAll": false,
+ "label": "test_name",
+ "multi": false,
+ "name": "test_name",
+ "options": [],
+ "query": "SHOW MEASUREMENTS",
+ "refresh": 2,
+ "regex": "",
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "${DS_YARDSTICK}",
+ "hide": 0,
+ "includeAll": false,
+ "label": "task_id",
+ "multi": false,
+ "name": "task_id",
+ "options": [],
+ "query": "SHOW TAG VALUES FROM $test_name WITH KEY = \"task_id\" ",
+ "refresh": 2,
+ "regex": "",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {
+ "text": "64B + 128B + 512B",
+ "value": [
+ "64B",
+ "128B",
+ "512B"
+ ]
+ },
+ "hide": 0,
+ "includeAll": true,
+ "label": "framesize",
+ "multi": true,
+ "name": "framesize",
+ "options": [
+ {
+ "selected": false,
+ "text": "All",
+ "value": "$__all"
+ },
+ {
+ "selected": true,
+ "text": "64B",
+ "value": "64B"
+ },
+ {
+ "selected": true,
+ "text": "128B",
+ "value": "128B"
+ },
+ {
+ "selected": false,
+ "text": "256B",
+ "value": "256B"
+ },
+ {
+ "selected": false,
+ "text": "373B",
+ "value": "373B"
+ },
+ {
+ "selected": true,
+ "text": "512B",
+ "value": "512B"
+ },
+ {
+ "selected": false,
+ "text": "570B",
+ "value": "570B"
+ },
+ {
+ "selected": false,
+ "text": "1024B",
+ "value": "1024B"
+ },
+ {
+ "selected": false,
+ "text": "1280B",
+ "value": "1280B"
+ },
+ {
+ "selected": false,
+ "text": "1400B",
+ "value": "1400B"
+ },
+ {
+ "selected": false,
+ "text": "1500B",
+ "value": "1500B"
+ },
+ {
+ "selected": false,
+ "text": "1518B",
+ "value": "1518B"
+ }
+ ],
+ "query": "64B ,128B ,256B ,373B ,512B ,570B ,1024B ,1280B ,1400B ,1500B ,1518B",
+ "type": "custom"
+ }
+ ]
+ },
+ "time": {
+ "from": "2019-03-05T03:45:05.672Z",
+ "to": "2019-03-05T18:24:01.947Z"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "RFC2544 Multi framesize",
+ "version": 15
+}
diff --git a/dashboard/VPP_BM_HW_aesgcm.json b/dashboard/VPP_BM_HW_aesgcm.json
new file mode 100644
index 000000000..6118f1768
--- /dev/null
+++ b/dashboard/VPP_BM_HW_aesgcm.json
@@ -0,0 +1,2419 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_INFLUXDB",
+ "label": "InfluxDB",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "5.1.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": "5.0.0"
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "5.0.0"
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "id": null,
+ "links": [],
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "id": 8,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": true,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {}
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG XE0 Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.tx_throughput_bps\")+ mean(\"tg__0.collect_stats.xe0.rx_throughput_bps\") FROM \"tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex\" WHERE $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.tx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.rx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG XE1 Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe1.tx_throughput_bps\")+ mean(\"tg__0.collect_stats.xe1.rx_throughput_bps\") FROM \"tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex\" WHERE $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.tx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.rx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG Throughput",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "bps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 10
+ },
+ "id": 22,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "RX Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.rx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TX Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.tx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE0 Throughput",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "bps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 10
+ },
+ "id": 15,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "RX Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.rx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TX Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.tx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE1 Throughput",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "bps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 0,
+ "y": 18
+ },
+ "id": 2,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "In packets",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Out packets",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE0",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "packets",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 12,
+ "y": 18
+ },
+ "id": 13,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Out packets",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "In packets",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE1",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "packets",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 12,
+ "w": 12,
+ "x": 0,
+ "y": 28
+ },
+ "id": 10,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "VNF packets in",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.xe0.packets_in"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "VNF packets forward",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.xe0.packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "VNF packets dropped",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.xe0.packets_dropped"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "IPsec_node 0 stats: Packet In, Forward and Dropped",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "packets",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 12,
+ "w": 12,
+ "x": 12,
+ "y": 28
+ },
+ "id": 14,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "VNF packets in",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__1.collect_stats.xe1.packets_in"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "VNF packets forward",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__1.collect_stats.xe0.packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "VNF packets dropped",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__1.collect_stats.xe0.packets_dropped"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "IPsec_node 1 stats: Packet In, Forward and Dropped",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "packets",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "description": "",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 0,
+ "y": 40
+ },
+ "id": 18,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG NDR_LOWER Bandwidth(Gbps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_NDR_LOWER.bandwidth_total_Gbps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG NDR_UPPER Bandwidth(Gbps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_NDR_UPPER.bandwidth_total_Gbps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR_LOWER Bandwidth(Gbps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR_LOWER.bandwidth_total_Gbps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR_UPPER Bandwidth(Gbps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR_UPPER.bandwidth_total_Gbps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR Bandwidth(Gbps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR.bandwidth_total_Gbps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Bandwidth total",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Gbps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "description": "",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 12,
+ "y": 40
+ },
+ "id": 4,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG NDR_LOWER Rate(pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_NDR_LOWER.rate_total_pps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG NDR_UPPER Rate(pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_NDR_UPPER.rate_total_pps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR_LOWER Rate(pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR_LOWER.rate_total_pps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR_UPPER Rate(pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR_UPPER.rate_total_pps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR Rate(pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR.rate_total_pps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Rate total",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "pps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "description": "",
+ "fill": 1,
+ "gridPos": {
+ "h": 19,
+ "w": 12,
+ "x": 0,
+ "y": 50
+ },
+ "id": 20,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Latency Avg",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.latency.2.avg_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Latency Max",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.latency.2.max_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Latency Min",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.latency.2.min_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE0 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "µs",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "description": "",
+ "fill": 1,
+ "gridPos": {
+ "h": 19,
+ "w": 12,
+ "x": 12,
+ "y": 50
+ },
+ "id": 21,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Latency Avg",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.latency.1.avg_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Latency Max",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.latency.1.max_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Latency Min",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.latency.1.min_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE1 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "µs",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 0,
+ "y": 69
+ },
+ "id": 12,
+ "legend": {
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG Packet Size",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.packet_size"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packet Size",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bytes",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 12,
+ "y": 69
+ },
+ "id": 23,
+ "legend": {
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "No. flows",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.flow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Flow",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Connection",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [
+ "yardstick",
+ "NSB",
+ "VPP",
+ "IPSEC",
+ "BM",
+ "HW",
+ "2Port"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now/M",
+ "to": "now/M"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "VPP_BM_HW_aesgcm",
+ "uid": "-jsWYo0ik",
+ "version": 20
+} \ No newline at end of file
diff --git a/dashboard/VPP_BM_SW_aesgcm.json b/dashboard/VPP_BM_SW_aesgcm.json
new file mode 100644
index 000000000..1fc0b6731
--- /dev/null
+++ b/dashboard/VPP_BM_SW_aesgcm.json
@@ -0,0 +1,2419 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_INFLUXDB",
+ "label": "InfluxDB",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "5.1.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": "5.0.0"
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "5.0.0"
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "id": null,
+ "links": [],
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "id": 8,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": true,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {}
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG XE0 Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.tx_throughput_bps\")+ mean(\"tg__0.collect_stats.xe0.rx_throughput_bps\") FROM \"tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex\" WHERE $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.tx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.rx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG XE1 Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe1.tx_throughput_bps\")+ mean(\"tg__0.collect_stats.xe1.rx_throughput_bps\") FROM \"tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex\" WHERE $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.tx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ],
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.rx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG Throughput",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "bps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 10
+ },
+ "id": 22,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "RX Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.rx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TX Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.tx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE0 Throughput",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "bps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 10
+ },
+ "id": 15,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "RX Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.rx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TX Throughput",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.tx_throughput_bps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE1 Throughput",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "bps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 0,
+ "y": 18
+ },
+ "id": 2,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "In packets",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Out packets",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE0",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "packets",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 12,
+ "y": 18
+ },
+ "id": 13,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Out packets",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "In packets",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.in_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE1",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "packets",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 12,
+ "w": 12,
+ "x": 0,
+ "y": 28
+ },
+ "id": 10,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "VNF packets in",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.xe0.packets_in"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "VNF packets forward",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.xe0.packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "VNF packets dropped",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__0.collect_stats.xe0.packets_dropped"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "IPsec_node 0 stats: Packet In, Forward and Dropped",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "packets",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 12,
+ "w": 12,
+ "x": 12,
+ "y": 28
+ },
+ "id": 14,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "VNF packets in",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__1.collect_stats.xe1.packets_in"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "VNF packets forward",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__1.collect_stats.xe0.packets_fwd"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "VNF packets dropped",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "vnf__1.collect_stats.xe0.packets_dropped"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "IPsec_node 1 stats: Packet In, Forward and Dropped",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "packets",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "description": "",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 0,
+ "y": 40
+ },
+ "id": 18,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG NDR_LOWER Bandwidth(Gbps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_NDR_LOWER.bandwidth_total_Gbps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG NDR_UPPER Bandwidth(Gbps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_NDR_UPPER.bandwidth_total_Gbps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR_LOWER Bandwidth(Gbps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR_LOWER.bandwidth_total_Gbps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR_UPPER Bandwidth(Gbps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR_UPPER.bandwidth_total_Gbps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR Bandwidth(Gbps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR.bandwidth_total_Gbps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Bandwidth total",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Gbps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "description": "",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 12,
+ "y": 40
+ },
+ "id": 4,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG NDR_LOWER Rate(pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_NDR_LOWER.rate_total_pps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG NDR_UPPER Rate(pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_NDR_UPPER.rate_total_pps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR_LOWER Rate(pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR_LOWER.rate_total_pps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR_UPPER Rate(pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR_UPPER.rate_total_pps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG PDR Rate(pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.Result_PDR.rate_total_pps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Rate total",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "pps",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "description": "",
+ "fill": 1,
+ "gridPos": {
+ "h": 19,
+ "w": 12,
+ "x": 0,
+ "y": 50
+ },
+ "id": 20,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Latency Avg",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.latency.2.avg_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Latency Max",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.latency.2.max_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Latency Min",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe0.latency.2.min_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE0 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "µs",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "description": "",
+ "fill": 1,
+ "gridPos": {
+ "h": 19,
+ "w": 12,
+ "x": 12,
+ "y": 50
+ },
+ "id": 21,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": true,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Latency Avg",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.latency.1.avg_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Latency Max",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.latency.1.max_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Latency Min",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.xe1.latency.1.min_latency"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TG XE1 Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "µs",
+ "label": "usec",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 0,
+ "y": 69
+ },
+ "id": 12,
+ "legend": {
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TG Packet Size",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.packet_size"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packet Size",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bytes",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_INFLUXDB}",
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 12,
+ "y": 69
+ },
+ "id": 23,
+ "legend": {
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "No. flows",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "none"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.flow"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Flow",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Connection",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [
+ "yardstick",
+ "NSB",
+ "VPP",
+ "IPSEC",
+ "BM",
+ "SW",
+ "2Port"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "2018-12-03T05:01:44.822Z",
+ "to": "2018-12-03T05:23:30.789Z"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "VPP_BM_SW_aesgcm",
+ "uid": "-jsWYo0ik",
+ "version": 22
+} \ No newline at end of file
diff --git a/dashboard/Vims_Baremetal.json b/dashboard/Vims_Baremetal.json
new file mode 100644
index 000000000..9d4126997
--- /dev/null
+++ b/dashboard/Vims_Baremetal.json
@@ -0,0 +1,8895 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "5.2.4"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": "5.0.0"
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "5.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": "5.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "table",
+ "name": "Table",
+ "version": "5.0.0"
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "id": null,
+ "links": [],
+ "panels": [
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 0
+ },
+ "id": 25,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Requested_step5\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Requested_step6\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Requested_step7\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Request Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 20,
+ "y": 0
+ },
+ "id": 4,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "distinct",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_DOC"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "DOC",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 3
+ },
+ "id": 26,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "mappingType": 1,
+ "pattern": "Time",
+ "thresholds": [],
+ "type": "date",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Effective_step3\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Effective Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 24,
+ "x": 0,
+ "y": 6
+ },
+ "id": 7,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "tc_vims_baremetal_sipp.distinct",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Registration Rate",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Registration Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Registration Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Registration (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Registration Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Registration (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Registration Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 14
+ },
+ "id": 27,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Request Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 20,
+ "y": 14
+ },
+ "id": 20,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "distinct",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_DOC"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "DOC",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 17
+ },
+ "id": 35,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Effective Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 24,
+ "x": 0,
+ "y": 20
+ },
+ "id": 9,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "tc_vims_baremetal_sipp.distinct",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Registration Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Re-Registration Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Re-Registration Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Re-Registration (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Re-Registration Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Re-Registration (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Re-Registration Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 29
+ },
+ "id": 29,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Request Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 20,
+ "y": 29
+ },
+ "id": 21,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "distinct",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_DOC"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "DOC",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 32
+ },
+ "id": 36,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Effective Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 24,
+ "x": 0,
+ "y": 35
+ },
+ "id": 11,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "tc_vims_baremetal_sipp.distinct",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful De-Registration Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful De-Registration Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful De-Registration (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial De-Registration Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful De-Registration (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful De-Registration Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 43
+ },
+ "id": 31,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Request Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 20,
+ "y": 43
+ },
+ "id": 22,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "distinct",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_DOC"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "DOC",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 46
+ },
+ "id": 32,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Effective Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 24,
+ "x": 0,
+ "y": 49
+ },
+ "id": 13,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "tc_vims_baremetal_sipp.distinct",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Immediate Message Procedures Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Immediate Message Procedures Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Immediate Message Procedures (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Immediate Message Procedures (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Immediate Message Procedures Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 58
+ },
+ "id": 33,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Request Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 20,
+ "y": 58
+ },
+ "id": 23,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "distinct",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_DOC"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "DOC",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 61
+ },
+ "id": 37,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Effective Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 24,
+ "x": 0,
+ "y": 64
+ },
+ "id": 15,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "tc_vims_baremetal_sipp.distinct",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Call Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Call Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Call (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Call (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Call Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 13,
+ "x": 0,
+ "y": 73
+ },
+ "id": 16,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "Successful Sessions establishment 180 Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Sessions establishment 180 Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Sessions establishment 180 (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Sessions establishment 180 (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.sesr180"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Sessions Establishment 180 Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 11,
+ "x": 13,
+ "y": 73
+ },
+ "id": 19,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "Sessions Dropped 200 (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Sessions Dropped 200 (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.cdr200"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Sessions Dropped 200 Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 13,
+ "x": 0,
+ "y": 79
+ },
+ "id": 18,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "Sessions Dropped (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Sessions Dropped 180 (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Sessions Dropped 180 (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.cdr180"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Sessions Dropped 180 Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 11,
+ "x": 13,
+ "y": 79
+ },
+ "id": 17,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Sessions Establishment 200 (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Sessions Establishment 200 (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.sesr200"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Sessions Establishment 200 Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 13,
+ "x": 0,
+ "y": 85
+ },
+ "id": 38,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "Sessions Dropped (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Sessions Dropped 180 (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Rx (pps)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Tx (pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.TX_PPS"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Rx (pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.RX_PPS"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Throughput",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 11,
+ "x": 13,
+ "y": 85
+ },
+ "id": 39,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Sessions Establishment 200 (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Rx (bps)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Tx (bps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.TX_BPS"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Rx (bps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_baremetal_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.RX_BPS"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Bandwidth",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [
+ "Network"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "2018-10-16T05:02:37.418Z",
+ "to": "2018-10-16T06:11:08.890Z"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "tc_vims_baremetal_sipp",
+ "uid": "Fz3TxWtik",
+ "version": 13
+} \ No newline at end of file
diff --git a/dashboard/Vims_Heat.json b/dashboard/Vims_Heat.json
new file mode 100644
index 000000000..0d3573c5d
--- /dev/null
+++ b/dashboard/Vims_Heat.json
@@ -0,0 +1,8905 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "5.2.4"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": "5.0.0"
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "5.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": "5.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "table",
+ "name": "Table",
+ "version": "5.0.0"
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "id": null,
+ "links": [],
+ "panels": [
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 0
+ },
+ "id": 25,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Requested_step5\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Requested_step6\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Requested_step7\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Requested_step12\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Requested_step13\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Requested_step14\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Requested_step15\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Requested_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Request Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 20,
+ "y": 0
+ },
+ "id": 4,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "distinct",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_DOC"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "DOC",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 3
+ },
+ "id": 26,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "mappingType": 1,
+ "pattern": "Time",
+ "thresholds": [],
+ "type": "date",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Effective_step3\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"tg__0.reg_Effective_step13\") FROM \"tc_vims_baremetal_sipp\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_Effective_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Effective Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 24,
+ "x": 0,
+ "y": 6
+ },
+ "id": 7,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "tc_vims_baremetal_sipp.distinct",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Registration Rate",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Registration Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Registration Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Registration (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Registration Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Registration (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.reg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Registration Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 14
+ },
+ "id": 27,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Requested_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Request Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 20,
+ "y": 14
+ },
+ "id": 20,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "distinct",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_DOC"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "DOC",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 17
+ },
+ "id": 35,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_Effective_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Effective Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 24,
+ "x": 0,
+ "y": 20
+ },
+ "id": 9,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "tc_vims_baremetal_sipp.distinct",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Registration Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Re-Registration Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Re-Registration Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Re-Registration (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Re-Registration Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Re-Registration (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.rereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Re-Registration Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 29
+ },
+ "id": 29,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Requested_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Request Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 20,
+ "y": 29
+ },
+ "id": 21,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "distinct",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_DOC"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "DOC",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 32
+ },
+ "id": 36,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_Effective_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Effective Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 24,
+ "x": 0,
+ "y": 35
+ },
+ "id": 11,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "tc_vims_baremetal_sipp.distinct",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful De-Registration Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful De-Registration Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful De-Registration (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial De-Registration Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful De-Registration (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.dereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful De-Registration Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 43
+ },
+ "id": 31,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Requested_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Request Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 20,
+ "y": 43
+ },
+ "id": 22,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "distinct",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_DOC"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "DOC",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 46
+ },
+ "id": 32,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_Effective_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Effective Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 24,
+ "x": 0,
+ "y": 49
+ },
+ "id": 13,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "tc_vims_baremetal_sipp.distinct",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Immediate Message Procedures Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Immediate Message Procedures Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Immediate Message Procedures (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Immediate Message Procedures (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.msgc"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Immediate Message Procedures Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 58
+ },
+ "id": 33,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Requested_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Request Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "${DS_YARDSTICK}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 20,
+ "y": 58
+ },
+ "id": 23,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "distinct",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "table",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_DOC"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "DOC",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "columns": [],
+ "datasource": "${DS_YARDSTICK}",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 3,
+ "w": 20,
+ "x": 0,
+ "y": 61
+ },
+ "id": 37,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "alias": "Pre-Registration",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_prereg"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step1"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step2"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step3"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step4"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step5"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step6"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step7"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step8"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step9"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step10"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step11"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step12"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step13"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step14"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Step 15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_Effective_step15"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "title": "Effective Load",
+ "transform": "timeseries_to_columns",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 24,
+ "x": 0,
+ "y": 64
+ },
+ "id": 15,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "tc_vims_baremetal_sipp.distinct",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Call Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Call Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Call (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Call (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Call Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 73
+ },
+ "id": 16,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "Successful Sessions establishment 180 Percents (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Sessions establishment 180 Percent (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Sessions establishment 180 (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Sessions establishment 180 (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.sesr180"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Sessions Establishment 180 Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 73
+ },
+ "id": 19,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "Sessions Dropped 200 (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Sessions Dropped 200 (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.cdr200"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Sessions Dropped 200 Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 79
+ },
+ "id": 18,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "Sessions Dropped (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Sessions Dropped 180 (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Sessions Dropped 180 (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.cdr180"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Sessions Dropped 180 Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 79
+ },
+ "id": 17,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "tc_vims_baremetal_sipp.mean",
+ "yaxis": 2
+ },
+ {
+ "alias": "Successful Sessions Establishment 200 (%)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Initial Call Attempts (session/s)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.uac_saps"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Successful Sessions Establishment 200 (%)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.sesr200"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Successful Sessions Establishment 200 Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 85
+ },
+ "id": 38,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "Sessions Dropped (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Sessions Dropped 180 (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Rx (pps)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Tx (pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.TX_PPS"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Rx (pps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.RX_PPS"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Throughput",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 85
+ },
+ "id": 39,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "Sessions Dropped (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Sessions Dropped 180 (%)",
+ "yaxis": 2
+ },
+ {
+ "alias": "Rx (bps)",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Tx (bps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.TX_BPS"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Rx (bps)",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_vims_heat_sipp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.RX_BPS"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Bandwidth",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [
+ "Network"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "2018-10-12T08:00:42.370Z",
+ "to": "2018-10-12T10:17:34.402Z"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "VIMS",
+ "uid": "Fz3TxWtik",
+ "version": 10
+}
diff --git a/dashboard/opnfv_yardstick_tc006.json b/dashboard/opnfv_yardstick_tc006.json
index e81e8cca4..b6649a7e4 100644
--- a/dashboard/opnfv_yardstick_tc006.json
+++ b/dashboard/opnfv_yardstick_tc006.json
@@ -49,7 +49,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 1,
@@ -187,7 +187,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 2,
@@ -324,7 +324,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 3,
@@ -493,4 +493,4 @@
"timezone": "",
"title": "opnfv_yardstick_tc006",
"version": 3
-} \ No newline at end of file
+}
diff --git a/dashboard/opnfv_yardstick_tc015.json b/dashboard/opnfv_yardstick_tc015.json
new file mode 100644
index 000000000..a077d27de
--- /dev/null
+++ b/dashboard/opnfv_yardstick_tc015.json
@@ -0,0 +1,355 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.4.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ }
+ ],
+ "annotations": {
+ "list": []
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": false,
+ "rows": [
+ {
+ "collapse": false,
+ "height": 359,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "hideTimeOverride": false,
+ "id": 1,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "cpu_use",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "energy",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "opnfv_yardstick_tc015",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "power"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "cpu_use",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "opnfv_yardstick_tc015",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"mpstat_average.cpu.%usr\" FROM \"opnfv_yardstick_tc015\" WHERE $timeFilter",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "mpstat_average.cpu.%usr"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 400
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Energy measurement of bare-metal node - Energy",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "transparent": true,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "watt",
+ "label": "energy measurement (watts)",
+ "logBase": 1,
+ "max": 500,
+ "min": 0,
+ "show": true
+ },
+ {
+ "format": "percent",
+ "label": "cpu_stat",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "fill": 1,
+ "id": 2,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "rightSide": true,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "single_score",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "opnfv_yardstick_tc015",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "single_score"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "parallel_score",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "opnfv_yardstick_tc015",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "parallel_score"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "cpu score",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "transparent": true,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "Energy"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "2019-09-09T02:01:53.297Z",
+ "to": "2019-09-09T02:06:47.647Z"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "opnfv_yardstick_tc015",
+ "version": 4
+}
diff --git a/dashboard/opnfv_yardstick_tc019.json b/dashboard/opnfv_yardstick_tc019.json
index dfd454e9b..c4fddd817 100644
--- a/dashboard/opnfv_yardstick_tc019.json
+++ b/dashboard/opnfv_yardstick_tc019.json
@@ -55,7 +55,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 1,
@@ -162,7 +162,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 3,
@@ -273,7 +273,7 @@
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"format": "none",
"gauge": {
"maxValue": 100,
@@ -403,4 +403,4 @@
"timezone": "",
"title": "opnfv_yardstick_tc019",
"version": 3
-} \ No newline at end of file
+}
diff --git a/dashboard/opnfv_yardstick_tc045.json b/dashboard/opnfv_yardstick_tc045.json
index 8f00851d7..058cef4cc 100644
--- a/dashboard/opnfv_yardstick_tc045.json
+++ b/dashboard/opnfv_yardstick_tc045.json
@@ -55,7 +55,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 1,
@@ -162,7 +162,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 3,
@@ -273,7 +273,7 @@
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"format": "none",
"gauge": {
"maxValue": 100,
@@ -403,4 +403,4 @@
"timezone": "",
"title": "opnfv_yardstick_tc045",
"version": 5
-} \ No newline at end of file
+}
diff --git a/dashboard/opnfv_yardstick_tc046.json b/dashboard/opnfv_yardstick_tc046.json
index a869c2f21..76505146d 100644
--- a/dashboard/opnfv_yardstick_tc046.json
+++ b/dashboard/opnfv_yardstick_tc046.json
@@ -55,7 +55,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 1,
@@ -162,7 +162,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 3,
@@ -273,7 +273,7 @@
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"format": "none",
"gauge": {
"maxValue": 100,
@@ -405,4 +405,4 @@
"timezone": "",
"title": "opnfv_yardstick_tc046",
"version": 3
-} \ No newline at end of file
+}
diff --git a/dashboard/opnfv_yardstick_tc047.json b/dashboard/opnfv_yardstick_tc047.json
index 401df8634..4c696aa5c 100644
--- a/dashboard/opnfv_yardstick_tc047.json
+++ b/dashboard/opnfv_yardstick_tc047.json
@@ -55,7 +55,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 1,
@@ -162,7 +162,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 3,
@@ -273,7 +273,7 @@
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"format": "none",
"gauge": {
"maxValue": 100,
@@ -405,4 +405,4 @@
"timezone": "",
"title": "opnfv_yardstick_tc047",
"version": 2
-} \ No newline at end of file
+}
diff --git a/dashboard/opnfv_yardstick_tc048.json b/dashboard/opnfv_yardstick_tc048.json
index 5972c889f..cdafaceca 100644
--- a/dashboard/opnfv_yardstick_tc048.json
+++ b/dashboard/opnfv_yardstick_tc048.json
@@ -55,7 +55,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 1,
@@ -162,7 +162,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 3,
@@ -273,7 +273,7 @@
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"format": "none",
"gauge": {
"maxValue": 100,
@@ -405,4 +405,4 @@
"timezone": "",
"title": "opnfv_yardstick_tc048",
"version": 2
-} \ No newline at end of file
+}
diff --git a/dashboard/opnfv_yardstick_tc051.json b/dashboard/opnfv_yardstick_tc051.json
index 012602ba1..455b2b819 100644
--- a/dashboard/opnfv_yardstick_tc051.json
+++ b/dashboard/opnfv_yardstick_tc051.json
@@ -55,7 +55,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 1,
@@ -235,7 +235,7 @@
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"format": "none",
"gauge": {
"maxValue": 100,
@@ -367,4 +367,4 @@
"timezone": "",
"title": "opnfv_yardstick_tc051",
"version": 3
-} \ No newline at end of file
+}
diff --git a/dashboard/opnfv_yardstick_tc052.json b/dashboard/opnfv_yardstick_tc052.json
index b91c53bce..1a3e9ff6c 100644
--- a/dashboard/opnfv_yardstick_tc052.json
+++ b/dashboard/opnfv_yardstick_tc052.json
@@ -55,7 +55,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 1,
@@ -166,7 +166,7 @@
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"format": "none",
"gauge": {
"maxValue": 100,
@@ -298,4 +298,4 @@
"timezone": "",
"title": "opnfv_yardstick_tc052",
"version": 2
-} \ No newline at end of file
+}
diff --git a/dashboard/opnfv_yardstick_tc056.json b/dashboard/opnfv_yardstick_tc056.json
new file mode 100644
index 000000000..5d7f2b013
--- /dev/null
+++ b/dashboard/opnfv_yardstick_tc056.json
@@ -0,0 +1,301 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_YARDSTICK",
+ "label": "yardstick",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "influxdb",
+ "pluginName": "InfluxDB"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "4.4.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "influxdb",
+ "name": "InfluxDB",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": ""
+ }
+ ],
+ "annotations": {
+ "list": []
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": "1m",
+ "rows": [
+ {
+ "collapse": false,
+ "height": 340,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "yardstick",
+ "description": "",
+ "fill": 1,
+ "id": 1,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "opnfv_yardstick_tc056",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"openstack-user-list_outage_time\" FROM \"opnfv_yardstick_tc056\" WHERE $timeFilter",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "openstack-volume-list_outage_time"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "critical",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 5
+ },
+ {
+ "colorMode": "ok",
+ "fill": true,
+ "line": true,
+ "op": "lt",
+ "value": 5
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "command monitor (outage time)",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "s",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": true,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "yardstick",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 4,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "opnfv_yardstick_tc056",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"sla_pass\" FROM \"opnfv_yardstick_tc056\" WHERE $timeFilter",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "sla_pass"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "0.5,1",
+ "title": "SLA PASS/FAIL",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "HA"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now/d",
+ "to": "now/d"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "opnfv_yardstick_tc056",
+ "version": 2
+}
diff --git a/dashboard/opnfv_yardstick_tc058.json b/dashboard/opnfv_yardstick_tc058.json
new file mode 100644
index 000000000..ed2a1750c
--- /dev/null
+++ b/dashboard/opnfv_yardstick_tc058.json
@@ -0,0 +1,265 @@
+{
+ "annotations": {
+ "list": []
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [],
+ "refresh": "1m",
+ "rows": [
+ {
+ "collapse": false,
+ "height": 343,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "yardstick",
+ "description": "",
+ "fill": 1,
+ "id": 1,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 9,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "opnfv_yardstick_tc058",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"server-status_outage_time\" FROM \"opnfv_yardstick_tc058\" WHERE $timeFilter",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "server-status_outage_time"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "critical",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 5
+ },
+ {
+ "colorMode": "ok",
+ "fill": true,
+ "line": true,
+ "op": "lt",
+ "value": 5
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Server Status outage time",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "s",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": true,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "yardstick",
+ "format": "short",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 4,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "alias": "",
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "opnfv_yardstick_tc058",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \"sla_pass\" FROM \"opnfv_yardstick_tc058\" WHERE $timeFilter",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "sla_pass"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "0.5,1",
+ "title": "SLA PASS/FAIL",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "HA"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "2018-03-26T09:00:00.000Z",
+ "to": "2018-03-28T08:59:59.998Z"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "opnfv_yardstick_tc058",
+ "version": 8
+}
diff --git a/dashboard/opnfv_yardstick_tc082.json b/dashboard/opnfv_yardstick_tc082.json
index 38d9d8f57..1fbaf1d6c 100644
--- a/dashboard/opnfv_yardstick_tc082.json
+++ b/dashboard/opnfv_yardstick_tc082.json
@@ -49,7 +49,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 7,
@@ -167,7 +167,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 9,
@@ -274,7 +274,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 1,
@@ -369,7 +369,7 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "${DS_YARDSTICK}",
+ "datasource": "yardstick",
"description": "",
"fill": 1,
"id": 5,
@@ -508,4 +508,4 @@
"timezone": "",
"title": "opnfv_yardstick_tc082",
"version": 5
-} \ No newline at end of file
+}
diff --git a/dashboard/vCMTS_DownstreamProcessingPerSG.json b/dashboard/vCMTS_DownstreamProcessingPerSG.json
new file mode 100644
index 000000000..d83b1ec7e
--- /dev/null
+++ b/dashboard/vCMTS_DownstreamProcessingPerSG.json
@@ -0,0 +1,23834 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "iteration": 1539789837204,
+ "links": [],
+ "panels": [
+ {
+ "content": "<h1 align = \"center\">$Scenario_One</h1>",
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 0,
+ "y": 0
+ },
+ "id": 56,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h1 align = \"center\">$Scenario_Two</h1>",
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 12,
+ "y": 0
+ },
+ "id": 57,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "decimals": 1,
+ "format": "none",
+ "gauge": {
+ "maxValue": 10,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 3,
+ "x": 0,
+ "y": 2
+ },
+ "id": 45,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 3,
+ "y": 2
+ },
+ "id": 48,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg RX Packet Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "decimals": 1,
+ "format": "none",
+ "gauge": {
+ "maxValue": 10,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 3,
+ "x": 6,
+ "y": 2
+ },
+ "id": 46,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "L2TP Frame TX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 9,
+ "y": 2
+ },
+ "id": 51,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg TX Frame Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "decimals": 1,
+ "format": "none",
+ "gauge": {
+ "maxValue": 10,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 3,
+ "x": 12,
+ "y": 2
+ },
+ "id": 58,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000000 FROM \"downstream_rx\" WHERE (\"type\" = 'bits_per_second' AND \"type_instance\" = 'rx') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 15,
+ "y": 2
+ },
+ "id": 59,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg RX Packet Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "decimals": 1,
+ "format": "none",
+ "gauge": {
+ "maxValue": 10,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 3,
+ "x": 18,
+ "y": 2
+ },
+ "id": 62,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "L2TP Frame TX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 21,
+ "y": 2
+ },
+ "id": 63,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg TX Frame Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 3,
+ "y": 4
+ },
+ "id": 49,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Packets",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 15,
+ "y": 4
+ },
+ "id": 60,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Packets",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 9,
+ "y": 5
+ },
+ "id": 52,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX L2TP Frames",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 21,
+ "y": 5
+ },
+ "id": 64,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX L2TP Frames",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 3,
+ "y": 6
+ },
+ "id": 50,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 15,
+ "y": 6
+ },
+ "id": 61,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 3,
+ "y": 8
+ },
+ "id": 145,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Scheduler Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 8
+ },
+ "id": 53,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 15,
+ "y": 8
+ },
+ "id": 146,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Scheduler Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 21,
+ "y": 8
+ },
+ "id": 65,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "CM Lookup": "#2f575e",
+ "Classification": "#1f78c1",
+ "Depi Encapsulation": "#508642",
+ "Docsis Framing": "#e5ac0e",
+ "Ethernet CRC": "#64b0c8",
+ "Filtering": "#584477",
+ "Lower MAC Transfer": "#511749",
+ "Packet Encryption": "#0a437c",
+ "QOS": "#052b51",
+ "RX": "#ef843c",
+ "TX": "#6d1f62"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 10,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 0,
+ "y": 10
+ },
+ "id": 98,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": false,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TX",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "downstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "Depi Encapsulation",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_depi_encap",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "Docsis Framing",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_docsis_framing",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "Packet Encryption",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_encryption",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "Ethernet CRC",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_eth_crc",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "Lower MAC Transfer",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_upper_lower_mac_xfer",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "QOS",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_qos",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "Classification",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_classification",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "Filtering",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_filtering",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "CM Lookup",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_cm_lookup",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "RX",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "downstream_cycles"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Cycles per Packet Cycle",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": false,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Cycles",
+ "logBase": 1,
+ "max": "15000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "Empty": "#EAB839",
+ "Non Empty": "#7eb26d"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 6,
+ "y": 10
+ },
+ "id": 119,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Empty",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_pkts_not_present",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "rx_dequeue_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "Non Empty",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_pkts_present",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "rx_dequeue_per_second"
+ }
+ ]
+ }
+ ],
+ "title": "RX Dequeue per Second",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "CM Lookup": "#2f575e",
+ "Classification": "#1f78c1",
+ "Depi Encapsulation": "#508642",
+ "Docsis Framing": "#e5ac0e",
+ "Ethernet CRC": "#64b0c8",
+ "Filtering": "#584477",
+ "Lower MAC Transfer": "#511749",
+ "Packet Encryption": "#0a437c",
+ "QOS": "#052b51",
+ "RX": "#ef843c",
+ "TX": "#6d1f62"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 10,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 12,
+ "y": 10
+ },
+ "id": 124,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": false,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TX",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "downstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "Depi Encapsulation",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_depi_encap",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "Docsis Framing",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_docsis_framing",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "Packet Encryption",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_encryption",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "Ethernet CRC",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_eth_crc",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "Lower MAC Transfer",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_upper_lower_mac_xfer",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "QOS",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_qos",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "Classification",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_classification",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "Filtering",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_filtering",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "CM Lookup",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_cm_lookup",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "RX",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "downstream_cycles"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Cycles per Packet Cycle",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": false,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Cycles",
+ "logBase": 1,
+ "max": "15000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "Empty": "#EAB839",
+ "Non Empty": "#7eb26d"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 18,
+ "y": 10
+ },
+ "id": 128,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Empty",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_pkts_not_present",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "rx_dequeue_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "Non Empty",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_pkts_present",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "rx_dequeue_per_second"
+ }
+ ]
+ }
+ ],
+ "title": "RX Dequeue per Second",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 0,
+ "y": 17
+ },
+ "id": 122,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_sched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "um_yields_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Upper Mac Scheduled Yields per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 6,
+ "y": 17
+ },
+ "id": 131,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_sched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "lm_yields_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Lower Mac Scheduled Yields per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 12,
+ "y": 17
+ },
+ "id": 135,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_sched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "um_yields_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Upper Mac Scheduled Yields per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 18,
+ "y": 17
+ },
+ "id": 133,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_sched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "lm_yields_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Lower Mac Scheduled Yields per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 0,
+ "y": 19
+ },
+ "id": 132,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_sleep",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "um_yields_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Upper Mac Sleeping Yields per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 6,
+ "y": 19
+ },
+ "id": 126,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_sleep",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "lm_yields_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Lower Mac Sleeping Yields per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 12,
+ "y": 19
+ },
+ "id": 136,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_sleep",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "um_yields_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Upper Mac Sleeping Yields per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 18,
+ "y": 19
+ },
+ "id": 134,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_sleep",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "lm_yields_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Lower Mac Sleeping Yields per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "Matched Denied": "#badff4",
+ "Matched Permitted": "#7eb26d",
+ "Unmatched": "#eab839"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 21
+ },
+ "id": 105,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Matched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_matched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cm_lookup"
+ }
+ ]
+ },
+ {
+ "alias": "Unmatched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_unmatched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cm_lookup"
+ }
+ ]
+ }
+ ],
+ "title": "Cable Modem Lookups",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 6,
+ "y": 21
+ },
+ "id": 114,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_cm_lookup"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "# Packets per CM Lookup",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "Matched Denied": "#badff4",
+ "Matched Permitted": "#7eb26d",
+ "Unmatched": "#eab839"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 21
+ },
+ "id": 140,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Matched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_matched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cm_lookup"
+ }
+ ]
+ },
+ {
+ "alias": "Unmatched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_unmatched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cm_lookup"
+ }
+ ]
+ }
+ ],
+ "title": "Cable Modem Lookups",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 18,
+ "y": 21
+ },
+ "id": 117,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_cm_lookup"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "# Packets per CM Lookup",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 6,
+ "y": 24
+ },
+ "id": 110,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "active_cms_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Active CMs per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 18,
+ "y": 24
+ },
+ "id": 115,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "active_cms_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Active CMs per second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 6,
+ "y": 27
+ },
+ "id": 112,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "ip_addr_per_cm"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "IP Address per CM",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 18,
+ "y": 27
+ },
+ "id": 116,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "ip_addr_per_cm"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "IP Address per CM",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "Matched Denied": "#badff4",
+ "Matched Permitted": "#7eb26d",
+ "Unmatched": "#eab839"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 0,
+ "y": 30
+ },
+ "id": 144,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Matched Permitted",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_matched_permit",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "filter"
+ }
+ ]
+ },
+ {
+ "alias": "Unmatched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_unmatched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "filter"
+ }
+ ]
+ },
+ {
+ "alias": "Matched Denied",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_matched_deny",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "filter"
+ }
+ ]
+ }
+ ],
+ "title": "Aggregate Filtering",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "Matched": "#7eb26d",
+ "Matched IPv4": "#7eb26d",
+ "Matched LLC": "#ef843c",
+ "Unmatched": "#eab839"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 4,
+ "y": 30
+ },
+ "id": 34,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Unmatched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_unmatched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "classifier"
+ }
+ ]
+ },
+ {
+ "alias": "Matched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_matched_ipv4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "classifier"
+ }
+ ]
+ }
+ ],
+ "title": "Aggregate Classification",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "ICMP": "#badff4",
+ "IPV4": "#7eb26d",
+ "LLC": "#eab839"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 8,
+ "y": 30
+ },
+ "id": 69,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "IPV4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_matched_ipv4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "classifier"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ }
+ ]
+ },
+ {
+ "alias": "LLC",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_matched_llc",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "classifier"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ }
+ ]
+ },
+ {
+ "alias": "ICMP",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_matched_icmp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "classifier"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ }
+ ]
+ }
+ ],
+ "title": "Matches per Classifier Type",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "Matched Denied": "#badff4",
+ "Matched Permitted": "#7eb26d",
+ "Unmatched": "#eab839"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 12,
+ "y": 30
+ },
+ "id": 142,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Matched Permitted",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_matched_permit",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "filter"
+ }
+ ]
+ },
+ {
+ "alias": "Unmatched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_unmatched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "filter"
+ }
+ ]
+ },
+ {
+ "alias": "Matched Denied",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_matched_deny",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "filter"
+ }
+ ]
+ }
+ ],
+ "title": "Aggregate Filtering",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "Matched": "#7eb26d",
+ "Matched IPv4": "#7eb26d",
+ "Matched LLC": "#ef843c",
+ "Unmatched": "#eab839"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 16,
+ "y": 30
+ },
+ "id": 137,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Unmatched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_unmatched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "classifier"
+ }
+ ]
+ },
+ {
+ "alias": "Matched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_matched_ipv4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "classifier"
+ }
+ ]
+ }
+ ],
+ "title": "Aggregate Classification",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "ICMP": "#badff4",
+ "IPV4": "#7eb26d",
+ "LLC": "#eab839"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 20,
+ "y": 30
+ },
+ "id": 87,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "IPV4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_matched_ipv4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "classifier"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ }
+ ]
+ },
+ {
+ "alias": "LLC",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_matched_llc",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "classifier"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ }
+ ]
+ },
+ {
+ "alias": "ICMP",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_matched_icmp",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "classifier"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ }
+ ]
+ }
+ ],
+ "title": "Matches per Classifier Type",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 0,
+ "y": 37
+ },
+ "id": 26,
+ "legend": {
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": true
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_0",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_1",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_3",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_5",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Bitrate per SF Queue",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bitrate (bps)",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 6,
+ "y": 37
+ },
+ "id": 27,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_0",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_1",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_3",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_5",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Frame Rate per SF Queue",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Rate (kpps)",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 12,
+ "y": 37
+ },
+ "id": 90,
+ "legend": {
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": true
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_0",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_1",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_3",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_5",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Bitrate per SF Queue",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bitrate (bps)",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 18,
+ "y": 37
+ },
+ "id": 89,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_0",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_1",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_3",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_5",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_packets_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Frame Rate per SF Queue",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Rate (kpps)",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c",
+ "32": "#0a437c",
+ "33": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 12,
+ "x": 0,
+ "y": 44
+ },
+ "id": 28,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_0",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_1",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_3",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_5",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "# Times SF Queue Selected",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Times Selected",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8",
+ "32": "#64b0c8",
+ "33": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 12,
+ "x": 12,
+ "y": 44
+ },
+ "id": 139,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_0",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_1",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_3",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_cm_5",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "sf_queue_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "# Times SF Queue Selected",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Times Selected",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c",
+ "32": "#0a437c",
+ "33": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 53
+ },
+ "id": 20,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "32",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "32",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Bitrate per Channel",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bitrate (bps)",
+ "logBase": 1,
+ "max": "1800000000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8",
+ "32": "#64b0c8",
+ "33": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 53
+ },
+ "id": 76,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null as zero",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "32",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "33",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Bitrate per Channel",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bitrate (bps)",
+ "logBase": 1,
+ "max": "1800000000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c",
+ "32": "#0a437c",
+ "33": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 61
+ },
+ "id": 74,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "32",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "33",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Frame Rate per Channel",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Rate (FPS)",
+ "logBase": 1,
+ "max": "240000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8",
+ "32": "#64b0c8",
+ "33": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 61
+ },
+ "id": 91,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "32",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "33",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Frame Rate per Channel",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Rate (FPS)",
+ "logBase": 1,
+ "max": "240000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c",
+ "32": "#0a437c",
+ "33": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 69
+ },
+ "id": 75,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "32",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "33",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "# Times Channels Selected",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Times Selected",
+ "logBase": 1,
+ "max": "10000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8",
+ "32": "#64b0c8",
+ "33": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 69
+ },
+ "id": 138,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "32",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "33",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ds_per_channel_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "channel_selects_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "# Times Channels Selected",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Times Selected",
+ "logBase": 1,
+ "max": "10000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 10,
+ "w": 4,
+ "x": 0,
+ "y": 77
+ },
+ "id": 13,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Generated",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_generated",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "Not Generated",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_not_generated",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "title": "Packet CRC Re-Generation",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 10,
+ "w": 4,
+ "x": 4,
+ "y": 77
+ },
+ "id": 14,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Aes",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_aes",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "Des",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_des",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "None",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "title": "Packet Encryption",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "AESNI": "#eabb39",
+ "QAT": "#7eb26d"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 8,
+ "y": 77
+ },
+ "id": 100,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "AESNI",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_aesni",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_accel"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "QAT",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_qat",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_accel"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "title": "Crypto Acceleration",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 10,
+ "w": 4,
+ "x": 12,
+ "y": 77
+ },
+ "id": 92,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Generated",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_generated",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "Not Generated",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_not_generated",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "title": "Packet CRC Re-Generation",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 10,
+ "w": 4,
+ "x": 16,
+ "y": 77
+ },
+ "id": 93,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Aes",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_aes",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "Des",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_des",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "None",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "title": "Packet Encryption",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "AESNI": "#eabb39",
+ "QAT": "#7eb26d"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 20,
+ "y": 77
+ },
+ "id": 108,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "AESNI",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_aesni",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_accel"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "QAT",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_qat",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_accel"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "title": "Crypto Acceleration",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 4,
+ "x": 8,
+ "y": 84
+ },
+ "id": 16,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_frames_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "DOCSIS Frame Encoding",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 4,
+ "x": 20,
+ "y": 84
+ },
+ "id": 94,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_frames_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "DOCSIS Frame Encoding",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 8,
+ "x": 0,
+ "y": 87
+ },
+ "id": 9,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_0",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_1",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_3",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_5",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_6",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_7",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "PSP Segments per DEPI Frame",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% DEPI Frames",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 4,
+ "x": 8,
+ "y": 87
+ },
+ "id": 5,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_frames_per_depi"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "#DOCSIS Frames per DEPI",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 10,
+ "w": 8,
+ "x": 12,
+ "y": 87
+ },
+ "id": 95,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_0",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_1",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_2",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_3",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_5",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_6",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_7",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "times_n_psp_seg_per_depi"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "PSP Segments per DEPI Frame",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "% DEPI Frames",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 4,
+ "x": 20,
+ "y": 87
+ },
+ "id": 67,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_frames_per_depi"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "#DOCSIS Frames per DEPI",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "Full": "#7eb26d",
+ "Partial": "#eab839"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 8,
+ "y": 90
+ },
+ "id": 7,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Partial",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_partial",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "depi_frames"
+ }
+ ]
+ },
+ {
+ "alias": "Full",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_full",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "depi_frames"
+ }
+ ]
+ }
+ ],
+ "title": "DEPI Frame Encoding",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "Full": "#7eb26d",
+ "Partial": "#eab839"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 20,
+ "y": 90
+ },
+ "id": 96,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Partial",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_partial",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "depi_frames"
+ }
+ ]
+ },
+ {
+ "alias": "Full",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_full",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "depi_frames"
+ }
+ ]
+ }
+ ],
+ "title": "DEPI Frame Encoding",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ }
+ ],
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {
+ "tags": [],
+ "text": "service_group_0",
+ "value": "service_group_0"
+ },
+ "datasource": "Vcmts",
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "Scenario_One",
+ "options": [
+ {
+ "selected": true,
+ "text": "service_group_0",
+ "value": "service_group_0"
+ },
+ {
+ "selected": false,
+ "text": "service_group_1",
+ "value": "service_group_1"
+ },
+ {
+ "selected": false,
+ "text": "service_group_2",
+ "value": "service_group_2"
+ },
+ {
+ "selected": false,
+ "text": "service_group_3",
+ "value": "service_group_3"
+ },
+ {
+ "selected": false,
+ "text": "service_group_10",
+ "value": "service_group_10"
+ },
+ {
+ "selected": false,
+ "text": "service_group_11",
+ "value": "service_group_11"
+ },
+ {
+ "selected": false,
+ "text": "service_group_12",
+ "value": "service_group_12"
+ },
+ {
+ "selected": false,
+ "text": "service_group_13",
+ "value": "service_group_13"
+ },
+ {
+ "selected": false,
+ "text": "service_group_14",
+ "value": "service_group_14"
+ },
+ {
+ "selected": false,
+ "text": "service_group_15",
+ "value": "service_group_15"
+ },
+ {
+ "selected": false,
+ "text": "service_group_4",
+ "value": "service_group_4"
+ },
+ {
+ "selected": false,
+ "text": "service_group_5",
+ "value": "service_group_5"
+ },
+ {
+ "selected": false,
+ "text": "service_group_6",
+ "value": "service_group_6"
+ },
+ {
+ "selected": false,
+ "text": "service_group_7",
+ "value": "service_group_7"
+ },
+ {
+ "selected": false,
+ "text": "service_group_8",
+ "value": "service_group_8"
+ },
+ {
+ "selected": false,
+ "text": "service_group_9",
+ "value": "service_group_9"
+ }
+ ],
+ "query": "SHOW TAG Values with key =\"host\"",
+ "refresh": 0,
+ "regex": "/service/",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {
+ "tags": [],
+ "text": "service_group_8",
+ "value": "service_group_8"
+ },
+ "datasource": "Vcmts",
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "Scenario_Two",
+ "options": [
+ {
+ "selected": false,
+ "text": "service_group_0",
+ "value": "service_group_0"
+ },
+ {
+ "selected": false,
+ "text": "service_group_1",
+ "value": "service_group_1"
+ },
+ {
+ "selected": false,
+ "text": "service_group_2",
+ "value": "service_group_2"
+ },
+ {
+ "selected": false,
+ "text": "service_group_3",
+ "value": "service_group_3"
+ },
+ {
+ "selected": false,
+ "text": "service_group_10",
+ "value": "service_group_10"
+ },
+ {
+ "selected": false,
+ "text": "service_group_11",
+ "value": "service_group_11"
+ },
+ {
+ "selected": false,
+ "text": "service_group_12",
+ "value": "service_group_12"
+ },
+ {
+ "selected": false,
+ "text": "service_group_13",
+ "value": "service_group_13"
+ },
+ {
+ "selected": false,
+ "text": "service_group_14",
+ "value": "service_group_14"
+ },
+ {
+ "selected": false,
+ "text": "service_group_15",
+ "value": "service_group_15"
+ },
+ {
+ "selected": false,
+ "text": "service_group_4",
+ "value": "service_group_4"
+ },
+ {
+ "selected": false,
+ "text": "service_group_5",
+ "value": "service_group_5"
+ },
+ {
+ "selected": false,
+ "text": "service_group_6",
+ "value": "service_group_6"
+ },
+ {
+ "selected": false,
+ "text": "service_group_7",
+ "value": "service_group_7"
+ },
+ {
+ "selected": true,
+ "text": "service_group_8",
+ "value": "service_group_8"
+ },
+ {
+ "selected": false,
+ "text": "service_group_9",
+ "value": "service_group_9"
+ }
+ ],
+ "query": "SHOW TAG Values with key =\"host\"",
+ "refresh": 0,
+ "regex": "/service/",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
+ },
+ "time": {
+ "from": "now-15m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "2s",
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Downstream Processing (Per Service Group)",
+ "uid": "KyzMZZhiz",
+ "version": 1
+} \ No newline at end of file
diff --git a/dashboard/vCMTS_DownstreamThroughput.json b/dashboard/vCMTS_DownstreamThroughput.json
new file mode 100644
index 000000000..adf85d39d
--- /dev/null
+++ b/dashboard/vCMTS_DownstreamThroughput.json
@@ -0,0 +1,14241 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "links": [],
+ "panels": [
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "decimals": 2,
+ "fill": 1,
+ "gridPos": {
+ "h": 14,
+ "w": 9,
+ "x": 0,
+ "y": 0
+ },
+ "id": 32,
+ "legend": {
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": false,
+ "total": false,
+ "values": true
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "0",
+ "yaxis": 1
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000000 FROM \"downstream_rx\" WHERE (\"host\" = 'service_group_0' AND \"type\" = 'bits_per_second') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "RX - Bit Rate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "short",
+ "label": "Bitrate (Gbps)",
+ "logBase": 1,
+ "max": "10",
+ "min": "0",
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 120,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 3,
+ "x": 9,
+ "y": 0
+ },
+ "id": 39,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") / 1000000000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_rx\" \nWHERE ( \"type\" = 'bits_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "0,0",
+ "title": "Total RX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "decimals": 2,
+ "fill": 1,
+ "gridPos": {
+ "h": 14,
+ "w": 9,
+ "x": 12,
+ "y": 0
+ },
+ "id": 33,
+ "legend": {
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": true
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TX - Bit Rate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bitrate (Gbps)",
+ "logBase": 1,
+ "max": "10",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 120,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 3,
+ "x": 21,
+ "y": 0
+ },
+ "id": 40,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") / 1000000000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_tx\" \nWHERE ( \"type\" = 'bits_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "0,0",
+ "title": "Total TX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 6
+ },
+ "id": 25,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"value\") FROM \"downstream_rx\" WHERE (\"type\" = 'average_frame_size_per_second') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg RX Packet Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 21,
+ "y": 6
+ },
+ "id": 185,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg TX Frame Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 8
+ },
+ "id": 29,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_rx\" \nWHERE ( \"type\" = 'packets_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Packets",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 21,
+ "y": 8
+ },
+ "id": 28,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_tx\" \nWHERE ( \"type\" = 'packets_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "TX L2TP Frames",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 10
+ },
+ "id": 27,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_rx\" \nWHERE ( \"type\" = 'dropped_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 21,
+ "y": 11
+ },
+ "id": 26,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_tx\" \nWHERE ( \"type\" = 'dropped_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 12
+ },
+ "id": 193,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_value\" \nWHERE ( \"type\" = 'sched_dropped_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Scheduler Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 0,
+ "y": 14
+ },
+ "id": 18,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "RX - Frame Rate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Rate (kpps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 14
+ },
+ "id": 131,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TX - Frame Rate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Rate (kpps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 0,
+ "y": 21
+ },
+ "id": 97,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ " / 1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "RX - Frame Loss Rate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Loss Rate (kpps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 21
+ },
+ "id": 192,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TX - Frame Loss Rate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Loss Rate (kpps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 24,
+ "x": 0,
+ "y": 28
+ },
+ "id": 190,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "sched_dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Scheduler Dropped per Second",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Dropped Per Second (kpps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-15m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "2s",
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Downstream Throughput",
+ "uid": "Xjg6KO2mz",
+ "version": 1
+} \ No newline at end of file
diff --git a/dashboard/vCMTS_DownstreamTimeSeries.json b/dashboard/vCMTS_DownstreamTimeSeries.json
new file mode 100644
index 000000000..f1bb04856
--- /dev/null
+++ b/dashboard/vCMTS_DownstreamTimeSeries.json
@@ -0,0 +1,7542 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "id": 45,
+ "links": [],
+ "panels": [
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "decimals": 2,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 0,
+ "y": 0
+ },
+ "id": 51,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "0",
+ "yaxis": 1
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000000 FROM \"downstream_rx\" WHERE (\"host\" = 'service_group_0' AND \"type\" = 'bits_per_second') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "RX - Bit Rate per Service Group",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "short",
+ "label": "Bitrate (Gbps)",
+ "logBase": 1,
+ "max": "10",
+ "min": "0",
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "decimals": 2,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 12,
+ "y": 0
+ },
+ "id": 53,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TX - Bit Rate per Service Group",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bitrate (Gbps)",
+ "logBase": 1,
+ "max": "10",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 0,
+ "y": 11
+ },
+ "id": 18,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "RX - Packets Dropped per Service Group",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Dropped (pps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 12,
+ "y": 11
+ },
+ "id": 54,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TX - Frames Dropped per Service Group",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Dropped (fps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-15m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "2s",
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Downstream Throughput Time Series",
+ "version": 6
+}
diff --git a/dashboard/vCMTS_PlatformMetrics.json b/dashboard/vCMTS_PlatformMetrics.json
new file mode 100644
index 000000000..e07dce909
--- /dev/null
+++ b/dashboard/vCMTS_PlatformMetrics.json
@@ -0,0 +1,52402 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "links": [],
+ "panels": [
+ {
+ "content": "<h3 align = \"center\">Socket 0</h3>",
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 0,
+ "y": 0
+ },
+ "id": 40,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h3 align = \"center\">Socket 1</h3>",
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 12,
+ "y": 0
+ },
+ "id": 41,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "type": "text"
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 2
+ },
+ "id": 95,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Utilization - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "short",
+ "label": "Utilization(%)",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 2
+ },
+ "id": 121,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "40"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "41"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "42"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "43"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "44"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "45"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "46"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "47"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "48"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "49"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "50"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "51"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "52"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "53"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "54"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "55"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "56"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "57"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "58"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "59"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Utilization - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "short",
+ "label": "Utilization(%)",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 2
+ },
+ "id": 122,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "34"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "35"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "36"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "37"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "38"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "39"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Utilization - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "short",
+ "label": "Utilization(%)",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 2
+ },
+ "id": 123,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "60"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "61"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "62"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "63"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "65"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "66"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "67"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "68"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "69"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "70"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "71"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "72"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "73"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "74"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "75"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "76"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "77"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "78"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "79"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "percent"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "user"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Utilization - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "short",
+ "label": "Utilization(%)",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 11
+ },
+ "id": 34,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Instructions per second - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Instructions Per Second ( Millions)",
+ "logBase": 1,
+ "max": "5500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 11
+ },
+ "id": 92,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "40"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "41"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "42"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "43"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "44"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "45"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "46"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "47"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "48"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "49"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "50"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "51"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "52"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "53"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "54"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "55"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "56"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "57"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "58"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "59"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Instructions per second - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Instructions Per Second ( Millions)",
+ "logBase": 1,
+ "max": "5500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 11
+ },
+ "id": 93,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "34"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "35"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '36' AND \"type_instance\" = 'instructions-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "36"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '36' AND \"type_instance\" = 'instructions-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "37"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '36' AND \"type_instance\" = 'instructions-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "38"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '36' AND \"type_instance\" = 'instructions-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "39"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Instructions per second - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Instructions Per Second ( Millions)",
+ "logBase": 1,
+ "max": "5500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 11
+ },
+ "id": 94,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "60"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "61"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "62"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "63"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "65"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "66"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "67"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "68"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "69"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "70"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "71"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "72"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "73"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "74"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "75"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "76"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "77"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "78"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "79"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "instructions-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Instructions per second - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Instructions Per Second ( Millions)",
+ "logBase": 1,
+ "max": "5500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 20
+ },
+ "id": 96,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu00"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu01"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu02"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu03"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu04"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu05"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu06"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu07"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu08"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu09"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Frequency - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frequency (MHZ)",
+ "logBase": 1,
+ "max": "3500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 20
+ },
+ "id": 70,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu40"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu41"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu42"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu43"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu44"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu45"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu46"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu47"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu48"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu49"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu50"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu51"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu52"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu53"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu54"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu55"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu56"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu57"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu58"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu59"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Frequency - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frequency (MHZ)",
+ "logBase": 1,
+ "max": "3500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 20
+ },
+ "id": 71,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu32"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu33"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu34"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu35"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu36"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu37"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu38"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu39"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Frequency - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frequency (MHZ)",
+ "logBase": 1,
+ "max": "3500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 20
+ },
+ "id": 72,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu60"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu61"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu62"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu63"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu64"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu65"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu66"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu67"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu68"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu69"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu70"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu71"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu72"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu73"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu74"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu75"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu76"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu77"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu78"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "cpu79"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "frequency"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "busy"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Frequency - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frequency (MHZ)",
+ "logBase": 1,
+ "max": "3500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "celsius",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 0,
+ "y": 29
+ },
+ "id": 26,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "temperature"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "pkg00"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Socket Temperature",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "celsius",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 12,
+ "y": 29
+ },
+ "id": 69,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "temperature"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "pkg01"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Socket Temperature",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 31
+ },
+ "id": 97,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L1 Cache Hits - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 31
+ },
+ "id": 98,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "40"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "41"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "42"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "43"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "44"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "45"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "46"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "47"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "48"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "49"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "50"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "51"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "52"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "53"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "54"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "55"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "56"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "57"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "58"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "59"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L1 Cache Hits - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 31
+ },
+ "id": 99,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "34"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "35"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "36"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "37"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "38"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "39"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L1 Cache Hits - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 31
+ },
+ "id": 100,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "60"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "61"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "62"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "63"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "65"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "66"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "67"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "68"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "69"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "70"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "71"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "72"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "73"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "74"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "75"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "76"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "77"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "78"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "79"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-loads-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L1 Cache Hits - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 40
+ },
+ "id": 124,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L1 Cache Misses - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 40
+ },
+ "id": 125,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "40"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "41"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "42"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "43"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "44"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "45"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "46"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "47"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "48"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "49"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "50"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "51"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "52"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "53"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "54"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "55"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "56"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "57"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "58"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "59"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L1 Cache Misses - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 40
+ },
+ "id": 126,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "34"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "35"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "36"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "37"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "38"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "39"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L1 Cache Misses - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 40
+ },
+ "id": 127,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "60"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "61"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "62"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "63"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "65"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "66"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "67"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "68"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "69"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "70"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "71"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "72"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "73"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "74"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "75"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "76"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "77"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "78"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "79"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L1-dcache-load-misses-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L1 Cache Misses - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 49
+ },
+ "id": 128,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L2 Cache Hits - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 49
+ },
+ "id": 129,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "40"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "41"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "42"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "43"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "44"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "45"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "46"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "47"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "48"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "49"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "50"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "51"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "52"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "53"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "54"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "55"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "56"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "57"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "58"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "59"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L2 Cache Hits - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 49
+ },
+ "id": 131,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "34"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "35"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "36"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "37"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "38"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "39"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L2 Cache Hits- Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 49
+ },
+ "id": 132,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "60"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "61"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "62"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "63"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "65"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "66"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "67"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "68"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "69"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "70"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "71"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "72"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "73"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "74"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "75"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "76"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "77"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "78"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "79"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L2 Cache Hits - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 58
+ },
+ "id": 130,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L2 Cache Misses - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 58
+ },
+ "id": 133,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "40"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "41"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "42"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "43"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "44"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "45"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "46"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "47"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "48"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "49"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "50"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "51"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "52"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "53"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "54"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "55"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "56"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "57"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "58"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "59"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L2 Cache Misses - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 58
+ },
+ "id": 134,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "34"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "35"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "36"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "37"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "38"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "39"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L2 Cache Misses - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 58
+ },
+ "id": 135,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "60"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "61"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "62"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "63"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "65"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "66"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "67"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "68"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "69"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "70"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "71"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "72"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "73"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "74"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "75"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "76"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "77"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "78"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "79"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "L2 Cache Misses - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 67
+ },
+ "id": 136,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "LLC Hits - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 67
+ },
+ "id": 137,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "40"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "41"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "42"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "43"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "44"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "45"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "46"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "47"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "48"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "49"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "50"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "51"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "52"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "53"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "54"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "55"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "56"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "57"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "58"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "59"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "LLC Hits - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 67
+ },
+ "id": 138,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "34"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "35"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "36"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "37"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "38"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "39"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "LLC Hits- Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 67
+ },
+ "id": 139,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "60"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "61"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "62"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "63"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "65"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "66"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "67"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "68"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "69"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "70"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "71"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "72"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "73"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "74"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "75"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "76"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "77"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "78"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "79"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-loads-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "LLC Hits - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Hits Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 76
+ },
+ "id": 140,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "LLC Misses - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 76
+ },
+ "id": 141,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "40"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "41"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "42"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "43"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "44"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "45"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "46"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "47"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "48"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "49"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "50"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "51"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "52"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "53"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "54"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "55"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "56"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "57"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "58"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "59"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "LLC Misses- Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 76
+ },
+ "id": 142,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "34"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "35"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "36"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "37"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "38"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "39"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "LLC Misses - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 76
+ },
+ "id": 143,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "60"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "61"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "62"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "63"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "64"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "65"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "66"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "67"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "68"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "69"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "70"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "71"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "72"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "73"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "74"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "75"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "76"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "77"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "78"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_pmu_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_pmu_value\" WHERE (\"type\" = 'gauge' AND \"instance\" = '70' AND \"type_instance\" = 'L1-dcache-loads-rate') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "gauge"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "79"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "LLC-load-misses-rate"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "LLC Misses - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Misses Per Second ( Millions)",
+ "logBase": 1,
+ "max": "1750",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 85
+ },
+ "id": 144,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "0"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "1"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "2"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "3"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "4"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "5"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "6"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "7"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '0') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "8"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '9') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "9"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '10') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "10"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '11') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "11"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '12') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "12"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '13') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "13"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '14') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "14"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '15') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "15"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '16') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "16"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '17') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "17"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '18') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "18"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '19') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "19"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memory Bandwidth Utilization - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "decmbytes",
+ "label": "Memory Bandwidth (Bytes)",
+ "logBase": 1,
+ "max": "500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 85
+ },
+ "id": 146,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "40"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "41"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "42"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "43"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "44"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "45"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "46"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "47"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '0') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "48"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '49') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "49"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '50') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "50"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '51') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "51"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '52') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "52"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '53') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "53"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '54') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "54"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '55') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "55"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '56') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "56"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '57') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "57"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '58') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "58"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '59') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "59"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memory Bandwidth Utilization - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "decmbytes",
+ "label": "Memory Bandwidth (Bytes)",
+ "logBase": 1,
+ "max": "500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 85
+ },
+ "id": 145,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "20"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "21"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "22"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "23"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "24"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "25"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "26"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "27"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '0') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "28"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '29') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "29"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '30') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "30"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '31') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "31"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '32') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "32"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '33') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "33"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '34') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "34"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '35') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "35"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '36') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "36"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '37') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "37"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '38') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "38"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '39') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "39"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memory Bandwidth Utilization - Hyperthread 0",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "decmbytes",
+ "label": "Memory Bandwidth (Bytes)",
+ "logBase": 1,
+ "max": "500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 85
+ },
+ "id": 147,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "60"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "61"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "62"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "63"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "65"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "66"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "67"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '0') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "68"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '69') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "69"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '70') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "70"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '71') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "71"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '72') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "72"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '73') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "73"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '74') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "74"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '75') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "75"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '76') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "76"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '77') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "77"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '78') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "78"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000 FROM \"intel_rdt_value\" WHERE (\"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local' AND \"instance\" = '79') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": true,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ },
+ {
+ "condition": "AND",
+ "key": "instance",
+ "operator": "=",
+ "value": "79"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memory Bandwidth Utilization - Hyperthread 1",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "decmbytes",
+ "label": "Memory Bandwidth (Bytes)",
+ "logBase": 1,
+ "max": "500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-15m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "2s",
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Platform Metrics",
+ "uid": "GHwU77hmz",
+ "version": 1
+}
diff --git a/dashboard/vCMTS_PowerConsumption.json b/dashboard/vCMTS_PowerConsumption.json
new file mode 100644
index 000000000..1f3745ff3
--- /dev/null
+++ b/dashboard/vCMTS_PowerConsumption.json
@@ -0,0 +1,5295 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "$$hashKey": "object:38280",
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "iteration": 1537440922368,
+ "links": [],
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 5,
+ "gridPos": {
+ "h": 12,
+ "w": 8,
+ "x": 0,
+ "y": 0
+ },
+ "id": 9,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "downstream_rx.sum",
+ "yaxis": 2
+ },
+ {
+ "alias": "Downstream",
+ "yaxis": 2
+ },
+ {
+ "alias": "Upstream",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "$$hashKey": "object:607",
+ "alias": "Watts",
+ "groupBy": [
+ {
+ "params": [
+ "10s"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ipmi_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type_instance",
+ "operator": "=",
+ "value": "PS1 Input Power power_supply (10.1)"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "power"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:608",
+ "alias": "Downstream",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") / 1000000000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_rx\" \nWHERE ( \"type\" = 'bits_per_second') \nGROUP BY host\n)\nGROUP BY time(10s) fill(previous)",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "$$hashKey": "object:609",
+ "alias": "Upstream",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") / 1000000000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"upstream_tx\" \nWHERE ( \"type\" = 'bits_per_second') \nGROUP BY host\n)\nGROUP BY time(10s) fill(previous)",
+ "rawQuery": true,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Wall Power",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:1002",
+ "format": "watt",
+ "label": null,
+ "logBase": 1,
+ "max": "500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "$$hashKey": "object:1003",
+ "decimals": null,
+ "format": "Gbits",
+ "label": null,
+ "logBase": 1,
+ "max": "120",
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 12,
+ "w": 8,
+ "x": 8,
+ "y": 0
+ },
+ "id": 8,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "$$hashKey": "object:719",
+ "alias": "Watts - Pkg 0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "pkg00"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "power"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "pkg"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:720",
+ "alias": "Watts - Pkg 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "pkg01"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "power"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "pkg"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Socket Power Consumption",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:875",
+ "format": "watt",
+ "label": null,
+ "logBase": 1,
+ "max": "500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "$$hashKey": "object:876",
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 10,
+ "gridPos": {
+ "h": 12,
+ "w": 8,
+ "x": 16,
+ "y": 0
+ },
+ "id": 4,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "$$hashKey": "object:1584",
+ "alias": "package 0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "pkg00"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "power"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "DRAM"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:1585",
+ "alias": "package 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "pkg01"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "power"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "DRAM"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "DRAM Power Consumption",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:1728",
+ "format": "watt",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "$$hashKey": "object:1729",
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#597550",
+ "1": "#597550",
+ "2": "#597550",
+ "3": "#597550",
+ "4": "#597550",
+ "5": "#597550",
+ "6": "#597550",
+ "7": "#597550",
+ "8": "#597550",
+ "9": "#597550",
+ "10": "#597550",
+ "11": "#597550",
+ "12": "#597550",
+ "13": "#597550",
+ "14": "#597550",
+ "15": "#597550",
+ "16": "#597550",
+ "17": "#597550",
+ "18": "#597550",
+ "19": "#597550",
+ "20": "#597550",
+ "21": "#597550",
+ "22": "#597550",
+ "23": "#597550",
+ "24": "#597550",
+ "25": "#597550",
+ "26": "#597550",
+ "27": "#597550",
+ "28": "#597550",
+ "29": "#597550",
+ "30": "#597550",
+ "31": "#597550",
+ "32": "#597550",
+ "33": "#597550",
+ "34": "#597550",
+ "35": "#597550",
+ "36": "#597550",
+ "37": "#597550",
+ "38": "#597550",
+ "39": "#597550"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 12,
+ "w": 12,
+ "x": 0,
+ "y": 12
+ },
+ "id": 6,
+ "legend": {
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": true
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "$$hashKey": "object:1809",
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "0"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:487",
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "1"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:553",
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "2"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:619",
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "3"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:626",
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "4"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:633",
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "5"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:640",
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "6"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:647",
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "7"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:654",
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "8"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:661",
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "9"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:668",
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "10"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:675",
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "11"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:682",
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "12"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:689",
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "13"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:696",
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "14"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:703",
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "15"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:710",
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "16"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:717",
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "17"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:724",
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "18"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:731",
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "19"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:738",
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "20"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:745",
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "21"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:752",
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "22"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:759",
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "23"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:766",
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "24"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:773",
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "25"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:780",
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "26"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:787",
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "27"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:794",
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "28"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:801",
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "29"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:808",
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "30"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:815",
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "31"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:822",
+ "alias": "32",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "32"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:829",
+ "alias": "33",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "33"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:836",
+ "alias": "34",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "34"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:843",
+ "alias": "35",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "35"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:850",
+ "alias": "36",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "36"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:857",
+ "alias": "37",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "37"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:864",
+ "alias": "38",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "38"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:871",
+ "alias": "39",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "rawQuery": false,
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "39"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Frequency per Core",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:2102",
+ "format": "hertz",
+ "label": "Frequency",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "$$hashKey": "object:2103",
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 12,
+ "w": 12,
+ "x": 12,
+ "y": 12
+ },
+ "id": 11,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "$$hashKey": "object:1407",
+ "alias": "$CPU_1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=~",
+ "value": "/^$CPU_1$/"
+ }
+ ]
+ },
+ {
+ "$$hashKey": "object:1085",
+ "alias": "$CPU_2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "cpufreq_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cpufreq"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=~",
+ "value": "/^$CPU_2$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "$CPU_1 and $CPU_2 Frequency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:1054",
+ "format": "hertz",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "$$hashKey": "object:1055",
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {
+ "$$hashKey": "object:479",
+ "selected": true,
+ "text": "10",
+ "value": "10"
+ },
+ "datasource": "vCMTS-collectd-stats",
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "CPU_1",
+ "options": [
+ {
+ "$$hashKey": "object:477",
+ "selected": false,
+ "text": "0",
+ "value": "0"
+ },
+ {
+ "$$hashKey": "object:478",
+ "selected": false,
+ "text": "1",
+ "value": "1"
+ },
+ {
+ "$$hashKey": "object:479",
+ "selected": true,
+ "text": "10",
+ "value": "10"
+ },
+ {
+ "$$hashKey": "object:480",
+ "selected": false,
+ "text": "11",
+ "value": "11"
+ },
+ {
+ "$$hashKey": "object:481",
+ "selected": false,
+ "text": "12",
+ "value": "12"
+ },
+ {
+ "$$hashKey": "object:482",
+ "selected": false,
+ "text": "13",
+ "value": "13"
+ },
+ {
+ "$$hashKey": "object:483",
+ "selected": false,
+ "text": "14",
+ "value": "14"
+ },
+ {
+ "$$hashKey": "object:484",
+ "selected": false,
+ "text": "15",
+ "value": "15"
+ },
+ {
+ "$$hashKey": "object:485",
+ "selected": false,
+ "text": "16",
+ "value": "16"
+ },
+ {
+ "$$hashKey": "object:486",
+ "selected": false,
+ "text": "17",
+ "value": "17"
+ },
+ {
+ "$$hashKey": "object:487",
+ "selected": false,
+ "text": "18",
+ "value": "18"
+ },
+ {
+ "$$hashKey": "object:488",
+ "selected": false,
+ "text": "19",
+ "value": "19"
+ },
+ {
+ "$$hashKey": "object:489",
+ "selected": false,
+ "text": "2",
+ "value": "2"
+ },
+ {
+ "$$hashKey": "object:490",
+ "selected": false,
+ "text": "20",
+ "value": "20"
+ },
+ {
+ "$$hashKey": "object:491",
+ "selected": false,
+ "text": "21",
+ "value": "21"
+ },
+ {
+ "$$hashKey": "object:492",
+ "selected": false,
+ "text": "22",
+ "value": "22"
+ },
+ {
+ "$$hashKey": "object:493",
+ "selected": false,
+ "text": "23",
+ "value": "23"
+ },
+ {
+ "$$hashKey": "object:494",
+ "selected": false,
+ "text": "24",
+ "value": "24"
+ },
+ {
+ "$$hashKey": "object:495",
+ "selected": false,
+ "text": "25",
+ "value": "25"
+ },
+ {
+ "$$hashKey": "object:496",
+ "selected": false,
+ "text": "26",
+ "value": "26"
+ },
+ {
+ "$$hashKey": "object:497",
+ "selected": false,
+ "text": "27",
+ "value": "27"
+ },
+ {
+ "$$hashKey": "object:498",
+ "selected": false,
+ "text": "28",
+ "value": "28"
+ },
+ {
+ "$$hashKey": "object:499",
+ "selected": false,
+ "text": "29",
+ "value": "29"
+ },
+ {
+ "$$hashKey": "object:500",
+ "selected": false,
+ "text": "3",
+ "value": "3"
+ },
+ {
+ "$$hashKey": "object:501",
+ "selected": false,
+ "text": "30",
+ "value": "30"
+ },
+ {
+ "$$hashKey": "object:502",
+ "selected": false,
+ "text": "31",
+ "value": "31"
+ },
+ {
+ "$$hashKey": "object:503",
+ "selected": false,
+ "text": "32",
+ "value": "32"
+ },
+ {
+ "$$hashKey": "object:504",
+ "selected": false,
+ "text": "33",
+ "value": "33"
+ },
+ {
+ "$$hashKey": "object:505",
+ "selected": false,
+ "text": "34",
+ "value": "34"
+ },
+ {
+ "$$hashKey": "object:506",
+ "selected": false,
+ "text": "35",
+ "value": "35"
+ },
+ {
+ "$$hashKey": "object:507",
+ "selected": false,
+ "text": "36",
+ "value": "36"
+ },
+ {
+ "$$hashKey": "object:508",
+ "selected": false,
+ "text": "37",
+ "value": "37"
+ },
+ {
+ "$$hashKey": "object:509",
+ "selected": false,
+ "text": "38",
+ "value": "38"
+ },
+ {
+ "$$hashKey": "object:510",
+ "selected": false,
+ "text": "39",
+ "value": "39"
+ },
+ {
+ "$$hashKey": "object:511",
+ "selected": false,
+ "text": "4",
+ "value": "4"
+ },
+ {
+ "$$hashKey": "object:512",
+ "selected": false,
+ "text": "40",
+ "value": "40"
+ },
+ {
+ "$$hashKey": "object:513",
+ "selected": false,
+ "text": "41",
+ "value": "41"
+ },
+ {
+ "$$hashKey": "object:514",
+ "selected": false,
+ "text": "42",
+ "value": "42"
+ },
+ {
+ "$$hashKey": "object:515",
+ "selected": false,
+ "text": "43",
+ "value": "43"
+ },
+ {
+ "$$hashKey": "object:516",
+ "selected": false,
+ "text": "44",
+ "value": "44"
+ },
+ {
+ "$$hashKey": "object:517",
+ "selected": false,
+ "text": "45",
+ "value": "45"
+ },
+ {
+ "$$hashKey": "object:518",
+ "selected": false,
+ "text": "46",
+ "value": "46"
+ },
+ {
+ "$$hashKey": "object:519",
+ "selected": false,
+ "text": "47",
+ "value": "47"
+ },
+ {
+ "$$hashKey": "object:520",
+ "selected": false,
+ "text": "48",
+ "value": "48"
+ },
+ {
+ "$$hashKey": "object:521",
+ "selected": false,
+ "text": "49",
+ "value": "49"
+ },
+ {
+ "$$hashKey": "object:522",
+ "selected": false,
+ "text": "5",
+ "value": "5"
+ },
+ {
+ "$$hashKey": "object:523",
+ "selected": false,
+ "text": "50",
+ "value": "50"
+ },
+ {
+ "$$hashKey": "object:524",
+ "selected": false,
+ "text": "51",
+ "value": "51"
+ },
+ {
+ "$$hashKey": "object:525",
+ "selected": false,
+ "text": "52",
+ "value": "52"
+ },
+ {
+ "$$hashKey": "object:526",
+ "selected": false,
+ "text": "53",
+ "value": "53"
+ },
+ {
+ "$$hashKey": "object:527",
+ "selected": false,
+ "text": "54",
+ "value": "54"
+ },
+ {
+ "$$hashKey": "object:528",
+ "selected": false,
+ "text": "55",
+ "value": "55"
+ },
+ {
+ "$$hashKey": "object:529",
+ "selected": false,
+ "text": "56",
+ "value": "56"
+ },
+ {
+ "$$hashKey": "object:530",
+ "selected": false,
+ "text": "57",
+ "value": "57"
+ },
+ {
+ "$$hashKey": "object:531",
+ "selected": false,
+ "text": "58",
+ "value": "58"
+ },
+ {
+ "$$hashKey": "object:532",
+ "selected": false,
+ "text": "59",
+ "value": "59"
+ },
+ {
+ "$$hashKey": "object:533",
+ "selected": false,
+ "text": "6",
+ "value": "6"
+ },
+ {
+ "$$hashKey": "object:534",
+ "selected": false,
+ "text": "60",
+ "value": "60"
+ },
+ {
+ "$$hashKey": "object:535",
+ "selected": false,
+ "text": "61",
+ "value": "61"
+ },
+ {
+ "$$hashKey": "object:536",
+ "selected": false,
+ "text": "62",
+ "value": "62"
+ },
+ {
+ "$$hashKey": "object:537",
+ "selected": false,
+ "text": "63",
+ "value": "63"
+ },
+ {
+ "$$hashKey": "object:538",
+ "selected": false,
+ "text": "64",
+ "value": "64"
+ },
+ {
+ "$$hashKey": "object:539",
+ "selected": false,
+ "text": "65",
+ "value": "65"
+ },
+ {
+ "$$hashKey": "object:540",
+ "selected": false,
+ "text": "66",
+ "value": "66"
+ },
+ {
+ "$$hashKey": "object:541",
+ "selected": false,
+ "text": "67",
+ "value": "67"
+ },
+ {
+ "$$hashKey": "object:542",
+ "selected": false,
+ "text": "68",
+ "value": "68"
+ },
+ {
+ "$$hashKey": "object:543",
+ "selected": false,
+ "text": "69",
+ "value": "69"
+ },
+ {
+ "$$hashKey": "object:544",
+ "selected": false,
+ "text": "7",
+ "value": "7"
+ },
+ {
+ "$$hashKey": "object:545",
+ "selected": false,
+ "text": "70",
+ "value": "70"
+ },
+ {
+ "$$hashKey": "object:546",
+ "selected": false,
+ "text": "71",
+ "value": "71"
+ },
+ {
+ "$$hashKey": "object:547",
+ "selected": false,
+ "text": "72",
+ "value": "72"
+ },
+ {
+ "$$hashKey": "object:548",
+ "selected": false,
+ "text": "73",
+ "value": "73"
+ },
+ {
+ "$$hashKey": "object:549",
+ "selected": false,
+ "text": "74",
+ "value": "74"
+ },
+ {
+ "$$hashKey": "object:550",
+ "selected": false,
+ "text": "75",
+ "value": "75"
+ },
+ {
+ "$$hashKey": "object:551",
+ "selected": false,
+ "text": "76",
+ "value": "76"
+ },
+ {
+ "$$hashKey": "object:552",
+ "selected": false,
+ "text": "77",
+ "value": "77"
+ },
+ {
+ "$$hashKey": "object:553",
+ "selected": false,
+ "text": "78",
+ "value": "78"
+ },
+ {
+ "$$hashKey": "object:554",
+ "selected": false,
+ "text": "79",
+ "value": "79"
+ },
+ {
+ "$$hashKey": "object:555",
+ "selected": false,
+ "text": "8",
+ "value": "8"
+ },
+ {
+ "$$hashKey": "object:556",
+ "selected": false,
+ "text": "9",
+ "value": "9"
+ },
+ {
+ "$$hashKey": "object:557",
+ "selected": false,
+ "text": "Agg Therm Mgn 1 system_board (7.1)",
+ "value": "Agg Therm Mgn 1 system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:558",
+ "selected": false,
+ "text": "Agg Therm Mgn 2 system_board (7.2)",
+ "value": "Agg Therm Mgn 2 system_board (7.2)"
+ },
+ {
+ "$$hashKey": "object:559",
+ "selected": false,
+ "text": "BB +12.0V system_board (7.1)",
+ "value": "BB +12.0V system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:560",
+ "selected": false,
+ "text": "BB +3.3V Vbat system_board (7.1)",
+ "value": "BB +3.3V Vbat system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:561",
+ "selected": false,
+ "text": "BB BMC Temp system_board (7.1)",
+ "value": "BB BMC Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:562",
+ "selected": false,
+ "text": "BB Lft Rear Temp system_board (7.1)",
+ "value": "BB Lft Rear Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:563",
+ "selected": false,
+ "text": "BB P1 VR Temp system_board (7.1)",
+ "value": "BB P1 VR Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:564",
+ "selected": false,
+ "text": "BB P2 VR Temp system_board (7.2)",
+ "value": "BB P2 VR Temp system_board (7.2)"
+ },
+ {
+ "$$hashKey": "object:565",
+ "selected": false,
+ "text": "BB Rt Rear Temp system_board (7.1)",
+ "value": "BB Rt Rear Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:566",
+ "selected": false,
+ "text": "DIMM Thrm Mrgn 1 memory_module (8.1)",
+ "value": "DIMM Thrm Mrgn 1 memory_module (8.1)"
+ },
+ {
+ "$$hashKey": "object:567",
+ "selected": false,
+ "text": "DIMM Thrm Mrgn 3 memory_module (8.3)",
+ "value": "DIMM Thrm Mrgn 3 memory_module (8.3)"
+ },
+ {
+ "$$hashKey": "object:568",
+ "selected": false,
+ "text": "DRAM",
+ "value": "DRAM"
+ },
+ {
+ "$$hashKey": "object:569",
+ "selected": false,
+ "text": "Exit Air Temp system_board (7.1)",
+ "value": "Exit Air Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:570",
+ "selected": false,
+ "text": "Front Panel Temp front_panel_board (12.1)",
+ "value": "Front Panel Temp front_panel_board (12.1)"
+ },
+ {
+ "$$hashKey": "object:571",
+ "selected": false,
+ "text": "HSBP 1 Temp drive_backplane (15.1)",
+ "value": "HSBP 1 Temp drive_backplane (15.1)"
+ },
+ {
+ "$$hashKey": "object:572",
+ "selected": false,
+ "text": "L1-dcache-load-misses",
+ "value": "L1-dcache-load-misses"
+ },
+ {
+ "$$hashKey": "object:573",
+ "selected": false,
+ "text": "L1-dcache-load-misses-rate",
+ "value": "L1-dcache-load-misses-rate"
+ },
+ {
+ "$$hashKey": "object:574",
+ "selected": false,
+ "text": "L1-dcache-loads",
+ "value": "L1-dcache-loads"
+ },
+ {
+ "$$hashKey": "object:575",
+ "selected": false,
+ "text": "L1-dcache-loads-rate",
+ "value": "L1-dcache-loads-rate"
+ },
+ {
+ "$$hashKey": "object:576",
+ "selected": false,
+ "text": "L1-dcache-stores",
+ "value": "L1-dcache-stores"
+ },
+ {
+ "$$hashKey": "object:577",
+ "selected": false,
+ "text": "L1-icache-load-misses",
+ "value": "L1-icache-load-misses"
+ },
+ {
+ "$$hashKey": "object:578",
+ "selected": false,
+ "text": "L2_RQSTS.ALL_CODE_RD",
+ "value": "L2_RQSTS.ALL_CODE_RD"
+ },
+ {
+ "$$hashKey": "object:579",
+ "selected": false,
+ "text": "L2_RQSTS.CODE_RD_HIT",
+ "value": "L2_RQSTS.CODE_RD_HIT"
+ },
+ {
+ "$$hashKey": "object:580",
+ "selected": false,
+ "text": "L2_RQSTS.CODE_RD_HIT-rate",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ },
+ {
+ "$$hashKey": "object:581",
+ "selected": false,
+ "text": "L2_RQSTS.CODE_RD_MISS",
+ "value": "L2_RQSTS.CODE_RD_MISS"
+ },
+ {
+ "$$hashKey": "object:582",
+ "selected": false,
+ "text": "L2_RQSTS.CODE_RD_MISS-rate",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ },
+ {
+ "$$hashKey": "object:583",
+ "selected": false,
+ "text": "LAN NIC Temp system_board (7.1)",
+ "value": "LAN NIC Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:584",
+ "selected": false,
+ "text": "LLC-load-misses",
+ "value": "LLC-load-misses"
+ },
+ {
+ "$$hashKey": "object:585",
+ "selected": false,
+ "text": "LLC-load-misses-rate",
+ "value": "LLC-load-misses-rate"
+ },
+ {
+ "$$hashKey": "object:586",
+ "selected": false,
+ "text": "LLC-loads",
+ "value": "LLC-loads"
+ },
+ {
+ "$$hashKey": "object:587",
+ "selected": false,
+ "text": "LLC-loads-rate",
+ "value": "LLC-loads-rate"
+ },
+ {
+ "$$hashKey": "object:588",
+ "selected": false,
+ "text": "LLC-store-misses",
+ "value": "LLC-store-misses"
+ },
+ {
+ "$$hashKey": "object:589",
+ "selected": false,
+ "text": "LLC-stores",
+ "value": "LLC-stores"
+ },
+ {
+ "$$hashKey": "object:590",
+ "selected": false,
+ "text": "P1 DTS Therm Mgn processor (3.1)",
+ "value": "P1 DTS Therm Mgn processor (3.1)"
+ },
+ {
+ "$$hashKey": "object:591",
+ "selected": false,
+ "text": "P2 DTS Therm Mgn processor (3.2)",
+ "value": "P2 DTS Therm Mgn processor (3.2)"
+ },
+ {
+ "$$hashKey": "object:592",
+ "selected": false,
+ "text": "PS1 Input Power power_supply (10.1)",
+ "value": "PS1 Input Power power_supply (10.1)"
+ },
+ {
+ "$$hashKey": "object:593",
+ "selected": false,
+ "text": "PS1 Temperature power_supply (10.1)",
+ "value": "PS1 Temperature power_supply (10.1)"
+ },
+ {
+ "$$hashKey": "object:594",
+ "selected": false,
+ "text": "Riser 1 Temp system_internal_expansion_board (16.1)",
+ "value": "Riser 1 Temp system_internal_expansion_board (16.1)"
+ },
+ {
+ "$$hashKey": "object:595",
+ "selected": false,
+ "text": "Riser 2 Temp system_internal_expansion_board (16.2)",
+ "value": "Riser 2 Temp system_internal_expansion_board (16.2)"
+ },
+ {
+ "$$hashKey": "object:596",
+ "selected": false,
+ "text": "Riser 3 Temp system_internal_expansion_board (16.3)",
+ "value": "Riser 3 Temp system_internal_expansion_board (16.3)"
+ },
+ {
+ "$$hashKey": "object:597",
+ "selected": false,
+ "text": "SSB Temp system_board (7.1)",
+ "value": "SSB Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:598",
+ "selected": false,
+ "text": "System Airflow system_chassis (23.1)",
+ "value": "System Airflow system_chassis (23.1)"
+ },
+ {
+ "$$hashKey": "object:599",
+ "selected": false,
+ "text": "System Fan 1 fan_cooling (29.1)",
+ "value": "System Fan 1 fan_cooling (29.1)"
+ },
+ {
+ "$$hashKey": "object:600",
+ "selected": false,
+ "text": "System Fan 2 fan_cooling (29.2)",
+ "value": "System Fan 2 fan_cooling (29.2)"
+ },
+ {
+ "$$hashKey": "object:601",
+ "selected": false,
+ "text": "System Fan 3 fan_cooling (29.3)",
+ "value": "System Fan 3 fan_cooling (29.3)"
+ },
+ {
+ "$$hashKey": "object:602",
+ "selected": false,
+ "text": "System Fan 4 fan_cooling (29.4)",
+ "value": "System Fan 4 fan_cooling (29.4)"
+ },
+ {
+ "$$hashKey": "object:603",
+ "selected": false,
+ "text": "System Fan 5 fan_cooling (29.5)",
+ "value": "System Fan 5 fan_cooling (29.5)"
+ },
+ {
+ "$$hashKey": "object:604",
+ "selected": false,
+ "text": "System Fan 6 fan_cooling (29.6)",
+ "value": "System Fan 6 fan_cooling (29.6)"
+ },
+ {
+ "$$hashKey": "object:605",
+ "selected": false,
+ "text": "TSC",
+ "value": "TSC"
+ },
+ {
+ "$$hashKey": "object:606",
+ "selected": false,
+ "text": "average",
+ "value": "average"
+ },
+ {
+ "$$hashKey": "object:607",
+ "selected": false,
+ "text": "branch-load-misses",
+ "value": "branch-load-misses"
+ },
+ {
+ "$$hashKey": "object:608",
+ "selected": false,
+ "text": "branch-loads",
+ "value": "branch-loads"
+ },
+ {
+ "$$hashKey": "object:609",
+ "selected": false,
+ "text": "branch-misses",
+ "value": "branch-misses"
+ },
+ {
+ "$$hashKey": "object:610",
+ "selected": false,
+ "text": "branches",
+ "value": "branches"
+ },
+ {
+ "$$hashKey": "object:611",
+ "selected": false,
+ "text": "bus-cycles",
+ "value": "bus-cycles"
+ },
+ {
+ "$$hashKey": "object:612",
+ "selected": false,
+ "text": "busy",
+ "value": "busy"
+ },
+ {
+ "$$hashKey": "object:613",
+ "selected": false,
+ "text": "c0",
+ "value": "c0"
+ },
+ {
+ "$$hashKey": "object:614",
+ "selected": false,
+ "text": "c1",
+ "value": "c1"
+ },
+ {
+ "$$hashKey": "object:615",
+ "selected": false,
+ "text": "cache-misses",
+ "value": "cache-misses"
+ },
+ {
+ "$$hashKey": "object:616",
+ "selected": false,
+ "text": "cache-references",
+ "value": "cache-references"
+ },
+ {
+ "$$hashKey": "object:617",
+ "selected": false,
+ "text": "cpu-cycles",
+ "value": "cpu-cycles"
+ },
+ {
+ "$$hashKey": "object:618",
+ "selected": false,
+ "text": "dTLB-load-misses",
+ "value": "dTLB-load-misses"
+ },
+ {
+ "$$hashKey": "object:619",
+ "selected": false,
+ "text": "dTLB-loads",
+ "value": "dTLB-loads"
+ },
+ {
+ "$$hashKey": "object:620",
+ "selected": false,
+ "text": "dTLB-store-misses",
+ "value": "dTLB-store-misses"
+ },
+ {
+ "$$hashKey": "object:621",
+ "selected": false,
+ "text": "dTLB-stores",
+ "value": "dTLB-stores"
+ },
+ {
+ "$$hashKey": "object:622",
+ "selected": false,
+ "text": "iTLB-load-misses",
+ "value": "iTLB-load-misses"
+ },
+ {
+ "$$hashKey": "object:623",
+ "selected": false,
+ "text": "iTLB-loads",
+ "value": "iTLB-loads"
+ },
+ {
+ "$$hashKey": "object:624",
+ "selected": false,
+ "text": "idle",
+ "value": "idle"
+ },
+ {
+ "$$hashKey": "object:625",
+ "selected": false,
+ "text": "instructions",
+ "value": "instructions"
+ },
+ {
+ "$$hashKey": "object:626",
+ "selected": false,
+ "text": "instructions-rate",
+ "value": "instructions-rate"
+ },
+ {
+ "$$hashKey": "object:627",
+ "selected": false,
+ "text": "interrupt",
+ "value": "interrupt"
+ },
+ {
+ "$$hashKey": "object:628",
+ "selected": false,
+ "text": "llc",
+ "value": "llc"
+ },
+ {
+ "$$hashKey": "object:629",
+ "selected": false,
+ "text": "local",
+ "value": "local"
+ },
+ {
+ "$$hashKey": "object:630",
+ "selected": false,
+ "text": "nice",
+ "value": "nice"
+ },
+ {
+ "$$hashKey": "object:631",
+ "selected": false,
+ "text": "percent-MTT CPU1 processor (3.1)",
+ "value": "percent-MTT CPU1 processor (3.1)"
+ },
+ {
+ "$$hashKey": "object:632",
+ "selected": false,
+ "text": "percent-MTT CPU2 processor (3.2)",
+ "value": "percent-MTT CPU2 processor (3.2)"
+ },
+ {
+ "$$hashKey": "object:633",
+ "selected": false,
+ "text": "percent-P1 Therm Ctrl % processor (3.1)",
+ "value": "percent-P1 Therm Ctrl % processor (3.1)"
+ },
+ {
+ "$$hashKey": "object:634",
+ "selected": false,
+ "text": "percent-P2 Therm Ctrl % processor (3.2)",
+ "value": "percent-P2 Therm Ctrl % processor (3.2)"
+ },
+ {
+ "$$hashKey": "object:635",
+ "selected": false,
+ "text": "percent-PS1 Curr Out % power_supply (10.1)",
+ "value": "percent-PS1 Curr Out % power_supply (10.1)"
+ },
+ {
+ "$$hashKey": "object:636",
+ "selected": false,
+ "text": "pkg",
+ "value": "pkg"
+ },
+ {
+ "$$hashKey": "object:637",
+ "selected": false,
+ "text": "remote",
+ "value": "remote"
+ },
+ {
+ "$$hashKey": "object:638",
+ "selected": false,
+ "text": "softirq",
+ "value": "softirq"
+ },
+ {
+ "$$hashKey": "object:639",
+ "selected": false,
+ "text": "steal",
+ "value": "steal"
+ },
+ {
+ "$$hashKey": "object:640",
+ "selected": false,
+ "text": "system",
+ "value": "system"
+ },
+ {
+ "$$hashKey": "object:641",
+ "selected": false,
+ "text": "user",
+ "value": "user"
+ },
+ {
+ "$$hashKey": "object:642",
+ "selected": false,
+ "text": "wait",
+ "value": "wait"
+ }
+ ],
+ "query": "show tag values with key = \"type_instance\"",
+ "refresh": 0,
+ "regex": null,
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {
+ "$$hashKey": "object:814",
+ "selected": true,
+ "text": "12",
+ "value": "12"
+ },
+ "datasource": "vCMTS-collectd-stats",
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "CPU_2",
+ "options": [
+ {
+ "$$hashKey": "object:810",
+ "selected": false,
+ "text": "0",
+ "value": "0"
+ },
+ {
+ "$$hashKey": "object:811",
+ "selected": false,
+ "text": "1",
+ "value": "1"
+ },
+ {
+ "$$hashKey": "object:812",
+ "selected": false,
+ "text": "10",
+ "value": "10"
+ },
+ {
+ "$$hashKey": "object:813",
+ "selected": false,
+ "text": "11",
+ "value": "11"
+ },
+ {
+ "$$hashKey": "object:814",
+ "selected": true,
+ "text": "12",
+ "value": "12"
+ },
+ {
+ "$$hashKey": "object:815",
+ "selected": false,
+ "text": "13",
+ "value": "13"
+ },
+ {
+ "$$hashKey": "object:816",
+ "selected": false,
+ "text": "14",
+ "value": "14"
+ },
+ {
+ "$$hashKey": "object:817",
+ "selected": false,
+ "text": "15",
+ "value": "15"
+ },
+ {
+ "$$hashKey": "object:818",
+ "selected": false,
+ "text": "16",
+ "value": "16"
+ },
+ {
+ "$$hashKey": "object:819",
+ "selected": false,
+ "text": "17",
+ "value": "17"
+ },
+ {
+ "$$hashKey": "object:820",
+ "selected": false,
+ "text": "18",
+ "value": "18"
+ },
+ {
+ "$$hashKey": "object:821",
+ "selected": false,
+ "text": "19",
+ "value": "19"
+ },
+ {
+ "$$hashKey": "object:822",
+ "selected": false,
+ "text": "2",
+ "value": "2"
+ },
+ {
+ "$$hashKey": "object:823",
+ "selected": false,
+ "text": "20",
+ "value": "20"
+ },
+ {
+ "$$hashKey": "object:824",
+ "selected": false,
+ "text": "21",
+ "value": "21"
+ },
+ {
+ "$$hashKey": "object:825",
+ "selected": false,
+ "text": "22",
+ "value": "22"
+ },
+ {
+ "$$hashKey": "object:826",
+ "selected": false,
+ "text": "23",
+ "value": "23"
+ },
+ {
+ "$$hashKey": "object:827",
+ "selected": false,
+ "text": "24",
+ "value": "24"
+ },
+ {
+ "$$hashKey": "object:828",
+ "selected": false,
+ "text": "25",
+ "value": "25"
+ },
+ {
+ "$$hashKey": "object:829",
+ "selected": false,
+ "text": "26",
+ "value": "26"
+ },
+ {
+ "$$hashKey": "object:830",
+ "selected": false,
+ "text": "27",
+ "value": "27"
+ },
+ {
+ "$$hashKey": "object:831",
+ "selected": false,
+ "text": "28",
+ "value": "28"
+ },
+ {
+ "$$hashKey": "object:832",
+ "selected": false,
+ "text": "29",
+ "value": "29"
+ },
+ {
+ "$$hashKey": "object:833",
+ "selected": false,
+ "text": "3",
+ "value": "3"
+ },
+ {
+ "$$hashKey": "object:834",
+ "selected": false,
+ "text": "30",
+ "value": "30"
+ },
+ {
+ "$$hashKey": "object:835",
+ "selected": false,
+ "text": "31",
+ "value": "31"
+ },
+ {
+ "$$hashKey": "object:836",
+ "selected": false,
+ "text": "32",
+ "value": "32"
+ },
+ {
+ "$$hashKey": "object:837",
+ "selected": false,
+ "text": "33",
+ "value": "33"
+ },
+ {
+ "$$hashKey": "object:838",
+ "selected": false,
+ "text": "34",
+ "value": "34"
+ },
+ {
+ "$$hashKey": "object:839",
+ "selected": false,
+ "text": "35",
+ "value": "35"
+ },
+ {
+ "$$hashKey": "object:840",
+ "selected": false,
+ "text": "36",
+ "value": "36"
+ },
+ {
+ "$$hashKey": "object:841",
+ "selected": false,
+ "text": "37",
+ "value": "37"
+ },
+ {
+ "$$hashKey": "object:842",
+ "selected": false,
+ "text": "38",
+ "value": "38"
+ },
+ {
+ "$$hashKey": "object:843",
+ "selected": false,
+ "text": "39",
+ "value": "39"
+ },
+ {
+ "$$hashKey": "object:844",
+ "selected": false,
+ "text": "4",
+ "value": "4"
+ },
+ {
+ "$$hashKey": "object:845",
+ "selected": false,
+ "text": "40",
+ "value": "40"
+ },
+ {
+ "$$hashKey": "object:846",
+ "selected": false,
+ "text": "41",
+ "value": "41"
+ },
+ {
+ "$$hashKey": "object:847",
+ "selected": false,
+ "text": "42",
+ "value": "42"
+ },
+ {
+ "$$hashKey": "object:848",
+ "selected": false,
+ "text": "43",
+ "value": "43"
+ },
+ {
+ "$$hashKey": "object:849",
+ "selected": false,
+ "text": "44",
+ "value": "44"
+ },
+ {
+ "$$hashKey": "object:850",
+ "selected": false,
+ "text": "45",
+ "value": "45"
+ },
+ {
+ "$$hashKey": "object:851",
+ "selected": false,
+ "text": "46",
+ "value": "46"
+ },
+ {
+ "$$hashKey": "object:852",
+ "selected": false,
+ "text": "47",
+ "value": "47"
+ },
+ {
+ "$$hashKey": "object:853",
+ "selected": false,
+ "text": "48",
+ "value": "48"
+ },
+ {
+ "$$hashKey": "object:854",
+ "selected": false,
+ "text": "49",
+ "value": "49"
+ },
+ {
+ "$$hashKey": "object:855",
+ "selected": false,
+ "text": "5",
+ "value": "5"
+ },
+ {
+ "$$hashKey": "object:856",
+ "selected": false,
+ "text": "50",
+ "value": "50"
+ },
+ {
+ "$$hashKey": "object:857",
+ "selected": false,
+ "text": "51",
+ "value": "51"
+ },
+ {
+ "$$hashKey": "object:858",
+ "selected": false,
+ "text": "52",
+ "value": "52"
+ },
+ {
+ "$$hashKey": "object:859",
+ "selected": false,
+ "text": "53",
+ "value": "53"
+ },
+ {
+ "$$hashKey": "object:860",
+ "selected": false,
+ "text": "54",
+ "value": "54"
+ },
+ {
+ "$$hashKey": "object:861",
+ "selected": false,
+ "text": "55",
+ "value": "55"
+ },
+ {
+ "$$hashKey": "object:862",
+ "selected": false,
+ "text": "56",
+ "value": "56"
+ },
+ {
+ "$$hashKey": "object:863",
+ "selected": false,
+ "text": "57",
+ "value": "57"
+ },
+ {
+ "$$hashKey": "object:864",
+ "selected": false,
+ "text": "58",
+ "value": "58"
+ },
+ {
+ "$$hashKey": "object:865",
+ "selected": false,
+ "text": "59",
+ "value": "59"
+ },
+ {
+ "$$hashKey": "object:866",
+ "selected": false,
+ "text": "6",
+ "value": "6"
+ },
+ {
+ "$$hashKey": "object:867",
+ "selected": false,
+ "text": "60",
+ "value": "60"
+ },
+ {
+ "$$hashKey": "object:868",
+ "selected": false,
+ "text": "61",
+ "value": "61"
+ },
+ {
+ "$$hashKey": "object:869",
+ "selected": false,
+ "text": "62",
+ "value": "62"
+ },
+ {
+ "$$hashKey": "object:870",
+ "selected": false,
+ "text": "63",
+ "value": "63"
+ },
+ {
+ "$$hashKey": "object:871",
+ "selected": false,
+ "text": "64",
+ "value": "64"
+ },
+ {
+ "$$hashKey": "object:872",
+ "selected": false,
+ "text": "65",
+ "value": "65"
+ },
+ {
+ "$$hashKey": "object:873",
+ "selected": false,
+ "text": "66",
+ "value": "66"
+ },
+ {
+ "$$hashKey": "object:874",
+ "selected": false,
+ "text": "67",
+ "value": "67"
+ },
+ {
+ "$$hashKey": "object:875",
+ "selected": false,
+ "text": "68",
+ "value": "68"
+ },
+ {
+ "$$hashKey": "object:876",
+ "selected": false,
+ "text": "69",
+ "value": "69"
+ },
+ {
+ "$$hashKey": "object:877",
+ "selected": false,
+ "text": "7",
+ "value": "7"
+ },
+ {
+ "$$hashKey": "object:878",
+ "selected": false,
+ "text": "70",
+ "value": "70"
+ },
+ {
+ "$$hashKey": "object:879",
+ "selected": false,
+ "text": "71",
+ "value": "71"
+ },
+ {
+ "$$hashKey": "object:880",
+ "selected": false,
+ "text": "72",
+ "value": "72"
+ },
+ {
+ "$$hashKey": "object:881",
+ "selected": false,
+ "text": "73",
+ "value": "73"
+ },
+ {
+ "$$hashKey": "object:882",
+ "selected": false,
+ "text": "74",
+ "value": "74"
+ },
+ {
+ "$$hashKey": "object:883",
+ "selected": false,
+ "text": "75",
+ "value": "75"
+ },
+ {
+ "$$hashKey": "object:884",
+ "selected": false,
+ "text": "76",
+ "value": "76"
+ },
+ {
+ "$$hashKey": "object:885",
+ "selected": false,
+ "text": "77",
+ "value": "77"
+ },
+ {
+ "$$hashKey": "object:886",
+ "selected": false,
+ "text": "78",
+ "value": "78"
+ },
+ {
+ "$$hashKey": "object:887",
+ "selected": false,
+ "text": "79",
+ "value": "79"
+ },
+ {
+ "$$hashKey": "object:888",
+ "selected": false,
+ "text": "8",
+ "value": "8"
+ },
+ {
+ "$$hashKey": "object:889",
+ "selected": false,
+ "text": "9",
+ "value": "9"
+ },
+ {
+ "$$hashKey": "object:890",
+ "selected": false,
+ "text": "Agg Therm Mgn 1 system_board (7.1)",
+ "value": "Agg Therm Mgn 1 system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:891",
+ "selected": false,
+ "text": "Agg Therm Mgn 2 system_board (7.2)",
+ "value": "Agg Therm Mgn 2 system_board (7.2)"
+ },
+ {
+ "$$hashKey": "object:892",
+ "selected": false,
+ "text": "BB +12.0V system_board (7.1)",
+ "value": "BB +12.0V system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:893",
+ "selected": false,
+ "text": "BB +3.3V Vbat system_board (7.1)",
+ "value": "BB +3.3V Vbat system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:894",
+ "selected": false,
+ "text": "BB BMC Temp system_board (7.1)",
+ "value": "BB BMC Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:895",
+ "selected": false,
+ "text": "BB Lft Rear Temp system_board (7.1)",
+ "value": "BB Lft Rear Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:896",
+ "selected": false,
+ "text": "BB P1 VR Temp system_board (7.1)",
+ "value": "BB P1 VR Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:897",
+ "selected": false,
+ "text": "BB P2 VR Temp system_board (7.2)",
+ "value": "BB P2 VR Temp system_board (7.2)"
+ },
+ {
+ "$$hashKey": "object:898",
+ "selected": false,
+ "text": "BB Rt Rear Temp system_board (7.1)",
+ "value": "BB Rt Rear Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:899",
+ "selected": false,
+ "text": "DIMM Thrm Mrgn 1 memory_module (8.1)",
+ "value": "DIMM Thrm Mrgn 1 memory_module (8.1)"
+ },
+ {
+ "$$hashKey": "object:900",
+ "selected": false,
+ "text": "DIMM Thrm Mrgn 3 memory_module (8.3)",
+ "value": "DIMM Thrm Mrgn 3 memory_module (8.3)"
+ },
+ {
+ "$$hashKey": "object:901",
+ "selected": false,
+ "text": "DRAM",
+ "value": "DRAM"
+ },
+ {
+ "$$hashKey": "object:902",
+ "selected": false,
+ "text": "Exit Air Temp system_board (7.1)",
+ "value": "Exit Air Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:903",
+ "selected": false,
+ "text": "Front Panel Temp front_panel_board (12.1)",
+ "value": "Front Panel Temp front_panel_board (12.1)"
+ },
+ {
+ "$$hashKey": "object:904",
+ "selected": false,
+ "text": "HSBP 1 Temp drive_backplane (15.1)",
+ "value": "HSBP 1 Temp drive_backplane (15.1)"
+ },
+ {
+ "$$hashKey": "object:905",
+ "selected": false,
+ "text": "L1-dcache-load-misses",
+ "value": "L1-dcache-load-misses"
+ },
+ {
+ "$$hashKey": "object:906",
+ "selected": false,
+ "text": "L1-dcache-load-misses-rate",
+ "value": "L1-dcache-load-misses-rate"
+ },
+ {
+ "$$hashKey": "object:907",
+ "selected": false,
+ "text": "L1-dcache-loads",
+ "value": "L1-dcache-loads"
+ },
+ {
+ "$$hashKey": "object:908",
+ "selected": false,
+ "text": "L1-dcache-loads-rate",
+ "value": "L1-dcache-loads-rate"
+ },
+ {
+ "$$hashKey": "object:909",
+ "selected": false,
+ "text": "L1-dcache-stores",
+ "value": "L1-dcache-stores"
+ },
+ {
+ "$$hashKey": "object:910",
+ "selected": false,
+ "text": "L1-icache-load-misses",
+ "value": "L1-icache-load-misses"
+ },
+ {
+ "$$hashKey": "object:911",
+ "selected": false,
+ "text": "L2_RQSTS.ALL_CODE_RD",
+ "value": "L2_RQSTS.ALL_CODE_RD"
+ },
+ {
+ "$$hashKey": "object:912",
+ "selected": false,
+ "text": "L2_RQSTS.CODE_RD_HIT",
+ "value": "L2_RQSTS.CODE_RD_HIT"
+ },
+ {
+ "$$hashKey": "object:913",
+ "selected": false,
+ "text": "L2_RQSTS.CODE_RD_HIT-rate",
+ "value": "L2_RQSTS.CODE_RD_HIT-rate"
+ },
+ {
+ "$$hashKey": "object:914",
+ "selected": false,
+ "text": "L2_RQSTS.CODE_RD_MISS",
+ "value": "L2_RQSTS.CODE_RD_MISS"
+ },
+ {
+ "$$hashKey": "object:915",
+ "selected": false,
+ "text": "L2_RQSTS.CODE_RD_MISS-rate",
+ "value": "L2_RQSTS.CODE_RD_MISS-rate"
+ },
+ {
+ "$$hashKey": "object:916",
+ "selected": false,
+ "text": "LAN NIC Temp system_board (7.1)",
+ "value": "LAN NIC Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:917",
+ "selected": false,
+ "text": "LLC-load-misses",
+ "value": "LLC-load-misses"
+ },
+ {
+ "$$hashKey": "object:918",
+ "selected": false,
+ "text": "LLC-load-misses-rate",
+ "value": "LLC-load-misses-rate"
+ },
+ {
+ "$$hashKey": "object:919",
+ "selected": false,
+ "text": "LLC-loads",
+ "value": "LLC-loads"
+ },
+ {
+ "$$hashKey": "object:920",
+ "selected": false,
+ "text": "LLC-loads-rate",
+ "value": "LLC-loads-rate"
+ },
+ {
+ "$$hashKey": "object:921",
+ "selected": false,
+ "text": "LLC-store-misses",
+ "value": "LLC-store-misses"
+ },
+ {
+ "$$hashKey": "object:922",
+ "selected": false,
+ "text": "LLC-stores",
+ "value": "LLC-stores"
+ },
+ {
+ "$$hashKey": "object:923",
+ "selected": false,
+ "text": "P1 DTS Therm Mgn processor (3.1)",
+ "value": "P1 DTS Therm Mgn processor (3.1)"
+ },
+ {
+ "$$hashKey": "object:924",
+ "selected": false,
+ "text": "P2 DTS Therm Mgn processor (3.2)",
+ "value": "P2 DTS Therm Mgn processor (3.2)"
+ },
+ {
+ "$$hashKey": "object:925",
+ "selected": false,
+ "text": "PS1 Input Power power_supply (10.1)",
+ "value": "PS1 Input Power power_supply (10.1)"
+ },
+ {
+ "$$hashKey": "object:926",
+ "selected": false,
+ "text": "PS1 Temperature power_supply (10.1)",
+ "value": "PS1 Temperature power_supply (10.1)"
+ },
+ {
+ "$$hashKey": "object:927",
+ "selected": false,
+ "text": "Riser 1 Temp system_internal_expansion_board (16.1)",
+ "value": "Riser 1 Temp system_internal_expansion_board (16.1)"
+ },
+ {
+ "$$hashKey": "object:928",
+ "selected": false,
+ "text": "Riser 2 Temp system_internal_expansion_board (16.2)",
+ "value": "Riser 2 Temp system_internal_expansion_board (16.2)"
+ },
+ {
+ "$$hashKey": "object:929",
+ "selected": false,
+ "text": "Riser 3 Temp system_internal_expansion_board (16.3)",
+ "value": "Riser 3 Temp system_internal_expansion_board (16.3)"
+ },
+ {
+ "$$hashKey": "object:930",
+ "selected": false,
+ "text": "SSB Temp system_board (7.1)",
+ "value": "SSB Temp system_board (7.1)"
+ },
+ {
+ "$$hashKey": "object:931",
+ "selected": false,
+ "text": "System Airflow system_chassis (23.1)",
+ "value": "System Airflow system_chassis (23.1)"
+ },
+ {
+ "$$hashKey": "object:932",
+ "selected": false,
+ "text": "System Fan 1 fan_cooling (29.1)",
+ "value": "System Fan 1 fan_cooling (29.1)"
+ },
+ {
+ "$$hashKey": "object:933",
+ "selected": false,
+ "text": "System Fan 2 fan_cooling (29.2)",
+ "value": "System Fan 2 fan_cooling (29.2)"
+ },
+ {
+ "$$hashKey": "object:934",
+ "selected": false,
+ "text": "System Fan 3 fan_cooling (29.3)",
+ "value": "System Fan 3 fan_cooling (29.3)"
+ },
+ {
+ "$$hashKey": "object:935",
+ "selected": false,
+ "text": "System Fan 4 fan_cooling (29.4)",
+ "value": "System Fan 4 fan_cooling (29.4)"
+ },
+ {
+ "$$hashKey": "object:936",
+ "selected": false,
+ "text": "System Fan 5 fan_cooling (29.5)",
+ "value": "System Fan 5 fan_cooling (29.5)"
+ },
+ {
+ "$$hashKey": "object:937",
+ "selected": false,
+ "text": "System Fan 6 fan_cooling (29.6)",
+ "value": "System Fan 6 fan_cooling (29.6)"
+ },
+ {
+ "$$hashKey": "object:938",
+ "selected": false,
+ "text": "TSC",
+ "value": "TSC"
+ },
+ {
+ "$$hashKey": "object:939",
+ "selected": false,
+ "text": "average",
+ "value": "average"
+ },
+ {
+ "$$hashKey": "object:940",
+ "selected": false,
+ "text": "branch-load-misses",
+ "value": "branch-load-misses"
+ },
+ {
+ "$$hashKey": "object:941",
+ "selected": false,
+ "text": "branch-loads",
+ "value": "branch-loads"
+ },
+ {
+ "$$hashKey": "object:942",
+ "selected": false,
+ "text": "branch-misses",
+ "value": "branch-misses"
+ },
+ {
+ "$$hashKey": "object:943",
+ "selected": false,
+ "text": "branches",
+ "value": "branches"
+ },
+ {
+ "$$hashKey": "object:944",
+ "selected": false,
+ "text": "bus-cycles",
+ "value": "bus-cycles"
+ },
+ {
+ "$$hashKey": "object:945",
+ "selected": false,
+ "text": "busy",
+ "value": "busy"
+ },
+ {
+ "$$hashKey": "object:946",
+ "selected": false,
+ "text": "c0",
+ "value": "c0"
+ },
+ {
+ "$$hashKey": "object:947",
+ "selected": false,
+ "text": "c1",
+ "value": "c1"
+ },
+ {
+ "$$hashKey": "object:948",
+ "selected": false,
+ "text": "cache-misses",
+ "value": "cache-misses"
+ },
+ {
+ "$$hashKey": "object:949",
+ "selected": false,
+ "text": "cache-references",
+ "value": "cache-references"
+ },
+ {
+ "$$hashKey": "object:950",
+ "selected": false,
+ "text": "cpu-cycles",
+ "value": "cpu-cycles"
+ },
+ {
+ "$$hashKey": "object:951",
+ "selected": false,
+ "text": "dTLB-load-misses",
+ "value": "dTLB-load-misses"
+ },
+ {
+ "$$hashKey": "object:952",
+ "selected": false,
+ "text": "dTLB-loads",
+ "value": "dTLB-loads"
+ },
+ {
+ "$$hashKey": "object:953",
+ "selected": false,
+ "text": "dTLB-store-misses",
+ "value": "dTLB-store-misses"
+ },
+ {
+ "$$hashKey": "object:954",
+ "selected": false,
+ "text": "dTLB-stores",
+ "value": "dTLB-stores"
+ },
+ {
+ "$$hashKey": "object:955",
+ "selected": false,
+ "text": "iTLB-load-misses",
+ "value": "iTLB-load-misses"
+ },
+ {
+ "$$hashKey": "object:956",
+ "selected": false,
+ "text": "iTLB-loads",
+ "value": "iTLB-loads"
+ },
+ {
+ "$$hashKey": "object:957",
+ "selected": false,
+ "text": "idle",
+ "value": "idle"
+ },
+ {
+ "$$hashKey": "object:958",
+ "selected": false,
+ "text": "instructions",
+ "value": "instructions"
+ },
+ {
+ "$$hashKey": "object:959",
+ "selected": false,
+ "text": "instructions-rate",
+ "value": "instructions-rate"
+ },
+ {
+ "$$hashKey": "object:960",
+ "selected": false,
+ "text": "interrupt",
+ "value": "interrupt"
+ },
+ {
+ "$$hashKey": "object:961",
+ "selected": false,
+ "text": "llc",
+ "value": "llc"
+ },
+ {
+ "$$hashKey": "object:962",
+ "selected": false,
+ "text": "local",
+ "value": "local"
+ },
+ {
+ "$$hashKey": "object:963",
+ "selected": false,
+ "text": "nice",
+ "value": "nice"
+ },
+ {
+ "$$hashKey": "object:964",
+ "selected": false,
+ "text": "percent-MTT CPU1 processor (3.1)",
+ "value": "percent-MTT CPU1 processor (3.1)"
+ },
+ {
+ "$$hashKey": "object:965",
+ "selected": false,
+ "text": "percent-MTT CPU2 processor (3.2)",
+ "value": "percent-MTT CPU2 processor (3.2)"
+ },
+ {
+ "$$hashKey": "object:966",
+ "selected": false,
+ "text": "percent-P1 Therm Ctrl % processor (3.1)",
+ "value": "percent-P1 Therm Ctrl % processor (3.1)"
+ },
+ {
+ "$$hashKey": "object:967",
+ "selected": false,
+ "text": "percent-P2 Therm Ctrl % processor (3.2)",
+ "value": "percent-P2 Therm Ctrl % processor (3.2)"
+ },
+ {
+ "$$hashKey": "object:968",
+ "selected": false,
+ "text": "percent-PS1 Curr Out % power_supply (10.1)",
+ "value": "percent-PS1 Curr Out % power_supply (10.1)"
+ },
+ {
+ "$$hashKey": "object:969",
+ "selected": false,
+ "text": "pkg",
+ "value": "pkg"
+ },
+ {
+ "$$hashKey": "object:970",
+ "selected": false,
+ "text": "remote",
+ "value": "remote"
+ },
+ {
+ "$$hashKey": "object:971",
+ "selected": false,
+ "text": "softirq",
+ "value": "softirq"
+ },
+ {
+ "$$hashKey": "object:972",
+ "selected": false,
+ "text": "steal",
+ "value": "steal"
+ },
+ {
+ "$$hashKey": "object:973",
+ "selected": false,
+ "text": "system",
+ "value": "system"
+ },
+ {
+ "$$hashKey": "object:974",
+ "selected": false,
+ "text": "user",
+ "value": "user"
+ },
+ {
+ "$$hashKey": "object:975",
+ "selected": false,
+ "text": "wait",
+ "value": "wait"
+ }
+ ],
+ "query": "show tag values with key = \"type_instance\"",
+ "refresh": 0,
+ "regex": null,
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
+ },
+ "time": {
+ "from": "now-15m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "2s",
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Power Consumption",
+ "uid": "Gbnerihmk",
+ "version": 1
+}
diff --git a/dashboard/vCMTS_SystemSummary.json b/dashboard/vCMTS_SystemSummary.json
new file mode 100644
index 000000000..9566d639e
--- /dev/null
+++ b/dashboard/vCMTS_SystemSummary.json
@@ -0,0 +1,5626 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "links": [],
+ "panels": [
+ {
+ "content": "<h1 align = \"center\">Upstream</h1>",
+ "gridPos": {
+ "h": 2,
+ "w": 10,
+ "x": 0,
+ "y": 0
+ },
+ "id": 29,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h1 align = \"center\">Downstream</h1>",
+ "gridPos": {
+ "h": 2,
+ "w": 10,
+ "x": 10,
+ "y": 0
+ },
+ "id": 30,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h1 align = \"center\">Configuration</h1>",
+ "gridPos": {
+ "h": 2,
+ "w": 4,
+ "x": 20,
+ "y": 0
+ },
+ "id": 31,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "format": "Gbits",
+ "gauge": {
+ "maxValue": 120,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 0,
+ "y": 2
+ },
+ "id": 14,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") / 1000000000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"upstream_tx\" \nWHERE ( \"type\" = 'bits_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "0,0",
+ "title": "Total Upstream Throughput",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 4,
+ "x": 6,
+ "y": 2
+ },
+ "id": 17,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") / 1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"upstream_tx\" \nWHERE ( \"type\" = 'packets_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "select tag value"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Upstream Total Packets",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "format": "Gbits",
+ "gauge": {
+ "maxValue": 120,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 10,
+ "y": 2
+ },
+ "id": 13,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") / 1000000000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_rx\" \nWHERE ( \"type\" = 'bits_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "0,0",
+ "title": "Total Downstream Throughput",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 4,
+ "x": 16,
+ "y": 2
+ },
+ "id": 16,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") / 1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_rx\" \nWHERE ( \"type\" = 'packets_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "select tag value"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Downstream Total Packets",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 4,
+ "x": 20,
+ "y": 2
+ },
+ "id": 25,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"last\") \nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_rx\" \nWHERE ( \"type\" = 'packets_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "select tag value"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Number of Service Groups",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 4,
+ "x": 6,
+ "y": 4
+ },
+ "id": 20,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "B",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"value\") FROM \"downstream_rx\" WHERE (\"type\" = 'average_frame_size_per_second') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Upstream Avg Packet Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 4,
+ "x": 16,
+ "y": 4
+ },
+ "id": 19,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "B",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"value\") FROM \"downstream_rx\" WHERE (\"type\" = 'average_frame_size_per_second') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Dowstream Avg Packet Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 4,
+ "x": 16,
+ "y": 6
+ },
+ "id": 22,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_rx\" \nWHERE ( \"type\" = 'dropped_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Downstream Rx Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 4,
+ "x": 20,
+ "y": 6
+ },
+ "id": 26,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "\nSELECT sum(\"last\") \nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_value\" \nWHERE ( \"type\" = 'active_cms_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "active_cms_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Total Active Subscribers",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 4,
+ "x": 6,
+ "y": 7
+ },
+ "id": 23,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"upstream_rx\" \nWHERE ( \"type\" = 'dropped_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Upstream Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 4,
+ "x": 16,
+ "y": 8
+ },
+ "id": 27,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"downstream_value\" \nWHERE ( \"type\" = 'sched_dropped_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Scheduler Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 5,
+ "gridPos": {
+ "h": 11,
+ "w": 10,
+ "x": 0,
+ "y": 10
+ },
+ "id": 9,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "downstream_rx.sum",
+ "yaxis": 2
+ },
+ {
+ "alias": "Downstream",
+ "yaxis": 2
+ },
+ {
+ "alias": "Upstream",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Watts",
+ "groupBy": [
+ {
+ "params": [
+ "10s"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "ipmi_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type_instance",
+ "operator": "=",
+ "value": "PS1 Input Power power_supply (10.1)"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "power"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Wall Power",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "watt",
+ "label": null,
+ "logBase": 1,
+ "max": "500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "Gbits",
+ "label": null,
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 7,
+ "x": 10,
+ "y": 10
+ },
+ "id": 8,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Watts - Pkg 0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "pkg00"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "power"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "pkg"
+ }
+ ]
+ },
+ {
+ "alias": "Watts - Pkg 1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "turbostat_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "instance",
+ "operator": "=",
+ "value": "pkg01"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "power"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "pkg"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Socket Power Consumption",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "watt",
+ "label": null,
+ "logBase": 1,
+ "max": "500",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 7,
+ "x": 17,
+ "y": 10
+ },
+ "id": 33,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "intel_rdt_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "\nSELECT sum(\"last\") / 1000000\nFROM\n(\n\nSELECT last(\"value\") FROM \"intel_rdt_value\" WHERE (\"host\" = 'localhost' AND \"type\" = 'memory_bandwidth' AND \"type_instance\" = 'local')\nGROUP BY instance\n)\nGROUP BY time(10s) fill(previous)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "localhost"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "memory_bandwidth"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "local"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memory Bandwidth",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "decmbytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#eab839",
+ "1": "#eab839",
+ "2": "#eab839",
+ "3": "#eab839",
+ "4": "#eab839",
+ "5": "#eab839",
+ "6": "#eab839",
+ "7": "#eab839",
+ "8": "#eab839",
+ "9": "#eab839",
+ "10": "#eab839",
+ "11": "#eab839",
+ "12": "#eab839",
+ "13": "#eab839",
+ "14": "#eab839",
+ "15": "#eab839",
+ "16": "#eab839",
+ "17": "#eab839",
+ "18": "#eab839",
+ "19": "#eab839",
+ "20": "#eab839",
+ "21": "#eab839",
+ "22": "#eab839",
+ "23": "#eab839",
+ "24": "#eab839",
+ "25": "#eab839",
+ "26": "#eab839",
+ "27": "#eab839",
+ "28": "#eab839",
+ "29": "#eab839",
+ "30": "#eab839",
+ "31": "#eab839"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "decimals": 2,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 0,
+ "y": 21
+ },
+ "id": 35,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Upstream Throughput Per Service Group",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bitrate (Gbps)",
+ "logBase": 1,
+ "max": "10",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#7eb26d",
+ "1": "#7eb26d",
+ "2": "#7eb26d",
+ "3": "#7eb26d",
+ "4": "#7eb26d",
+ "5": "#7eb26d",
+ "6": "#7eb26d",
+ "7": "#7eb26d",
+ "8": "#7eb26d",
+ "9": "#7eb26d",
+ "10": "#7eb26d",
+ "11": "#7eb26d",
+ "12": "#7eb26d",
+ "13": "#7eb26d",
+ "14": "#7eb26d",
+ "15": "#7eb26d",
+ "16": "#7eb26d",
+ "17": "#7eb26d",
+ "18": "#7eb26d",
+ "19": "#7eb26d",
+ "20": "#7eb26d",
+ "21": "#7eb26d",
+ "22": "#7eb26d",
+ "23": "#7eb26d",
+ "24": "#7eb26d",
+ "25": "#7eb26d",
+ "26": "#7eb26d",
+ "27": "#7eb26d",
+ "28": "#7eb26d",
+ "29": "#7eb26d",
+ "30": "#7eb26d",
+ "31": "#7eb26d"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "decimals": 2,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 12,
+ "y": 21
+ },
+ "id": 37,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "0",
+ "yaxis": 1
+ }
+ ],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000000 FROM \"downstream_rx\" WHERE (\"host\" = 'service_group_0' AND \"type\" = 'bits_per_second') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "downstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Downstream Throughput Per Service Group",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "short",
+ "label": "Bitrate (Gbps)",
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-15m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "2s",
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "System Summary",
+ "uid": "re-aUwhik",
+ "version": 1
+} \ No newline at end of file
diff --git a/dashboard/vCMTS_UpstreamProcessingPerSG.json b/dashboard/vCMTS_UpstreamProcessingPerSG.json
new file mode 100644
index 000000000..0dae3b422
--- /dev/null
+++ b/dashboard/vCMTS_UpstreamProcessingPerSG.json
@@ -0,0 +1,9378 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "iteration": 1539789837956,
+ "links": [],
+ "panels": [
+ {
+ "content": "<h1 align = \"center\">$Scenario_One</h1>",
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 0,
+ "y": 0
+ },
+ "id": 56,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "type": "text"
+ },
+ {
+ "content": "<h1 align = \"center\">$Scenario_Two</h1>",
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 12,
+ "y": 0
+ },
+ "id": 57,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "decimals": 1,
+ "format": "none",
+ "gauge": {
+ "maxValue": 10,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 3,
+ "x": 0,
+ "y": 2
+ },
+ "id": 45,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "L2TP Frame RX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "70%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 3,
+ "y": 2
+ },
+ "id": 49,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX L2TP Frames",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "decimals": 1,
+ "format": "none",
+ "gauge": {
+ "maxValue": 10,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 3,
+ "x": 6,
+ "y": 2
+ },
+ "id": 46,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "70%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 2
+ },
+ "id": 52,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX Packets",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "decimals": 1,
+ "format": "none",
+ "gauge": {
+ "maxValue": 10,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 3,
+ "x": 12,
+ "y": 2
+ },
+ "id": 58,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000000 FROM \"upstream_rx\" WHERE (\"type\" = 'bits_per_second' AND \"type_instance\" = 'rx') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "70%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 15,
+ "y": 2
+ },
+ "id": 60,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX L2TP Frames",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "decimals": 1,
+ "format": "none",
+ "gauge": {
+ "maxValue": 10,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 3,
+ "x": 18,
+ "y": 2
+ },
+ "id": 62,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "L2TP Frame TX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "70%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 21,
+ "y": 2
+ },
+ "id": 64,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX Packets",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 3,
+ "y": 4
+ },
+ "id": 48,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg RX Frame Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 4
+ },
+ "id": 51,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg TX Packet Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 15,
+ "y": 4
+ },
+ "id": 59,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg RX Frame Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 21,
+ "y": 4
+ },
+ "id": 63,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg TX Packet Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 3,
+ "y": 6
+ },
+ "id": 50,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 6
+ },
+ "id": 53,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 15,
+ "y": 6
+ },
+ "id": 61,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 21,
+ "y": 6
+ },
+ "id": 65,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "DOCSIS Frame Extraction": "#508642",
+ "DOCSIS Segment Reassembly": "#70dbed",
+ "Decryption": "#2f575e",
+ "TX": "#052b51",
+ "UEPI Decap": "#0a437c"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 10,
+ "gridPos": {
+ "h": 11,
+ "w": 6,
+ "x": 0,
+ "y": 8
+ },
+ "id": 98,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": false,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TX",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "Ethernet CRC Check",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_eth_crc_check",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "Decryption",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_decryption",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "DOCSIS Frame Extraction",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_docsis_frame_extraction",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "DOCSIS Segment Reassembly",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_docsis_segment_reassembly",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "UEPI Decap",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_uepi_decap",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "UEPI Verification",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_uepi_verification",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "RX",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Cycles per Packet Cycle",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": false,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Cycles",
+ "logBase": 1,
+ "max": "6000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 6,
+ "y": 8
+ },
+ "id": 187,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Non-Empty",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_pkts_present",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "rx_dequeue_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "Empty",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_pkts_not_present",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "rx_dequeue_per_second"
+ }
+ ]
+ }
+ ],
+ "title": "RX Dequeue per Second",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "DOCSIS Frame Extraction": "#508642",
+ "DOCSIS Segment Reassembly": "#70dbed",
+ "Decryption": "#2f575e",
+ "TX": "#052b51",
+ "UEPI Decap": "#0a437c"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 10,
+ "gridPos": {
+ "h": 11,
+ "w": 6,
+ "x": 12,
+ "y": 8
+ },
+ "id": 190,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": false,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "TX",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "Ethernet CRC Check",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_eth_crc_check",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "Decryption",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_decryption",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "DOCSIS Frame Extraction",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_docsis_frame_extraction",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "DOCSIS Segment Reassembly",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_docsis_segment_reassembly",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "UEPI Decap",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_uepi_decap",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "UEPI Verification",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_uepi_verification",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ },
+ {
+ "alias": "RX",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "upstream_cycles"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Cycles per Packet Cycle",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": false,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "# Cycles",
+ "logBase": 1,
+ "max": "6000",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 18,
+ "y": 8
+ },
+ "id": 182,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Non-Empty",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_pkts_present",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "rx_dequeue_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "Empty",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_pkts_not_present",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "rx_dequeue_per_second"
+ }
+ ]
+ }
+ ],
+ "title": "RX Dequeue per Second",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 6,
+ "y": 15
+ },
+ "id": 157,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_sched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "yields_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Scheduled Yields Per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 18,
+ "y": 15
+ },
+ "id": 159,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_sched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "yields_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Scheduled Yields Per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 6,
+ "y": 17
+ },
+ "id": 158,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_sleep",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Sleeping Yields Per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 18,
+ "y": 17
+ },
+ "id": 160,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_sleep",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Sleeping Yields Per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 19
+ },
+ "id": 34,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Matched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_matched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cm_lookup"
+ }
+ ]
+ },
+ {
+ "alias": "Unmatched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_unmatched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cm_lookup"
+ }
+ ]
+ }
+ ],
+ "title": "CM Lookup",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 6,
+ "y": 19
+ },
+ "id": 40,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_cm_lookup"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "# Packets per CM Lookup",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 19
+ },
+ "id": 161,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": false
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Matched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_matched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cm_lookup"
+ }
+ ]
+ },
+ {
+ "alias": "Unmatched",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_unmatched",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "cm_lookup"
+ }
+ ]
+ }
+ ],
+ "title": "CM Lookup",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 18,
+ "y": 19
+ },
+ "id": 179,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_cm_lookup"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "# Packets per CM Lookup",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 6,
+ "y": 22
+ },
+ "id": 113,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "active_cms_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Active CMs per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 18,
+ "y": 22
+ },
+ "id": 162,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "active_cms_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Active CMs per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 6,
+ "y": 25
+ },
+ "id": 115,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "ip_addr_per_cm"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "IP Address per CM",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 18,
+ "y": 25
+ },
+ "id": 163,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "ip_addr_per_cm"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "IP Address per CM",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 0,
+ "y": 28
+ },
+ "id": 118,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Valid",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_valid",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "l2tp_verify"
+ }
+ ]
+ },
+ {
+ "alias": "Invalid",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_invalid",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "l2tp_verify"
+ }
+ ]
+ }
+ ],
+ "title": "L2TP Verify",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 6,
+ "y": 28
+ },
+ "id": 124,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Full",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_full",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_frames"
+ }
+ ]
+ },
+ {
+ "alias": "Partial",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_partial",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_frames"
+ }
+ ]
+ }
+ ],
+ "title": "UEPI Frames",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 12,
+ "y": 28
+ },
+ "id": 165,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Valid",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_valid",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "l2tp_verify"
+ }
+ ]
+ },
+ {
+ "alias": "Invalid",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_invalid",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "l2tp_verify"
+ }
+ ]
+ }
+ ],
+ "title": "L2TP Verify",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 18,
+ "y": 28
+ },
+ "id": 166,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Full",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_full",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_frames"
+ }
+ ]
+ },
+ {
+ "alias": "Partial",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_partial",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_frames"
+ }
+ ]
+ }
+ ],
+ "title": "UEPI Frames",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 0,
+ "y": 36
+ },
+ "id": 122,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_drops_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "UEPI Drops per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 6,
+ "y": 36
+ },
+ "id": 119,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_frames_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "UEPI Frames per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 12,
+ "y": 36
+ },
+ "id": 167,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_drops_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "UEPI Drops per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 18,
+ "y": 36
+ },
+ "id": 168,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_frames_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "UEPI Frames per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "OFDMA": "#7eb26d",
+ "SC QAM": "#eab839"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 38
+ },
+ "id": 127,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "OFDMA",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_ofdma",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_frame_type"
+ }
+ ]
+ },
+ {
+ "alias": "SC QAM",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_sc_qam",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_frame_type"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "UEPI Frame Type",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "total"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 6,
+ "y": 38
+ },
+ "id": 188,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "data",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_psp_data",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "content_per_uepi"
+ }
+ ]
+ },
+ {
+ "alias": "header",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_psp_header",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "content_per_uepi"
+ }
+ ]
+ },
+ {
+ "alias": "trailer",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_psp_trailer",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "content_per_uepi"
+ }
+ ]
+ },
+ {
+ "alias": "other",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_other",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "content_per_uepi"
+ }
+ ]
+ }
+ ],
+ "title": "Content Per Uepi",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "OFDMA": "#7eb26d",
+ "SC QAM": "#eab839"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 12,
+ "y": 38
+ },
+ "id": 169,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "OFDMA",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_ofdma",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_frame_type"
+ }
+ ]
+ },
+ {
+ "alias": "SC QAM",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_sc_qam",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "uepi_frame_type"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "UEPI Frame Type",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "total"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 18,
+ "y": 38
+ },
+ "id": 189,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "data",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_psp_data",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "content_per_uepi"
+ }
+ ]
+ },
+ {
+ "alias": "header",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_psp_header",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "content_per_uepi"
+ }
+ ]
+ },
+ {
+ "alias": "trailer",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_psp_trailer",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "content_per_uepi"
+ }
+ ]
+ },
+ {
+ "alias": "other",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_other",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "content_per_uepi"
+ }
+ ]
+ }
+ ],
+ "title": "Content Per Uepi",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 0,
+ "y": 47
+ },
+ "id": 139,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Success",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_success",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_reassembly"
+ }
+ ]
+ },
+ {
+ "alias": "Fail",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_fail",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_reassembly"
+ }
+ ]
+ }
+ ],
+ "title": "DOCSIS Reasembly",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 6,
+ "y": 47
+ },
+ "id": 181,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Success",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_success",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "hcs_verify"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ },
+ {
+ "alias": "Fail",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_fail",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "hcs_verify"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "title": "HCS Verify",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 12,
+ "y": 47
+ },
+ "id": 175,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Success",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_success",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_reassembly"
+ }
+ ]
+ },
+ {
+ "alias": "Fail",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_fail",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_reassembly"
+ }
+ ]
+ }
+ ],
+ "title": "DOCSIS Reasembly",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 18,
+ "y": 47
+ },
+ "id": 180,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Success",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_success",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "hcs_verify"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ },
+ {
+ "alias": "Fail",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_fail",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "hcs_verify"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "title": "HCS Verify",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 0,
+ "y": 55
+ },
+ "id": 137,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_frames_per_uepi"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "DOCSIS Frames per UEPI",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 6,
+ "y": 55
+ },
+ "id": 141,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_frames_per_segment"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "DOCSIS Frames per Segment",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 12,
+ "y": 55
+ },
+ "id": 172,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_frames_per_uepi"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "DOCSIS Frames per UEPI",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 18,
+ "y": 55
+ },
+ "id": 174,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_frames_per_segment"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "DOCSIS Frames per Segment",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 0,
+ "y": 57
+ },
+ "id": 142,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_frames_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "DOCSIS Frames per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 6,
+ "y": 57
+ },
+ "id": 140,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_docsis_segment_length"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Average DOCSIS Segment Length",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 12,
+ "y": 57
+ },
+ "id": 171,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "docsis_frames_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "DOCSIS Frames per Second",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 6,
+ "x": 18,
+ "y": 57
+ },
+ "id": 173,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_value",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_docsis_segment_length"
+ },
+ {
+ "condition": "AND",
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Average DOCSIS Segment Length",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "AESNI": "#eab839",
+ "QAT": "#7eb26d"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 0,
+ "y": 59
+ },
+ "id": 148,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "AESNI",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_aesni",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_accel"
+ }
+ ]
+ },
+ {
+ "alias": "QAT",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_qat",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_accel"
+ }
+ ]
+ },
+ {
+ "alias": "None",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_accel"
+ }
+ ]
+ }
+ ],
+ "title": "Crypto Acceleration",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 4,
+ "y": 59
+ },
+ "id": 150,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "AES",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_aes",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_algo"
+ }
+ ]
+ },
+ {
+ "alias": "DES",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_des",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_algo"
+ }
+ ]
+ },
+ {
+ "alias": "None",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_algo"
+ }
+ ]
+ }
+ ],
+ "title": "Crypto Algo",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 8,
+ "y": 59
+ },
+ "id": 152,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Success",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_success",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crc_verify"
+ }
+ ]
+ },
+ {
+ "alias": "Fail",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_fail",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_One$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crc_verify"
+ }
+ ]
+ }
+ ],
+ "title": "CRC Verify",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "AESNI": "#eab839",
+ "QAT": "#7eb26d"
+ },
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 12,
+ "y": 59
+ },
+ "id": 186,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "AESNI",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_aesni",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_accel"
+ }
+ ]
+ },
+ {
+ "alias": "QAT",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_qat",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_accel"
+ }
+ ]
+ },
+ {
+ "alias": "None",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_accel"
+ }
+ ]
+ }
+ ],
+ "title": "Crypto Acceleration",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 16,
+ "y": 59
+ },
+ "id": 176,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "AES",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_aes",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_algo"
+ }
+ ]
+ },
+ {
+ "alias": "DES",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_des",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_algo"
+ }
+ ]
+ },
+ {
+ "alias": "None",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crypto_algo"
+ }
+ ]
+ }
+ ],
+ "title": "Crypto Algo",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": null,
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 20,
+ "y": 59
+ },
+ "id": 183,
+ "interval": null,
+ "legend": {
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Success",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_success",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crc_verify"
+ }
+ ]
+ },
+ {
+ "alias": "Fail",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_fail",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=~",
+ "value": "/^$Scenario_Two$/"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "crc_verify"
+ }
+ ]
+ }
+ ],
+ "title": "CRC Verify",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {
+ "tags": [],
+ "text": "service_group_0",
+ "value": "service_group_0"
+ },
+ "datasource": "Vcmts",
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "Scenario_One",
+ "options": [
+ {
+ "selected": true,
+ "text": "service_group_0",
+ "value": "service_group_0"
+ },
+ {
+ "selected": false,
+ "text": "service_group_1",
+ "value": "service_group_1"
+ },
+ {
+ "selected": false,
+ "text": "service_group_2",
+ "value": "service_group_2"
+ },
+ {
+ "selected": false,
+ "text": "service_group_3",
+ "value": "service_group_3"
+ },
+ {
+ "selected": false,
+ "text": "service_group_10",
+ "value": "service_group_10"
+ },
+ {
+ "selected": false,
+ "text": "service_group_11",
+ "value": "service_group_11"
+ },
+ {
+ "selected": false,
+ "text": "service_group_12",
+ "value": "service_group_12"
+ },
+ {
+ "selected": false,
+ "text": "service_group_13",
+ "value": "service_group_13"
+ },
+ {
+ "selected": false,
+ "text": "service_group_14",
+ "value": "service_group_14"
+ },
+ {
+ "selected": false,
+ "text": "service_group_15",
+ "value": "service_group_15"
+ },
+ {
+ "selected": false,
+ "text": "service_group_4",
+ "value": "service_group_4"
+ },
+ {
+ "selected": false,
+ "text": "service_group_5",
+ "value": "service_group_5"
+ },
+ {
+ "selected": false,
+ "text": "service_group_6",
+ "value": "service_group_6"
+ },
+ {
+ "selected": false,
+ "text": "service_group_7",
+ "value": "service_group_7"
+ },
+ {
+ "selected": false,
+ "text": "service_group_8",
+ "value": "service_group_8"
+ },
+ {
+ "selected": false,
+ "text": "service_group_9",
+ "value": "service_group_9"
+ }
+ ],
+ "query": "SHOW TAG Values with key =\"host\"",
+ "refresh": 0,
+ "regex": "/service/",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {
+ "tags": [],
+ "text": "service_group_8",
+ "value": "service_group_8"
+ },
+ "datasource": "Vcmts",
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "Scenario_Two",
+ "options": [
+ {
+ "selected": false,
+ "text": "service_group_0",
+ "value": "service_group_0"
+ },
+ {
+ "selected": false,
+ "text": "service_group_1",
+ "value": "service_group_1"
+ },
+ {
+ "selected": false,
+ "text": "service_group_2",
+ "value": "service_group_2"
+ },
+ {
+ "selected": false,
+ "text": "service_group_3",
+ "value": "service_group_3"
+ },
+ {
+ "selected": false,
+ "text": "service_group_10",
+ "value": "service_group_10"
+ },
+ {
+ "selected": false,
+ "text": "service_group_11",
+ "value": "service_group_11"
+ },
+ {
+ "selected": false,
+ "text": "service_group_12",
+ "value": "service_group_12"
+ },
+ {
+ "selected": false,
+ "text": "service_group_13",
+ "value": "service_group_13"
+ },
+ {
+ "selected": false,
+ "text": "service_group_14",
+ "value": "service_group_14"
+ },
+ {
+ "selected": false,
+ "text": "service_group_15",
+ "value": "service_group_15"
+ },
+ {
+ "selected": false,
+ "text": "service_group_4",
+ "value": "service_group_4"
+ },
+ {
+ "selected": false,
+ "text": "service_group_5",
+ "value": "service_group_5"
+ },
+ {
+ "selected": false,
+ "text": "service_group_6",
+ "value": "service_group_6"
+ },
+ {
+ "selected": false,
+ "text": "service_group_7",
+ "value": "service_group_7"
+ },
+ {
+ "selected": true,
+ "text": "service_group_8",
+ "value": "service_group_8"
+ },
+ {
+ "selected": false,
+ "text": "service_group_9",
+ "value": "service_group_9"
+ }
+ ],
+ "query": "SHOW TAG Values with key =\"host\"",
+ "refresh": 0,
+ "regex": "/service/",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
+ },
+ "time": {
+ "from": "now-15m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "2s",
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Upstream Processing (Per Service Group)",
+ "uid": "-gMt7Zhiz",
+ "version": 1
+} \ No newline at end of file
diff --git a/dashboard/vCMTS_UpstreamThroughput.json b/dashboard/vCMTS_UpstreamThroughput.json
new file mode 100644
index 000000000..0b2162105
--- /dev/null
+++ b/dashboard/vCMTS_UpstreamThroughput.json
@@ -0,0 +1,12341 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "links": [],
+ "panels": [
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "decimals": 2,
+ "fill": 1,
+ "gridPos": {
+ "h": 12,
+ "w": 9,
+ "x": 0,
+ "y": 0
+ },
+ "id": 32,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "0",
+ "yaxis": 1
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000000 FROM \"upstream_rx\" WHERE (\"host\" = 'service_group_0' AND \"type\" = 'bits_per_second') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "RX - Bitrate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "short",
+ "label": "Bitrate (Gbps)",
+ "logBase": 1,
+ "max": "10",
+ "min": "0",
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "decimals": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 120,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 3,
+ "x": 9,
+ "y": 0
+ },
+ "id": 39,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "previous"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") / 1000000000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"upstream_rx\" \nWHERE ( \"type\" = 'bits_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "sum"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ },
+ {
+ "condition": "AND",
+ "key": "type_instance",
+ "operator": "=",
+ "value": "rx"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "OR",
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ }
+ ]
+ }
+ ],
+ "thresholds": "0,0",
+ "title": "Total RX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "decimals": 2,
+ "fill": 1,
+ "gridPos": {
+ "h": 12,
+ "w": 9,
+ "x": 12,
+ "y": 0
+ },
+ "id": 33,
+ "legend": {
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": true
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TX - Bitrate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bitrate (Gbps)",
+ "logBase": 1,
+ "max": "10",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 120,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 3,
+ "x": 21,
+ "y": 0
+ },
+ "id": 40,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Gbps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") / 1000000000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"upstream_tx\" \nWHERE ( \"type\" = 'bits_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "0,0",
+ "title": "Total TX Bitrate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 6
+ },
+ "id": 25,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg RX Packet Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 21,
+ "y": 6
+ },
+ "id": 185,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "average_frame_size_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "Avg TX Frame Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 8
+ },
+ "id": 29,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"upstream_rx\" \nWHERE ( \"type\" = 'packets_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "RX L2TP Frames",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 21,
+ "y": 8
+ },
+ "id": 28,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"upstream_tx\" \nWHERE ( \"type\" = 'packets_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": "",
+ "title": "TX Packets",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 9,
+ "y": 10
+ },
+ "id": 27,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " kpps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"upstream_rx\" \nWHERE ( \"type\" = 'dropped_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "RX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 3,
+ "x": 21,
+ "y": 10
+ },
+ "id": 26,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "kfps",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT sum(\"last\") /1000\nFROM\n(\nSELECT last(\"value\") \nFROM \"autogen\".\"upstream_tx\" \nWHERE ( \"type\" = 'dropped_per_second')\nGROUP BY host\n)",
+ "rawQuery": true,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "title": "TX Dropped",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 0,
+ "y": 12
+ },
+ "id": 18,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "RX - Frame Rate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Rate (kpps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 12
+ },
+ "id": 131,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "packets_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TX - Frame Rate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Rate (kpps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 0,
+ "y": 19
+ },
+ "id": 97,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "RX - Frame Loss Rate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "current"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Loss Rate (kpps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8"
+ },
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 19
+ },
+ "id": 98,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TX - Frame Loss Rate per Service Group",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "series",
+ "name": null,
+ "show": true,
+ "values": [
+ "total"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Frame Loss Rate (kpps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-15m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "2s",
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Upstream Throughput",
+ "uid": "WQgeFdhik",
+ "version": 1
+} \ No newline at end of file
diff --git a/dashboard/vCMTS_UpstreamTimeSeries.json b/dashboard/vCMTS_UpstreamTimeSeries.json
new file mode 100644
index 000000000..dfc0bec8e
--- /dev/null
+++ b/dashboard/vCMTS_UpstreamTimeSeries.json
@@ -0,0 +1,7541 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "id": 51,
+ "links": [],
+ "panels": [
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "decimals": 2,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 0,
+ "y": 0
+ },
+ "id": 51,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "0",
+ "yaxis": 1
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT distinct(\"value\") /1000000000 FROM \"upstream_rx\" WHERE (\"host\" = 'service_group_0' AND \"type\" = 'bits_per_second') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "RX - Bitrate per Service Group",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "short",
+ "label": "Bitrate (Gbps)",
+ "logBase": 1,
+ "max": "10",
+ "min": "0",
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "decimals": 2,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 12,
+ "y": 0
+ },
+ "id": 53,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "bits_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TX - Bitrate per Service Group",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Bitrate (Gbps)",
+ "logBase": 1,
+ "max": "10",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#0a437c",
+ "1": "#0a437c",
+ "2": "#0a437c",
+ "3": "#0a437c",
+ "4": "#0a437c",
+ "5": "#0a437c",
+ "6": "#0a437c",
+ "7": "#0a437c",
+ "8": "#0a437c",
+ "9": "#0a437c",
+ "10": "#0a437c",
+ "11": "#0a437c",
+ "12": "#0a437c",
+ "13": "#0a437c",
+ "14": "#0a437c",
+ "15": "#0a437c",
+ "16": "#0a437c",
+ "17": "#0a437c",
+ "18": "#0a437c",
+ "19": "#0a437c",
+ "20": "#0a437c",
+ "21": "#0a437c",
+ "22": "#0a437c",
+ "23": "#0a437c",
+ "24": "#0a437c",
+ "25": "#0a437c",
+ "26": "#0a437c",
+ "27": "#0a437c",
+ "28": "#0a437c",
+ "29": "#0a437c",
+ "30": "#0a437c",
+ "31": "#0a437c"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 0,
+ "y": 11
+ },
+ "id": 55,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_rx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "RX - Frames Dropped per Service Group",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Dropped (fps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "0": "#64b0c8",
+ "1": "#64b0c8",
+ "2": "#64b0c8",
+ "3": "#64b0c8",
+ "4": "#64b0c8",
+ "5": "#64b0c8",
+ "6": "#64b0c8",
+ "7": "#64b0c8",
+ "8": "#64b0c8",
+ "9": "#64b0c8",
+ "10": "#64b0c8",
+ "11": "#64b0c8",
+ "12": "#64b0c8",
+ "13": "#64b0c8",
+ "14": "#64b0c8",
+ "15": "#64b0c8",
+ "16": "#64b0c8",
+ "17": "#64b0c8",
+ "18": "#64b0c8",
+ "19": "#64b0c8",
+ "20": "#64b0c8",
+ "21": "#64b0c8",
+ "22": "#64b0c8",
+ "23": "#64b0c8",
+ "24": "#64b0c8",
+ "25": "#64b0c8",
+ "26": "#64b0c8",
+ "27": "#64b0c8",
+ "28": "#64b0c8",
+ "29": "#64b0c8",
+ "30": "#64b0c8",
+ "31": "#64b0c8"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 12,
+ "y": 11
+ },
+ "id": 56,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "0",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_0"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "1",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_1"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "2",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_2"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "3",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_3"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "4",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "E",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_4"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "5",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_5"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "6",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "G",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_6"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "7",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "H",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_7"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "8",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "I",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_8"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "9",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "J",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_9"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "10",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "K",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_10"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "11",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "L",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_11"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "12",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "M",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_12"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "13",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "N",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_13"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "14",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "O",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_14"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "15",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "P",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_15"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "16",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Q",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_16"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "17",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "R",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_17"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "18",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "S",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_18"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "19",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "T",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_19"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "20",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "U",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_20"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "21",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "V",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_21"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "22",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "W",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_22"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "23",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "X",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_23"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "24",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Y",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_24"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "25",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "Z",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_25"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "26",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_26"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "27",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_27"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "28",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_28"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "29",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_29"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "30",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_30"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ },
+ {
+ "alias": "31",
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "upstream_tx",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "distinct"
+ },
+ {
+ "params": [
+ "/1000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "host",
+ "operator": "=",
+ "value": "service_group_31"
+ },
+ {
+ "condition": "AND",
+ "key": "type",
+ "operator": "=",
+ "value": "dropped_per_second"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TX - Packets Dropped per Service Group",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Dropped (pps)",
+ "logBase": 1,
+ "max": "1200",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-15m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "2s",
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Upstream Throughput Time Series",
+ "version": 7
+}
diff --git a/docker/Dockerfile b/docker/Dockerfile
index b1eb50592..00613a10f 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -12,6 +12,7 @@ FROM ubuntu:16.04
LABEL image=opnfv/yardstick
ARG BRANCH=master
+ARG OPENSTACK_TAG=stable/stein
# GIT repo directory
ENV REPOS_DIR="/home/opnfv/repos" \
@@ -20,36 +21,46 @@ ENV REPOS_DIR="/home/opnfv/repos" \
# Set work directory
# Yardstick repo
-ENV YARDSTICK_REPO_DIR="${REPOS_DIR}/yardstick" \
+ENV YARDSTICK_REPO_DIR="${REPOS_DIR}/yardstick/" \
RELENG_REPO_DIR="${REPOS_DIR}/releng" \
STORPERF_REPO_DIR="${REPOS_DIR}/storperf"
-RUN apt-get update && apt-get install -y git python-setuptools python-pip && apt-get -y autoremove && apt-get clean
+RUN apt-get update && apt-get install -y git python python-setuptools python-pip iputils-ping && apt-get -y autoremove && apt-get clean
RUN easy_install -U setuptools==30.0.0
-RUN pip install appdirs==1.4.0
+RUN pip install \
+ -chttps://opendev.org/openstack/requirements/raw/branch/$OPENSTACK_TAG/upper-constraints.txt \
+ -chttps://git.opnfv.org/yardstick/plain/upper-constraints.txt?h=$BRANCH \
+ appdirs==1.4.0 pyopenssl==17.5.0 openstacksdk==0.11.3 python-heatclient==1.14.0 ansible==2.5.5
RUN mkdir -p ${REPOS_DIR}
RUN git config --global http.sslVerify false
+#For developers: To test your changes you must comment out the git clone for ${YARDSTICK_REPO_DIR}.
+#You must also uncomment the RUN and COPY commands below.
+#You must run docker build from your yardstick directory on the host.
RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO_DIR}
+#RUN mkdir ${YARDSTICK_REPO_DIR}
+#COPY ./ ${YARDSTICK_REPO_DIR}
RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO_DIR}
-RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/storperf ${STORPERF_REPO_DIR}
+RUN git clone --depth 1 -b stable/gambia https://gerrit.opnfv.org/gerrit/storperf ${STORPERF_REPO_DIR}
+
+RUN ansible-playbook -i ${YARDSTICK_REPO_DIR}/ansible/install-inventory.ini -c local -vvv -e INSTALLATION_MODE="container" ${YARDSTICK_REPO_DIR}/ansible/install.yaml
-WORKDIR ${YARDSTICK_REPO_DIR}
-RUN ${YARDSTICK_REPO_DIR}/install.sh
RUN ${YARDSTICK_REPO_DIR}/docker/supervisor.sh
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
-
-EXPOSE 5000
+# nginx=5000, rabbitmq=5672
+EXPOSE 5000 5672
ADD http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img ${IMAGE_DIR}
ADD http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img ${IMAGE_DIR}
+# For developers: when `docker build ...` is running from YARDSTICK_REPO_DIR, please change
+# path `./exec_tests.sh` -> `./docker/exec_tests.sh``.
COPY ./exec_tests.sh /usr/local/bin/
-ENV NSB_DIR="/opt/nsb_bin" \
- PYTHONPATH="${PYTHONPATH}:${NSB_DIR}/trex_client:${NSB_DIR}/trex_client/stl"
+ENV NSB_DIR="/opt/nsb_bin"
+ENV PYTHONPATH="${PYTHONPATH}:${NSB_DIR}/trex_client:${NSB_DIR}/trex_client/stl"
WORKDIR ${REPOS_DIR}
CMD ["/usr/bin/supervisord"]
diff --git a/docker/Dockerfile.aarch64.patch b/docker/Dockerfile.aarch64.patch
index 33c352a1b..2f510b841 100644
--- a/docker/Dockerfile.aarch64.patch
+++ b/docker/Dockerfile.aarch64.patch
@@ -1,42 +1,56 @@
-From: Alexandru Nemes <alexandru.nemes@enea.com>
-Date: Mon, 19 Jun 2017 14:18:24 +0300
+From: Cristina Pauna <cristina.pauna@enea.com>
+Date: Mon, 23 Jul 2018 15:16:59 +0300
Subject: [PATCH] Patch for Yardstick AARCH64 Docker file
-Signed-off-by: Alexandru Nemes <alexandru.nemes@enea.com>
+Signed-off-by: Cristina Pauna <cristina.pauna@enea.com>
---
- docker/Dockerfile | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
+ docker/Dockerfile | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/docker/Dockerfile b/docker/Dockerfile
-index 96a5d77..03307a2 100644
+index 71ce6b58..fce7c116 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
-@@ -1,5 +1,5 @@
- ##############################################################################
--# Copyright (c) 2015 Ericsson AB and others.
-+# Copyright (c) 2017 Enea AB and others.
- #
- # All rights reserved. This program and the accompanying materials
- # are made available under the terms of the Apache License, Version 2.0
@@ -7,9 +7,9 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
--FROM ubuntu:14.04
-+FROM aarch64/ubuntu:14.04
+-FROM ubuntu:16.04
++FROM arm64v8/ubuntu:16.04
-LABEL image=opnfv/yardstick
+LABEL image=opnfv/yardstick_aarch64
ARG BRANCH=master
-@@ -40,8 +40,8 @@ RUN echo "daemon off;" >> /etc/nginx/nginx.conf
+@@ -24,7 +24,8 @@ ENV YARDSTICK_REPO_DIR="${REPOS_DIR}/yardstick/" \
+ RELENG_REPO_DIR="${REPOS_DIR}/releng" \
+ STORPERF_REPO_DIR="${REPOS_DIR}/storperf"
+
+-RUN apt-get update && apt-get install -y git python python-setuptools python-pip iputils-ping && apt-get -y autoremove && apt-get clean
++RUN apt-get update && apt-get install -y git python python-setuptools python-pip iputils-ping && apt-get -y autoremove && \
++ apt-get install -y libssl-dev && apt-get -y install libffi-dev && apt-get clean
+ RUN easy_install -U setuptools==30.0.0
+ RUN pip install appdirs==1.4.0 pyopenssl==17.5.0 openstacksdk==0.11.3 python-openstackclient==3.14.2 python-heatclient==1.14.0 ansible==2.5.5
+
+@@ -40,7 +41,8 @@ RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/yardstick ${Y
+ RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO_DIR}
+ RUN git clone --depth 1 -b stable/gambia https://gerrit.opnfv.org/gerrit/storperf ${STORPERF_REPO_DIR}
+
+-RUN ansible-playbook -i ${YARDSTICK_REPO_DIR}/ansible/install-inventory.ini -c local -vvv -e INSTALLATION_MODE="container" ${YARDSTICK_REPO_DIR}/ansible/install.yaml
++RUN sed -i -e '/configure_gui/d' ${YARDSTICK_REPO_DIR}/ansible/install.yaml && \
++ ansible-playbook -i ${YARDSTICK_REPO_DIR}/ansible/install-inventory.ini -c local -vvv -e INSTALLATION_MODE="container" ${YARDSTICK_REPO_DIR}/ansible/install.yaml
+
+ RUN ${YARDSTICK_REPO_DIR}/docker/supervisor.sh
- EXPOSE 5000
+@@ -48,8 +50,8 @@ RUN echo "daemon off;" >> /etc/nginx/nginx.conf
+ # nginx=5000, rabbitmq=5672
+ EXPOSE 5000 5672
-ADD http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img ${IMAGE_DIR}
-ADD http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img ${IMAGE_DIR}
+ADD http://download.cirros-cloud.net/daily/20161201/cirros-d161201-aarch64-disk.img ${IMAGE_DIR}
+ADD http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-arm64-disk1.img ${IMAGE_DIR}
- COPY ./exec_tests.sh /usr/local/bin/ \ No newline at end of file
+ # For developers: when `docker build ...` is running from YARDSTICK_REPO_DIR, please change
+ # path `./exec_tests.sh` -> `./docker/exec_tests.sh``.
diff --git a/docker/Dockerfile_ubuntu18 b/docker/Dockerfile_ubuntu18
new file mode 100644
index 000000000..e9fe42ecb
--- /dev/null
+++ b/docker/Dockerfile_ubuntu18
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB 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 ubuntu:18.04
+
+LABEL image=opnfv/yardstick-ubuntu-18.04
+
+ARG BRANCH=master
+
+# GIT repo directory
+ENV REPOS_DIR="/home/opnfv/repos" \
+ IMAGE_DIR="/home/opnfv/images/"
+
+# Set work directory
+
+# Yardstick repo
+ENV YARDSTICK_REPO_DIR="${REPOS_DIR}/yardstick/" \
+ RELENG_REPO_DIR="${REPOS_DIR}/releng" \
+ STORPERF_REPO_DIR="${REPOS_DIR}/storperf"
+
+RUN apt-get update && apt-get install -y git python python-setuptools python-pip iputils-ping && apt-get -y autoremove && apt-get clean
+
+RUN pip install appdirs==1.4.0 pyopenssl==17.5.0 openstacksdk==0.9.17 python-openstackclient==3.12.1 python-heatclient==1.11.1 ansible==2.5.5
+
+RUN mkdir -p ${REPOS_DIR}
+
+RUN git config --global http.sslVerify false
+#For developers: To test your changes you must comment out the git clone for ${YARDSTICK_REPO_DIR}.
+#You must also uncomment the RUN and COPY commands below.
+#You must run docker build from your yardstick directory on the host.
+RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO_DIR}
+#RUN mkdir ${YARDSTICK_REPO_DIR}
+#COPY ./ ${YARDSTICK_REPO_DIR}
+RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO_DIR}
+RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/storperf ${STORPERF_REPO_DIR}
+
+RUN ansible-playbook -i ${YARDSTICK_REPO_DIR}/ansible/install-inventory.ini -c local -vvv -e INSTALLATION_MODE="container" ${YARDSTICK_REPO_DIR}/ansible/install.yaml
+
+RUN ${YARDSTICK_REPO_DIR}/docker/supervisor.sh
+
+RUN echo "daemon off;" >> /etc/nginx/nginx.conf
+# nginx=5000, rabbitmq=5672
+EXPOSE 5000 5672
+
+ADD http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img ${IMAGE_DIR}
+ADD http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img ${IMAGE_DIR}
+
+# For developers: when `docker build ...` is running from YARDSTICK_REPO_DIR, please change
+# path `./exec_tests.sh` -> `./docker/exec_tests.sh``.
+COPY ./exec_tests.sh /usr/local/bin/
+
+ENV NSB_DIR="/opt/nsb_bin"
+ENV PYTHONPATH="${PYTHONPATH}:${NSB_DIR}/trex_client:${NSB_DIR}/trex_client/stl"
+
+WORKDIR ${REPOS_DIR}
+CMD ["/usr/bin/supervisord"]
diff --git a/docker/k8s/Dockerfile b/docker/k8s/Dockerfile
new file mode 100644
index 000000000..2f8d9b161
--- /dev/null
+++ b/docker/k8s/Dockerfile
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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 ubuntu:16.04
+
+LABEL image=opnfv/yardstick-image-k8s
+
+ARG BRANCH=master
+
+# GIT repo directory
+ENV CLONE_DEST="/opt/tempT"
+
+RUN apt-get update && apt-get install -y \
+ git bc bonnie++ fio gcc iperf3 ethtool \
+ iproute2 linux-tools-common linux-tools-generic \
+ lmbench make netperf patch perl rt-tests stress \
+ sysstat iputils-ping openssh-server sudo && \
+ apt-get -y autoremove && apt-get clean
+
+RUN rm -rf -- ${CLONE_DEST}
+RUN git clone https://github.com/kdlucas/byte-unixbench.git ${CLONE_DEST}
+RUN mkdir -p ${CLONE_DEST}/UnixBench/
+
+RUN git clone https://github.com/beefyamoeba5/ramspeed.git ${CLONE_DEST}/RAMspeed
+WORKDIR ${CLONE_DEST}/RAMspeed/ramspeed-2.6.0
+RUN mkdir -p ${CLONE_DEST}/RAMspeed/ramspeed-2.6.0/temp
+RUN bash build.sh
+
+RUN git clone https://github.com/beefyamoeba5/cachestat.git ${CLONE_DEST}/Cachestat
+
+WORKDIR /
+
+CMD /bin/bash
diff --git a/docker/supervisor.sh b/docker/supervisor.sh
index b67de2212..a4104c7fb 100755
--- a/docker/supervisor.sh
+++ b/docker/supervisor.sh
@@ -11,7 +11,8 @@
# nginx service start when boot
supervisor_config='/etc/supervisor/conf.d/yardstick.conf'
-if [[ ! -e "${supervisor_config}" ]];then
+if [[ ! -e "${supervisor_config}" ]]; then
+
cat << EOF > "${supervisor_config}"
[supervisord]
nodaemon = true
@@ -22,5 +23,9 @@ command = service nginx restart
[program:yardstick_uwsgi]
directory = /etc/yardstick
command = uwsgi -i yardstick.ini
+
+[program:rabbitmq]
+command=/etc/yardstick/rabbitmq.sh
EOF
+
fi
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 000000000..86fddf13e
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1 @@
+from docs_conf.conf import * # pylint: disable=wildcard-import
diff --git a/docs/conf.yaml b/docs/conf.yaml
new file mode 100644
index 000000000..01e08ec7f
--- /dev/null
+++ b/docs/conf.yaml
@@ -0,0 +1,3 @@
+---
+project_cfg: opnfv
+project: Yardstick
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 000000000..e1339b0dd
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,17 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+.. (c) Open Platform for NFV Project, Inc. and its contributors
+
+.. _yardstick:
+
+=========
+Yardstick
+=========
+
+.. toctree::
+ :numbered:
+ :maxdepth: 2
+
+ release/release-notes/index
+ testing/user/userguide/index
+ testing/developer/devguide/index
diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst
index 4ebf0eceb..b3f3e1aed 100644
--- a/docs/release/release-notes/release-notes.rst
+++ b/docs/release/release-notes/release-notes.rst
@@ -1,72 +1,61 @@
-License
-=======
-
-OPNFV Euphrates release note for Yardstick Docs
-are licensed under a Creative Commons Attribution 4.0 International License.
-You should have received a copy of the license along with this.
-If not, see <http://creativecommons.org/licenses/by/4.0/>.
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
The *Yardstick framework*, the *Yardstick test cases* are open-source software,
licensed under the terms of the Apache License, Version 2.0.
-OPNFV Euphrates Release Note for Yardstick
-==========================================
+=======================
+Yardstick Release Notes
+=======================
.. toctree::
:maxdepth: 2
-.. _Yardstick: https://wiki.opnfv.org/yardstick
+.. _Yardstick: https://wiki.opnfv.org/display/yardstick
-.. _Dashboard: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
+.. _Dashboard: http://testresults.opnfv.org/grafana/
-.. _NFV-TST001: http://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/001/01.01.01_60/gs_NFV-TST001v010101p.pdf
+.. _NFV-TST001: https://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/001/01.01.01_60/gs_NFV-TST001v010101p.pdf
Abstract
---------
+========
-This document describes the release note of Yardstick project.
+This document compiles the release notes for the Iruya release of OPNFV Yardstick.
Version History
----------------
+===============
+-------------------+-----------+---------------------------------+
| *Date* | *Version* | *Comment* |
| | | |
+-------------------+-----------+---------------------------------+
-| December 15, 2017 | 5.1.0 | Yardstick for Euphrates release |
-| | | |
-+-------------------+-----------+---------------------------------+
-| October 20, 2017 | 5.0.0 | Yardstick for Euphrates release |
+| Jan 10, 2020 | 9.0.0 | Yardstick for Iruya release |
| | | |
+-------------------+-----------+---------------------------------+
Important Notes
----------------
+===============
The software delivered in the OPNFV Yardstick_ Project, comprising the
-*Yardstick framework*, the *Yardstick test cases* and the experimental
-framework *Apex Lake* is a realization of the methodology in ETSI-ISG
-NFV-TST001_.
+*Yardstick framework*, and the *Yardstick test cases* is a realization of
+the methodology in ETSI-ISG NFV-TST001_.
The *Yardstick* framework is *installer*, *infrastructure* and *application*
independent.
-OPNFV Euphrates Release
------------------------
+OPNFV Iruya Release
+====================
-This Euphrates release provides *Yardstick* as a framework for NFVI testing
+This Iruya release provides *Yardstick* as a framework for NFVI testing
and OPNFV feature testing, automated in the OPNFV CI pipeline, including:
* Documentation generated with Sphinx
* User Guide
-
* Developer Guide
-
* Release notes (this document)
-
* Results
* Automated Yardstick test suite (daily, weekly)
@@ -84,39 +73,29 @@ and OPNFV feature testing, automated in the OPNFV CI pipeline, including:
* Yardstick plug-in configuration yaml files, plug-in install/remove scripts
-For Euphrates release, the *Yardstick framework* is used for the following
+For Iruya release, the *Yardstick framework* is used for the following
testing:
* OPNFV platform testing - generic test cases to measure the categories:
* Compute
-
* Network
-
* Storage
-* OPNFV platform network service benchmarking(NSB)
+* OPNFV platform network service benchmarking (NSB)
* NSB
* Test cases for the following OPNFV Projects:
* Container4NFV
-
* High Availability
-
* IPv6
-
* KVM
-
* Parser
-
* StorPerf
-
* VSperf
- * virtual Traffic Classifier
-
The *Yardstick framework* is developed in the OPNFV community, by the
Yardstick_ team.
@@ -126,49 +105,47 @@ Yardstick_ team.
Release Data
-------------
+============
+--------------------------------+-----------------------+
| **Project** | Yardstick |
| | |
+--------------------------------+-----------------------+
-| **Repo/tag** | yardstick/opnfv-5.1.0 |
+| **Repo/tag** | yardstick/opnfv-9.0.0 |
| | |
+--------------------------------+-----------------------+
-| **Yardstick Docker image tag** | opnfv-5.1.0 |
+| **Yardstick Docker image tag** | opnfv-9.0.0 |
| | |
+--------------------------------+-----------------------+
-| **Release designation** | Euphrates |
+| **Release designation** | Iruya 9.0 |
| | |
+--------------------------------+-----------------------+
-| **Release date** | December 15, 2017 |
+| **Release date** | Jan 10, 2020 |
| | |
+--------------------------------+-----------------------+
-| **Purpose of the delivery** | OPNFV Euphrates 5.1.0 |
+| **Purpose of the delivery** | OPNFV Iruya 9.0.0 |
| | |
+--------------------------------+-----------------------+
Deliverables
-------------
+============
Documents
-^^^^^^^^^
+---------
- - User Guide: http://docs.opnfv.org/en/stable-euphrates/submodules/yardstick/docs/testing/user/userguide/index.html
+ - User Guide: :ref:`<yardstick:userguide>`
- - Developer Guide: http://docs.opnfv.org/en/stable-euphrates/submodules/yardstick/docs/testing/developer/devguide/index.html
+ - Developer Guide: :ref:`<yardstick:devguide>`
Software Deliverables
-^^^^^^^^^^^^^^^^^^^^^
-
+---------------------
- - The Yardstick Docker image: https://hub.docker.com/r/opnfv/yardstick (tag: opnfv-5.1.0)
+ - The Yardstick Docker image: https://hub.docker.com/r/opnfv/yardstick (tag: opnfv-9.0.0)
-
-New Contexts
-############
+List of Contexts
+^^^^^^^^^^^^^^^^
+--------------+-------------------------------------------+
| **Context** | **Description** |
@@ -188,31 +165,42 @@ New Contexts
+--------------+-------------------------------------------+
-New Runners
-###########
-
-+--------------+-------------------------------------------------------+
-| **Runner** | **Description** |
-| | |
-+--------------+-------------------------------------------------------+
-| *Arithmetic* | Steps every run arithmetically according to specified |
-| | input value |
-| | |
-+--------------+-------------------------------------------------------+
-| *Duration* | Runs for a specified period of time |
-| | |
-+--------------+-------------------------------------------------------+
-| *Iteration* | Runs for a specified number of iterations |
-| | |
-+--------------+-------------------------------------------------------+
-| *Sequence* | Selects input value to a scenario from an input file |
-| | and runs all entries sequentially |
-| | |
-+--------------+-------------------------------------------------------+
-
-
-New Scenarios
-#############
+List of Runners
+^^^^^^^^^^^^^^^
+
++----------------+-------------------------------------------------------+
+| **Runner** | **Description** |
+| | |
++----------------+-------------------------------------------------------+
+| *Arithmetic* | Steps every run arithmetically according to specified |
+| | input value |
+| | |
++----------------+-------------------------------------------------------+
+| *Duration* | Runs for a specified period of time |
+| | |
++----------------+-------------------------------------------------------+
+| *Iteration* | Runs for a specified number of iterations |
+| | |
++----------------+-------------------------------------------------------+
+| *IterationIPC* | Runs a configurable number of times before it |
+| | returns. Each iteration has a configurable timeout. |
+| | |
++----------------+-------------------------------------------------------+
+| *Sequence* | Selects input value to a scenario from an input file |
+| | and runs all entries sequentially |
+| | |
++----------------+-------------------------------------------------------+
+| *Dynamictp* | A runner that searches for the max throughput with |
+| | binary search |
+| | |
++----------------+-------------------------------------------------------+
+| *Search* | A runner that runs a specific time before it returns |
+| | |
++----------------+-------------------------------------------------------+
+
+
+List of Scenarios
+^^^^^^^^^^^^^^^^^
+----------------+-----------------------------------------------------+
| **Category** | **Delivered** |
@@ -234,339 +222,126 @@ New Scenarios
| | |
+----------------+-----------------------------------------------------+
| *Compute* | * cpuload |
-| | |
| | * cyclictest |
-| | |
| | * lmbench |
-| | |
| | * lmbench_cache |
-| | |
| | * perf |
-| | |
| | * unixbench |
-| | |
| | * ramspeed |
-| | |
| | * cachestat |
-| | |
| | * memeoryload |
-| | |
| | * computecapacity |
-| | |
| | * SpecCPU2006 |
| | |
+----------------+-----------------------------------------------------+
| *Networking* | * iperf3 |
-| | |
| | * netperf |
-| | |
| | * netperf_node |
-| | |
| | * ping |
-| | |
| | * ping6 |
-| | |
| | * pktgen |
-| | |
| | * sfc |
-| | |
| | * sfc with tacker |
-| | |
-| | * vtc instantion validation |
-| | |
-| | * vtc instantion validation with noisy neighbors |
-| | |
-| | * vtc throughput |
-| | |
-| | * vtc throughput in the presence of noisy neighbors |
-| | |
| | * networkcapacity |
-| | |
| | * netutilization |
-| | |
| | * nstat |
-| | |
| | * pktgenDPDK |
| | |
+----------------+-----------------------------------------------------+
| *Parser* | Tosca2Heat |
| | |
+----------------+-----------------------------------------------------+
-| *Storage* | fio |
-| | |
-| | bonnie++ |
-| | |
-| | storagecapacity |
+| *Storage* | * fio |
+| | * bonnie++ |
+| | * storagecapacity |
| | |
+----------------+-----------------------------------------------------+
| *StorPerf* | storperf |
| | |
+----------------+-----------------------------------------------------+
-| *NSB* | vPE thoughput test case |
+| *NSB* | vFW thoughput test case |
| | |
+----------------+-----------------------------------------------------+
-
New Test cases
-^^^^^^^^^^^^^^
-
-* Generic NFVI test cases
-
- * OPNFV_YARDSTICK_TCO78 - SPEC CPU 2006
-
- * OPNFV_YARDSTICK_TCO79 - Bonnie++
-
-* Kubernetes Test cases
+--------------
- * OPNFV_YARDSTICK_TCO80 - NETWORK LATENCY BETWEEN CONTAINER
+opnfv_yardstick_tc015: Processing speed with impact on energy consumption
+and CPU load.
- * OPNFV_YARDSTICK_TCO81 - NETWORK LATENCY BETWEEN CONTAINER AND VM
+The purpose of TC015 is to evaluate the IaaS compute performance with
+regards to CPU processing speed with its impact on the energy consumption.
+It measures score of single cpu running and parallel running. Energy
+consumption and cpu load are monitored while the cpu test is running.
+The purpose is also to be able to spot the trends. Test results, graphs
+and similar shall be stored for comparison reasons and product evolution
+understanding between different OPNFV versions and/or configurations,
+different server types.
Version Change
---------------
+==============
Module Version Changes
-^^^^^^^^^^^^^^^^^^^^^^
+----------------------
-This is the fifth tracked release of Yardstick. It is based on following
+This is the seventh tracked release of Yardstick. It is based on following
upstream versions:
-- OpenStack Ocata
-
-- OpenDayLight Nitrogen
-
-- ONOS Junco
+- OpenStack Stein
Document Version Changes
-^^^^^^^^^^^^^^^^^^^^^^^^
+------------------------
-This is the fifth tracked version of the Yardstick framework in OPNFV.
+This is the seventh tracked version of the Yardstick framework in OPNFV.
It includes the following documentation updates:
-- Yardstick User Guide: add "network service benchmarking(NSB)" chapter;
- add "Yardstick - NSB Testing -Installation" chapter; add "Yardstick API" chapter;
- add "Yardstick user interface" chapter; Update Yardstick installation chapter;
-
+- Yardstick User Guide:
- Yardstick Developer Guide
-
- Yardstick Release Notes for Yardstick: this document
Feature additions
-^^^^^^^^^^^^^^^^^
-
-- Yardstick RESTful API support
-
-- Network service benchmarking
-
-- Stress testing with Bottlenecks team
-
-- Yardstick framework improvement:
-
- - yardstick report CLI
-
- - Node context support OpenStack configuration via Ansible
-
- - Https support
-
- - Kubernetes context type
-
-- Yardstick container local GUI
-
-- Python 3 support
+-----------------
Scenario Matrix
----------------
-
-For Euphrates 5.0.0, Yardstick was tested on the following scenarios:
-
-+--------------------------+------+---------+------+------+
-| Scenario | Apex | Compass | Fuel | Joid |
-+==========================+======+=========+======+======+
-| os-nosdn-nofeature-noha | | | X | X |
-+--------------------------+------+---------+------+------+
-| os-nosdn-nofeature-ha | X | X | X | X |
-+--------------------------+------+---------+------+------+
-| os-odl_l2-nofeature-ha | | X | X | X |
-+--------------------------+------+---------+------+------+
-| os-odl_l2-nofeature-noha | | | X | |
-+--------------------------+------+---------+------+------+
-| os-odl_l3-nofeature-ha | X | X | X | |
-+--------------------------+------+---------+------+------+
-| os-odl_l3-nofeature-noha | | | X | |
-+--------------------------+------+---------+------+------+
-| os-onos-sfc-ha | | | | |
-+--------------------------+------+---------+------+------+
-| os-onos-nofeature-ha | | X | | X |
-+--------------------------+------+---------+------+------+
-| os-onos-nofeature-noha | | | | |
-+--------------------------+------+---------+------+------+
-| os-odl_l2-sfc-ha | | | X | |
-+--------------------------+------+---------+------+------+
-| os-odl_l2-sfc-noha | | | X | |
-+--------------------------+------+---------+------+------+
-| os-odl_l2-bgpvpn-ha | X | | X | |
-+--------------------------+------+---------+------+------+
-| os-odl_l2-bgpvpn-noha | | | X | |
-+--------------------------+------+---------+------+------+
-| os-nosdn-kvm-ha | X | | X | |
-+--------------------------+------+---------+------+------+
-| os-nosdn-kvm-noha | | | X | |
-+--------------------------+------+---------+------+------+
-| os-nosdn-ovs-ha | | | X | |
-+--------------------------+------+---------+------+------+
-| os-nosdn-ovs-noha | | | X | |
-+--------------------------+------+---------+------+------+
-| os-ocl-nofeature-ha | | X | | |
-+--------------------------+------+---------+------+------+
-| os-nosdn-lxd-ha | | | | X |
-+--------------------------+------+---------+------+------+
-| os-nosdn-lxd-noha | | | | X |
-+--------------------------+------+---------+------+------+
-| os-nosdn-fdio-ha | X | | | |
-+--------------------------+------+---------+------+------+
-| os-odl_l2-fdio-noha | X | | | |
-+--------------------------+------+---------+------+------+
-| os-odl-gluon-noha | X | | | |
-+--------------------------+------+---------+------+------+
-| os-nosdn-openo-ha | | X | | |
-+--------------------------+------+---------+------+------+
-| os-nosdn-kvm_ovs_dpdk | | | X | |
-| -noha | | | | |
-+--------------------------+------+---------+------+------+
-| os-nosdn-kvm_ovs_dpdk-ha | | | X | |
-+--------------------------+------+---------+------+------+
-| os-nosdn-kvm_ovs_dpdk | | | X | |
-| _bar-ha | | | | |
-+--------------------------+------+---------+------+------+
-| os-nosdn-kvm_ovs_dpdk | | | X | |
-| _bar-noha | | | | |
-+--------------------------+------+---------+------+------+
-| opnfv_os-ovn-nofeature- | X | | | |
-| noha_daily | | | | |
-+--------------------------+------+---------+------+------+
+===============
+
Test results
-------------
+============
Test results are available in:
- jenkins logs on CI: https://build.opnfv.org/ci/view/yardstick/
-The reporting pages can be found at:
-
-+---------------+-------------------------------------------------------------------------------------+
-| apex | http://testresults.opnfv.org/reporting/euphrates/yardstick/status-apex.html |
-+---------------+-------------------------------------------------------------------------------------+
-| compass | http://testresults.opnfv.org/reporting/euphrates/yardstick/status-compass.html |
-+---------------+-------------------------------------------------------------------------------------+
-| fuel\@x86 | http://testresults.opnfv.org/reporting/euphrates/yardstick/status-fuel@x86.html |
-+---------------+-------------------------------------------------------------------------------------+
-| fuel\@aarch64 | http://testresults.opnfv.org/reporting/euphrates/yardstick/status-fuel@aarch64.html |
-+---------------+-------------------------------------------------------------------------------------+
-| joid | http://testresults.opnfv.org/reporting/euphrates/yardstick/status-joid.html |
-+---------------+-------------------------------------------------------------------------------------+
Known Issues/Faults
-^^^^^^^^^^^^^^^^^^^
+-------------------
Corrected Faults
-^^^^^^^^^^^^^^^^
+----------------
+
-Euphrates 5.1.0:
-
-+---------------------+-------------------------------------------------------------------------+
-| **JIRA REFERENCE** | **DESCRIPTION** |
-| | |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-841 | Fix various NSB license issues |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-73 | How To Work with Test Cases |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-500 | VNF testing documentation |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-826 | Allow overriding Heat IP addresses to match traffic generator profile |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-828 | Refactor doc/testing/user/userguide "Yardstick Installation" |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-830 | build_yardstick_image Ansible mount module doesn't work on Ubuntu 14.04 |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-833 | ansible_common transform password into lower case |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-847 | tc006, tc079, tc082 miss grafana dashboard in local deployment |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-849 | kill process do not accurately kill the process like "nova-api" |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-850 | tc023 miss description and tc050-58 wrong description |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-852 | tc078 cpu2006 fails in some situation |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-854 | yardstick docker lack of trex_client |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-867 | testcase tc078 have no data stored or dashboard to show results |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-871 | Remove img_modify_playbook assignation in build_yardstick_image.yml |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-829 | "nsb_setup.sh" doesn't parse the controller IP correctly |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-839 | NSB Prox BM test cases to be fixed for incorporating scale-up |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-840 | NSB Prox test documentation of vPE and LW-AFTR test cases |
-+---------------------+-------------------------------------------------------------------------+
-| JIRA: YARDSTICK-848 | NSB "Prox" : Cleanup duplicated traffic profile |
-+---------------------+-------------------------------------------------------------------------+
-
-
-
-
-Euphrates 5.0.0:
-
-+---------------------+--------------------------------------------+
-| **JIRA REFERENCE** | **DESCRIPTION** |
-| | |
-+---------------------+--------------------------------------------+
-| JIRA: YARDSTICK-599 | Could not load EntryPoint.parse when using |
-| | 'openstack -h' |
-+---------------------+--------------------------------------------+
-| JIRA: YARDSTICK-602 | Don't rely on staic ip addresses as they |
-| | are dynamic |
-+---------------------+--------------------------------------------+
-
-
-Euphratess 5.0.0 known restrictions/issues
-------------------------------------------
-+-----------+-----------+----------------------------------------------+
-| Installer | Scenario | Issue |
-+===========+===========+==============================================+
-| any | \*-bgpvpn | Floating ips not supported. Some Test cases |
-| | | related to floating ips are excluded. |
-+-----------+-----------+----------------------------------------------+
-| any | odl_l3-\* | Some test cases related to using floating IP |
-| | | addresses fail because of a known ODL bug. |
-| | | |
-+-----------+-----------+----------------------------------------------+
-| compass | odl_l2-\* | In some test cases, VM instance will failed |
-| | | raising network interfaces. |
-| | | |
-+-----------+-----------+----------------------------------------------+
+Iruya 9.0.0 known restrictions/issues
+======================================
Useful links
-------------
+============
- wiki project page: https://wiki.opnfv.org/display/yardstick/Yardstick
- - wiki Yardstick Euphrates release planing page: https://wiki.opnfv.org/display/yardstick/Yardstick+Euphrates+Release+Planning
+ - wiki Yardstick Iruya release planning page: https://wiki.opnfv.org/display/yardstick/Release+Iruya
- - Yardstick repo: https://git.opnfv.org/cgit/yardstick
+ - Yardstick repo: https://git.opnfv.org/yardstick
- Yardstick CI dashboard: https://build.opnfv.org/ci/view/yardstick
- Yardstick grafana dashboard: http://testresults.opnfv.org/grafana/
- - Yardstick IRC chanel: #opnfv-yardstick
+ - Yardstick IRC channel: #opnfv-yardstick
diff --git a/docs/release/results/euphrates_fraser_comparison.rst b/docs/release/results/euphrates_fraser_comparison.rst
new file mode 100644
index 000000000..1dd328bb7
--- /dev/null
+++ b/docs/release/results/euphrates_fraser_comparison.rst
@@ -0,0 +1,610 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+..
+ Convention for heading levels in Yardstick:
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+ Avoid deeper levels because they do not render well.
+
+Test results analysis for Euphrates and Fraser releases
+=======================================================
+
+TC002
+-----
+
+The round-trip-time (RTT) between 2 VMs on different blades is measured using
+ping.
+
+Most test run measurements result on average between 0.39 and 4.00 ms.
+Compared with Euphrates release, the average RTT result of the same pod experiences
+a slight decline in Fraser release. For example, the average RTT of arm-pod5 is
+1.518 in Ehphrates and 1.714 in Fraser. The average RTT of intel-pod18 is 1.6575
+ms in Ehphrates and 1.856 ms in Fraser.
+
+{
+
+ "huawei-pod2:stable/euphrates": [0.3925],
+
+ "lf-pod2:stable/euphrates": [0.5315],
+
+ "lf-pod1:stable/euphrates": [0.62],
+
+ "huawei-pod2:stable/fraser": [0.677],
+
+ "lf-pod1:stable/fraser": [0.725],
+
+ "flex-pod2:stable/euphrates": [0.795],
+
+ "huawei-pod12:stable/euphrates": [0.87],
+
+ "ericsson-pod1:stable/fraser": [0.9165],
+
+ "huawei-pod12:stable/fraser": [1.0465],
+
+ "lf-pod2:stable/fraser": [1.2325],
+
+ "intel-pod5:stable/euphrates": [1.25],
+
+ "ericsson-virtual3:stable/euphrates": [1.2655],
+
+ "ericsson-pod1:stable/euphrates": [1.372],
+
+ "zte-pod2:stable/fraser": [1.395],
+
+ "arm-pod5:stable/euphrates": [1.518],
+
+ "huawei-virtual4:stable/euphrates": [1.5355],
+
+ "ericsson-virtual4:stable/fraser": [1.582],
+
+ "huawei-virtual3:stable/euphrates": [1.606],
+
+ "intel-pod18:stable/euphrates": [1.6575],
+
+ "huawei-virtual4:stable/fraser": [1.697],
+
+ "huawei-virtual8:stable/euphrates": [1.709],
+
+ "arm-pod5:stable/fraser": [1.714],
+
+ "huawei-virtual3:stable/fraser": [1.716],
+
+ "intel-pod18:stable/fraser": [1.856],
+
+ "huawei-virtual2:stable/euphrates": [1.872],
+
+ "arm-pod6:stable/euphrates": [1.895],
+
+ "huawei-virtual2:stable/fraser": [1.964],
+
+ "huawei-virtual1:stable/fraser": [1.9765],
+
+ "huawei-virtual9:stable/euphrates": [2.0745],
+
+ "arm-pod6:stable/fraser": [2.209],
+
+ "huawei-virtual1:stable/euphrates": [2.495],
+
+ "ericsson-virtual2:stable/euphrates": [2.7895],
+
+ "ericsson-virtual4:stable/euphrates": [3.768],
+
+ "ericsson-virtual1:stable/euphrates": [3.8035],
+
+ "ericsson-virtual3:stable/fraser": [3.9175],
+
+ "ericsson-virtual2:stable/fraser": [4.004]
+
+}
+
+TC010
+-----
+
+The tool we use to measure memory read latency is lmbench, which is a series of
+micro benchmarks intended to measure basic operating system and hardware system
+metrics. Compared with Euphrates release, the memory read latency of the same pod
+also experience a slight decline. Virtual pods seem to have a higher memory read
+latency than physical pods. Compared with X86 pods, the memory read latency of
+arm pods is significant higher.
+
+{
+
+ "ericsson-pod1:stable/euphrates": [5.7785],
+
+ "flex-pod2:stable/euphrates": [5.908],
+
+ "ericsson-virtual1:stable/euphrates": [6.412],
+
+ "intel-pod18:stable/euphrates": [6.5905],
+
+ "intel-pod5:stable/euphrates": [6.6975],
+
+ "ericsson-pod1:stable/fraser": [7.0645],
+
+ "ericsson-virtual4:stable/euphrates": [7.183],
+
+ "intel-pod18:stable/fraser": [7.4465],
+
+ "zte-pod2:stable/fraser": [8.1865],
+
+ "ericsson-virtual2:stable/euphrates": [8.4985],
+
+ "huawei-pod2:stable/euphrates": [8.877],
+
+ "huawei-pod12:stable/euphrates": [9.091],
+
+ "huawei-pod2:stable/fraser": [9.236],
+
+ "huawei-pod12:stable/fraser": [9.615],
+
+ "ericsson-virtual3:stable/euphrates": [9.719],
+
+ "ericsson-virtual2:stable/fraser": [9.8925],
+
+ "huawei-virtual4:stable/euphrates": [10.1195],
+
+ "huawei-virtual3:stable/euphrates": [10.19],
+
+ "huawei-virtual2:stable/fraser": [10.22],
+
+ "huawei-virtual1:stable/euphrates": [10.3045],
+
+ "huawei-virtual9:stable/euphrates": [10.318],
+
+ "ericsson-virtual4:stable/fraser": [10.5465],
+
+ "ericsson-virtual3:stable/fraser": [10.9355],
+
+ "huawei-virtual3:stable/fraser": [10.95],
+
+ "huawei-virtual2:stable/euphrates": [11.274],
+
+ "huawei-virtual4:stable/fraser": [11.557],
+
+ "lf-pod1:stable/euphrates": [15.7025],
+
+ "lf-pod2:stable/euphrates": [15.8495],
+
+ "lf-pod2:stable/fraser": [16.5595],
+
+ "lf-pod1:stable/fraser": [16.8395],
+
+ "arm-pod5:stable/euphrates": [18.092],
+
+ "arm-pod5:stable/fraser": [18.744],
+
+ "huawei-virtual1:stable/fraser": [19.8235],
+
+ "huawei-virtual8:stable/euphrates": [33.999],
+
+ "arm-pod6:stable/euphrates": [41.5605],
+
+ "arm-pod6:stable/fraser": [55.804]
+
+}
+
+TC011
+-----
+
+Iperf3 is a tool for evaluating the packet delay variation between 2 VMs on
+different blades. In general, the packet delay variation of the two releases
+look similar.
+
+{
+
+ "arm-pod6:stable/fraser": [1],
+
+ "ericsson-pod1:stable/fraser": [1],
+
+ "ericsson-virtual2:stable/fraser": [1],
+
+ "ericsson-virtual3:stable/fraser": [1],
+
+ "lf-pod2:stable/fraser": [1],
+
+ "huawei-virtual1:stable/fraser": [2997],
+
+ "huawei-virtual2:stable/euphrates": [2997],
+
+ "flex-pod2:stable/euphrates": [2997.5],
+
+ "huawei-virtual3:stable/euphrates": [2998],
+
+ "huawei-virtual3:stable/fraser": [2999],
+
+ "huawei-virtual9:stable/euphrates": [3000],
+
+ "huawei-virtual8:stable/euphrates": [3001],
+
+ "huawei-virtual4:stable/euphrates": [3002],
+
+ "huawei-virtual4:stable/fraser": [3002],
+
+ "ericsson-virtual3:stable/euphrates": [3006],
+
+ "huawei-virtual1:stable/euphrates": [3007],
+
+ "ericsson-virtual2:stable/euphrates": [3009],
+
+ "intel-pod18:stable/euphrates": [3010],
+
+ "ericsson-virtual4:stable/euphrates": [3017],
+
+ "lf-pod2:stable/euphrates": [3021],
+
+ "arm-pod5:stable/euphrates": [3022],
+
+ "arm-pod6:stable/euphrates": [3022],
+
+ "ericsson-pod1:stable/euphrates": [3022],
+
+ "huawei-pod12:stable/euphrates": [3022],
+
+ "huawei-pod12:stable/fraser": [3022],
+
+ "huawei-pod2:stable/euphrates": [3022],
+
+ "huawei-pod2:stable/fraser": [3022],
+
+ "intel-pod18:stable/fraser": [3022],
+
+ "intel-pod5:stable/euphrates": [3022],
+
+ "lf-pod1:stable/euphrates": [3022],
+
+ "lf-pod1:stable/fraser": [3022],
+
+ "zte-pod2:stable/fraser": [3022],
+
+ "huawei-virtual2:stable/fraser": [3025]
+
+}
+
+TC012
+-----
+
+Lmbench is also used to measure the memory read and write bandwidth.
+Like TC010, compared with Euphrates release, the memory read and write bandwidth
+of the same pod also experience a slight decline. And compared with X86 pods, the memory
+read and write bandwidth of arm pods is significant lower.
+
+{
+
+ "lf-pod1:stable/euphrates": [22912.39],
+
+ "lf-pod2:stable/euphrates": [22637.67],
+
+ "lf-pod1:stable/fraser": [20552.9],
+
+ "flex-pod2:stable/euphrates": [20229.99],
+
+ "lf-pod2:stable/fraser": [20058.925],
+
+ "ericsson-pod1:stable/fraser": [18930.78],
+
+ "intel-pod18:stable/fraser": [18757.545],
+
+ "ericsson-virtual1:stable/euphrates": [17474.965],
+
+ "ericsson-pod1:stable/euphrates": [17127.38],
+
+ "ericsson-virtual4:stable/euphrates": [16219.97],
+
+ "ericsson-virtual2:stable/euphrates": [15652.28],
+
+ "ericsson-virtual3:stable/euphrates": [15551.26],
+
+ "ericsson-virtual4:stable/fraser": [15389.465],
+
+ "ericsson-virtual2:stable/fraser": [15343.79],
+
+ "huawei-pod2:stable/euphrates": [15017.2],
+
+ "huawei-pod2:stable/fraser": [14870.78],
+
+ "huawei-virtual4:stable/euphrates": [14266.34],
+
+ "huawei-virtual1:stable/euphrates": [14233.035],
+
+ "huawei-virtual3:stable/euphrates": [14227.63],
+
+ "zte-pod2:stable/fraser": [14157.99],
+
+ "huawei-pod12:stable/euphrates": [14147.245],
+
+ "huawei-pod12:stable/fraser": [14126.99],
+
+ "intel-pod18:stable/euphrates": [14058.33],
+
+ "huawei-virtual3:stable/fraser": [13929.67],
+
+ "huawei-virtual2:stable/euphrates": [13862.85],
+
+ "huawei-virtual4:stable/fraser": [13847.155],
+
+ "huawei-virtual2:stable/fraser": [13702.92],
+
+ "huawei-virtual1:stable/fraser": [13496.45],
+
+ "intel-pod5:stable/euphrates": [13280.32],
+
+ "ericsson-virtual3:stable/fraser": [12733.19],
+
+ "huawei-virtual9:stable/euphrates": [12559.445],
+
+ "huawei-virtual8:stable/euphrates": [8998.02],
+
+ "arm-pod5:stable/euphrates": [4388.875],
+
+ "arm-pod5:stable/fraser": [4326.11],
+
+ "arm-pod6:stable/euphrates": [4260.2],
+
+ "arm-pod6:stable/fraser": [3809.885]
+
+}
+
+TC014
+-----
+
+The Unixbench is used to evaluate the IaaS processing speed with regards to
+score of single CPU running and parallel running. Below are the single CPU running
+scores. It can be seen that the processing test results vary from scores 715 to 3737.
+In general, the single CPU score of the two releases look similar.
+
+{
+
+ "lf-pod2:stable/fraser": [3737.6],
+
+ "lf-pod2:stable/euphrates": [3723.95],
+
+ "lf-pod1:stable/fraser": [3702.7],
+
+ "lf-pod1:stable/euphrates": [3669],
+
+ "intel-pod5:stable/euphrates": [3388.6],
+
+ "intel-pod18:stable/euphrates": [3298.4],
+
+ "flex-pod2:stable/euphrates": [3208.6],
+
+ "ericsson-pod1:stable/fraser": [3131.6],
+
+ "intel-pod18:stable/fraser": [3098.1],
+
+ "ericsson-virtual1:stable/euphrates": [2988.9],
+
+ "zte-pod2:stable/fraser": [2831.4],
+
+ "ericsson-pod1:stable/euphrates": [2669.1],
+
+ "ericsson-virtual4:stable/euphrates": [2598.5],
+
+ "ericsson-virtual2:stable/fraser": [2559.7],
+
+ "ericsson-virtual3:stable/euphrates": [2553.15],
+
+ "huawei-pod2:stable/euphrates": [2531.2],
+
+ "huawei-pod2:stable/fraser": [2528.9],
+
+ "ericsson-virtual4:stable/fraser": [2527.8],
+
+ "ericsson-virtual2:stable/euphrates": [2526.9],
+
+ "huawei-virtual4:stable/euphrates": [2407.4],
+
+ "huawei-virtual3:stable/fraser": [2379.1],
+
+ "huawei-virtual3:stable/euphrates": [2374.6],
+
+ "huawei-virtual4:stable/fraser": [2362.1],
+
+ "huawei-virtual2:stable/euphrates": [2326.4],
+
+ "huawei-virtual9:stable/euphrates": [2324.95],
+
+ "huawei-virtual1:stable/euphrates": [2302.6],
+
+ "huawei-virtual2:stable/fraser": [2299.3],
+
+ "huawei-pod12:stable/euphrates": [2232.2],
+
+ "huawei-pod12:stable/fraser": [2229],
+
+ "huawei-virtual1:stable/fraser": [2171.3],
+
+ "ericsson-virtual3:stable/fraser": [2104.8],
+
+ "huawei-virtual8:stable/euphrates": [2085.3],
+
+ "arm-pod5:stable/fraser": [1764.2],
+
+ "arm-pod5:stable/euphrates": [1754.4],
+
+ "arm-pod6:stable/euphrates": [716.15],
+
+ "arm-pod6:stable/fraser": [715.4]
+
+}
+
+TC069
+-----
+
+With the block size changing from 1 kb to 512 kb, the memory write bandwidth
+tends to become larger first and then smaller within every run test. Below are
+the scores for 32mb block array.
+
+{
+
+ "intel-pod18:stable/euphrates": [18871.79],
+
+ "intel-pod18:stable/fraser": [16939.24],
+
+ "intel-pod5:stable/euphrates": [16055.79],
+
+ "arm-pod6:stable/euphrates": [13327.02],
+
+ "arm-pod6:stable/fraser": [11895.71],
+
+ "flex-pod2:stable/euphrates": [9384.585],
+
+ "zte-pod2:stable/fraser": [9375.33],
+
+ "ericsson-pod1:stable/euphrates": [9331.535],
+
+ "huawei-pod12:stable/euphrates": [9164.88],
+
+ "ericsson-pod1:stable/fraser": [9140.42],
+
+ "huawei-pod2:stable/euphrates": [9026.52],
+
+ "huawei-pod12:stable/fraser": [8993.37],
+
+ "huawei-virtual9:stable/euphrates": [8825.805],
+
+ "huawei-pod2:stable/fraser": [8794.01],
+
+ "huawei-virtual2:stable/fraser": [7670.21],
+
+ "ericsson-virtual1:stable/euphrates": [7615.97],
+
+ "ericsson-virtual4:stable/euphrates": [7539.23],
+
+ "arm-pod5:stable/fraser": [7479.32],
+
+ "arm-pod5:stable/euphrates": [7403.38],
+
+ "huawei-virtual3:stable/euphrates": [7247.89],
+
+ "ericsson-virtual2:stable/fraser": [7219.21],
+
+ "huawei-virtual2:stable/euphrates": [7205.35],
+
+ "huawei-virtual1:stable/euphrates": [7196.405],
+
+ "ericsson-virtual3:stable/euphrates": [7173.72],
+
+ "huawei-virtual4:stable/euphrates": [7131.47],
+
+ "ericsson-virtual2:stable/euphrates": [7129.08],
+
+ "huawei-virtual4:stable/fraser": [7059.045],
+
+ "huawei-virtual3:stable/fraser": [7023.57],
+
+ "lf-pod1:stable/euphrates": [6928.18],
+
+ "lf-pod2:stable/euphrates": [6875.88],
+
+ "lf-pod2:stable/fraser": [6834.7],
+
+ "lf-pod1:stable/fraser": [6775.27],
+
+ "ericsson-virtual4:stable/fraser": [6522.86],
+
+ "ericsson-virtual3:stable/fraser": [5835.59],
+
+ "huawei-virtual8:stable/euphrates": [5729.705],
+
+ "huawei-virtual1:stable/fraser": [5617.12]
+
+}
+
+TC082
+-----
+
+For this test case, we use perf to measure context-switches under load.
+High context switch rates are not themselves an issue, but they may point the
+way to a more significant problem.
+
+{
+
+ "zte-pod2:stable/fraser": [306.5],
+
+ "huawei-pod12:stable/euphrates": [316],
+
+ "lf-pod2:stable/fraser": [337.5],
+
+ "intel-pod18:stable/euphrates": [340],
+
+ "intel-pod18:stable/fraser": [343.5],
+
+ "intel-pod5:stable/euphrates": [357.5],
+
+ "ericsson-pod1:stable/euphrates": [384],
+
+ "lf-pod2:stable/euphrates": [394.5],
+
+ "huawei-pod12:stable/fraser": [399],
+
+ "lf-pod1:stable/euphrates": [435],
+
+ "lf-pod1:stable/fraser": [454],
+
+ "flex-pod2:stable/euphrates": [476],
+
+ "huawei-pod2:stable/euphrates": [518],
+
+ "huawei-pod2:stable/fraser": [544.5],
+
+ "arm-pod5:stable/euphrates": [869.5],
+
+ "huawei-virtual9:stable/euphrates": [1002],
+
+ "huawei-virtual4:stable/fraser": [1138],
+
+ "huawei-virtual4:stable/euphrates": [1174],
+
+ "huawei-virtual3:stable/euphrates": [1239],
+
+ "ericsson-pod1:stable/fraser": [1305],
+
+ "huawei-virtual2:stable/euphrates": [1430],
+
+ "huawei-virtual3:stable/fraser": [1433],
+
+ "huawei-virtual1:stable/fraser": [1470],
+
+ "huawei-virtual1:stable/euphrates": [1489],
+
+ "arm-pod6:stable/fraser": [1738.5],
+
+ "arm-pod6:stable/euphrates": [1883.5]
+
+}
+
+TC083
+-----
+
+TC083 measures network latency and throughput between VMs using netperf.
+The test results shown below are for UDP throughout.
+
+{
+
+ "lf-pod1:stable/euphrates": [2204.42],
+
+ "lf-pod2:stable/fraser": [1893.39],
+
+ "intel-pod18:stable/euphrates": [1835.55],
+
+ "lf-pod2:stable/euphrates": [1676.705],
+
+ "intel-pod5:stable/euphrates": [1612.555],
+
+ "zte-pod2:stable/fraser": [1543.995],
+
+ "lf-pod1:stable/fraser": [1480.86],
+
+ "intel-pod18:stable/fraser": [1417.015],
+
+ "flex-pod2:stable/euphrates": [1370.23],
+
+ "huawei-pod12:stable/euphrates": [1300.12]
+
+}
diff --git a/docs/release/results/images/tc002_pod.png b/docs/release/results/images/tc002_pod.png
new file mode 100644
index 000000000..7f92c471d
--- /dev/null
+++ b/docs/release/results/images/tc002_pod.png
Binary files differ
diff --git a/docs/release/results/images/tc002_pod_fraser.png b/docs/release/results/images/tc002_pod_fraser.png
new file mode 100644
index 000000000..797dc3136
--- /dev/null
+++ b/docs/release/results/images/tc002_pod_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc002_scenario.png b/docs/release/results/images/tc002_scenario.png
new file mode 100644
index 000000000..0ea1ecec6
--- /dev/null
+++ b/docs/release/results/images/tc002_scenario.png
Binary files differ
diff --git a/docs/release/results/images/tc002_scenario_fraser.png b/docs/release/results/images/tc002_scenario_fraser.png
new file mode 100644
index 000000000..ff42e6516
--- /dev/null
+++ b/docs/release/results/images/tc002_scenario_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc010_pod.png b/docs/release/results/images/tc010_pod.png
new file mode 100644
index 000000000..c7c623481
--- /dev/null
+++ b/docs/release/results/images/tc010_pod.png
Binary files differ
diff --git a/docs/release/results/images/tc010_pod_fraser.png b/docs/release/results/images/tc010_pod_fraser.png
new file mode 100644
index 000000000..23367d34a
--- /dev/null
+++ b/docs/release/results/images/tc010_pod_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc010_scenario.png b/docs/release/results/images/tc010_scenario.png
new file mode 100644
index 000000000..7c53a5fab
--- /dev/null
+++ b/docs/release/results/images/tc010_scenario.png
Binary files differ
diff --git a/docs/release/results/images/tc010_scenario_fraser.png b/docs/release/results/images/tc010_scenario_fraser.png
new file mode 100644
index 000000000..a481a595f
--- /dev/null
+++ b/docs/release/results/images/tc010_scenario_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc011_pod.png b/docs/release/results/images/tc011_pod.png
new file mode 100644
index 000000000..8fec72f5a
--- /dev/null
+++ b/docs/release/results/images/tc011_pod.png
Binary files differ
diff --git a/docs/release/results/images/tc011_pod_fraser.png b/docs/release/results/images/tc011_pod_fraser.png
new file mode 100644
index 000000000..82dc9c763
--- /dev/null
+++ b/docs/release/results/images/tc011_pod_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc011_scenario.png b/docs/release/results/images/tc011_scenario.png
new file mode 100644
index 000000000..2d78ea372
--- /dev/null
+++ b/docs/release/results/images/tc011_scenario.png
Binary files differ
diff --git a/docs/release/results/images/tc011_scenario_fraser.png b/docs/release/results/images/tc011_scenario_fraser.png
new file mode 100644
index 000000000..226d0b856
--- /dev/null
+++ b/docs/release/results/images/tc011_scenario_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc012_pod.png b/docs/release/results/images/tc012_pod.png
new file mode 100644
index 000000000..0f2a00910
--- /dev/null
+++ b/docs/release/results/images/tc012_pod.png
Binary files differ
diff --git a/docs/release/results/images/tc012_pod_fraser.png b/docs/release/results/images/tc012_pod_fraser.png
new file mode 100644
index 000000000..66e79be85
--- /dev/null
+++ b/docs/release/results/images/tc012_pod_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc012_scenario.png b/docs/release/results/images/tc012_scenario.png
new file mode 100644
index 000000000..16257988d
--- /dev/null
+++ b/docs/release/results/images/tc012_scenario.png
Binary files differ
diff --git a/docs/release/results/images/tc012_scenario_fraser.png b/docs/release/results/images/tc012_scenario_fraser.png
new file mode 100644
index 000000000..4ef44119a
--- /dev/null
+++ b/docs/release/results/images/tc012_scenario_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc014_pod.png b/docs/release/results/images/tc014_pod.png
new file mode 100644
index 000000000..63aead2e8
--- /dev/null
+++ b/docs/release/results/images/tc014_pod.png
Binary files differ
diff --git a/docs/release/results/images/tc014_pod_fraser.png b/docs/release/results/images/tc014_pod_fraser.png
new file mode 100644
index 000000000..697201d76
--- /dev/null
+++ b/docs/release/results/images/tc014_pod_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc014_scenario.png b/docs/release/results/images/tc014_scenario.png
new file mode 100644
index 000000000..98f23ba1b
--- /dev/null
+++ b/docs/release/results/images/tc014_scenario.png
Binary files differ
diff --git a/docs/release/results/images/tc014_scenario_fraser.png b/docs/release/results/images/tc014_scenario_fraser.png
new file mode 100644
index 000000000..f7865dcdc
--- /dev/null
+++ b/docs/release/results/images/tc014_scenario_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc069_pod.png b/docs/release/results/images/tc069_pod.png
new file mode 100644
index 000000000..66b272cb4
--- /dev/null
+++ b/docs/release/results/images/tc069_pod.png
Binary files differ
diff --git a/docs/release/results/images/tc069_pod_fraser.png b/docs/release/results/images/tc069_pod_fraser.png
new file mode 100644
index 000000000..1cba192d7
--- /dev/null
+++ b/docs/release/results/images/tc069_pod_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc069_scenario.png b/docs/release/results/images/tc069_scenario.png
new file mode 100644
index 000000000..caf12f8d5
--- /dev/null
+++ b/docs/release/results/images/tc069_scenario.png
Binary files differ
diff --git a/docs/release/results/images/tc069_scenario_fraser.png b/docs/release/results/images/tc069_scenario_fraser.png
new file mode 100644
index 000000000..f988b90c6
--- /dev/null
+++ b/docs/release/results/images/tc069_scenario_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc082_pod.png b/docs/release/results/images/tc082_pod.png
new file mode 100644
index 000000000..89e01666b
--- /dev/null
+++ b/docs/release/results/images/tc082_pod.png
Binary files differ
diff --git a/docs/release/results/images/tc082_pod_fraser.png b/docs/release/results/images/tc082_pod_fraser.png
new file mode 100644
index 000000000..d54ab901a
--- /dev/null
+++ b/docs/release/results/images/tc082_pod_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc082_scenario.png b/docs/release/results/images/tc082_scenario.png
new file mode 100644
index 000000000..637a739c3
--- /dev/null
+++ b/docs/release/results/images/tc082_scenario.png
Binary files differ
diff --git a/docs/release/results/images/tc083_pod.png b/docs/release/results/images/tc083_pod.png
new file mode 100644
index 000000000..f874191e4
--- /dev/null
+++ b/docs/release/results/images/tc083_pod.png
Binary files differ
diff --git a/docs/release/results/images/tc083_pod_fraser.png b/docs/release/results/images/tc083_pod_fraser.png
new file mode 100644
index 000000000..942cc2074
--- /dev/null
+++ b/docs/release/results/images/tc083_pod_fraser.png
Binary files differ
diff --git a/docs/release/results/images/tc083_scenario.png b/docs/release/results/images/tc083_scenario.png
new file mode 100644
index 000000000..afd80aa02
--- /dev/null
+++ b/docs/release/results/images/tc083_scenario.png
Binary files differ
diff --git a/docs/release/results/index.rst b/docs/release/results/index.rst
index 0560152e0..30cf62284 100644
--- a/docs/release/results/index.rst
+++ b/docs/release/results/index.rst
@@ -14,3 +14,9 @@ Yardstick test results
.. include:: ./overview.rst
.. include:: ./results.rst
+.. include:: ./euphrates_fraser_comparison.rst
+
+.. include:: ./yardstick-opnfv-ha.rst
+.. include:: ./yardstick-opnfv-kvm.rst
+.. include:: ./yardstick-opnfv-parser.rst
+
diff --git a/docs/release/results/os-nosdn-kvm-ha.rst b/docs/release/results/os-nosdn-kvm-ha.rst
deleted file mode 100644
index a8a56f80e..000000000
--- a/docs/release/results/os-nosdn-kvm-ha.rst
+++ /dev/null
@@ -1,270 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-================================
-Test Results for os-nosdn-kvm-ha
-================================
-
-.. toctree::
- :maxdepth: 2
-
-
-fuel
-====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD2: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test
-runs, each run on the Ericsson POD2_ or LF POD2_ between August 24 and 30 in
-2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 0.44 and 0.75 ms.
-A few runs start with a 0.65 - 0.68 ms RTT spike (This could be because of
-normal ARP handling). One test run has a greater RTT spike of 1.49 ms.
-To be able to draw conclusions more runs should be made. SLA set to 10 ms.
-The SLA value is used as a reference, it has not been defined by OPNFV.
-
-TC005
------
-The IO read bandwidth looks similar between different dates, with an
-average between approx. 92 and 204 MB/s. Within each test run the results
-vary, with a minimum 2 MB/s and maximum 819 MB/s on the totality. Most runs
-have a minimum BW of 3 MB/s (one run at 2 MB/s). The maximum BW varies more in
-absolute numbers between the dates, between 238 and 819 MB/s.
-SLA set to 400 MB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC010
------
-The measurements for memory latency are similar between test dates and result
-in approx. 2.07 ns. The variations within each test run are similar, between
-1.41 and 3.53 ns.
-SLA set to 30 ns. The SLA value is used as a reference, it has not been defined
-by OPNFV.
-
-TC011
------
-Packet delay variation between 2 VMs on different blades is measured using
-Iperf3. The reported packet delay variation varies between 0.0051 and 0.0243 ms,
-with an average delay variation between 0.0081 ms and 0.0195 ms.
-
-TC012
------
-Between test dates, the average measurements for memory bandwidth result in
-approx. 13.6 GB/s. Within each test run the results vary more, with a minimal
-BW of 6.09 GB/s and maximum of 16.47 GB/s on the totality.
-SLA set to 15 GB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC014
------
-The Unixbench processor test run results vary between scores 2316 and 3619,
-one result each date.
-No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-CPU utilization statistics are collected during UDP flows sent between the VMs
-using pktgen as packet generator tool. The average measurements for CPU
-utilization ratio vary between 1% to 2%. The peak of CPU utilization ratio
-appears around 7%.
-
-TC069
------
-Between test dates, the average measurements for memory bandwidth vary between
-22.6 and 29.1 GB/s. Within each test run the results vary more, with a minimal
-BW of 20.0 GB/s and maximum of 29.5 GB/s on the totality.
-SLA set to 6 GB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Memory utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The average measurements for memory
-utilization vary between 225MB to 246MB. The peak of memory utilization appears
-around 340MB.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Cache utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The average measurements for cache
-utilization vary between 205MB to 212MB.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. Total number of packets received per
-second was average on 200 kpps and total number of packets transmitted per
-second was average on 600 kpps.
-
-Detailed test results
----------------------
-The scenario was run on Ericsson POD2_ and LF POD2_ with:
-Fuel 9.0
-OpenStack Mitaka
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
-
-Conclusions and recommendations
--------------------------------
-The pktgen test configuration has a relatively large base effect on RTT in
-TC037 compared to TC002, where there is no background load at all. Approx.
-15 ms compared to approx. 0.5 ms, which is more than a 3000 percentage
-difference in RTT results.
-Especially RTT and throughput come out with better results than for instance
-the *fuel-os-nosdn-nofeature-ha* scenario does. The reason for this should
-probably be further analyzed and understood. Also of interest could be
-to make further analyzes to find patterns and reasons for lost traffic.
-Also of interest could be to see if there are continuous variations where
-some test cases stand out with better or worse results than the general test
-case.
-
diff --git a/docs/release/results/os-nosdn-nofeature-ha.rst b/docs/release/results/os-nosdn-nofeature-ha.rst
deleted file mode 100644
index 9e52731d5..000000000
--- a/docs/release/results/os-nosdn-nofeature-ha.rst
+++ /dev/null
@@ -1,492 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-======================================
-Test Results for os-nosdn-nofeature-ha
-======================================
-
-.. toctree::
- :maxdepth: 2
-
-
-apex
-====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD1: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test
-runs, each run on the LF POD1_ between August 25 and 28 in
-2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 0.74 and 1.08 ms.
-A few runs start with a 0.99 - 1.07 ms RTT spike (This could be because of
-normal ARP handling). One test run has a greater RTT spike of 1.35 ms.
-To be able to draw conclusions more runs should be made. SLA set to 10 ms.
-The SLA value is used as a reference, it has not been defined by OPNFV.
-
-TC005
------
-The IO read bandwidth looks similar between different dates, with an
-average between approx. 128 and 136 MB/s. Within each test run the results
-vary, with a minimum 5 MB/s and maximum 446 MB/s on the totality. Most runs
-have a minimum BW of 5 MB/s (one run at 6 MB/s). The maximum BW varies more in
-absolute numbers between the dates, between 416 and 446 MB/s.
-SLA set to 400 MB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC010
------
-The measurements for memory latency are similar between test dates and result
-in approx. 1.09 ns. The variations within each test run are similar, between
-1.0860 and 1.0880 ns.
-SLA set to 30 ns. The SLA value is used as a reference, it has not been defined
-by OPNFV.
-
-TC011
------
-Packet delay variation between 2 VMs on different blades is measured using
-Iperf3. The reported packet delay variation varies between 0.0025 and 0.0148 ms,
-with an average delay variation between 0.0056 ms and 0.0157 ms.
-
-TC012
------
-Between test dates, the average measurements for memory bandwidth result in
-approx. 19.70 GB/s. Within each test run the results vary more, with a minimal
-BW of 18.16 GB/s and maximum of 20.13 GB/s on the totality.
-SLA set to 15 GB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC014
------
-The Unixbench processor test run results vary between scores 3224.4 and 3842.8,
-one result each date. The average score on the total is 3659.5.
-No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-CPU utilization statistics are collected during UDP flows sent between the VMs
-using pktgen as packet generator tool. The average measurements for CPU
-utilization ratio vary between 1% to 2%. The peak of CPU utilization ratio
-appears around 7%.
-
-TC069
------
-Between test dates, the average measurements for memory bandwidth vary between
-22.6 and 29.1 GB/s. Within each test run the results vary more, with a minimal
-BW of 20.0 GB/s and maximum of 29.5 GB/s on the totality.
-SLA set to 6 GB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Memory utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The average measurements for memory
-utilization vary between 225MB to 246MB. The peak of memory utilization appears
-around 340MB.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Cache utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The average measurements for cache
-utilization vary between 205MB to 212MB.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. Total number of packets received per
-second was average on 200 kpps and total number of packets transmitted per
-second was average on 600 kpps.
-
-Detailed test results
----------------------
-The scenario was run on LF POD1_ with:
-Apex
-OpenStack Mitaka
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
-
-
-Joid
-====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD5: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test runs, each run
-on the Intel POD5_ between September 11 and 14 in 2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 1.59 and 1.70 ms.
-Two test runs have reached the same greater RTT spike of 3.06 ms, which are
-1.66 and 1.70 ms average, but only one has the lower RTT of 1.35 ms. The other
-two runs have no similar spike at all. To be able to draw conclusions more runs
-should be made. SLA set to be 10 ms. The SLA value is used as a reference, it
-has not been defined by OPNFV.
-
-TC005
------
-The IO read bandwidth actually refers to the storage throughput and the
-greatest IO read bandwidth of the four runs is 173.3 MB/s. The IO read
-bandwidth of the four runs looks similar on different four days, with an
-average between 32.7 and 60.4 MB/s. One of the runs has a minimum BW of 429
-KM/s and other has a maximum BW of 173.3 MB/s. The SLA of read bandwidth sets
-to be 400 MB/s, which is used as a reference, and it has not been defined by
-OPNFV.
-
-TC010
------
-The tool we use to measure memory read latency is lmbench, which is a series of
-micro benchmarks intended to measure basic operating system and hardware system
-metrics. The memory read latency of the four runs is 1.1 ns on average. The
-variations within each test run are different, some vary from a large range and
-others have a small change. For example, the largest change is on September 14,
-the memory read latency of which is ranging from 1.12 ns to 1.22 ns. However,
-the results on September 12 change very little, which range from 1.14 ns to
-1.17 ns. The SLA sets to be 30 ns. The SLA value is used as a reference, it has
-not been defined by OPNFV.
-
-TC011
------
-Iperf3 is a tool for evaluating the pocket delay variation between 2 VMs on
-different blades. The reported pocket delay variations of the four test runs
-differ from each other. The results on September 13 within the date look
-similar and the values are between 0.0087 and 0.0190 ms, which is 0.0126 ms on
-average. However, on the fourth day, the pocket delay variation has a large
-wide change within the date, which ranges from 0.0032 ms to 0.0121 ms and has
-the minimum average value. The pocket delay variations of other two test runs
-look relatively similar, which are 0.0076 ms and 0.0152 ms on average. The SLA
-value sets to be 10 ms. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC012
------
-Lmbench is also used to measure the memory read and write bandwidth, in which
-we use bw_mem to obtain the results. Among the four test runs, the memory
-bandwidth within the second day almost keep stable, which is 11.58 GB/s on
-average. And the memory bandwidth of the fourth day look similar as that of the
-second day, both of which remain stable. The other two test runs relatively
-change from a large wide range, in which the minimum memory bandwidth is 11.22
-GB/s and the maximum bandwidth is 16.65 GB/s with an average bandwidth of about
-12.20 GB/s. Here SLA set to be 15 GB/s. The SLA value is used as a reference,
-it has not been defined by OPNFV.
-
-TC014
------
-The Unixbench is used to measure processing speed, that is instructions per
-second. It can be seen from the dashboard that the processing test results
-vary from scores 3272 to 3444, and there is only one result one date. The
-overall average score is 3371. No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The mean packet throughput of the four test runs is 119.85, 128.02, 121.40 and
-126.08 kpps, of which the result of the second is the highest. The RTT results
-of all the test runs keep flat at approx. 37 ms. It is obvious that the PPS
-results are not as consistent as the RTT results.
-
-The No. flows of the four test runs are 240 k on average and the PPS results
-look a little waved since the largest packet throughput is 184 kpps and the
-minimum throughput is 49 K respectively.
-
-There are no errors of packets received in the four runs, but there are still
-lost packets in all the test runs. The RTT values obtained by ping of the four
-runs have the similar average vaue, that is 38 ms, of which the worest RTT is
-93 ms on Sep. 14th.
-
-CPU load of the four test runs have a large change, since the minimum value and
-the peak of CPU load is 0 percent and 51 percent respectively. And the best
-result is obtained on Sep. 14th.
-
-TC069
------
-With the block size changing from 1 kb to 512 kb, the memory write bandwidth
-tends to become larger first and then smaller within every run test, which
-rangs from 22.3 GB/s to 26.8 GB/s and then to 18.5 GB/s on average. Since the
-test id is one, it is that only the INT memory write bandwidth is tested. On
-the whole, when the block size is 8 kb and 16 kb, the memory write bandwidth
-look similar with a minimal BW of 22.5 GB/s and peak value of 28.7 GB/s. SLA
-sets to be 7 GB/s. The SLA value is used as a a reference, it has not been
-defined by OPNFV.
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other. Within each test run, the maximum RTT can reach
-more than 80 ms and the average RTT is usually approx. 38 ms. On the whole, the
-average RTTs of the four runs keep flat.
-
-Memory utilization is measured by free, which can display amount of free and
-used memory in the system. The largest amount of used memory is 268 MiB on Sep
-14, which also has the largest minimum memory. Besides, the rest three test
-runs have the similar used memory. On the other hand, the free memory of the
-four runs have the same smallest minimum value, that is about 223 MiB, and the
-maximum free memory of three runs have the similar result, that is 337 MiB,
-except that on Sep. 14th, whose maximum free memory is 254 MiB. On the whole,
-all the test runs have similar average free memory.
-
-Network throughput and packet loss can be measured by pktgen, which is a tool
-in the network for generating traffic loads for network experiments. The mean
-network throughput of the four test runs seem quite different, ranging from
-119.85 kpps to 128.02 kpps. The average number of flows in these tests is
-24000, and each run has a minimum number of flows of 2 and a maximum number
-of flows of 1.001 Mil. At the same time, the corresponding packet throughput
-differ between 49.4k and 193.3k with an average packet throughput of approx.
-125k. On the whole, the PPS results seem consistent. Within each test run of
-the four runs, when number of flows becomes larger, the packet throughput seems
-not larger in the meantime.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other. Within each test run, the maximum RTT can reach
-more than 94 ms and the average RTT is usually approx. 35 ms. On the whole, the
-average RTTs of the four runs keep flat.
-
-Cache utilization is measured by cachestat, which can display size of cache and
-buffer in the system. Cache utilization statistics are collected during UDP
-flows sent between the VMs using pktgen as packet generator tool.The largest
-cache size is 212 MiB in the four runs, and the smallest cache size is 75 MiB.
-On the whole, the average cache size of the four runs is approx. 208 MiB.
-Meanwhile, the tread of the buffer size looks similar with each other.
-
-Packet throughput can be measured by pktgen, which is a tool in the network for
-generating traffic loads for network experiments. The mean packet throughput of
-the four test runs seem quite different, ranging from 119.85 kpps to 128.02
-kpps. The average number of flows in these tests is 239.7k, and each run has a
-minimum number of flows of 2 and a maximum number of flows of 1.001 Mil. At the
-same time, the corresponding packet throughput differ between 49.4k and 193.3k
-with an average packet throughput of approx. 125k. On the whole, the PPS results
-seem consistent. Within each test run of the four runs, when number of flows
-becomes larger, the packet throughput seems not larger in the meantime.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 32 ms. The PPS results are not as consistent as the RTT results.
-
-Network utilization is measured by sar, that is system activity reporter, which
-can display the average statistics for the time since the system was started.
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The largest total number of packets
-transmitted per second differs from each other, in which the smallest number of
-packets transmitted per second is 6 pps on Sep. 12ed and the largest of that is
-210.8 kpps. Meanwhile, the largest total number of packets received per second
-differs from each other, in which the smallest number of packets received per
-second is 2 pps on Sep. 13rd and the largest of that is 250.2 kpps.
-
-In some test runs when running with less than approx. 90000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. For the other test runs there is however no
-significant change to the PPS throughput when the number of flows are
-increased. In some test runs the PPS is also greater with 1000000 flows
-compared to other test runs where the PPS result is less with only 2 flows.
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally differs a lot per test run.
-
-Detailed test results
----------------------
-The scenario was run on Intel POD5_ with:
-Joid
-OpenStack Mitaka
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Conclusions and recommendations
--------------------------------
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
-
-
diff --git a/docs/release/results/os-nosdn-nofeature-noha.rst b/docs/release/results/os-nosdn-nofeature-noha.rst
deleted file mode 100644
index 8b7c184bb..000000000
--- a/docs/release/results/os-nosdn-nofeature-noha.rst
+++ /dev/null
@@ -1,259 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-========================================
-Test Results for os-nosdn-nofeature-noha
-========================================
-
-.. toctree::
- :maxdepth: 2
-
-
-Joid
-=====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD5: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test runs, each run
-on the Intel POD5_ between September 12 and 15 in 2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 1.50 and 1.68 ms.
-Only one test run has reached greatest RTT spike of 2.92 ms, which has
-the smallest RTT of 1.06 ms. The other three runs have no similar spike at all,
-the minimum and average RTTs of which are approx. 1.50 ms and 1.68 ms. SLA set to
-be 10 ms. The SLA value is used as a reference, it has not been defined by
-OPNFV.
-
-TC005
------
-The IO read bandwidth actually refers to the storage throughput, which is
-measured by fio and the greatest IO read bandwidth of the four runs is 177.5
-MB/s. The IO read bandwidth of the four runs looks similar on different four
-days, with an average between 46.7 and 62.5 MB/s. One of the runs has a minimum
-BW of 680 KM/s and other has a maximum BW of 177.5 MB/s. The SLA of read
-bandwidth sets to be 400 MB/s, which is used as a reference, and it has not
-been defined by OPNFV.
-
-The results of storage IOPS for the four runs look similar with each other. The
-test runs all have an approx. 1.55 K/s for IO reading with an minimum value of
-less than 60 times per second.
-
-TC010
------
-The tool we use to measure memory read latency is lmbench, which is a series of
-micro benchmarks intended to measure basic operating system and hardware system
-metrics. The memory read latency of the four runs is between 1.134 ns and 1.227
-ns on average. The variations within each test run are quite different, some
-vary from a large range and others have a small change. For example, the
-largest change is on September 15, the memory read latency of which is ranging
-from 1.116 ns to 1.393 ns. However, the results on September 12 change very
-little, which mainly keep flat and range from 1.124 ns to 1.55 ns. The SLA sets
-to be 30 ns. The SLA value is used as a reference, it has not been defined by
-OPNFV.
-
-TC011
------
-Iperf3 is a tool for evaluating the pocket delay variation between 2 VMs on
-different blades. The reported pocket delay variations of the four test runs
-differ from each other. The results on September 13 within the date look
-similar and the values are between 0.0213 and 0.0225 ms, which is 0.0217 ms on
-average. However, on the third day, the packet delay variation has a large
-wide change within the date, which ranges from 0.008 ms to 0.0225 ms and has
-the minimum value. On Sep. 12, the packet delay is quite long, for the value is
-between 0.0236 and 0.0287 ms and it also has the maximum packet delay of 0.0287
-ms. The packet delay of the last test run is 0.0151 ms on average. The SLA
-value sets to be 10 ms. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC012
------
-Lmbench is also used to measure the memory read and write bandwidth, in which
-we use bw_mem to obtain the results. Among the four test runs, the memory
-bandwidth of three test runs almost keep stable within each run, which is
-11.65, 11.57 and 11.64 GB/s on average. However, the memory read and write
-bandwidth on Sep. 14 has a large range, for it ranges from 11.36 GB/s to 16.68
-GB/s. Here SLA set to be 15 GB/s. The SLA value is used as a reference, it has
-not been defined by OPNFV.
-
-TC014
------
-The Unixbench is used to evaluate the IaaS processing speed with regards to
-score of single cpu running and parallel running. It can be seen from the
-dashboard that the processing test results vary from scores 3222 to 3585, and
-there is only one result one date. No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The mean packet throughput of the four test runs is 124.8, 160.1, 113.8 and
-137.3 kpps, of which the result of the second is the highest. The RTT results
-of all the test runs keep flat at approx. 37 ms. It is obvious that the PPS
-results are not as consistent as the RTT results.
-
-The No. flows of the four test runs are 240 k on average and the PPS results
-look a little waved since the largest packet throughput is 243.1 kpps and the
-minimum throughput is 37.6 kpps respectively.
-
-There are no errors of packets received in the four runs, but there are still
-lost packets in all the test runs. The RTT values obtained by ping of the four
-runs have the similar average vaue, that is between 32 ms and 41 ms, of which
-the worest RTT is 155 ms on Sep. 14th.
-
-CPU load is measured by mpstat, and CPU load of the four test runs seem a
-little similar, since the minimum value and the peak of CPU load is between 0
-percent and 9 percent respectively. And the best result is obtained on Sep.
-15th, with an CPU load of nine percent.
-
-TC069
------
-With the block size changing from 1 kb to 512 kb, the memory write bandwidth
-tends to become larger first and then smaller within every run test, which
-rangs from 22.4 GB/s to 26.5 GB/s and then to 18.6 GB/s on average. Since the
-test id is one, it is that only the INT memory write bandwidth is tested. On
-the whole, when the block size is 8 kb and 16 kb, the memory write bandwidth
-look similar with a minimal BW of 22.5 GB/s and peak value of 28.7 GB/s. And
-then with the block size becoming larger, the memory write bandwidth tends to
-decrease. SLA sets to be 7 GB/s. The SLA value is used as a a reference, it has
-not been defined by OPNFV.
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of three test runs look
-similar with each other, and Within these test runs, the maximum RTT can reach
-95 ms and the average RTT is usually approx. 36 ms. The network latency tested
-on Sep. 14 shows that it has a peak latency of 155 ms. But on the whole, the
-average RTTs of the four runs keep flat.
-
-Memory utilization is measured by free, which can display amount of free and
-used memory in the system. The largest amount of used memory is 270 MiB on Sep
-13, which also has the smallest minimum memory utilization. Besides, the rest
-three test runs have the similar used memory with an average memory usage of
-264 MiB. On the other hand, the free memory of the four runs have the same
-smallest minimum value, that is about 223 MiB, and the maximum free memory of
-three runs have the similar result, that is 226 MiB, except that on Sep. 13th,
-whose maximum free memory is 273 MiB. On the whole, all the test runs have
-similar average free memory.
-
-Network throughput and packet loss can be measured by pktgen, which is a tool
-in the network for generating traffic loads for network experiments. The mean
-network throughput of the four test runs seem quite different, ranging from
-119.85 kpps to 128.02 kpps. The average number of flows in these tests is
-240000, and each run has a minimum number of flows of 2 and a maximum number
-of flows of 1.001 Mil. At the same time, the corresponding packet throughput
-differ between 38k and 243k with an average packet throughput of approx. 134k.
-On the whole, the PPS results seem consistent. Within each test run of the four
-runs, when number of flows becomes larger, the packet throughput seems not
-larger in the meantime.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other. Within each test run, the maximum RTT can reach
-79 ms and the average RTT is usually approx. 35 ms. On the whole, the average
-RTTs of the four runs keep flat.
-
-Cache utilization is measured by cachestat, which can display size of cache and
-buffer in the system. Cache utilization statistics are collected during UDP
-flows sent between the VMs using pktgen as packet generator tool.The largest
-cache size is 214 MiB in the four runs, and the smallest cache size is 100 MiB.
-On the whole, the average cache size of the four runs is approx. 210 MiB.
-Meanwhile, the tread of the buffer size looks similar with each other. On the
-other hand, the mean buffer size of the four runs keep flat, since they have a
-minimum value of approx. 7 MiB and a maximum value of 8 MiB, with an average
-value of about 8 MiB.
-
-Packet throughput can be measured by pktgen, which is a tool in the network for
-generating traffic loads for network experiments. The mean packet throughput of
-the four test runs seem quite different, ranging from 113.8 kpps to 124.8 kpps.
-The average number of flows in these tests is 240k, and each run has a minimum
-number of flows of 2 and a maximum number of flows of 1.001 Mil. At the same
-time, the corresponding packet throughput differ between 47.6k and 243.1k with
-an average packet throughput between 113.8k and 160.1k. Within each test run of
-the four runs, when number of flows becomes larger, the packet throughput seems
-not larger in the meantime.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs
-between 0 ms and 79 ms with an average leatency of approx. 35 ms. The PPS
-results are not as consistent as the RTT results, for the mean packet
-throughput of the four runs differ from 113.8 kpps to 124.8 kpps.
-
-Network utilization is measured by sar, that is system activity reporter, which
-can display the average statistics for the time since the system was started.
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The largest total number of packets
-transmitted per second look similar on the first three runs with a minimum
-number of 10 pps and a maximum number of 97 kpps, except the one on Sep. 15th,
-in which the number of packets transmitted per second is 10 pps. Meanwhile, the
-largest total number of packets received per second differs from each other,
-in which the smallest number of packets received per second is 1 pps and the
-largest of that is 276 kpps.
-
-In some test runs when running with less than approx. 90000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. For the other test runs there is however no
-significant change to the PPS throughput when the number of flows are
-increased. In some test runs the PPS is also greater with 1000000 flows
-compared to other test runs where the PPS result is less with only 2 flows.
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally differs a lot per test run.
-
-Detailed test results
----------------------
-The scenario was run on Intel POD5_ with:
-Joid
-OpenStack Mitaka
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Conclusions and recommendations
--------------------------------
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
diff --git a/docs/release/results/os-odl_l2-bgpvpn-ha.rst b/docs/release/results/os-odl_l2-bgpvpn-ha.rst
deleted file mode 100644
index 2bd6dc35d..000000000
--- a/docs/release/results/os-odl_l2-bgpvpn-ha.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-====================================
-Test Results for os-odl_l2-bgpvpn-ha
-====================================
-
-.. toctree::
- :maxdepth: 2
-
-
-fuel
-====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD2: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test runs, each run
-on the Ericsson POD2_ between September 7 and 11 in 2016.
-
-TC043
------
-The round-trip-time (RTT) between 2 nodes is measured using
-ping. Most test run measurements result on average between 0.21 and 0.28 ms.
-A few runs start with a 0.32 - 0.35 ms RTT spike (This could be because of
-normal ARP handling). To be able to draw conclusions more runs should be made.
-SLA set to 10 ms. The SLA value is used as a reference, it has not been defined
-by OPNFV.
-
-Detailed test results
----------------------
-The scenario was run on Ericsson POD2_ with:
-Fuel 9.0
-OpenStack Mitaka
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
-
diff --git a/docs/release/results/os-odl_l2-nofeature-ha.rst b/docs/release/results/os-odl_l2-nofeature-ha.rst
deleted file mode 100644
index ac0c5bb59..000000000
--- a/docs/release/results/os-odl_l2-nofeature-ha.rst
+++ /dev/null
@@ -1,743 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-=======================================
-Test Results for os-odl_l2-nofeature-ha
-=======================================
-
-.. toctree::
- :maxdepth: 2
-
-
-apex
-====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD1: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test runs, each run
-on the LF POD1_ between September 14 and 17 in 2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 0.49 ms and 0.60 ms.
-Only one test run has reached greatest RTT spike of 0.93 ms. Meanwhile, the
-smallest network latency is 0.33 ms, which is obtained on Sep. 14th.
-SLA set to be 10 ms. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC005
------
-The IO read bandwidth actually refers to the storage throughput, which is
-measured by fio and the greatest IO read bandwidth of the four runs is 416
-MB/s. The IO read bandwidth of all four runs looks similar, with an average
-between 128 and 131 MB/s. One of the runs has a minimum BW of 497 KB/s. The SLA
-of read bandwidth sets to be 400 MB/s, which is used as a reference, and it has
-not been defined by OPNFV.
-
-The results of storage IOPS for the four runs look similar with each other. The
-IO read times per second of the four test runs have an average value at 1k per
-second, and meanwhile, the minimum result is only 45 times per second.
-
-TC010
------
-The tool we use to measure memory read latency is lmbench, which is a series of
-micro benchmarks intended to measure basic operating system and hardware system
-metrics. The memory read latency of the four runs is between 1.0859 ns and
-1.0869 ns on average. The variations within each test run are quite different,
-some vary from a large range and others have a small change. For example, the
-largest change is on September 14th, the memory read latency of which is ranging
-from 1.091 ns to 1.086 ns. However.
-The SLA sets to be 30 ns. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC011
------
-Packet delay variation between 2 VMs on different blades is measured using
-Iperf3. On the first two test runs the reported packet delay variation varies between
-0.0037 and 0.0740 ms, with an average delay variation between 0.0096 ms and 0.0321.
-On the second date the delay variation varies between 0.0063 and 0.0096 ms, with
-an average delay variation of 0.0124 - 0.0141 ms.
-
-TC012
------
-Lmbench is also used to measure the memory read and write bandwidth, in which
-we use bw_mem to obtain the results. Among the four test runs, the trend of
-three memory bandwidth almost look similar, which all have a narrow range, and
-the average result is 19.88 GB/s. Here SLA set to be 15 GB/s. The SLA value is
-used as a reference, it has not been defined by OPNFV.
-
-TC014
------
-The Unixbench is used to evaluate the IaaS processing speed with regards to
-score of single cpu running and parallel running. It can be seen from the
-dashboard that the processing test results vary from scores 3754k to 3831k, and
-there is only one result one date. No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The mean packet throughput of the four test runs is between 307.3 kpps and
-447.1 kpps, of which the result of the third run is the highest. The RTT
-results of all the test runs keep flat at approx. 15 ms. It is obvious that the
-PPS results are not as consistent as the RTT results.
-
-The No. flows of the four test runs are 240 k on average and the PPS results
-look a little waved since the largest packet throughput is 418.1 kpps and the
-minimum throughput is 326.5 kpps respectively.
-
-There are no errors of packets received in the four runs, but there are still
-lost packets in all the test runs. The RTT values obtained by ping of the four
-runs have the similar average vaue, that is approx. 15 ms.
-
-CPU load is measured by mpstat, and CPU load of the four test runs seem a
-little similar, since the minimum value and the peak of CPU load is between 0
-percent and nine percent respectively. And the best result is obtained on Sep.
-1, with an CPU load of nine percent. But on the whole, the CPU load is very
-poor, since the average value is quite small.
-
-TC069
------
-With the block size changing from 1 kb to 512 kb, the memory write bandwidth
-tends to become larger first and then smaller within every run test, which
-rangs from 28.2 GB/s to 29.5 GB/s and then to 29.2 GB/s on average. Since the
-test id is one, it is that only the INT memory write bandwidth is tested. On
-the whole, when the block size is 2 kb or 16 kb, the memory write bandwidth
-look similar with a minimal BW of 25.8 GB/s and peak value of 28.3 GB/s. And
-then with the block size becoming larger, the memory write bandwidth tends to
-decrease. SLA sets to be 7 GB/s. The SLA value is used as a reference, it has
-not been defined by OPNFV.
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other, and within these test runs, the maximum RTT can
-reach 39 ms and the average RTT is usually approx. 15 ms. The network latency
-tested on Sep. 1 and Sep. 8 have a peak latency of 39 ms. But on the whole,
-the average RTTs of the five runs keep flat and the network latency is
-relatively short.
-
-Memory utilization is measured by free, which can display amount of free and
-used memory in the system. The largest amount of used memory is 267 MiB for the
-four runs. In general, the four test runs have very large memory utilization,
-which can reach 257 MiB on average. On the other hand, for the mean free memory,
-the four test runs have the similar trend with that of the mean used memory.
-In general, the mean free memory change from 233 MiB to 241 MiB.
-
-Packet throughput and packet loss can be measured by pktgen, which is a tool
-in the network for generating traffic loads for network experiments. The mean
-packet throughput of the four test runs seem quite different, ranging from
-305.3 kpps to 447.1 kpps. The average number of flows in these tests is
-240000, and each run has a minimum number of flows of 2 and a maximum number
-of flows of 1.001 Mil. At the same time, the corresponding average packet
-throughput is between 354.4 kpps and 381.8 kpps. In summary, the PPS results
-seem consistent. Within each test run of the four runs, when number of flows
-becomes larger, the packet throughput seems not larger at the same time.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other. Within each test run, the maximum RTT is only 42
-ms and the average RTT is usually approx. 15 ms. On the whole, the average
-RTTs of the four runs keep stable and the network latency is relatively small.
-
-Cache utilization is measured by cachestat, which can display size of cache and
-buffer in the system. Cache utilization statistics are collected during UDP
-flows sent between the VMs using pktgen as packet generator tool. The largest
-cache size is 212 MiB, which is same for the four runs, and the smallest cache
-size is 75 MiB. On the whole, the average cache size of the four runs look the
-same and is between 197 MiB and 211 MiB. Meanwhile, the tread of the buffer
-size keep flat, since they have a minimum value of 7 MiB and a maximum value of
-8 MiB, with an average value of about 7.9 MiB.
-
-Packet throughput can be measured by pktgen, which is a tool in the network for
-generating traffic loads for network experiments. The mean packet throughput of
-the four test runs differ from 354.4 kpps to 381.8 kpps. The average number of
-flows in these tests is 240k, and each run has a minimum number of flows of 2
-and a maximum number of flows of 1.001 Mil. At the same time, the corresponding
-packet throughput differ between 305.3 kpps to 447.1 kpps. Within each test run
-of the four runs, when number of flows becomes larger, the packet throughput
-seems not larger in the meantime.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs
-between 0 ms and 42 ms with an average leatency of less than 15 ms. The PPS
-results are not as consistent as the RTT results, for the mean packet
-throughput of the four runs differ from 354.4 kpps to 381.8 kpps.
-
-Network utilization is measured by sar, that is system activity reporter, which
-can display the average statistics for the time since the system was started.
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The largest total number of packets
-transmitted per second look similar for three test runs, whose values change a
-lot from 10 pps to 501 kpps. While results of the rest test run seem the same
-and keep stable with the average number of packets transmitted per second of 10
-pps. However, the total number of packets received per second of the four runs
-look similar, which have a large wide range of 2 pps to 815 kpps.
-
-In some test runs when running with less than approx. 251000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. For the other test runs there is however no
-significant change to the PPS throughput when the number of flows are
-increased. In some test runs the PPS is also greater with 251000 flows
-compared to other test runs where the PPS result is less with only 2 flows.
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally differs a lot per test run.
-
-Detailed test results
----------------------
-The scenario was run on LF POD1_ with:
-Apex
-OpenStack Mitaka
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Conclusions and recommendations
--------------------------------
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
-
-
-
-fuel
-====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD2: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test runs, each run
-on the Ericsson POD2_ or LF POD2_ between August 25 and 29 in 2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 0.5 and 0.6 ms.
-A few runs start with a 1 - 1.5 ms RTT spike (This could be because of normal ARP
-handling). One test run has a greater RTT spike of 1.9 ms, which is the same
-one with the 0.7 ms average. The other runs have no similar spike at all.
-To be able to draw conclusions more runs should be made.
-SLA set to 10 ms. The SLA value is used as a reference, it has not
-been defined by OPNFV.
-
-TC005
------
-The IO read bandwidth looks similar between different dates, with an
-average between approx. 170 and 200 MB/s. Within each test run the results
-vary, with a minimum 2 MB/s and maximum 838 MB/s on the totality. Most runs
-have a minimum BW of 3 MB/s (two runs at 2 MB/s). The maximum BW varies more in
-absolute numbers between the dates, between 617 and 838 MB/s.
-SLA set to 400 MB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC010
------
-The measurements for memory latency are similar between test dates and result
-in approx. 1.2 ns. The variations within each test run are similar, between
-1.215 and 1.219 ns. One exception is February 16, where the average is 1.222
-and varies between 1.22 and 1.28 ns.
-SLA set to 30 ns. The SLA value is used as a reference, it has not been defined
-by OPNFV.
-
-TC011
------
-Packet delay variation between 2 VMs on different blades is measured using
-Iperf3. On the first date the reported packet delay variation varies between
-0.0025 and 0.011 ms, with an average delay variation of 0.0067 ms.
-On the second date the delay variation varies between 0.002 and 0.006 ms, with
-an average delay variation of 0.004 ms.
-
-TC012
------
-Between test dates, the average measurements for memory bandwidth vary between
-17.4 and 17.9 GB/s. Within each test run the results vary more, with a minimal
-BW of 16.4 GB/s and maximum of 18.2 GB/s on the totality.
-SLA set to 15 GB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC014
------
-The Unixbench processor test run results vary between scores 3080 and 3240,
-one result each date. The average score on the total is 3150.
-No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-CPU utilization statistics are collected during UDP flows sent between the VMs
-using pktgen as packet generator tool. The average measurements for CPU
-utilization ratio vary between 1% to 2%. The peak of CPU utilization ratio
-appears around 7%.
-
-TC069
------
-Between test dates, the average measurements for memory bandwidth vary between
-15.5 and 25.4 GB/s. Within each test run the results vary more, with a minimal
-BW of 9.7 GB/s and maximum of 29.5 GB/s on the totality.
-SLA set to 6 GB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Memory utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The average measurements for memory
-utilization vary between 225MB to 246MB. The peak of memory utilization appears
-around 340MB.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Cache utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The average measurements for cache
-utilization vary between 205MB to 212MB.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. Total number of packets received per
-second was average on 200 kpps and total number of packets transmitted per
-second was average on 600 kpps.
-
-Detailed test results
----------------------
-The scenario was run on Ericsson POD2_ and LF POD2_ with:
-Fuel 9.0
-OpenStack Mitaka
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
-
-Conclusions and recommendations
--------------------------------
-The pktgen test configuration has a relatively large base effect on RTT in
-TC037 compared to TC002, where there is no background load at all. Approx.
-15 ms compared to approx. 0.5 ms, which is more than a 3000 percentage
-difference in RTT results.
-Especially RTT and throughput come out with better results than for instance
-the *fuel-os-nosdn-nofeature-ha* scenario does. The reason for this should
-probably be further analyzed and understood. Also of interest could be
-to make further analyzes to find patterns and reasons for lost traffic.
-Also of interest could be to see if there are continuous variations where
-some test cases stand out with better or worse results than the general test
-case.
-
-
-
-Joid
-=====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD6: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test runs, each run
-on the Intel POD6_ between September 1 and 8 in 2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 1.01 ms and 1.88 ms.
-Only one test run has reached greatest RTT spike of 1.88 ms. Meanwhile, the
-smallest network latency is 1.01 ms, which is obtained on Sep. 1st. In general,
-the average of network latency of the four test runs are between 1.29 ms and
-1.34 ms. SLA set to be 10 ms. The SLA value is used as a reference, it has not
-been defined by OPNFV.
-
-TC005
------
-The IO read bandwidth actually refers to the storage throughput, which is
-measured by fio and the greatest IO read bandwidth of the four runs is 183.65
-MB/s. The IO read bandwidth of the three runs looks similar, with an average
-between 62.9 and 64.3 MB/s, except one on Sep. 1, for its maximum storage
-throughput is only 159.1 MB/s. One of the runs has a minimum BW of 685 KB/s and
-other has a maximum BW of 183.6 MB/s. The SLA of read bandwidth sets to be
-400 MB/s, which is used as a reference, and it has not been defined by OPNFV.
-
-The results of storage IOPS for the four runs look similar with each other. The
-IO read times per second of the four test runs have an average value between
-1.41k per second and 1.64k per second, and meanwhile, the minimum result is
-only 55 times per second.
-
-TC010
------
-The tool we use to measure memory read latency is lmbench, which is a series of
-micro benchmarks intended to measure basic operating system and hardware system
-metrics. The memory read latency of the four runs is between 1.152 ns and 1.179
-ns on average. The variations within each test run are quite different, some
-vary from a large range and others have a small change. For example, the
-largest change is on September 8, the memory read latency of which is ranging
-from 1.120 ns to 1.221 ns. However, the results on September 7 change very
-little. The SLA sets to be 30 ns. The SLA value is used as a reference, it has
-not been defined by OPNFV.
-
-TC011
------
-Iperf3 is a tool for evaluating the packet delay variation between 2 VMs on
-different blades. The reported packet delay variations of the four test runs
-differ from each other. In general, the packet delay of the first two runs look
-similar, for they both stay stable within each run. And the mean packet delay
-of them are 0.0087 ms and 0.0127 ms respectively. Of the four runs, the fourth
-has the worst result, because the packet delay reaches 0.0187 ms. The SLA value
-sets to be 10 ms. The SLA value is used as a reference, it has not been defined
-by OPNFV.
-
-TC012
------
-Lmbench is also used to measure the memory read and write bandwidth, in which
-we use bw_mem to obtain the results. Among the four test runs, the trend of
-three memory bandwidth almost look similar, which all have a narrow range, and
-the average result is 11.78 GB/s. Here SLA set to be 15 GB/s. The SLA value is
-used as a reference, it has not been defined by OPNFV.
-
-TC014
------
-The Unixbench is used to evaluate the IaaS processing speed with regards to
-score of single cpu running and parallel running. It can be seen from the
-dashboard that the processing test results vary from scores 3260k to 3328k, and
-there is only one result one date. No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The mean packet throughput of the four test runs is between 307.3 kpps and
-447.1 kpps, of which the result of the third run is the highest. The RTT
-results of all the test runs keep flat at approx. 15 ms. It is obvious that the
-PPS results are not as consistent as the RTT results.
-
-The No. flows of the four test runs are 240 k on average and the PPS results
-look a little waved since the largest packet throughput is 418.1 kpps and the
-minimum throughput is 326.5 kpps respectively.
-
-There are no errors of packets received in the four runs, but there are still
-lost packets in all the test runs. The RTT values obtained by ping of the four
-runs have the similar average vaue, that is approx. 15 ms.
-
-CPU load is measured by mpstat, and CPU load of the four test runs seem a
-little similar, since the minimum value and the peak of CPU load is between 0
-percent and nine percent respectively. And the best result is obtained on Sep.
-1, with an CPU load of nine percent. But on the whole, the CPU load is very
-poor, since the average value is quite small.
-
-TC069
------
-With the block size changing from 1 kb to 512 kb, the memory write bandwidth
-tends to become larger first and then smaller within every run test, which
-rangs from 21.9 GB/s to 25.9 GB/s and then to 17.8 GB/s on average. Since the
-test id is one, it is that only the INT memory write bandwidth is tested. On
-the whole, when the block size is 2 kb or 16 kb, the memory write bandwidth
-look similar with a minimal BW of 24.8 GB/s and peak value of 27.8 GB/s. And
-then with the block size becoming larger, the memory write bandwidth tends to
-decrease. SLA sets to be 7 GB/s. The SLA value is used as a reference, it has
-not been defined by OPNFV.
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other, and within these test runs, the maximum RTT can
-reach 39 ms and the average RTT is usually approx. 15 ms. The network latency
-tested on Sep. 1 and Sep. 8 have a peak latency of 39 ms. But on the whole,
-the average RTTs of the five runs keep flat and the network latency is
-relatively short.
-
-Memory utilization is measured by free, which can display amount of free and
-used memory in the system. The largest amount of used memory is 267 MiB for the
-four runs. In general, the four test runs have very large memory utilization,
-which can reach 257 MiB on average. On the other hand, for the mean free memory,
-the four test runs have the similar trend with that of the mean used memory.
-In general, the mean free memory change from 233 MiB to 241 MiB.
-
-Packet throughput and packet loss can be measured by pktgen, which is a tool
-in the network for generating traffic loads for network experiments. The mean
-packet throughput of the four test runs seem quite different, ranging from
-305.3 kpps to 447.1 kpps. The average number of flows in these tests is
-240000, and each run has a minimum number of flows of 2 and a maximum number
-of flows of 1.001 Mil. At the same time, the corresponding average packet
-throughput is between 354.4 kpps and 381.8 kpps. In summary, the PPS results
-seem consistent. Within each test run of the four runs, when number of flows
-becomes larger, the packet throughput seems not larger at the same time.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other. Within each test run, the maximum RTT is only 42
-ms and the average RTT is usually approx. 15 ms. On the whole, the average
-RTTs of the four runs keep stable and the network latency is relatively small.
-
-Cache utilization is measured by cachestat, which can display size of cache and
-buffer in the system. Cache utilization statistics are collected during UDP
-flows sent between the VMs using pktgen as packet generator tool. The largest
-cache size is 212 MiB, which is same for the four runs, and the smallest cache
-size is 75 MiB. On the whole, the average cache size of the four runs look the
-same and is between 197 MiB and 211 MiB. Meanwhile, the tread of the buffer
-size keep flat, since they have a minimum value of 7 MiB and a maximum value of
-8 MiB, with an average value of about 7.9 MiB.
-
-Packet throughput can be measured by pktgen, which is a tool in the network for
-generating traffic loads for network experiments. The mean packet throughput of
-the four test runs differ from 354.4 kpps to 381.8 kpps. The average number of
-flows in these tests is 240k, and each run has a minimum number of flows of 2
-and a maximum number of flows of 1.001 Mil. At the same time, the corresponding
-packet throughput differ between 305.3 kpps to 447.1 kpps. Within each test run
-of the four runs, when number of flows becomes larger, the packet throughput
-seems not larger in the meantime.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs
-between 0 ms and 42 ms with an average leatency of less than 15 ms. The PPS
-results are not as consistent as the RTT results, for the mean packet
-throughput of the four runs differ from 354.4 kpps to 381.8 kpps.
-
-Network utilization is measured by sar, that is system activity reporter, which
-can display the average statistics for the time since the system was started.
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The largest total number of packets
-transmitted per second look similar for three test runs, whose values change a
-lot from 10 pps to 501 kpps. While results of the rest test run seem the same
-and keep stable with the average number of packets transmitted per second of 10
-pps. However, the total number of packets received per second of the four runs
-look similar, which have a large wide range of 2 pps to 815 kpps.
-
-In some test runs when running with less than approx. 251000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. For the other test runs there is however no
-significant change to the PPS throughput when the number of flows are
-increased. In some test runs the PPS is also greater with 251000 flows
-compared to other test runs where the PPS result is less with only 2 flows.
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally differs a lot per test run.
-
-Detailed test results
----------------------
-The scenario was run on Intel POD6_ with:
-Joid
-OpenStack Mitaka
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Conclusions and recommendations
--------------------------------
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
-
diff --git a/docs/release/results/os-odl_l2-sfc-ha.rst b/docs/release/results/os-odl_l2-sfc-ha.rst
deleted file mode 100644
index e27562cae..000000000
--- a/docs/release/results/os-odl_l2-sfc-ha.rst
+++ /dev/null
@@ -1,231 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-==================================
-Test Results for os-odl_l2-sfc-ha
-==================================
-
-.. toctree::
- :maxdepth: 2
-
-
-Fuel
-=====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD2: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test runs, each run
-on the LF POD2_ or Ericsson POD2_ between September 16 and 20 in 2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 0.32 ms and 1.42 ms.
-Only one test run on Sep. 20 has reached greatest RTT spike of 4.66 ms.
-Meanwhile, the smallest network latency is 0.16 ms, which is obtained on Sep.
-17th. To sum up, the curve of network latency has very small wave, which is
-less than 5 ms. SLA sets to be 10 ms. The SLA value is used as a reference, it
-has not been defined by OPNFV.
-
-TC005
------
-The IO read bandwidth actually refers to the storage throughput, which is
-measured by fio and the greatest IO read bandwidth of the four runs is 734
-MB/s. The IO read bandwidth of the first three runs looks similar, with an
-average of less than 100 KB/s, except one on Sep. 20, whose maximum storage
-throughput can reach 734 MB/s. The SLA of read bandwidth sets to be 400 MB/s,
-which is used as a reference, and it has not been defined by OPNFV.
-
-The results of storage IOPS for the four runs look similar with each other. The
-IO read times per second of the four test runs have an average value between
-1.8k per second and 3.27k per second, and meanwhile, the minimum result is
-only 60 times per second.
-
-TC010
------
-The tool we use to measure memory read latency is lmbench, which is a series of
-micro benchmarks intended to measure basic operating system and hardware system
-metrics. The memory read latency of the four runs is between 1.085 ns and 1.218
-ns on average. The variations within each test run are quite small. For
-Ericsson pod2, the average of memory latency is approx. 1.217 ms. While for LF
-pod2, the average value is about 1.085 ms. It can be seen that the performance
-of LF is better than Ericsson's. The SLA sets to be 30 ns. The SLA value is
-used as a reference, it has not been defined by OPNFV.
-
-TC012
------
-Lmbench is also used to measure the memory read and write bandwidth, in which
-we use bw_mem to obtain the results. The four test runs all have a narrow range
-of change with the average memory and write BW of 18.5 GB/s. Here SLA set to be
-15 GB/s. The SLA value is used as a reference, it has not been defined by OPNFV.
-
-TC014
------
-The Unixbench is used to evaluate the IaaS processing speed with regards to
-score of single cpu running and parallel running. It can be seen from the
-dashboard that the processing test results vary from scores 3209k to 3843k, and
-there is only one result one date. No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The mean packet throughput of the three test runs is between 439 kpps and
-582 kpps, and the test run on Sep. 17th has the lowest average value of 371
-kpps. The RTT results of all the test runs keep flat at approx. 10 ms. It is
-obvious that the PPS results are not as consistent as the RTT results.
-
-The No. flows of the four test runs are 240 k on average and the PPS results
-look a little waved, since the largest packet throughput is 680 kpps and the
-minimum throughput is 319 kpps respectively.
-
-There are no errors of packets received in the four runs, but there are still
-lost packets in all the test runs. The RTT values obtained by ping of the four
-runs have the similar trend of RTT with the average value of approx. 12 ms.
-
-CPU load is measured by mpstat, and CPU load of the four test runs seem a
-little similar, since the minimum value and the peak of CPU load is between 0
-percent and ten percent respectively. And the best result is obtained on Sep.
-17th, with an CPU load of ten percent. But on the whole, the CPU load is very
-poor, since the average value is quite small.
-
-TC069
------
-With the block size changing from 1 kb to 512 kb, the average memory write
-bandwidth tends to become larger first and then smaller within every run test
-for the two pods, which rangs from 25.1 GB/s to 29.4 GB/s and then to 19.2 GB/s
-on average. Since the test id is one, it is that only the INT memory write
-bandwidth is tested. On the whole, with the block size becoming larger, the
-memory write bandwidth tends to decrease. SLA sets to be 7 GB/s. The SLA value
-is used as a reference, it has not been defined by OPNFV.
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other, and within these test runs, the maximum RTT can
-reach 27 ms and the average RTT is usually approx. 12 ms. The network latency
-tested on Sep. 27th has a peak latency of 27 ms. But on the whole, the average
-RTTs of the four runs keep flat.
-
-Memory utilization is measured by free, which can display amount of free and
-used memory in the system. The largest amount of used memory is 269 MiB for the
-four runs. In general, the four test runs have very large memory utilization,
-which can reach 251 MiB on average. On the other hand, for the mean free memory,
-the four test runs have the similar trend with that of the mean used memory.
-In general, the mean free memory change from 231 MiB to 248 MiB.
-
-Packet throughput and packet loss can be measured by pktgen, which is a tool
-in the network for generating traffic loads for network experiments. The mean
-packet throughput of the four test runs seem quite different, ranging from
-371 kpps to 582 kpps. The average number of flows in these tests is
-240000, and each run has a minimum number of flows of 2 and a maximum number
-of flows of 1.001 Mil. At the same time, the corresponding average packet
-throughput is between 319 kpps and 680 kpps. In summary, the PPS results
-seem consistent. Within each test run of the four runs, when number of flows
-becomes larger, the packet throughput seems not larger at the same time.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other. Within each test run, the maximum RTT is only 24
-ms and the average RTT is usually approx. 12 ms. On the whole, the average
-RTTs of the four runs keep stable and the network latency is relatively small.
-
-Cache utilization is measured by cachestat, which can display size of cache and
-buffer in the system. Cache utilization statistics are collected during UDP
-flows sent between the VMs using pktgen as packet generator tool. The largest
-cache size is 213 MiB, and the smallest cache size is 99 MiB, which is same for
-the four runs. On the whole, the average cache size of the four runs look the
-same and is between 184 MiB and 205 MiB. Meanwhile, the tread of the buffer
-size keep stable, since they have a minimum value of 7 MiB and a maximum value of
-8 MiB.
-
-Packet throughput can be measured by pktgen, which is a tool in the network for
-generating traffic loads for network experiments. The mean packet throughput of
-the four test runs differ from 371 kpps to 582 kpps. The average number of
-flows in these tests is 240k, and each run has a minimum number of flows of 2
-and a maximum number of flows of 1.001 Mil. At the same time, the corresponding
-packet throughput differ between 319 kpps to 680 kpps. Within each test run
-of the four runs, when number of flows becomes larger, the packet throughput
-seems not larger in the meantime.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs
-between 0 ms and 24 ms with an average leatency of less than 13 ms. The PPS
-results are not as consistent as the RTT results, for the mean packet
-throughput of the four runs differ from 370 kpps to 582 kpps.
-
-Network utilization is measured by sar, that is system activity reporter, which
-can display the average statistics for the time since the system was started.
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The largest total number of packets
-transmitted per second look similar for the four test runs, whose values change a
-lot from 10 pps to 697 kpps. However, the total number of packets received per
-second of three runs look similar, which have a large wide range of 2 pps to
-1.497 Mpps, while the results on Sep. 18th and 20th have very small maximum
-number of packets received per second of 817 kpps.
-
-In some test runs when running with less than approx. 251000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. For the other test runs there is however no
-significant change to the PPS throughput when the number of flows are
-increased. In some test runs the PPS is also greater with 251000 flows
-compared to other test runs where the PPS result is less with only 2 flows.
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally differs a lot per test run.
-
-Detailed test results
----------------------
-The scenario was run on Ericsson POD2_ and LF POD2_ with:
-Fuel 9.0
-OpenStack Mitaka
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Conclusions and recommendations
--------------------------------
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
diff --git a/docs/release/results/os-onos-nofeature-ha.rst b/docs/release/results/os-onos-nofeature-ha.rst
deleted file mode 100644
index d8b3ace5f..000000000
--- a/docs/release/results/os-onos-nofeature-ha.rst
+++ /dev/null
@@ -1,257 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-======================================
-Test Results for os-onos-nofeature-ha
-======================================
-
-.. toctree::
- :maxdepth: 2
-
-
-Joid
-=====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD6: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 5 scenario test runs, each run
-on the Intel POD6_ between September 13 and 16 in 2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 1.50 and 1.68 ms.
-Only one test run has reached greatest RTT spike of 2.62 ms, which has
-the smallest RTT of 1.00 ms. The other four runs have no similar spike at all,
-the minimum and average RTTs of which are approx. 1.06 ms and 1.32 ms. SLA set
-to be 10 ms. The SLA value is used as a reference, it has not been defined by
-OPNFV.
-
-TC005
------
-The IO read bandwidth actually refers to the storage throughput, which is
-measured by fio and the greatest IO read bandwidth of the four runs is 175.4
-MB/s. The IO read bandwidth of the four runs looks similar on different four
-days, with an average between 58.1 and 62.0 MB/s, except one on Sep. 14, for
-its maximum storage throughput is only 133.0 MB/s. One of the runs has a
-minimum BW of 497 KM/s and other has a maximum BW of 177.4 MB/s. The SLA of read
-bandwidth sets to be 400 MB/s, which is used as a reference, and it has not
-been defined by OPNFV.
-
-The results of storage IOPS for the five runs look similar with each other. The
-IO read times per second of the five test runs have an average value between
-1.20 K/s and 1.61 K/s, and meanwhile, the minimum result is only 41 times per
-second.
-
-TC010
------
-The tool we use to measure memory read latency is lmbench, which is a series of
-micro benchmarks intended to measure basic operating system and hardware system
-metrics. The memory read latency of the five runs is between 1.146 ns and 1.172
-ns on average. The variations within each test run are quite different, some
-vary from a large range and others have a small change. For example, the
-largest change is on September 13, the memory read latency of which is ranging
-from 1.152 ns to 1.221 ns. However, the results on September 14 change very
-little. The SLA sets to be 30 ns. The SLA value is used as a reference, it has
-not been defined by OPNFV.
-
-TC011
------
-Iperf3 is a tool for evaluating the packet delay variation between 2 VMs on
-different blades. The reported packet delay variations of the five test runs
-differ from each other. In general, the packet delay of the first two runs look
-similar, for they both stay stable within each run. And the mean packet delay of
-of them are 0.07714 ms and 0.07982 ms respectively. Of the five runs, the third
-has the worst result, because the packet delay reaches 0.08384 ms. The trend of
-therest two runs look the same, for the average packet delay are 0.07808 ms and
-0.07727 ms respectively. The SLA value sets to be 10 ms. The SLA value is used
-as a reference, it has not been defined by OPNFV.
-
-TC012
------
-Lmbench is also used to measure the memory read and write bandwidth, in which
-we use bw_mem to obtain the results. Among the five test runs, the memory
-bandwidth of last three test runs almost keep stable within each run, which is
-11.64, 11.71 and 11.61 GB/s on average. However, the memory read and write
-bandwidth on Sep. 13 has a large range, for it ranges from 6.68 GB/s to 11.73
-GB/s. Here SLA set to be 15 GB/s. The SLA value is used as a reference, it has
-not been defined by OPNFV.
-
-TC014
------
-The Unixbench is used to evaluate the IaaS processing speed with regards to
-score of single cpu running and parallel running. It can be seen from the
-dashboard that the processing test results vary from scores 3208 to 3314, and
-there is only one result one date. No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The mean packet throughput of the five test runs is between 259.6 kpps and
-318.4 kpps, of which the result of the second run is the highest. The RTT
-results of all the test runs keep flat at approx. 20 ms. It is obvious that the
-PPS results are not as consistent as the RTT results.
-
-The No. flows of the five test runs are 240 k on average and the PPS results
-look a little waved since the largest packet throughput is 398.9 kpps and the
-minimum throughput is 250.6 kpps respectively.
-
-There are no errors of packets received in the five runs, but there are still
-lost packets in all the test runs. The RTT values obtained by ping of the five
-runs have the similar average vaue, that is between 17 ms and 22 ms, of which
-the worest RTT is 53 ms on Sep. 14th.
-
-CPU load is measured by mpstat, and CPU load of the four test runs seem a
-little similar, since the minimum value and the peak of CPU load is between 0
-percent and 10 percent respectively. And the best result is obtained on Sep.
-13rd, with an CPU load of 10 percent.
-
-TC069
------
-With the block size changing from 1 kb to 512 kb, the memory write bandwidth
-tends to become larger first and then smaller within every run test, which
-rangs from 21.6 GB/s to 26.8 GB/s and then to 18.4 GB/s on average. Since the
-test id is one, it is that only the INT memory write bandwidth is tested. On
-the whole, when the block size is 8 kb and 16 kb, the memory write bandwidth
-look similar with a minimal BW of 23.0 GB/s and peak value of 28.6 GB/s. And
-then with the block size becoming larger, the memory write bandwidth tends to
-decrease. SLA sets to be 7 GB/s. The SLA value is used as a a reference, it has
-not been defined by OPNFV.
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the five test runs
-look similar with each other, and within these test runs, the maximum RTT can
-reach 53 ms and the average RTT is usually approx. 18 ms. The network latency
-tested on Sep. 14 shows that it has a peak latency of 53 ms. But on the whole,
-the average RTTs of the five runs keep flat and the network latency is
-relatively short.
-
-Memory utilization is measured by free, which can display amount of free and
-used memory in the system. The largest amount of used memory is 272 MiB on Sep
-14. In general, the mean used memory of the five test runs have the similar
-trend and the minimum memory used size is approx. 150 MiB, and the average
-used memory size is about 250 MiB. On the other hand, for the mean free memory,
-the five test runs have the similar trend, whose mean free memory change from
-218 MiB to 342 MiB, with an average value of approx. 38 MiB.
-
-Packet throughput and packet loss can be measured by pktgen, which is a tool
-in the network for generating traffic loads for network experiments. The mean
-packet throughput of the five test runs seem quite different, ranging from
-285.29 kpps to 297.76 kpps. The average number of flows in these tests is
-240000, and each run has a minimum number of flows of 2 and a maximum number
-of flows of 1.001 Mil. At the same time, the corresponding packet throughput
-differ between 250.6k and 398.9k with an average packet throughput between
-277.2 K and 318.4 K. In summary, the PPS results seem consistent. Within each
-test run of the five runs, when number of flows becomes larger, the packet
-throughput seems not larger at the same time.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the five test runs
-look similar with each other. Within each test run, the maximum RTT is only 49
-ms and the average RTT is usually approx. 20 ms. On the whole, the average
-RTTs of the five runs keep stable and the network latency is relatively short.
-
-Cache utilization is measured by cachestat, which can display size of cache and
-buffer in the system. Cache utilization statistics are collected during UDP
-flows sent between the VMs using pktgen as packet generator tool.The largest
-cache size is 215 MiB in the four runs, and the smallest cache size is 95 MiB.
-On the whole, the average cache size of the five runs change a little and is
-about 200 MiB, except the one on Sep. 14th, the mean cache size is very small,
-which keeps 102 MiB. Meanwhile, the tread of the buffer size keep flat, since
-they have a minimum value of 7 MiB and a maximum value of 8 MiB, with an
-average value of about 7.8 MiB.
-
-Packet throughput can be measured by pktgen, which is a tool in the network for
-generating traffic loads for network experiments. The mean packet throughput of
-the four test runs seem quite different, ranging from 285.29 kpps to 297.76
-kpps. The average number of flows in these tests is 239.7k, and each run has a
-minimum number of flows of 2 and a maximum number of flows of 1.001 Mil. At the
-same time, the corresponding packet throughput differ between 227.3k and 398.9k
-with an average packet throughput between 277.2k and 318.4k. Within each test
-run of the five runs, when number of flows becomes larger, the packet
-throughput seems not larger in the meantime.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs
- between 0 ms and 49 ms with an average leatency of less than 22 ms. The PPS
-results are not as consistent as the RTT results, for the mean packet
-throughput of the five runs differ from 250.6 kpps to 398.9 kpps.
-
-Network utilization is measured by sar, that is system activity reporter, which
-can display the average statistics for the time since the system was started.
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The largest total number of packets
-transmitted per second look similar for four test runs, whose values change a
-lot from 10 pps to 399 kpps, except the one on Sep. 14th, whose total number
-of transmitted per second keep stable, that is 10 pps. Similarly, the total
-number of packets received per second look the same for four runs, except the
-one on Sep. 14th, whose value is only 10 pps.
-
-In some test runs when running with less than approx. 90000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. For the other test runs there is however no
-significant change to the PPS throughput when the number of flows are
-increased. In some test runs the PPS is also greater with 250000 flows
-compared to other test runs where the PPS result is less with only 2 flows.
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally differs a lot per test run.
-
-Detailed test results
----------------------
-The scenario was run on Intel POD6_ with:
-Joid
-OpenStack Mitaka
-Onos Goldeneye
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Conclusions and recommendations
--------------------------------
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
diff --git a/docs/release/results/os-onos-sfc-ha.rst b/docs/release/results/os-onos-sfc-ha.rst
deleted file mode 100644
index e52ae3d55..000000000
--- a/docs/release/results/os-onos-sfc-ha.rst
+++ /dev/null
@@ -1,517 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-===============================
-Test Results for os-onos-sfc-ha
-===============================
-
-.. toctree::
- :maxdepth: 2
-
-
-fuel
-====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD2: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test runs, each run
-on the Ericsson POD2_ or LF POD2_ between September 5 and 10 in 2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 0.5 and 0.6 ms.
-A few runs start with a 1 - 1.5 ms RTT spike (This could be because of normal ARP
-handling). One test run has a greater RTT spike of 1.9 ms, which is the same
-one with the 0.7 ms average. The other runs have no similar spike at all.
-To be able to draw conclusions more runs should be made.
-SLA set to 10 ms. The SLA value is used as a reference, it has not
-been defined by OPNFV.
-
-TC005
------
-The IO read bandwidth looks similar between different dates, with an
-average between approx. 170 and 200 MB/s. Within each test run the results
-vary, with a minimum 2 MB/s and maximum 838 MB/s on the totality. Most runs
-have a minimum BW of 3 MB/s (two runs at 2 MB/s). The maximum BW varies more in
-absolute numbers between the dates, between 617 and 838 MB/s.
-SLA set to 400 MB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC010
------
-The measurements for memory latency are similar between test dates and result
-in approx. 1.2 ns. The variations within each test run are similar, between
-1.215 and 1.219 ns. One exception is February 16, where the average is 1.222
-and varies between 1.22 and 1.28 ns.
-SLA set to 30 ns. The SLA value is used as a reference, it has not been defined
-by OPNFV.
-
-TC011
------
-Packet delay variation between 2 VMs on different blades is measured using
-Iperf3. On the first date the reported packet delay variation varies between
-0.0025 and 0.011 ms, with an average delay variation of 0.0067 ms.
-On the second date the delay variation varies between 0.002 and 0.006 ms, with
-an average delay variation of 0.004 ms.
-
-TC012
------
-Between test dates, the average measurements for memory bandwidth vary between
-17.4 and 17.9 GB/s. Within each test run the results vary more, with a minimal
-BW of 16.4 GB/s and maximum of 18.2 GB/s on the totality.
-SLA set to 15 GB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC014
------
-The Unixbench processor test run results vary between scores 3080 and 3240,
-one result each date. The average score on the total is 3150.
-No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-CPU utilization statistics are collected during UDP flows sent between the VMs
-using pktgen as packet generator tool. The average measurements for CPU
-utilization ratio vary between 1% to 2%. The peak of CPU utilization ratio
-appears around 7%.
-
-TC069
------
-Between test dates, the average measurements for memory bandwidth vary between
-15.5 and 25.4 GB/s. Within each test run the results vary more, with a minimal
-BW of 9.7 GB/s and maximum of 29.5 GB/s on the totality.
-SLA set to 6 GB/s. The SLA value is used as a reference, it has not been
-defined by OPNFV.
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Memory utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The average measurements for memory
-utilization vary between 225MB to 246MB. The peak of memory utilization appears
-around 340MB.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Cache utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The average measurements for cache
-utilization vary between 205MB to 212MB.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs at
-approx. 15 ms. Some test runs show an increase with many flows, in the range
-towards 16 to 17 ms. One exception standing out is Feb. 15 where the average
-RTT is stable at approx. 13 ms. The PPS results are not as consistent as the
-RTT results.
-In some test runs when running with less than approx. 10000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. Around 20 percent decrease in the worst
-case. For the other test runs there is however no significant change to the PPS
-throughput when the number of flows are increased. In some test runs the PPS
-is also greater with 1000000 flows compared to other test runs where the PPS
-result is less with only 2 flows.
-
-The average PPS throughput in the different runs varies between 414000 and
-452000 PPS. The total amount of packets in each test run is approx. 7500000 to
-8200000 packets. One test run Feb. 15 sticks out with a PPS average of
-558000 and approx. 1100000 packets in total (same as the on mentioned earlier
-for RTT results).
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally range between 100 and 1000 per test run,
-but there are spikes in the range of 10000 lost packets as well, and even
-more in a rare cases.
-
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. Total number of packets received per
-second was average on 200 kpps and total number of packets transmitted per
-second was average on 600 kpps.
-
-Detailed test results
----------------------
-The scenario was run on Ericsson POD2_ and LF POD2_ with:
-Fuel 9.0
-OpenStack Mitaka
-Onos Goldeneye
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
-
-Conclusions and recommendations
--------------------------------
-The pktgen test configuration has a relatively large base effect on RTT in
-TC037 compared to TC002, where there is no background load at all. Approx.
-15 ms compared to approx. 0.5 ms, which is more than a 3000 percentage
-difference in RTT results.
-Especially RTT and throughput come out with better results than for instance
-the *fuel-os-nosdn-nofeature-ha* scenario does. The reason for this should
-probably be further analyzed and understood. Also of interest could be
-to make further analyzes to find patterns and reasons for lost traffic.
-Also of interest could be to see if there are continuous variations where
-some test cases stand out with better or worse results than the general test
-case.
-
-
-Joid
-=====
-
-.. _Grafana: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
-.. _POD6: https://wiki.opnfv.org/pharos?&#community_test_labs
-
-Overview of test results
-------------------------
-
-See Grafana_ for viewing test result metrics for each respective test case. It
-is possible to chose which specific scenarios to look at, and then to zoom in
-on the details of each run test scenario as well.
-
-All of the test case results below are based on 4 scenario test runs, each run
-on the Intel POD6_ between September 8 and 11 in 2016.
-
-TC002
------
-The round-trip-time (RTT) between 2 VMs on different blades is measured using
-ping. Most test run measurements result on average between 1.35 ms and 1.57 ms.
-Only one test run has reached greatest RTT spike of 2.58 ms. Meanwhile, the
-smallest network latency is 1.11 ms, which is obtained on Sep. 11st. In
-general, the average of network latency of the four test runs are between 1.35
-ms and 1.57 ms. SLA set to be 10 ms. The SLA value is used as a reference, it
-has not been defined by OPNFV.
-
-TC005
------
-The IO read bandwidth actually refers to the storage throughput, which is
-measured by fio and the greatest IO read bandwidth of the four runs is 175.4
-MB/s. The IO read bandwidth of the three runs looks similar, with an average
-between 43.7 and 56.3 MB/s, except one on Sep. 8, for its maximum storage
-throughput is only 107.9 MB/s. One of the runs has a minimum BW of 478 KM/s and
-other has a maximum BW of 168.6 MB/s. The SLA of read bandwidth sets to be
-400 MB/s, which is used as a reference, and it has not been defined by OPNFV.
-
-The results of storage IOPS for the four runs look similar with each other. The
-IO read times per second of the four test runs have an average value between
-978 per second and 1.20 K/s, and meanwhile, the minimum result is only 36 times
-per second.
-
-TC010
------
-The tool we use to measure memory read latency is lmbench, which is a series of
-micro benchmarks intended to measure basic operating system and hardware system
-metrics. The memory read latency of the four runs is between 1.164 ns and 1.244
-ns on average. The variations within each test run are quite different, some
-vary from a large range and others have a small change. For example, the
-largest change is on September 10, the memory read latency of which is ranging
-from 1.128 ns to 1.381 ns. However, the results on September 11 change very
-little. The SLA sets to be 30 ns. The SLA value is used as a reference, it has
-not been defined by OPNFV.
-
-TC011
------
-Iperf3 is a tool for evaluating the packet delay variation between 2 VMs on
-different blades. The reported packet delay variations of the four test runs
-differ from each other. In general, the packet delay of two runs look similar,
-for they both stay stable within each run. And the mean packet delay of them
-are 0.0772 ms and 0.0788 ms respectively. Of the four runs, the fourth has the
-worst result, because the packet delay reaches 0.0838 ms. The rest one has a
-large wide range from 0.0666 ms to 0.0798 ms. The SLA value sets to be 10 ms.
-The SLA value is used as a reference, it has not been defined by OPNFV.
-
-TC012
------
-Lmbench is also used to measure the memory read and write bandwidth, in which
-we use bw_mem to obtain the results. Among the four test runs, the trend of the
-memory bandwidth almost look similar, which all have a large wide range, and
-the minimum and maximum results are 9.02 GB/s and 18.14 GB/s. Here SLA set to
-be 15 GB/s. The SLA value is used as a reference, it has not been defined by
-OPNFV.
-
-TC014
------
-The Unixbench is used to evaluate the IaaS processing speed with regards to
-score of single cpu running and parallel running. It can be seen from the
-dashboard that the processing test results vary from scores 3395 to 3475, and
-there is only one result one date. No SLA set.
-
-TC037
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The mean packet throughput of the four test runs is between 362.1 kpps and
-363.5 kpps, of which the result of the third run is the highest. The RTT
-results of all the test runs keep flat at approx. 17 ms. It is obvious that the
-PPS results are not as consistent as the RTT results.
-
-The No. flows of the four test runs are 240 k on average and the PPS results
-look a little waved since the largest packet throughput is 418.1 kpps and the
-minimum throughput is 326.5 kpps respectively.
-
-There are no errors of packets received in the four runs, but there are still
-lost packets in all the test runs. The RTT values obtained by ping of the four
-runs have the similar average vaue, that is approx. 17 ms, of which the worst
-RTT is 39 ms on Sep. 11st.
-
-CPU load is measured by mpstat, and CPU load of the four test runs seem a
-little similar, since the minimum value and the peak of CPU load is between 0
-percent and nine percent respectively. And the best result is obtained on Sep.
-10, with an CPU load of nine percent.
-
-TC069
------
-With the block size changing from 1 kb to 512 kb, the memory write bandwidth
-tends to become larger first and then smaller within every run test, which
-rangs from 25.9 GB/s to 26.6 GB/s and then to 18.1 GB/s on average. Since the
-test id is one, it is that only the INT memory write bandwidth is tested. On
-the whole, when the block size is from 2 kb to 16 kb, the memory write
-bandwidth look similar with a minimal BW of 22.1 GB/s and peak value of 28.6
-GB/s. And then with the block size becoming larger, the memory write bandwidth
-tends to decrease. SLA sets to be 7 GB/s. The SLA value is used as a reference,
-it has not been defined by OPNFV.
-
-TC070
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other, and within these test runs, the maximum RTT can
-reach 39 ms and the average RTT is usually approx. 17 ms. The network latency
-tested on Sep. 11 shows that it has a peak latency of 39 ms. But on the whole,
-the average RTTs of the five runs keep flat and the network latency is
-relatively short.
-
-Memory utilization is measured by free, which can display amount of free and
-used memory in the system. The largest amount of used memory is 270 MiB on the
-first two runs. In general, the mean used memory of two test runs have very
-large memory utilization, which can reach 264 MiB on average. And the other two
-runs have a large wide range of memory usage with the minimum value of 150 MiB
-and the maximum value of 270 MiB. On the other hand, for the mean free memory,
-the four test runs have the similar trend with that of the mean used memory.
-In general, the mean free memory change from 220 MiB to 342 MiB.
-
-Packet throughput and packet loss can be measured by pktgen, which is a tool
-in the network for generating traffic loads for network experiments. The mean
-packet throughput of the four test runs seem quite different, ranging from
-326.5 kpps to 418.1 kpps. The average number of flows in these tests is
-240000, and each run has a minimum number of flows of 2 and a maximum number
-of flows of 1.001 Mil. At the same time, the corresponding packet throughput
-differ between 326.5 kpps and 418.1 kpps with an average packet throughput between
-361.7 kpps and 363.5 kpps. In summary, the PPS results seem consistent. Within each
-test run of the four runs, when number of flows becomes larger, the packet
-throughput seems not larger at the same time.
-
-TC071
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The network latency is measured by ping, and the results of the four test runs
-look similar with each other. Within each test run, the maximum RTT is only 47
-ms and the average RTT is usually approx. 15 ms. On the whole, the average
-RTTs of the four runs keep stable and the network latency is relatively small.
-
-Cache utilization is measured by cachestat, which can display size of cache and
-buffer in the system. Cache utilization statistics are collected during UDP
-flows sent between the VMs using pktgen as packet generator tool. The largest
-cache size is 214 MiB, which is same for the four runs, and the smallest cache
-size is 94 MiB. On the whole, the average cache size of the four runs look the
-same and is between 198 MiB and 207 MiB. Meanwhile, the tread of the buffer
-size keep flat, since they have a minimum value of 7 MiB and a maximum value of
-8 MiB, with an average value of about 7.9 MiB.
-
-Packet throughput can be measured by pktgen, which is a tool in the network for
-generating traffic loads for network experiments. The mean packet throughput of
-the four test runs seem quite the same, which is approx. 363 kpps. The average
-number of flows in these tests is 240k, and each run has a minimum number of
-flows of 2 and a maximum number of flows of 1.001 Mil. At the same time, the
-corresponding packet throughput differ between 327 kpps and 418 kpps with an
-average packet throughput of about 363 kpps. Within each test run of the four
-runs, when number of flows becomes larger, the packet throughput seems not
-larger in the meantime.
-
-TC072
------
-The amount of packets per second (PPS) and round trip times (RTT) between 2 VMs
-on different blades are measured when increasing the amount of UDP flows sent
-between the VMs using pktgen as packet generator tool.
-
-Round trip times and packet throughput between VMs can typically be affected by
-the amount of flows set up and result in higher RTT and less PPS throughput.
-
-The RTT results are similar throughout the different test dates and runs
-between 0 ms and 47 ms with an average leatency of less than 16 ms. The PPS
-results are not as consistent as the RTT results, for the mean packet
-throughput of the four runs differ from 361.7 kpps to 365.0 kpps.
-
-Network utilization is measured by sar, that is system activity reporter, which
-can display the average statistics for the time since the system was started.
-Network utilization statistics are collected during UDP flows sent between the
-VMs using pktgen as packet generator tool. The largest total number of packets
-transmitted per second look similar for two test runs, whose values change a
-lot from 10 pps to 432 kpps. While results of the other test runs seem the same
-and keep stable with the average number of packets transmitted per second of 10
-pps. However, the total number of packets received per second of the four runs
-look similar, which have a large wide range of 2 pps to 657 kpps.
-
-In some test runs when running with less than approx. 250000 flows the PPS
-throughput is normally flatter compared to when running with more flows, after
-which the PPS throughput decreases. For the other test runs there is however no
-significant change to the PPS throughput when the number of flows are
-increased. In some test runs the PPS is also greater with 250000 flows
-compared to other test runs where the PPS result is less with only 2 flows.
-
-There are lost packets reported in most of the test runs. There is no observed
-correlation between the amount of flows and the amount of lost packets.
-The lost amount of packets normally differs a lot per test run.
-
-Detailed test results
----------------------
-The scenario was run on Intel POD6_ with:
-Joid
-OpenStack Mitaka
-Onos Goldeneye
-OpenVirtualSwitch 2.5.90
-OpenDayLight Beryllium
-
-Rationale for decisions
------------------------
-Pass
-
-Conclusions and recommendations
--------------------------------
-Tests were successfully executed and metrics collected.
-No SLA was verified. To be decided on in next release of OPNFV.
-
diff --git a/docs/release/results/overview.rst b/docs/release/results/overview.rst
index b4a050545..b5e6a43a6 100644
--- a/docs/release/results/overview.rst
+++ b/docs/release/results/overview.rst
@@ -3,6 +3,15 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c) OPNFV, Ericsson AB and others.
+..
+ Convention for heading levels in Yardstick:
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+ Avoid deeper levels because they do not render well.
+
Yardstick test tesult document overview
=======================================
@@ -42,55 +51,31 @@ environment, features or test framework.
The list of scenarios supported by each installer can be described as follows:
-+-------------------------+---------+---------+---------+---------+
-| Scenario | Apex | Compass | Fuel | Joid |
-+=========================+=========+=========+=========+=========+
-| os-nosdn-nofeature-noha | | | X | X |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-nofeature-ha | X | X | X | X |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-nofeature-ha | X | X | X | X |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-nofeature-noha| | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l3-nofeature-ha | X | X | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l3-nofeature-noha| | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-onos-sfc-ha | X | X | X | X |
-+-------------------------+---------+---------+---------+---------+
-| os-onos-sfc-noha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-onos-nofeature-ha | X | X | X | X |
-+-------------------------+---------+---------+---------+---------+
-| os-onos-nofeature-noha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-sfc-ha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-sfc-noha | X | X | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-bgpvpn-ha | X | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-bgpvpn-noha | | X | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-kvm-ha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-kvm-noha | | X | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-ovs-ha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-ovs-noha | X | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-ocl-nofeature-ha | | | | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-lxd-ha | | | | X |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-lxd-noha | | | | X |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-fdio-noha | X | | | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-moon-ha | | X | | |
-+-------------------------+---------+---------+---------+---------+
++-------------------------+------+---------+----------+------+------+-------+
+| Scenario | Apex | Compass | Fuel-arm | Fuel | Joid | Daisy |
++=========================+======+=========+==========+======+======+=======+
+| os-nosdn-nofeature-noha | X | | | | X | |
++-------------------------+------+---------+----------+------+------+-------+
+| os-nosdn-nofeature-ha | X | | X | X | X | X |
++-------------------------+------+---------+----------+------+------+-------+
+| os-nosdn-bar-noha | X | | | | | |
++-------------------------+------+---------+----------+------+------+-------+
+| os-nosdn-bar-ha | X | | | | | |
++-------------------------+------+---------+----------+------+------+-------+
+| os-odl-bgpvpn-ha | X | | | | | |
++-------------------------+------+---------+----------+------+------+-------+
+| os-nosdn-calipso-noha | X | | | | | |
++-------------------------+------+---------+----------+------+------+-------+
+| os-nosdn-kvm-ha | | X | | | | |
++-------------------------+------+---------+----------+------+------+-------+
+| os-odl_l3-nofeature-ha | | X | | | | |
++-------------------------+------+---------+----------+------+------+-------+
+| os-odl-sfc-ha | | X | | | | |
++-------------------------+------+---------+----------+------+------+-------+
+| os-odl-nofeature-ha | | | | X | | X |
++-------------------------+------+---------+----------+------+------+-------+
+| os-nosdn-ovs-ha | | | | X | | |
++-------------------------+------+---------+----------+------+------+-------+
To qualify for release, the scenarios must have deployed and been successfully
tested in four consecutive installations to establish stability of deployment
@@ -103,4 +88,4 @@ References
* IEEE Std 829-2008. "Standard for Software and System Test Documentation".
-* OPNFV Colorado release note for Yardstick.
+* OPNFV Fraser release note for Yardstick.
diff --git a/docs/release/results/results.rst b/docs/release/results/results.rst
index 04c6b9f87..f0c20360b 100644
--- a/docs/release/results/results.rst
+++ b/docs/release/results/results.rst
@@ -2,41 +2,56 @@
.. License.
.. http://creativecommons.org/licenses/by/4.0
-Results listed by scenario
-==========================
+..
+ Convention for heading levels in Yardstick:
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+ Avoid deeper levels because they do not render well.
-The following sections describe the yardstick results as evaluated for the
-Colorado release scenario validation runs. Each section describes the
-determined state of the specific scenario as deployed in the Colorado
-release process.
+Results listed by test cases
+----------------------------
+
+.. _TOM: https://wiki.opnfv.org/display/testing/R+post-processing+of+the+Yardstick+results
+
+
+The following sections describe the yardstick test case results as evaluated
+for the OPNFV Fraser release scenario validation runs. Each section describes
+the determined state of the specific test case as executed in the Fraser release
+process. All test date are analyzed using TOM_ tool.
Scenario Results
-================
+----------------
.. _Dashboard: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-main
.. _Jenkins: https://build.opnfv.org/ci/view/yardstick/
+
The following documents contain results of Yardstick test cases executed on
-OPNFV labs, triggered by OPNFV CI pipeline, documented per scenario.
+OPNFV labs, triggered by OPNFV CI pipeline, documented per test case.
+For hardware details of OPNFV labs, please visit: https://wiki.opnfv.org/display/pharos/Community+Labs
.. toctree::
:maxdepth: 1
- os-nosdn-nofeature-ha.rst
- os-nosdn-nofeature-noha.rst
- os-odl_l2-nofeature-ha.rst
- os-odl_l2-bgpvpn-ha.rst
- os-odl_l2-sfc-ha.rst
- os-nosdn-kvm-ha.rst
- os-onos-nofeature-ha.rst
- os-onos-sfc-ha.rst
+ tc002-network-latency.rst
+ tc010-memory-read-latency.rst
+ tc011-packet-delay-variation.rst
+ tc012-memory-read-write-bandwidth.rst
+ tc014-cpu-processing-speed.rst
+ tc069-memory-write-bandwidth.rst
+ tc082-context-switches-under-load.rst
+ tc083-network-throughput-between-vm.rst
Test results of executed tests are avilable in Dashboard_ and logs in Jenkins_.
+Test results for Fraser release are collected from April 10, 2018 to May 13, 2018.
Feature Test Results
-====================
+--------------------
The following features were verified by Yardstick test cases:
@@ -48,8 +63,6 @@ The following features were verified by Yardstick test cases:
* Parser
- * Virtual Traffic Classifier (see :doc:`yardstick-opnfv-vtc`)
-
* StorPerf
.. note:: The test cases for IPv6 and Parser Projects are included in the
diff --git a/docs/release/results/tc002-network-latency.rst b/docs/release/results/tc002-network-latency.rst
new file mode 100644
index 000000000..064983bec
--- /dev/null
+++ b/docs/release/results/tc002-network-latency.rst
@@ -0,0 +1,525 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+
+======================================
+Test results for TC002 network latency
+======================================
+
+.. toctree::
+ :maxdepth: 2
+
+
+Overview of test case
+=====================
+
+TC002 verifies that network latency is within acceptable boundaries when packets travel between hosts located on same or different compute blades.
+Ping packets (ICMP protocol's mandatory ECHO_REQUEST datagram) are sent from host VM to target VM(s) to elicit ICMP ECHO_RESPONSE.
+
+Metric: RTT (Round Trip Time)
+Unit: ms
+
+
+Euphrates release
+-----------------
+
+Test results per scenario and pod (lower is better):
+
+{
+
+ "os-nosdn-ovs_dpdk-ha:huawei-pod2:compass": [0.214],
+
+ "os-odl_l2-moon-ha:huawei-pod2:compass": [0.309],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual3:compass": [0.3145],
+
+ "os-nosdn-ovs-ha:lf-pod2:fuel": [0.3585],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [0.3765],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual4:compass": [0.403],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [0.413],
+
+ "os-nosdn-ovs-ha:ericsson-pod1:fuel": [0.494],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [0.5715],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [0.5785],
+
+ "os-odl-sfc-ha:lf-pod1:apex": [0.617],
+
+ "os-odl-nofeature-ha:lf-pod1:apex": [0.62],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [0.632],
+
+ "os-odl-nofeature-noha:lf-pod1:apex": [0.635],
+
+ "os-odl-bgpvpn-ha:lf-pod1:apex": [0.658],
+
+ "os-odl-sfc-noha:lf-pod1:apex": [0.663],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [0.668],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [0.668],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [0.6815],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [0.7005],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [0.778],
+
+ "os-nosdn-ovs-noha:ericsson-virtual4:fuel": [0.7825],
+
+ "os-nosdn-ovs-noha:ericsson-virtual2:fuel": [0.7885],
+
+ "os-nosdn-nofeature-ha:flex-pod2:apex": [0.795],
+
+ "os-nosdn-ovs-noha:ericsson-virtual1:fuel": [0.8045],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [0.8335],
+
+ "os-nosdn-ovs-noha:ericsson-virtual3:fuel": [0.8755],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [0.8855],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual3:compass": [0.8895],
+
+ "os-nosdn-openbaton-ha:huawei-pod12:joid": [0.901],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual4:compass": [0.956],
+
+ "os-nosdn-lxd-noha:intel-pod5:joid": [1.131],
+
+ "os-odl_l2-moon-noha:huawei-virtual4:compass": [1.173],
+
+ "os-odl-sfc-ha:huawei-virtual8:compass": [1.2015],
+
+ "os-odl_l2-moon-noha:huawei-virtual3:compass": [1.204],
+
+ "os-nosdn-lxd-ha:intel-pod5:joid": [1.2245],
+
+ "os-odl-nofeature-ha:lf-pod2:fuel": [1.2285],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [1.3055],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [1.309],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [1.313],
+
+ "os-nosdn-nofeature-noha:huawei-virtual8:compass": [1.319],
+
+ "os-odl-nofeature-ha:ericsson-pod1:fuel": [1.3425],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [1.3475],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [1.348],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [1.432],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual9:compass": [1.442],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [1.4505],
+
+ "os-nosdn-nofeature-ha:arm-pod5:fuel": [1.497],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [1.504],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [1.519],
+
+ "os-nosdn-nofeature-noha:intel-pod5:joid": [1.5415],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [1.5785],
+
+ "os-nosdn-nofeature-ha:intel-pod5:joid": [1.604],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [1.61],
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [1.633],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [1.6485],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual2:compass": [1.7085],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [1.71],
+
+ "os-nosdn-nofeature-ha:huawei-virtual2:compass": [1.7955],
+
+ "os-odl-nofeature-ha:arm-pod6:fuel": [1.838],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [1.88],
+
+ "os-odl_l2-moon-ha:huawei-virtual3:compass": [1.8975],
+
+ "os-nosdn-kvm-noha:huawei-virtual8:compass": [1.923],
+
+ "os-odl_l2-moon-ha:huawei-virtual4:compass": [1.944],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [1.968],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [1.986],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [2.0415],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [2.071],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [2.0855],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [2.1085],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [2.1135],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [2.234],
+
+ "os-nosdn-nofeature-ha:huawei-virtual9:compass": [2.294],
+
+ "os-nosdn-kvm-ha:huawei-virtual3:compass": [2.304],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [2.378],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [2.397],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [2.472],
+
+ "os-nosdn-nofeature-noha:huawei-virtual1:compass": [2.603],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [2.635],
+
+ "os-odl-nofeature-noha:ericsson-virtual3:fuel": [2.9055],
+
+ "os-odl-nofeature-noha:ericsson-virtual2:fuel": [3.1295],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [3.337],
+
+ "os-odl-nofeature-noha:ericsson-virtual4:fuel": [3.634],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual1:fuel": [3.875],
+
+ "os-odl-nofeature-noha:ericsson-virtual1:fuel": [3.9655],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual4:fuel": [3.9795]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc002_scenario.png
+ :width: 800px
+ :alt: TC002 influence of scenario
+
+{
+
+ "os-odl_l2-moon-ha": [0.3415],
+
+ "os-nosdn-ovs-ha": [0.3625],
+
+ "os-nosdn-ovs_dpdk-noha": [0.378],
+
+ "os-nosdn-ovs_dpdk-ha": [0.5265],
+
+ "os-nosdn-bar-noha": [0.632],
+
+ "os-odl-bgpvpn-ha": [0.658],
+
+ "os-ovn-nofeature-noha": [0.668],
+
+ "os-odl_l3-nofeature-ha": [0.8545],
+
+ "os-nosdn-ovs-noha": [0.8575],
+
+ "os-nosdn-bar-ha": [0.903],
+
+ "os-odl-sfc-ha": [1.127],
+
+ "os-nosdn-lxd-noha": [1.131],
+
+ "os-nosdn-nofeature-ha": [1.152],
+
+ "os-odl_l2-moon-noha": [1.1825],
+
+ "os-nosdn-lxd-ha": [1.2245],
+
+ "os-odl_l3-nofeature-noha": [1.337],
+
+ "os-odl-nofeature-ha": [1.352],
+
+ "os-odl-sfc-noha": [1.4255],
+
+ "os-nosdn-kvm-noha": [1.5045],
+
+ "os-nosdn-openbaton-ha": [1.5665],
+
+ "os-nosdn-nofeature-noha": [1.729],
+
+ "os-nosdn-kvm-ha": [1.7745],
+
+ "os-odl-nofeature-noha": [3.106]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc002_pod.png
+ :width: 800px
+ :alt: TC002 influence of the POD
+
+{
+
+ "huawei-pod2": [0.3925],
+
+ "lf-pod2": [0.5315],
+
+ "lf-pod1": [0.62],
+
+ "flex-pod2": [0.795],
+
+ "huawei-pod12": [0.87],
+
+ "intel-pod5": [1.25],
+
+ "ericsson-virtual3": [1.2655],
+
+ "ericsson-pod1": [1.372],
+
+ "arm-pod5": [1.518],
+
+ "huawei-virtual4": [1.5355],
+
+ "huawei-virtual3": [1.606],
+
+ "intel-pod18": [1.6575],
+
+ "huawei-virtual8": [1.709],
+
+ "huawei-virtual2": [1.872],
+
+ "arm-pod6": [1.895],
+
+ "huawei-virtual9": [2.0745],
+
+ "huawei-virtual1": [2.495],
+
+ "ericsson-virtual2": [2.7895],
+
+ "ericsson-virtual4": [3.768],
+
+ "ericsson-virtual1": [3.8035]
+
+}
+
+
+Fraser release
+--------------
+
+Test results per scenario and pod (lower is better):
+
+{
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [0.42],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [0.557],
+
+ "os-nosdn-ovs-ha:ericsson-pod1:fuel": [0.5765],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [0.582],
+
+ "os-odl-bgpvpn-ha:lf-pod1:apex": [0.678],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [0.7075],
+
+ "os-nosdn-calipso-noha:lf-pod1:apex": [0.713],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [0.7155],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [0.732],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [0.7415],
+
+ "os-odl-nofeature-noha:lf-pod1:apex": [0.7565],
+
+ "os-nosdn-ovs-ha:arm-pod6:fuel": [0.8015],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [0.908],
+
+ "os-odl-nofeature-ha:ericsson-pod1:fuel": [0.9165],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [0.969],
+
+ "os-nosdn-ovs-noha:ericsson-virtual2:fuel": [0.9765],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [1.0245],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [1.0495],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [1.1645],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [1.206],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [1.236],
+
+ "os-nosdn-ovs-noha:ericsson-virtual4:fuel": [1.241],
+
+ "os-nosdn-nofeature-ha:zte-pod2:daisy": [1.2805],
+
+ "os-odl-nofeature-ha:lf-pod2:fuel": [1.286],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [1.299],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [1.305],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [1.309],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [1.314],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [1.431],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [1.457],
+
+ "os-odl-nofeature-ha:zte-pod2:daisy": [1.517],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [1.576],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [1.592],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [1.714],
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [1.809],
+
+ "os-nosdn-bar-noha:huawei-virtual4:compass": [1.81],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [1.8505],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [1.8895],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [1.909],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [1.925],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [1.964],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [1.9755],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [1.9765],
+
+ "os-nosdn-bar-noha:huawei-virtual3:compass": [1.9915],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [1.9925],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [2.0265],
+
+ "os-odl-nofeature-ha:arm-pod6:fuel": [2.106],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [2.124],
+
+ "os-nosdn-kvm-ha:huawei-virtual3:compass": [2.185],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [2.281],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [2.432],
+
+ "os-odl-nofeature-noha:ericsson-virtual4:fuel": [2.483],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [2.524],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [3.9175],
+
+ "os-odl-nofeature-noha:ericsson-virtual2:fuel": [4.338],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [4.641]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc002_scenario_fraser.png
+ :width: 800px
+ :alt: TC002 influence of scenario
+
+{
+
+ "os-odl-bgpvpn-ha": [0.678],
+
+ "os-nosdn-calipso-noha": [0.713],
+
+ "os-nosdn-ovs-ha": [0.7245],
+
+ "os-odl_l3-nofeature-ha": [0.7435],
+
+ "os-odl-sfc-ha": [0.796],
+
+ "os-nosdn-kvm-ha": [1.059],
+
+ "os-nosdn-bar-ha": [1.083],
+
+ "os-nosdn-ovs-noha": [1.09],
+
+ "os-odl-sfc-noha": [1.196],
+
+ "os-nosdn-nofeature-noha": [1.26],
+
+ "os-nosdn-nofeature-ha": [1.291],
+
+ "os-odl_l3-nofeature-noha": [1.308],
+
+ "os-nosdn-bar-noha": [1.4125],
+
+ "os-nosdn-kvm-noha": [1.4475],
+
+ "os-odl-nofeature-ha": [1.508],
+
+ "os-odl-nofeature-noha": [1.914],
+
+ "os-nosdn-openbaton-ha": [1.9755]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc002_pod_fraser.png
+ :width: 800px
+ :alt: TC002 influence of the POD
+
+{
+
+ "huawei-pod2": [0.677],
+
+ "lf-pod1": [0.725],
+
+ "ericsson-pod1": [0.9165],
+
+ "huawei-pod12": [1.0465],
+
+ "lf-pod2": [1.2325],
+
+ "zte-pod2": [1.395],
+
+ "ericsson-virtual4": [1.582],
+
+ "huawei-virtual4": [1.697],
+
+ "arm-pod5": [1.714],
+
+ "huawei-virtual3": [1.716],
+
+ "intel-pod18": [1.856],
+
+ "huawei-virtual2": [1.964],
+
+ "huawei-virtual1": [1.9765],
+
+ "arm-pod6": [2.209],
+
+ "ericsson-virtual3": [3.9175],
+
+ "ericsson-virtual2": [4.004]
+
+}
diff --git a/docs/release/results/tc010-memory-read-latency.rst b/docs/release/results/tc010-memory-read-latency.rst
new file mode 100644
index 000000000..81559d647
--- /dev/null
+++ b/docs/release/results/tc010-memory-read-latency.rst
@@ -0,0 +1,510 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+
+==========================================
+Test results for TC010 memory read latency
+==========================================
+
+.. toctree::
+ :maxdepth: 2
+
+
+Overview of test case
+=====================
+
+TC010 measures the memory read latency for varying memory sizes and strides.
+The test results shown below are for memory size of 16MB.
+
+Metric: Memory read latency
+Unit: ns
+
+
+Euphrates release
+-----------------
+
+Test results per scenario and pod (lower is better):
+
+{
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [5.3165],
+
+ "os-nosdn-nofeature-ha:flex-pod2:apex": [5.908],
+
+ "os-nosdn-ovs-noha:ericsson-virtual1:fuel": [6.412],
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [6.545],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [6.592],
+
+ "os-nosdn-nofeature-noha:intel-pod5:joid": [6.5975],
+
+ "os-nosdn-ovs-ha:ericsson-pod1:fuel": [6.7675],
+
+ "os-odl-nofeature-ha:ericsson-pod1:fuel": [6.7675],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [6.7945],
+
+ "os-nosdn-nofeature-ha:intel-pod5:joid": [6.839],
+
+ "os-nosdn-ovs-noha:ericsson-virtual4:fuel": [6.9695],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual4:fuel": [7.123],
+
+ "os-odl-nofeature-noha:ericsson-virtual4:fuel": [7.289],
+
+ "os-nosdn-ovs-noha:ericsson-virtual2:fuel": [7.4315],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [7.9],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-pod2:compass": [8.178],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual3:compass": [8.616],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual4:compass": [8.646],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [8.8615],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [8.87],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [8.877],
+
+ "os-odl_l2-moon-ha:huawei-pod2:compass": [8.892],
+
+ "os-nosdn-ovs-noha:ericsson-virtual3:fuel": [8.898],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [8.952],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [8.9745],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual3:compass": [9.0375],
+
+ "os-nosdn-openbaton-ha:huawei-pod12:joid": [9.083],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [9.09],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [9.094],
+
+ "os-odl_l2-moon-noha:huawei-virtual4:compass": [9.293],
+
+ "os-odl_l2-moon-noha:huawei-virtual3:compass": [9.3525],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [9.477],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [9.5445],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [9.5575],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [9.6435],
+
+ "os-nosdn-nofeature-noha:huawei-virtual1:compass": [9.68],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual4:compass": [9.728],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [9.751],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [9.8645],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [9.969],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [10.029],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [10.088],
+
+ "os-odl-nofeature-noha:ericsson-virtual2:fuel": [10.2985],
+
+ "os-nosdn-nofeature-ha:huawei-virtual9:compass": [10.318],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [10.3215],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [10.617],
+
+ "os-odl-nofeature-noha:ericsson-virtual3:fuel": [10.762],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [10.7715],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [10.866],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [10.871],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [11.1605],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [11.227],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [11.348],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [11.453],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual2:compass": [11.571],
+
+ "os-odl_l2-moon-ha:huawei-virtual3:compass": [11.5925],
+
+ "os-nosdn-nofeature-ha:huawei-virtual2:compass": [11.689],
+
+ "os-odl_l2-moon-ha:huawei-virtual4:compass": [11.8695],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [12.199],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [12.433],
+
+ "os-nosdn-kvm-ha:huawei-virtual3:compass": [12.713],
+
+ "os-nosdn-ovs-ha:lf-pod2:fuel": [15.328],
+
+ "os-odl-nofeature-ha:lf-pod1:apex": [15.4265],
+
+ "os-odl-nofeature-noha:lf-pod1:apex": [15.428],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [15.545],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [15.55],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [15.6395],
+
+ "os-odl-sfc-noha:lf-pod1:apex": [15.696],
+
+ "os-odl-sfc-ha:lf-pod1:apex": [15.774],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [16.6455],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [16.861],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [18.071],
+
+ "os-nosdn-nofeature-ha:arm-pod5:fuel": [18.116],
+
+ "os-odl-nofeature-ha:lf-pod2:fuel": [18.8365],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [18.927],
+
+ "os-nosdn-nofeature-noha:huawei-virtual8:compass": [29.557],
+
+ "os-odl-sfc-ha:huawei-virtual8:compass": [32.492],
+
+ "os-nosdn-kvm-noha:huawei-virtual8:compass": [37.623],
+
+ "os-odl-nofeature-ha:arm-pod6:fuel": [41.345],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [42.3795],
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc010_scenario.png
+ :width: 800px
+ :alt: TC010 influence of scenario
+
+{
+
+ "os-nosdn-ovs-noha": [7.9],
+
+ "os-nosdn-ovs_dpdk-noha": [8.641],
+
+ "os-nosdn-ovs_dpdk-ha": [8.6815],
+
+ "os-nosdn-openbaton-ha": [8.882],
+
+ "os-odl_l2-moon-ha": [8.948],
+
+ "os-odl_l3-nofeature-ha": [8.992],
+
+ "os-nosdn-nofeature-ha": [9.118],
+
+ "os-nosdn-nofeature-noha": [9.174],
+
+ "os-odl_l2-moon-noha": [9.312],
+
+ "os-odl_l3-nofeature-noha": [9.5535],
+
+ "os-odl-nofeature-noha": [9.673],
+
+ "os-odl-sfc-noha": [9.8385],
+
+ "os-odl-sfc-ha": [9.98],
+
+ "os-nosdn-kvm-noha": [10.088],
+
+ "os-nosdn-kvm-ha": [11.1705],
+
+ "os-nosdn-bar-ha": [12.1395],
+
+ "os-nosdn-ovs-ha": [15.3195],
+
+ "os-ovn-nofeature-noha": [15.545],
+
+ "os-odl-nofeature-ha": [16.301],
+
+ "os-nosdn-bar-noha": [16.861]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc010_pod.png
+ :width: 800px
+ :alt: TC010 influence of the POD
+
+{
+
+ "ericsson-pod1": [5.7785],
+
+ "flex-pod2": [5.908],
+
+ "ericsson-virtual1": [6.412],
+
+ "intel-pod18": [6.5905],
+
+ "intel-pod5": [6.6975],
+
+ "ericsson-virtual4": [7.183],
+
+ "ericsson-virtual2": [8.4985],
+
+ "huawei-pod2": [8.877],
+
+ "huawei-pod12": [9.091],
+
+ "ericsson-virtual3": [9.719],
+
+ "huawei-virtual4": [10.1195],
+
+ "huawei-virtual3": [10.19],
+
+ "huawei-virtual1": [10.3045],
+
+ "huawei-virtual9": [10.318],
+
+ "huawei-virtual2": [11.274],
+
+ "lf-pod1": [15.7025],
+
+ "lf-pod2": [15.8495],
+
+ "arm-pod5": [18.092],
+
+ "huawei-virtual8": [33.999],
+
+ "arm-pod6": [41.5605]
+
+}
+
+
+Fraser release
+--------------
+
+Test results per scenario and pod (lower is better):
+
+{
+
+ "os-odl-nofeature-ha:ericsson-pod1:fuel": [6.8675],
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [6.991],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [7.5535],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [7.571],
+ "os-nosdn-ovs-ha:ericsson-pod1:fuel": [7.635],
+
+ "os-nosdn-nofeature-ha:zte-pod2:daisy": [8.153],
+
+ "os-odl-nofeature-ha:zte-pod2:daisy": [8.1935],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [9.1715],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [9.1875],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [9.241],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [9.255],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [9.388],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [9.5825],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [9.5875],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [9.6345],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [9.6535],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [9.743],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [9.82],
+
+ "os-odl-nofeature-noha:ericsson-virtual2:fuel": [9.8715],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [9.982],
+
+ "os-nosdn-bar-noha:huawei-virtual4:compass": [10.0195],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [10.1285],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [10.1335],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [10.22],
+
+ "os-nosdn-bar-noha:huawei-virtual3:compass": [10.2845],
+
+ "os-nosdn-ovs-noha:ericsson-virtual4:fuel": [10.4185],
+
+ "os-nosdn-ovs-noha:ericsson-virtual2:fuel": [10.4555],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [10.5635],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [10.6515],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [10.9355],
+
+ "os-odl-nofeature-noha:ericsson-virtual4:fuel": [11.2015],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [12.984],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [13.306],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [13.721],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [14.133],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [14.158],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [14.375],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [14.396],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [14.9375],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [14.957],
+
+ "os-nosdn-calipso-noha:lf-pod1:apex": [16.3445],
+
+ "os-nosdn-ovs-ha:lf-pod2:fuel": [16.478],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [16.4895],
+
+ "os-odl-nofeature-noha:lf-pod1:apex": [16.55],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [16.5665],
+
+ "os-odl-sfc-noha:lf-pod1:apex": [16.598],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [16.805],
+
+ "os-odl-nofeature-ha:lf-pod1:apex": [16.9095],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [17.494],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [17.4995],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [18.094],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [18.744],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [19.8235],
+
+ "os-odl-nofeature-ha:lf-pod2:fuel": [20.758],
+
+ "os-nosdn-kvm-ha:huawei-virtual3:compass": [26.5245],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [55.667],
+
+ "os-odl-nofeature-ha:arm-pod6:fuel": [56.175],
+
+ "os-nosdn-ovs-ha:arm-pod6:fuel": [57.86]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc010_scenario_fraser.png
+ :width: 800px
+ :alt: TC010 influence of scenario
+
+{
+
+ "os-nosdn-openbaton-ha": [7.5535],
+
+ "os-odl-nofeature-ha": [8.2535],
+
+ "os-odl-sfc-ha": [9.251],
+
+ "os-nosdn-nofeature-ha": [9.464],
+
+ "os-odl-sfc-noha": [9.8265],
+
+ "os-odl_l3-nofeature-ha": [9.836],
+
+ "os-odl_l3-nofeature-noha": [10.0565],
+
+ "os-nosdn-nofeature-noha": [10.079],
+
+ "os-nosdn-kvm-ha": [10.418],
+
+ "os-nosdn-ovs-noha": [10.43],
+
+ "os-nosdn-kvm-noha": [10.603],
+
+ "os-nosdn-bar-noha": [11.067],
+
+ "os-nosdn-bar-ha": [13.911],
+
+ "os-odl-nofeature-noha": [14.046],
+
+ "os-nosdn-calipso-noha": [16.3445],
+
+ "os-nosdn-ovs-ha": [16.478],
+
+ "os-ovn-nofeature-noha": [16.805]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc010_pod_fraser.png
+ :width: 800px
+ :alt: TC010 influence of the POD
+
+{
+
+ "ericsson-pod1": [7.0645],
+
+ "intel-pod18": [7.4465],
+
+ "zte-pod2": [8.1865],
+
+ "huawei-pod2": [9.236],
+
+ "huawei-pod12": [9.615],
+
+ "ericsson-virtual2": [9.8925],
+
+ "huawei-virtual2": [10.22],
+
+ "ericsson-virtual4": [10.5465],
+
+ "ericsson-virtual3": [10.9355],
+
+ "huawei-virtual3": [10.95],
+
+ "huawei-virtual4": [11.557],
+
+ "lf-pod2": [16.5595],
+
+ "lf-pod1": [16.8395],
+
+ "arm-pod5": [18.744],
+
+ "huawei-virtual1": [19.8235],
+
+ "arm-pod6": [55.804]
+
+}
diff --git a/docs/release/results/tc011-packet-delay-variation.rst b/docs/release/results/tc011-packet-delay-variation.rst
new file mode 100644
index 000000000..f255b50ca
--- /dev/null
+++ b/docs/release/results/tc011-packet-delay-variation.rst
@@ -0,0 +1,432 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+
+=============================================
+Test results for TC011 packet delay variation
+=============================================
+
+.. toctree::
+ :maxdepth: 2
+
+
+Overview of test case
+=====================
+
+TC011 measures the packet delay variation sending the packets from one VM to the other.
+
+Metric: packet delay variation (jitter)
+Unit: ms
+
+
+Euphrates release
+-----------------
+
+Test results per scenario and pod (lower is better):
+
+{
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [2996],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [2996],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual4:compass": [2996],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [2996],
+
+ "os-nosdn-kvm-ha:huawei-virtual3:compass": [2997],
+
+ "os-nosdn-nofeature-ha:huawei-virtual2:compass": [2997],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual3:compass": [2997],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual4:compass": [2997],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [2997],
+
+ "os-nosdn-nofeature-ha:flex-pod2:apex": [2997.5],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [2998],
+
+ "os-odl-sfc-ha:huawei-virtual8:compass": [2998],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [2999],
+
+ "os-odl_l2-moon-ha:huawei-virtual4:compass": [2999.5],
+
+ "os-nosdn-nofeature-ha:huawei-virtual9:compass": [3000],
+
+ "os-nosdn-nofeature-noha:huawei-virtual1:compass": [3001],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [3002],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [3002],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual3:compass": [3002],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [3002],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [3003],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [3003.5],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [3004],
+
+ "os-nosdn-kvm-noha:huawei-virtual8:compass": [3004],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [3004.5],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [3005],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [3006],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [3006.5],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [3009],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [3010],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual2:compass": [3010],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [3012],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [3017],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual4:fuel": [3017],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [3017],
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [3018],
+
+ "os-nosdn-nofeature-ha:intel-pod5:joid": [3020],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [3021],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [3022],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [3022],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [3022],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [3022],
+
+ "os-nosdn-nofeature-ha:arm-pod5:fuel": [3022],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [3022],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [3022],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [3022],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [3022],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [3022],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [3022],
+
+ "os-nosdn-nofeature-noha:intel-pod5:joid": [3022],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [3022],
+
+ "os-nosdn-openbaton-ha:huawei-pod12:joid": [3022],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-pod2:compass": [3022],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [3022],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [3022],
+
+ "os-odl-sfc-ha:lf-pod1:apex": [3022],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [3022],
+
+ "os-odl-sfc-noha:lf-pod1:apex": [3022],
+
+ "os-odl_l2-moon-ha:huawei-pod2:compass": [3022],
+
+ "os-odl_l2-moon-ha:huawei-virtual3:compass": [3022],
+
+ "os-odl_l2-moon-noha:huawei-virtual3:compass": [3022],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [3022],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [3022],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [3023],
+
+ "os-odl_l2-moon-noha:huawei-virtual4:compass": [3023],
+
+ "os-nosdn-nofeature-noha:huawei-virtual8:compass": [3024]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc011_scenario.png
+ :width: 800px
+ :alt: TC011 influence of scenario
+
+{
+
+ "os-nosdn-ovs_dpdk-noha": [2996],
+
+ "os-odl_l3-nofeature-noha": [2997],
+
+ "os-nosdn-kvm-noha": [2999],
+
+ "os-nosdn-ovs_dpdk-ha": [3002],
+
+ "os-nosdn-kvm-ha": [3014.5],
+
+ "os-odl-sfc-noha": [3018],
+
+ "os-nosdn-nofeature-noha": [3020],
+
+ "os-nosdn-openbaton-ha": [3020],
+
+ "os-nosdn-bar-ha": [3022],
+
+ "os-nosdn-bar-noha": [3022],
+
+ "os-nosdn-nofeature-ha": [3022],
+
+ "os-odl-nofeature-ha": [3022],
+
+ "os-odl-sfc-ha": [3022],
+
+ "os-odl_l2-moon-ha": [3022],
+
+ "os-odl_l2-moon-noha": [3022],
+
+ "os-odl_l3-nofeature-ha": [3022],
+
+ "os-ovn-nofeature-noha": [3022]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc011_pod.png
+ :width: 800px
+ :alt: TC011 influence of the POD
+
+{
+
+ "huawei-virtual2": [2997],
+
+ "flex-pod2": [2997.5],
+
+ "huawei-virtual3": [2998],
+
+ "huawei-virtual9": [3000],
+
+ "huawei-virtual8": [3001],
+
+ "huawei-virtual4": [3002],
+
+ "ericsson-virtual3": [3006],
+
+ "huawei-virtual1": [3007],
+
+ "ericsson-virtual2": [3009],
+
+ "intel-pod18": [3010],
+
+ "ericsson-virtual4": [3017],
+
+ "lf-pod2": [3021],
+
+ "arm-pod5": [3022],
+
+ "arm-pod6": [3022],
+
+ "ericsson-pod1": [3022],
+
+ "huawei-pod12": [3022],
+
+ "huawei-pod2": [3022],
+
+ "intel-pod5": [3022],
+
+ "lf-pod1": [3022]
+
+}
+
+
+Fraser release
+--------------
+
+Test results per scenario and pod (lower is better):
+
+{
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [1],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [1],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [1],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [1],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [1],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [1511.5],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [2996],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [2997],
+
+ "os-nosdn-bar-noha:huawei-virtual4:compass": [2997],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [2997],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [2997],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [2997],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [2997],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [2997],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [2997],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [3000],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [3003],
+
+ "os-nosdn-bar-noha:huawei-virtual3:compass": [3011],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [3015.5],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [3019],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [3021],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [3021],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [3022],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [3022],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [3022],
+
+ "os-nosdn-calipso-noha:lf-pod1:apex": [3022],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [3022],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [3022],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [3022],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [3022],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [3022],
+
+ "os-nosdn-nofeature-ha:zte-pod2:daisy": [3022],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [3022],
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [3022],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [3022],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [3022],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [3022],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [3022],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [3022],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [3022.5],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [3023],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [3023],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [3025]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc011_scenario_fraser.png
+ :width: 800px
+ :alt: TC011 influence of scenario
+
+{
+
+ "os-ovn-nofeature-noha": [1511.5],
+
+ "os-nosdn-kvm-noha": [2997],
+
+ "os-odl-sfc-ha": [3021],
+
+ "os-nosdn-bar-ha": [3022],
+
+ "os-nosdn-bar-noha": [3022],
+
+ "os-nosdn-calipso-noha": [3022],
+
+ "os-nosdn-kvm-ha": [3022],
+
+ "os-nosdn-nofeature-ha": [3022],
+
+ "os-nosdn-nofeature-noha": [3022],
+
+ "os-nosdn-openbaton-ha": [3022],
+
+ "os-odl_l3-nofeature-ha": [3022],
+
+ "os-odl_l3-nofeature-noha": [3022],
+
+ "os-odl-sfc-noha": [3023]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc011_pod_fraser.png
+ :width: 800px
+ :alt: TC011 influence of the POD
+
+{
+
+ "arm-pod6": [1],
+
+ "ericsson-pod1": [1],
+
+ "ericsson-virtual2": [1],
+
+ "ericsson-virtual3": [1],
+
+ "lf-pod2": [1],
+
+ "huawei-virtual1": [2997],
+
+ "huawei-virtual3": [2999],
+
+ "huawei-virtual4": [3002],
+
+ "huawei-pod12": [3022],
+
+ "huawei-pod2": [3022],
+
+ "intel-pod18": [3022],
+
+ "lf-pod1": [3022],
+
+ "zte-pod2": [3022],
+
+ "huawei-virtual2": [3025]
+
+}
diff --git a/docs/release/results/tc012-memory-read-write-bandwidth.rst b/docs/release/results/tc012-memory-read-write-bandwidth.rst
new file mode 100644
index 000000000..71d69cde9
--- /dev/null
+++ b/docs/release/results/tc012-memory-read-write-bandwidth.rst
@@ -0,0 +1,513 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+
+==================================================
+Test results for TC012 memory read/write bandwidth
+==================================================
+
+.. toctree::
+ :maxdepth: 2
+
+
+Overview of test case
+=====================
+
+TC012 measures the rate at which data can be read from and written to the memory (this includes all levels of memory).
+In this test case, the bandwidth to read data from memory and then write data to the same memory location are measured.
+
+Metric: memory bandwidth
+Unit: MBps
+
+
+Euphrates release
+-----------------
+
+Test results per scenario and pod (higher is better):
+
+{
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [23126.325],
+
+ "os-odl-nofeature-noha:lf-pod1:apex": [23123.975],
+
+ "os-odl-nofeature-ha:lf-pod1:apex": [23068.965],
+
+ "os-odl-nofeature-ha:lf-pod2:fuel": [22972.46],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [22912.015],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [22911.35],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [22900.93],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [22767.56],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [22721.83],
+
+ "os-odl-sfc-noha:lf-pod1:apex": [22511.565],
+
+ "os-nosdn-ovs-ha:lf-pod2:fuel": [22071.235],
+
+ "os-odl-sfc-ha:lf-pod1:apex": [21646.415],
+
+ "os-nosdn-nofeature-ha:flex-pod2:apex": [20229.99],
+
+ "os-nosdn-ovs-noha:ericsson-virtual4:fuel": [17491.18],
+
+ "os-nosdn-ovs-noha:ericsson-virtual1:fuel": [17474.965],
+
+ "os-nosdn-ovs-ha:ericsson-pod1:fuel": [17141.375],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [17134.99],
+
+ "os-odl-nofeature-ha:ericsson-pod1:fuel": [17124.27],
+
+ "os-nosdn-ovs-noha:ericsson-virtual2:fuel": [16599.325],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual4:fuel": [16309.13],
+
+ "os-odl-nofeature-noha:ericsson-virtual4:fuel": [16137.48],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [15960.76],
+
+ "os-nosdn-ovs-noha:ericsson-virtual3:fuel": [15685.505],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [15536.65],
+
+ "os-odl-nofeature-noha:ericsson-virtual3:fuel": [15431.795],
+
+ "os-odl-nofeature-noha:ericsson-virtual2:fuel": [15129.27],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-pod2:compass": [15125.51],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [15030.65],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [15019.89],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [15005.11],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [14975.645],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [14968.97],
+
+ "os-odl_l2-moon-ha:huawei-pod2:compass": [14968.97],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual4:compass": [14741.425],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual3:compass": [14714.28],
+
+ "os-odl_l2-moon-noha:huawei-virtual4:compass": [14674.38],
+
+ "os-odl_l2-moon-noha:huawei-virtual3:compass": [14664.12],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [14587.62],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [14539.94],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [14534.54],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [14511.925],
+
+ "os-nosdn-nofeature-noha:huawei-virtual1:compass": [14496.875],
+
+ "os-odl_l2-moon-ha:huawei-virtual3:compass": [14378.87],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [14366.69],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [14356.695],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [14341.605],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual3:compass": [14327.78],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual4:compass": [14313.81],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [14284.365],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [14157.99],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [14144.86],
+
+ "os-nosdn-openbaton-ha:huawei-pod12:joid": [14138.9],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [14117.7],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [14097.255],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [14085.675],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [14071.605],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [14059.51],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [14057.155],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [14051.945],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [14020.74],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [14017.915],
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [13954.27],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [13915.87],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual2:compass": [13874.59],
+
+ "os-nosdn-nofeature-noha:intel-pod5:joid": [13812.215],
+
+ "os-odl_l2-moon-ha:huawei-virtual4:compass": [13777.59],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [13765.36],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [13559.905],
+
+ "os-nosdn-nofeature-ha:huawei-virtual2:compass": [13477.52],
+
+ "os-nosdn-kvm-ha:huawei-virtual3:compass": [13255.17],
+
+ "os-nosdn-nofeature-ha:intel-pod5:joid": [13189.64],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [12718.545],
+
+ "os-nosdn-nofeature-ha:huawei-virtual9:compass": [12559.445],
+
+ "os-nosdn-nofeature-noha:huawei-virtual8:compass": [12409.66],
+
+ "os-nosdn-kvm-noha:huawei-virtual8:compass": [8832.515],
+
+ "os-odl-sfc-ha:huawei-virtual8:compass": [8823.955],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [4398.08],
+
+ "os-nosdn-nofeature-ha:arm-pod5:fuel": [4375.75],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [4260.77],
+
+ "os-odl-nofeature-ha:arm-pod6:fuel": [4259.62]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc012_scenario.png
+ :width: 800px
+ :alt: TC012 influence of scenario
+
+{
+
+ "os-ovn-nofeature-noha": [22900.93],
+
+ "os-nosdn-bar-noha": [22721.83],
+
+ "os-nosdn-ovs-ha": [22063.67],
+
+ "os-odl-nofeature-ha": [17146.05],
+
+ "os-odl-nofeature-noha": [16017.41],
+
+ "os-nosdn-ovs-noha": [16005.74],
+
+ "os-nosdn-nofeature-noha": [15290.94],
+
+ "os-nosdn-nofeature-ha": [15038.74],
+
+ "os-nosdn-bar-ha": [14972.975],
+
+ "os-odl_l2-moon-ha": [14956.955],
+
+ "os-odl_l3-nofeature-ha": [14839.21],
+
+ "os-odl-sfc-ha": [14823.48],
+
+ "os-nosdn-ovs_dpdk-ha": [14822.17],
+
+ "os-nosdn-ovs_dpdk-noha": [14725.9],
+
+ "os-odl_l2-moon-noha": [14665.4],
+
+ "os-odl_l3-nofeature-noha": [14483.09],
+
+ "os-odl-sfc-noha": [14373.21],
+
+ "os-nosdn-openbaton-ha": [14135.325],
+
+ "os-nosdn-kvm-noha": [14020.26],
+
+ "os-nosdn-kvm-ha": [13996.02]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc012_pod.png
+ :width: 800px
+ :alt: TC012 influence of the POD
+
+{
+
+ "lf-pod1": [22912.39],
+
+ "lf-pod2": [22637.67],
+
+ "flex-pod2": [20229.99],
+
+ "ericsson-virtual1": [17474.965],
+
+ "ericsson-pod1": [17127.38],
+
+ "ericsson-virtual4": [16219.97],
+
+ "ericsson-virtual2": [15652.28],
+
+ "ericsson-virtual3": [15551.26],
+
+ "huawei-pod2": [15017.2],
+
+ "huawei-virtual4": [14266.34],
+
+ "huawei-virtual1": [14233.035],
+
+ "huawei-virtual3": [14227.63],
+
+ "huawei-pod12": [14147.245],
+
+ "intel-pod18": [14058.33],
+
+ "huawei-virtual2": [13862.85],
+
+ "intel-pod5": [13280.32],
+
+ "huawei-virtual9": [12559.445],
+
+ "huawei-virtual8": [8998.02],
+
+ "arm-pod5": [4388.875],
+
+ "arm-pod6": [4260.2]
+
+}
+
+
+Fraser release
+--------------
+
+Test results per scenario and pod (higher is better):
+
+{
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [21421.795],
+
+ "os-odl-sfc-noha:lf-pod1:apex": [21075],
+
+ "os-odl-sfc-ha:lf-pod1:apex": [21017.44],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [20991.46],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [20812.405],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [20694.035],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [20672.765],
+
+ "os-odl-nofeature-ha:lf-pod2:fuel": [20269.65],
+
+ "os-nosdn-calipso-noha:lf-pod1:apex": [20186.32],
+
+ "os-odl-nofeature-noha:lf-pod1:apex": [19959.915],
+
+ "os-nosdn-ovs-ha:lf-pod2:fuel": [19719.38],
+
+ "os-odl-nofeature-ha:lf-pod1:apex": [19654.505],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [19391.145],
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [19378.64],
+
+ "os-odl-nofeature-ha:ericsson-pod1:fuel": [19103.43],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [18688.695],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [18557.95],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [17088.61],
+
+ "os-nosdn-ovs-ha:ericsson-pod1:fuel": [17040.78],
+
+ "os-nosdn-ovs-noha:ericsson-virtual2:fuel": [16057.235],
+
+ "os-odl-nofeature-noha:ericsson-virtual4:fuel": [15622.355],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [15422.235],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [15403.09],
+
+ "os-odl-nofeature-noha:ericsson-virtual2:fuel": [15141.58],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [14922.37],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [14864.195],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [14856.295],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [14796.035],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [14484.375],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [14441.955],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [14373],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [14330.44],
+
+ "os-nosdn-ovs-noha:ericsson-virtual4:fuel": [14320.305],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [14253.715],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [14203.655],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [14179.93],
+
+ "os-odl-nofeature-ha:zte-pod2:daisy": [14177.135],
+
+ "os-nosdn-nofeature-ha:zte-pod2:daisy": [14150.825],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [14100.87],
+
+ "os-nosdn-bar-noha:huawei-virtual4:compass": [14033.36],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [13963.73],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [13874.775],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [13805.65],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [13754.63],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [13702.92],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [13638.115],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [13637.83],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [13635.66],
+
+ "os-nosdn-bar-noha:huawei-virtual3:compass": [13635.58],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [13544.95],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [13514.27],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [13496.45],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [13475.38],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [12733.19],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [12682.805],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [4326.11],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [3824.13],
+
+ "os-odl-nofeature-ha:arm-pod6:fuel": [3797.795],
+
+ "os-nosdn-ovs-ha:arm-pod6:fuel": [3749.91]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc012_scenario_fraser.png
+ :width: 800px
+ :alt: TC012 influence of scenario
+
+{
+
+ "os-ovn-nofeature-noha": [20694.035],
+
+ "os-nosdn-calipso-noha": [20186.32],
+
+ "os-nosdn-openbaton-ha": [18557.95],
+
+ "os-nosdn-ovs-ha": [17048.17],
+
+ "os-odl-nofeature-noha": [16191.125],
+
+ "os-nosdn-ovs-noha": [15790.32],
+
+ "os-nosdn-bar-ha": [14833.97],
+
+ "os-odl-sfc-ha": [14828.72],
+
+ "os-odl_l3-nofeature-ha": [14801.25],
+
+ "os-nosdn-kvm-ha": [14700.1],
+
+ "os-nosdn-nofeature-ha": [14610.48],
+
+ "os-nosdn-nofeature-noha": [14555.975],
+
+ "os-odl-sfc-noha": [14508.14],
+
+ "os-nosdn-bar-noha": [14395.22],
+
+ "os-odl-nofeature-ha": [14231.245],
+
+ "os-odl_l3-nofeature-noha": [14161.58],
+
+ "os-nosdn-kvm-noha": [13845.685]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc012_pod_fraser.png
+ :width: 800px
+ :alt: TC012 influence of the POD
+
+{
+
+ "lf-pod1": [20552.9],
+
+ "lf-pod2": [20058.925],
+
+ "ericsson-pod1": [18930.78],
+
+ "intel-pod18": [18757.545],
+
+ "ericsson-virtual4": [15389.465],
+
+ "ericsson-virtual2": [15343.79],
+
+ "huawei-pod2": [14870.78],
+
+ "zte-pod2": [14157.99],
+
+ "huawei-pod12": [14126.99],
+
+ "huawei-virtual3": [13929.67],
+
+ "huawei-virtual4": [13847.155],
+
+ "huawei-virtual2": [13702.92],
+
+ "huawei-virtual1": [13496.45],
+
+ "ericsson-virtual3": [12733.19],
+
+ "arm-pod5": [4326.11],
+
+ "arm-pod6": [3809.885]
+
+}
diff --git a/docs/release/results/tc014-cpu-processing-speed.rst b/docs/release/results/tc014-cpu-processing-speed.rst
new file mode 100644
index 000000000..a2eeb6302
--- /dev/null
+++ b/docs/release/results/tc014-cpu-processing-speed.rst
@@ -0,0 +1,512 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+
+===========================================
+Test results for TC014 cpu processing speed
+===========================================
+
+.. toctree::
+ :maxdepth: 2
+
+
+Overview of test case
+=====================
+
+TC014 measures score of single cpu running using UnixBench.
+
+Metric: score of single CPU running
+Unit: N/A
+
+
+Euphrates release
+-----------------
+
+Test results per scenario and pod (higher is better):
+
+{
+
+ "os-odl-sfc-noha:lf-pod1:apex": [3735.2],
+
+ "os-nosdn-ovs-ha:lf-pod2:fuel": [3725.5],
+
+ "os-odl-nofeature-ha:lf-pod2:fuel": [3711],
+
+ "os-odl-nofeature-ha:lf-pod1:apex": [3708.4],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [3705.7],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [3704],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [3703.2],
+
+ "os-odl-nofeature-noha:lf-pod1:apex": [3702.8],
+
+ "os-odl-sfc-ha:lf-pod1:apex": [3698.7],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [3654.8],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [3635.55],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [3633.2],
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [3450.3],
+
+ "os-nosdn-nofeature-noha:intel-pod5:joid": [3406.4],
+
+ "os-nosdn-nofeature-ha:intel-pod5:joid": [3360.4],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [3340.65],
+
+ "os-nosdn-nofeature-ha:flex-pod2:apex": [3208.6],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [3134.8],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [3056.2],
+
+ "os-nosdn-ovs-noha:ericsson-virtual1:fuel": [2988.9],
+
+ "os-nosdn-ovs-ha:ericsson-pod1:fuel": [2773.7],
+
+ "os-nosdn-ovs-noha:ericsson-virtual4:fuel": [2645.85],
+
+ "os-nosdn-ovs-noha:ericsson-virtual2:fuel": [2625.3],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual4:fuel": [2601.3],
+
+ "os-odl-nofeature-noha:ericsson-virtual4:fuel": [2590.4],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [2570.2],
+
+ "os-nosdn-ovs-noha:ericsson-virtual3:fuel": [2558.8],
+
+ "os-odl-nofeature-ha:ericsson-pod1:fuel": [2556.5],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [2554.6],
+
+ "os-odl-nofeature-noha:ericsson-virtual3:fuel": [2536.75],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-pod2:compass": [2533.55],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [2531.85],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [2531.7],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [2531.2],
+
+ "os-odl_l2-moon-ha:huawei-pod2:compass": [2531],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [2529.6],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [2520.5],
+
+ "os-odl-nofeature-noha:ericsson-virtual2:fuel": [2481.15],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual4:compass": [2474],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual3:compass": [2472.6],
+
+ "os-odl_l2-moon-noha:huawei-virtual4:compass": [2471],
+
+ "os-odl_l2-moon-noha:huawei-virtual3:compass": [2470.6],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [2464.15],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [2455.9],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [2455.3],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [2446.85],
+
+ "os-odl_l2-moon-ha:huawei-virtual3:compass": [2444.75],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [2430.9],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [2421.3],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual4:compass": [2415.7],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [2399.4],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [2391.85],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [2391.45],
+
+ "os-nosdn-nofeature-noha:huawei-virtual1:compass": [2380.7],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [2379.6],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual3:compass": [2371.9],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [2364.6],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [2363.4],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [2362],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [2358.5],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [2358.45],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual2:compass": [2336],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [2326.6],
+
+ "os-nosdn-nofeature-ha:huawei-virtual9:compass": [2324.95],
+
+ "os-nosdn-nofeature-noha:huawei-virtual8:compass": [2320.2],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [2318.5],
+
+ "os-odl_l2-moon-ha:huawei-virtual4:compass": [2312.8],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [2311.7],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [2301.15],
+
+ "os-nosdn-nofeature-ha:huawei-virtual2:compass": [2297.7],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [2232.8],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [2232.1],
+
+ "os-nosdn-openbaton-ha:huawei-pod12:joid": [2230],
+
+ "os-nosdn-kvm-ha:huawei-virtual3:compass": [2154],
+
+ "os-odl-sfc-ha:huawei-virtual8:compass": [2150.1],
+
+ "os-nosdn-kvm-noha:huawei-virtual8:compass": [2004.3],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [1754.5],
+
+ "os-nosdn-nofeature-ha:arm-pod5:fuel": [1754.15],
+
+ "os-odl-nofeature-ha:arm-pod6:fuel": [716.15],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [716.05]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc014_scenario.png
+ :width: 800px
+ :alt: TC014 influence of scenario
+
+{
+
+ "os-nosdn-ovs-ha": [3725.5],
+
+ "os-ovn-nofeature-noha": [3654.8],
+
+ "os-nosdn-bar-noha": [3633.2],
+
+ "os-odl-nofeature-ha": [3407.8],
+
+ "os-nosdn-ovs-noha": [2583.2],
+
+ "os-odl-nofeature-noha": [2578.9],
+
+ "os-nosdn-nofeature-noha": [2553.2],
+
+ "os-nosdn-nofeature-ha": [2532.8],
+
+ "os-odl_l2-moon-ha": [2530.5],
+
+ "os-nosdn-bar-ha": [2527],
+
+ "os-odl_l3-nofeature-ha": [2501.5],
+
+ "os-nosdn-ovs_dpdk-noha": [2473.65],
+
+ "os-odl-sfc-ha": [2472.9],
+
+ "os-odl_l2-moon-noha": [2470.8],
+
+ "os-nosdn-ovs_dpdk-ha": [2461.9],
+
+ "os-odl_l3-nofeature-noha": [2442.8],
+
+ "os-nosdn-kvm-noha": [2392.9],
+
+ "os-odl-sfc-noha": [2370.5],
+
+ "os-nosdn-kvm-ha": [2358.5],
+
+ "os-nosdn-openbaton-ha": [2231.8]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc014_pod.png
+ :width: 800px
+ :alt: TC014 influence of the POD
+
+{
+
+ "lf-pod2": [3723.95],
+
+ "lf-pod1": [3669],
+
+ "intel-pod5": [3388.6],
+
+ "intel-pod18": [3298.4],
+
+ "flex-pod2": [3208.6],
+
+ "ericsson-virtual1": [2988.9],
+
+ "ericsson-pod1": [2669.1],
+
+ "ericsson-virtual4": [2598.5],
+
+ "ericsson-virtual3": [2553.15],
+
+ "huawei-pod2": [2531.2],
+
+ "ericsson-virtual2": [2526.9],
+
+ "huawei-virtual4": [2407.4],
+
+ "huawei-virtual3": [2374.6],
+
+ "huawei-virtual2": [2326.4],
+
+ "huawei-virtual9": [2324.95],
+
+ "huawei-virtual1": [2302.6],
+
+ "huawei-pod12": [2232.2],
+
+ "huawei-virtual8": [2085.3],
+
+ "arm-pod5": [1754.4],
+
+ "arm-pod6": [716.15]
+
+}
+
+
+Fraser release
+--------------
+
+Test results per scenario and pod (higher is better):
+
+{
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [3747.3],
+
+ "os-nosdn-calipso-noha:lf-pod1:apex": [3727.2],
+
+ "os-odl-nofeature-ha:lf-pod1:apex": [3726.5],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [3723.8],
+
+ "os-odl-nofeature-noha:lf-pod1:apex": [3718.9],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [3717.75],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [3706.5],
+
+ "os-odl-nofeature-ha:lf-pod2:fuel": [3704.9],
+
+ "os-nosdn-ovs-ha:lf-pod2:fuel": [3687.7],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [3635.4],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [3632.55],
+
+ "os-odl-sfc-noha:lf-pod1:apex": [3569],
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [3432.1],
+
+ "os-odl-nofeature-ha:ericsson-pod1:fuel": [3133.85],
+
+ "os-nosdn-ovs-ha:ericsson-pod1:fuel": [3079.8],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [3074.75],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [2976.2],
+
+ "os-nosdn-nofeature-ha:zte-pod2:daisy": [2910.95],
+
+ "os-odl-nofeature-ha:zte-pod2:daisy": [2801.1],
+
+ "os-nosdn-ovs-noha:ericsson-virtual2:fuel": [2603],
+
+ "os-odl-nofeature-noha:ericsson-virtual2:fuel": [2559.7],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [2539.1],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [2530.5],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [2529.4],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [2528.9],
+
+ "os-odl-nofeature-noha:ericsson-virtual4:fuel": [2527.8],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [2527.4],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [2517.8],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [2472.4],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [2469.1],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [2452.05],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [2438.7],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [2418.4],
+
+ "os-nosdn-ovs-noha:ericsson-virtual4:fuel": [2404.35],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [2391],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [2376.75],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [2376.2],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [2359.45],
+
+ "os-nosdn-bar-noha:huawei-virtual4:compass": [2353.3],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [2351.9],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [2339.4],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [2335.6],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [2328],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [2324.5],
+
+ "os-nosdn-bar-noha:huawei-virtual3:compass": [2317.3],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [2313.95],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [2308.1],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [2299.3],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [2250.4],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [2229.7],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [2228.8],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [2171.3],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [2104.8],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [1961.35],
+
+ "os-nosdn-ovs-ha:arm-pod5:fuel": [1764.2],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [1730.95],
+
+ "os-nosdn-ovs-ha:arm-pod6:fuel": [715.55],
+
+ "os-odl-nofeature-ha:arm-pod6:fuel": [715.4],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [715.25]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc014_scenario_fraser.png
+ :width: 800px
+ :alt: TC014 influence of scenario
+
+{
+
+ "os-nosdn-calipso-noha": [3727.2],
+
+ "os-ovn-nofeature-noha": [3723.8],
+
+ "os-odl-nofeature-noha": [3128.05],
+
+ "os-nosdn-openbaton-ha": [2976.2],
+
+ "os-nosdn-ovs-ha": [2814.5],
+
+ "os-odl-nofeature-ha": [2801.4],
+
+ "os-nosdn-nofeature-ha": [2649.7],
+
+ "os-nosdn-ovs-noha": [2587.3],
+
+ "os-odl_l3-nofeature-ha": [2528.45],
+
+ "os-odl-sfc-ha": [2527.6],
+
+ "os-nosdn-bar-ha": [2526.55],
+
+ "os-nosdn-kvm-ha": [2516.95],
+
+ "os-odl-sfc-noha": [2453.65],
+
+ "os-nosdn-bar-noha": [2447.7],
+
+ "os-nosdn-nofeature-noha": [2443.85],
+
+ "os-odl_l3-nofeature-noha": [2394.3],
+
+ "os-nosdn-kvm-noha": [2379.7]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc014_pod_fraser.png
+ :width: 800px
+ :alt: TC014 influence of the POD
+
+{
+
+ "lf-pod2": [3737.6],
+
+ "lf-pod1": [3702.7],
+
+ "ericsson-pod1": [3131.6],
+
+ "intel-pod18": [3098.1],
+
+ "zte-pod2": [2831.4],
+
+ "ericsson-virtual2": [2559.7],
+
+ "huawei-pod2": [2528.9],
+
+ "ericsson-virtual4": [2527.8],
+
+ "huawei-virtual3": [2379.1],
+
+ "huawei-virtual4": [2362.1],
+
+ "huawei-virtual2": [2299.3],
+
+ "huawei-pod12": [2229],
+
+ "huawei-virtual1": [2171.3],
+
+ "ericsson-virtual3": [2104.8],
+
+ "arm-pod5": [1764.2],
+
+ "arm-pod6": [715.4]
+
+}
diff --git a/docs/release/results/tc069-memory-write-bandwidth.rst b/docs/release/results/tc069-memory-write-bandwidth.rst
new file mode 100644
index 000000000..4cd3be3b0
--- /dev/null
+++ b/docs/release/results/tc069-memory-write-bandwidth.rst
@@ -0,0 +1,516 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+
+=============================================
+Test results for TC069 memory write bandwidth
+=============================================
+
+.. toctree::
+ :maxdepth: 2
+
+
+Overview of test case
+=====================
+
+TC069 measures the maximum possible cache and memory performance while reading and writing certain
+blocks of data (starting from 1Kb and further in power of 2) continuously through ALU and FPU
+respectively. Measure different aspects of memory performance via synthetic simulations.
+Each simulation consists of four performances (Copy, Scale, Add, Triad).
+The test results shown below are for writing 32MB integer block size.
+
+Metric: memory write bandwidth
+Unit: MBps
+
+
+Euphrates release
+-----------------
+
+Test results per scenario and pod (higher is better):
+
+{
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [20113.395],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [19183.58],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [17851.35],
+
+ "os-nosdn-nofeature-noha:intel-pod5:joid": [16312.37],
+
+ "os-nosdn-nofeature-ha:intel-pod5:joid": [15633.245],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [13332.065],
+
+ "os-odl-nofeature-ha:arm-pod6:fuel": [13327.02],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [9462.74],
+
+ "os-nosdn-nofeature-ha:flex-pod2:apex": [9384.585],
+
+ "os-odl-nofeature-ha:ericsson-pod1:fuel": [9235.98],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [9213.6],
+
+ "os-nosdn-openbaton-ha:huawei-pod12:joid": [9152.18],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [9079.45],
+
+ "os-odl_l2-moon-ha:huawei-pod2:compass": [9071.13],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [9068.06],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [9031.24],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [9019.53],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [8977.3],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-pod2:compass": [8960.635],
+
+ "os-nosdn-nofeature-ha:huawei-virtual9:compass": [8825.805],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [8282.75],
+
+ "os-odl_l2-moon-noha:huawei-virtual4:compass": [8116.33],
+
+ "os-nosdn-ovs-noha:ericsson-virtual4:fuel": [8083.97],
+
+ "os-odl_l2-moon-noha:huawei-virtual3:compass": [8083.52],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [7799.145],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [7776.12],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual3:compass": [7680.37],
+
+ "os-nosdn-ovs-noha:ericsson-virtual1:fuel": [7615.97],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual4:fuel": [7612.62],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [7518.62],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [7489.67],
+
+ "os-nosdn-ovs-noha:ericsson-virtual2:fuel": [7478.57],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual4:compass": [7465.82],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [7443.16],
+
+ "os-odl-nofeature-noha:ericsson-virtual4:fuel": [7442.855],
+
+ "os-nosdn-nofeature-ha:arm-pod5:fuel": [7440.65],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [7401.16],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [7389.505],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [7385.76],
+
+ "os-nosdn-nofeature-noha:huawei-virtual1:compass": [7382.345],
+
+ "os-odl_l2-moon-ha:huawei-virtual3:compass": [7286.385],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [7272.06],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [7261.73],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [7253.64],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [7247.89],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual2:compass": [7214.01],
+
+ "os-nosdn-ovs_dpdk-ha:huawei-virtual3:compass": [7207.39],
+
+ "os-nosdn-ovs_dpdk-noha:huawei-virtual4:compass": [7205.565],
+
+ "os-nosdn-ovs-noha:ericsson-virtual3:fuel": [7201.005],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [7132.835],
+
+ "os-odl-nofeature-noha:ericsson-virtual3:fuel": [7117.05],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [7064.18],
+
+ "os-odl_l2-moon-ha:huawei-virtual4:compass": [6997.295],
+
+ "os-odl-nofeature-ha:lf-pod1:apex": [6992.21],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [6975.63],
+
+ "os-odl-nofeature-noha:lf-pod1:apex": [6972.63],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [6955],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [6954.5],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [6953.35],
+
+ "os-odl-sfc-noha:lf-pod1:apex": [6951.89],
+
+ "os-nosdn-nofeature-ha:huawei-virtual2:compass": [6932.29],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [6929.54],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [6921.6],
+
+ "os-nosdn-ovs-ha:lf-pod2:fuel": [6913.355],
+
+ "os-odl-nofeature-ha:lf-pod2:fuel": [6848.58],
+
+ "os-odl-sfc-ha:lf-pod1:apex": [6818.74],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [6812.16],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [6808.18],
+
+ "os-odl-nofeature-noha:ericsson-virtual2:fuel": [6807.565],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [6774.76],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [6759.4],
+
+ "os-nosdn-nofeature-noha:huawei-virtual8:compass": [6756.9],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [6543.46],
+
+ "os-nosdn-kvm-ha:huawei-virtual3:compass": [6504.34],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [6481.005],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [6461.5],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [6152.375],
+
+ "os-odl-sfc-ha:huawei-virtual8:compass": [5941.7],
+
+ "os-nosdn-kvm-noha:huawei-virtual8:compass": [4564.515]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc069_scenario.png
+ :width: 800px
+ :alt: TC069 influence of scenario
+
+{
+
+ "os-nosdn-openbaton-ha": [9187.16],
+
+ "os-odl_l2-moon-ha": [9010.57],
+
+ "os-nosdn-nofeature-ha": [8886.75],
+
+ "os-odl_l3-nofeature-ha": [8779.67],
+
+ "os-odl_l2-moon-noha": [8114.995],
+
+ "os-nosdn-ovs_dpdk-ha": [7864.07],
+
+ "os-odl_l3-nofeature-noha": [7632.11],
+
+ "os-odl-sfc-ha": [7624.67],
+
+ "os-nosdn-nofeature-noha": [7470.66],
+
+ "os-odl-nofeature-ha": [7372.23],
+
+ "os-nosdn-ovs_dpdk-noha": [7311.54],
+
+ "os-odl-sfc-noha": [7300.56],
+
+ "os-nosdn-ovs-noha": [7280.005],
+
+ "os-odl-nofeature-noha": [7162.67],
+
+ "os-nosdn-kvm-ha": [7130.775],
+
+ "os-nosdn-kvm-noha": [7041.13],
+
+ "os-ovn-nofeature-noha": [6954.5],
+
+ "os-nosdn-ovs-ha": [6913.355],
+
+ "os-nosdn-bar-ha": [6829.17],
+
+ "os-nosdn-bar-noha": [6812.16]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc069_pod.png
+ :width: 800px
+ :alt: TC069 influence of the POD
+
+{
+
+ "intel-pod18": [18871.79],
+
+ "intel-pod5": [16055.79],
+
+ "arm-pod6": [13327.02],
+
+ "flex-pod2": [9384.585],
+
+ "ericsson-pod1": [9331.535],
+
+ "huawei-pod12": [9164.88],
+
+ "huawei-pod2": [9026.52],
+
+ "huawei-virtual9": [8825.805],
+
+ "ericsson-virtual1": [7615.97],
+
+ "ericsson-virtual4": [7539.23],
+
+ "arm-pod5": [7403.38],
+
+ "huawei-virtual3": [7247.89],
+
+ "huawei-virtual2": [7205.35],
+
+ "huawei-virtual1": [7196.405],
+
+ "ericsson-virtual3": [7173.72],
+
+ "huawei-virtual4": [7131.47],
+
+ "ericsson-virtual2": [7129.08],
+
+ "lf-pod1": [6928.18],
+
+ "lf-pod2": [6875.88],
+
+ "huawei-virtual8": [5729.705]
+
+}
+
+
+Fraser release
+--------------
+
+Test results per scenario and pod (higher is better):
+
+{
+
+ "os-nosdn-nofeature-noha:intel-pod18:joid": [18382.49],
+
+ "os-nosdn-openbaton-ha:intel-pod18:joid": [16774.52],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [16680.305],
+
+ "os-nosdn-ovs-ha:arm-pod6:fuel": [11925.22],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [11895.71],
+
+ "os-odl-nofeature-ha:arm-pod6:fuel": [11880.7],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [9471.095],
+
+ "os-odl-nofeature-ha:zte-pod2:daisy": [9375.33],
+
+ "os-nosdn-nofeature-ha:zte-pod2:daisy": [9372.95],
+
+ "os-odl-nofeature-ha:ericsson-pod1:fuel": [9174.36],
+
+ "os-nosdn-nofeature-noha:huawei-pod12:joid": [9051.57],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [8894.74],
+
+ "os-odl_l3-nofeature-ha:huawei-pod2:compass": [8857.23],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [8855.8],
+
+ "os-nosdn-bar-ha:huawei-pod2:compass": [8840.94],
+
+ "os-odl-sfc-ha:huawei-pod2:compass": [8826.23],
+
+ "os-nosdn-nofeature-noha:huawei-virtual4:compass": [8039.48],
+
+ "os-nosdn-nofeature-noha:huawei-virtual2:compass": [7670.21],
+
+ "os-nosdn-ovs-ha:arm-pod5:fuel": [7590.9],
+
+ "os-odl-sfc-noha:huawei-virtual4:compass": [7579.625],
+
+ "os-nosdn-bar-noha:huawei-virtual3:compass": [7511.775],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [7475.16],
+
+ "os-nosdn-bar-noha:huawei-virtual4:compass": [7435.08],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual2:fuel": [7426.79],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [7362.8],
+
+ "os-nosdn-kvm-noha:huawei-virtual4:compass": [7263.45],
+
+ "os-nosdn-nofeature-noha:huawei-virtual3:compass": [7262.72],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual3:compass": [7241.07],
+
+ "os-odl-nofeature-noha:ericsson-virtual2:fuel": [7219.21],
+
+ "os-nosdn-kvm-noha:huawei-virtual3:compass": [7174.33],
+
+ "os-odl-sfc-noha:huawei-virtual3:compass": [7170.795],
+
+ "os-odl-nofeature-noha:lf-pod1:apex": [7158.335],
+
+ "os-nosdn-kvm-ha:huawei-pod2:compass": [7122.45],
+
+ "os-odl-sfc-ha:huawei-virtual4:compass": [7104.9],
+
+ "os-nosdn-ovs-noha:ericsson-virtual2:fuel": [7044.37],
+
+ "os-nosdn-bar-ha:huawei-virtual3:compass": [7011.075],
+
+ "os-nosdn-ovs-ha:ericsson-pod1:fuel": [6950.28],
+
+ "os-nosdn-ovs-noha:ericsson-virtual4:fuel": [6918.31],
+
+ "os-nosdn-bar-ha:huawei-virtual4:compass": [6903.11],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [6880.98],
+
+ "os-odl-sfc-ha:lf-pod1:apex": [6863.39],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual3:compass": [6851.54],
+
+ "os-nosdn-nofeature-noha:lf-pod1:apex": [6834.75],
+
+ "os-nosdn-calipso-noha:lf-pod1:apex": [6833.92],
+
+ "os-nosdn-ovs-ha:lf-pod2:fuel": [6814.68],
+
+ "os-ovn-nofeature-noha:lf-pod1:apex": [6809.44],
+
+ "os-odl_l3-nofeature-ha:huawei-virtual4:compass": [6784.48],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [6737.64],
+
+ "os-nosdn-bar-noha:lf-pod1:apex": [6708.61],
+
+ "os-nosdn-bar-ha:lf-pod1:apex": [6697.2],
+
+ "os-odl-nofeature-ha:lf-pod1:apex": [6626.51],
+
+ "os-odl-sfc-noha:lf-pod1:apex": [6609.57],
+
+ "os-odl-sfc-ha:huawei-virtual3:compass": [6606.87],
+
+ "os-odl_l3-nofeature-noha:huawei-virtual4:compass": [6547.39],
+
+ "os-odl-nofeature-ha:lf-pod2:fuel": [6465.48],
+
+ "os-odl-nofeature-noha:ericsson-virtual4:fuel": [6413],
+
+ "os-nosdn-kvm-ha:huawei-virtual4:compass": [6409.075],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [6128.79],
+
+ "os-nosdn-nofeature-noha:ericsson-virtual3:fuel": [5835.59],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [5617.12]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc069_scenario_fraser.png
+ :width: 800px
+ :alt: TC069 influence of scenario
+
+{
+
+ "os-nosdn-openbaton-ha": [16774.52],
+
+ "os-odl-nofeature-ha": [9363.69],
+
+ "os-nosdn-nofeature-ha": [8878.01],
+
+ "os-odl_l3-nofeature-ha": [8748.4],
+
+ "os-odl-sfc-ha": [8708.045],
+
+ "os-nosdn-nofeature-noha": [7426.79],
+
+ "os-nosdn-kvm-noha": [7230.79],
+
+ "os-odl-sfc-noha": [7224.11],
+
+ "os-odl-nofeature-noha": [7187.84],
+
+ "os-nosdn-ovs-noha": [7044.37],
+
+ "os-nosdn-bar-ha": [6947.87],
+
+ "os-odl_l3-nofeature-noha": [6895.96],
+
+ "os-nosdn-kvm-ha": [6890.92],
+
+ "os-nosdn-calipso-noha": [6833.92],
+
+ "os-nosdn-ovs-ha": [6833.495],
+
+ "os-nosdn-bar-noha": [6811.66],
+
+ "os-ovn-nofeature-noha": [6809.44]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc069_pod_fraser.png
+ :width: 800px
+ :alt: TC069 influence of the POD
+
+{
+
+ "intel-pod18": [16939.24],
+
+ "arm-pod6": [11895.71],
+
+ "zte-pod2": [9375.33],
+
+ "ericsson-pod1": [9140.42],
+
+ "huawei-pod12": [8993.37],
+
+ "huawei-pod2": [8794.01],
+
+ "huawei-virtual2": [7670.21],
+
+ "arm-pod5": [7479.32],
+
+ "ericsson-virtual2": [7219.21],
+
+ "huawei-virtual4": [7059.045],
+
+ "huawei-virtual3": [7023.57],
+
+ "lf-pod2": [6834.7],
+
+ "lf-pod1": [6775.27],
+
+ "ericsson-virtual4": [6522.86],
+
+ "ericsson-virtual3": [5835.59],
+
+ "huawei-virtual1": [5617.12]
+
+}
diff --git a/docs/release/results/tc082-context-switches-under-load.rst b/docs/release/results/tc082-context-switches-under-load.rst
new file mode 100644
index 000000000..92bc69907
--- /dev/null
+++ b/docs/release/results/tc082-context-switches-under-load.rst
@@ -0,0 +1,187 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+
+==================================================
+Test results for TC082 context switches under load
+==================================================
+
+.. toctree::
+ :maxdepth: 2
+
+
+Overview of test case
+=====================
+
+TC082 measures various software performance events using perf.
+The test results shown below are for context-switches.
+
+Metric: context switches
+Unit: N/A
+
+
+Euphrates release
+-----------------
+
+Test results per scenario and pod (lower is better):
+
+{
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [316],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [340],
+
+ "os-nosdn-nofeature-ha:intel-pod5:joid": [357.5],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [384],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [394.5],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [435],
+
+ "os-nosdn-nofeature-ha:flex-pod2:apex": [476],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [518],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [863],
+
+ "os-nosdn-nofeature-ha:arm-pod5:fuel": [871],
+
+ "os-nosdn-nofeature-ha:huawei-virtual9:compass": [1002],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [1174],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [1239],
+
+ "os-nosdn-nofeature-ha:huawei-virtual2:compass": [1430],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [1489],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [1883.5]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc082_scenario.png
+ :width: 800px
+ :alt: TC082 influence of scenario
+
+{
+
+ "os-nosdn-nofeature-ha": [505],
+
+ "os-odl-nofeature-ha": [863]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc082_pod.png
+ :width: 800px
+ :alt: TC082 influence of the POD
+
+{
+
+ "huawei-pod12": [316],
+
+ "intel-pod18": [340],
+
+ "intel-pod5": [357.5],
+
+ "ericsson-pod1": [384],
+
+ "lf-pod2": [394.5],
+
+ "lf-pod1": [435],
+
+ "flex-pod2": [476],
+
+ "huawei-pod2": [518],
+
+ "arm-pod5": [869.5],
+
+ "huawei-virtual9": [1002],
+
+ "huawei-virtual4": [1174],
+
+ "huawei-virtual3": [1239],
+
+ "huawei-virtual2": [1430],
+
+ "huawei-virtual1": [1489],
+
+ "arm-pod6": [1883.5]
+
+}
+
+
+Fraser release
+--------------
+
+Test results per scenario and pod (lower is better):
+
+{
+
+ "os-nosdn-nofeature-ha:zte-pod2:daisy": [306.5],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [337.5],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [343.5],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [399],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [454],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [544.5],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [1138],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [1305],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [1433],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [1470],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [1738.5]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc082_pod_fraser.png
+ :width: 800px
+ :alt: TC082 influence of the POD
+
+{
+
+ "zte-pod2": [306.5],
+
+ "lf-pod2": [337.5],
+
+ "intel-pod18": [343.5],
+
+ "huawei-pod12": [399],
+
+ "lf-pod1": [454],
+
+ "huawei-pod2": [544.5],
+
+ "huawei-virtual4": [1138],
+
+ "ericsson-pod1": [1305],
+
+ "huawei-virtual3": [1433],
+
+ "huawei-virtual1": [1470],
+
+ "arm-pod6": [1738.5]
+
+}
diff --git a/docs/release/results/tc083-network-throughput-between-vm.rst b/docs/release/results/tc083-network-throughput-between-vm.rst
new file mode 100644
index 000000000..0389eaafe
--- /dev/null
+++ b/docs/release/results/tc083-network-throughput-between-vm.rst
@@ -0,0 +1,187 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+
+=====================================================
+Test results for TC083 network throughput between VMs
+=====================================================
+
+.. toctree::
+ :maxdepth: 2
+
+
+Overview of test case
+=====================
+
+TC083 measures network latency and throughput between VMs using netperf.
+The test results shown below are for UDP throughout.
+
+Metric: UDP stream throughput
+Unit: 10^6bits/s
+
+
+Euphrates release
+-----------------
+
+Test results per scenario and pod (higher is better):
+
+{
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [2204.42],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [1835.55],
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [1676.705],
+
+ "os-nosdn-nofeature-ha:intel-pod5:joid": [1612.555],
+
+ "os-nosdn-nofeature-ha:flex-pod2:apex": [1370.23],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [1300.12],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [1070.455],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [1004.32],
+
+ "os-nosdn-nofeature-ha:huawei-virtual9:compass": [753.46],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [735.07],
+
+ "os-odl-nofeature-ha:arm-pod5:fuel": [531.63],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [493.985],
+
+ "os-nosdn-nofeature-ha:arm-pod5:fuel": [448.82],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [193.43],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [189.99],
+
+ "os-nosdn-nofeature-ha:huawei-virtual2:compass": [80.15]
+
+}
+
+
+The influence of the scenario
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc083_scenario.png
+ :width: 800px
+ :alt: TC083 influence of scenario
+
+{
+
+ "os-nosdn-nofeature-ha": [1109.12],
+
+ "os-odl-nofeature-ha": [531.63]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc083_pod.png
+ :width: 800px
+ :alt: TC083 influence of the POD
+
+{
+
+ "lf-pod1": [2204.42],
+
+ "intel-pod18": [1835.55],
+
+ "lf-pod2": [1676.705],
+
+ "intel-pod5": [1612.555],
+
+ "flex-pod2": [1370.23],
+
+ "huawei-pod12": [1300.12],
+
+ "huawei-pod2": [1070.455],
+
+ "ericsson-pod1": [1004.32],
+
+ "huawei-virtual9": [753.46],
+
+ "huawei-virtual4": [735.07],
+
+ "huawei-virtual3": [493.985],
+
+ "arm-pod5": [451.38],
+
+ "arm-pod6": [193.43],
+
+ "huawei-virtual1": [189.99],
+
+ "huawei-virtual2": [80.15]
+
+}
+
+
+Fraser release
+--------------
+
+Test results per scenario and pod (higher is better):
+
+{
+
+ "os-nosdn-nofeature-ha:lf-pod2:fuel": [1893.39],
+
+ "os-nosdn-nofeature-ha:zte-pod2:daisy": [1543.995],
+
+ "os-nosdn-nofeature-ha:lf-pod1:apex": [1480.86],
+
+ "os-nosdn-nofeature-ha:intel-pod18:joid": [1417.015],
+
+ "os-nosdn-nofeature-ha:huawei-pod12:joid": [1028.55],
+
+ "os-nosdn-nofeature-ha:huawei-pod2:compass": [1007.65],
+
+ "os-nosdn-nofeature-ha:ericsson-pod1:fuel": [811.795],
+
+ "os-nosdn-nofeature-ha:huawei-virtual4:compass": [552.95],
+
+ "os-nosdn-nofeature-ha:arm-pod6:fuel": [227.655],
+
+ "os-nosdn-nofeature-ha:huawei-virtual1:compass": [216.63],
+
+ "os-nosdn-nofeature-ha:huawei-virtual3:compass": [59.255]
+
+}
+
+
+The influence of the POD
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. image:: images/tc083_pod_fraser.png
+ :width: 800px
+ :alt: TC083 influence of the POD
+
+{
+
+ "lf-pod2": [1893.39],
+
+ "zte-pod2": [1543.995],
+
+ "lf-pod1": [1480.86],
+
+ "intel-pod18": [1417.015],
+
+ "huawei-pod12": [1028.55],
+
+ "huawei-pod2": [1007.65],
+
+ "ericsson-pod1": [811.795],
+
+ "huawei-virtual4": [552.95],
+
+ "arm-pod6": [227.655],
+
+ "huawei-virtual1": [216.63],
+
+ "huawei-virtual3": [59.255]
+
+}
diff --git a/docs/release/results/yardstick-opnfv-vtc.rst b/docs/release/results/yardstick-opnfv-vtc.rst
deleted file mode 100644
index 059b5491f..000000000
--- a/docs/release/results/yardstick-opnfv-vtc.rst
+++ /dev/null
@@ -1,248 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-
-.. _Dashboard006: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-tc006
-.. _Dashboard007: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-tc007
-.. _Dashboard020: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-tc020
-.. _Dashboard021: http://testresults.opnfv.org/grafana/dashboard/db/yardstick-tc021
-.. _DashboardVTC: http://testresults.opnfv.org/grafana/dashboard/db/vtc-dashboard
-====================================
-Test Results for yardstick-opnfv-vtc
-====================================
-
-.. toctree::
- :maxdepth: 2
-
-
-Details
-=======
-
-.. after this doc is filled, remove all comments and include the scenario in
-.. results.rst by removing the comment on the file name.
-
-
-Overview of test results
-------------------------
-
-.. general on metrics collected, number of iterations
-
-The virtual Traffic Classifier (vtc) Scenario supported by Yardstick is used by 4 Test Cases:
-
-- TC006
-- TC007
-- TC020
-- TC021
-
-
-* TC006
-
-TC006 is the Virtual Traffic Classifier Data Plane Throughput Benchmarking Test.
-It collects measures about the end-to-end throughput supported by the
-virtual Traffic Classifier (vTC).
-Results of the test are shown in the Dashboard006_
-The throughput is expressed as percentage of the available bandwidth on the NIC.
-
-
-* TC007
-
-TC007 is the Virtual Traffic Classifier Data Plane Throughput Benchmarking in presence of
-noisy neighbors Test.
-It collects measures about the end-to-end throughput supported by the
-virtual Traffic Classifier when a user-defined number of noisy neighbors is deployed.
-Results of the test are shown in the Dashboard007_
-The throughput is expressed as percentage of the available bandwidth on the NIC.
-
-
-* TC020
-
-TC020 is the Virtual Traffic Classifier Instantiation Test.
-It verifies that a newly instantiated vTC is alive and functional and its instantiation
-is correctly supported by the underlying infrastructure.
-Results of the test are shown in the Dashboard020_
-
-
-* TC021
-
-TC021 is the Virtual Traffic Classifier Instantiation in presence of noisy neighbors Test.
-It verifies that a newly instantiated vTC is alive and functional and its instantiation
-is correctly supported by the underlying infrastructure when noisy neighbors are present.
-Results of the test are shown in the Dashboard021_
-
-* Generic
-
-In the Generic scenario the Virtual Traffic Classifier is running on a standard Openstack
-setup and traffic is being replayed from a neighbor VM. The traffic sent contains
-various protocols and applications, and the VTC identifies them and exports the data.
-Results of the test are shown in the DashboardVTC.
-
-Detailed test results
----------------------
-
-* TC006
-
-The results for TC006 have been obtained using the following test case
-configuration:
-
-- Context: Dummy
-- Scenario: vtc_throughput
-- Network Techology: SR-IOV
-- vTC Flavor: m1.large
-
-
-* TC007
-
-The results for TC007 have been obtained using the following test case
-configuration:
-
-- Context: Dummy
-- Scenario: vtc_throughput_noisy
-- Network Techology: SR-IOV
-- vTC Flavor: m1.large
-- Number of noisy neighbors: 2
-- Number of cores per neighbor: 2
-- Amount of RAM per neighbor: 1G
-
-
-* TC020
-
-The results for TC020 have been obtained using the following test case
-configuration:
-
-The results listed in previous section have been obtained using the following
-test case configuration:
-
-- Context: Dummy
-- Scenario: vtc_instantiation_validation
-- Network Techology: SR-IOV
-- vTC Flavor: m1.large
-
-
-* TC021
-
-The results listed in previous section have been obtained using the following
-test case configuration:
-
-- Context: Dummy
-- Scenario: vtc_instantiation_validation
-- Network Techology: SR-IOV
-- vTC Flavor: m1.large
-- Number of noisy neighbors: 2
-- Number of cores per neighbor: 2
-- Amount of RAM per neighbor: 1G
-
-
-For all the test cases, the user can specify different values for the parameters.
-
-* Generic
-
-The results listed in the previous section have been obtained, using a
-standard Openstack setup.
-The user can replay his/her own traffic and see the corresponding results.
-
-Rationale for decisions
------------------------
-
-* TC006
-
-The result of the test is a number between 0 and 100 which represents the percentage of bandwidth
-available on the NIC that corresponds to the supported throughput by the vTC.
-
-
-* TC007
-
-The result of the test is a number between 0 and 100 which represents the percentage of bandwidth
-available on the NIC that corresponds to the supported throughput by the vTC.
-
-* TC020
-
-The execution of the test is done as described in the following:
-
-- The vTC is deployed on the OpenStack testbed;
-- Some traffic is sent to the vTC;
-- The vTC changes the header of the packets and sends them back to the packet generator;
-- The packet generator checks that all the packets are received correctly and have been changed
-correctly by the vTC.
-
-The test is declared as PASSED if all the packets are correcly received by the packet generator
-and they have been modified by the virtual Traffic Classifier as required.
-
-
-* TC021
-
-The execution of the test is done as described in the following:
-
-- The vTC is deployed on the OpenStack testbed;
-- The noisy neighbors are deployed as requested by the user;
-- Some traffic is sent to the vTC;
-- The vTC change the header of the packets and sends them back to the packet generator;
-- The packet generator checks that all the packets are received correctly and have been changed
-correctly by the vTC
-
-The test is declared as PASSED if all the packets are correcly received by the packet generator
-and they have been modified by the virtual Traffic Classifier as required.
-
-* Generic
-
-The execution of the test consists of the following actions:
-
-- The vTC is deployed on the OpenStack testbed;
-- The traffic generator VM is deployed on the Openstack Testbed;
-- Traffic data are relevant to the network setup;
-- Traffic is sent to the vTC;
-
-
-
-Conclusions and recommendations
--------------------------------
-
-* TC006
-
-The obtained results show that the virtual Traffic Classifier can support up to 4 Gbps
-(40% of the available bandwidth) correspond to the expected behaviour of the virtual
-Traffic Classifier.
-Using the configuration with SR-IOV and large flavor, the expected throughput should
-generally be in the range between 3 and 4 Gbps.
-
-
-* TC007
-
-These results correspond to the configuration in which the virtual Traffic Classifier uses SR-IOV
-Virtual Functions and the flavor is set to large for the virtual machine.
-The throughput is in the range between 2.5 Gbps and 3.7 Gbps.
-This shows that the effect of 2 noisy neighbors reduces the throughput of
-the service between 10 and 20%.
-Increasing number of neihbours would have a higher impact on the performance.
-
-
-* TC020
-
-The obtained results correspond to the expected behaviour of the virtual Traffic Classifier.
-Using the configuration with SR-IOV and large flavor, the expected result is that the vTC is
-correctly instantiated, it is able to receive and send packets using SR-IOV technology
-and to forward packets back to the packet generator changing the TCP/IP header as required.
-
-
-* TC021
-
-The obtained results correspond to the expected behaviour of the virtual Traffic Classifier.
-Using the configuration with SR-IOV and large flavor, the expected result is that the vTC is
-correctly instantiated, it is able to receive and send packets using SR-IOV technology
-and to forward packets back to the packet generator changing the TCP/IP header as required,
-also in presence of noisy neighbors.
-
-* Generic
-
-The obtained results correspond to the expected behaviour of the virtual Traffic Classifier.
-Using the aforementioned configuration the expected application protocols are identified
-and their traffic statistics are demonstrated in the DashboardVTC, a group of popular
-applications is selected to demonstrate the sound operation of the vTC.
-The demonstrated application protocols are:
-- HTTP
-- Skype
-- Bittorrent
-- Youtube
-- Dropbox
-- Twitter
-- Viber
-- iCloud
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 000000000..440843584
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1,5 @@
+lfdocs-conf
+sphinx_opnfv_theme
+# Uncomment the following line if your project uses Sphinx to document
+# HTTP APIs
+# sphinxcontrib-httpdomain
diff --git a/docs/templates/test_results_template.rst b/docs/templates/test_results_template.rst
index f04b2b2a8..8885588ae 100644
--- a/docs/templates/test_results_template.rst
+++ b/docs/templates/test_results_template.rst
@@ -1,3 +1,18 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+..
+ Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ~~~~~~~ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
=====================
Yardstick Test Report
=====================
@@ -46,16 +61,16 @@ TCXXX
on-demand test cases (HA, KVM, Parser)
* Overview of test results
-.. general on metrics collected, number of iterations
+ .. general on metrics collected, number of iterations
* Detailed test results
-.. info on lab, installer, scenario
+ .. info on lab, installer, scenario
* Rationale for decisions
-.. pass/fail
+ .. pass/fail
* Conclusions and recommendations
-.. did the expected behavior occured?
+ .. did the expected behavior occured?
General
=======
diff --git a/docs/testing/developer/devguide/devguide.rst b/docs/testing/developer/devguide/devguide.rst
index dade49b75..2065f6e0d 100755
--- a/docs/testing/developer/devguide/devguide.rst
+++ b/docs/testing/developer/devguide/devguide.rst
@@ -1,16 +1,42 @@
+..
+ Licensed under the Apache License, Version 2.0 (the "License"); you may
+ not use this file except in compliance with the License. You may obtain
+ a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ License for the specific language governing permissions and limitations
+ under the License.
+
+ Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ~~~~~~~ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
Introduction
-=============
+------------
-Yardstick is a project dealing with performance testing. Yardstick produces its own test cases but can also be considered as a framework to support feature project testing.
+Yardstick is a project dealing with performance testing. Yardstick produces
+its own test cases but can also be considered as a framework to support feature
+project testing.
-Yardstick developed a test API that can be used by any OPNFV project. Therefore there are many ways to contribute to Yardstick.
+Yardstick developed a test API that can be used by any OPNFV project. Therefore
+there are many ways to contribute to Yardstick.
You can:
* Develop new test cases
* Review codes
* Develop Yardstick API / framework
-* Develop Yardstick grafana dashboards and Yardstick reporting page
+* Develop Yardstick grafana dashboards and Yardstick reporting page
* Write Yardstick documentation
This developer guide describes how to interact with the Yardstick project.
@@ -19,28 +45,30 @@ part is a list of “How to” to help you to join the Yardstick family whatever
your field of interest is.
Where can I find some help to start?
---------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.. _`user guide`: http://artifacts.opnfv.org/yardstick/danube/1.0/docs/stesting_user_userguide/index.html
+.. _`user guide`: https://artifacts.opnfv.org/yardstick/docs/testing_user_userguide/index.html
.. _`wiki page`: https://wiki.opnfv.org/display/yardstick/
This guide is made for you. You can have a look at the `user guide`_.
There are also references on documentation, video tutorials, tips in the
-project `wiki page`_. You can also directly contact us by mail with [Yardstick] prefix in the title at opnfv-tech-discuss@lists.opnfv.org or on the IRC chan #opnfv-yardstick.
+project `wiki page`_. You can also directly contact us by mail with
+``#yardstick`` or ``[yardstick]`` prefix in the subject at
+``opnfv-tech-discuss@lists.opnfv.org`` or on the IRC channel ``#opnfv-yardstick``.
Yardstick developer areas
-==========================
+-------------------------
Yardstick framework
---------------------
+~~~~~~~~~~~~~~~~~~~
-Yardstick can be considered as a framework. Yardstick is release as a docker
+Yardstick can be considered as a framework. Yardstick is released as a docker
file, including tools, scripts and a CLI to prepare the environement and run
-tests. It simplifies the integration of external test suites in CI pipeline
-and provide commodity tools to collect and display results.
+tests. It simplifies the integration of external test suites in CI pipelines
+and provides commodity tools to collect and display results.
-Since Danube, test categories also known as tiers have been created to group
+Since Danube, test categories (also known as tiers) have been created to group
similar tests, provide consistant sub-lists and at the end optimize test
duration for CI (see How To section).
@@ -56,44 +84,54 @@ The tiers are:
How Todos?
-===========
+----------
How Yardstick works?
----------------------
+~~~~~~~~~~~~~~~~~~~~
The installation and configuration of the Yardstick is described in the `user guide`_.
How to work with test cases?
-----------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Sample Test cases
++++++++++++++++++
-**Sample Test cases**
+Yardstick provides many sample test cases which are located at ``samples`` directory of repo.
-Yardstick provides many sample test cases which are located at "samples" directory of repo.
+Sample test cases are designed with the following goals:
-Sample test cases are designed as following goals:
+1. Helping user better understand Yardstick features (including new feature and
+ new test capacity).
-1. Helping user better understand yardstick features(including new feature and new test capacity).
+2. Helping developer to debug a new feature and test case before it is
+ offically released.
-2. Helping developer to debug his new feature and test case before it is offical released.
+3. Helping other developers understand and verify the new patch before the
+ patch is merged.
-3. Helping other developers understand and verify the new patch before the patch merged.
+Developers should upload their sample test cases as well when they are
+uploading a new patch which is about the Yardstick new test case or new feature.
-So developers should upload your sample test case as well when they are trying to upload a new patch which is about the yardstick new test case or new feature.
+OPNFV Release Test cases
+++++++++++++++++++++++++
-**OPNFV Release Test cases**
+OPNFV Release test cases are located at ``yardstick/tests/opnfv/test_cases``.
+These test cases are run by OPNFV CI jobs, which means these test cases should
+be more mature than sample test cases.
+OPNFV scenario owners can select related test cases and add them into the test
+suites which represent their scenario.
-OPNFV Release test cases which are located at "tests/opnfv/test_cases" of repo.
-those test cases are runing by OPNFV CI jobs, It means those test cases should be more mature than sample test cases.
-OPNFV scenario owners can select related test cases and add them into the test suites which is represent the scenario.
-
-**Test case Description File**
+Test case Description File
+++++++++++++++++++++++++++
This section will introduce the meaning of the Test case description file.
-we will use ping.yaml as a example to show you how to understand the test case description file.
-In this Yaml file, you can easily find it consists of two sections. One is “Scenarios”, the other is “Context”.::
+we will use ping.yaml as a example to show you how to understand the test case
+description file.
+This ``yaml`` file consists of two sections. One is ``scenarios``, the other
+is ``context``.::
---
# Sample benchmark task config file
@@ -150,18 +188,32 @@ In this Yaml file, you can easily find it consists of two sections. One is “Sc
{% endif %}
-"Contexts" section is the description of pre-condition of testing. As ping.yaml shown, you can configure the image, flavor , name ,affinity and network of Test VM(servers), with this section, you will get a pre-condition env for Testing.
-Yardstick will automatic setup the stack which are described in this section.
-In fact, yardstick use convert this section to heat template and setup the VMs by heat-client (Meanwhile, yardstick can support to convert this section to Kubernetes template to setup containers).
-
-Two Test VMs(athena and ares) are configured by keyword "servers".
-"flavor" will determine how many vCPU, how much memory for test VMs.
-As "yardstick-flavor" is a basic flavor which will be automatically created when you run command "yardstick env prepare". "yardstick-flavor" is "1 vCPU 1G RAM,3G Disk".
-"image" is the image name of test VMs. if you use cirros.3.5.0, you need fill the username of this image into "user". the "policy" of placement of Test VMs have two values (affinity and availability).
-"availability" means anti-affinity. In "network" section, you can configure which provide network and physical_network you want Test VMs use.
-you may need to configure segmentation_id when your network is vlan.
-
-Moreover, you can configure your specific flavor as below, yardstick will setup the stack for you. ::
+The ``contexts`` section is the description of pre-condition of testing. As
+``ping.yaml`` shows, you can configure the image, flavor, name, affinity and
+network of Test VM (servers), with this section, you will get a pre-condition
+env for Testing.
+Yardstick will automatically setup the stack which are described in this
+section.
+Yardstick converts this section to heat template and sets up the VMs with
+heat-client (Yardstick can also support to convert this section to Kubernetes
+template to setup containers).
+
+In the examples above, two Test VMs (athena and ares) are configured by
+keyword ``servers``.
+``flavor`` will determine how many vCPU, how much memory for test VMs.
+As ``yardstick-flavor`` is a basic flavor which will be automatically created
+when you run command ``yardstick env prepare``. ``yardstick-flavor`` is
+``1 vCPU 1G RAM,3G Disk``.
+``image`` is the image name of test VMs. If you use ``cirros.3.5.0``, you need
+fill the username of this image into ``user``.
+The ``policy`` of placement of Test VMs have two values (``affinity`` and
+``availability``). ``availability`` means anti-affinity.
+In the ``network`` section, you can configure which ``provider`` network and
+``physical_network`` you want Test VMs to use.
+You may need to configure ``segmentation_id`` when your network is vlan.
+
+Moreover, you can configure your specific flavor as below, Yardstick will setup
+the stack for you. ::
flavor:
name: yardstick-new-flavor
@@ -170,7 +222,8 @@ Moreover, you can configure your specific flavor as below, yardstick will setup
disk: 2
-Besides default heat stack, yardstick also allow you to setup other two types stack. they are "Node" and "Kubernetes". ::
+Besides default ``Heat`` context, Yardstick also allows you to setup two other
+types of context. They are ``Node`` and ``Kubernetes``. ::
context:
type: Kubernetes
@@ -183,48 +236,64 @@ and ::
name: LF
+The ``scenarios`` section is the description of testing steps, you can
+orchestrate the complex testing step through scenarios.
-"Scenarios" section is the description of testing step, you can orchestrate the complex testing step through orchestrate scenarios.
+Each scenario will do one testing step.
+In one scenario, you can configure the type of scenario (operation), ``runner``
+type and ``sla`` of the scenario.
-Each scenario will do one testing step, In one scenario, you can configure the type of scenario(operation), runner type and SLA of the scenario.
+For TC002, We only have one step, which is Ping from host VM to target VM. In
+this step, we also have some detailed operations implemented (such as ssh to
+VM, ping from VM1 to VM2. Get the latency, verify the SLA, report the result).
-For TC002, We only have one step , that is Ping from host VM to target VM. In this step, we also have some detail operation implement ( such as ssh to VM, ping from VM1 to VM2. Get the latency, verify the SLA, report the result).
+If you want to get this implementation details implement, you can check with
+the scenario.py file. For Ping scenario, you can find it in Yardstick repo
+(``yardstick/yardstick/benchmark/scenarios/networking/ping.py``).
-If you want to get this detail implement , you can check with the scenario.py file. For Ping scenario, you can find it in yardstick repo ( yardstick / yardstick / benchmark / scenarios / networking / ping.py)
+After you select the type of scenario (such as Ping), you will select one type
+of ``runner``, there are 4 types of runner. ``Iteration`` and ``Duration`` are
+the most commonly used, and the default is ``Iteration``.
-after you select the type of scenario( such as Ping), you will select one type of runner, there are 4 types of runner. Usually, we use the "Iteration" and "Duration". and Default is "Iteration".
-For Iteration, you can specify the iteration number and interval of iteration. ::
+For ``Iteration``, you can specify the iteration number and interval of iteration. ::
runner:
type: Iteration
iterations: 10
interval: 1
-That means yardstick will iterate the 10 times of Ping test and the interval of each iteration is one second.
+That means Yardstick will repeat the Ping test 10 times and the interval of
+each iteration is one second.
-For Duration, you can specify the duration of this scenario and the interval of each ping test. ::
+For ``Duration``, you can specify the duration of this scenario and the
+interval of each ping test. ::
runner:
type: Duration
duration: 60
interval: 10
-That means yardstick will run the ping test as loop until the total time of this scenario reach the 60s and the interval of each loop is ten seconds.
+That means Yardstick will run the ping test as loop until the total time of
+this scenario reaches 60s and the interval of each loop is ten seconds.
-SLA is the criterion of this scenario. that depends on the scenario. different scenario can have different SLA metric.
+SLA is the criterion of this scenario. This depends on the scenario. Different
+scenarios can have different SLA metric.
-**How to write a new test case**
+How to write a new test case
+++++++++++++++++++++++++++++
-Yardstick already provide a library of testing step. that means yardstick provide lots of type scenario.
+Yardstick already provides a library of testing steps (i.e. different types of
+scenario).
-Basiclly, What you need to do is to orchestrate the scenario from the library.
-
-Here, We will show two cases. One is how to write a simple test case, the other is how to write a quite complex test case.
+Basically, what you need to do is to orchestrate the scenario from the library.
+Here, we will show two cases. One is how to write a simple test case, the other
+is how to write a quite complex test case.
Write a new simple test case
+''''''''''''''''''''''''''''
First, you can image a basic test case description as below.
@@ -314,7 +383,7 @@ First, you can image a basic test case description as below.
TODO
How can I contribute to Yardstick?
------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you are already a contributor of any OPNFV project, you can contribute to
Yardstick. If you are totally new to OPNFV, you must first create your Linux
@@ -329,16 +398,17 @@ We distinguish 2 levels of contributors:
Yardstick commitors are promoted by the Yardstick contributors.
Gerrit & JIRA introduction
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+++++++++++++++++++++++++++
.. _Gerrit: https://www.gerritcodereview.com/
-.. _`OPNFV Gerrit`: http://gerrit.opnfv.org/
+.. _`OPNFV Gerrit`: http://gerrit.opnfv.org/gerrit
.. _link: https://identity.linuxfoundation.org/
.. _JIRA: https://jira.opnfv.org/secure/Dashboard.jspa
OPNFV uses Gerrit_ for web based code review and repository management for the
Git Version Control System. You can access `OPNFV Gerrit`_. Please note that
-you need to have Linux Foundation ID in order to use OPNFV Gerrit. You can get one from this link_.
+you need to have Linux Foundation ID in order to use OPNFV Gerrit. You can get
+one from this link_.
OPNFV uses JIRA_ for issue management. An important principle of change
management is to have two-way trace-ability between issue management
@@ -350,14 +420,16 @@ If you want to contribute to Yardstick, you can pick a issue from Yardstick's
JIRA dashboard or you can create you own issue and submit it to JIRA.
Install Git and Git-reviews
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
++++++++++++++++++++++++++++
Installing and configuring Git and Git-Review is necessary in order to submit
-code to Gerrit. The `Getting to the code <https://wiki.opnfv.org/display/DEV/Developer+Getting+Started>`_ page will provide you with some help for that.
+code to Gerrit. The
+`Getting to the code <https://wiki.opnfv.org/display/DEV/Developer+Getting+Started>`_
+page will provide you with some help for that.
Verify your patch locally before submitting
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
++++++++++++++++++++++++++++++++++++++++++++
Once you finish a patch, you can submit it to Gerrit for code review. A
developer sends a new patch to Gerrit will trigger patch verify job on Jenkins
@@ -366,7 +438,8 @@ code coverage test. Before you submit your patch, it is recommended to run the
patch verification in your local environment first.
Open a terminal window and set the project's directory to the working
-directory using the ``cd`` command. Assume that ``YARDSTICK_REPO_DIR`` is the path to the Yardstick project folder on your computer::
+directory using the ``cd`` command. Assume that ``YARDSTICK_REPO_DIR`` is the
+path to the Yardstick project folder on your computer::
cd $YARDSTICK_REPO_DIR
@@ -376,8 +449,12 @@ Verify your patch::
It is used in CI but also by the CLI.
+For more details on ``tox`` and tests, please refer to the `Running tests`_
+and `working with tox`_ sections below, which describe the different available
+environments.
+
Submit the code with Git
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+++++++++++++++++++++++++
Tell Git which files you would like to take into account for the next commit.
This is called 'staging' the files, by placing them into the staging area,
@@ -408,7 +485,7 @@ Git repository::
JIRA: YARDSTICK-XXX
-.. _`this document`: http://chris.beams.io/posts/git-commit/
+.. _`this document`: https://chris.beams.io/posts/git-commit/
The message that is required for the commit should follow a specific set of
rules. This practice allows to standardize the description messages attached
@@ -417,7 +494,7 @@ to the commits, and eventually navigate among the latter more easily.
`This document`_ happened to be very clear and useful to get started with that.
Push the code to Gerrit for review
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+++++++++++++++++++++++++++++++++++
Now that the code has been comitted into your local Git repository the
following step is to push it online to Gerrit for it to be reviewed. The
@@ -432,26 +509,27 @@ Yardstick committers and contributors to review your codes.
:width: 800px
:alt: Gerrit for code review
-You can find Yardstick people info `here <https://wiki.opnfv.org/display/yardstick/People>`_.
+You can find a list Yardstick people
+`here <https://wiki.opnfv.org/display/yardstick/Yardstick+People>`_, or use
+the ``yardstick-reviewers`` and ``yardstick-committers`` groups in gerrit.
Modify the code under review in Gerrit
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+++++++++++++++++++++++++++++++++++++++
At the same time the code is being reviewed in Gerrit, you may need to edit it
to make some changes and then send it back for review. The following steps go
through the procedure.
Once you have modified/edited your code files under your IDE, you will have to
-stage them. The 'status' command is very helpful at this point as it provides
-an overview of Git's current state::
+stage them. The ``git status`` command is very helpful at this point as it
+provides an overview of Git's current state::
git status
-The output of the command provides us with the files that have been modified
-after the latest commit.
+This command lists the files that have been modified since the last commit.
You can now stage the files that have been modified as part of the Gerrit code
-review edition/modification/improvement using ``git add`` command. It is now
+review addition/modification/improvement using ``git add`` command. It is now
time to commit the newly modified files, but the objective here is not to
create a new commit, we simply want to inject the new changes into the
previous commit. You can achieve that with the '--amend' option on the
@@ -466,9 +544,172 @@ The final step consists in pushing the newly modified commit to Gerrit::
git review
+Backporting changes to stable branches
+--------------------------------------
+During the release cycle, when master and the ``stable/<release>`` branch have
+diverged, it may be necessary to backport (cherry-pick) changes top the
+``stable/<release>`` branch once they have merged to master.
+These changes should be identified by the committers reviewing the patch.
+Changes should be backported **as soon as possible** after merging of the
+original code.
+
+..note::
+ Besides the commit and review process below, the Jira tick must be updated to
+ add dual release versions and indicate that the change is to be backported.
+
+The process for backporting is as follows:
+
+* Committer A merges a change to master (process for normal changes).
+* Committer A cherry-picks the change to ``stable/<release>`` branch (if the
+ bug has been identified for backporting).
+* The original author should review the code and verify that it still works
+ (and give a ``+1``).
+* Committer B reviews the change, gives a ``+2`` and merges to
+ ``stable/<release>``.
+
+A backported change needs a ``+1`` and a ``+2`` from a committer who didn’t
+propose the change (i.e. minimum 3 people involved).
+
+Development guidelines
+----------------------
+This section provides guidelines and best practices for feature development
+and bug fixing in Yardstick.
+
+In general, bug fixes should be submitted as a single patch.
+
+When developing larger features, all commits on the local topic branch can be
+submitted together, by running ``git review`` on the tip of the branch. This
+creates a chain of related patches in gerrit.
+
+Each commit should contain one logical change and the author should aim for no
+more than 300 lines of code per commit. This helps to make the changes easier
+to review.
+
+Each feature should have the following:
+
+* Feature/bug fix code
+* Unit tests (both positive and negative)
+* Functional tests (optional)
+* Sample testcases (if applicable)
+* Documentation
+* Update to release notes
+
+Coding style
+~~~~~~~~~~~~
+.. _`OpenStack Style Guidelines`: https://docs.openstack.org/hacking/latest/user/hacking.html
+.. _`OPNFV coding guidelines`: https://wiki.opnfv.org/display/DEV/Contribution+Guidelines
+
+Please follow the `OpenStack Style Guidelines`_ for code contributions (the
+section on Internationalization (i18n) Strings is not applicable).
+
+When writing commit message, the `OPNFV coding guidelines`_ on git commit
+message style should also be used.
+
+Running tests
+~~~~~~~~~~~~~
+Once your patch has been submitted, a number of tests will be run by Jenkins
+CI to verify the patch. Before submitting your patch, you should run these
+tests locally. You can do this using ``tox``, which has a number of different
+test environments defined in ``tox.ini``.
+Calling ``tox`` without any additional arguments runs the default set of
+tests (unit tests, functional tests, coverage and pylint).
+
+If some tests are failing, you can save time and select test environments
+individually, by passing one or more of the following command-line options to
+``tox``:
+
+* ``-e py27``: Unit tests using Python 2.7
+* ``-e py3``: Unit tests using Python 3
+* ``-e pep8``: Linter and style checks on updated files
+* ``-e functional``: Functional tests using Python 2.7
+* ``-e functional-py3``: Functional tests using Python 3
+* ``-e coverage``: Code coverage checks
+
+.. note:: You need to stage your changes prior to running coverage for those
+ changes to be checked.
+
+In addition to the tests run by Jenkins (listed above), there are a number of
+other test environments defined.
+
+* ``-e pep8-full``: Linter and style checks are run on the whole repo (not
+ just on updated files)
+* ``-e os-requirements``: Check that the requirements are compatible with
+ OpenStack requirements.
+
+Working with tox
+++++++++++++++++
+.. _virtualenv: https://virtualenv.pypa.io/en/stable/
+
+``tox`` uses `virtualenv`_ to create isolated Python environments to run the
+tests in. The test environments are located at
+``.tox/<environment_name>`` e.g. ``.tox/py27``.
+
+If requirements are changed, you will need to recreate the tox test
+environment to make sure the new requirements are installed. This is done by
+passing the additional ``-r`` command-line option to ``tox``::
+
+ tox -r -e ...
+
+This can also be achieved by deleting the test environments manually before
+running ``tox``::
+
+ rm -rf .tox/<environment_name>
+ rm -rf .tox/py27
+
+Writing unit tests
+~~~~~~~~~~~~~~~~~~
+For each change submitted, a set of unit tests should be submitted, which
+should include both positive and negative testing.
+
+In order to help identify which tests are needed, follow the guidelines below.
+
+* In general, there should be a separate test for each branching point, return
+ value and input set.
+* Negative tests should be written to make sure exceptions are raised and/or
+ handled appropriately.
+
+The following convention should be used for naming tests::
+
+ test_<method_name>_<some_comment>
+
+The comment gives more information on the nature of the test, the side effect
+being checked, or the parameter being modified::
+
+ test_my_method_runtime_error
+ test_my_method_invalid_credentials
+ test_my_method_param1_none
+
+Mocking
++++++++
+The ``mock`` library is used for unit testing to stub out external libraries.
+
+The following conventions are used in Yardstick:
+
+* Use ``mock.patch.object`` instead of ``mock.patch``.
+
+* When naming mocked classes/functions, use ``mock_<class_and_function_name>``
+ e.g. ``mock_subprocess_call``
+
+* Avoid decorating classes with mocks. Apply the mocking in ``setUp()``::
+
+ @mock.patch.object(ssh, 'SSH')
+ class MyClassTestCase(unittest.TestCase):
+
+ should be::
+
+ class MyClassTestCase(unittest.TestCase):
+ def setUp(self):
+ self._mock_ssh = mock.patch.object(ssh, 'SSH')
+ self.mock_ssh = self._mock_ssh.start()
+
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_ssh.stop()
Plugins
-==========
+-------
-For information about Yardstick plugins, refer to the chapter **Installing a plug-in into Yardstick** in the `user guide`_.
+For information about Yardstick plugins, refer to the chapter
+**Installing a plug-in into Yardstick** in the `user guide`_.
diff --git a/docs/testing/developer/devguide/devguide_nsb_prox.rst b/docs/testing/developer/devguide/devguide_nsb_prox.rst
new file mode 100755
index 000000000..44a216b75
--- /dev/null
+++ b/docs/testing/developer/devguide/devguide_nsb_prox.rst
@@ -0,0 +1,1480 @@
+Introduction
+=============
+
+This document describes the steps to create a new NSB PROX test based on
+existing PROX functionalities. NSB PROX provides is a simple approximation
+of an operation and can be used to develop best practices and TCO models
+for Telco customers, investigate the impact of new Intel compute,
+network and storage technologies, characterize performance, and develop
+optimal system architectures and configurations.
+
+NSB PROX Supports Baremetal, Openstack and standalone configuration.
+
+.. contents::
+
+Prerequisites
+=============
+
+In order to integrate PROX tests into NSB, the following prerequisites are
+required.
+
+.. _`dpdk wiki page`: https://www.dpdk.org/
+.. _`yardstick wiki page`: https://wiki.opnfv.org/display/yardstick/
+.. _`Prox documentation`: https://01.org/intel-data-plane-performance-demonstrators/documentation/prox-documentation
+.. _`openstack wiki page`: https://wiki.openstack.org/wiki/Main_Page
+.. _`grafana getting started`: http://docs.grafana.org/guides/gettingstarted/
+.. _`opnfv grafana dashboard`: https://wiki.opnfv.org/display/yardstick/How+to+work+with+grafana+dashboard
+.. _`Prox command line`: https://01.org/intel-data-plane-performance-demonstrators/documentation/prox-documentation#Command_line_options
+.. _`grafana deployment`: https://wiki.opnfv.org/display/yardstick/How+to+deploy+InfluxDB+and+Grafana+locally
+.. _`Prox options`: https://01.org/intel-data-plane-performance-demonstrators/documentation/prox-documentation#.5Beal_options.5D
+.. _`NSB Installation`: http://artifacts.opnfv.org/yardstick/docs/userguide/index.html#document-09-installation
+
+* A working knowledge of Yardstick. See `yardstick wiki page`_.
+* A working knowledge of PROX. See `Prox documentation`_.
+* Knowledge of Openstack. See `openstack wiki page`_.
+* Knowledge of how to use Grafana. See `grafana getting started`_.
+* How to Deploy InfluxDB & Grafana. See `grafana deployment`_.
+* How to use Grafana in OPNFV/Yardstick. See `opnfv grafana dashboard`_.
+* How to install NSB. See `NSB Installation`_
+
+Sample Prox Test Hardware Architecture
+======================================
+
+The following is a diagram of a sample NSB PROX Hardware Architecture
+for both NSB PROX on Bare metal and on Openstack.
+
+In this example when running yardstick on baremetal, yardstick will
+run on the deployment node, the generator will run on the deployment node
+and the SUT(SUT) will run on the Controller Node.
+
+
+.. image:: images/PROX_Hardware_Arch.png
+ :width: 800px
+ :alt: Sample NSB PROX Hard Architecture
+
+Prox Test Architecture
+======================
+
+In order to create a new test, one must understand the architecture of
+the test.
+
+A NSB Prox test architecture is composed of:
+
+* A traffic generator. This provides blocks of data on 1 or more ports
+ to the SUT.
+ The traffic generator also consumes the result packets from the system
+ under test.
+* A SUT consumes the packets generated by the packet
+ generator, and applies one or more tasks to the packets and return the
+ modified packets to the traffic generator.
+
+ This is an example of a sample NSB PROX test architecture.
+
+.. image:: images/PROX_Software_Arch.png
+ :width: 800px
+ :alt: NSB PROX test Architecture
+
+This diagram is of a sample NSB PROX test application.
+
+* Traffic Generator
+
+ * Generator Tasks - Composted of 1 or more tasks (It is possible to
+ have multiple tasks sending packets to same port No. See Tasks Ai and Aii
+ plus Di and Dii)
+
+ * Task Ai - Generates Packets on Port 0 of Traffic Generator
+ and send to Port 0 of SUT Port 0
+ * Task Aii - Generates Packets on Port 0 of Traffic Generator
+ and send to Port 0 of SUT Port 0
+ * Task B - Generates Packets on Port 1 of Traffic Generator
+ and send to Port 1 of SUT Port 1
+ * Task C - Generates Packets on Port 2 of Traffic Generator
+ and send to Port 2 of SUT Port 2
+ * Task Di - Generates Packets on Port 3 of Traffic Generator
+ and send to Port 3 of SUT Port 3
+ * Task Dii - Generates Packets on Port 0 of Traffic Generator
+ and send to Port 0 of SUT Port 0
+
+ * Verifier Tasks - Composed of 1 or more tasks which receives
+ packets from SUT
+
+ * Task E - Receives packets on Port 0 of Traffic Generator sent
+ from Port 0 of SUT Port 0
+ * Task F - Receives packets on Port 1 of Traffic Generator sent
+ from Port 1 of SUT Port 1
+ * Task G - Receives packets on Port 2 of Traffic Generator sent
+ from Port 2 of SUT Port 2
+ * Task H - Receives packets on Port 3 of Traffic Generator sent
+ from Port 3 of SUT Port 3
+
+* SUT
+
+ * Receiver Tasks - Receives packets from generator - Composed on 1 or
+ more tasks which consume the packs sent from Traffic Generator
+
+ * Task A - Receives Packets on Port 0 of System-Under-Test from
+ Traffic Generator Port 0, and forwards packets to Task E
+ * Task B - Receives Packets on Port 1 of System-Under-Test from
+ Traffic Generator Port 1, and forwards packets to Task E
+ * Task C - Receives Packets on Port 2 of System-Under-Test from
+ Traffic Generator Port 2, and forwards packets to Task E
+ * Task D - Receives Packets on Port 3 of System-Under-Test from
+ Traffic Generator Port 3, and forwards packets to Task E
+
+ * Processing Tasks - Composed of multiple tasks in series which carry
+ out some processing on received packets before forwarding to the
+ task.
+
+ * Task E - This receives packets from the Receiver Tasks,
+ carries out some operation on the data and forwards to result
+ packets to the next task in the sequence - Task F
+ * Task F - This receives packets from the previous Task - Task
+ E, carries out some operation on the data and forwards to result
+ packets to the next task in the sequence - Task G
+ * Task G - This receives packets from the previous Task - Task F
+ and distributes the result packages to the Transmitter tasks
+
+ * Transmitter Tasks - Composed on 1 or more tasks which send the
+ processed packets back to the Traffic Generator
+
+ * Task H - Receives Packets from Task G of System-Under-Test and
+ sends packets to Traffic Generator Port 0
+ * Task I - Receives Packets from Task G of System-Under-Test and
+ sends packets to Traffic Generator Port 1
+ * Task J - Receives Packets from Task G of System-Under-Test and
+ sends packets to Traffic Generator Port 2
+ * Task K - Receives Packets From Task G of System-Under-Test and
+ sends packets to Traffic Generator Port 3
+
+NSB Prox Test
+=============
+
+A NSB Prox test is composed of the following components :-
+
+* Test Description File. Usually called
+ ``tc_prox_<context>_<test>-<ports>.yaml`` where
+
+ * <context> is either ``baremetal`` or ``heat_context``
+ * <test> is the a one or 2 word description of the test.
+ * <ports> is the number of ports used
+
+ Example tests ``tc_prox_baremetal_l2fwd-2.yaml`` or
+ ``tc_prox_heat_context_vpe-4.yaml``. This file describes the components
+ of the test, in the case of openstack the network description and
+ server descriptions, in the case of baremetal the hardware
+ description location. It also contains the name of the Traffic Generator,
+ the SUT config file and the traffic profile description, all described below.
+ See `Test Description File`_
+
+* Traffic Profile file. Example ``prox_binsearch.yaml``. This describes the
+ packet size, tolerated loss, initial line rate to start traffic at, test
+ interval etc See `Traffic Profile File`_
+
+* Traffic Generator Config file. Usually called ``gen_<test>-<ports>.cfg``.
+
+ This describes the activity of the traffic generator
+
+ * What each core of the traffic generator does,
+ * The packet of data sent by a core on a port of the traffic generator
+ to the system under test
+ * What core is used to wait on what port for data from the system
+ under test.
+
+ Example traffic generator config file ``gen_l2fwd-4.cfg``
+ See `Traffic Generator Config file`_
+
+* SUT Config file. Usually called ``handle_<test>-<ports>.cfg``.
+
+ This describes the activity of the SUTs
+
+ * What each core of the does,
+ * What cores receives packets from what ports
+ * What cores perform operations on the packets and pass the packets onto
+ another core
+ * What cores receives packets from what cores and transmit the packets on
+ the ports to the Traffic Verifier tasks of the Traffic Generator.
+
+ Example traffic generator config file ``handle_l2fwd-4.cfg``
+ See `SUT Config File`_
+
+* NSB PROX Baremetal Configuration file. Usually called
+ ``prox-baremetal-<ports>.yaml``
+
+ * <ports> is the number of ports used
+
+ This is required for baremetal only. This describes hardware, NICs,
+ IP addresses, Network drivers, usernames and passwords.
+ See `Baremetal Configuration File`_
+
+* Grafana Dashboard. Usually called
+ ``Prox_<context>_<test>-<port>-<DateAndTime>.json`` where
+
+ * <context> Is ``BM``,``heat``,``ovs_dpdk`` or ``sriov``
+ * <test> Is the a one or 2 word description of the test.
+ * <port> is the number of ports used express as ``2Port`` or ``4Port``
+ * <DateAndTime> is the Date and Time expressed as a string.
+
+ Example grafana dashboard ``Prox_BM_L2FWD-4Port-1507804504588.json``
+
+Other files may be required. These are test specific files and will be
+covered later.
+
+
+Test Description File
+---------------------
+
+Here we will discuss the test description for
+baremetal, openstack and standalone.
+
+Test Description File for Baremetal
+-----------------------------------
+
+This section will introduce the meaning of the Test case description
+file. We will use ``tc_prox_baremetal_l2fwd-2.yaml`` as an example to
+show you how to understand the test description file.
+
+.. image:: images/PROX_Test_BM_Script.png
+ :width: 800px
+ :alt: NSB PROX Test Description File
+
+Now let's examine the components of the file in detail
+
+1. ``traffic_profile`` - This specifies the traffic profile for the
+ test. In this case ``prox_binsearch.yaml`` is used. See
+ `Traffic Profile File`_
+
+2. ``topology`` - This is either ``prox-tg-topology-1.yaml`` or
+ ``prox-tg-topology-2.yaml`` or ``prox-tg-topology-4.yaml``
+ depending on number of ports required.
+
+3. ``nodes`` - This names the Traffic Generator and the System
+ under Test. Does not need to change.
+
+4. ``interface_speed_gbps`` - This is an optional parameter. If not present
+ the system defaults to 10Gbps. This defines the speed of the interfaces.
+
+5. ``collectd`` - (Optional) This specifies we want to collect NFVI statistics
+ like CPU Utilization,
+
+6. ``prox_path`` - Location of the Prox executable on the traffic
+ generator (Either baremetal or Openstack Virtual Machine)
+
+7. ``prox_config`` - This is the ``SUT Config File``.
+ In this case it is ``handle_l2fwd-2.cfg``
+
+ A number of additional parameters can be added. This example
+ is for VPE::
+
+ options:
+ interface_speed_gbps: 10
+
+ traffic_config:
+ tolerated_loss: 0.01
+ test_precision: 0.01
+ packet_sizes: [64]
+ duration: 30
+ lower_bound: 0.0
+ upper_bound: 100.0
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: ``configs/handle_vpe-4.cfg``
+ prox_args:
+ ``-t``: ````
+ prox_files:
+ ``configs/vpe_ipv4.lua`` : ````
+ ``configs/vpe_dscp.lua`` : ````
+ ``configs/vpe_cpe_table.lua`` : ````
+ ``configs/vpe_user_table.lua`` : ````
+ ``configs/vpe_rules.lua`` : ````
+ prox_generate_parameter: True
+
+ ``interface_speed_gbps`` - this specifies the speed of the interface
+ in Gigabits Per Second. This is used to calculate pps(packets per second).
+ If the interfaces are of different speeds, then this specifies the speed
+ of the slowest interface. This parameter is optional. If omitted the
+ interface speed defaults to 10Gbps.
+
+ ``traffic_config`` - This allows the values here to override the values in
+ in the traffic_profile file. e.g. "prox_binsearch.yaml". Values provided
+ here override values provided in the "traffic_profile" section of the
+ traffic_profile file. Some, all or none of the values can be provided here.
+
+ The values describes the packet size, tolerated loss, initial line rate
+ to start traffic at, test interval etc See `Traffic Profile File`_
+
+ ``prox_files`` - this specified that a number of addition files
+ need to be provided for the test to run correctly. This files
+ could provide routing information,hashing information or a
+ hashing algorithm and ip/mac information.
+
+ ``prox_generate_parameter`` - this specifies that the NSB application
+ is required to provide information to the nsb Prox in the form
+ of a file called ``parameters.lua``, which contains information
+ retrieved from either the hardware or the openstack configuration.
+
+8. ``prox_args`` - this specifies the command line arguments to start
+ prox. See `prox command line`_.
+
+9. ``prox_config`` - This specifies the Traffic Generator config file.
+
+10. ``runner`` - This is set to ``ProxDuration`` - This specifies that the
+ test runs for a set duration. Other runner types are available
+ but it is recommend to use ``ProxDuration``. The following parameters
+ are supported
+
+ ``interval`` - (optional) - This specifies the sampling interval.
+ Default is 1 sec
+
+ ``sampled`` - (optional) - This specifies if sampling information is
+ required. Default ``no``
+
+ ``duration`` - This is the length of the test in seconds. Default
+ is 60 seconds.
+
+ ``confirmation`` - This specifies the number of confirmation retests to
+ be made before deciding to increase or decrease line speed. Default 0.
+
+11. ``context`` - This is ``context`` for a 2 port Baremetal configuration.
+
+ If a 4 port configuration was required then file
+ ``prox-baremetal-4.yaml`` would be used. This is the NSB Prox
+ baremetal configuration file.
+
+Traffic Profile File
+--------------------
+
+This describes the details of the traffic flow. In this case
+``prox_binsearch.yaml`` is used.
+
+.. image:: images/PROX_Traffic_profile.png
+ :width: 800px
+ :alt: NSB PROX Traffic Profile
+
+
+1. ``name`` - The name of the traffic profile. This name should match the
+ name specified in the ``traffic_profile`` field in the Test
+ Description File.
+
+2. ``traffic_type`` - This specifies the type of traffic pattern generated,
+ This name matches class name of the traffic generator. See::
+
+ network_services/traffic_profile/prox_binsearch.py class ProxBinSearchProfile(ProxProfile)
+
+ In this case it lowers the traffic rate until the number of packets
+ sent is equal to the number of packets received (plus a
+ tolerated loss). Once it achieves this it increases the traffic
+ rate in order to find the highest rate with no traffic loss.
+
+ Custom traffic types can be created by creating a new traffic profile class.
+
+3. ``tolerated_loss`` - This specifies the percentage of packets that
+ can be lost/dropped before
+ we declare success or failure. Success is Transmitted-Packets from
+ Traffic Generator is greater than or equal to
+ packets received by Traffic Generator plus tolerated loss.
+
+4. ``test_precision`` - This specifies the precision of the test
+ results. For some tests the success criteria may never be
+ achieved because the test precision may be greater than the
+ successful throughput. For finer results increase the precision
+ by making this value smaller.
+
+5. ``packet_sizes`` - This specifies the range of packets size this
+ test is run for.
+
+6. ``duration`` - This specifies the sample duration that the test
+ uses to check for success or failure.
+
+7. ``lower_bound`` - This specifies the test initial lower bound sample rate.
+ On success this value is increased.
+
+8. ``upper_bound`` - This specifies the test initial upper bound sample rate.
+ On success this value is decreased.
+
+Other traffic profiles exist eg prox_ACL.yaml which does not
+compare what is received with what is transmitted. It just
+sends packet at max rate.
+
+It is possible to create custom traffic profiles with by
+creating new file in the same folder as prox_binsearch.yaml.
+See this prox_vpe.yaml as example::
+
+ schema: ``nsb:traffic_profile:0.1``
+
+ name: prox_vpe
+ description: Prox vPE traffic profile
+
+ traffic_profile:
+ traffic_type: ProxBinSearchProfile
+ tolerated_loss: 100.0 #0.001
+ test_precision: 0.01
+ # The minimum size of the Ethernet frame for the vPE test is 68 bytes.
+ packet_sizes: [68]
+ duration: 5
+ lower_bound: 0.0
+ upper_bound: 100.0
+
+Test Description File for Openstack
+-----------------------------------
+
+We will use ``tc_prox_heat_context_l2fwd-2.yaml`` as a example to show
+you how to understand the test description file.
+
+ .. image:: images/PROX_Test_HEAT_Script1.png
+ :width: 800px
+ :alt: NSB PROX Test Description File - Part 1
+
+
+ .. image:: images/PROX_Test_HEAT_Script2.png
+ :width: 800px
+ :alt: NSB PROX Test Description File - Part 2
+
+Now lets examine the components of the file in detail
+
+Sections 1 to 9 are exactly the same in Baremetal and in Heat. Section
+``10`` is replaced with sections A to F. Section 10 was for a baremetal
+configuration file. This has no place in a heat configuration.
+
+A. ``image`` - yardstick-samplevnfs. This is the name of the image
+ created during the installation of NSB. This is fixed.
+
+B. ``flavor`` - The flavor is created dynamically. However we could
+ use an already existing flavor if required. In that case the
+ flavor would be named::
+
+ flavor: yardstick-flavor
+
+C. ``extra_specs`` - This allows us to specify the number of
+ cores sockets and hyperthreading assigned to it. In this case
+ we have 1 socket with 10 codes and no hyperthreading enabled.
+
+D. ``placement_groups`` - default. Do not change for NSB PROX.
+
+E. ``servers`` - ``tg_0`` is the traffic generator and ``vnf_0``
+ is the system under test.
+
+F. ``networks`` - is composed of a management network labeled ``mgmt``
+ and one uplink network labeled ``uplink_0`` and one downlink
+ network labeled ``downlink_0`` for 2 ports. If this was a 4 port
+ configuration there would be 2 extra downlink ports. See this
+ example from a 4 port l2fwd test.::
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+ uplink_0:
+ cidr: '10.0.2.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_0:
+ cidr: '10.0.3.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ uplink_1:
+ cidr: '10.0.4.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_1:
+ cidr: '10.0.5.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+
+Test Description File for Standalone
+------------------------------------
+
+We will use ``tc_prox_ovs-dpdk_l2fwd-2.yaml`` as a example to show
+you how to understand the test description file.
+
+ .. image:: images/PROX_Test_ovs_dpdk_Script_1.png
+ :width: 800px
+ :alt: NSB PROX Test Standalone Description File - Part 1
+
+ .. image:: images/PROX_Test_ovs_dpdk_Script_2.png
+ :width: 800px
+ :alt: NSB PROX Test Standalone Description File - Part 2
+
+Now lets examine the components of the file in detail
+
+Sections 1 to 9 are exactly the same in Baremetal and in Heat. Section
+``10`` is replaced with sections A to F. Section 10 was for a baremetal
+configuration file. This has no place in a heat configuration.
+
+A. ``file`` - Pod file for Baremetal Traffic Generator configuration:
+ IP Address, User/Password & Interfaces
+
+B. ``type`` - This defines the type of standalone configuration.
+ Possible values are ``StandaloneOvsDpdk`` or ``StandaloneSriov``
+
+C. ``file`` - Pod file for Standalone host configuration:
+ IP Address, User/Password & Interfaces
+
+D. ``vm_deploy`` - Deploy a new VM or use an existing VM
+
+E. ``ovs_properties`` - OVS Version, DPDK Version and configuration
+ to use.
+
+F. ``flavor``- NSB image generated when installing NSB using ansible-playbook::
+
+ ram- Configurable RAM for SUT VM
+ extra_specs
+ hw:cpu_sockets - Configurable number of Sockets for SUT VM
+ hw:cpu_cores - Configurable number of Cores for SUT VM
+ hw:cpu_threads- Configurable number of Threads for SUT VM
+
+G. ``mgmt`` - Management port of the SUT VM. Preconfig needed on TG & SUT host machines.
+ is the system under test.
+
+
+H. ``xe0`` - Upline Network port
+
+I. ``xe1`` - Downline Network port
+
+J. ``uplink_0`` - Uplink Phy port of the NIC on the host. This will be used to create
+ the Virtual Functions.
+
+K. ``downlink_0`` - Downlink Phy port of the NIC on the host. This will be used to
+ create the Virtual Functions.
+
+Traffic Generator Config file
+-----------------------------
+
+This section will describe the traffic generator config file.
+This is the same for both baremetal and heat. See this example
+of ``gen_l2fwd_multiflow-2.cfg`` to explain the options.
+
+.. image:: images/PROX_Gen_2port_cfg.png
+ :width: 1400px
+ :alt: NSB PROX Gen Config File
+
+The configuration file is divided into multiple sections, each
+of which is used to define some parameters and options.::
+
+ [eal options]
+ [variables]
+ [port 0]
+ [port 1]
+ [port .]
+ [port Z]
+ [defaults]
+ [global]
+ [core 0]
+ [core 1]
+ [core 2]
+ [core .]
+ [core Z]
+
+See `prox options`_ for details
+
+Now let's examine the components of the file in detail
+
+1. ``[eal options]`` - This specified the EAL (Environmental
+ Abstraction Layer) options. These are default values and
+ are not changed. See `dpdk wiki page`_.
+
+2. ``[variables]`` - This section contains variables, as
+ the name suggests. Variables for Core numbers, mac
+ addresses, ip addresses etc. They are assigned as a
+ ``key = value`` where the key is used in place of the value.
+
+ .. caution::
+ A special case for valuables with a value beginning with
+ ``@@``. These values are dynamically updated by the NSB
+ application at run time. Values like MAC address,
+ IP Address etc.
+
+3. ``[port 0]`` - This section describes the DPDK Port. The number
+ following the keyword ``port`` usually refers to the DPDK Port
+ Id. usually starting from ``0``. Because you can have multiple
+ ports this entry usually repeated. Eg. For a 2 port setup
+ ``[port0]`` and ``[port 1]`` and for a 4 port setup ``[port 0]``,
+ ``[port 1]``, ``[port 2]`` and ``[port 3]``::
+
+ [port 0]
+ name=p0
+ mac=hardware
+ rx desc=2048
+ tx desc=2048
+ promiscuous=yes
+
+ a. In this example ``name = p0`` assigned the name ``p0`` to the
+ port. Any name can be assigned to a port.
+ b. ``mac=hardware`` sets the MAC address assigned by the hardware
+ to data from this port.
+ c. ``rx desc=2048`` sets the number of available descriptors to
+ allocate for receive packets. This can be changed and can
+ effect performance.
+ d. ``tx desc=2048`` sets the number of available descriptors to
+ allocate for transmit packets. This can be changed and can
+ effect performance.
+ e. ``promiscuous=yes`` this enables promiscuous mode for this port.
+
+4. ``[defaults]`` - Here default operations and settings can be over
+ written. In this example ``mempool size=4K`` the number of mbufs
+ per task is altered. Altering this value could effect
+ performance. See `prox options`_ for details.
+
+5. ``[global]`` - Here application wide setting are supported. Things
+ like application name, start time, duration and memory
+ configurations can be set here. In this example.::
+
+ [global]
+ start time=5
+ name=Basic Gen
+
+ a. ``start time=5`` Time is seconds after which average
+ stats will be started.
+ b. ``name=Basic Gen`` Name of the configuration.
+
+6. ``[core 0]`` - This core is designated the master core. Every
+ Prox application must have a master core. The master mode must
+ be assigned to exactly one task, running alone on one core.::
+
+ [core 0]
+ mode=master
+
+7. ``[core 1]`` - This describes the activity on core 1. Cores can
+ be configured by means of a set of [core #] sections, where
+ # represents either:
+
+ a. an absolute core number: e.g. on a 10-core, dual socket
+ system with hyper-threading,
+ cores are numbered from 0 to 39.
+
+ b. PROX allows a core to be identified by a core number, the
+ letter 's', and a socket number.
+
+ It is possible to write a baremetal and an openstack test which use
+ the same traffic generator config file and SUT config file.
+ In this case it is advisable not to use physical
+ core numbering.
+
+ However it is also possible to write NSB Prox tests that
+ have been optimized for a particular hardware configuration.
+ In this case it is advisable to use the core numbering.
+ It is up to the user to make sure that cores from
+ the right sockets are used (i.e. from the socket on which the NIC
+ is attached to), to ensure good performance (EPA).
+
+ Each core can be assigned with a set of tasks, each running
+ one of the implemented packet processing modes.::
+
+ [core 1]
+ name=p0
+ task=0
+ mode=gen
+ tx port=p0
+ bps=1250000000
+ ; Ethernet + IP + UDP
+ pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 08 55 7b
+ ; src_ip: 152.16.100.0/8
+ random=0000XXX1
+ rand_offset=29
+ ; dst_ip: 152.16.100.0/8
+ random=0000XXX0
+ rand_offset=33
+ random=0001001110001XXX0001001110001XXX
+ rand_offset=34
+
+ a. ``name=p0`` - Name assigned to the core.
+ b. ``task=0`` - Each core can run a set of tasks. Starting with ``0``.
+ Task 1 can be defined later in this core or
+ can be defined in another ``[core 1]`` section with ``task=1``
+ later in configuration file. Sometimes running
+ multiple task related to the same packet on the same physical
+ core improves performance, however sometimes it
+ is optimal to move task to a separate core. This is best
+ decided by checking performance.
+ c. ``mode=gen`` - Specifies the action carried out by this task on
+ this core. Supported modes are: classify, drop, gen, lat, genl4, nop, l2fwd, gredecap,
+ greencap, lbpos, lbnetwork, lbqinq, lb5tuple, ipv6_decap, ipv6_encap,
+ qinqdecapv4, qinqencapv4, qos, routing, impair,
+ mirror, unmpls, tagmpls, nat, decapnsh, encapnsh, police, acl
+ Which are :-
+
+ * Classify
+ * Drop
+ * Basic Forwarding (no touch)
+ * L2 Forwarding (change MAC)
+ * GRE encap/decap
+ * Load balance based on packet fields
+ * Symmetric load balancing
+ * QinQ encap/decap IPv4/IPv6
+ * ARP
+ * QoS
+ * Routing
+ * Unmpls
+ * Nsh encap/decap
+ * Policing
+ * ACL
+
+ In the traffic generator we expect a core to generate packets (``gen``)
+ and to receive packets & calculate latency (``lat``)
+ This core does ``gen`` . ie it is a traffic generator.
+
+ To understand what each of the modes support please see
+ `prox documentation`_.
+
+ d. ``tx port=p0`` - This specifies that the packets generated are
+ transmitted to port ``p0``
+ e. ``bps=1250000000`` - This indicates Bytes Per Second to
+ generate packets.
+ f. ``; Ethernet + IP + UDP`` - This is a comment. Items starting with
+ ``;`` are ignored.
+ g. ``pkt inline=${sut_mac0} 70 00 00 00 ...`` - Defines the packet
+ format as a sequence of bytes (each
+ expressed in hexadecimal notation). This defines the packet
+ that is generated. This packets begins
+ with the hexadecimal sequence assigned to ``sut_mac`` and the
+ remainder of the bytes in the string.
+ This packet could now be sent or modified by ``random=..``
+ described below before being sent to target.
+ h. ``; src_ip: 152.16.100.0/8`` - Comment
+ i. ``random=0000XXX1`` - This describes a field of the packet
+ containing random data. This string can be
+ 8,16,24 or 32 character long and represents 1,2,3 or 4
+ bytes of data. In this case it describes a byte of
+ data. Each character in string can be 0,1 or ``X``. 0 or 1
+ are fixed bit values in the data packet and ``X`` is a
+ random bit. So random=0000XXX1 generates 00000001(1),
+ 00000011(3), 00000101(5), 00000111(7),
+ 00001001(9), 00001011(11), 00001101(13) and 00001111(15)
+ combinations.
+ j. ``rand_offset=29`` - Defines where to place the previously
+ defined random field.
+ k. ``; dst_ip: 152.16.100.0/8`` - Comment
+ l. ``random=0000XXX0`` - This is another random field which
+ generates a byte of 00000000(0), 00000010(2),
+ 00000100(4), 00000110(6), 00001000(8), 00001010(10),
+ 00001100(12) and 00001110(14) combinations.
+ m. ``rand_offset=33`` - Defines where to place the previously
+ defined random field.
+ n. ``random=0001001110001XXX0001001110001XXX`` - This is
+ another random field which generates 4 bytes.
+ o. ``rand_offset=34`` - Defines where to place the previously
+ defined 4 byte random field.
+
+ Core 2 executes same scenario as Core 1. The only difference
+ in this case is that the packets are generated
+ for Port 1.
+
+8. ``[core 3]`` - This defines the activities on core 3. The purpose
+ of ``core 3`` and ``core 4`` is to receive packets
+ sent by the SUT.::
+
+ [core 3]
+ name=rec 0
+ task=0
+ mode=lat
+ rx port=p0
+ lat pos=42
+
+ a. ``name=rec 0`` - Name assigned to the core.
+ b. ``task=0`` - Each core can run a set of tasks. Starting with
+ ``0``. Task 1 can be defined later in this core or
+ can be defined in another ``[core 1]`` section with
+ ``task=1`` later in configuration file. Sometimes running
+ multiple task related to the same packet on the same
+ physical core improves performance, however sometimes it
+ is optimal to move task to a separate core. This is
+ best decided by checking performance.
+ c. ``mode=lat`` - Specifies the action carried out by this task on this
+ core.
+ Supported modes are: ``acl``, ``classify``, ``drop``, ``gredecap``,
+ ``greencap``, ``ipv6_decap``, ``ipv6_encap``, ``l2fwd``, ``lbnetwork``,
+ ``lbpos``, ``lbqinq``, ``nop``, ``police``, ``qinqdecapv4``,
+ ``qinqencapv4``, ``qos``, ``routing``, ``impair``, ``lb5tuple``,
+ ``mirror``, ``unmpls``, ``tagmpls``, ``nat``, ``decapnsh``, ``encapnsh``,
+ ``gen``, ``genl4`` and ``lat``. This task(0) per core(3) receives packets
+ on port.
+ d. ``rx port=p0`` - The port to receive packets on ``Port 0``. Core 4 will
+ receive packets on ``Port 1``.
+ e. ``lat pos=42`` - Describes where to put a 4-byte timestamp in the packet.
+ Note that the packet length should be longer than ``lat pos`` + 4 bytes
+ to avoid truncation of the timestamp. It defines where the timestamp is
+ to be read from. Note that the SUT workload might cause the position of
+ the timestamp to change (i.e. due to encapsulation).
+
+SUT Config File
+---------------
+
+This section will describes the SUT(VNF) config file. This is the same for both
+baremetal and heat. See this example of ``handle_l2fwd_multiflow-2.cfg`` to
+explain the options.
+
+.. image:: images/PROX_Handle_2port_cfg.png
+ :width: 1400px
+ :alt: NSB PROX Handle Config File
+
+See `prox options`_ for details
+
+Now let's examine the components of the file in detail
+
+1. ``[eal options]`` - same as the Generator config file. This specified the
+ EAL (Environmental Abstraction Layer) options. These are default values and
+ are not changed. See `dpdk wiki page`_.
+
+2. ``[port 0]`` - This section describes the DPDK Port. The number following
+ the keyword ``port`` usually refers to the DPDK Port Id. usually starting
+ from ``0``. Because you can have multiple ports this entry usually
+ repeated. E.g. For a 2 port setup ``[port0]`` and ``[port 1]`` and for a 4
+ port setup ``[port 0]``, ``[port 1]``, ``[port 2]`` and ``[port 3]``::
+
+ [port 0]
+ name=if0
+ mac=hardware
+ rx desc=2048
+ tx desc=2048
+ promiscuous=yes
+
+ a. In this example ``name =if0`` assigned the name ``if0`` to the port. Any
+ name can be assigned to a port.
+ b. ``mac=hardware`` sets the MAC address assigned by the hardware to data
+ from this port.
+ c. ``rx desc=2048`` sets the number of available descriptors to allocate
+ for receive packets. This can be changed and can effect performance.
+ d. ``tx desc=2048`` sets the number of available descriptors to allocate
+ for transmit packets. This can be changed and can effect performance.
+ e. ``promiscuous=yes`` this enables promiscuous mode for this port.
+
+3. ``[defaults]`` - Here default operations and settings can be over written.::
+
+ [defaults]
+ mempool size=8K
+ memcache size=512
+
+ a. In this example ``mempool size=8K`` the number of mbufs per task is
+ altered. Altering this value could effect performance. See
+ `prox options`_ for details.
+ b. ``memcache size=512`` - number of mbufs cached per core, default is 256
+ this is the cache_size. Altering this value could affect performance.
+
+4. ``[global]`` - Here application wide setting are supported. Things like
+ application name, start time, duration and memory configurations can be set
+ here.
+ In this example.::
+
+ [global]
+ start time=5
+ name=Basic Gen
+
+ a. ``start time=5`` Time is seconds after which average stats will be
+ started.
+ b. ``name=Handle L2FWD Multiflow (2x)`` Name of the configuration.
+
+5. ``[core 0]`` - This core is designated the master core. Every Prox
+ application must have a master core. The master mode must be assigned to
+ exactly one task, running alone on one core.::
+
+ [core 0]
+ mode=master
+
+6. ``[core 1]`` - This describes the activity on core 1. Cores can be
+ configured by means of a set of [core #] sections, where # represents
+ either:
+
+ a. an absolute core number: e.g. on a 10-core, dual socket system with
+ hyper-threading, cores are numbered from 0 to 39.
+
+ b. PROX allows a core to be identified by a core number, the letter 's',
+ and a socket number. However NSB PROX is hardware agnostic (physical and
+ virtual configurations are the same) it is advisable no to use physical
+ core numbering.
+
+ Each core can be assigned with a set of tasks, each running one of the
+ implemented packet processing modes.::
+
+ [core 1]
+ name=none
+ task=0
+ mode=l2fwd
+ dst mac=@@tester_mac1
+ rx port=if0
+ tx port=if1
+
+ a. ``name=none`` - No name assigned to the core.
+ b. ``task=0`` - Each core can run a set of tasks. Starting with ``0``.
+ Task 1 can be defined later in this core or can be defined in another
+ ``[core 1]`` section with ``task=1`` later in configuration file.
+ Sometimes running multiple task related to the same packet on the same
+ physical core improves performance, however sometimes it is optimal to
+ move task to a separate core. This is best decided by checking
+ performance.
+ c. ``mode=l2fwd`` - Specifies the action carried out by this task on this
+ core. Supported modes are: ``acl``, ``classify``, ``drop``,
+ ``gredecap``, ``greencap``, ``ipv6_decap``, ``ipv6_encap``, ``l2fwd``,
+ ``lbnetwork``, ``lbpos``, ``lbqinq``, ``nop``, ``police``,
+ ``qinqdecapv4``, ``qinqencapv4``, ``qos``, ``routing``, ``impair``,
+ ``lb5tuple``, ``mirror``, ``unmpls``, ``tagmpls``, ``nat``,
+ ``decapnsh``, ``encapnsh``, ``gen``, ``genl4`` and ``lat``. This code
+ does ``l2fwd``. i.e. it does the L2FWD.
+
+ d. ``dst mac=@@tester_mac1`` - The destination mac address of the packet
+ will be set to the MAC address of ``Port 1`` of destination device.
+ (The Traffic Generator/Verifier)
+ e. ``rx port=if0`` - This specifies that the packets are received from
+ ``Port 0`` called if0
+ f. ``tx port=if1`` - This specifies that the packets are transmitted to
+ ``Port 1`` called if1
+
+ In this example we receive a packet on core on a port, carry out operation
+ on the packet on the core and transmit it on on another port still using
+ the same task on the same core.
+
+ On some implementation you may wish to use multiple tasks, like this.::
+
+ [core 1]
+ name=rx_task
+ task=0
+ mode=l2fwd
+ dst mac=@@tester_p0
+ rx port=if0
+ tx cores=1t1
+ drop=no
+
+ name=l2fwd_if0
+ task=1
+ mode=nop
+ rx ring=yes
+ tx port=if0
+ drop=no
+
+ In this example you can see Core 1/Task 0 called ``rx_task`` receives the
+ packet from if0 and perform the l2fwd. However instead of sending the
+ packet to a port it sends it to a core see ``tx cores=1t1``. In this case it
+ sends it to Core 1/Task 1.
+
+ Core 1/Task 1 called ``l2fwd_if0``, receives the packet, not from a port but
+ from the ring. See ``rx ring=yes``. It does not perform any operation on the
+ packet See ``mode=none`` and sends the packets to ``if0`` see
+ ``tx port=if0``.
+
+ It is also possible to implement more complex operations by chaining
+ multiple operations in sequence and using rings to pass packets from one
+ core to another.
+
+ In this example, we show a Broadband Network Gateway (BNG) with Quality of
+ Service (QoS). Communication from task to task is via rings.
+
+ .. image:: images/PROX_BNG_QOS.png
+ :width: 1000px
+ :alt: NSB PROX Config File for BNG_QOS
+
+Baremetal Configuration File
+----------------------------
+
+This is required for baremetal testing. It describes the IP address of the
+various ports, the Network devices drivers and MAC addresses and the network
+configuration.
+
+In this example we will describe a 2 port configuration. This file is the same
+for all 2 port NSB Prox tests on the same platforms/configuration.
+
+ .. image:: images/PROX_Baremetal_config.png
+ :width: 1000px
+ :alt: NSB PROX Yardstick Config
+
+Now let's describe the sections of the file.
+
+ 1. ``TrafficGen`` - This section describes the Traffic Generator node of the
+ test configuration. The name of the node ``trafficgen_1`` must match the
+ node name in the ``Test Description File for Baremetal`` mentioned
+ earlier. The password attribute of the test needs to be configured. All
+ other parameters can remain as default settings.
+ 2. ``interfaces`` - This defines the DPDK interfaces on the Traffic
+ Generator.
+ 3. ``xe0`` is DPDK Port 0. ``lspci`` and ``./dpdk-devbind.py -s`` can be used
+ to provide the interface information. ``netmask`` and ``local_ip`` should
+ not be changed
+ 4. ``xe1`` is DPDK Port 1. If more than 2 ports are required then ``xe1``
+ section needs to be repeated and modified accordingly.
+ 5. ``vnf`` - This section describes the SUT of the test configuration. The
+ name of the node ``vnf`` must match the node name in the
+ ``Test Description File for Baremetal`` mentioned earlier. The password
+ attribute of the test needs to be configured. All other parameters can
+ remain as default settings
+ 6. ``interfaces`` - This defines the DPDK interfaces on the SUT
+ 7. ``xe0`` - Same as 3 but for the ``SUT``.
+ 8. ``xe1`` - Same as 4 but for the ``SUT`` also.
+ 9. ``routing_table`` - All parameters should remain unchanged.
+ 10. ``nd_route_tbl`` - All parameters should remain unchanged.
+
+Grafana Dashboard
+-----------------
+
+The grafana dashboard visually displays the results of the tests. The steps
+required to produce a grafana dashboard are described here.
+
+.. _yardstick-config-label:
+
+ a. Configure ``yardstick`` to use influxDB to store test results. See file
+ ``/etc/yardstick/yardstick.conf``.
+
+ .. image:: images/PROX_Yardstick_config.png
+ :width: 1000px
+ :alt: NSB PROX Yardstick Config
+
+ 1. Specify the dispatcher to use influxDB to store results.
+ 2. "target = .. " - Specify location of influxDB to store results.
+ "db_name = yardstick" - name of database. Do not change
+ "username = root" - username to use to store result. (Many tests are
+ run as root)
+ "password = ... " - Please set to root user password
+
+ b. Deploy InfludDB & Grafana. See how to Deploy InfluxDB & Grafana. See
+ `grafana deployment`_.
+ c. Generate the test data. Run the tests as follows .::
+
+ yardstick --debug task start tc_prox_<context>_<test>-ports.yaml
+
+ eg.::
+
+ yardstick --debug task start tc_prox_heat_context_l2fwd-4.yaml
+
+ d. Now build the dashboard for the test you just ran. The easiest way to do this is to copy an existing dashboard and rename the
+ test and the field names. The procedure to do so is described here. See `opnfv grafana dashboard`_.
+
+How to run NSB Prox Test on an baremetal environment
+====================================================
+
+In order to run the NSB PROX test.
+
+ 1. Install NSB on Traffic Generator node and Prox in SUT. See
+ `NSB Installation`_
+
+ 2. To enter container::
+
+ docker exec -it yardstick /bin/bash
+
+ 3. Install baremetal configuration file (POD files)
+
+ a. Go to location of PROX tests in container ::
+
+ cd /home/opnfv/repos/yardstick/samples/vnf_samples/nsut/prox
+
+ b. Install prox-baremetal-2.yam and prox-baremetal-4.yaml for that
+ topology into this directory as per `Baremetal Configuration File`_
+
+ c. Install and configure ``yardstick.conf`` ::
+
+ cd /etc/yardstick/
+
+ Modify /etc/yardstick/yardstick.conf as per yardstick-config-label_
+
+ 4. Execute the test. Eg.::
+
+ yardstick --debug task start ./tc_prox_baremetal_l2fwd-4.yaml
+
+How to run NSB Prox Test on an Openstack environment
+====================================================
+
+In order to run the NSB PROX test.
+
+ 1. Install NSB on Openstack deployment node. See `NSB Installation`_
+
+ 2. To enter container::
+
+ docker exec -it yardstick /bin/bash
+
+ 3. Install configuration file
+
+ a. Goto location of PROX tests in container ::
+
+ cd /home/opnfv/repos/yardstick/samples/vnf_samples/nsut/prox
+
+ b. Install and configure ``yardstick.conf`` ::
+
+ cd /etc/yardstick/
+
+ Modify /etc/yardstick/yardstick.conf as per yardstick-config-label_
+
+
+ 4. Execute the test. Eg.::
+
+ yardstick --debug task start ./tc_prox_heat_context_l2fwd-4.yaml
+
+Frequently Asked Questions
+==========================
+
+Here is a list of frequently asked questions.
+
+NSB Prox does not work on Baremetal, How do I resolve this?
+-----------------------------------------------------------
+
+If PROX NSB does not work on baremetal, problem is either in network
+configuration or test file.
+
+1. Verify network configuration. Execute existing baremetal test.::
+
+ yardstick --debug task start ./tc_prox_baremetal_l2fwd-4.yaml
+
+ If test does not work then error in network configuration.
+
+ a. Check DPDK on Traffic Generator and SUT via:- ::
+
+ /root/dpdk-17./usertools/dpdk-devbind.py
+
+ b. Verify MAC addresses match ``prox-baremetal-<ports>.yaml`` via ``ifconfig`` and ``dpdk-devbind``
+
+ c. Check your eth port is what you expect. You would not be the first person to think that
+ the port your cable is plugged into is ethX when in fact it is ethY. Use
+ ethtool to visually confirm that the eth is where you expect.::
+
+ ethtool -p ethX
+
+ A led should start blinking on port. (On both System-Under-Test and Traffic Generator)
+
+ d. Check cable.
+
+ Install Linux kernel network driver and ensure your ports are
+ ``bound`` to the driver via ``dpdk-devbind``. Bring up port on both
+ SUT and Traffic Generator and check connection.
+
+ i) On SUT and on Traffic Generator::
+
+ ifconfig ethX/enoX up
+
+ ii) Check link
+
+ ethtool ethX/enoX
+
+ See ``Link detected`` if ``yes`` .... Cable is good. If ``no`` you have an issue with your cable/port.
+
+2. If existing baremetal works then issue is with your test. Check the traffic
+ generator gen_<test>-<ports>.cfg to ensure it is producing a valid packet.
+
+How do I debug NSB Prox on Baremetal?
+-------------------------------------
+
+1. Execute the test as follows::
+
+ yardstick --debug task start ./tc_prox_baremetal_l2fwd-4.yaml
+
+2. Login to Traffic Generator as ``root``.::
+
+ cd
+ /opt/nsb_bin/prox -f /tmp/gen_<test>-<ports>.cfg
+
+3. Login to SUT as ``root``.::
+
+ cd
+ /opt/nsb_bin/prox -f /tmp/handle_<test>-<ports>.cfg
+
+4. Now let's examine the Generator Output. In this case the output of
+ ``gen_l2fwd-4.cfg``.
+
+ .. image:: images/PROX_Gen_GUI.png
+ :width: 1000px
+ :alt: NSB PROX Traffic Generator GUI
+
+ Now let's examine the output
+
+ 1. Indicates the amount of data successfully transmitted on Port 0
+ 2. Indicates the amount of data successfully received on port 1
+ 3. Indicates the amount of data successfully handled for port 1
+
+ It appears what is transmitted is received.
+
+ .. Caution::
+ The number of packets MAY not exactly match because the ports are read in
+ sequence.
+
+ .. Caution::
+ What is transmitted on PORT X may not always be received on same port.
+ Please check the Test scenario.
+
+5. Now lets examine the SUT Output
+
+ .. image:: images/PROX_SUT_GUI.png
+ :width: 1400px
+ :alt: NSB PROX SUT GUI
+
+ Now lets examine the output
+
+ 1. What is received on 0 is transmitted on 1, received on 1 transmitted on 0,
+ received on 2 transmitted on 3 and received on 3 transmitted on 2.
+ 2. No packets are Failed.
+ 3. No packets are discarded.
+
+ We can also dump the packets being received or transmitted via the following commands. ::
+
+ dump Arguments: <core id> <task id> <nb packets>
+ Create a hex dump of <nb_packets> from <task_id> on <core_id> showing how
+ packets have changed between RX and TX.
+ dump_rx Arguments: <core id> <task id> <nb packets>
+ Create a hex dump of <nb_packets> from <task_id> on <core_id> at RX
+ dump_tx Arguments: <core id> <task id> <nb packets>
+ Create a hex dump of <nb_packets> from <task_id> on <core_id> at TX
+
+ eg.::
+
+ dump_tx 1 0 1
+
+NSB Prox works on Baremetal but not in Openstack. How do I resolve this?
+------------------------------------------------------------------------
+
+NSB Prox on Baremetal is a lot more forgiving than NSB Prox on Openstack. A
+badly formed packed may still work with PROX on Baremetal. However on
+Openstack the packet must be correct and all fields of the header correct.
+E.g. A packet with an invalid Protocol ID would still work in Baremetal but
+this packet would be rejected by openstack.
+
+
+ 1. Check the validity of the packet.
+ 2. Use a known good packet in your test
+ 3. If using ``Random`` fields in the traffic generator, disable them and
+ retry.
+
+
+How do I debug NSB Prox on Openstack?
+-------------------------------------
+
+1. Execute the test as follows::
+
+ yardstick --debug task start --keep-deploy ./tc_prox_heat_context_l2fwd-4.yaml
+
+2. Access docker image if required via::
+
+ docker exec -it yardstick /bin/bash
+
+3. Install openstack credentials.
+
+ Depending on your openstack deployment, the location of these credentials
+ may vary.
+ On this platform I do this via::
+
+ scp root@10.237.222.55:/etc/kolla/admin-openrc.sh .
+ source ./admin-openrc.sh
+
+4. List Stack details
+
+ a. Get the name of the Stack.
+
+ .. image:: images/PROX_Openstack_stack_list.png
+ :width: 1000px
+ :alt: NSB PROX openstack stack list
+
+ b. Get the Floating IP of the Traffic Generator & SUT
+
+ This generates a lot of information. Please note the floating IP of the
+ VNF and the Traffic Generator.
+
+ .. image:: images/PROX_Openstack_stack_show_a.png
+ :width: 1000px
+ :alt: NSB PROX openstack stack show (Top)
+
+ From here you can see the floating IP Address of the SUT / VNF
+
+ .. image:: images/PROX_Openstack_stack_show_b.png
+ :width: 1000px
+ :alt: NSB PROX openstack stack show (Top)
+
+ From here you can see the floating IP Address of the Traffic Generator
+
+ c. Get ssh identity file
+
+ In the docker container locate the identity file.::
+
+ cd /home/opnfv/repos/yardstick/yardstick/resources/files
+ ls -lt
+
+5. Login to SUT as ``Ubuntu``.::
+
+ ssh -i ./yardstick_key-01029d1d ubuntu@172.16.2.158
+
+ Change to root::
+
+ sudo su
+
+ Now continue as baremetal.
+
+6. Login to SUT as ``Ubuntu``.::
+
+ ssh -i ./yardstick_key-01029d1d ubuntu@172.16.2.156
+
+ Change to root::
+
+ sudo su
+
+ Now continue as baremetal.
+
+How do I resolve "Quota exceeded for resources"
+-----------------------------------------------
+
+This usually occurs due to 2 reasons when executing an openstack test.
+
+1. One or more stacks already exists and are consuming all resources. To resolve ::
+
+ openstack stack list
+
+ Response::
+
+ +--------------------------------------+--------------------+-----------------+----------------------+--------------+
+ | ID | Stack Name | Stack Status | Creation Time | Updated Time |
+ +--------------------------------------+--------------------+-----------------+----------------------+--------------+
+ | acb559d7-f575-4266-a2d4-67290b556f15 | yardstick-e05ba5a4 | CREATE_COMPLETE | 2017-12-06T15:00:05Z | None |
+ | 7edf21ce-8824-4c86-8edb-f7e23801a01b | yardstick-08bda9e3 | CREATE_COMPLETE | 2017-12-06T14:56:43Z | None |
+ +--------------------------------------+--------------------+-----------------+----------------------+--------------+
+
+ In this case 2 stacks already exist.
+
+ To remove stack::
+
+ openstack stack delete yardstick-08bda9e3
+ Are you sure you want to delete this stack(s) [y/N]? y
+
+2. The openstack configuration quotas are too small.
+
+ The solution is to increase the quota. Use below to query existing quotas::
+
+ openstack quota show
+
+ And to set quota::
+
+ openstack quota set <resource>
+
+Openstack CLI fails or hangs. How do I resolve this?
+----------------------------------------------------
+
+If it fails due to ::
+
+ Missing value auth-url required for auth plugin password
+
+Check your shell environment for Openstack variables. One of them should
+contain the authentication URL ::
+
+
+ OS_AUTH_URL=``https://192.168.72.41:5000/v3``
+
+Or similar. Ensure that openstack configurations are exported. ::
+
+ cat /etc/kolla/admin-openrc.sh
+
+Result ::
+
+ export OS_PROJECT_DOMAIN_NAME=default
+ export OS_USER_DOMAIN_NAME=default
+ export OS_PROJECT_NAME=admin
+ export OS_TENANT_NAME=admin
+ export OS_USERNAME=admin
+ export OS_PASSWORD=BwwSEZqmUJA676klr9wa052PFjNkz99tOccS9sTc
+ export OS_AUTH_URL=http://193.168.72.41:35357/v3
+ export OS_INTERFACE=internal
+ export OS_IDENTITY_API_VERSION=3
+ export EXTERNAL_NETWORK=yardstick-public
+
+and visible.
+
+If the Openstack CLI appears to hang, then verify the proxys and ``no_proxy``
+are set correctly. They should be similar to ::
+
+ FTP_PROXY="http://<your_proxy>:<port>/"
+ HTTPS_PROXY="http://<your_proxy>:<port>/"
+ HTTP_PROXY="http://<your_proxy>:<port>/"
+ NO_PROXY="localhost,127.0.0.1,10.237.222.55,10.237.223.80,10.237.222.134,.ir.intel.com"
+ ftp_proxy="http://<your_proxy>:<port>/"
+ http_proxy="http://<your_proxy>:<port>/"
+ https_proxy="http://<your_proxy>:<port>/"
+ no_proxy="localhost,127.0.0.1,10.237.222.55,10.237.223.80,10.237.222.134,.ir.intel.com"
+
+Where
+
+ 1) 10.237.222.55 = IP Address of deployment node
+ 2) 10.237.223.80 = IP Address of Controller node
+ 3) 10.237.222.134 = IP Address of Compute Node
+
+How to Understand the Grafana output?
+-------------------------------------
+
+ .. image:: images/PROX_Grafana_1.png
+ :width: 1000px
+ :alt: NSB PROX Grafana_1
+
+ .. image:: images/PROX_Grafana_2.png
+ :width: 1000px
+ :alt: NSB PROX Grafana_2
+
+ .. image:: images/PROX_Grafana_3.png
+ :width: 1000px
+ :alt: NSB PROX Grafana_3
+
+ .. image:: images/PROX_Grafana_4.png
+ :width: 1000px
+ :alt: NSB PROX Grafana_4
+
+ .. image:: images/PROX_Grafana_5.png
+ :width: 1000px
+ :alt: NSB PROX Grafana_5
+
+ .. image:: images/PROX_Grafana_6.png
+ :width: 1000px
+ :alt: NSB PROX Grafana_6
+
+A. Test Parameters - Test interval, Duration, Tolerated Loss and Test Precision
+
+B. No. of packets send and received during test
+
+C. Generator Stats - Average Throughput per step (Step Duration is specified by
+ "Duration" field in A above)
+
+D. Packet size
+
+E. No. of packets sent by the generator per second per interface in millions
+ of packets per second.
+
+F. No. of packets recieved by the generator per second per interface in millions
+ of packets per second.
+
+G. No. of packets received by the SUT from the generator in millions of packets
+ per second.
+
+H. No. of packets sent by the the SUT to the generator in millions of packets
+ per second.
+
+I. No. of packets sent by the Generator to the SUT per step per interface
+ in millions of packets per second.
+
+J. No. of packets received by the Generator from the SUT per step per interface
+ in millions of packets per second.
+
+K. No. of packets sent and received by the generator and lost by the SUT that
+ meet the success criteria
+
+L. The change in the Percentage of Line Rate used over a test, The MAX and the
+ MIN should converge to within the interval specified as the
+ ``test-precision``.
+
+M. Packet size supported during test. If *N/A* appears in any field the
+ result has not been decided.
+
+N. The Theretical Maximum no. of packets per second that can be sent for this
+ packet size.
+
+O. No. of packets sent by the generator in MPPS
+
+P. No. of packets received by the generator in MPPS
+
+Q. No. of packets sent by SUT.
+
+R. No. of packets received by the SUT
+
+S. Total no. of dropped packets -- Packets sent but not received back by the
+ generator, these may be dropped by the SUT or the generator.
+
+T. The tolerated no. of dropped packets.
+
+U. Test throughput in Gbps
+
+V. Latencey per Port
+ * Va - Port XE0
+ * Vb - Port XE1
+ * Vc - Port XE0
+ * Vd - Port XE0
+
+W. CPU Utilization
+ * Wa - CPU Utilization of the Generator
+ * Wb - CPU Utilization of the SUT
diff --git a/docs/testing/developer/devguide/images/PROX_BNG_QOS.png b/docs/testing/developer/devguide/images/PROX_BNG_QOS.png
new file mode 100644
index 000000000..3c720945c
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_BNG_QOS.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Baremetal_config.png b/docs/testing/developer/devguide/images/PROX_Baremetal_config.png
new file mode 100644
index 000000000..5cd914035
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Baremetal_config.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Gen_2port_cfg.png b/docs/testing/developer/devguide/images/PROX_Gen_2port_cfg.png
new file mode 100644
index 000000000..07731cabc
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Gen_2port_cfg.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Gen_GUI.png b/docs/testing/developer/devguide/images/PROX_Gen_GUI.png
new file mode 100644
index 000000000..e96aea3de
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Gen_GUI.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Grafana_1.png b/docs/testing/developer/devguide/images/PROX_Grafana_1.png
new file mode 100644
index 000000000..144000bb8
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Grafana_1.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Grafana_2.png b/docs/testing/developer/devguide/images/PROX_Grafana_2.png
new file mode 100644
index 000000000..af1ebb315
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Grafana_2.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Grafana_3.png b/docs/testing/developer/devguide/images/PROX_Grafana_3.png
new file mode 100644
index 000000000..a287670c9
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Grafana_3.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Grafana_4.png b/docs/testing/developer/devguide/images/PROX_Grafana_4.png
new file mode 100644
index 000000000..6752dc324
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Grafana_4.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Grafana_5.png b/docs/testing/developer/devguide/images/PROX_Grafana_5.png
new file mode 100644
index 000000000..45746d86b
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Grafana_5.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Grafana_6.png b/docs/testing/developer/devguide/images/PROX_Grafana_6.png
new file mode 100644
index 000000000..5bdbcf26a
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Grafana_6.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Handle_2port_cfg.png b/docs/testing/developer/devguide/images/PROX_Handle_2port_cfg.png
new file mode 100644
index 000000000..6505bedfd
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Handle_2port_cfg.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Hardware_Arch.png b/docs/testing/developer/devguide/images/PROX_Hardware_Arch.png
new file mode 100644
index 000000000..6e69dd6e3
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Hardware_Arch.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Openstack_stack_list.png b/docs/testing/developer/devguide/images/PROX_Openstack_stack_list.png
new file mode 100644
index 000000000..f67d10e6d
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Openstack_stack_list.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Openstack_stack_show_a.png b/docs/testing/developer/devguide/images/PROX_Openstack_stack_show_a.png
new file mode 100644
index 000000000..00e7620e7
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Openstack_stack_show_a.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Openstack_stack_show_b.png b/docs/testing/developer/devguide/images/PROX_Openstack_stack_show_b.png
new file mode 100644
index 000000000..bbe9b8631
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Openstack_stack_show_b.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_SUT_GUI.png b/docs/testing/developer/devguide/images/PROX_SUT_GUI.png
new file mode 100644
index 000000000..204083d1d
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_SUT_GUI.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Software_Arch.png b/docs/testing/developer/devguide/images/PROX_Software_Arch.png
new file mode 100644
index 000000000..c31f1e24a
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Software_Arch.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Test_BM_Script.png b/docs/testing/developer/devguide/images/PROX_Test_BM_Script.png
new file mode 100644
index 000000000..84e640a20
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Test_BM_Script.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Test_HEAT_Script1.png b/docs/testing/developer/devguide/images/PROX_Test_HEAT_Script1.png
new file mode 100644
index 000000000..bd375dba1
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Test_HEAT_Script1.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Test_HEAT_Script2.png b/docs/testing/developer/devguide/images/PROX_Test_HEAT_Script2.png
new file mode 100644
index 000000000..99d9d24e6
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Test_HEAT_Script2.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Test_ovs_dpdk_Script_1.png b/docs/testing/developer/devguide/images/PROX_Test_ovs_dpdk_Script_1.png
new file mode 100644
index 000000000..73f6f2920
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Test_ovs_dpdk_Script_1.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Test_ovs_dpdk_Script_2.png b/docs/testing/developer/devguide/images/PROX_Test_ovs_dpdk_Script_2.png
new file mode 100644
index 000000000..ad7d22822
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Test_ovs_dpdk_Script_2.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Traffic_profile.png b/docs/testing/developer/devguide/images/PROX_Traffic_profile.png
new file mode 100644
index 000000000..660bca342
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Traffic_profile.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/PROX_Yardstick_config.png b/docs/testing/developer/devguide/images/PROX_Yardstick_config.png
new file mode 100644
index 000000000..8d346b03a
--- /dev/null
+++ b/docs/testing/developer/devguide/images/PROX_Yardstick_config.png
Binary files differ
diff --git a/docs/testing/developer/devguide/images/vPE_Diagram.png b/docs/testing/developer/devguide/images/vPE_Diagram.png
new file mode 100644
index 000000000..c3985b7d9
--- /dev/null
+++ b/docs/testing/developer/devguide/images/vPE_Diagram.png
Binary files differ
diff --git a/docs/testing/developer/devguide/index.rst b/docs/testing/developer/devguide/index.rst
index 92a18f6ee..194099a27 100644
--- a/docs/testing/developer/devguide/index.rst
+++ b/docs/testing/developer/devguide/index.rst
@@ -11,6 +11,6 @@ Yardstick Developer Guide
.. toctree::
:maxdepth: 4
- :numbered:
devguide
+ devguide_nsb_prox
diff --git a/docs/testing/user/userguide/01-introduction.rst b/docs/testing/user/userguide/01-introduction.rst
index c1d5def98..2a3ab4ea7 100755
--- a/docs/testing/user/userguide/01-introduction.rst
+++ b/docs/testing/user/userguide/01-introduction.rst
@@ -1,7 +1,17 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) OPNFV, Ericsson AB and others.
+ License.
+ http://creativecommons.org/licenses/by/4.0
+ (c) OPNFV, Ericsson AB and others.
+
+ Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
============
Introduction
@@ -9,8 +19,8 @@ Introduction
**Welcome to Yardstick's documentation !**
-.. _Pharos: https://wiki.opnfv.org/pharos
-.. _Yardstick: https://wiki.opnfv.org/yardstick
+.. _Pharos: https://wiki.opnfv.org/display/pharos
+.. _Yardstick: https://wiki.opnfv.org/display/yardstick
.. _Presentation: https://wiki.opnfv.org/download/attachments/2925202/opnfv_summit_-_yardstick_project.pdf?version=1&modificationDate=1458848320000&api=v2
Yardstick_ is an OPNFV Project.
@@ -32,7 +42,7 @@ independent.
About This Document
-===================
+-------------------
This document consists of the following chapters:
@@ -42,43 +52,45 @@ This document consists of the following chapters:
* Chapter :doc:`02-methodology` describes the methodology implemented by the
*Yardstick* Project for :term:`NFVI` verification.
-* Chapter :doc:`03-architecture` provides information on the software architecture
- of *Yardstick*.
+* Chapter :doc:`03-architecture` provides information on the software
+ architecture of *Yardstick*.
* Chapter :doc:`04-installation` provides instructions to install *Yardstick*.
-* Chapter :doc:`05-yardstick_plugin` provides information on how to integrate
+* Chapter :doc:`05-operation` provides information on how to use *Yardstick*
+ to run and create testcases.
+
+* Chapter :doc:`06-yardstick-plugin` provides information on how to integrate
other OPNFV testing projects into *Yardstick*.
-* Chapter :doc:`06-result-store-InfluxDB` provides inforamtion on how to run
+* Chapter :doc:`07-result-store-InfluxDB` provides inforamtion on how to run
plug-in test cases and store test results into community's InfluxDB.
-* Chapter :doc:`07-grafana` provides inforamtion on *Yardstick* grafana dashboard
- and how to add a dashboard into *Yardstick* grafana dashboard.
+* Chapter :doc:`08-grafana` provides inforamtion on *Yardstick* grafana
+ dashboard and how to add a dashboard into *Yardstick* grafana dashboard.
-* Chapter :doc:`08-api` provides inforamtion on *Yardstick* ReST API and how to
+* Chapter :doc:`09-api` provides inforamtion on *Yardstick* ReST API and how to
use *Yardstick* API.
-* Chapter :doc:`09-yardstick_user_interface` provides inforamtion on how to use
+* Chapter :doc:`10-yardstick-user-interface` provides inforamtion on how to use
yardstick report CLI to view the test result in table format and also values
pinned on to a graph
-* Chapter :doc:`10-vtc-overview` provides information on the :term:`VTC`.
-
-* Chapter :doc:`13-nsb-overview` describes the methodology implemented by the
+* Chapter :doc:`12-nsb-overview` describes the methodology implemented by the
Yardstick - Network service benchmarking to test real world usecase for a
given VNF.
-* Chapter :doc:`14-nsb_installation` provides instructions to install
- *Yardstick - Network service benchmarking testing*.
+* Chapter :doc:`13-nsb-installation` provides instructions to install
+ *Yardstick - Network Service Benchmarking (NSB) testing*.
+
+* Chapter :doc:`14-nsb-operation` provides information on running *NSB*
* Chapter :doc:`15-list-of-tcs` includes a list of available *Yardstick* test
cases.
-
Contact Yardstick
-=================
+-----------------
Feedback? `Contact us`_
-.. _Contact us: opnfv-users@lists.opnfv.org
+.. _Contact us: mailto:opnfv-users@lists.opnfv.org&subject="#yardstick"
diff --git a/docs/testing/user/userguide/02-methodology.rst b/docs/testing/user/userguide/02-methodology.rst
index 34d271095..bb490c404 100644
--- a/docs/testing/user/userguide/02-methodology.rst
+++ b/docs/testing/user/userguide/02-methodology.rst
@@ -1,20 +1,30 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) OPNFV, Ericsson AB and others.
+ License.
+ http://creativecommons.org/licenses/by/4.0
+ (c) OPNFV, Ericsson AB and others.
+
+ Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
===========
Methodology
===========
Abstract
-========
+--------
This chapter describes the methodology implemented by the Yardstick project for
verifying the :term:`NFVI` from the perspective of a :term:`VNF`.
ETSI-NFV
-========
+--------
.. _NFV-TST001: http://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/001/01.01.01_60/gs_NFV-TST001v010101p.pdf
.. _Yardsticktst: https://wiki.opnfv.org/download/attachments/2925202/opnfv_summit_-_bridging_opnfv_and_etsi.pdf?version=1&modificationDate=1458848320000&api=v2
@@ -53,7 +63,7 @@ The methodology includes five steps:
.. seealso:: Yardsticktst_ for material on alignment ETSI TST001 and Yardstick.
Metrics
-=======
+-------
The metrics, as defined by ETSI GS NFV-TST001, are shown in
:ref:`Table1 <table2_1>`, :ref:`Table2 <table2_2>` and
@@ -98,6 +108,10 @@ options).
| | * Latency for storage read/write operations |
| | * Throughput for storage read/write operations |
| | |
++---------+-------------------------------------------------------------------|
+| Energy | * Energy consumption in Watts (transversal to all others |
+| | scenario) |
+| | |
+---------+-------------------------------------------------------------------+
.. _table2_2:
@@ -173,6 +187,7 @@ options).
| | TC010 | TC024 | |
| | TC012 | TC055 | |
| | TC014 | | |
+| | TC015 | | |
| | TC069 | | |
+---------+-------------------+----------------+------------------------------+
| Network | TC001 | TC044 | TC016 [1]_ |
diff --git a/docs/testing/user/userguide/03-architecture.rst b/docs/testing/user/userguide/03-architecture.rst
index 8336b609d..94081b0e1 100755
--- a/docs/testing/user/userguide/03-architecture.rst
+++ b/docs/testing/user/userguide/03-architecture.rst
@@ -1,30 +1,42 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) 2016 Huawei Technologies Co.,Ltd and others
+ License.
+ http://creativecommons.org/licenses/by/4.0
+ (c) 2016 Huawei Technologies Co.,Ltd and others
+
+ Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
============
Architecture
============
Abstract
-========
-This chapter describes the yardstick framework software architecture. we will introduce it from Use-Case View,
-Logical View, Process View and Deployment View. More technical details will be introduced in this chapter.
+--------
+
+This chapter describes the Yardstick framework software architecture. We will
+introduce it from Use Case View, Logical View, Process View and Deployment
+View. More technical details will be introduced in this chapter.
Overview
-========
+--------
Architecture overview
----------------------
+^^^^^^^^^^^^^^^^^^^^^
Yardstick is mainly written in Python, and test configurations are made
in YAML. Documentation is written in reStructuredText format, i.e. .rst
files. Yardstick is inspired by Rally. Yardstick is intended to run on a
computer with access and credentials to a cloud. The test case is described
in a configuration file given as an argument.
-How it works: the benchmark task configuration file is parsed and converted into
-an internal model. The context part of the model is converted into a Heat
+How it works: the benchmark task configuration file is parsed and converted
+into an internal model. The context part of the model is converted into a Heat
template and deployed into a stack. Each scenario is run using a runner, either
serially or in parallel. Each runner runs in its own subprocess executing
commands in a VM using SSH. The output of each scenario is written as json
@@ -33,7 +45,8 @@ the test result will be shown with grafana.
Concept
--------
+^^^^^^^
+
**Benchmark** - assess the relative performance of something
**Benchmark** configuration file - describes a single test case in yaml format
@@ -43,13 +56,15 @@ names, image names, affinity rules and network configurations. A context is
converted into a simplified Heat template, which is used to deploy onto the
Openstack environment.
-**Data** - Output produced by running a benchmark, written to a file in json format
+**Data** - Output produced by running a benchmark, written to a file in json
+format
**Runner** - Logic that determines how a test scenario is run and reported, for
example the number of test iterations, input value stepping and test duration.
Predefined runner types exist for re-usage, see `Runner types`_.
-**Scenario** - Type/class of measurement for example Ping, Pktgen, (Iperf, LmBench, ...)
+**Scenario** - Type/class of measurement for example Ping, Pktgen, (Iperf,
+LmBench, ...)
**SLA** - Relates to what result boundary a test case must meet to pass. For
example a latency limit, amount or ratio of lost packets and so on. Action
@@ -59,7 +74,7 @@ configuration file and evaluated by the runner.
Runner types
-------------
+^^^^^^^^^^^^
There exists several predefined runner types to choose between when designing
a test scenario:
@@ -126,10 +141,11 @@ Snippet of an Iteration runner configuration:
Use-Case View
-=============
+-------------
+
Yardstick Use-Case View shows two kinds of users. One is the Tester who will
-do testing in cloud, the other is the User who is more concerned with test result
-and result analyses.
+do testing in cloud, the other is the User who is more concerned with test
+result and result analyses.
For testers, they will run a single test case or test case suite to verify
infrastructure compliance or bencnmark their own infrastructure performance.
@@ -155,7 +171,8 @@ on OPNFV testing dashboard which use MongoDB as backend.
:alt: Yardstick Use-Case View
Logical View
-============
+------------
+
Yardstick Logical View describes the most important classes, their
organization, and the most important use-case realizations.
@@ -192,7 +209,8 @@ finished.
:alt: Yardstick framework architecture in Danube
Process View (Test execution flow)
-==================================
+----------------------------------
+
Yardstick process view shows how yardstick runs a test case. Below is the
sequence graph about the test execution flow using heat context, and each
object represents one module in yardstick:
@@ -219,7 +237,8 @@ will call "Openstack" to undeploy the heat stack. Once the stack is
undepoyed, the whole test ends.
Deployment View
-===============
+---------------
+
Yardstick deployment view shows how the yardstick tool can be deployed into the
underlying platform. Generally, yardstick tool is installed on JumpServer(see
`07-installation` for detail installation steps), and JumpServer is
@@ -232,7 +251,7 @@ result for better showing.
:alt: Yardstick Deployment View
Yardstick Directory structure
-=============================
+-----------------------------
**yardstick/** - Yardstick main directory.
@@ -240,27 +259,27 @@ Yardstick Directory structure
with support for different installers.
*docs/* - All documentation is stored here, such as configuration guides,
- user guides and Yardstick descriptions.
+ user guides and Yardstick test case descriptions.
*etc/* - Used for test cases requiring specific POD configurations.
*samples/* - test case samples are stored here, most of all scenario and
- feature's samples are shown in this directory.
+ feature samples are shown in this directory.
-*tests/* - Here both Yardstick internal tests (*functional/* and *unit/*) as
- well as the test cases run to verify the NFVI (*opnfv/*) are stored.
- Also configurations of what to run daily and weekly at the different
- PODs is located here.
+*tests/* - The test cases run to verify the NFVI (*opnfv/*) are stored here.
+ The configurations of what to run daily and weekly at the different
+ PODs are also located here.
-*tools/* - Currently contains tools to build image for VMs which are deployed
- by Heat. Currently contains how to build the yardstick-trusty-server
- image with the different tools that are needed from within the image.
+*tools/* - Contains tools to build image for VMs which are deployed by Heat.
+ Currently contains how to build the yardstick-image with the
+ different tools that are needed from within the image.
*plugin/* - Plug-in configuration files are stored here.
-*vTC/* - Contains the files for running the virtual Traffic Classifier tests.
-
-*yardstick/* - Contains the internals of Yardstick: Runners, Scenario, Contexts,
- CLI parsing, keys, plotting tools, dispatcher, plugin
+*yardstick/* - Contains the internals of Yardstick: :term:`Runners <runner>`,
+ :term:`Scenarios <scenario>`, :term:`Contexts <context>`, CLI
+ parsing, keys, plotting tools, dispatcher, plugin
install/remove scripts and so on.
+*yardstick/tests* - The Yardstick internal tests (*functional/* and *unit/*)
+ are stored here.
diff --git a/docs/testing/user/userguide/04-installation.rst b/docs/testing/user/userguide/04-installation.rst
index caebecc09..6fe42232d 100644
--- a/docs/testing/user/userguide/04-installation.rst
+++ b/docs/testing/user/userguide/04-installation.rst
@@ -1,13 +1,33 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) OPNFV, Ericsson AB, Huawei Technologies Co.,Ltd and others.
+ License.
+ http://creativecommons.org/licenses/by/4.0
+ (c) OPNFV, Ericsson AB, Huawei Technologies Co.,Ltd and others.
+
+
+ Convention for heading levels in Yardstick documentation:
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
+..
+ Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ~~~~~~~ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
======================
Yardstick Installation
======================
-
Yardstick supports installation by Docker or directly in Ubuntu. The
installation procedure for Docker and direct installation are detailed in
the sections below.
@@ -39,19 +59,20 @@ Several prerequisites are needed for Yardstick:
4. Connectivity from the Jumphost to the SUT public/external network
.. note:: *Jumphost* refers to any server which meets the previous
-requirements. Normally it is the same server from where the OPNFV
-deployment has been triggered.
+ requirements. Normally it is the same server from where the OPNFV
+ deployment has been triggered.
.. warning:: Connectivity from Jumphost is essential and it is of paramount
-importance to make sure it is working before even considering to install
-and run Yardstick. Make also sure you understand how your networking is
-designed to work.
+ importance to make sure it is working before even considering to install
+ and run Yardstick. Make also sure you understand how your networking is
+ designed to work.
.. note:: If your Jumphost is operating behind a company http proxy and/or
-Firewall, please first consult `Proxy Support`_ section which is towards the
-end of this document. That section details some tips/tricks which *may* be of
-help in a proxified environment.
+ Firewall, please first consult `Proxy Support`_ section which is towards
+ the end of this document. That section details some tips/tricks which *may*
+ be of help in a proxified environment.
+.. _Install Yardstick using Docker:
Install Yardstick using Docker (first option) (**recommended**)
---------------------------------------------------------------
@@ -85,27 +106,30 @@ Run the Docker image to get a Yardstick container::
docker run -itd --privileged -v /var/run/docker.sock:/var/run/docker.sock \
-p 8888:5000 --name yardstick opnfv/yardstick:stable
-.. table:: Description of the parameters used with ``docker run`` command
-
- ======================= ====================================================
- Parameters Detail
- ======================= ====================================================
- -itd -i: interactive, Keep STDIN open even if not
- attached
- -t: allocate a pseudo-TTY detached mode, in the
- background
- ======================= ====================================================
- --privileged If you want to build ``yardstick-image`` in
- Yardstick container, this parameter is needed
- ======================= ====================================================
- -p 8888:5000 Redirect the a host port (8888) to a container port
- (5000)
- ======================= ====================================================
- -v /var/run/docker.sock If you want to use yardstick env grafana/influxdb to
- :/var/run/docker.sock create a grafana/influxdb container out of Yardstick
- container
- ======================= ====================================================
- --name yardstick The name for this container
+Description of the parameters used with ``docker run`` command
+
+ +------------------------+--------------------------------------------------+
+ | Parameters | Detail |
+ +========================+==================================================+
+ | -itd | -i: interactive, Keep STDIN open even if not |
+ | | attached |
+ | +--------------------------------------------------+
+ | | -t: allocate a pseudo-TTY detached mode, in the |
+ | | background |
+ +------------------------+--------------------------------------------------+
+ | --privileged | If you want to build ``yardstick-image`` in |
+ | | Yardstick container, this parameter is needed |
+ +------------------------+--------------------------------------------------+
+ | -p 8888:5000 | Redirect the a host port (8888) to a container |
+ | | port (5000) |
+ +------------------------+--------------------------------------------------+
+ | -v /var/run/docker.sock| If you want to use yardstick env |
+ | :/var/run/docker.sock | grafana/influxdb to create a grafana/influxdb |
+ | | container out of Yardstick container |
+ +------------------------+--------------------------------------------------+
+ | --name yardstick | The name for this container |
+ +------------------------+--------------------------------------------------+
+
If the host is restarted
^^^^^^^^^^^^^^^^^^^^^^^^
@@ -125,7 +149,7 @@ in the following sections. Before that, access the Yardstick container::
and then configure Yardstick environments in the Yardstick container.
Using the CLI command ``env prepare`` (first way) (**recommended**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
In the Yardstick container, the Yardstick repository is located in the
``/home/opnfv/repos`` directory. Yardstick provides a CLI to prepare OpenStack
@@ -135,18 +159,18 @@ automatically::
yardstick env prepare
.. note:: Since Euphrates release, the above command will not be able to
-automatically configure the ``/etc/yardstick/openstack.creds`` file. So before
-running the above command, it is necessary to create the
-``/etc/yardstick/openstack.creds`` file and save OpenStack environment
-variables into it manually. If you have the openstack credential file saved
-outside the Yardstick Docker container, you can do this easily by mapping the
-credential file into Yardstick container using::
+ automatically configure the ``/etc/yardstick/openstack.creds`` file. So before
+ running the above command, it is necessary to create the
+ ``/etc/yardstick/openstack.creds`` file and save OpenStack environment
+ variables into it manually. If you have the openstack credential file saved
+ outside the Yardstick Docker container, you can do this easily by mapping the
+ credential file into Yardstick container using::
- '-v /path/to/credential_file:/etc/yardstick/openstack.creds'
+ '-v /path/to/credential_file:/etc/yardstick/openstack.creds'
-when running the Yardstick container. For details of the required OpenStack
-environment variables please refer to section `Export OpenStack environment
-variables`_.
+ when running the Yardstick container. For details of the required OpenStack
+ environment variables please refer to section `Export OpenStack environment
+ variables`_.
The ``env prepare`` command may take up to 6-8 minutes to finish building
yardstick-image and other environment preparation. Meanwhile if you wish to
@@ -157,10 +181,10 @@ terminal window and execute the following command::
Manually exporting the env variables and initializing OpenStack (second way)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Export OpenStack environment variables
-######################################
+''''''''''''''''''''''''''''''''''''''
Before running Yardstick it is necessary to export OpenStack environment
variables::
@@ -172,13 +196,13 @@ Environment variables in the ``openrc`` file have to include at least::
OS_AUTH_URL
OS_USERNAME
OS_PASSWORD
- OS_TENANT_NAME
+ OS_PROJECT_NAME
EXTERNAL_NETWORK
A sample ``openrc`` file may look like this::
export OS_PASSWORD=console
- export OS_TENANT_NAME=admin
+ export OS_PROJECT_NAME=admin
export OS_AUTH_URL=http://172.16.1.222:35357/v2.0
export OS_USERNAME=admin
export OS_VOLUME_API_VERSION=2
@@ -186,7 +210,7 @@ A sample ``openrc`` file may look like this::
Manual creation of Yardstick flavor and guest images
-####################################################
+''''''''''''''''''''''''''''''''''''''''''''''''''''
Before executing Yardstick test cases, make sure that Yardstick flavor and
guest image are available in OpenStack. Detailed steps about creating the
@@ -222,8 +246,8 @@ Yardstick is installed::
sudo -EH tools/yardstick-img-modify tools/ubuntu-server-cloudimg-modify.sh
.. warning:: Before building the guest image inside the Yardstick container,
-make sure the container is granted with privilege. The script will create files
-by default in ``/tmp/workspace/yardstick`` and the files will be owned by root.
+ make sure the container is granted with privilege. The script will create files
+ by default in ``/tmp/workspace/yardstick`` and the files will be owned by root.
The created image can be added to OpenStack using the OpenStack client or via
the OpenStack Dashboard::
@@ -243,14 +267,14 @@ image. Add Cirros and Ubuntu images to OpenStack::
Automatic initialization of OpenStack (third way)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++++++++++++++++++++++++++++++++++++++++++++++++++
Similar to the second way, the first step is also to
`Export OpenStack environment variables`_. Then the following steps should be
done.
Automatic creation of Yardstick flavor and guest images
-#######################################################
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''
Yardstick has a script for automatically creating Yardstick flavor and building
Yardstick guest images. This script is mainly used for CI and can be also used
@@ -270,7 +294,7 @@ For usage of Yardstick GUI, please watch our demo video at
`Yardstick GUI demo`_.
.. note:: The Yardstick GUI is still in development, the GUI layout and
-features may change.
+ features may change.
Delete the Yardstick container
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -326,7 +350,6 @@ For installing Yardstick directly in Ubuntu, the ``yardstick env`` command is
not available. You need to prepare OpenStack environment variables and create
Yardstick flavor and guest images manually.
-
Uninstall Yardstick
^^^^^^^^^^^^^^^^^^^
@@ -433,7 +456,7 @@ of Yardstick ``help`` command and ``ping.py`` test sample::
yardstick task start samples/ping.yaml
.. note:: The above commands could be run in both the Yardstick container and
-the Ubuntu directly.
+ the Ubuntu directly.
Each testing tool supported by Yardstick has a sample configuration file.
These configuration files can be found in the ``samples`` directory.
@@ -441,6 +464,114 @@ These configuration files can be found in the ``samples`` directory.
Default location for the output is ``/tmp/yardstick.out``.
+Automatic installation of Yardstick
+-----------------------------------
+
+Automatic installation can be used as an alternative to the manual by
+providing parameters for ansible script ``install.yaml`` in a ``nsb_setup.sh``
+file. Yardstick can be installed on the bare metal and to the container. Yardstick
+container can be either pulled or built.
+
+Bare metal installation
+^^^^^^^^^^^^^^^^^^^^^^^
+
+Modify ``nsb_setup.sh`` file ``install.yaml`` parameters to install Yardstick
+on Ubuntu server:
+
+.. code-block:: console
+
+ ansible-playbook -i install-inventory.ini install.yaml \
+ -e IMAGE_PROPERTY='none' \
+ -e YARDSTICK_DIR=<path to Yardstick folder>
+
+.. note:: By default ``INSTALLATION_MODE`` is ``baremetal``.
+
+.. note:: No modification in ``install-inventory.ini`` is needed for Yardstick
+ installation.
+
+.. note:: To install Yardstick in virtual environment pass parameter
+ ``-e VIRTUAL_ENVIRONMENT=True``.
+
+Container installation
+^^^^^^^^^^^^^^^^^^^^^^
+
+Modify ``install.yaml`` parameters in ``nsb_setup.sh`` file to pull or build
+Yardstick container. To pull Yardstick image and start container run:
+
+.. code-block:: console
+
+ ansible-playbook -i install-inventory.ini install.yaml \
+ -e IMAGE_PROPERTY='none' \
+ -e INSTALLATION_MODE=container_pull
+
+.. note:: Yardstick docker image is available for both Ubuntu 16.04 and Ubuntu
+ 18.04. By default Ubuntu 16.04 based docker image is used. To use
+ Ubuntu 18.04 based docker image pass ``-i opnfv/yardstick-ubuntu-18.04``
+ parameter to ``nsb_setup.sh``.
+
+To build Yardstick image modify Dockerfile as per comments in it and run:
+
+.. code-block:: console
+
+ cd yardstick
+ docker build -f docker/Dockerfile -t opnfv/yardstick:<tag> .
+
+.. note:: Yardstick docker image based on Ubuntu 16.04 will be built.
+ Pass ``-f docker/Dockerfile_ubuntu18`` to build Yardstick docker image based
+ on Ubuntu 18.04.
+
+.. note:: Add ``--build-arg http_proxy=http://<proxy_host>:<proxy_port>`` to
+ build docker image if server is behind the proxy.
+
+Parameters for ``install.yaml``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description of the parameters used with ``install.yaml``:
+
+ +-------------------------+-------------------------------------------------+
+ | Parameters | Detail |
+ +=========================+=================================================+
+ | -i install-inventory.ini|| Installs package dependency to remote servers |
+ | || and localhost |
+ | || Mandatory parameter |
+ | || By default no remote servers are provided |
+ +-------------------------+-------------------------------------------------+
+ | -e YARDSTICK_DIR || Path to Yardstick folder |
+ | || Mandatory parameter for Yardstick bare metal |
+ | || installation |
+ +-------------------------+-------------------------------------------------+
+ | -e INSTALLATION_MODE || baremetal: Yardstick is installed to the bare |
+ | | metal |
+ | || Default parameter |
+ | +-------------------------------------------------+
+ | || container: Yardstick is installed in container |
+ | || Container is built from Dockerfile |
+ | +-------------------------------------------------+
+ | || container_pull: Yardstick is installed in |
+ | || container |
+ | || Container is pulled from docker hub |
+ +-------------------------+-------------------------------------------------+
+ | -e OS_RELEASE || xenial or bionic: Ubuntu version to be used for|
+ | || VM image (nsb or normal) |
+ | || Default is Ubuntu 16.04, xenial |
+ +-------------------------+-------------------------------------------------+
+ | -e IMAGE_PROPERTY || nsb: Build Yardstick NSB VM image |
+ | || Used to run Yardstick NSB tests on sample VNF |
+ | || Default parameter |
+ | +-------------------------------------------------+
+ | || normal: Build VM image to run ping test in |
+ | || OpenStack |
+ | +-------------------------------------------------+
+ | || none: don't build a VM image. |
+ +-------------------------+-------------------------------------------------+
+ | -e VIRTUAL_ENVIRONMENT || False or True: Whether install in virtualenv |
+ | || Default is False |
+ +-------------------------+-------------------------------------------------+
+ | -e YARD_IMAGE_ARCH || CPU architecture on servers |
+ | || Default is 'amd64' |
+ +-------------------------+-------------------------------------------------+
+
+
Deploy InfluxDB and Grafana using Docker
----------------------------------------
@@ -452,26 +583,26 @@ Grafana to display data in the following sections.
Automatic deployment of InfluxDB and Grafana containers (**recommended**)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Firstly, enter the Yardstick container::
+1. Enter the Yardstick container::
- sudo -EH docker exec -it yardstick /bin/bash
+ sudo -EH docker exec -it yardstick /bin/bash
-Secondly, create InfluxDB container and configure with the following command::
+2. Create InfluxDB container and configure with the following command::
- yardstick env influxdb
+ yardstick env influxdb
-Thirdly, create and configure Grafana container::
+3. Create and configure Grafana container::
- yardstick env grafana
+ yardstick env grafana
-Then you can run a test case and visit http://host_ip:3000
+Then you can run a test case and visit http://host_ip:1948
(``admin``/``admin``) to see the results.
.. note:: Executing ``yardstick env`` command to deploy InfluxDB and Grafana
-requires Jumphost's docker API version => 1.24. Run the following command to
-check the docker API version on the Jumphost::
+ requires Jumphost's docker API version => 1.24. Run the following command to
+ check the docker API version on the Jumphost::
- docker version
+ docker version
Manual deployment of InfluxDB and Grafana containers
@@ -490,21 +621,21 @@ Run influxDB::
sudo -EH docker run -d --name influxdb \
-p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 \
tutum/influxdb
- docker exec -it influxdb bash
Configure influxDB::
- influx
- >CREATE USER root WITH PASSWORD 'root' WITH ALL PRIVILEGES
- >CREATE DATABASE yardstick;
- >use yardstick;
- >show MEASUREMENTS;
+ docker exec -it influxdb influx
+ > CREATE USER root WITH PASSWORD 'root' WITH ALL PRIVILEGES
+ > CREATE DATABASE yardstick;
+ > use yardstick;
+ > show MEASUREMENTS;
+ > exit
Run Grafana::
- sudo -EH docker run -d --name grafana -p 3000:3000 grafana/grafana
+ sudo -EH docker run -d --name grafana -p 1948:3000 grafana/grafana
-Log on http://{YOUR_IP_HERE}:3000 using ``admin``/``admin`` and configure
+Log on to ``http://{YOUR_IP_HERE}:1948`` using ``admin``/``admin`` and configure
database resource to be ``{YOUR_IP_HERE}:8086``.
.. image:: images/Grafana_config.png
@@ -517,7 +648,7 @@ Configure ``yardstick.conf``::
sudo cp etc/yardstick/yardstick.conf.sample /etc/yardstick/yardstick.conf
sudo vi /etc/yardstick/yardstick.conf
-Modify ``yardstick.conf``::
+Modify ``yardstick.conf`` to add the ``influxdb`` dispatcher::
[DEFAULT]
debug = True
@@ -530,207 +661,11 @@ Modify ``yardstick.conf``::
username = root
password = root
-Now you can run Yardstick test cases and store the results in influxDB.
-
+Now Yardstick will store results in InfluxDB when you run a testcase.
Deploy InfluxDB and Grafana directly in Ubuntu (**Todo**)
---------------------------------------------------------
-
-Yardstick common CLI
---------------------
-
-List test cases
-^^^^^^^^^^^^^^^
-
-``yardstick testcase list``: This command line would list all test cases in
-Yardstick. It would show like below::
-
- +---------------------------------------------------------------------------------------
- | Testcase Name | Description
- +---------------------------------------------------------------------------------------
- | opnfv_yardstick_tc001 | Measure network throughput using pktgen
- | opnfv_yardstick_tc002 | measure network latency using ping
- | opnfv_yardstick_tc005 | Measure Storage IOPS, throughput and latency using fio.
- ...
- +---------------------------------------------------------------------------------------
-
-
-Show a test case config file
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Take opnfv_yardstick_tc002 for an example. This test case measure network
-latency. You just need to type in ``yardstick testcase show
-opnfv_yardstick_tc002``, and the console would show the config yaml of this
-test case::
-
- ---
-
- schema: "yardstick:task:0.1"
- description: >
- Yardstick TC002 config file;
- measure network latency using ping;
-
- {% set image = image or "cirros-0.3.5" %}
-
- {% set provider = provider or none %}
- {% set physical_network = physical_network or 'physnet1' %}
- {% set segmentation_id = segmentation_id or none %}
- {% set packetsize = packetsize or 100 %}
-
- scenarios:
- {% for i in range(2) %}
- -
- type: Ping
- options:
- packetsize: {{packetsize}}
- host: athena.demo
- target: ares.demo
-
- runner:
- type: Duration
- duration: 60
- interval: 10
-
- sla:
- max_rtt: 10
- action: monitor
- {% endfor %}
-
- context:
- name: demo
- image: {{image}}
- flavor: yardstick-flavor
- user: cirros
-
- placement_groups:
- pgrp1:
- policy: "availability"
-
- servers:
- athena:
- floating_ip: true
- placement: "pgrp1"
- ares:
- placement: "pgrp1"
-
- networks:
- test:
- cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
- provider: {{provider}}
- physical_network: {{physical_network}}å
- {% if segmentation_id %}
- segmentation_id: {{segmentation_id}}
- {% endif %}
- {% endif %}
-
-
-Start a task to run yardstick test case
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-If you want run a test case, then you need to use ``yardstick task start
-<test_case_path>`` this command support some parameters as below::
-
- +---------------------+--------------------------------------------------+
- | Parameters | Detail |
- +=====================+==================================================+
- | -d | show debug log of yardstick running |
- | | |
- +---------------------+--------------------------------------------------+
- | --task-args | If you want to customize test case parameters, |
- | | use "--task-args" to pass the value. The format |
- | | is a json string with parameter key-value pair. |
- | | |
- +---------------------+--------------------------------------------------+
- | --task-args-file | If you want to use yardstick |
- | | env prepare command(or |
- | | related API) to load the |
- +---------------------+--------------------------------------------------+
- | --parse-only | |
- | | |
- | | |
- +---------------------+--------------------------------------------------+
- | --output-file \ | Specify where to output the log. if not pass, |
- | OUTPUT_FILE_PATH | the default value is |
- | | "/tmp/yardstick/yardstick.log" |
- | | |
- +---------------------+--------------------------------------------------+
- | --suite \ | run a test suite, TEST_SUITE_PATH specify where |
- | TEST_SUITE_PATH | the test suite locates |
- | | |
- +---------------------+--------------------------------------------------+
-
-
-Run Yardstick in a local environment
-------------------------------------
-
-We also have a guide about how to run Yardstick in a local environment.
-This work is contributed by Tapio Tallgren.
-You can find this guide at `How to run Yardstick in a local environment`_.
-
-
-Create a test suite for Yardstick
-------------------------------------
-
-A test suite in yardstick is a yaml file which include one or more test cases.
-Yardstick is able to support running test suite task, so you can customize your
-own test suite and run it in one task.
-
-``tests/opnfv/test_suites`` is the folder where Yardstick puts CI test suite.
-A typical test suite is like below (the ``fuel_test_suite.yaml`` example)::
-
- ---
- # Fuel integration test task suite
-
- schema: "yardstick:suite:0.1"
-
- name: "fuel_test_suite"
- test_cases_dir: "samples/"
- test_cases:
- -
- file_name: ping.yaml
- -
- file_name: iperf3.yaml
-
-As you can see, there are two test cases in the ``fuel_test_suite.yaml``. The
-``schema`` and the ``name`` must be specified. The test cases should be listed
-via the tag ``test_cases`` and their relative path is also marked via the tag
-``test_cases_dir``.
-
-Yardstick test suite also supports constraints and task args for each test
-case. Here is another sample (the ``os-nosdn-nofeature-ha.yaml`` example) to
-show this, which is digested from one big test suite::
-
- ---
-
- schema: "yardstick:suite:0.1"
-
- name: "os-nosdn-nofeature-ha"
- test_cases_dir: "tests/opnfv/test_cases/"
- test_cases:
- -
- file_name: opnfv_yardstick_tc002.yaml
- -
- file_name: opnfv_yardstick_tc005.yaml
- -
- file_name: opnfv_yardstick_tc043.yaml
- constraint:
- installer: compass
- pod: huawei-pod1
- task_args:
- huawei-pod1: '{"pod_info": "etc/yardstick/.../pod.yaml",
- "host": "node4.LF","target": "node5.LF"}'
-
-As you can see in test case ``opnfv_yardstick_tc043.yaml``, there are two
-tags, ``constraint`` and ``task_args``. ``constraint`` is to specify which
-installer or pod it can be run in the CI environment. ``task_args`` is to
-specify the task arguments for each pod.
-
-All in all, to create a test suite in Yardstick, you just need to create a
-yaml file and add test cases, constraint or task arguments if necessary.
-
-
Proxy Support
-------------
@@ -790,7 +725,7 @@ stop and delete the container::
sudo docker rm yardstick
.. warning:: Be careful, the above ``rm`` command will delete the container
-completely. Everything on this container will be lost.
+ completely. Everything on this container will be lost.
Then follow the previous instructions `Prepare the Yardstick container`_ to
rebuild the Yardstick container.
@@ -804,4 +739,3 @@ References
.. _`Cirros 0.3.5`: http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
.. _`Ubuntu 16.04`: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
.. _`Yardstick GUI demo`: https://www.youtube.com/watch?v=M3qbJDp6QBk
-.. _`How to run Yardstick in a local environment`: https://wiki.opnfv.org/display/yardstick/How+to+run+Yardstick+in+a+local+environment
diff --git a/docs/testing/user/userguide/05-operation.rst b/docs/testing/user/userguide/05-operation.rst
new file mode 100644
index 000000000..82539c97f
--- /dev/null
+++ b/docs/testing/user/userguide/05-operation.rst
@@ -0,0 +1,296 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Intel, Ericsson AB, Huawei Technologies Co. Ltd and others.
+
+..
+ Convention for heading levels in Yardstick:
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+ Avoid deeper levels because they do not render well.
+
+===============
+Yardstick Usage
+===============
+
+Once you have yardstick installed, you can start using it to run testcases
+immediately, through the CLI. You can also define and run new testcases and
+test suites. This chapter details basic usage (running testcases), as well as
+more advanced usage (creating your own testcases).
+
+Yardstick common CLI
+--------------------
+
+List test cases
+^^^^^^^^^^^^^^^
+
+``yardstick testcase list``: This command line would list all test cases in
+Yardstick. It would show like below::
+
+ +---------------------------------------------------------------------------------------
+ | Testcase Name | Description
+ +---------------------------------------------------------------------------------------
+ | opnfv_yardstick_tc001 | Measure network throughput using pktgen
+ | opnfv_yardstick_tc002 | measure network latency using ping
+ | opnfv_yardstick_tc005 | Measure Storage IOPS, throughput and latency using fio.
+ ...
+ +---------------------------------------------------------------------------------------
+
+
+Show a test case config file
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Take opnfv_yardstick_tc002 for an example. This test case measure network
+latency. You just need to type in ``yardstick testcase show
+opnfv_yardstick_tc002``, and the console would show the config yaml of this
+test case:
+
+.. literalinclude::
+ ../../../../tests/opnfv/test_cases/opnfv_yardstick_tc002.yaml
+ :lines: 9-
+
+Run a Yardstick test case
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you want run a test case, then you need to use ``yardstick task start
+<test_case_path>`` this command support some parameters as below:
+
+ +---------------------+--------------------------------------------------+
+ | Parameters | Detail |
+ +=====================+==================================================+
+ | -d | show debug log of yardstick running |
+ | | |
+ +---------------------+--------------------------------------------------+
+ | --task-args | If you want to customize test case parameters, |
+ | | use "--task-args" to pass the value. The format |
+ | | is a json string with parameter key-value pair. |
+ | | |
+ +---------------------+--------------------------------------------------+
+ | --task-args-file | If you want to use yardstick |
+ | | env prepare command(or |
+ | | related API) to load the |
+ +---------------------+--------------------------------------------------+
+ | --parse-only | |
+ | | |
+ | | |
+ +---------------------+--------------------------------------------------+
+ | --output-file \ | Specify where to output the log. if not pass, |
+ | OUTPUT_FILE_PATH | the default value is |
+ | | "/tmp/yardstick/yardstick.log" |
+ | | |
+ +---------------------+--------------------------------------------------+
+ | --suite \ | run a test suite, TEST_SUITE_PATH specify where |
+ | TEST_SUITE_PATH | the test suite locates |
+ | | |
+ +---------------------+--------------------------------------------------+
+
+
+Run Yardstick in a local environment
+------------------------------------
+
+We also have a guide about `How to run Yardstick in a local environment`_.
+This work is contributed by Tapio Tallgren.
+
+Create a new testcase for Yardstick
+-----------------------------------
+
+As a user, you may want to define a new testcase in addition to the ones
+already available in Yardstick. This section will show you how to do this.
+
+Each testcase consists of two sections:
+
+* ``scenarios`` describes what will be done by the test
+* ``context`` describes the environment in which the test will be run.
+
+Defining the testcase scenarios
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+TODO
+
+Defining the testcase context(s)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Each testcase consists of one or more contexts, which describe the environment
+in which the testcase will be run.
+Current available contexts are:
+
+* ``Dummy``: this is a no-op context, and is used when there is no environment
+ to set up e.g. when testing whether OpenStack services are available
+* ``Node``: this context is used to perform operations on baremetal servers
+* ``Heat``: uses OpenStack to provision the required hosts, networks, etc.
+* ``Kubernetes``: uses Kubernetes to provision the resources required for the
+ test.
+
+Regardless of the context type, the ``context`` section of the testcase will
+consist of the following::
+
+ context:
+ name: demo
+ type: Dummy|Node|Heat|Kubernetes
+
+The content of the ``context`` section will vary based on the context type.
+
+Dummy Context
++++++++++++++
+
+No additional information is required for the Dummy context::
+
+ context:
+ name: my_context
+ type: Dummy
+
+Node Context
+++++++++++++
+
+TODO
+
+Heat Context
+++++++++++++
+
+In addition to ``name`` and ``type``, a Heat context requires the following
+arguments:
+
+* ``image``: the image to be used to boot VMs
+* ``flavor``: the flavor to be used for VMs in the context
+* ``user``: the username for connecting into the VMs
+* ``networks``: The networks to be created, networks are identified by name
+
+ * ``name``: network name (required)
+ * (TODO) Any optional attributes
+
+* ``servers``: The servers to be created
+
+ * ``name``: server name
+ * (TODO) Any optional attributes
+
+In addition to the required arguments, the following optional arguments can be
+passed to the Heat context:
+
+* ``placement_groups``:
+
+ * ``name``: the name of the placement group to be created
+ * ``policy``: either ``affinity`` or ``availability``
+* ``server_groups``:
+
+ * ``name``: the name of the server group
+ * ``policy``: either ``affinity`` or ``anti-affinity``
+
+Combining these elements together, a sample Heat context config looks like:
+
+.. literalinclude::
+ ../../../../yardstick/tests/integration/dummy-scenario-heat-context.yaml
+ :start-after: ---
+ :emphasize-lines: 14-
+
+Using exisiting HOT Templates
+'''''''''''''''''''''''''''''
+
+TODO
+
+Kubernetes Context
+++++++++++++++++++
+
+TODO
+
+Using multiple contexts in a testcase
++++++++++++++++++++++++++++++++++++++
+
+When using multiple contexts in a testcase, the ``context`` section is replaced
+by a ``contexts`` section, and each context is separated with a ``-`` line::
+
+ contexts:
+ -
+ name: context1
+ type: Heat
+ ...
+ -
+ name: context2
+ type: Node
+ ...
+
+
+Reusing a context
++++++++++++++++++
+
+Typically, a context is torn down after a testcase is run, however, the user
+may wish to keep an context intact after a testcase is complete.
+
+.. note::
+ This feature has been implemented for the Heat context only
+
+To keep or reuse a context, the ``flags`` option must be specified:
+
+* ``no_setup``: skip the deploy stage, and fetch the details of a deployed
+ context/Heat stack.
+* ``no_teardown``: skip the undeploy stage, thus keeping the stack intact for
+ the next test
+
+If either of these ``flags`` are ``True``, the context information must still
+be given. By default, these flags are disabled::
+
+ context:
+ name: mycontext
+ type: Heat
+ flags:
+ no_setup: True
+ no_teardown: True
+ ...
+
+Create a test suite for Yardstick
+---------------------------------
+
+A test suite in Yardstick is a .yaml file which includes one or more test
+cases. Yardstick is able to support running test suite task, so you can
+customize your own test suite and run it in one task.
+
+``tests/opnfv/test_suites`` is the folder where Yardstick puts CI test suite.
+A typical test suite is like below (the ``fuel_test_suite.yaml`` example):
+
+.. literalinclude::
+ ../../../../tests/opnfv/test_suites/fuel_test_suite.yaml
+ :lines: 9-
+
+As you can see, there are two test cases in the ``fuel_test_suite.yaml``. The
+``schema`` and the ``name`` must be specified. The test cases should be listed
+via the tag ``test_cases`` and their relative path is also marked via the tag
+``test_cases_dir``.
+
+Yardstick test suite also supports constraints and task args for each test
+case. Here is another sample (the ``os-nosdn-nofeature-ha.yaml`` example) to
+show this, which is digested from one big test suite::
+
+ ---
+
+ schema: "yardstick:suite:0.1"
+
+ name: "os-nosdn-nofeature-ha"
+ test_cases_dir: "tests/opnfv/test_cases/"
+ test_cases:
+ -
+ file_name: opnfv_yardstick_tc002.yaml
+ -
+ file_name: opnfv_yardstick_tc005.yaml
+ -
+ file_name: opnfv_yardstick_tc043.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+ task_args:
+ huawei-pod1: '{"pod_info": "etc/yardstick/.../pod.yaml",
+ "host": "node4.LF","target": "node5.LF"}'
+
+As you can see in test case ``opnfv_yardstick_tc043.yaml``, there are two
+tags, ``constraint`` and ``task_args``. ``constraint`` is to specify which
+installer or pod it can be run in the CI environment. ``task_args`` is to
+specify the task arguments for each pod.
+
+All in all, to create a test suite in Yardstick, you just need to create a
+yaml file and add test cases, constraint or task arguments if necessary.
+
+References
+----------
+
+.. _`How to run Yardstick in a local environment`: https://wiki.opnfv.org/display/yardstick/How+to+run+Yardstick+in+a+local+environment
diff --git a/docs/testing/user/userguide/05-yardstick_plugin.rst b/docs/testing/user/userguide/06-yardstick-plugin.rst
index ec0b49ff1..a5d890b14 100644
--- a/docs/testing/user/userguide/05-yardstick_plugin.rst
+++ b/docs/testing/user/userguide/06-yardstick-plugin.rst
@@ -3,13 +3,23 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c) OPNFV, Ericsson AB, Huawei Technologies Co.,Ltd and others.
+.. Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
===================================
Installing a plug-in into Yardstick
===================================
Abstract
-========
+--------
Yardstick provides a ``plugin`` CLI command to support integration with other
OPNFV testing projects. Below is an example invocation of Yardstick plugin
@@ -17,7 +27,7 @@ command and Storperf plug-in sample.
Installing Storperf into Yardstick
-==================================
+----------------------------------
Storperf is delivered as a Docker container from
https://hub.docker.com/r/opnfv/storperf/tags/.
@@ -31,7 +41,7 @@ In this introduction we will install Storperf on Jump Host.
Step 0: Environment preparation
->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Running Storperf on Jump Host
Requirements:
@@ -47,26 +57,26 @@ environment and other dependencies:
1. Make sure docker is installed.
2. Make sure Keystone, Nova, Neutron, Glance, Heat are installed correctly.
3. Make sure Jump Host have access to the OpenStack Controller API.
-4. Make sure Jump Host must have internet connectivity for downloading docker image.
-5. You need to know where to get basic openstack Keystone authorization info, such as
- OS_PASSWORD, OS_TENANT_NAME, OS_AUTH_URL, OS_USERNAME.
-6. To run a Storperf container, you need to have OpenStack Controller environment
- variables defined and passed to Storperf container. The best way to do this is to
- put environment variables in a "storperf_admin-rc" file. The storperf_admin-rc
- should include credential environment variables at least:
-
-* OS_AUTH_URL
-* OS_USERNAME
-* OS_PASSWORD
-* OS_TENANT_ID
-* OS_TENANT_NAME
-* OS_PROJECT_NAME
-* OS_PROJECT_ID
-* OS_USER_DOMAIN_ID
-
-*Yardstick* has a "prepare_storperf_admin-rc.sh" script which can be used to
-generate the "storperf_admin-rc" file, this script is located at
-test/ci/prepare_storperf_admin-rc.sh
+4. Make sure Jump Host must have internet connectivity for downloading docker
+ image.
+5. You need to know where to get basic openstack Keystone authorization info,
+ such as OS_PASSWORD, OS_PROJECT_NAME, OS_AUTH_URL, OS_USERNAME.
+6. To run a Storperf container, you need to have OpenStack Controller
+ environment variables defined and passed to Storperf container. The best way
+ to do this is to put environment variables in a "storperf_admin-rc" file.
+ The storperf_admin-rc should include credential environment variables at
+ least:
+
+ * OS_AUTH_URL
+ * OS_USERNAME
+ * OS_PASSWORD
+ * OS_PROJECT_NAME
+ * OS_PROJECT_ID
+ * OS_USER_DOMAIN_ID
+
+*Yardstick* has a ``prepare_storperf_admin-rc.sh`` script which can be used to
+generate the ``storperf_admin-rc`` file, this script is located at
+``test/ci/prepare_storperf_admin-rc.sh``
::
@@ -76,8 +86,9 @@ test/ci/prepare_storperf_admin-rc.sh
USERNAME=${OS_USERNAME:-admin}
PASSWORD=${OS_PASSWORD:-console}
+ # OS_TENANT_NAME is still present to keep backward compatibility with legacy
+ # deployments, but should be replaced by OS_PROJECT_NAME.
TENANT_NAME=${OS_TENANT_NAME:-admin}
- TENANT_ID=`openstack project show admin|grep '\bid\b' |awk -F '|' '{print $3}'|sed -e 's/^[[:space:]]*//'`
PROJECT_NAME=${OS_PROJECT_NAME:-$TENANT_NAME}
PROJECT_ID=`openstack project show admin|grep '\bid\b' |awk -F '|' '{print $3}'|sed -e 's/^[[:space:]]*//'`
USER_DOMAIN_ID=${OS_USER_DOMAIN_ID:-default}
@@ -90,23 +101,21 @@ test/ci/prepare_storperf_admin-rc.sh
echo "OS_PASSWORD="$PASSWORD >> ~/storperf_admin-rc
echo "OS_PROJECT_NAME="$PROJECT_NAME >> ~/storperf_admin-rc
echo "OS_PROJECT_ID="$PROJECT_ID >> ~/storperf_admin-rc
- echo "OS_TENANT_NAME="$TENANT_NAME >> ~/storperf_admin-rc
- echo "OS_TENANT_ID="$TENANT_ID >> ~/storperf_admin-rc
echo "OS_USER_DOMAIN_ID="$USER_DOMAIN_ID >> ~/storperf_admin-rc
-The generated "storperf_admin-rc" file will be stored in the root directory. If
-you installed *Yardstick* using Docker, this file will be located in the
+The generated ``storperf_admin-rc`` file will be stored in the root directory.
+If you installed *Yardstick* using Docker, this file will be located in the
container. You may need to copy it to the root directory of the Storperf
deployed host.
Step 1: Plug-in configuration file preparation
->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To install a plug-in, first you need to prepare a plug-in configuration file in
-YAML format and store it in the "plugin" directory. The plugin configration file
-work as the input of yardstick "plugin" command. Below is the Storperf plug-in
-configuration file sample:
+YAML format and store it in the "plugin" directory. The plugin configration
+file work as the input of yardstick "plugin" command. Below is the Storperf
+plug-in configuration file sample:
::
---
@@ -126,29 +135,29 @@ Here the Storperf will be installed on IP 192.168.23.2 which is the Jump Host
in my local environment.
Step 2: Plug-in install/remove scripts preparation
->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-In "yardstick/resource/scripts" directory, there are two folders: a "install"
-folder and a "remove" folder. You need to store the plug-in install/remove
-scripts in these two folders respectively.
+In ``yardstick/resource/scripts`` directory, there are two folders: an
+``install`` folder and a ``remove`` folder. You need to store the plug-in
+install/remove scripts in these two folders respectively.
The detailed installation or remove operation should de defined in these two
scripts. The name of both install and remove scripts should match the plugin-in
name that you specified in the plug-in configuration file.
-For example, the install and remove scripts for Storperf are both named to
-"storperf.bash".
+For example, the install and remove scripts for Storperf are both named
+``storperf.bash``.
Step 3: Install and remove Storperf
->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To install Storperf, simply execute the following command::
# Install Storperf
yardstick plugin install plugin/storperf.yaml
-removing Storperf from yardstick
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Removing Storperf from Yardstick
+++++++++++++++++++++++++++++++++
To remove Storperf, simply execute the following command::
diff --git a/docs/testing/user/userguide/06-result-store-InfluxDB.rst b/docs/testing/user/userguide/07-result-store-InfluxDB.rst
index 747927889..8a9196b1b 100644
--- a/docs/testing/user/userguide/06-result-store-InfluxDB.rst
+++ b/docs/testing/user/userguide/07-result-store-InfluxDB.rst
@@ -1,14 +1,23 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) OPNFV, 2016 Huawei Technologies Co.,Ltd and others.
+ License.
+ http://creativecommons.org/licenses/by/4.0
+ (c) OPNFV, 2016 Huawei Technologies Co.,Ltd and others.
+ Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
==============================================
Store Other Project's Test Results in InfluxDB
==============================================
Abstract
-========
+--------
.. _Framework: https://wiki.opnfv.org/download/attachments/6827660/wiki.png?version=1&modificationDate=1470298075000&api=v2
@@ -21,10 +30,10 @@ into community's InfluxDB. The framework is shown in Framework_.
:alt: Store Other Project's Test Results in InfluxDB
Store Storperf Test Results into Community's InfluxDB
-=====================================================
+-----------------------------------------------------
.. _Influxdb: https://git.opnfv.org/cgit/yardstick/tree/yardstick/dispatcher/influxdb.py
-.. _Mingjiang: limingjiang@huawei.com
+.. _Mingjiang: mailto:limingjiang@huawei.com
.. _Visual: https://wiki.opnfv.org/download/attachments/6827660/tc074.PNG?version=1&modificationDate=1470298075000&api=v2
.. _Login: http://testresults.opnfv.org/grafana/login
@@ -40,12 +49,13 @@ into community's InfluxDB:
will be supported in the future.
Our plan is to support rest-api in D release so that other testing projects can
-call the rest-api to use yardstick dispatcher service to push data to yardstick's
-influxdb database.
+call the rest-api to use yardstick dispatcher service to push data to
+Yardstick's InfluxDB database.
-For now, influxdb only support line protocol, and the json protocol is deprecated.
+For now, InfluxDB only supports line protocol, and the json protocol is
+deprecated.
-Take ping test case for example, the raw_result is json format like this:
+Take ping test case for example, the ``raw_result`` is json format like this:
::
"benchmark": {
@@ -61,23 +71,24 @@ Take ping test case for example, the raw_result is json format like this:
"runner_id": 2625
}
-With the help of "influxdb_line_protocol", the json is transform to like below as a line string:
-::
+With the help of "influxdb_line_protocol", the json is transform to like below
+as a line string::
'ping,deploy_scenario=unknown,host=athena.demo,installer=unknown,pod_name=unknown,
runner_id=2625,scenarios=Ping,target=ares.demo,task_id=77755f38-1f6a-4667-a7f3-
301c99963656,version=unknown rtt.ares=1.125 1470315409868094976'
-So, for data output of json format, you just need to transform json into line format and call
-influxdb api to post the data into the database. All this function has been implemented in Influxdb_.
-If you need support on this, please contact Mingjiang_.
+So, for data output of json format, you just need to transform json into line
+format and call influxdb api to post the data into the database. All this
+function has been implemented in Influxdb_. If you need support on this, please
+contact Mingjiang_.
::
curl -i -XPOST 'http://104.197.68.199:8086/write?db=yardstick' --
data-binary 'ping,deploy_scenario=unknown,host=athena.demo,installer=unknown, ...'
-Grafana will be used for visualizing the collected test data, which is shown in Visual_. Grafana
-can be accessed by Login_.
+Grafana will be used for visualizing the collected test data, which is shown in
+Visual_. Grafana can be accessed by Login_.
.. image:: images/results_visualization.png
diff --git a/docs/testing/user/userguide/07-grafana.rst b/docs/testing/user/userguide/08-grafana.rst
index 416857b71..ebe9f570d 100644
--- a/docs/testing/user/userguide/07-grafana.rst
+++ b/docs/testing/user/userguide/08-grafana.rst
@@ -3,13 +3,23 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c) 2016 Huawei Technologies Co.,Ltd and others
+.. Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
=================
Grafana dashboard
=================
Abstract
-========
+--------
This chapter describes the Yardstick grafana dashboard. The Yardstick grafana
dashboard can be found here: http://testresults.opnfv.org/grafana/
@@ -21,14 +31,14 @@ dashboard can be found here: http://testresults.opnfv.org/grafana/
Public access
-=============
+-------------
Yardstick provids a public account for accessing to the dashboard. The username
and password are both set to ‘opnfv’.
Testcase dashboard
-==================
+------------------
For each test case, there is a dedicated dashboard. Shown here is the dashboard
of TC002.
@@ -36,7 +46,7 @@ of TC002.
.. image:: images/TC002.png
:width: 800px
- :alt:TC002 dashboard
+ :alt: TC002 dashboard
For each test case dashboard. On the top left, we have a dashboard selection,
you can switch to different test cases using this pull-down menu.
@@ -56,7 +66,7 @@ zoom out the chart.
Administration access
-=====================
+---------------------
For a user with administration rights it is easy to update and save any
dashboard configuration. Saved updates immediately take effect and become live.
@@ -72,11 +82,11 @@ This may cause issues like:
Any change made by administrator should be careful.
-Add a dashboard into yardstick grafana
-======================================
+Add a dashboard into Yardstick Grafana
+--------------------------------------
Due to security concern, users that using the public opnfv account are not able
-to edit the yardstick grafana directly.It takes a few more steps for a
+to edit the yardstick grafana directly. It takes a few more steps for a
non-yardstick user to add a custom dashboard into yardstick grafana.
There are 6 steps to go.
@@ -108,8 +118,10 @@ There are 6 steps to go.
5. When finished with all Grafana configuration changes in this temporary
dashboard then chose "export" of the updated dashboard copy into a JSON file
- and put it up for review in Gerrit, in file /yardstick/dashboard/Yardstick-TCxxx-yyyyyyyyyyyyy.
- For instance a typical default name of the file would be "Yardstick-TC001 Copy-1234567891234".
+ and put it up for review in Gerrit, in file
+ ``/yardstick/dashboard/Yardstick-TCxxx-yyyyyyyyyyyyy``.
+ For instance a typical default name of the file would be
+ ``Yardstick-TC001 Copy-1234567891234``.
6. Once you finish your dashboard, the next step is exporting the configuration
file and propose a patch into Yardstick. Yardstick team will review and
diff --git a/docs/testing/user/userguide/08-api.rst b/docs/testing/user/userguide/09-api.rst
index ff6e62228..f227878ae 100644
--- a/docs/testing/user/userguide/08-api.rst
+++ b/docs/testing/user/userguide/09-api.rst
@@ -2,9 +2,19 @@
.. License.
.. http://creativecommons.org/licenses/by/4.0
.. (c) OPNFV, Huawei Technologies Co.,Ltd and others.
+.. Convention for heading levels in Yardstick documentation:
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
+=====================
Yardstick Restful API
-======================
+=====================
Abstract
@@ -17,11 +27,14 @@ Available API
-------------
/yardstick/env/action
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to prepare Yardstick test environment. For Euphrates, it supports:
+Description: This API is used to prepare Yardstick test environment.
+For Euphrates, it supports:
-1. Prepare yardstick test environment, including set external network environment variable, load Yardstick VM images and create flavors;
+1. Prepare yardstick test environment, including setting the
+ ``EXTERNAL_NETWORK`` environment variable, load Yardstick VM images and
+ create flavors;
2. Start an InfluxDB Docker container and config Yardstick output to InfluxDB;
3. Start a Grafana Docker container and config it with the InfluxDB.
@@ -35,30 +48,33 @@ Prepare Yardstick test environment
Example::
{
- 'action': 'prepareYardstickEnv'
+ 'action': 'prepare_env'
}
-This is an asynchronous API. You need to call /yardstick/asynctask API to get the task result.
+This is an asynchronous API. You need to call ``/yardstick/asynctask`` API to
+get the task result.
Start and config an InfluxDB docker container
Example::
{
- 'action': 'createInfluxDBContainer'
+ 'action': 'create_influxdb'
}
-This is an asynchronous API. You need to call /yardstick/asynctask API to get the task result.
+This is an asynchronous API. You need to call ``/yardstick/asynctask`` API to
+get the task result.
Start and config a Grafana docker container
Example::
{
- 'action': 'createGrafanaContainer'
+ 'action': 'create_grafana'
}
-This is an asynchronous API. You need to call /yardstick/asynctask API to get the task result.
+This is an asynchronous API. You need to call ``/yardstick/asynctask`` API to
+get the task result.
/yardstick/asynctask
@@ -73,10 +89,15 @@ Method: GET
Get the status of asynchronous tasks
Example::
- http://localhost:8888/yardstick/asynctask?task_id=3f3f5e03-972a-4847-a5f8-154f1b31db8c
+ http://<SERVER IP>:<PORT>/yardstick/asynctask?task_id=3f3f5e03-972a-4847-a5f8-154f1b31db8c
The returned status will be 0(running), 1(finished) and 2(failed).
+NOTE::
+
+ <SERVER IP>: The ip of the host where you start your yardstick container
+ <PORT>: The outside port of port mapping which set when you start start yardstick container
+
/yardstick/testcases
^^^^^^^^^^^^^^^^^^^^
@@ -90,7 +111,7 @@ Method: GET
Get a list of released test cases
Example::
- http://localhost:8888/yardstick/testcases
+ http://<SERVER IP>:<PORT>/yardstick/testcases
/yardstick/testcases/release/action
@@ -106,14 +127,15 @@ Run a released test case
Example::
{
- 'action': 'runTestCase',
+ 'action': 'run_test_case',
'args': {
'opts': {},
- 'testcase': 'tc002'
+ 'testcase': 'opnfv_yardstick_tc002'
}
}
-This is an asynchronous API. You need to call /yardstick/results to get the result.
+This is an asynchronous API. You need to call ``/yardstick/results`` to get the
+result.
/yardstick/testcases/samples/action
@@ -129,20 +151,22 @@ Run a sample test case
Example::
{
- 'action': 'runTestCase',
+ 'action': 'run_test_case',
'args': {
'opts': {},
'testcase': 'ping'
}
}
-This is an asynchronous API. You need to call /yardstick/results to get the result.
+This is an asynchronous API. You need to call ``/yardstick/results`` to get
+the result.
/yardstick/testcases/<testcase_name>/docs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to the documentation of a certain released test case.
+Description: This API is used to the documentation of a certain released test
+case.
Method: GET
@@ -151,11 +175,11 @@ Method: GET
Get the documentation of a certain test case
Example::
- http://localhost:8888/yardstick/taskcases/opnfv_yardstick_tc002/docs
+ http://<SERVER IP>:<PORT>/yardstick/taskcases/opnfv_yardstick_tc002/docs
/yardstick/testsuites/action
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Description: This API is used to run a Yardstick test suite.
@@ -167,17 +191,19 @@ Run a test suite
Example::
{
- 'action': 'runTestSuite',
+ 'action': 'run_test_suite',
'args': {
'opts': {},
- 'testcase': 'smoke'
+ 'testsuite': 'opnfv_smoke'
}
}
-This is an asynchronous API. You need to call /yardstick/results to get the result.
+This is an asynchronous API. You need to call /yardstick/results to get the
+result.
/yardstick/tasks/<task_id>/log
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Description: This API is used to get the real time log of test case execution.
@@ -188,13 +214,15 @@ Method: GET
Get real time of test case execution
Example::
- http://localhost:8888/yardstick/tasks/14795be8-f144-4f54-81ce-43f4e3eab33f/log?index=0
+ http://<SERVER IP>:<PORT>/yardstick/tasks/14795be8-f144-4f54-81ce-43f4e3eab33f/log?index=0
/yardstick/results
^^^^^^^^^^^^^^^^^^
-Description: This API is used to get the test results of tasks. If you call /yardstick/testcases/samples/action API, it will return a task id. You can use the returned task id to get the results by using this API.
+Description: This API is used to get the test results of tasks. If you call
+/yardstick/testcases/samples/action API, it will return a task id. You can use
+the returned task id to get the results by using this API.
Method: GET
@@ -203,17 +231,19 @@ Method: GET
Get test results of one task
Example::
- http://localhost:8888/yardstick/results?task_id=3f3f5e03-972a-4847-a5f8-154f1b31db8c
+ http://<SERVER IP>:<PORT>/yardstick/results?task_id=3f3f5e03-972a-4847-a5f8-154f1b31db8c
This API will return a list of test case result
-/api/v2/yardstick/openrcs/action
+/api/v2/yardstick/openrcs
+^^^^^^^^^^^^^^^^^^^^^^^^^
-Description: This API provides functionality of handling OpenStack credential file (openrc). For Euphrates, it supports:
+Description: This API provides functionality of handling OpenStack credential
+file (openrc). For Euphrates, it supports:
1. Upload an openrc file for an OpenStack environment;
-2. Update an openrc file;
+2. Update an openrc;
3. Get openrc file information;
4. Delete an openrc file.
@@ -252,7 +282,6 @@ Example::
"OS_PASSWORD": "console",
"OS_PROJECT_DOMAIN_NAME": "default",
"OS_PROJECT_NAME": "admin",
- "OS_TENANT_NAME": "admin",
"OS_USERNAME": "admin",
"OS_USER_DOMAIN_NAME": "default"
},
@@ -261,12 +290,21 @@ Example::
}
+/api/v2/yardstick/openrcs/<openrc_id>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description: This API provides functionality of handling OpenStack credential file (openrc). For Euphrates, it supports:
+
+1. Get openrc file information;
+2. Delete an openrc file.
+
+
METHOD: GET
Get openrc file information
Example::
- http://localhost:8888/api/v2/yardstick/openrcs/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/openrcs/5g6g3e02-155a-4847-a5f8-154f1b31db8c
METHOD: DELETE
@@ -275,16 +313,16 @@ METHOD: DELETE
Delete openrc file
Example::
- http://localhost:8888/api/v2/yardstick/openrcs/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/openrcs/5g6g3e02-155a-4847-a5f8-154f1b31db8c
-/api/v2/yardstick/pods/action
+/api/v2/yardstick/pods
+^^^^^^^^^^^^^^^^^^^^^^
-Description: This API provides functionality of handling Yardstick pod file (pod.yaml). For Euphrates, it supports:
+Description: This API provides functionality of handling Yardstick pod file
+(pod.yaml). For Euphrates, it supports:
1. Upload a pod file;
-2. Get pod file information;
-3. Delete an openrc file.
Which API to call will depend on the parameters.
@@ -304,12 +342,20 @@ Example::
}
+/api/v2/yardstick/pods/<pod_id>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description: This API provides functionality of handling Yardstick pod file (pod.yaml). For Euphrates, it supports:
+
+1. Get pod file information;
+2. Delete an openrc file.
+
METHOD: GET
Get pod file information
Example::
- http://localhost:8888/api/v2/yardstick/pods/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/pods/5g6g3e02-155a-4847-a5f8-154f1b31db8c
METHOD: DELETE
@@ -317,16 +363,16 @@ METHOD: DELETE
Delete openrc file
Example::
- http://localhost:8888/api/v2/yardstick/pods/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/pods/5g6g3e02-155a-4847-a5f8-154f1b31db8c
-/api/v2/yardstick/images/action
+/api/v2/yardstick/images
+^^^^^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to do some work related to Yardstick VM images. For Euphrates, it supports:
+Description: This API is used to do some work related to Yardstick VM images.
+For Euphrates, it supports:
1. Load Yardstick VM images;
-2. Get image's information;
-3. Delete images.
Which API to call will depend on the parameters.
@@ -338,16 +384,27 @@ Load VM images
Example::
{
- 'action': 'load_images'
+ 'action': 'load_image',
+ 'args': {
+ 'name': 'yardstick-image'
+ }
}
+/api/v2/yardstick/images/<image_id>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description: This API is used to do some work related to Yardstick VM images. For Euphrates, it supports:
+
+1. Get image's information;
+2. Delete images
+
METHOD: GET
Get image information
Example::
- http://localhost:8888/api/v2/yardstick/images/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/images/5g6g3e02-155a-4847-a5f8-154f1b31db8c
METHOD: DELETE
@@ -355,19 +412,16 @@ METHOD: DELETE
Delete images
Example::
- http://localhost:8888/api/v2/yardstick/images/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/images/5g6g3e02-155a-4847-a5f8-154f1b31db8c
-/api/v2/yardstick/tasks/action
+/api/v2/yardstick/tasks
+^^^^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to do some work related to yardstick tasks. For Euphrates, it supports:
+Description: This API is used to do some work related to yardstick tasks. For
+Euphrates, it supports:
1. Create a Yardstick task;
-2. run a Yardstick task;
-3. Add a test case to a task;
-4. Add a test suite to a task;
-5. Get a tasks' information;
-6. Delete a task.
Which API to call will depend on the parameters.
@@ -387,20 +441,35 @@ Example::
}
+/api/v2/yardstick/tasks/<task_id>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description: This API is used to do some work related to yardstick tasks. For Euphrates, it supports:
+
+1. Add a environment to a task
+2. Add a test case to a task;
+3. Add a test suite to a task;
+4. run a Yardstick task;
+5. Get a tasks' information;
+6. Delete a task.
+
+
METHOD: PUT
+Add a environment to a task
-Run a task
Example::
{
- 'action': 'run'
+ 'action': 'add_environment',
+ 'args': {
+ 'environment_id': 'e3cadbbb-0419-4fed-96f1-a232daa0422a'
+ }
}
METHOD: PUT
-
Add a test case to a task
Example::
@@ -413,8 +482,8 @@ Example::
}
-METHOD: PUT
+METHOD: PUT
Add a test suite to a task
Example::
@@ -428,29 +497,43 @@ Example::
}
+METHOD: PUT
+
+Run a task
+
+Example::
+
+ {
+ 'action': 'run'
+ }
+
+
+
METHOD: GET
Get a task's information
Example::
- http://localhost:8888/api/v2/yardstick/tasks/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/tasks/5g6g3e02-155a-4847-a5f8-154f1b31db8c
METHOD: DELETE
Delete a task
+
Example::
- http://localhost:8888/api/v2/yardstick/tasks/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/tasks/5g6g3e02-155a-4847-a5f8-154f1b31db8c
-/api/v2/yardstick/testcases/action
-Description: This API is used to do some work related to yardstick testcases. For Euphrates, it supports:
+/api/v2/yardstick/testcases
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description: This API is used to do some work related to Yardstick testcases.
+For Euphrates, it supports:
1. Upload a test case;
2. Get all released test cases' information;
-3. Get a certain released test case's information;
-4. Delete a test case.
Which API to call will depend on the parameters.
@@ -475,16 +558,24 @@ METHOD: GET
Get all released test cases' information
Example::
- http://localhost:8888/api/v2/yardstick/testcases
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testcases
+
+
+/api/v2/yardstick/testcases/<case_name>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description: This API is used to do some work related to yardstick testcases. For Euphrates, it supports:
+1. Get certain released test case's information;
+2. Delete a test case.
METHOD: GET
-Get a certain released test case's information
+Get certain released test case's information
Example::
- http://localhost:8888/api/v2/yardstick/testcases/opnfv_yardstick_tc002
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testcases/opnfv_yardstick_tc002
METHOD: DELETE
@@ -492,17 +583,18 @@ METHOD: DELETE
Delete a certain test case
Example::
- http://localhost:8888/api/v2/yardstick/testcases/opnfv_yardstick_tc002
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testcases/opnfv_yardstick_tc002
-/api/v2/yardstick/testsuites/action
-Description: This API is used to do some work related to yardstick test suites. For Euphrates, it supports:
+/api/v2/yardstick/testsuites
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description: This API is used to do some work related to yardstick test suites.
+For Euphrates, it supports:
1. Create a test suite;
-2. Get a certain test suite's information;
-3. Get all test suites;
-4. Delete a test case.
+2. Get all test suites;
Which API to call will depend on the parameters.
@@ -514,7 +606,7 @@ Create a test suite
Example::
{
- 'action': 'create_sutie',
+ 'action': 'create_suite',
'args': {
'name': <suite_name>,
'testcases': [
@@ -527,19 +619,27 @@ Example::
METHOD: GET
-Get a certain test suite's information
+Get all test suite
Example::
- http://localhost:8888/api/v2/yardstick/testsuites/<suite_name>
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testsuites
+
+
+/api/v2/yardstick/testsuites
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Description: This API is used to do some work related to yardstick test suites. For Euphrates, it supports:
+
+1. Get certain test suite's information;
+2. Delete a test case.
METHOD: GET
-Get all test suite
+Get certain test suite's information
Example::
- http://localhost:8888/api/v2/yardstick/testsuites
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testsuites/<suite_name>
METHOD: DELETE
@@ -548,17 +648,17 @@ METHOD: DELETE
Delete a certain test suite
Example::
- http://localhost:8888/api/v2/yardstick/testsuites/<suite_name>
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testsuites/<suite_name>
-/api/v2/yardstick/projects/action
+/api/v2/yardstick/projects
+^^^^^^^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to do some work related to yardstick test projects. For Euphrates, it supports:
+Description: This API is used to do some work related to Yardstick test
+projects. For Euphrates, it supports:
1. Create a Yardstick project;
-2. Get a certain project's information;
-3. Get all projects;
-4. Delete a project.
+2. Get all projects;
Which API to call will depend on the parameters.
@@ -580,19 +680,27 @@ Example::
METHOD: GET
-Get a certain project's information
+Get all projects' information
Example::
- http://localhost:8888/api/v2/yardstick/projects/<project_id>
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/projects
+/api/v2/yardstick/projects
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description: This API is used to do some work related to yardstick test projects. For Euphrates, it supports:
+
+1. Get certain project's information;
+2. Delete a project.
+
METHOD: GET
-Get all projects' information
+Get certain project's information
Example::
- http://localhost:8888/api/v2/yardstick/projects
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/projects/<project_id>
METHOD: DELETE
@@ -601,17 +709,17 @@ METHOD: DELETE
Delete a certain project
Example::
- http://localhost:8888/api/v2/yardstick/projects/<project_id>
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/projects/<project_id>
-/api/v2/yardstick/containers/action
+/api/v2/yardstick/containers
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to do some work related to Docker containers. For Euphrates, it supports:
+Description: This API is used to do some work related to Docker containers.
+For Euphrates, it supports:
1. Create a Grafana Docker container;
2. Create an InfluxDB Docker container;
-3. Get a certain container's information;
-4. Delete a container.
Which API to call will depend on the parameters.
@@ -644,13 +752,21 @@ Example::
}
+/api/v2/yardstick/containers/<container_id>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description: This API is used to do some work related to Docker containers. For Euphrates, it supports:
+
+1. Get certain container's information;
+2. Delete a container.
+
METHOD: GET
-Get a certain container's information
+Get certain container's information
Example::
- http://localhost:8888/api/v2/yardstick/containers/<container_id>
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/containers/<container_id>
METHOD: DELETE
@@ -659,4 +775,4 @@ METHOD: DELETE
Delete a certain container
Example::
- http://localhost:8888/api/v2/yardstick/containers/<container_id>
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/containers/<container_id>
diff --git a/docs/testing/user/userguide/09-yardstick_user_interface.rst b/docs/testing/user/userguide/09-yardstick_user_interface.rst
deleted file mode 100644
index 9058dd46d..000000000
--- a/docs/testing/user/userguide/09-yardstick_user_interface.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-Yardstick User Interface
-========================
-
-This interface provides a user to view the test result
-in table format and also values pinned on to a graph.
-
-
-Command
--------
-::
-
- yardstick report generate <task-ID> <testcase-filename>
-
-
-Description
------------
-
-1. When the command is triggered using the task-id and the testcase
-name provided the respective values are retrieved from the
-database (influxdb in this particular case).
-
-2. The values are then formatted and then provided to the html
-template framed with complete html body using Django Framework.
-
-3. Then the whole template is written into a html file.
-
-The graph is framed with Timestamp on x-axis and output values
-(differ from testcase to testcase) on y-axis with the help of
-"Highcharts".
diff --git a/docs/testing/user/userguide/10-vtc-overview.rst b/docs/testing/user/userguide/10-vtc-overview.rst
deleted file mode 100644
index 8ed17873d..000000000
--- a/docs/testing/user/userguide/10-vtc-overview.rst
+++ /dev/null
@@ -1,128 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) OPNFV, National Center of Scientific Research "Demokritos" and others.
-
-==========================
-Virtual Traffic Classifier
-==========================
-
-Abstract
-========
-
-.. _TNOVA: http://www.t-nova.eu/
-.. _TNOVAresults: http://www.t-nova.eu/results/
-.. _Yardstick: https://wiki.opnfv.org/yardstick
-
-This chapter provides an overview of the virtual Traffic Classifier, a
-contribution to OPNFV Yardstick_ from the EU Project TNOVA_.
-Additional documentation is available in TNOVAresults_.
-
-Overview
-========
-
-The virtual Traffic Classifier (:term:`VTC`) :term:`VNF`, comprises of a
-Virtual Network Function Component (:term:`VNFC`). The :term:`VNFC` contains
-both the Traffic Inspection module, and the Traffic forwarding module, needed
-to run the :term:`VNF`. The exploitation of Deep Packet Inspection
-(:term:`DPI`) methods for traffic classification is built around two basic
-assumptions:
-
-* third parties unaffiliated with either source or recipient are able to
-inspect each IP packet’s payload
-
-* the classifier knows the relevant syntax of each application’s packet
-payloads (protocol signatures, data patterns, etc.).
-
-The proposed :term:`DPI` based approach will only use an indicative, small
-number of the initial packets from each flow in order to identify the content
-and not inspect each packet.
-
-In this respect it follows the Packet Based per Flow State (term:`PBFS`). This
-method uses a table to track each session based on the 5-tuples (src address,
-dest address, src port,dest port, transport protocol) that is maintained for
-each flow.
-
-Concepts
-========
-
-* *Traffic Inspection*: The process of packet analysis and application
-identification of network traffic that passes through the :term:`VTC`.
-
-* *Traffic Forwarding*: The process of packet forwarding from an incoming
-network interface to a pre-defined outgoing network interface.
-
-* *Traffic Rule Application*: The process of packet tagging, based on a
-predefined set of rules. Packet tagging may include e.g. Type of Service
-(:term:`ToS`) field modification.
-
-Architecture
-============
-
-The Traffic Inspection module is the most computationally intensive component
-of the :term:`VNF`. It implements filtering and packet matching algorithms in
-order to support the enhanced traffic forwarding capability of the :term:`VNF`.
-The component supports a flow table (exploiting hashing algorithms for fast
-indexing of flows) and an inspection engine for traffic classification.
-
-The implementation used for these experiments exploits the nDPI library.
-The packet capturing mechanism is implemented using libpcap. When the
-:term:`DPI` engine identifies a new flow, the flow register is updated with the
-appropriate information and transmitted across the Traffic Forwarding module,
-which then applies any required policy updates.
-
-The Traffic Forwarding moudle is responsible for routing and packet forwarding.
-It accepts incoming network traffic, consults the flow table for classification
-information for each incoming flow and then applies pre-defined policies
-marking e.g. :term:`ToS`/Differentiated Services Code Point (:term:`DSCP`)
-multimedia traffic for Quality of Service (:term:`QoS`) enablement on the
-forwarded traffic.
-It is assumed that the traffic is forwarded using the default policy until it
-is identified and new policies are enforced.
-
-The expected response delay is considered to be negligible, as only a small
-number of packets are required to identify each flow.
-
-Graphical Overview
-==================
-
-.. code-block:: console
-
- +----------------------------+
- | |
- | Virtual Traffic Classifier |
- | |
- | Analysing/Forwarding |
- | ------------> |
- | ethA ethB |
- | |
- +----------------------------+
- | ^
- | |
- v |
- +----------------------------+
- | |
- | Virtual Switch |
- | |
- +----------------------------+
-
-Install
-=======
-
-run the vTC/build.sh with root privileges
-
-Run
-===
-
-::
-
- sudo ./pfbridge -a eth1 -b eth2
-
-
-.. note:: Virtual Traffic Classifier is not support in OPNFV Danube release.
-
-
-Development Environment
-=======================
-
-Ubuntu 14.04 Ubuntu 16.04
diff --git a/docs/testing/user/userguide/10-yardstick-user-interface.rst b/docs/testing/user/userguide/10-yardstick-user-interface.rst
new file mode 100644
index 000000000..246e1b1df
--- /dev/null
+++ b/docs/testing/user/userguide/10-yardstick-user-interface.rst
@@ -0,0 +1,64 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
+========================
+Yardstick User Interface
+========================
+
+This chapter describes how to generate HTML reports, used to view, store, share
+or publish test results in table and graph formats.
+
+The following layouts are available:
+
+* The compact HTML report layout is suitable for testcases producing a few
+ metrics over a short period of time. All metrics for all timestamps are
+ displayed in the data table and on the graph.
+
+* The dynamic HTML report layout consists of a wider data table, a graph, and
+ a tree that allows selecting the metrics to be displayed. This layout is
+ suitable for testcases, such as NSB ones, producing a lot of metrics over
+ a longer period of time.
+
+
+Commands
+--------
+
+To generate the compact HTML report, run::
+
+ yardstick report generate <task-ID> <testcase-filename>
+
+To generate the dynamic HTML report, run::
+
+ yardstick report generate-nsb <task-ID> <testcase-filename>
+
+
+Description
+-----------
+
+1. When the command is triggered, the relevant values for the
+ provided task-id and testcase name are retrieved from the
+ database (`InfluxDB`_ in this particular case).
+
+2. The values are then formatted and provided to the html
+ template to be rendered using `Jinja2`_.
+
+3. Then the rendered template is written into a html file.
+
+The graph is framed with Timestamp on x-axis and output values
+(differ from testcase to testcase) on y-axis with the help of
+`Chart.js`_.
+
+.. _InfluxDB: https://www.influxdata.com/time-series-platform/influxdb/
+.. _Jinja2: http://jinja.pocoo.org/docs/2.10/
+.. _Chart.js: https://www.chartjs.org/
diff --git a/docs/testing/user/userguide/11-nsb-overview.rst b/docs/testing/user/userguide/11-nsb-overview.rst
deleted file mode 100644
index 8ce90f65d..000000000
--- a/docs/testing/user/userguide/11-nsb-overview.rst
+++ /dev/null
@@ -1,203 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) OPNFV, 2016-2017 Intel Corporation.
-
-Network Services Benchmarking (NSB)
-===================================
-
-Abstract
---------
-
-.. _Yardstick: https://wiki.opnfv.org/yardstick
-
-This chapter provides an overview of the NSB, a contribution to OPNFV
-Yardstick_ from Intel.
-
-Overview
---------
-
-The goal of NSB is to Extend Yardstick to perform real world VNFs and NFVi Characterization and
-benchmarking with repeatable and deterministic methods.
-
-The Network Service Benchmarking (NSB) extends the yardstick framework to do
-VNF characterization and benchmarking in three different execution
-environments - bare metal i.e. native Linux environment, standalone virtual
-environment and managed virtualized environment (e.g. Open stack etc.).
-It also brings in the capability to interact with external traffic generators
-both hardware & software based for triggering and validating the traffic
-according to user defined profiles.
-
-NSB extension includes:
-
- - Generic data models of Network Services, based on ETSI spec `ETSI GS NFV-TST 001 <http://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/001/01.01.01_60/gs_nfv-tst001v010101p.pdf>`_
-
- - New Standalone context for VNF testing like SRIOV, OVS, OVS-DPDK etc
-
- - Generic VNF configuration models and metrics implemented with Python
- classes
-
- - Traffic generator features and traffic profiles
-
- - L1-L3 state-less traffic profiles
-
- - L4-L7 state-full traffic profiles
-
- - Tunneling protocol / network overlay support
-
- - Test case samples
-
- - Ping
-
- - Trex
-
- - vPE,vCGNAT, vFirewall etc - ipv4 throughput, latency etc
-
- - Traffic generators like Trex, ab/nginx, ixia, iperf etc
-
- - KPIs for a given use case:
-
- - System agent support for collecting NFVi KPI. This includes:
-
- - CPU statistic
-
- - Memory BW
-
- - OVS-DPDK Stats
-
- - Network KPIs, e.g., inpackets, outpackets, thoughput, latency etc
-
- - VNF KPIs, e.g., packet_in, packet_drop, packet_fwd etc
-
-Architecture
-------------
-
-The Network Service (NS) defines a set of Virtual Network Functions (VNF)
-connected together using NFV infrastructure.
-
-The Yardstick NSB extension can support multiple VNFs created by different
-vendors including traffic generators. Every VNF being tested has its
-own data model. The Network service defines a VNF modelling on base of performed
-network functionality. The part of the data model is a set of the configuration
-parameters, number of connection points used and flavor including core and
-memory amount.
-
-The ETSI defines a Network Service as a set of configurable VNFs working in
-some NFV Infrastructure connecting each other using Virtual Links available
-through Connection Points. The ETSI MANO specification defines a set of
-management entities called Network Service Descriptors (NSD) and
-VNF Descriptors (VNFD) that define real Network Service. The picture below
-makes an example how the real Network Operator use-case can map into ETSI
-Network service definition
-
-Network Service framework performs the necessary test steps. It may involve
-
- - Interacting with traffic generator and providing the inputs on traffic
- type / packet structure to generate the required traffic as per the
- test case. Traffic profiles will be used for this.
-
- - Executing the commands required for the test procedure and analyses the
- command output for confirming whether the command got executed correctly
- or not. E.g. As per the test case, run the traffic for the given
- time period / wait for the necessary time delay
-
- - Verify the test result.
-
- - Validate the traffic flow from SUT
-
- - Fetch the table / data from SUT and verify the value as per the test case
-
- - Upload the logs from SUT onto the Test Harness server
-
- - Read the KPI's provided by particular VNF
-
-Components of Network Service
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- * *Models for Network Service benchmarking*: The Network Service benchmarking
- requires the proper modelling approach. The NSB provides models using Python
- files and defining of NSDs and VNFDs.
-
- The benchmark control application being a part of OPNFV yardstick can call
- that python models to instantiate and configure the VNFs. Depending on
- infrastructure type (bare-metal or fully virtualized) that calls could be
- made directly or using MANO system.
-
- * *Traffic generators in NSB*: Any benchmark application requires a set of
- traffic generator and traffic profiles defining the method in which traffic
- is generated.
-
- The Network Service benchmarking model extends the Network Service
- definition with a set of Traffic Generators (TG) that are treated
- same way as other VNFs being a part of benchmarked network service.
- Same as other VNFs the traffic generator are instantiated and terminated.
-
- Every traffic generator has own configuration defined as a traffic profile and
- a set of KPIs supported. The python models for TG is extended by specific calls
- to listen and generate traffic.
-
- * *The stateless TREX traffic generator*: The main traffic generator used as
- Network Service stimulus is open source TREX tool.
-
- The TREX tool can generate any kind of stateless traffic.
-
- .. code-block:: console
-
- +--------+ +-------+ +--------+
- | | | | | |
- | Trex | ---> | VNF | ---> | Trex |
- | | | | | |
- +--------+ +-------+ +--------+
-
- Supported testcases scenarios:
-
- - Correlated UDP traffic using TREX traffic generator and replay VNF.
-
- - using different IMIX configuration like pure voice, pure video traffic etc
-
- - using different number IP flows like 1 flow, 1K, 16K, 64K, 256K, 1M flows
-
- - Using different number of rules configured like 1 rule, 1K, 10K rules
-
- For UDP correlated traffic following Key Performance Indicators are collected
- for every combination of test case parameters:
-
- - RFC2544 throughput for various loss rate defined (1% is a default)
-
-Graphical Overview
-------------------
-
-NSB Testing with yardstick framework facilitate performance testing of various
-VNFs provided.
-
-.. code-block:: console
-
- +-----------+
- | | +-----------+
- | vPE | ->|TGen Port 0|
- | TestCase | | +-----------+
- | | |
- +-----------+ +------------------+ +-------+ |
- | | -- API --> | VNF | <--->
- +-----------+ | Yardstick | +-------+ |
- | Test Case | --> | NSB Testing | |
- +-----------+ | | |
- | | | |
- | +------------------+ |
- +-----------+ | +-----------+
- | Traffic | ->|TGen Port 1|
- | patterns | +-----------+
- +-----------+
-
- Figure 1: Network Service - 2 server configuration
-
-VNFs supported for chracterization:
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-1. CGNAPT - Carrier Grade Network Address and port Translation
-2. vFW - Virtual Firewall
-3. vACL - Access Control List
-5. Prox - Packet pROcessing eXecution engine:
- - VNF can act as Drop, Basic Forwarding (no touch), L2 Forwarding (change MAC), GRE encap/decap, Load balance based on packet fields, Symmetric load balancing,
- - QinQ encap/decap IPv4/IPv6, ARP, QoS, Routing, Unmpls, Policing, ACL
-6. UDP_Replay
diff --git a/docs/testing/user/userguide/12-nsb-overview.rst b/docs/testing/user/userguide/12-nsb-overview.rst
new file mode 100644
index 000000000..45b087a47
--- /dev/null
+++ b/docs/testing/user/userguide/12-nsb-overview.rst
@@ -0,0 +1,258 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2016-2019 Intel Corporation.
+
+.. Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
+===================================
+Network Services Benchmarking (NSB)
+===================================
+
+.. _Yardstick: https://wiki.opnfv.org/display/yardstick
+.. _`ETSI GS NFV-TST001`: http://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/001/01.01.01_60/gs_nfv-tst001v010101p.pdf
+
+Abstract
+--------
+
+This chapter provides an overview of the NSB, a contribution to OPNFV
+Yardstick_ from Intel.
+
+Overview
+--------
+
+Network Services Benchmarking (:term:`NSB`) uses the :term:`Yardstick`
+framework for performing :term:`VNF` and :term:`NFVI` characterisation in an
+:term:`NFV` environment.
+
+For VNF characterisation, NSB will onboard a VNF, source and sink traffic to it
+via traffic generators, and collect a variety of key performance indicators
+(:term:`KPI`) during VNF execution. The stream of KPI data is stored in a
+database, and it is visualized in a performance-visualization dashboard.
+
+For NFVI characterisation, a fixed test VNF, called :term:`PROX` is used.
+PROX implements a suite of test cases and visualizes the output data of the
+test suite. The PROX test cases implement various execution kernels found in
+real-world VNFs, and the output of the test cases provides an indication of
+the fitness of the infrastructure for running NFV services, in addition to
+indicating potential performance optimizations for the NFVI.
+
+NSB extends the Yardstick framework to do VNF characterization in three
+different execution environments - bare metal i.e. native Linux environment,
+standalone virtual environment and managed virtualized environment (e.g.
+OpenStack). It also brings in the capability to interact with external traffic
+generators, both hardware and software based, for triggering and validating the
+traffic according to user defined profiles.
+
+NSB extension includes:
+
+* Generic data models of Network Services, based on ETSI spec
+ `ETSI GS NFV-TST001`_
+* Standalone :term:`context` for VNF testing SRIOV, OVS-DPDK, etc
+* Generic VNF configuration models and metrics implemented with Python
+ classes
+* Traffic generator features and traffic profiles
+
+ * L1-L3 stateless traffic profiles
+ * L4-L7 state-full traffic profiles
+ * Tunneling protocol/network overlay support
+
+* Scenarios that handle NSB test cases execution
+
+ * NSPerf - scenario that handles generic NSB test case execution
+ (setup and init tg/vnf, trigger traffic on tg, collect kpi)
+ * NSPerf-RFC2544 - scenario that allows repeatable triggering of traffic on
+ traffic generators until test case acceptance criteria is met
+ (for example RFC2544 binary search)
+
+* Test case samples
+
+ * Ping
+ * Trex
+ * vPE, vCGNAT, vFirewall etc - ipv4 throughput, latency etc
+
+* Traffic generators i.e. Trex, ab/nginx, ixia, iperf, etc
+* KPIs for a given use case:
+
+ * System agent support for collecting NFVi KPI. This includes:
+
+ * CPU statistic
+ * Memory BW
+ * OVS-DPDK Stats
+
+ * Network KPIs e.g. inpackets, outpackets, thoughput, latency
+ * VNF KPIs e.g. packet_in, packet_drop, packet_fwd
+
+Architecture
+------------
+
+The Network Service (NS) defines a set of Virtual Network Functions (VNF)
+connected together using NFV infrastructure.
+
+The Yardstick NSB extension can support multiple VNFs created by different
+vendors including traffic generators. Every VNF being tested has its
+own data model. The Network service defines a VNF modelling on base of
+performed network functionality. The part of the data model is a set of the
+configuration parameters, number of connection points used and flavor including
+core and memory amount.
+
+ETSI defines a Network Service as a set of configurable VNFs working in some
+NFV Infrastructure connecting each other using Virtual Links available through
+Connection Points. The ETSI MANO specification defines a set of management
+entities called Network Service Descriptors (NSD) and VNF Descriptors (VNFD)
+that define real Network Service. The picture below makes an example how the
+real Network Operator use-case can map into ETSI Network service definition.
+
+Network Service framework performs the necessary test steps. It may involve:
+
+* Interacting with traffic generator and providing the inputs on traffic
+ type / packet structure to generate the required traffic as per the
+ test case. Traffic profiles will be used for this.
+* Executing the commands required for the test procedure and analyses the
+ command output for confirming whether the command got executed correctly
+ or not e.g. as per the test case, run the traffic for the given
+ time period and wait for the necessary time delay.
+* Verify the test result.
+* Validate the traffic flow from SUT.
+* Fetch the data from SUT and verify the value as per the test case.
+* Upload the logs from SUT onto the Test Harness server
+* Retrieve the KPI's provided by particular VNF
+
+Components of Network Service
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. TODO: provide a list of components in this section and describe them in
+ later sub-sections
+
+.. Components are the methodology, TGs, framework extensions, KPI collection,
+ Testcases, SampleVNFs
+.. Framework extentions include: VNF models, NSPerf Scenario, contexts
+
+* *Models for Network Service benchmarking*: The Network Service benchmarking
+ requires the proper modelling approach. The NSB provides models using Python
+ files and defining of NSDs and VNFDs.
+
+The benchmark control application being a part of OPNFV Yardstick can call
+that Python models to instantiate and configure the VNFs. Depending on
+infrastructure type (bare-metal or fully virtualized) that calls could be
+made directly or using MANO system.
+
+* *Traffic generators in NSB*: Any benchmark application requires a set of
+ traffic generator and traffic profiles defining the method in which traffic
+ is generated.
+
+The Network Service benchmarking model extends the Network Service
+definition with a set of Traffic Generators (TG) that are treated
+same way as other VNFs being a part of benchmarked network service.
+Same as other VNFs the traffic generator are instantiated and terminated.
+
+Every traffic generator has own configuration defined as a traffic profile
+and a set of KPIs supported. The python models for TG is extended by
+specific calls to listen and generate traffic.
+
+* *The stateless TREX traffic generator*: The main traffic generator used as
+ Network Service stimulus is open source TREX tool.
+
+The TREX tool can generate any kind of stateless traffic.
+
+.. code-block:: console
+
+ +--------+ +-------+ +--------+
+ | | | | | |
+ | Trex | ---> | VNF | ---> | Trex |
+ | | | | | |
+ +--------+ +-------+ +--------+
+
+Supported testcases scenarios:
+
+* Correlated UDP traffic using TREX traffic generator and replay VNF.
+
+ * Using different IMIX configuration like pure voice, pure video traffic etc
+ * Using different number IP flows e.g. 1, 1K, 16K, 64K, 256K, 1M flows
+ * Using different number of rules configured e.g. 1, 1K, 10K rules
+
+For UDP correlated traffic following Key Performance Indicators are collected
+for every combination of test case parameters:
+
+* RFC2544 throughput for various loss rate defined (1% is a default)
+
+KPI Collection
+^^^^^^^^^^^^^^
+
+KPI collection is the process of sampling KPIs at multiple intervals to allow
+for investigation into anomalies during runtime. Some KPI intervals are
+adjustable. KPIs are collected from traffic generators and NFVI for the SUT.
+There is already some reporting in NSB available, but NSB collects all KPIs for
+analytics to process.
+
+Below is an example list of basic KPIs:
+
+* Throughput
+* Latency
+* Packet delay variation
+* Maximum establishment rate
+* Maximum tear-down rate
+* Maximum simultaneous number of sessions
+
+Of course, there can be many other KPIs that will be relevant for a specific
+NFVI, but in most cases these KPIs are enough to give you a basic picture of
+the SUT. NSB also uses :term:`collectd` in order to collect the KPIs. Currently
+the following collectd plug-ins are enabled for NSB testcases:
+
+* Libvirt
+* Interface stats
+* OvS events
+* vSwitch stats
+* Huge Pages
+* RAM
+* CPU usage
+* Intel® PMU
+* Intel® RDT
+
+Graphical Overview
+------------------
+
+NSB Testing with Yardstick framework facilitate performance testing of various
+VNFs provided.
+
+.. code-block:: console
+
+ +-----------+
+ | | +-------------+
+ | vPE | -->| TGen Port 0 |
+ | TestCase | | +-------------+
+ | | |
+ +-----------+ +---------------+ +-------+ |
+ | | ---> | VNF | <--->
+ +-----------+ | Yardstick | +-------+ |
+ | Test Case | --> | NSB Testing | |
+ +-----------+ | | |
+ | | | |
+ | +---------------+ |
+ +-----------+ | +-------------+
+ | Traffic | -->| TGen Port 1 |
+ | patterns | +-------------+
+ +-----------+
+
+ Figure 1: Network Service - 2 server configuration
+
+VNFs supported for chracterization
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+1. CGNAPT - Carrier Grade Network Address and port Translation
+2. vFW - Virtual Firewall
+3. vACL - Access Control List
+4. PROX - Packet pROcessing eXecution engine:
+ * VNF can act as Drop, Basic Forwarding (no touch),
+ L2 Forwarding (change MAC), GRE encap/decap, Load balance based on
+ packet fields, Symmetric load balancing
+ * QinQ encap/decap IPv4/IPv6, ARP, QoS, Routing, Unmpls, Policing, ACL
+5. UDP_Replay
diff --git a/docs/testing/user/userguide/12-nsb_installation.rst b/docs/testing/user/userguide/12-nsb_installation.rst
deleted file mode 100644
index a584ca231..000000000
--- a/docs/testing/user/userguide/12-nsb_installation.rst
+++ /dev/null
@@ -1,889 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) OPNFV, 2016-2017 Intel Corporation.
-
-Yardstick - NSB Testing -Installation
-=====================================
-
-Abstract
---------
-
-The Network Service Benchmarking (NSB) extends the yardstick framework to do
-VNF characterization and benchmarking in three different execution
-environments viz., bare metal i.e. native Linux environment, standalone virtual
-environment and managed virtualized environment (e.g. Open stack etc.).
-It also brings in the capability to interact with external traffic generators
-both hardware & software based for triggering and validating the traffic
-according to user defined profiles.
-
-The steps needed to run Yardstick with NSB testing are:
-
-* Install Yardstick (NSB Testing).
-* Setup/Reference pod.yaml describing Test topology
-* Create/Reference the test configuration yaml file.
-* Run the test case.
-
-
-Prerequisites
--------------
-
-Refer chapter Yardstick Installation for more information on yardstick
-prerequisites
-
-Several prerequisites are needed for Yardstick(VNF testing):
-
- - Python Modules: pyzmq, pika.
-
- - flex
-
- - bison
-
- - build-essential
-
- - automake
-
- - libtool
-
- - librabbitmq-dev
-
- - rabbitmq-server
-
- - collectd
-
- - intel-cmt-cat
-
-Hardware & Software Ingredients
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-SUT requirements:
-
-
- +-----------+--------------------+
- | Item | Description |
- +-----------+--------------------+
- | Memory | Min 20GB |
- +-----------+--------------------+
- | NICs | 2 x 10G |
- +-----------+--------------------+
- | OS | Ubuntu 16.04.3 LTS |
- +-----------+--------------------+
- | kernel | 4.4.0-34-generic |
- +-----------+--------------------+
- | DPDK | 17.02 |
- +-----------+--------------------+
-
-Boot and BIOS settings:
-
-
- +------------------+---------------------------------------------------+
- | Boot settings | default_hugepagesz=1G hugepagesz=1G hugepages=16 |
- | | hugepagesz=2M hugepages=2048 isolcpus=1-11,22-33 |
- | | nohz_full=1-11,22-33 rcu_nocbs=1-11,22-33 |
- | | iommu=on iommu=pt intel_iommu=on |
- | | Note: nohz_full and rcu_nocbs is to disable Linux |
- | | kernel interrupts |
- +------------------+---------------------------------------------------+
- |BIOS | CPU Power and Performance Policy <Performance> |
- | | CPU C-state Disabled |
- | | CPU P-state Disabled |
- | | Enhanced Intel® Speedstep® Tech Disabled |
- | | Hyper-Threading Technology (If supported) Enabled |
- | | Virtualization Techology Enabled |
- | | Intel(R) VT for Direct I/O Enabled |
- | | Coherency Enabled |
- | | Turbo Boost Disabled |
- +------------------+---------------------------------------------------+
-
-
-
-Install Yardstick (NSB Testing)
--------------------------------
-
-Download the source code and install Yardstick from it
-
-.. code-block:: console
-
- git clone https://gerrit.opnfv.org/gerrit/yardstick
-
- cd yardstick
-
- # Switch to latest stable branch
- # git checkout <tag or stable branch>
- git checkout stable/euphrates
-
-Configure the network proxy, either using the environment variables or setting
-the global environment file:
-
-.. code-block:: ini
- cat /etc/environment
- http_proxy='http://proxy.company.com:port'
- https_proxy='http://proxy.company.com:port'
-
-.. code-block:: console
- export http_proxy='http://proxy.company.com:port'
- export https_proxy='http://proxy.company.com:port'
-
-The last step is to modify the Yardstick installation inventory, used by
-Ansible:
-
-.. code-block:: ini
- cat ./ansible/yardstick-install-inventory.ini
- [jumphost]
- localhost ansible_connection=local
-
- [yardstick-standalone]
- yardstick-standalone-node ansible_host=192.168.1.2
- yardstick-standalone-node-2 ansible_host=192.168.1.3
-
- # section below is only due backward compatibility.
- # it will be removed later
- [yardstick:children]
- jumphost
-
- [all:vars]
- ansible_user=root
- ansible_pass=root
-
-
-To execute an installation for a Bare-Metal or a Standalone context:
-
-.. code-block:: console
-
- ./nsb_setup.sh
-
-
-To execute an installation for an OpenStack context:
-
-.. code-block:: console
-
- ./nsb_setup.sh <path to admin-openrc.sh>
-
-Above command setup docker with latest yardstick code. To execute
-
-.. code-block:: console
-
- docker exec -it yardstick bash
-
-It will also automatically download all the packages needed for NSB Testing setup.
-Refer chapter :doc:`04-installation` for more on docker **Install Yardstick using Docker (recommended)**
-
-System Topology:
-----------------
-
-.. code-block:: console
-
- +----------+ +----------+
- | | | |
- | | (0)----->(0) | |
- | TG1 | | DUT |
- | | | |
- | | (1)<-----(1) | |
- +----------+ +----------+
- trafficgen_1 vnf
-
-
-Environment parameters and credentials
---------------------------------------
-
-Config yardstick conf
-^^^^^^^^^^^^^^^^^^^^^
-
-If user did not run 'yardstick env influxdb' inside the container, which will generate
-correct yardstick.conf, then create the config file manually (run inside the container):
-
- cp ./etc/yardstick/yardstick.conf.sample /etc/yardstick/yardstick.conf
- vi /etc/yardstick/yardstick.conf
-
-Add trex_path, trex_client_lib and bin_path in 'nsb' section.
-
-::
-
- [DEFAULT]
- debug = True
- dispatcher = file, influxdb
-
- [dispatcher_influxdb]
- timeout = 5
- target = http://{YOUR_IP_HERE}:8086
- db_name = yardstick
- username = root
- password = root
-
- [nsb]
- trex_path=/opt/nsb_bin/trex/scripts
- bin_path=/opt/nsb_bin
- trex_client_lib=/opt/nsb_bin/trex_client/stl
-
-Run Yardstick - Network Service Testcases
------------------------------------------
-
-
-NS testing - using yardstick CLI
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- See :doc:`04-installation`
-
-.. code-block:: console
-
-
- docker exec -it yardstick /bin/bash
- source /etc/yardstick/openstack.creds (only for heat TC if nsb_setup.sh was NOT used)
- export EXTERNAL_NETWORK="<openstack public network>" (only for heat TC)
- yardstick --debug task start yardstick/samples/vnf_samples/nsut/<vnf>/<test case>
-
-Network Service Benchmarking - Bare-Metal
------------------------------------------
-
-Bare-Metal Config pod.yaml describing Topology
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Bare-Metal 2-Node setup:
-########################
-.. code-block:: console
-
- +----------+ +----------+
- | | | |
- | | (0)----->(0) | |
- | TG1 | | DUT |
- | | | |
- | | (n)<-----(n) | |
- +----------+ +----------+
- trafficgen_1 vnf
-
-Bare-Metal 3-Node setup - Correlated Traffic:
-#############################################
-.. code-block:: console
-
- +----------+ +----------+ +------------+
- | | | | | |
- | | | | | |
- | | (0)----->(0) | | | UDP |
- | TG1 | | DUT | | Replay |
- | | | | | |
- | | | |(1)<---->(0)| |
- +----------+ +----------+ +------------+
- trafficgen_1 vnf trafficgen_2
-
-
-Bare-Metal Config pod.yaml
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-Before executing Yardstick test cases, make sure that pod.yaml reflects the
-topology and update all the required fields.::
-
- cp /etc/yardstick/nodes/pod.yaml.nsb.sample /etc/yardstick/nodes/pod.yaml
-
-.. code-block:: YAML
-
- nodes:
- -
- name: trafficgen_1
- role: TrafficGen
- ip: 1.1.1.1
- user: root
- password: r00t
- interfaces:
- xe0: # logical name from topology.yaml and vnfd.yaml
- vpci: "0000:07:00.0"
- driver: i40e # default kernel driver
- dpdk_port_num: 0
- local_ip: "152.16.100.20"
- netmask: "255.255.255.0"
- local_mac: "00:00:00:00:00:01"
- xe1: # logical name from topology.yaml and vnfd.yaml
- vpci: "0000:07:00.1"
- driver: i40e # default kernel driver
- dpdk_port_num: 1
- local_ip: "152.16.40.20"
- netmask: "255.255.255.0"
- local_mac: "00:00.00:00:00:02"
-
- -
- name: vnf
- role: vnf
- ip: 1.1.1.2
- user: root
- password: r00t
- host: 1.1.1.2 #BM - host == ip, virtualized env - Host - compute node
- interfaces:
- xe0: # logical name from topology.yaml and vnfd.yaml
- vpci: "0000:07:00.0"
- driver: i40e # default kernel driver
- dpdk_port_num: 0
- local_ip: "152.16.100.19"
- netmask: "255.255.255.0"
- local_mac: "00:00:00:00:00:03"
-
- xe1: # logical name from topology.yaml and vnfd.yaml
- vpci: "0000:07:00.1"
- driver: i40e # default kernel driver
- dpdk_port_num: 1
- local_ip: "152.16.40.19"
- netmask: "255.255.255.0"
- local_mac: "00:00:00:00:00:04"
- routing_table:
- - network: "152.16.100.20"
- netmask: "255.255.255.0"
- gateway: "152.16.100.20"
- if: "xe0"
- - network: "152.16.40.20"
- netmask: "255.255.255.0"
- gateway: "152.16.40.20"
- if: "xe1"
- nd_route_tbl:
- - network: "0064:ff9b:0:0:0:0:9810:6414"
- netmask: "112"
- gateway: "0064:ff9b:0:0:0:0:9810:6414"
- if: "xe0"
- - network: "0064:ff9b:0:0:0:0:9810:2814"
- netmask: "112"
- gateway: "0064:ff9b:0:0:0:0:9810:2814"
- if: "xe1"
-
-
-Network Service Benchmarking - Standalone Virtualization
---------------------------------------------------------
-
-SR-IOV:
-^^^^^^^
-
-SR-IOV Pre-requisites
-#####################
-
-On Host:
- a) Create a bridge for VM to connect to external network
-
- .. code-block:: console
-
- brctl addbr br-int
- brctl addif br-int <interface_name> #This interface is connected to internet
-
- b) Build guest image for VNF to run.
- Most of the sample test cases in Yardstick are using a guest image called
- ``yardstick-image`` which deviates from an Ubuntu Cloud Server image
- Yardstick has a tool for building this custom image with samplevnf.
- It is necessary to have ``sudo`` rights to use this tool.
-
- Also you may need to install several additional packages to use this tool, by
- following the commands below::
-
- sudo apt-get update && sudo apt-get install -y qemu-utils kpartx
-
- This image can be built using the following command in the directory where Yardstick is installed
-
- .. code-block:: console
-
- export YARD_IMG_ARCH='amd64'
- sudo echo "Defaults env_keep += \'YARD_IMG_ARCH\'" >> /etc/sudoers
-
- Please use ansible script to generate a cloud image refer to :doc:`04-installation`
-
- for more details refer to chapter :doc:`04-installation`
-
- .. note:: VM should be build with static IP and should be accessible from yardstick host.
-
-
-SR-IOV Config pod.yaml describing Topology
-##########################################
-
-SR-IOV 2-Node setup:
-####################
-.. code-block:: console
-
- +--------------------+
- | |
- | |
- | DUT |
- | (VNF) |
- | |
- +--------------------+
- | VF NIC | | VF NIC |
- +--------+ +--------+
- ^ ^
- | |
- | |
- +----------+ +-------------------------+
- | | | ^ ^ |
- | | | | | |
- | | (0)<----->(0) | ------ | |
- | TG1 | | SUT | |
- | | | | |
- | | (n)<----->(n) |------------------ |
- +----------+ +-------------------------+
- trafficgen_1 host
-
-
-
-SR-IOV 3-Node setup - Correlated Traffic
-########################################
-.. code-block:: console
-
- +--------------------+
- | |
- | |
- | DUT |
- | (VNF) |
- | |
- +--------------------+
- | VF NIC | | VF NIC |
- +--------+ +--------+
- ^ ^
- | |
- | |
- +----------+ +-------------------------+ +--------------+
- | | | ^ ^ | | |
- | | | | | | | |
- | | (0)<----->(0) | ------ | | | TG2 |
- | TG1 | | SUT | | | (UDP Replay) |
- | | | | | | |
- | | (n)<----->(n) | ------ | (n)<-->(n) | |
- +----------+ +-------------------------+ +--------------+
- trafficgen_1 host trafficgen_2
-
-Before executing Yardstick test cases, make sure that pod.yaml reflects the
-topology and update all the required fields.
-
-.. code-block:: console
-
- cp <yardstick>/etc/yardstick/nodes/standalone/trex_bm.yaml.sample /etc/yardstick/nodes/standalone/pod_trex.yaml
- cp <yardstick>/etc/yardstick/nodes/standalone/host_sriov.yaml /etc/yardstick/nodes/standalone/host_sriov.yaml
-
-.. note:: Update all the required fields like ip, user, password, pcis, etc...
-
-SR-IOV Config pod_trex.yaml
-###########################
-
-.. code-block:: YAML
-
- nodes:
- -
- name: trafficgen_1
- role: TrafficGen
- ip: 1.1.1.1
- user: root
- password: r00t
- key_filename: /root/.ssh/id_rsa
- interfaces:
- xe0: # logical name from topology.yaml and vnfd.yaml
- vpci: "0000:07:00.0"
- driver: i40e # default kernel driver
- dpdk_port_num: 0
- local_ip: "152.16.100.20"
- netmask: "255.255.255.0"
- local_mac: "00:00:00:00:00:01"
- xe1: # logical name from topology.yaml and vnfd.yaml
- vpci: "0000:07:00.1"
- driver: i40e # default kernel driver
- dpdk_port_num: 1
- local_ip: "152.16.40.20"
- netmask: "255.255.255.0"
- local_mac: "00:00.00:00:00:02"
-
-SR-IOV Config host_sriov.yaml
-#############################
-
-.. code-block:: YAML
-
- nodes:
- -
- name: sriov
- role: Sriov
- ip: 192.168.100.101
- user: ""
- password: ""
-
-SR-IOV testcase update: ``<yardstick>/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml``
-
-Update "contexts" section
-"""""""""""""""""""""""""
-
-.. code-block:: YAML
-
- contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 6
- hw:cpu_threads: 2
- user: "" # update VM username
- password: "" # update password
- servers:
- vnf:
- network_ports:
- mgmt:
- cidr: '1.1.1.61/24' # Update VM IP address, if static, <ip>/<mask> or if dynamic, <start of ip>/<mask>
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- phy_port: "0000:05:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.10/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:05:00.1"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.10/24'
- gateway_ip: '152.16.100.20'
-
-
-
-OVS-DPDK:
-^^^^^^^^^
-
-OVS-DPDK Pre-requisites
-#######################
-
-On Host:
- a) Create a bridge for VM to connect to external network
-
- .. code-block:: console
-
- brctl addbr br-int
- brctl addif br-int <interface_name> #This interface is connected to internet
-
- b) Build guest image for VNF to run.
- Most of the sample test cases in Yardstick are using a guest image called
- ``yardstick-image`` which deviates from an Ubuntu Cloud Server image
- Yardstick has a tool for building this custom image with samplevnf.
- It is necessary to have ``sudo`` rights to use this tool.
-
- Also you may need to install several additional packages to use this tool, by
- following the commands below::
-
- sudo apt-get update && sudo apt-get install -y qemu-utils kpartx
-
- This image can be built using the following command in the directory where Yardstick is installed::
-
- export YARD_IMG_ARCH='amd64'
- sudo echo "Defaults env_keep += \'YARD_IMG_ARCH\'" >> /etc/sudoers
- sudo tools/yardstick-img-dpdk-modify tools/ubuntu-server-cloudimg-samplevnf-modify.sh
-
- for more details refer to chapter :doc:`04-installation`
-
- .. note:: VM should be build with static IP and should be accessible from yardstick host.
-
- c) OVS & DPDK version.
- - OVS 2.7 and DPDK 16.11.1 above version is supported
-
- d) Setup OVS/DPDK on host.
- Please refer to below link on how to setup `OVS-DPDK <http://docs.openvswitch.org/en/latest/intro/install/dpdk/>`_
-
-
-OVS-DPDK Config pod.yaml describing Topology
-############################################
-
-OVS-DPDK 2-Node setup:
-######################
-
-
-.. code-block:: console
-
- +--------------------+
- | |
- | |
- | DUT |
- | (VNF) |
- | |
- +--------------------+
- | virtio | | virtio |
- +--------+ +--------+
- ^ ^
- | |
- | |
- +--------+ +--------+
- | vHOST0 | | vHOST1 |
- +----------+ +-------------------------+
- | | | ^ ^ |
- | | | | | |
- | | (0)<----->(0) | ------ | |
- | TG1 | | SUT | |
- | | | (ovs-dpdk) | |
- | | (n)<----->(n) |------------------ |
- +----------+ +-------------------------+
- trafficgen_1 host
-
-
-OVS-DPDK 3-Node setup - Correlated Traffic
-##########################################
-
-.. code-block:: console
-
- +--------------------+
- | |
- | |
- | DUT |
- | (VNF) |
- | |
- +--------------------+
- | virtio | | virtio |
- +--------+ +--------+
- ^ ^
- | |
- | |
- +--------+ +--------+
- | vHOST0 | | vHOST1 |
- +----------+ +-------------------------+ +------------+
- | | | ^ ^ | | |
- | | | | | | | |
- | | (0)<----->(0) | ------ | | | TG2 |
- | TG1 | | SUT | | |(UDP Replay)|
- | | | (ovs-dpdk) | | | |
- | | (n)<----->(n) | ------ |(n)<-->(n)| |
- +----------+ +-------------------------+ +------------+
- trafficgen_1 host trafficgen_2
-
-
-Before executing Yardstick test cases, make sure that pod.yaml reflects the
-topology and update all the required fields.
-
-.. code-block:: console
-
- cp <yardstick>/etc/yardstick/nodes/standalone/trex_bm.yaml.sample /etc/yardstick/nodes/standalone/pod_trex.yaml
- cp <yardstick>/etc/yardstick/nodes/standalone/host_ovs.yaml /etc/yardstick/nodes/standalone/host_ovs.yaml
-
-.. note:: Update all the required fields like ip, user, password, pcis, etc...
-
-OVS-DPDK Config pod_trex.yaml
-#############################
-
-.. code-block:: YAML
-
- nodes:
- -
- name: trafficgen_1
- role: TrafficGen
- ip: 1.1.1.1
- user: root
- password: r00t
- interfaces:
- xe0: # logical name from topology.yaml and vnfd.yaml
- vpci: "0000:07:00.0"
- driver: i40e # default kernel driver
- dpdk_port_num: 0
- local_ip: "152.16.100.20"
- netmask: "255.255.255.0"
- local_mac: "00:00:00:00:00:01"
- xe1: # logical name from topology.yaml and vnfd.yaml
- vpci: "0000:07:00.1"
- driver: i40e # default kernel driver
- dpdk_port_num: 1
- local_ip: "152.16.40.20"
- netmask: "255.255.255.0"
- local_mac: "00:00.00:00:00:02"
-
-OVS-DPDK Config host_ovs.yaml
-#############################
-
-.. code-block:: YAML
-
- nodes:
- -
- name: ovs_dpdk
- role: OvsDpdk
- ip: 192.168.100.101
- user: ""
- password: ""
-
-ovs_dpdk testcase update: ``<yardstick>/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml``
-
-Update "contexts" section
-"""""""""""""""""""""""""
-
-.. code-block:: YAML
-
- contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
- - type: StandaloneOvsDpdk
- name: yardstick
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 2
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 6
- hw:cpu_threads: 2
- user: "" # update VM username
- password: "" # update password
- servers:
- vnf:
- network_ports:
- mgmt:
- cidr: '1.1.1.61/24' # Update VM IP address, if static, <ip>/<mask> or if dynamic, <start of ip>/<mask>
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- phy_port: "0000:05:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.10/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:05:00.1"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.10/24'
- gateway_ip: '152.16.100.20'
-
-
-Enabling other Traffic generator
---------------------------------
-
-IxLoad:
-^^^^^^^
-
-1. Software needed: IxLoadAPI ``<IxLoadTclApi verson>Linux64.bin.tgz and <IxOS version>Linux64.bin.tar.gz`` (Download from ixia support site)
- Install - ``<IxLoadTclApi verson>Linux64.bin.tgz & <IxOS version>Linux64.bin.tar.gz``
- If the installation was not done inside the container, after installing the IXIA client,
- check /opt/ixia/ixload/<ver>/bin/ixloadpython and make sure you can run this cmd
- inside the yardstick container. Usually user is required to copy or link /opt/ixia/python/<ver>/bin/ixiapython
- to /usr/bin/ixiapython<ver> inside the container.
-
-2. Update pod_ixia.yaml file with ixia details.
-
- .. code-block:: console
-
- cp <repo>/etc/yardstick/nodes/pod.yaml.nsb.sample.ixia etc/yardstick/nodes/pod_ixia.yaml
-
- Config pod_ixia.yaml
-
- .. code-block:: yaml
-
-
- nodes:
- -
- name: trafficgen_1
- role: IxNet
- ip: 1.2.1.1 #ixia machine ip
- user: user
- password: r00t
- key_filename: /root/.ssh/id_rsa
- tg_config:
- ixchassis: "1.2.1.7" #ixia chassis ip
- tcl_port: "8009" # tcl server port
- lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0"
- root_dir: "/opt/ixia/ixos-api/8.01.0.2/"
- py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/"
- py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi"
- dut_result_dir: "/mnt/ixia"
- version: 8.1
- interfaces:
- xe0: # logical name from topology.yaml and vnfd.yaml
- vpci: "2:5" # Card:port
- driver: "none"
- dpdk_port_num: 0
- local_ip: "152.16.100.20"
- netmask: "255.255.0.0"
- local_mac: "00:98:10:64:14:00"
- xe1: # logical name from topology.yaml and vnfd.yaml
- vpci: "2:6" # [(Card, port)]
- driver: "none"
- dpdk_port_num: 1
- local_ip: "152.40.40.20"
- netmask: "255.255.0.0"
- local_mac: "00:98:28:28:14:00"
-
- for sriov/ovs_dpdk pod files, please refer to above Standalone Virtualization for ovs-dpdk/sriov configuration
-
-3. Start IxOS TCL Server (Install 'Ixia IxExplorer IxOS <version>')
- You will also need to configure the IxLoad machine to start the IXIA
- IxosTclServer. This can be started like so:
-
- - Connect to the IxLoad machine using RDP
- - Go to:
- ``Start->Programs->Ixia->IxOS->IxOS 8.01-GA-Patch1->Ixia Tcl Server IxOS 8.01-GA-Patch1``
- or
- ``"C:\Program Files (x86)\Ixia\IxOS\8.01-GA-Patch1\ixTclServer.exe"``
-
-4. Create a folder "Results" in c:\ and share the folder on the network.
-
-5. execute testcase in samplevnf folder.
- eg ``<repo>/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml``
-
-IxNetwork:
-^^^^^^^^^^
-
-1. Software needed: ``IxNetworkAPI<ixnetwork verson>Linux64.bin.tgz`` (Download from ixia support site)
- Install - ``IxNetworkAPI<ixnetwork verson>Linux64.bin.tgz``
-2. Update pod_ixia.yaml file with ixia details.
-
- .. code-block:: console
-
- cp <repo>/etc/yardstick/nodes/pod.yaml.nsb.sample.ixia etc/yardstick/nodes/pod_ixia.yaml
-
- Config pod_ixia.yaml
-
- .. code-block:: yaml
-
- nodes:
- -
- name: trafficgen_1
- role: IxNet
- ip: 1.2.1.1 #ixia machine ip
- user: user
- password: r00t
- key_filename: /root/.ssh/id_rsa
- tg_config:
- ixchassis: "1.2.1.7" #ixia chassis ip
- tcl_port: "8009" # tcl server port
- lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0"
- root_dir: "/opt/ixia/ixos-api/8.01.0.2/"
- py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/"
- py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi"
- dut_result_dir: "/mnt/ixia"
- version: 8.1
- interfaces:
- xe0: # logical name from topology.yaml and vnfd.yaml
- vpci: "2:5" # Card:port
- driver: "none"
- dpdk_port_num: 0
- local_ip: "152.16.100.20"
- netmask: "255.255.0.0"
- local_mac: "00:98:10:64:14:00"
- xe1: # logical name from topology.yaml and vnfd.yaml
- vpci: "2:6" # [(Card, port)]
- driver: "none"
- dpdk_port_num: 1
- local_ip: "152.40.40.20"
- netmask: "255.255.0.0"
- local_mac: "00:98:28:28:14:00"
-
- for sriov/ovs_dpdk pod files, please refer to above Standalone Virtualization for ovs-dpdk/sriov configuration
-
-3. Start IxNetwork TCL Server
- You will also need to configure the IxNetwork machine to start the IXIA
- IxNetworkTclServer. This can be started like so:
-
- - Connect to the IxNetwork machine using RDP
- - Go to: ``Start->Programs->Ixia->IxNetwork->IxNetwork 7.21.893.14 GA->IxNetworkTclServer`` (or ``IxNetworkApiServer``)
-
-4. execute testcase in samplevnf folder.
- eg ``<repo>/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml``
-
diff --git a/docs/testing/user/userguide/13-nsb-installation.rst b/docs/testing/user/userguide/13-nsb-installation.rst
new file mode 100644
index 000000000..35f67b92f
--- /dev/null
+++ b/docs/testing/user/userguide/13-nsb-installation.rst
@@ -0,0 +1,1542 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2016-2019 Intel Corporation.
+
+..
+ Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
+
+================
+NSB Installation
+================
+
+.. _OVS-DPDK: http://docs.openvswitch.org/en/latest/intro/install/dpdk/
+.. _devstack: https://docs.openstack.org/devstack/pike/>
+.. _OVS-DPDK-versions: http://docs.openvswitch.org/en/latest/faq/releases/
+
+Abstract
+--------
+
+The steps needed to run Yardstick with NSB testing are:
+
+* Install Yardstick (NSB Testing).
+* Setup/reference ``pod.yaml`` describing Test topology.
+* Create/reference the test configuration yaml file.
+* Run the test case.
+
+Prerequisites
+-------------
+
+Refer to :doc:`04-installation` for more information on Yardstick
+prerequisites.
+
+Several prerequisites are needed for Yardstick (VNF testing):
+
+ * Python Modules: pyzmq, pika.
+ * flex
+ * bison
+ * build-essential
+ * automake
+ * libtool
+ * librabbitmq-dev
+ * rabbitmq-server
+ * collectd
+ * intel-cmt-cat
+
+Hardware & Software Ingredients
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+SUT requirements:
+
+ ======= ===================
+ Item Description
+ ======= ===================
+ Memory Min 20GB
+ NICs 2 x 10G
+ OS Ubuntu 16.04.3 LTS
+ kernel 4.4.0-34-generic
+ DPDK 17.02
+ ======= ===================
+
+Boot and BIOS settings:
+
+ ============= =================================================
+ Boot settings default_hugepagesz=1G hugepagesz=1G hugepages=16
+ hugepagesz=2M hugepages=2048 isolcpus=1-11,22-33
+ nohz_full=1-11,22-33 rcu_nocbs=1-11,22-33
+ iommu=on iommu=pt intel_iommu=on
+ Note: nohz_full and rcu_nocbs is to disable Linux
+ kernel interrupts
+ BIOS CPU Power and Performance Policy <Performance>
+ CPU C-state Disabled
+ CPU P-state Disabled
+ Enhanced Intel® Speedstep® Tech Disabl
+ Hyper-Threading Technology (If supported) Enabled
+ Virtualization Techology Enabled
+ Intel(R) VT for Direct I/O Enabled
+ Coherency Enabled
+ Turbo Boost Disabled
+ ============= =================================================
+
+Install Yardstick (NSB Testing)
+-------------------------------
+
+Yardstick with NSB can be installed using ``nsb_setup.sh``.
+The ``nsb_setup.sh`` allows to:
+
+1. Install Yardstick in specified mode: bare metal or container.
+ Refer :doc:`04-installation`.
+2. Install package dependencies on remote servers used as traffic generator or
+ sample VNF. Install DPDK, sample VNFs, TREX, collectd.
+ Add such servers to ``install-inventory.ini`` file to either
+ ``yardstick-standalone`` or ``yardstick-baremetal`` server groups.
+ It configures IOMMU, hugepages, open file limits, CPU isolation, etc.
+3. Build VM image either nsb or normal. The nsb VM image is used to run
+ Yardstick sample VNF tests, like vFW, vACL, vCGNAPT, etc.
+ The normal VM image is used to run Yardstick ping tests in OpenStack context.
+4. Add nsb or normal VM image to OpenStack together with OpenStack variables.
+
+Firstly, configure the network proxy, either using the environment variables or
+setting the global environment file.
+
+Set environment in the file::
+
+ http_proxy='http://proxy.company.com:port'
+ https_proxy='http://proxy.company.com:port'
+
+Set environment variables:
+
+.. code-block:: console
+
+ export http_proxy='http://proxy.company.com:port'
+ export https_proxy='http://proxy.company.com:port'
+
+Download the source code and check out the latest stable branch:
+
+.. code-block:: console
+
+ git clone https://gerrit.opnfv.org/gerrit/yardstick
+ cd yardstick
+ # Switch to latest stable branch
+ git checkout stable/gambia
+
+Modify the Yardstick installation inventory used by Ansible:
+
+.. code-block:: ini
+
+ cat ./ansible/install-inventory.ini
+ [jumphost]
+ localhost ansible_connection=local
+
+ # section below is only due backward compatibility.
+ # it will be removed later
+ [yardstick:children]
+ jumphost
+
+ [yardstick-baremetal]
+ baremetal ansible_host=192.168.2.51 ansible_connection=ssh
+
+ [yardstick-standalone]
+ standalone ansible_host=192.168.2.52 ansible_connection=ssh
+
+ [all:vars]
+ # Uncomment credentials below if needed
+ ansible_user=root
+ ansible_ssh_pass=root
+ # ansible_ssh_private_key_file=/root/.ssh/id_rsa
+ # When IMG_PROPERTY is passed neither normal nor nsb set
+ # "path_to_vm=/path/to/image" to add it to OpenStack
+ # path_to_img=/tmp/workspace/yardstick-image.img
+
+ # List of CPUs to be isolated (not used by default)
+ # Grub line will be extended with:
+ # "isolcpus=<ISOL_CPUS> nohz=on nohz_full=<ISOL_CPUS> rcu_nocbs=1<ISOL_CPUS>"
+ # ISOL_CPUS=2-27,30-55 # physical cpu's for all NUMA nodes, four cpu's reserved
+
+.. warning::
+
+ Before running ``nsb_setup.sh`` make sure python is installed on servers
+ added to ``yardstick-standalone`` and ``yardstick-baremetal`` groups.
+
+.. note::
+
+ SSH access without password needs to be configured for all your nodes
+ defined in ``install-inventory.ini`` file.
+ If you want to use password authentication you need to install ``sshpass``::
+
+ sudo -EH apt-get install sshpass
+
+
+.. note::
+
+ A VM image built by other means than Yardstick can be added to OpenStack.
+ Uncomment and set correct path to the VM image in the
+ ``install-inventory.ini`` file::
+
+ path_to_img=/tmp/workspace/yardstick-image.img
+
+
+.. note::
+
+ CPU isolation can be applied to the remote servers, like:
+ ISOL_CPUS=2-27,30-55. Uncomment and modify accordingly in
+ ``install-inventory.ini`` file.
+
+By default ``nsb_setup.sh`` pulls Yardstick image based on Ubuntu 16.04 from
+docker hub and starts container, builds NSB VM image based on Ubuntu 16.04,
+installs packages to the servers given in ``yardstick-standalone`` and
+``yardstick-baremetal`` host groups.
+
+To pull Yardstick built based on Ubuntu 18 run::
+
+ ./nsb_setup.sh -i opnfv/yardstick-ubuntu-18.04:latest
+
+To change default behavior modify parameters for ``install.yaml`` in
+``nsb_setup.sh`` file.
+
+Refer chapter :doc:`04-installation` for more details on ``install.yaml``
+parameters.
+
+To execute an installation for a **BareMetal** or a **Standalone context**::
+
+ ./nsb_setup.sh
+
+To execute an installation for an **OpenStack** context::
+
+ ./nsb_setup.sh <path to admin-openrc.sh>
+
+.. note::
+
+ Yardstick may not be operational after distributive linux kernel update if
+ it has been installed before. Run ``nsb_setup.sh`` again to resolve this.
+
+.. warning::
+
+ The Yardstick VM image (NSB or normal) cannot be built inside a VM.
+
+.. warning::
+
+ The ``nsb_setup.sh`` configures huge pages, CPU isolation, IOMMU on the grub.
+ Reboot of the servers from ``yardstick-standalone`` or
+ ``yardstick-baremetal`` groups in the file ``install-inventory.ini`` is
+ required to apply those changes.
+
+The above commands will set up Docker with the latest Yardstick code. To
+execute::
+
+ docker exec -it yardstick bash
+
+.. note::
+
+ It may be needed to configure tty in docker container to extend commandline
+ character length, for example:
+
+ stty size rows 58 cols 234
+
+It will also automatically download all the packages needed for NSB Testing
+setup. Refer chapter :doc:`04-installation` for more on Docker:
+:ref:`Install Yardstick using Docker`
+
+Bare Metal context example
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Let's assume there are three servers acting as TG, sample VNF DUT and jump host.
+
+Perform following steps to install NSB:
+
+1. Clone Yardstick repo to jump host.
+2. Add TG and DUT servers to ``yardstick-baremetal`` group in
+ ``install-inventory.ini`` file to install NSB and dependencies. Install
+ python on servers.
+3. Start deployment using docker image based on Ubuntu 16:
+
+.. code-block:: console
+
+ ./nsb_setup.sh
+
+4. Reboot bare metal servers.
+5. Enter to yardstick container and modify pod yaml file and run tests.
+
+Standalone context example for Ubuntu 18
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Let's assume there are three servers acting as TG, sample VNF DUT and jump host.
+Ubuntu 18 is installed on all servers.
+
+Perform following steps to install NSB:
+
+1. Clone Yardstick repo to jump host.
+2. Add TG server to ``yardstick-baremetal`` group in
+ ``install-inventory.ini`` file to install NSB and dependencies.
+ Add server where VM with sample VNF will be deployed to
+ ``yardstick-standalone`` group in ``install-inventory.ini`` file.
+ Target VM image named ``yardstick-nsb-image.img`` will be placed to
+ ``/var/lib/libvirt/images/``.
+ Install python on servers.
+3. Modify ``nsb_setup.sh`` on jump host:
+
+.. code-block:: console
+
+ ansible-playbook \
+ -e IMAGE_PROPERTY='nsb' \
+ -e OS_RELEASE='bionic' \
+ -e INSTALLATION_MODE='container_pull' \
+ -e YARD_IMAGE_ARCH='amd64' ${extra_args} \
+ -i install-inventory.ini install.yaml
+
+4. Start deployment with Yardstick docker images based on Ubuntu 18:
+
+.. code-block:: console
+
+ ./nsb_setup.sh -i opnfv/yardstick-ubuntu-18.04:latest -o <openrc_file>
+
+5. Reboot servers.
+6. Enter to yardstick container and modify pod yaml file and run tests.
+
+
+System Topology
+---------------
+
+.. code-block:: console
+
+ +----------+ +----------+
+ | | | |
+ | | (0)----->(0) | |
+ | TG1 | | DUT |
+ | | | |
+ | | (1)<-----(1) | |
+ +----------+ +----------+
+ trafficgen_0 vnf
+
+
+Environment parameters and credentials
+--------------------------------------
+
+Configure yardstick.conf
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you did not run ``yardstick env influxdb`` inside the container to generate
+``yardstick.conf``, then create the config file manually (run inside the
+container)::
+
+ cp ./etc/yardstick/yardstick.conf.sample /etc/yardstick/yardstick.conf
+ vi /etc/yardstick/yardstick.conf
+
+Add ``trex_path``, ``trex_client_lib`` and ``bin_path`` to the ``nsb``
+section:
+
+.. code-block:: ini
+
+ [DEFAULT]
+ debug = True
+ dispatcher = influxdb
+
+ [dispatcher_influxdb]
+ timeout = 5
+ target = http://{YOUR_IP_HERE}:8086
+ db_name = yardstick
+ username = root
+ password = root
+
+ [nsb]
+ trex_path=/opt/nsb_bin/trex/scripts
+ bin_path=/opt/nsb_bin
+ trex_client_lib=/opt/nsb_bin/trex_client/stl
+
+Run Yardstick - Network Service Testcases
+-----------------------------------------
+
+NS testing - using yardstick CLI
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ See :doc:`04-installation`
+
+Connect to the Yardstick container::
+
+ docker exec -it yardstick /bin/bash
+
+If you're running ``heat`` testcases and ``nsb_setup.sh`` was not used::
+
+ source /etc/yardstick/openstack.creds
+
+In addition to the above, you need to set the ``EXTERNAL_NETWORK`` for
+OpenStack::
+
+ export EXTERNAL_NETWORK="<openstack public network>"
+
+Finally, you should be able to run the testcase::
+
+ yardstick --debug task start yardstick/samples/vnf_samples/nsut/<vnf>/<test case>
+
+Network Service Benchmarking - Bare-Metal
+-----------------------------------------
+
+Bare-Metal Config pod.yaml describing Topology
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Bare-Metal 2-Node setup
++++++++++++++++++++++++
+.. code-block:: console
+
+ +----------+ +----------+
+ | | | |
+ | | (0)----->(0) | |
+ | TG1 | | DUT |
+ | | | |
+ | | (n)<-----(n) | |
+ +----------+ +----------+
+ trafficgen_0 vnf
+
+Bare-Metal 3-Node setup - Correlated Traffic
+++++++++++++++++++++++++++++++++++++++++++++
+.. code-block:: console
+
+ +----------+ +----------+ +------------+
+ | | | | | |
+ | | | | | |
+ | | (0)----->(0) | | | UDP |
+ | TG1 | | DUT | | Replay |
+ | | | | | |
+ | | | |(1)<---->(0)| |
+ +----------+ +----------+ +------------+
+ trafficgen_0 vnf trafficgen_1
+
+
+Bare-Metal Config pod.yaml
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+Before executing Yardstick test cases, make sure that ``pod.yaml`` reflects the
+topology and update all the required fields.::
+
+ cp <yardstick>/etc/yardstick/nodes/pod.yaml.nsb.sample /etc/yardstick/nodes/pod.yaml
+
+.. code-block:: YAML
+
+ nodes:
+ -
+ name: trafficgen_0
+ role: TrafficGen
+ ip: 1.1.1.1
+ user: root
+ password: r00t
+ interfaces:
+ xe0: # logical name from topology.yaml and vnfd.yaml
+ vpci: "0000:07:00.0"
+ driver: i40e # default kernel driver
+ dpdk_port_num: 0
+ local_ip: "152.16.100.20"
+ netmask: "255.255.255.0"
+ local_mac: "00:00:00:00:00:01"
+ xe1: # logical name from topology.yaml and vnfd.yaml
+ vpci: "0000:07:00.1"
+ driver: i40e # default kernel driver
+ dpdk_port_num: 1
+ local_ip: "152.16.40.20"
+ netmask: "255.255.255.0"
+ local_mac: "00:00:00:00:00:02"
+
+ -
+ name: vnf
+ role: vnf
+ ip: 1.1.1.2
+ user: root
+ password: r00t
+ host: 1.1.1.2 #BM - host == ip, virtualized env - Host - compute node
+ interfaces:
+ xe0: # logical name from topology.yaml and vnfd.yaml
+ vpci: "0000:07:00.0"
+ driver: i40e # default kernel driver
+ dpdk_port_num: 0
+ local_ip: "152.16.100.19"
+ netmask: "255.255.255.0"
+ local_mac: "00:00:00:00:00:03"
+
+ xe1: # logical name from topology.yaml and vnfd.yaml
+ vpci: "0000:07:00.1"
+ driver: i40e # default kernel driver
+ dpdk_port_num: 1
+ local_ip: "152.16.40.19"
+ netmask: "255.255.255.0"
+ local_mac: "00:00:00:00:00:04"
+ routing_table:
+ - network: "152.16.100.20"
+ netmask: "255.255.255.0"
+ gateway: "152.16.100.20"
+ if: "xe0"
+ - network: "152.16.40.20"
+ netmask: "255.255.255.0"
+ gateway: "152.16.40.20"
+ if: "xe1"
+ nd_route_tbl:
+ - network: "0064:ff9b:0:0:0:0:9810:6414"
+ netmask: "112"
+ gateway: "0064:ff9b:0:0:0:0:9810:6414"
+ if: "xe0"
+ - network: "0064:ff9b:0:0:0:0:9810:2814"
+ netmask: "112"
+ gateway: "0064:ff9b:0:0:0:0:9810:2814"
+ if: "xe1"
+
+
+Standalone Virtualization
+-------------------------
+
+VM can be deployed manually or by Yardstick. If parameter *vm_deploy* is set
+to `True` VM will be deployed by Yardstick. Otherwise VM should be deployed
+manually. Test case example, context section::
+
+ contexts:
+ ...
+ vm_deploy: True
+
+
+SR-IOV
+^^^^^^
+
+SR-IOV Pre-requisites
++++++++++++++++++++++
+
+On Host, where VM is created:
+ 1. Create and configure a bridge named ``br-int`` for VM to connect to
+ external network. Currently this can be done using VXLAN tunnel.
+
+ Execute the following on host, where VM is created::
+
+ ip link add type vxlan remote <Jumphost IP> local <DUT IP> id <ID: 10> dstport 4789
+ brctl addbr br-int
+ brctl addif br-int vxlan0
+ ip link set dev vxlan0 up
+ ip addr add <IP#1, like: 172.20.2.1/24> dev br-int
+ ip link set dev br-int up
+
+ .. note:: You may need to add extra rules to iptable to forward traffic.
+
+ .. code-block:: console
+
+ iptables -A FORWARD -i br-int -s <network ip address>/<netmask> -j ACCEPT
+ iptables -A FORWARD -o br-int -d <network ip address>/<netmask> -j ACCEPT
+
+ Execute the following on a jump host:
+
+ .. code-block:: console
+
+ ip link add type vxlan remote <DUT IP> local <Jumphost IP> id <ID: 10> dstport 4789
+ ip addr add <IP#2, like: 172.20.2.2/24> dev vxlan0
+ ip link set dev vxlan0 up
+
+ .. note:: Host and jump host are different baremetal servers.
+
+ 2. Modify test case management CIDR.
+ IP addresses IP#1, IP#2 and CIDR must be in the same network.
+
+ .. code-block:: YAML
+
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.7/24'
+
+ 3. Build guest image for VNF to run.
+ Most of the sample test cases in Yardstick are using a guest image called
+ ``yardstick-nsb-image`` which deviates from an Ubuntu Cloud Server image
+ Yardstick has a tool for building this custom image with SampleVNF.
+ It is necessary to have ``sudo`` rights to use this tool.
+
+ Also you may need to install several additional packages to use this tool, by
+ following the commands below::
+
+ sudo apt-get update && sudo apt-get install -y qemu-utils kpartx
+
+ This image can be built using the following command in the directory where
+ Yardstick is installed::
+
+ export YARD_IMG_ARCH='amd64'
+ sudo echo "Defaults env_keep += \'YARD_IMG_ARCH\'" >> /etc/sudoers
+
+ For instructions on generating a cloud image using Ansible, refer to
+ :doc:`04-installation`.
+
+ .. note:: VM should be build with static IP and be accessible from the
+ Yardstick host.
+
+
+SR-IOV Config pod.yaml describing Topology
+++++++++++++++++++++++++++++++++++++++++++
+
+SR-IOV 2-Node setup
++++++++++++++++++++
+.. code-block:: console
+
+ +--------------------+
+ | |
+ | |
+ | DUT |
+ | (VNF) |
+ | |
+ +--------------------+
+ | VF NIC | | VF NIC |
+ +--------+ +--------+
+ ^ ^
+ | |
+ | |
+ +----------+ +-------------------------+
+ | | | ^ ^ |
+ | | | | | |
+ | | (0)<----->(0) | ------ SUT | |
+ | TG1 | | | |
+ | | (n)<----->(n) | ----------------- |
+ | | | |
+ +----------+ +-------------------------+
+ trafficgen_0 host
+
+
+
+SR-IOV 3-Node setup - Correlated Traffic
+++++++++++++++++++++++++++++++++++++++++
+.. code-block:: console
+
+ +--------------------+
+ | |
+ | |
+ | DUT |
+ | (VNF) |
+ | |
+ +--------------------+
+ | VF NIC | | VF NIC |
+ +--------+ +--------+
+ ^ ^
+ | |
+ | |
+ +----------+ +---------------------+ +--------------+
+ | | | ^ ^ | | |
+ | | | | | | | |
+ | | (0)<----->(0) |----- | | | TG2 |
+ | TG1 | | SUT | | | (UDP Replay) |
+ | | | | | | |
+ | | (n)<----->(n) | -----| (n)<-->(n) | |
+ +----------+ +---------------------+ +--------------+
+ trafficgen_0 host trafficgen_1
+
+Before executing Yardstick test cases, make sure that ``pod.yaml`` reflects the
+topology and update all the required fields.
+
+.. code-block:: console
+
+ cp <yardstick>/etc/yardstick/nodes/standalone/trex_bm.yaml.sample /etc/yardstick/nodes/standalone/pod_trex.yaml
+ cp <yardstick>/etc/yardstick/nodes/standalone/host_sriov.yaml /etc/yardstick/nodes/standalone/host_sriov.yaml
+
+.. note:: Update all the required fields like ip, user, password, pcis, etc...
+
+SR-IOV Config pod_trex.yaml
++++++++++++++++++++++++++++
+
+.. code-block:: YAML
+
+ nodes:
+ -
+ name: trafficgen_0
+ role: TrafficGen
+ ip: 1.1.1.1
+ user: root
+ password: r00t
+ key_filename: /root/.ssh/id_rsa
+ interfaces:
+ xe0: # logical name from topology.yaml and vnfd.yaml
+ vpci: "0000:07:00.0"
+ driver: i40e # default kernel driver
+ dpdk_port_num: 0
+ local_ip: "152.16.100.20"
+ netmask: "255.255.255.0"
+ local_mac: "00:00:00:00:00:01"
+ xe1: # logical name from topology.yaml and vnfd.yaml
+ vpci: "0000:07:00.1"
+ driver: i40e # default kernel driver
+ dpdk_port_num: 1
+ local_ip: "152.16.40.20"
+ netmask: "255.255.255.0"
+ local_mac: "00:00:00:00:00:02"
+
+SR-IOV Config host_sriov.yaml
++++++++++++++++++++++++++++++
+
+.. code-block:: YAML
+
+ nodes:
+ -
+ name: sriov
+ role: Sriov
+ ip: 192.168.100.101
+ user: ""
+ password: ""
+
+SR-IOV testcase update:
+``<yardstick>/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml``
+
+Update contexts section
+'''''''''''''''''''''''
+
+.. code-block:: YAML
+
+ contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ - type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ name: yardstick
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/ubuntu.qcow2"
+ ram: 4096
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 6
+ hw:cpu_threads: 2
+ user: "" # update VM username
+ password: "" # update password
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.61/24' # Update VM IP address, if static, <ip>/<mask> or if dynamic, <start of ip>/<mask>
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ networks:
+ uplink_0:
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:07.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:08.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+
+
+SRIOV configuration options
++++++++++++++++++++++++++++
+
+The only configuration option available for SRIOV is *vpci*. It is used as base
+address for VFs that are created during SRIOV test case execution.
+
+ .. code-block:: yaml+jinja
+
+ networks:
+ uplink_0:
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:07.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:08.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+
+.. _`VM image properties label`:
+
+VM image properties
+'''''''''''''''''''
+
+VM image properties example under *flavor* section:
+
+ .. code-block:: console
+
+ flavor:
+ images: <path>
+ ram: 8192
+ extra_specs:
+ machine_type: 'pc-i440fx-xenial'
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 6
+ hw:cpu_threads: 2
+ hw_socket: 0
+ cputune: |
+ <cputune>
+ <vcpupin vcpu="0" cpuset="7"/>
+ <vcpupin vcpu="1" cpuset="8"/>
+ ...
+ <vcpupin vcpu="11" cpuset="18"/>
+ <emulatorpin cpuset="11"/>
+ </cputune>
+ user: ""
+ password: ""
+
+VM image properties description:
+
+ +-------------------------+-------------------------------------------------+
+ | Parameters | Detail |
+ +=========================+=================================================+
+ | images || Path to the VM image generated by |
+ | | ``nsb_setup.sh`` |
+ | || Default path is ``/var/lib/libvirt/images/`` |
+ | || Default file name ``yardstick-nsb-image.img`` |
+ | | or ``yardstick-image.img`` |
+ +-------------------------+-------------------------------------------------+
+ | ram || Amount of RAM to be used for VM |
+ | || Default is 4096 MB |
+ +-------------------------+-------------------------------------------------+
+ | hw:cpu_sockets || Number of sockets provided to the guest VM |
+ | || Default is 1 |
+ +-------------------------+-------------------------------------------------+
+ | hw:cpu_cores || Number of cores provided to the guest VM |
+ | || Default is 2 |
+ +-------------------------+-------------------------------------------------+
+ | hw:cpu_threads || Number of threads provided to the guest VM |
+ | || Default is 2 |
+ +-------------------------+-------------------------------------------------+
+ | hw_socket || Generate vcpu cpuset from given HW socket |
+ | || Default is 0 |
+ +-------------------------+-------------------------------------------------+
+ | cputune || Maps virtual cpu with logical cpu |
+ +-------------------------+-------------------------------------------------+
+ | machine_type || Machine type to be emulated in VM |
+ | || Default is 'pc-i440fx-xenial' |
+ +-------------------------+-------------------------------------------------+
+ | user || User name to access the VM |
+ | || Default value is 'root' |
+ +-------------------------+-------------------------------------------------+
+ | password || Password to access the VM |
+ +-------------------------+-------------------------------------------------+
+
+
+OVS-DPDK
+^^^^^^^^
+
+OVS-DPDK Pre-requisites
++++++++++++++++++++++++
+
+On Host, where VM is created:
+ 1. Create and configure a bridge named ``br-int`` for VM to connect to
+ external network. Currently this can be done using VXLAN tunnel.
+
+ Execute the following on host, where VM is created:
+
+ .. code-block:: console
+
+ ip link add type vxlan remote <Jumphost IP> local <DUT IP> id <ID: 10> dstport 4789
+ brctl addbr br-int
+ brctl addif br-int vxlan0
+ ip link set dev vxlan0 up
+ ip addr add <IP#1, like: 172.20.2.1/24> dev br-int
+ ip link set dev br-int up
+
+ .. note:: May be needed to add extra rules to iptable to forward traffic.
+
+ .. code-block:: console
+
+ iptables -A FORWARD -i br-int -s <network ip address>/<netmask> -j ACCEPT
+ iptables -A FORWARD -o br-int -d <network ip address>/<netmask> -j ACCEPT
+
+ Execute the following on a jump host:
+
+ .. code-block:: console
+
+ ip link add type vxlan remote <DUT IP> local <Jumphost IP> id <ID: 10> dstport 4789
+ ip addr add <IP#2, like: 172.20.2.2/24> dev vxlan0
+ ip link set dev vxlan0 up
+
+ .. note:: Host and jump host are different baremetal servers.
+
+ 2. Modify test case management CIDR.
+ IP addresses IP#1, IP#2 and CIDR must be in the same network.
+
+ .. code-block:: YAML
+
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.7/24'
+
+ 3. Build guest image for VNF to run.
+ Most of the sample test cases in Yardstick are using a guest image called
+ ``yardstick-nsb-image`` which deviates from an Ubuntu Cloud Server image
+ Yardstick has a tool for building this custom image with SampleVNF.
+ It is necessary to have ``sudo`` rights to use this tool.
+
+ You may need to install several additional packages to use this tool, by
+ following the commands below::
+
+ sudo apt-get update && sudo apt-get install -y qemu-utils kpartx
+
+ This image can be built using the following command in the directory where
+ Yardstick is installed::
+
+ export YARD_IMG_ARCH='amd64'
+ sudo echo "Defaults env_keep += \'YARD_IMG_ARCH\'" >> /etc/sudoers
+ sudo tools/yardstick-img-dpdk-modify tools/ubuntu-server-cloudimg-samplevnf-modify.sh
+
+ for more details refer to chapter :doc:`04-installation`
+
+ .. note:: VM should be build with static IP and should be accessible from
+ yardstick host.
+
+4. OVS & DPDK version:
+
+ * OVS 2.7 and DPDK 16.11.1 above version is supported
+
+Refer setup instructions at `OVS-DPDK`_ on host.
+
+OVS-DPDK Config pod.yaml describing Topology
+++++++++++++++++++++++++++++++++++++++++++++
+
+OVS-DPDK 2-Node setup
++++++++++++++++++++++
+
+.. code-block:: console
+
+ +--------------------+
+ | |
+ | |
+ | DUT |
+ | (VNF) |
+ | |
+ +--------------------+
+ | virtio | | virtio |
+ +--------+ +--------+
+ ^ ^
+ | |
+ | |
+ +--------+ +--------+
+ | vHOST0 | | vHOST1 |
+ +----------+ +-------------------------+
+ | | | ^ ^ |
+ | | | | | |
+ | | (0)<----->(0) | ------ | |
+ | TG1 | | SUT | |
+ | | | (ovs-dpdk) | |
+ | | (n)<----->(n) |------------------ |
+ +----------+ +-------------------------+
+ trafficgen_0 host
+
+
+OVS-DPDK 3-Node setup - Correlated Traffic
+++++++++++++++++++++++++++++++++++++++++++
+
+.. code-block:: console
+
+ +--------------------+
+ | |
+ | |
+ | DUT |
+ | (VNF) |
+ | |
+ +--------------------+
+ | virtio | | virtio |
+ +--------+ +--------+
+ ^ ^
+ | |
+ | |
+ +--------+ +--------+
+ | vHOST0 | | vHOST1 |
+ +----------+ +-------------------------+ +------------+
+ | | | ^ ^ | | |
+ | | | | | | | |
+ | | (0)<----->(0) | ------ | | | TG2 |
+ | TG1 | | SUT | | |(UDP Replay)|
+ | | | (ovs-dpdk) | | | |
+ | | (n)<----->(n) | ------ |(n)<-->(n)| |
+ +----------+ +-------------------------+ +------------+
+ trafficgen_0 host trafficgen_1
+
+
+Before executing Yardstick test cases, make sure that the ``pod.yaml`` reflects
+the topology and update all the required fields::
+
+ cp <yardstick>/etc/yardstick/nodes/standalone/trex_bm.yaml.sample /etc/yardstick/nodes/standalone/pod_trex.yaml
+ cp <yardstick>/etc/yardstick/nodes/standalone/host_ovs.yaml /etc/yardstick/nodes/standalone/host_ovs.yaml
+
+.. note:: Update all the required fields like ip, user, password, pcis, etc...
+
+OVS-DPDK Config pod_trex.yaml
++++++++++++++++++++++++++++++
+
+.. code-block:: YAML
+
+ nodes:
+ -
+ name: trafficgen_0
+ role: TrafficGen
+ ip: 1.1.1.1
+ user: root
+ password: r00t
+ interfaces:
+ xe0: # logical name from topology.yaml and vnfd.yaml
+ vpci: "0000:07:00.0"
+ driver: i40e # default kernel driver
+ dpdk_port_num: 0
+ local_ip: "152.16.100.20"
+ netmask: "255.255.255.0"
+ local_mac: "00:00:00:00:00:01"
+ xe1: # logical name from topology.yaml and vnfd.yaml
+ vpci: "0000:07:00.1"
+ driver: i40e # default kernel driver
+ dpdk_port_num: 1
+ local_ip: "152.16.40.20"
+ netmask: "255.255.255.0"
+ local_mac: "00:00:00:00:00:02"
+
+OVS-DPDK Config host_ovs.yaml
++++++++++++++++++++++++++++++
+
+.. code-block:: YAML
+
+ nodes:
+ -
+ name: ovs_dpdk
+ role: OvsDpdk
+ ip: 192.168.100.101
+ user: ""
+ password: ""
+
+ovs_dpdk testcase update:
+``<yardstick>/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml``
+
+Update contexts section
+'''''''''''''''''''''''
+
+.. code-block:: YAML
+
+ contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ - type: StandaloneOvsDpdk
+ name: yardstick
+ file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.7.0
+ dpdk: 16.11.1
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+
+ flavor:
+ images: "/var/lib/libvirt/images/ubuntu.qcow2"
+ ram: 4096
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 6
+ hw:cpu_threads: 2
+ user: "" # update VM username
+ password: "" # update password
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.61/24' # Update VM IP address, if static, <ip>/<mask> or if dynamic, <start of ip>/<mask>
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ networks:
+ uplink_0:
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:07.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:08.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+
+OVS-DPDK configuration options
+++++++++++++++++++++++++++++++
+
+There are number of configuration options available for OVS-DPDK context in
+test case. Mostly they are used for performance tuning.
+
+OVS-DPDK properties:
+''''''''''''''''''''
+
+OVS-DPDK properties example under *ovs_properties* section:
+
+ .. code-block:: console
+
+ ovs_properties:
+ version:
+ ovs: 2.8.1
+ dpdk: 17.05.2
+ pmd_threads: 4
+ pmd_cpu_mask: "0x3c"
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 2
+ vpath: "/usr/local"
+ max_idle: 30000
+ lcore_mask: 0x02
+ dpdk_pmd-rxq-affinity:
+ 0: "0:2,1:2"
+ 1: "0:2,1:2"
+ 2: "0:3,1:3"
+ 3: "0:3,1:3"
+ vhost_pmd-rxq-affinity:
+ 0: "0:3,1:3"
+ 1: "0:3,1:3"
+ 2: "0:4,1:4"
+ 3: "0:4,1:4"
+
+OVS-DPDK properties description:
+
+ +-------------------------+-------------------------------------------------+
+ | Parameters | Detail |
+ +=========================+=================================================+
+ | version || Version of OVS and DPDK to be installed |
+ | || There is a relation between OVS and DPDK |
+ | | version which can be found at |
+ | | `OVS-DPDK-versions`_ |
+ | || By default OVS: 2.6.0, DPDK: 16.07.2 |
+ +-------------------------+-------------------------------------------------+
+ | lcore_mask || Core bitmask used during DPDK initialization |
+ | | where the non-datapath OVS-DPDK threads such |
+ | | as handler and revalidator threads run |
+ +-------------------------+-------------------------------------------------+
+ | pmd_cpu_mask || Core bitmask that sets which cores are used by |
+ | || OVS-DPDK for datapath packet processing |
+ +-------------------------+-------------------------------------------------+
+ | pmd_threads || Number of PMD threads used by OVS-DPDK for |
+ | | datapath |
+ | || This core mask is evaluated in Yardstick |
+ | || It will be used if pmd_cpu_mask is not given |
+ | || Default is 2 |
+ +-------------------------+-------------------------------------------------+
+ | ram || Amount of RAM to be used for each socket, MB |
+ | || Default is 2048 MB |
+ +-------------------------+-------------------------------------------------+
+ | queues || Number of RX queues used for DPDK physical |
+ | | interface |
+ +-------------------------+-------------------------------------------------+
+ | dpdk_pmd-rxq-affinity || RX queue assignment to PMD threads for DPDK |
+ | || e.g.: <port number> : <queue-id>:<core-id> |
+ +-------------------------+-------------------------------------------------+
+ | vhost_pmd-rxq-affinity || RX queue assignment to PMD threads for vhost |
+ | || e.g.: <port number> : <queue-id>:<core-id> |
+ +-------------------------+-------------------------------------------------+
+ | vpath || User path for openvswitch files |
+ | || Default is ``/usr/local`` |
+ +-------------------------+-------------------------------------------------+
+ | max_idle || The maximum time that idle flows will remain |
+ | | cached in the datapath, ms |
+ +-------------------------+-------------------------------------------------+
+
+
+VM image properties
+'''''''''''''''''''
+
+VM image properties are same as for SRIOV :ref:`VM image properties label`.
+
+
+OpenStack with SR-IOV support
+-----------------------------
+
+This section describes how to run a Sample VNF test case, using Heat context,
+with SR-IOV. It also covers how to install OpenStack in Ubuntu 16.04, using
+DevStack, with SR-IOV support.
+
+
+Single node OpenStack with external TG
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: console
+
+ +----------------------------+
+ |OpenStack(DevStack) |
+ | |
+ | +--------------------+ |
+ | |sample-VNF VM | |
+ | | | |
+ | | DUT | |
+ | | (VNF) | |
+ | | | |
+ | +--------+ +--------+ |
+ | | VF NIC | | VF NIC | |
+ | +-----+--+--+----+---+ |
+ | ^ ^ |
+ | | | |
+ +----------+ +---------+----------+-------+
+ | | | VF0 VF1 |
+ | | | ^ ^ |
+ | | | | SUT | |
+ | TG | (PF0)<----->(PF0) +---------+ | |
+ | | | | |
+ | | (PF1)<----->(PF1) +--------------------+ |
+ | | | |
+ +----------+ +----------------------------+
+ trafficgen_0 host
+
+
+Host pre-configuration
+++++++++++++++++++++++
+
+.. warning:: The following configuration requires sudo access to the system.
+ Make sure that your user have the access.
+
+Enable the Intel VT-d or AMD-Vi extension in the BIOS. Some system
+manufacturers disable this extension by default.
+
+Activate the Intel VT-d or AMD-Vi extension in the kernel by modifying the GRUB
+config file ``/etc/default/grub``.
+
+For the Intel platform::
+
+ ...
+ GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"
+ ...
+
+For the AMD platform::
+
+ ...
+ GRUB_CMDLINE_LINUX_DEFAULT="amd_iommu=on"
+ ...
+
+Update the grub configuration file and restart the system:
+
+.. warning:: The following command will reboot the system.
+
+.. code:: bash
+
+ sudo update-grub
+ sudo reboot
+
+Make sure the extension has been enabled::
+
+ sudo journalctl -b 0 | grep -e IOMMU -e DMAR
+
+ Feb 06 14:50:14 hostname kernel: ACPI: DMAR 0x000000006C406000 0001E0 (v01 INTEL S2600WF 00000001 INTL 20091013)
+ Feb 06 14:50:14 hostname kernel: DMAR: IOMMU enabled
+ Feb 06 14:50:14 hostname kernel: DMAR: Host address width 46
+ Feb 06 14:50:14 hostname kernel: DMAR: DRHD base: 0x000000d37fc000 flags: 0x0
+ Feb 06 14:50:14 hostname kernel: DMAR: dmar0: reg_base_addr d37fc000 ver 1:0 cap 8d2078c106f0466 ecap f020de
+ Feb 06 14:50:14 hostname kernel: DMAR: DRHD base: 0x000000e0ffc000 flags: 0x0
+ Feb 06 14:50:14 hostname kernel: DMAR: dmar1: reg_base_addr e0ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020de
+ Feb 06 14:50:14 hostname kernel: DMAR: DRHD base: 0x000000ee7fc000 flags: 0x0
+
+.. TODO: Refer to the yardstick installation guide for proxy set up
+
+Setup system proxy (if needed). Add the following configuration into the
+``/etc/environment`` file:
+
+.. note:: The proxy server name/port and IPs should be changed according to
+ actual/current proxy configuration in the lab.
+
+.. code:: bash
+
+ export http_proxy=http://proxy.company.com:port
+ export https_proxy=http://proxy.company.com:port
+ export ftp_proxy=http://proxy.company.com:port
+ export no_proxy=localhost,127.0.0.1,company.com,<IP-OF-HOST1>,<IP-OF-HOST2>,...
+ export NO_PROXY=localhost,127.0.0.1,company.com,<IP-OF-HOST1>,<IP-OF-HOST2>,...
+
+Upgrade the system:
+
+.. code:: bash
+
+ sudo -EH apt-get update
+ sudo -EH apt-get upgrade
+ sudo -EH apt-get dist-upgrade
+
+Install dependencies needed for DevStack
+
+.. code:: bash
+
+ sudo -EH apt-get install python python-dev python-pip
+
+Setup SR-IOV ports on the host:
+
+.. note:: The ``enp24s0f0``, ``enp24s0f1`` are physical function (PF) interfaces
+ on a host and ``enp24s0f3`` is a public interface used in OpenStack, so the
+ interface names should be changed according to the HW environment used for
+ testing.
+
+.. code:: bash
+
+ sudo ip link set dev enp24s0f0 up
+ sudo ip link set dev enp24s0f1 up
+ sudo ip link set dev enp24s0f3 up
+
+ # Create VFs on PF
+ echo 2 | sudo tee /sys/class/net/enp24s0f0/device/sriov_numvfs
+ echo 2 | sudo tee /sys/class/net/enp24s0f1/device/sriov_numvfs
+
+
+DevStack installation
++++++++++++++++++++++
+
+If you want to try out NSB, but don't have OpenStack set-up, you can use
+`Devstack`_ to install OpenStack on a host. Please note, that the
+``stable/pike`` branch of devstack repo should be used during the installation.
+The required ``local.conf`` configuration file is described below.
+
+DevStack configuration file:
+
+.. note:: Update the devstack configuration file by replacing angluar brackets
+ with a short description inside.
+
+.. note:: Use ``lspci | grep Ether`` & ``lspci -n | grep <PCI ADDRESS>``
+ commands to get device and vendor id of the virtual function (VF).
+
+.. literalinclude:: code/single-devstack-local.conf
+ :language: ini
+
+Start the devstack installation on a host.
+
+TG host configuration
++++++++++++++++++++++
+
+Yardstick automatically installs and configures Trex traffic generator on TG
+host based on provided POD file (see below). Anyway, it's recommended to check
+the compatibility of the installed NIC on the TG server with software Trex
+using the `manual <https://trex-tgn.cisco.com/trex/doc/trex_manual.html>`_.
+
+Run the Sample VNF test case
+++++++++++++++++++++++++++++
+
+There is an example of Sample VNF test case ready to be executed in an
+OpenStack environment with SR-IOV support: ``samples/vnf_samples/nsut/vfw/
+tc_heat_sriov_external_rfc2544_ipv4_1rule_1flow_trex.yaml``.
+
+Install Yardstick using `Install Yardstick (NSB Testing)`_ steps for OpenStack
+context.
+
+Create pod file for TG in the yardstick repo folder located in the yardstick
+container:
+
+.. note:: The ``ip``, ``user``, ``password`` and ``vpci`` fields show be changed
+ according to HW environment used for the testing. Use ``lshw -c network -businfo``
+ command to get the PF PCI address for ``vpci`` field.
+
+.. literalinclude:: code/single-yardstick-pod.conf
+ :language: ini
+
+Run the Sample vFW RFC2544 SR-IOV TC (``samples/vnf_samples/nsut/vfw/
+tc_heat_sriov_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml``) in the heat
+context using steps described in `NS testing - using yardstick CLI`_ section.
+
+
+Multi node OpenStack TG and VNF setup (two nodes)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: console
+
+ +----------------------------+ +----------------------------+
+ |OpenStack(DevStack) | |OpenStack(DevStack) |
+ | | | |
+ | +--------------------+ | | +--------------------+ |
+ | |sample-VNF VM | | | |sample-VNF VM | |
+ | | | | | | | |
+ | | TG | | | | DUT | |
+ | | trafficgen_0 | | | | (VNF) | |
+ | | | | | | | |
+ | +--------+ +--------+ | | +--------+ +--------+ |
+ | | VF NIC | | VF NIC | | | | VF NIC | | VF NIC | |
+ | +----+---+--+----+---+ | | +-----+--+--+----+---+ |
+ | ^ ^ | | ^ ^ |
+ | | | | | | | |
+ +--------+-----------+-------+ +---------+----------+-------+
+ | VF0 VF1 | | VF0 VF1 |
+ | ^ ^ | | ^ ^ |
+ | | SUT2 | | | | SUT1 | |
+ | | +-------+ (PF0)<----->(PF0) +---------+ | |
+ | | | | | |
+ | +-------------------+ (PF1)<----->(PF1) +--------------------+ |
+ | | | |
+ +----------------------------+ +----------------------------+
+ host2 (compute) host1 (controller)
+
+
+Controller/Compute pre-configuration
+++++++++++++++++++++++++++++++++++++
+
+Pre-configuration of the controller and compute hosts are the same as
+described in `Host pre-configuration`_ section.
+
+DevStack configuration
+++++++++++++++++++++++
+
+A reference ``local.conf`` for deploying OpenStack in a multi-host environment
+using `Devstack`_ is shown in this section. The ``stable/pike`` branch of
+devstack repo should be used during the installation.
+
+.. note:: Update the devstack configuration files by replacing angluar brackets
+ with a short description inside.
+
+.. note:: Use ``lspci | grep Ether`` & ``lspci -n | grep <PCI ADDRESS>``
+ commands to get device and vendor id of the virtual function (VF).
+
+DevStack configuration file for controller host:
+
+.. literalinclude:: code/multi-devstack-controller-local.conf
+ :language: ini
+
+DevStack configuration file for compute host:
+
+.. literalinclude:: code/multi-devstack-compute-local.conf
+ :language: ini
+
+Start the devstack installation on the controller and compute hosts.
+
+Run the sample vFW TC
++++++++++++++++++++++
+
+Install Yardstick using `Install Yardstick (NSB Testing)`_ steps for OpenStack
+context.
+
+Run the sample vFW RFC2544 SR-IOV test case
+(``samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml``)
+in the heat context using steps described in
+`NS testing - using yardstick CLI`_ section and the following Yardstick command
+line arguments:
+
+.. code:: bash
+
+ yardstick -d task start --task-args='{"provider": "sriov"}' \
+ samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+
+
+Enabling other Traffic generators
+---------------------------------
+
+IxLoad
+^^^^^^
+
+1. Software needed: IxLoadAPI ``<IxLoadTclApi verson>Linux64.bin.tgz`` and
+ ``<IxOS version>Linux64.bin.tar.gz`` (Download from ixia support site)
+ Install - ``<IxLoadTclApi verson>Linux64.bin.tgz`` and
+ ``<IxOS version>Linux64.bin.tar.gz``
+ If the installation was not done inside the container, after installing
+ the IXIA client, check ``/opt/ixia/ixload/<ver>/bin/ixloadpython`` and make
+ sure you can run this cmd inside the yardstick container. Usually user is
+ required to copy or link ``/opt/ixia/python/<ver>/bin/ixiapython`` to
+ ``/usr/bin/ixiapython<ver>`` inside the container.
+
+2. Update ``pod_ixia.yaml`` file with ixia details.
+
+ .. code-block:: console
+
+ cp <repo>/etc/yardstick/nodes/pod.yaml.nsb.sample.ixia \
+ etc/yardstick/nodes/pod_ixia.yaml
+
+ Config ``pod_ixia.yaml``
+
+ .. literalinclude:: code/pod_ixia.yaml
+ :language: yaml
+
+ for sriov/ovs_dpdk pod files, please refer to `Standalone Virtualization`_
+ for ovs-dpdk/sriov configuration
+
+3. Start IxOS TCL Server (Install 'Ixia IxExplorer IxOS <version>')
+ You will also need to configure the IxLoad machine to start the IXIA
+ IxosTclServer. This can be started like so:
+
+ * Connect to the IxLoad machine using RDP
+ * Go to:
+ ``Start->Programs->Ixia->IxOS->IxOS 8.01-GA-Patch1->Ixia Tcl Server IxOS 8.01-GA-Patch1``
+ or
+ ``C:\Program Files (x86)\Ixia\IxOS\8.01-GA-Patch1\ixTclServer.exe``
+
+4. Create a folder ``Results`` in c:\ and share the folder on the network.
+
+5. Execute testcase in samplevnf folder e.g.
+ ``<repo>/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml``
+
+IxNetwork
+^^^^^^^^^
+
+IxNetwork testcases use IxNetwork API Python Bindings module, which is
+installed as part of the requirements of the project.
+
+1. Update ``pod_ixia.yaml`` file with ixia details.
+
+ .. code-block:: console
+
+ cp <repo>/etc/yardstick/nodes/pod.yaml.nsb.sample.ixia \
+ etc/yardstick/nodes/pod_ixia.yaml
+
+ Configure ``pod_ixia.yaml``
+
+ .. literalinclude:: code/pod_ixia.yaml
+ :language: yaml
+
+ for sriov/ovs_dpdk pod files, please refer to above
+ `Standalone Virtualization`_ for ovs-dpdk/sriov configuration
+
+2. Start IxNetwork TCL Server
+ You will also need to configure the IxNetwork machine to start the IXIA
+ IxNetworkTclServer. This can be started like so:
+
+ * Connect to the IxNetwork machine using RDP
+ * Go to:
+ ``Start->Programs->Ixia->IxNetwork->IxNetwork 7.21.893.14 GA->IxNetworkTclServer``
+ (or ``IxNetworkApiServer``)
+
+3. Execute testcase in samplevnf folder e.g.
+ ``<repo>/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml``
+
+Spirent Landslide
+-----------------
+
+In order to use Spirent Landslide for vEPC testcases, some dependencies have
+to be preinstalled and properly configured.
+
+- Java
+
+ 32-bit Java installation is required for the Spirent Landslide TCL API.
+
+ | ``$ sudo apt-get install openjdk-8-jdk:i386``
+
+ .. important::
+ Make sure ``LD_LIBRARY_PATH`` is pointing to 32-bit JRE. For more details
+ check `Linux Troubleshooting <http://TAS_HOST_IP/tclapiinstall.html#trouble>`
+ section of installation instructions.
+
+- LsApi (Tcl API module)
+
+ Follow Landslide documentation for detailed instructions on Linux
+ installation of Tcl API and its dependencies
+ ``http://TAS_HOST_IP/tclapiinstall.html``.
+ For working with LsApi Python wrapper only steps 1-5 are required.
+
+ .. note:: After installation make sure your API home path is included in
+ ``PYTHONPATH`` environment variable.
+
+ .. important::
+ The current version of LsApi module has an issue with reading LD_LIBRARY_PATH.
+ For LsApi module to initialize correctly following lines (184-186) in
+ lsapi.py
+
+ .. code-block:: python
+
+ ldpath = os.environ.get('LD_LIBRARY_PATH', '')
+ if ldpath == '':
+ environ['LD_LIBRARY_PATH'] = environ['LD_LIBRARY_PATH'] + ':' + ldpath
+
+ should be changed to:
+
+ .. code-block:: python
+
+ ldpath = os.environ.get('LD_LIBRARY_PATH', '')
+ if not ldpath == '':
+ environ['LD_LIBRARY_PATH'] = environ['LD_LIBRARY_PATH'] + ':' + ldpath
+
+.. note:: The Spirent landslide TCL software package needs to be updated in case
+ the user upgrades to a new version of Spirent landslide software.
diff --git a/docs/testing/user/userguide/13-nsb_operation.rst b/docs/testing/user/userguide/13-nsb_operation.rst
deleted file mode 100644
index 8c477fa3f..000000000
--- a/docs/testing/user/userguide/13-nsb_operation.rst
+++ /dev/null
@@ -1,270 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) OPNFV, 2016-2017 Intel Corporation.
-
-Yardstick - NSB Testing - Operation
-===================================
-
-Abstract
---------
-
-NSB test configuration and OpenStack setup requirements
-
-
-OpenStack Network Configuration
--------------------------------
-
-NSB requires certain OpenStack deployment configurations.
-For optimal VNF characterization using external traffic generators NSB requires
-provider/external networks.
-
-
-Provider networks
-^^^^^^^^^^^^^^^^^
-
-The VNFs require a clear L2 connect to the external network in order to generate
-realistic traffic from multiple address ranges and port
-
-In order to prevent Neutron from filtering traffic we have to disable Neutron Port Security.
-We also disable DHCP on the data ports because we are binding the ports to DPDK and do not need
-DHCP addresses. We also disable gateways because multiple default gateways can prevent SSH access
-to the VNF from the floating IP. We only want a gateway on the mgmt network
-
-.. code-block:: yaml
-
- uplink_0:
- cidr: '10.1.0.0/24'
- gateway_ip: 'null'
- port_security_enabled: False
- enable_dhcp: 'false'
-
-Heat Topologies
-^^^^^^^^^^^^^^^
-
-By default Heat will attach every node to every Neutron network that is created.
-For scale-out tests we do not want to attach every node to every network.
-
-For each node you can specify which ports are on which network using the
-network_ports dictionary.
-
-In this example we have ``TRex xe0 <-> xe0 VNF xe1 <-> xe0 UDP_Replay``
-
-.. code-block:: yaml
-
- vnf_0:
- floating_ip: true
- placement: "pgrp1"
- network_ports:
- mgmt:
- - mgmt
- uplink_0:
- - xe0
- downlink_0:
- - xe1
- tg_0:
- floating_ip: true
- placement: "pgrp1"
- network_ports:
- mgmt:
- - mgmt
- uplink_0:
- - xe0
- # Trex always needs two ports
- uplink_1:
- - xe1
- tg_1:
- floating_ip: true
- placement: "pgrp1"
- network_ports:
- mgmt:
- - mgmt
- downlink_0:
- - xe0
-
-Collectd KPIs
--------------
-
-NSB can collect KPIs from collected. We have support for various plugins enabled by the
-Barometer project.
-
-The default yardstick-samplevnf has collectd installed. This allows for collecting KPIs
-from the VNF.
-
-Collecting KPIs from the NFVi is more complicated and requires manual setup.
-We assume that collectd is not installed on the compute nodes.
-
-To collectd KPIs from the NFVi compute nodes:
-
-
- * install_collectd on the compute nodes
- * create pod.yaml for the compute nodes
- * enable specific plugins depending on the vswitch and DPDK
-
- example pod.yaml section for Compute node running collectd.
-
-.. code-block:: yaml
-
- -
- name: "compute-1"
- role: Compute
- ip: "10.1.2.3"
- user: "root"
- ssh_port: "22"
- password: ""
- collectd:
- interval: 5
- plugins:
- # for libvirtd stats
- virt: {}
- intel_pmu: {}
- ovs_stats:
- # path to OVS socket
- ovs_socket_path: /var/run/openvswitch/db.sock
- intel_rdt: {}
-
-
-
-Scale-Up
-------------------
-
-VNFs performance data with scale-up
-
- * Helps to figure out optimal number of cores specification in the Virtual Machine template creation or VNF
- * Helps in comparison between different VNF vendor offerings
- * Better the scale-up index, indicates the performance scalability of a particular solution
-
-Heat
-^^^^
-
-For VNF scale-up tests we increase the number for VNF worker threads. In the case of VNFs
-we also need to increase the number of VCPUs and memory allocated to the VNF.
-
-An example scale-up Heat testcase is:
-
-.. code-block:: console
-
- <repo>/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml
-
-This testcase template requires specifying the number of VCPUs and Memory.
-We set the VCPUs and memory using the --task-args options
-
-.. code-block:: console
-
- yardstick --debug task start --task-args='{"mem": 20480, "vcpus": 10}' samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml
-
-
-Baremetal
-^^^^^^^^^
- 1. Follow above traffic generator section to setup.
- 2. edit num of threads in ``<repo>/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml``
-
- e.g, 6 Threads for given VNF
-
-.. code-block:: yaml
-
-
- schema: yardstick:task:0.1
- scenarios:
- {% for worker_thread in [1, 2 ,3 , 4, 5, 6] %}
- - type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: vfw-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- options:
- framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}}
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
- {% endfor %}
- context:
- type: Node
- name: yardstick
- nfvi_type: baremetal
- file: /etc/yardstick/nodes/pod.yaml
-
-Scale-Out
---------------------
-
-VNFs performance data with scale-out
-
- * Helps in capacity planning to meet the given network node requirements
- * Helps in comparison between different VNF vendor offerings
- * Better the scale-out index, provides the flexibility in meeting future capacity requirements
-
-
-Standalone
-^^^^^^^^^^
-
-Scale-out not supported on Baremetal.
-
-1. Follow above traffic generator section to setup.
-2. Generate testcase for standalone virtualization using ansible scripts
-
- .. code-block:: console
-
- cd <repo>/ansible
- trex: standalone_ovs_scale_out_trex_test.yaml or standalone_sriov_scale_out_trex_test.yaml
- ixia: standalone_ovs_scale_out_ixia_test.yaml or standalone_sriov_scale_out_ixia_test.yaml
- ixia_correlated: standalone_ovs_scale_out_ixia_correlated_test.yaml or standalone_sriov_scale_out_ixia_correlated_test.yaml
-
- update the ovs_dpdk or sriov above Ansible scripts reflect the setup
-
-3. run the test
-
- .. code-block:: console
-
- <repo>/samples/vnf_samples/nsut/tc_sriov_vfw_udp_ixia_correlated_scale_out-1.yaml
- <repo>/samples/vnf_samples/nsut/tc_sriov_vfw_udp_ixia_correlated_scale_out-2.yaml
-
-Heat
-^^^^
-
-There are sample scale-out all-VM Heat tests. These tests only use VMs and don't use external traffic.
-
-The tests use UDP_Replay and correlated traffic.
-
-.. code-block:: console
-
- <repo>/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_4.yaml
-
-To run the test you need to increase OpenStack CPU, Memory and Port quotas.
-
-
-Traffic Generator tuning
-------------------------
-
-The TRex traffic generator can be setup to use multiple threads per core, this is for multiqueue testing.
-
-TRex does not automatically enable multiple threads because we currently cannot detect the number of queues on a device.
-
-To enable multiple queue set the queues_per_port value in the TG VNF options section.
-
-.. code-block:: yaml
-
- scenarios:
- - type: NSPerf
- nodes:
- tg__0: tg_0.yardstick
-
- options:
- tg_0:
- queues_per_port: 2
-
-
diff --git a/docs/testing/user/userguide/14-nsb-operation.rst b/docs/testing/user/userguide/14-nsb-operation.rst
new file mode 100644
index 000000000..1f9e4d4c6
--- /dev/null
+++ b/docs/testing/user/userguide/14-nsb-operation.rst
@@ -0,0 +1,706 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2016-2019 Intel Corporation.
+..
+ Convention for heading levels in Yardstick documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ^^^^^^^ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
+Yardstick - NSB Testing - Operation
+===================================
+
+Abstract
+--------
+
+NSB test configuration and OpenStack setup requirements
+
+
+OpenStack Network Configuration
+-------------------------------
+
+NSB requires certain OpenStack deployment configurations.
+For optimal VNF characterization using external traffic generators NSB requires
+provider/external networks.
+
+
+Provider networks
+^^^^^^^^^^^^^^^^^
+
+The VNFs require a clear L2 connect to the external network in order to
+generate realistic traffic from multiple address ranges and ports.
+
+In order to prevent Neutron from filtering traffic we have to disable Neutron
+Port Security. We also disable DHCP on the data ports because we are binding
+the ports to DPDK and do not need DHCP addresses. We also disable gateways
+because multiple default gateways can prevent SSH access to the VNF from the
+floating IP. We only want a gateway on the mgmt network
+
+.. code-block:: yaml
+
+ uplink_0:
+ cidr: '10.1.0.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+
+Heat Topologies
+^^^^^^^^^^^^^^^
+
+By default Heat will attach every node to every Neutron network that is
+created. For scale-out tests we do not want to attach every node to every
+network.
+
+For each node you can specify which ports are on which network using the
+network_ports dictionary.
+
+In this example we have ``TRex xe0 <-> xe0 VNF xe1 <-> xe0 UDP_Replay``
+
+.. code-block:: yaml
+
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+ uplink_0:
+ - xe0
+ downlink_0:
+ - xe1
+ tg_0:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+ uplink_0:
+ - xe0
+ # Trex always needs two ports
+ uplink_1:
+ - xe1
+ tg_1:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+ downlink_0:
+ - xe0
+
+
+Availability zone
+^^^^^^^^^^^^^^^^^
+
+The configuration of the availability zone is requred in cases where location
+of exact compute host/group of compute hosts needs to be specified for
+:term:`SampleVNF` or traffic generator in the heat test case. If this is the
+case, please follow the instructions below.
+
+.. _`Create a host aggregate`:
+
+1. Create a host aggregate in the OpenStack and add the available compute hosts
+ into the aggregate group.
+
+ .. note:: Change the ``<AZ_NAME>`` (availability zone name), ``<AGG_NAME>``
+ (host aggregate name) and ``<HOST>`` (host name of one of the compute) in the
+ commands below.
+
+ .. code-block:: bash
+
+ # create host aggregate
+ openstack aggregate create --zone <AZ_NAME> \
+ --property availability_zone=<AZ_NAME> <AGG_NAME>
+ # show available hosts
+ openstack compute service list --service nova-compute
+ # add selected host into the host aggregate
+ openstack aggregate add host <AGG_NAME> <HOST>
+
+2. To specify the OpenStack location (the exact compute host or group of the hosts)
+ of SampleVNF or traffic generator in the heat test case, the ``availability_zone`` server
+ configuration option should be used. For example:
+
+ .. note:: The ``<AZ_NAME>`` (availability zone name) should be changed according
+ to the name used during the host aggregate creation steps above.
+
+ .. code-block:: yaml
+
+ context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ ...
+ servers:
+ vnf_0:
+ ...
+ availability_zone: <AZ_NAME>
+ ...
+ tg__0:
+ ...
+ availability_zone: <AZ_NAME>
+ ...
+ networks:
+ ...
+
+There are two example of SampleVNF scale out test case which use the
+``availability zone`` feature to specify the exact location of scaled VNFs and
+traffic generators.
+
+Those are:
+
+.. code-block:: console
+
+ <repo>/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2-scale-out.yaml
+ <repo>/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale_out.yaml
+
+.. note:: This section describes the PROX scale-out testcase, but the same
+ procedure is used for the vFW test case.
+
+1. Before running the scale-out test case, make sure the host aggregates are
+ configured in the OpenStack environment. To check this, run the following
+ command:
+
+ .. code-block:: console
+
+ # show configured host aggregates (example)
+ openstack aggregate list
+ +----+------+-------------------+
+ | ID | Name | Availability Zone |
+ +----+------+-------------------+
+ | 4 | agg0 | AZ_NAME_0 |
+ | 5 | agg1 | AZ_NAME_1 |
+ +----+------+-------------------+
+
+2. If no host aggregates are configured, please follow the instructions to
+ `Create a host aggregate`_
+
+
+3. Run the SampleVNF PROX scale-out test case, specifying the
+ ``availability zone`` of each VNF and traffic generator as task arguments.
+
+ .. note:: The ``az_0`` and ``az_1`` should be changed according to the host
+ aggregates created in the OpenStack.
+
+ .. code-block:: console
+
+ yardstick -d task start \
+ <repo>/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2-scale-out.yaml\
+ --task-args='{
+ "num_vnfs": 4, "availability_zone": {
+ "vnf_0": "az_0", "tg_0": "az_1",
+ "vnf_1": "az_0", "tg_1": "az_1",
+ "vnf_2": "az_0", "tg_2": "az_1",
+ "vnf_3": "az_0", "tg_3": "az_1"
+ }
+ }'
+
+ ``num_vnfs`` specifies how many VNFs are going to be deployed in the
+ ``heat`` contexts. ``vnf_X`` and ``tg_X`` arguments configure the
+ availability zone where the VNF and traffic generator is going to be deployed.
+
+
+Collectd KPIs
+-------------
+
+NSB can collect KPIs from collected. We have support for various plugins
+enabled by the :term:`Barometer` project.
+
+The default yardstick-samplevnf has collectd installed. This allows for
+collecting KPIs from the VNF.
+
+Collecting KPIs from the NFVi is more complicated and requires manual setup.
+We assume that collectd is not installed on the compute nodes.
+
+To collectd KPIs from the NFVi compute nodes:
+
+ * install_collectd on the compute nodes
+ * create pod.yaml for the compute nodes
+ * enable specific plugins depending on the vswitch and DPDK
+
+ example ``pod.yaml`` section for Compute node running collectd.
+
+.. code-block:: yaml
+
+ -
+ name: "compute-1"
+ role: Compute
+ ip: "10.1.2.3"
+ user: "root"
+ ssh_port: "22"
+ password: ""
+ collectd:
+ interval: 5
+ plugins:
+ # for libvirtd stats
+ virt: {}
+ intel_pmu: {}
+ ovs_stats:
+ # path to OVS socket
+ ovs_socket_path: /var/run/openvswitch/db.sock
+ intel_rdt: {}
+
+
+
+Scale-Up
+--------
+
+VNFs performance data with scale-up
+
+ * Helps to figure out optimal number of cores specification in the Virtual
+ Machine template creation or VNF
+ * Helps in comparison between different VNF vendor offerings
+ * Better the scale-up index, indicates the performance scalability of a
+ particular solution
+
+Heat
+^^^^
+For VNF scale-up tests we increase the number for VNF worker threads. In the
+case of VNFs we also need to increase the number of VCPUs and memory allocated
+to the VNF.
+
+An example scale-up Heat testcase is:
+
+.. literalinclude:: /../samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale-up.yaml
+ :language: yaml+jinja
+
+This testcase template requires specifying the number of VCPUs, Memory and Ports.
+We set the VCPUs and memory using the ``--task-args`` options
+
+.. code-block:: console
+
+ yardstick task start --task-args='{"mem": 10480, "vcpus": 4, "vports": 2}' \
+ samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml
+
+In order to support ports scale-up, traffic and topology templates need to be used in testcase.
+
+A example topology template is:
+
+.. literalinclude:: /../samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml
+ :language: yaml+jinja
+
+This template has ``vports`` as an argument. To pass this argument it needs to
+be configured in ``extra_args`` scenario definition. Please note that more
+argument can be defined in that section. All of them will be passed to topology
+and traffic profile templates
+
+For example:
+
+.. code-block:: yaml
+
+ schema: yardstick:task:0.1
+ scenarios:
+ - type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vfw-tg-topology-scale-up.yaml
+
+A example traffic profile template is:
+
+.. literalinclude:: /../samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml
+ :language: yaml+jinja
+
+There is an option to provide predefined config for SampleVNFs. Path to config
+file may by specified in ``vnf_config`` scenario section.
+
+.. code-block:: yaml
+
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', file: vfw_vnf_pipeline_cores_4_ports_2_lb_1_sw.conf }
+
+
+Baremetal
+^^^^^^^^^
+ 1. Follow above traffic generator section to setup.
+ 2. Edit num of threads in
+ ``<repo>/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml``
+ e.g, 6 Threads for given VNF
+
+.. code-block:: yaml+jinja
+
+ schema: yardstick:task:0.1
+ scenarios:
+ {% for worker_thread in [1, 2 ,3 , 4, 5, 6] %}
+ - type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: vfw-tg-topology.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {64B: 100}
+ downlink: {64B: 100}
+ flow:
+ src_ip: [{'tg__0': 'xe0'}]
+ dst_ip: [{'tg__0': 'xe1'}]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}}
+ nfvi_enable: True
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+ {% endfor %}
+ context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
+
+Scale-Out
+---------
+
+VNFs performance data with scale-out helps
+
+ * capacity planning to meet the given network node requirements
+ * comparison between different VNF vendor offerings
+ * better the scale-out index, provides the flexibility in meeting future
+ capacity requirements
+
+
+Standalone
+^^^^^^^^^^
+
+Scale-out not supported on Baremetal.
+
+1. Follow above traffic generator section to setup.
+2. Generate testcase for standalone virtualization using ansible scripts
+
+ .. code-block:: console
+
+ cd <repo>/ansible
+ trex: standalone_ovs_scale_out_test.yaml or standalone_sriov_scale_out_test.yaml
+ ixia: standalone_ovs_scale_out_ixia_test.yaml or standalone_sriov_scale_out_ixia_test.yaml
+ ixia_correlated: standalone_ovs_scale_out_ixia_correlated_test.yaml or standalone_sriov_scale_out_ixia_correlated_test.yaml
+
+ update the ovs_dpdk or sriov above Ansible scripts reflect the setup
+
+3. run the test
+
+ .. code-block:: console
+
+ <repo>/samples/vnf_samples/nsut/tc_sriov_vfw_udp_ixia_correlated_scale_out-1.yaml
+ <repo>/samples/vnf_samples/nsut/tc_sriov_vfw_udp_ixia_correlated_scale_out-2.yaml
+
+Heat
+^^^^
+
+There are sample scale-out all-VM Heat tests. These tests only use VMs and
+don't use external traffic.
+
+The tests use UDP_Replay and correlated traffic.
+
+.. code-block:: console
+
+ <repo>/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_4.yaml
+
+To run the test you need to increase OpenStack CPU, Memory and Port quotas.
+
+
+Traffic Generator tuning
+------------------------
+
+The TRex traffic generator can be setup to use multiple threads per core, this
+is for multiqueue testing.
+
+TRex does not automatically enable multiple threads because we currently cannot
+detect the number of queues on a device.
+
+To enable multiple queue set the ``queues_per_port`` value in the TG VNF
+options section.
+
+.. code-block:: yaml
+
+ scenarios:
+ - type: NSPerf
+ nodes:
+ tg__0: trafficgen_0.yardstick
+
+ options:
+ tg_0:
+ queues_per_port: 2
+
+
+Standalone configuration
+------------------------
+
+NSB supports certain Standalone deployment configurations.
+Standalone supports provisioning a VM in a standalone visualised environment using kvm/qemu.
+There two types of Standalone contexts available: OVS-DPDK and SRIOV.
+OVS-DPDK uses OVS network with DPDK drivers.
+SRIOV enables network traffic to bypass the software switch layer of the Hyper-V stack.
+
+Emulated machine type
+^^^^^^^^^^^^^^^^^^^^^
+
+For better performance test results of emulated VM spawned by Yardstick SA
+context (OvS-DPDK/SRIOV), it may be important to control the emulated machine
+type used by QEMU emulator. This attribute can be configured via TC definition
+in ``contexts`` section under ``extra_specs`` configuration.
+
+For example:
+
+.. code-block:: yaml
+
+ contexts:
+ ...
+ - type: StandaloneSriov
+ ...
+ flavor:
+ ...
+ extra_specs:
+ ...
+ machine_type: pc-i440fx-bionic
+
+Where, ``machine_type`` can be set to one of the emulated machine type
+supported by QEMU running on SUT platform. To get full list of supported
+emulated machine types, the following command can be used on the target SUT
+host.
+
+.. code-block:: yaml
+
+ # qemu-system-x86_64 -machine ?
+
+By default, the ``machine_type`` option is set to ``pc-i440fx-xenial`` which is
+suitable for running Ubuntu 16.04 VM image. So, if this type is not supported
+by the target platform or another VM image is used for stand alone (SA) context
+VM (e.g.: ``bionic`` image for Ubuntu 18.04), this configuration should be
+changed accordingly.
+
+Standalone with OVS-DPDK
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+SampleVNF image is spawned in a VM on a baremetal server.
+OVS with DPDK is installed on the baremetal server.
+
+.. note:: Ubuntu 17.10 requires DPDK v.17.05 and higher, DPDK v.17.05 requires OVS v.2.8.0.
+
+Default values for OVS-DPDK:
+
+ * queues: 4
+ * lcore_mask: ""
+ * pmd_cpu_mask: "0x6"
+
+Sample test case file
+^^^^^^^^^^^^^^^^^^^^^
+
+1. Prepare SampleVNF image and copy it to ``flavor/images``.
+2. Prepare context files for TREX and SampleVNF under ``contexts/file``.
+3. Add bridge named ``br-int`` to the baremetal where SampleVNF image is deployed.
+4. Modify ``networks/phy_port`` accordingly to the baremetal setup.
+5. Run test from:
+
+.. literalinclude:: /../samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_trex.yaml
+ :language: yaml+jinja
+
+Preparing test run of vEPC test case
+------------------------------------
+
+Provided vEPC test cases are examples of emulation of vEPC infrastructure
+components, such as UE, eNodeB, MME, SGW, PGW.
+
+Location of vEPC test cases: ``samples/vnf_samples/nsut/vepc/``.
+
+Before running a specific vEPC test case using NSB, some preconfiguration
+needs to be done.
+
+Update Spirent Landslide TG configuration in pod file
+=====================================================
+
+Examples of ``pod.yaml`` files could be found in
+:file:`etc/yardstick/nodes/standalone`.
+The name of related pod file could be checked in the context section of NSB
+test case.
+
+The ``pod.yaml`` related to vEPC test case uses some sub-structures that hold the
+details of accessing the Spirent Landslide traffic generator.
+These subsections and the changes to be done in provided example pod file are
+described below.
+
+1. ``tas_manager``: data under this key holds the information required to
+access Landslide TAS (Test Administration Server) and perform needed
+configurations on it.
+
+ * ``ip``: IP address of TAS Manager node; should be updated according to test
+ setup used
+ * ``super_user``: superuser name; could be retrieved from Landslide documentation
+ * ``super_user_password``: superuser password; could be retrieved from
+ Landslide documentation
+ * ``cfguser_password``: password of predefined user named 'cfguser'; default
+ password could be retrieved from Landslide documentation
+ * ``test_user``: username to be used during test run as a Landslide library
+ name; to be defined by test run operator
+ * ``test_user_password``: password of test user; to be defined by test run
+ operator
+ * ``proto``: *http* or *https*; to be defined by test run operator
+ * ``license``: Landslide license number installed on TAS
+
+2. The ``config`` section holds information about test servers (TSs) and
+systems under test (SUTs). Data is represented as a list of entries.
+Each such entry contains:
+
+ * ``test_server``: this subsection represents data related to test server
+ configuration, such as:
+
+ * ``name``: test server name; unique custom name to be defined by test
+ operator
+ * ``role``: this value is used as a key to bind specific Test Server and
+ TestCase; should be set to one of test types supported by TAS license
+ * ``ip``: Test Server IP address
+ * ``thread_model``: parameter related to Test Server performance mode.
+ The value should be one of the following: "Legacy" | "Max" | "Fireball".
+ Refer to Landslide documentation for details.
+ * ``phySubnets``: a structure used to specify IP ranges reservations on
+ specific network interfaces of related Test Server. Structure fields are:
+
+ * ``base``: start of IP address range
+ * ``mask``: IP range mask in CIDR format
+ * ``name``: network interface name, e.g. *eth1*
+ * ``numIps``: size of IP address range
+
+ * ``preResolvedArpAddress``: a structure used to specify the range of IP
+ addresses for which the ARP responses will be emulated
+
+ * ``StartingAddress``: IP address specifying the start of IP address range
+ * ``NumNodes``: size of the IP address range
+
+ * ``suts``: a structure that contains definitions of each specific SUT
+ (represents a vEPC component). SUT structure contains following key/value
+ pairs:
+
+ * ``name``: unique custom string specifying SUT name
+ * ``role``: string value corresponding with an SUT role specified in the
+ session profile (test session template) file
+ * ``managementIp``: SUT management IP adress
+ * ``phy``: network interface name, e.g. *eth1*
+ * ``ip``: vEPC component IP address used in test case topology
+ * ``nextHop``: next hop IP address, to allow for vEPC inter-node communication
+
+Update NSB test case definitions
+================================
+NSB test case file designated for vEPC testing contains an example of specific
+test scenario configuration.
+Test operator may change these definitions as required for the use case that
+requires testing.
+Specifically, following subsections of the vEPC test case (section **scenarios**)
+may be changed.
+
+1. Subsection ``options``: contains custom parameters used for vEPC testing
+
+ * subsection ``dmf``: may contain one or more parameters specified in
+ ``traffic_profile`` template file
+ * subsection ``test_cases``: contains re-definitions of parameters specified
+ in ``session_profile`` template file
+
+ .. note:: All parameters in ``session_profile``, value of which is a
+ placeholder, needs to be re-defined to construct a valid test session.
+
+2. Subsection ``runner``: specifies the test duration and the interval of
+TG and VNF side KPIs polling. For more details, refer to :doc:`03-architecture`.
+
+Preparing test run of vPE test case
+-----------------------------------
+The vPE (Provider Edge Router) is a :term: `VNF` approximation
+serving as an Edge Router. The vPE is approximated using the
+``ip_pipeline`` dpdk application.
+
+ .. image:: /../docs/testing/developer/devguide/images/vPE_Diagram.png
+ :width: 800px
+ :alt: NSB vPE Diagram
+
+The ``vpe_config`` file must be passed as it is not auto generated.
+The ``vpe_script`` defines the rules applied to each of the pipelines. This can be
+auto generated or a file can be passed using the ``script_file`` option in
+``vnf_config`` as shown below. The ``full_tm_profile_file`` option must be
+used if a traffic manager is defined in ``vpe_config``.
+
+.. code-block:: yaml
+
+ vnf_config: { file: './vpe_config/vpe_config_2_ports',
+ action_bulk_file: './vpe_config/action_bulk_512.txt',
+ full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg',
+ script_file: './vpe_config/vpe_script_sample' }
+
+Testcases for vPE can be found in the ``vnf_samples/nsut/vpe`` directory.
+A testcase can be started with the following command as an example:
+
+.. code-block:: bash
+
+ yardstick task start /yardstick/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml
+
+Preparing test run of vIPSEC test case
+--------------------------------------
+
+Location of vIPSEC test cases: ``samples/vnf_samples/nsut/ipsec/``.
+
+Before running a specific vIPSEC test case using NSB, some dependencies have to be
+preinstalled and properly configured.
+- VPP
+
+.. code-block:: console
+
+ export UBUNTU="xenial"
+ export RELEASE=".stable.1810"
+ sudo rm /etc/apt/sources.list.d/99fd.io.list
+ echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list
+ sudo apt-get update
+ sudo apt-get install vpp vpp-lib vpp-plugin vpp-dbg vpp-dev vpp-api-java vpp-api-python vpp-api-lua
+
+- VAT templates
+
+ VAT templates is required for the VPP API.
+
+.. code-block:: console
+
+ mkdir -p /opt/nsb_bin/vpp/templates/
+ echo 'exec trace add dpdk-input 50' > /opt/nsb_bin/vpp/templates/enable_dpdk_traces.vat
+ echo 'exec trace add vhost-user-input 50' > /opt/nsb_bin/vpp/templates/enable_vhost_user_traces.vat
+ echo 'exec trace add memif-input 50' > /opt/nsb_bin/vpp/templates/enable_memif_traces.vat
+ cat > /opt/nsb_bin/vpp/templates/dump_interfaces.vat << EOL
+ sw_interface_dump
+ dump_interface_table
+ quit
+ EOL
+
+
+Preparing test run of vCMTS test case
+-------------------------------------
+
+Location of vCMTS test cases: ``samples/vnf_samples/nsut/cmts/``.
+
+Before running a specific vIPSEC test case using NSB, some changes must be
+made to the original vCMTS package.
+
+Allow SSH access to the docker images
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Follow the documentation at ``https://docs.docker.com/engine/examples/running_ssh_service/``
+to allow SSH access to the Pktgen/vcmts-d containers located at:
+
+* ``$VCMTS_ROOT/pktgen/docker/docker-image-pktgen/Dockerfile`` and
+* ``$VCMTS_ROOT/vcmtsd/docker/docker-image-vcmtsd/Dockerfile``
+
+
+Deploy the ConfigMaps for Pktgen and vCMTSd
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+.. code-block:: bash
+
+ cd $VCMTS_ROOT/kubernetes/helm/pktgen
+ helm template . -x templates/pktgen-configmap.yaml > configmap.yaml
+ kubectl create -f configmap.yaml
+
+ cd $VCMTS_ROOT/kubernetes/helm/vcmtsd
+ helm template . -x templates/vcmts-configmap.yaml > configmap.yaml
+ kubectl create -f configmap.yaml
+
diff --git a/docs/testing/user/userguide/15-list-of-tcs.rst b/docs/testing/user/userguide/15-list-of-tcs.rst
index b62bf6390..b727aa3c9 100644
--- a/docs/testing/user/userguide/15-list-of-tcs.rst
+++ b/docs/testing/user/userguide/15-list-of-tcs.rst
@@ -1,135 +1,136 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International
-.. License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) OPNFV, Ericsson AB and others.
-
-====================
-Yardstick Test Cases
-====================
-
-Abstract
-========
-
-This chapter lists available Yardstick test cases.
-Yardstick test cases are divided in two main categories:
-
-* *Generic NFVI Test Cases* - Test Cases developed to realize the methodology
-described in :doc:`02-methodology`
-
-* *OPNFV Feature Test Cases* - Test Cases developed to verify one or more
-aspect of a feature delivered by an OPNFV Project, including the test cases
-developed for the :term:`VTC`.
-
-Generic NFVI Test Case Descriptions
-===================================
-
-.. toctree::
- :maxdepth: 1
-
- opnfv_yardstick_tc001.rst
- opnfv_yardstick_tc002.rst
- opnfv_yardstick_tc004.rst
- opnfv_yardstick_tc005.rst
- opnfv_yardstick_tc008.rst
- opnfv_yardstick_tc009.rst
- opnfv_yardstick_tc010.rst
- opnfv_yardstick_tc011.rst
- opnfv_yardstick_tc012.rst
- opnfv_yardstick_tc014.rst
- opnfv_yardstick_tc024.rst
- opnfv_yardstick_tc037.rst
- opnfv_yardstick_tc038.rst
- opnfv_yardstick_tc042.rst
- opnfv_yardstick_tc043.rst
- opnfv_yardstick_tc044.rst
- opnfv_yardstick_tc055.rst
- opnfv_yardstick_tc061.rst
- opnfv_yardstick_tc063.rst
- opnfv_yardstick_tc069.rst
- opnfv_yardstick_tc070.rst
- opnfv_yardstick_tc071.rst
- opnfv_yardstick_tc072.rst
- opnfv_yardstick_tc073.rst
- opnfv_yardstick_tc074.rst
- opnfv_yardstick_tc075.rst
- opnfv_yardstick_tc076.rst
- opnfv_yardstick_tc078.rst
- opnfv_yardstick_tc079.rst
- opnfv_yardstick_tc080.rst
- opnfv_yardstick_tc081.rst
- opnfv_yardstick_tc083.rst
-
-OPNFV Feature Test Cases
-========================
-
-H A
----
-
-.. toctree::
- :maxdepth: 1
-
- opnfv_yardstick_tc019.rst
- opnfv_yardstick_tc025.rst
- opnfv_yardstick_tc045.rst
- opnfv_yardstick_tc046.rst
- opnfv_yardstick_tc047.rst
- opnfv_yardstick_tc048.rst
- opnfv_yardstick_tc049.rst
- opnfv_yardstick_tc050.rst
- opnfv_yardstick_tc051.rst
- opnfv_yardstick_tc052.rst
- opnfv_yardstick_tc053.rst
- opnfv_yardstick_tc054.rst
-
-IPv6
-----
-
-.. toctree::
- :maxdepth: 1
-
- opnfv_yardstick_tc027.rst
-
-KVM
----
-
-.. toctree::
- :maxdepth: 1
-
- opnfv_yardstick_tc028.rst
-
-Parser
-------
-
-.. toctree::
- :maxdepth: 1
-
- opnfv_yardstick_tc040.rst
-
- StorPerf
------------
-
-.. toctree::
- :maxdepth: 1
-
- opnfv_yardstick_tc074.rst
-
-virtual Traffic Classifier
---------------------------
-
-.. toctree::
- :maxdepth: 1
-
- opnfv_yardstick_tc006.rst
- opnfv_yardstick_tc007.rst
- opnfv_yardstick_tc020.rst
- opnfv_yardstick_tc021.rst
-
-Templates
-=========
-
-.. toctree::
- :maxdepth: 1
-
- testcase_description_v2_template
- Yardstick_task_templates
-
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Ericsson AB and others.
+
+====================
+Yardstick Test Cases
+====================
+
+Abstract
+========
+
+This chapter lists available Yardstick test cases.
+Yardstick test cases are divided in two main categories:
+
+* *Generic NFVI Test Cases* - Test Cases developed to realize the methodology
+ described in :doc:`02-methodology`
+
+* *OPNFV Feature Test Cases* - Test Cases developed to verify one or more
+ aspect of a feature delivered by an OPNFV Project.
+
+Generic NFVI Test Case Descriptions
+===================================
+
+.. toctree::
+ :maxdepth: 1
+
+ opnfv_yardstick_tc001.rst
+ opnfv_yardstick_tc002.rst
+ opnfv_yardstick_tc004.rst
+ opnfv_yardstick_tc005.rst
+ opnfv_yardstick_tc006.rst
+ opnfv_yardstick_tc008.rst
+ opnfv_yardstick_tc009.rst
+ opnfv_yardstick_tc010.rst
+ opnfv_yardstick_tc011.rst
+ opnfv_yardstick_tc012.rst
+ opnfv_yardstick_tc014.rst
+ opnfv_yardstick_tc015.rst
+ opnfv_yardstick_tc024.rst
+ opnfv_yardstick_tc037.rst
+ opnfv_yardstick_tc038.rst
+ opnfv_yardstick_tc042.rst
+ opnfv_yardstick_tc043.rst
+ opnfv_yardstick_tc044.rst
+ opnfv_yardstick_tc055.rst
+ opnfv_yardstick_tc061.rst
+ opnfv_yardstick_tc063.rst
+ opnfv_yardstick_tc069.rst
+ opnfv_yardstick_tc070.rst
+ opnfv_yardstick_tc071.rst
+ opnfv_yardstick_tc072.rst
+ opnfv_yardstick_tc073.rst
+ opnfv_yardstick_tc074.rst
+ opnfv_yardstick_tc075.rst
+ opnfv_yardstick_tc076.rst
+ opnfv_yardstick_tc078.rst
+ opnfv_yardstick_tc079.rst
+ opnfv_yardstick_tc080.rst
+ opnfv_yardstick_tc081.rst
+ opnfv_yardstick_tc083.rst
+ opnfv_yardstick_tc084.rst
+
+OPNFV Feature Test Cases
+========================
+
+H A
+---
+
+.. toctree::
+ :maxdepth: 1
+
+ opnfv_yardstick_tc019.rst
+ opnfv_yardstick_tc025.rst
+ opnfv_yardstick_tc045.rst
+ opnfv_yardstick_tc046.rst
+ opnfv_yardstick_tc047.rst
+ opnfv_yardstick_tc048.rst
+ opnfv_yardstick_tc049.rst
+ opnfv_yardstick_tc050.rst
+ opnfv_yardstick_tc051.rst
+ opnfv_yardstick_tc052.rst
+ opnfv_yardstick_tc053.rst
+ opnfv_yardstick_tc054.rst
+ opnfv_yardstick_tc056.rst
+ opnfv_yardstick_tc057.rst
+ opnfv_yardstick_tc058.rst
+ opnfv_yardstick_tc087.rst
+ opnfv_yardstick_tc088.rst
+ opnfv_yardstick_tc089.rst
+ opnfv_yardstick_tc090.rst
+ opnfv_yardstick_tc091.rst
+ opnfv_yardstick_tc092.rst
+ opnfv_yardstick_tc093.rst
+
+IPv6
+----
+
+.. toctree::
+ :maxdepth: 1
+
+ opnfv_yardstick_tc027.rst
+
+KVM
+---
+
+.. toctree::
+ :maxdepth: 1
+
+ opnfv_yardstick_tc028.rst
+
+Parser
+------
+
+.. toctree::
+ :maxdepth: 1
+
+ opnfv_yardstick_tc040.rst
+
+StorPerf
+--------
+
+.. toctree::
+ :maxdepth: 1
+
+ opnfv_yardstick_tc074.rst
+
+Templates
+=========
+
+.. toctree::
+ :maxdepth: 1
+
+ testcase_description_v2_template
+ Yardstick_task_templates
+
diff --git a/docs/testing/user/userguide/code/multi-devstack-compute-local.conf b/docs/testing/user/userguide/code/multi-devstack-compute-local.conf
new file mode 100644
index 000000000..b0b3cc5d4
--- /dev/null
+++ b/docs/testing/user/userguide/code/multi-devstack-compute-local.conf
@@ -0,0 +1,53 @@
+[[local|localrc]]
+HOST_IP=<HOST_IP_ADDRESS>
+MYSQL_PASSWORD=password
+DATABASE_PASSWORD=password
+RABBIT_PASSWORD=password
+ADMIN_PASSWORD=password
+SERVICE_PASSWORD=password
+HORIZON_PASSWORD=password
+# Controller node
+SERVICE_HOST=<CONTROLLER_IP_ADDRESS>
+MYSQL_HOST=$SERVICE_HOST
+RABBIT_HOST=$SERVICE_HOST
+GLANCE_HOSTPORT=$SERVICE_HOST:9292
+
+# Internet access.
+RECLONE=False
+PIP_UPGRADE=True
+IP_VERSION=4
+
+# Neutron
+enable_plugin neutron https://git.openstack.org/openstack/neutron.git stable/pike
+
+# Services
+ENABLED_SERVICES=n-cpu,rabbit,q-agt,placement-api,q-sriov-agt
+
+# Neutron Options
+PUBLIC_INTERFACE=<PUBLIC INTERFACE>
+
+# ML2 Configuration
+Q_PLUGIN=ml2
+Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch,sriovnicswitch
+Q_ML2_PLUGIN_TYPE_DRIVERS=vlan,flat,local,vxlan,gre,geneve
+
+# Open vSwitch provider networking configuration
+PHYSICAL_DEVICE_MAPPINGS=physnet1:<PF0_IFNAME>,physnet2:<PF1_IFNAME>
+
+
+[[post-config|$NOVA_CONF]]
+[DEFAULT]
+scheduler_default_filters=RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,PciPassthroughFilter
+# Whitelist PCI devices
+pci_passthrough_whitelist = {\\"devname\\": \\"<PF0_IFNAME>\\", \\"physical_network\\": \\"physnet1\\" }
+pci_passthrough_whitelist = {\\"devname\\": \\"<PF1_IFNAME>\\", \\"physical_network\\": \\"physnet2\\" }
+
+[libvirt]
+cpu_mode = host-model
+
+
+# ML2 plugin bits for SR-IOV enablement of Intel Corporation XL710/X710 Virtual Function
+[[post-config|/$Q_PLUGIN_CONF_FILE]]
+[ml2_sriov]
+agent_required = True
+supported_pci_vendor_devs = <VF_DEV_ID:VF_VEN_ID>
diff --git a/docs/testing/user/userguide/code/multi-devstack-controller-local.conf b/docs/testing/user/userguide/code/multi-devstack-controller-local.conf
new file mode 100644
index 000000000..fb61cdcbd
--- /dev/null
+++ b/docs/testing/user/userguide/code/multi-devstack-controller-local.conf
@@ -0,0 +1,64 @@
+[[local|localrc]]
+HOST_IP=<HOST_IP_ADDRESS>
+ADMIN_PASSWORD=password
+MYSQL_PASSWORD=$ADMIN_PASSWORD
+DATABASE_PASSWORD=$ADMIN_PASSWORD
+RABBIT_PASSWORD=$ADMIN_PASSWORD
+SERVICE_PASSWORD=$ADMIN_PASSWORD
+HORIZON_PASSWORD=$ADMIN_PASSWORD
+# Controller node
+SERVICE_HOST=$HOST_IP
+MYSQL_HOST=$SERVICE_HOST
+RABBIT_HOST=$SERVICE_HOST
+GLANCE_HOSTPORT=$SERVICE_HOST:9292
+
+# Internet access.
+RECLONE=False
+PIP_UPGRADE=True
+IP_VERSION=4
+
+# Services
+disable_service n-net
+ENABLED_SERVICES+=,q-svc,q-dhcp,q-meta,q-agt,q-sriov-agt
+
+# Heat
+enable_plugin heat https://git.openstack.org/openstack/heat stable/pike
+
+# Neutron
+enable_plugin neutron https://git.openstack.org/openstack/neutron.git stable/pike
+
+# Neutron Options
+FLOATING_RANGE=<RANGE_IN_THE_PUBLIC_INTERFACE_NETWORK>
+Q_FLOATING_ALLOCATION_POOL=start=<START_IP_ADDRESS>,end=<END_IP_ADDRESS>
+PUBLIC_NETWORK_GATEWAY=<PUBLIC_NETWORK_GATEWAY>
+PUBLIC_INTERFACE=<PUBLIC INTERFACE>
+
+# ML2 Configuration
+Q_PLUGIN=ml2
+Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch,sriovnicswitch
+Q_ML2_PLUGIN_TYPE_DRIVERS=vlan,flat,local,vxlan,gre,geneve
+
+# Open vSwitch provider networking configuration
+Q_USE_PROVIDERNET_FOR_PUBLIC=True
+OVS_PHYSICAL_BRIDGE=br-ex
+OVS_BRIDGE_MAPPINGS=public:br-ex
+PHYSICAL_DEVICE_MAPPINGS=physnet1:<PF0_IFNAME>,physnet2:<PF1_IFNAME>
+PHYSICAL_NETWORK=physnet1,physnet2
+
+
+[[post-config|$NOVA_CONF]]
+[DEFAULT]
+scheduler_default_filters=RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,PciPassthroughFilter
+# Whitelist PCI devices
+pci_passthrough_whitelist = {\\"devname\\": \\"<PF0_IFNAME>\\", \\"physical_network\\": \\"physnet1\\" }
+pci_passthrough_whitelist = {\\"devname\\": \\"<PF1_IFNAME>\\", \\"physical_network\\": \\"physnet2\\" }
+
+[libvirt]
+cpu_mode = host-model
+
+
+# ML2 plugin bits for SR-IOV enablement of Intel Corporation XL710/X710 Virtual Function
+[[post-config|/$Q_PLUGIN_CONF_FILE]]
+[ml2_sriov]
+agent_required = True
+supported_pci_vendor_devs = <VF_DEV_ID:VF_VEN_ID>
diff --git a/docs/testing/user/userguide/code/pod_ixia.yaml b/docs/testing/user/userguide/code/pod_ixia.yaml
new file mode 100644
index 000000000..4ab56fe4e
--- /dev/null
+++ b/docs/testing/user/userguide/code/pod_ixia.yaml
@@ -0,0 +1,31 @@
+nodes:
+-
+ name: trafficgen_1
+ role: IxNet
+ ip: 1.2.1.1 #ixia machine ip
+ user: user
+ password: r00t
+ key_filename: /root/.ssh/id_rsa
+ tg_config:
+ ixchassis: "1.2.1.7" #ixia chassis ip
+ tcl_port: "8009" # tcl server port
+ lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0"
+ root_dir: "/opt/ixia/ixos-api/8.01.0.2/"
+ py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/"
+ dut_result_dir: "/mnt/ixia"
+ version: 8.1
+ interfaces:
+ xe0: # logical name from topology.yaml and vnfd.yaml
+ vpci: "2:5" # Card:port
+ driver: "none"
+ dpdk_port_num: 0
+ local_ip: "152.16.100.20"
+ netmask: "255.255.0.0"
+ local_mac: "00:98:10:64:14:00"
+ xe1: # logical name from topology.yaml and vnfd.yaml
+ vpci: "2:6" # [(Card, port)]
+ driver: "none"
+ dpdk_port_num: 1
+ local_ip: "152.40.40.20"
+ netmask: "255.255.0.0"
+ local_mac: "00:98:28:28:14:00"
diff --git a/docs/testing/user/userguide/code/single-devstack-local.conf b/docs/testing/user/userguide/code/single-devstack-local.conf
new file mode 100644
index 000000000..4c44f729d
--- /dev/null
+++ b/docs/testing/user/userguide/code/single-devstack-local.conf
@@ -0,0 +1,62 @@
+[[local|localrc]]
+HOST_IP=<HOST_IP_ADDRESS>
+ADMIN_PASSWORD=password
+MYSQL_PASSWORD=$ADMIN_PASSWORD
+DATABASE_PASSWORD=$ADMIN_PASSWORD
+RABBIT_PASSWORD=$ADMIN_PASSWORD
+SERVICE_PASSWORD=$ADMIN_PASSWORD
+HORIZON_PASSWORD=$ADMIN_PASSWORD
+
+# Internet access.
+RECLONE=False
+PIP_UPGRADE=True
+IP_VERSION=4
+
+# Services
+disable_service n-net
+ENABLED_SERVICES+=,q-svc,q-dhcp,q-meta,q-agt,q-sriov-agt
+
+# Heat
+enable_plugin heat https://git.openstack.org/openstack/heat stable/pike
+
+# Neutron
+enable_plugin neutron https://git.openstack.org/openstack/neutron.git stable/pike
+
+# Neutron Options
+FLOATING_RANGE=<RANGE_IN_THE_PUBLIC_INTERFACE_NETWORK>
+Q_FLOATING_ALLOCATION_POOL=start=<START_IP_ADDRESS>,end=<END_IP_ADDRESS>
+PUBLIC_NETWORK_GATEWAY=<PUBLIC_NETWORK_GATEWAY>
+PUBLIC_INTERFACE=<PUBLIC INTERFACE>
+
+# ML2 Configuration
+Q_PLUGIN=ml2
+Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch,sriovnicswitch
+Q_ML2_PLUGIN_TYPE_DRIVERS=vlan,flat,local,vxlan,gre,geneve
+
+# Open vSwitch provider networking configuration
+Q_USE_PROVIDERNET_FOR_PUBLIC=True
+OVS_PHYSICAL_BRIDGE=br-ex
+OVS_BRIDGE_MAPPINGS=public:br-ex
+PHYSICAL_DEVICE_MAPPINGS=physnet1:<PF0_IFNAME>,physnet2:<PF1_IFNAME>
+PHYSICAL_NETWORK=physnet1,physnet2
+
+
+[[post-config|$NOVA_CONF]]
+[DEFAULT]
+scheduler_default_filters=RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,PciPassthroughFilter
+# Whitelist PCI devices
+pci_passthrough_whitelist = {\\"devname\\": \\"<PF0_IFNAME>\\", \\"physical_network\\": \\"physnet1\\" }
+pci_passthrough_whitelist = {\\"devname\\": \\"<PF1_IFNAME>\\", \\"physical_network\\": \\"physnet2\\" }
+
+[filter_scheduler]
+enabled_filters = RetryFilter,AvailabilityZoneFilter,RamFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,SameHostFilter
+
+[libvirt]
+cpu_mode = host-model
+
+
+# ML2 plugin bits for SR-IOV enablement of Intel Corporation XL710/X710 Virtual Function
+[[post-config|/$Q_PLUGIN_CONF_FILE]]
+[ml2_sriov]
+agent_required = True
+supported_pci_vendor_devs = <VF_DEV_ID:VF_VEN_ID>
diff --git a/docs/testing/user/userguide/code/single-yardstick-pod.conf b/docs/testing/user/userguide/code/single-yardstick-pod.conf
new file mode 100644
index 000000000..421246d60
--- /dev/null
+++ b/docs/testing/user/userguide/code/single-yardstick-pod.conf
@@ -0,0 +1,22 @@
+nodes:
+-
+ name: trafficgen_1
+ role: tg__0
+ ip: <TG-HOST-IP>
+ user: <TG-USER>
+ password: <TG-PASS>
+ interfaces:
+ xe0: # logical name from topology.yaml and vnfd.yaml
+ vpci: "0000:18:00.0"
+ driver: i40e # default kernel driver
+ dpdk_port_num: 0
+ local_ip: "10.1.1.150"
+ netmask: "255.255.255.0"
+ local_mac: "00:00:00:00:00:01"
+ xe1: # logical name from topology.yaml and vnfd.yaml
+ vpci: "0000:18:00.1"
+ driver: i40e # default kernel driver
+ dpdk_port_num: 1
+ local_ip: "10.1.1.151"
+ netmask: "255.255.255.0"
+ local_mac: "00:00:00:00:00:02"
diff --git a/docs/testing/user/userguide/comp-intro.rst b/docs/testing/user/userguide/comp-intro.rst
index ad354b66d..bab6e60da 100644
--- a/docs/testing/user/userguide/comp-intro.rst
+++ b/docs/testing/user/userguide/comp-intro.rst
@@ -7,10 +7,10 @@
Yardstick
=========
-.. _Yardstick: https://wiki.opnfv.org/yardstick
+.. _Yardstick: https://wiki.opnfv.org/display/yardstick
.. _Presentation: https://wiki.opnfv.org/_media/opnfv_summit_-_yardstick_project.pdf
.. _NFV-TST001: https://docbox.etsi.org/ISG/NFV/Open/Drafts/TST001_-_Pre-deployment_Validation/
-.. _Yardsticktst: https://wiki.opnfv.org/_media/opnfv_summit_-_bridging_opnfv_and_etsi.pdf
+.. _Yardsticktst: http://events17.linuxfoundation.org/sites/events/files/slides/OPNFV%20Summit%20-%20bridging_opnfv_and_etsi.pdf
The project's goal is to verify infrastructure compliance, from the perspective
of a Virtual Network Function (VNF).
diff --git a/docs/testing/user/userguide/glossary.rst b/docs/testing/user/userguide/glossary.rst
index f8ff41887..cef9b69a5 100644
--- a/docs/testing/user/userguide/glossary.rst
+++ b/docs/testing/user/userguide/glossary.rst
@@ -13,53 +13,153 @@ Glossary
API
Application Programming Interface
- DPI
- Deep Packet Inspection
+ Barometer
+ OPNFV NFVi Service Assurance project. Barometer upstreams changes to
+ collectd, OpenStack, etc to improve features related to NFVi monitoring
+ and service assurance.
+ More info on: https://opnfv-barometer.readthedocs.io/en/latest/
+
+ collectd
+ collectd is a system statistics collection daemon.
+ More info on: https://collectd.org/
+
+ context
+ A context describes the environment in which a yardstick testcase will
+ be run. It can refer to a pre-provisioned environment, or an environment
+ that will be set up using OpenStack or Kubernetes.
+
+ Docker
+ Docker provisions and manages containers. Yardstick and many other OPNFV
+ projects are deployed in containers. Docker is required to launch the
+ containerized versions of these projects.
DPDK
Data Plane Development Kit
+ DPI
+ Deep Packet Inspection
+
DSCP
Differentiated Services Code Point
+ flavor
+ A specification of virtual resources used by OpenStack in the creation
+ of a VM instance.
+
+ Grafana
+ A visualization tool, used in Yardstick to retrieve test data from
+ InfluxDB and display it. Grafana works by defining dashboards, which are
+ combinations of visualization panes (e.g. line charts and gauges) and
+ forms that assist the user in formulating SQL-like queries for InfluxDB.
+ More info on: https://grafana.com/
+
IGMP
Internet Group Management Protocol
+ InfluxDB
+ One of the Dispatchers supported by Yardstick, it allows test results to
+ be reported to a time-series database.
+ More info on: https://www.influxdata.com/
+
IOPS
Input/Output Operations Per Second
+ A performance measurement used to benchmark storage devices.
+
+ KPI
+ Key Performance Indicator
+
+ Kubernetes
+ k8s
+ Kubernetes is an open-source container-orchestration system for automating
+ deployment, scaling and management of containerized applications.
+ It is one of the contexts supported in Yardstick.
+
+ MPLS
+ Multiprotocol Label Switching
+
+ NFV
+ Network Function Virtualization
+ NFV is an initiative to take network services which were traditionally run
+ on proprietary, dedicated hardware, and virtualize them to run on general
+ purpose hardware.
+
+ NFVI
+ Network Function Virtualization Infrastructure
+ The servers, routers, switches, etc on which the NFV system runs.
NIC
Network Interface Controller
+ NSB
+ Network Services Benchmarking. A subset of Yardstick features concerned
+ with NFVI and VNF characterization.
+
+ OpenStack
+ OpenStack is a cloud operating system that controls pools of compute,
+ storage, and networking resources. OpenStack is an open source project
+ licensed under the Apache License 2.0.
+
PBFS
Packet Based per Flow State
+ PROX
+ Packet pROcessing eXecution engine
+
QoS
Quality of Service
+ The ability to guarantee certain network or storage requirements to
+ satisfy a Service Level Agreement (SLA) between an application provider
+ and end users.
+ Typically includes performance requirements like networking bandwidth,
+ latency, jitter correction, and reliability as well as storage
+ performance in Input/Output Operations Per Second (IOPS), throttling
+ agreements, and performance expectations at peak load
+
+ runner
+ The part of a Yardstick testcase that determines how the test will be run
+ (e.g. for x iterations, y seconds or until state z is reached). The runner
+ also determines when the metrics are collected/reported.
+
+ SampleVNF
+ OPNFV project providing a repository of reference VNFs.
+ More info on: https://opnfv-samplevnf.readthedocs.io/en/latest/
+
+ scenario
+ The part of a Yardstick testcase that describes each test step.
+
+ SLA
+ Service Level Agreement
+ An SLA is an agreement between a service provider and a customer to
+ provide a certain level of service/performance.
+
+ SR-IOV
+ Single Root IO Virtualization
+ A specification that, when implemented by a physical PCIe
+ device, enables it to appear as multiple separate PCIe devices. This
+ enables multiple virtualized guests to share direct access to the
+ physical device.
+
+ SUT
+ System Under Test
+
+ testcase
+ A task in Yardstick; the yaml file that is read by Yardstick to
+ determine how to run a test.
+
+ ToS
+ Type of Service
VLAN
- Virtual LAN
+ Virtual LAN (Local Area Network)
VM
Virtual Machine
+ An operating system instance that runs on top of a hypervisor.
+ Multiple VMs can run at the same time on the same physical
+ host.
VNF
Virtual Network Function
VNFC
Virtual Network Function Component
-
- NFVI
- Network Function Virtualization Infrastructure
-
- SR-IOV
- Single Root IO Virtualization
-
- SUT
- System Under Test
-
- ToS
- Type of Service
-
- VTC
- Virtual Traffic Classifier
diff --git a/docs/testing/user/userguide/index.rst b/docs/testing/user/userguide/index.rst
index 61e157e52..ff0bb6f5d 100644
--- a/docs/testing/user/userguide/index.rst
+++ b/docs/testing/user/userguide/index.rst
@@ -11,21 +11,20 @@ Yardstick User Guide
.. toctree::
:maxdepth: 4
- :numbered:
01-introduction
02-methodology
03-architecture
04-installation
- 05-yardstick_plugin
- 06-result-store-InfluxDB
- 07-grafana
- 08-api
- 09-yardstick_user_interface
- 10-vtc-overview
- 11-nsb-overview
- 12-nsb_installation
- 13-nsb_operation
+ 05-operation
+ 06-yardstick-plugin
+ 07-result-store-InfluxDB
+ 08-grafana
+ 09-api
+ 10-yardstick-user-interface
+ 12-nsb-overview
+ 13-nsb-installation
+ 14-nsb-operation
15-list-of-tcs
nsb/nsb-list-of-tcs
glossary
diff --git a/docs/testing/user/userguide/nsb/nsb-list-of-tcs.rst b/docs/testing/user/userguide/nsb/nsb-list-of-tcs.rst
index 895837283..562c80ff7 100644..100755
--- a/docs/testing/user/userguide/nsb/nsb-list-of-tcs.rst
+++ b/docs/testing/user/userguide/nsb/nsb-list-of-tcs.rst
@@ -27,4 +27,15 @@ NSB PROX Test Case Descriptions
tc_prox_context_buffering_port
tc_prox_context_load_balancer_port
tc_prox_context_vpe_port
- tc_prox_context_lw_after_port
+ tc_prox_context_lw_aftr_port
+ tc_epc_default_bearer_landslide
+ tc_epc_dedicated_bearer_landslide
+ tc_epc_saegw_tput_relocation_landslide
+ tc_epc_network_service_request_landslide
+ tc_epc_ue_service_request_landslide
+ tc_vfw_rfc2544
+ tc_vfw_rfc2544_correlated
+ tc_vfw_rfc3511
+ tc_vpp_baremetal_crypto_ipsec
+ tc_vims_context_sipp
+ tc_pktgen_k8s_vcmts
diff --git a/docs/testing/user/userguide/nsb/tc_bng_pppoe_rfc2544_ixia.rst b/docs/testing/user/userguide/nsb/tc_bng_pppoe_rfc2544_ixia.rst
new file mode 100644
index 000000000..ffe4f6c19
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_bng_pppoe_rfc2544_ixia.rst
@@ -0,0 +1,177 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2019 Intel Corporation.
+
+***************************************************************
+Yardstick Test Case Description: NSB vBNG RFC2544 QoS TEST CASE
+***************************************************************
+
++-----------------------------------------------------------------------------+
+|NSB vBNG RFC2544 QoS base line test case without link congestion |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | tc_bng_pppoe_rfc2544_ixia_IMIX_scale_up |
+| | |
++--------------+--------------------------------------------------------------+
+| metric | Network metrics: |
+| | * TxThroughput |
+| | * RxThroughput |
+| | * TG packets in |
+| | * TG packets out |
+| | * Max Latency |
+| | * Min Latency |
+| | * Average Latency |
+| | * Packets drop percentage |
+| | |
+| | PPPoE subscribers metrics: |
+| | * Sessions up |
+| | * Sessions down |
+| | * Sessions Not Started |
+| | * Sessions Total |
+| | |
+| | NOTE: the same network metrics list are collecting: |
+| | * summary for all ports |
+| | * per port |
+| | * per priority flows summary on all ports |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | This test allows to measure performance of BNG network device|
+| | according to RFC2544 testing methodology. Test case creates |
+| | PPPoE subscriber connections to BNG, runs prioritized traffic|
+| | on maximum throughput on all ports and collects network |
+| | and PPPoE subscriber metrics. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | The BNG QoS RFC2544 test cases are listed below: |
+| | |
+| | * tc_bng_pppoe_rfc2544_ixia_IMIX_scale_up.yaml |
+| | |
+| | Mentioned test case is a template and number of ports in the |
+| | setup could be passed using cli arguments, e.g: |
+| | |
+| | yardstick -d task start --task-args='{vports: 8}' <tc_yaml> |
+| | |
+| | By default, vports=2. |
+| | |
+| | Test duration: |
+| | * set as 30sec; |
+| | |
+| | Traffic type: |
+| | * IPv4; |
+| | |
+| | Packet sizes: |
+| | * IMIX. The following default IMIX distribution is using: |
+| | |
+| | uplink: 70B - 33%, 940B - 33%, 1470B - 34% |
+| | downlink: 68B - 3%, 932B - 1%, 1470B - 96% |
+| | |
+| | VLAN settings: |
+| | * QinQ on access ports; |
+| | * VLAN on core ports; |
+| | |
+| | Number of PPPoE subscribers: |
+| | * 4000 per access port; |
+| | * 1000 per SVLAN; |
+| | |
+| | Default ToS bits settings: |
+| | * 0 - (000) Routine |
+| | * 4 - (100) Flash Override |
+| | * 7 - (111) Network Control. |
+| | |
+| | The above fields are the main options used for the test case |
+| | and could be configured using cli options on test run or |
+| | directly in test case yaml file. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | IXIA IxNetwork |
+| | |
+| | IXIA IxNetwork is using to emulates PPPoE sessions, generate |
+| | L2-L3 traffic, analyze traffic flows and collect network |
+| | metrics during test run. |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | Mentioned BNG QoS RFC2544 test case can be configured with |
+| | different: |
+| | |
+| | * Number of PPPoE subscribers sessions; |
+| | * Setup ports number; |
+| | * IP Priority type; |
+| | * Packet size; |
+| | * Enable/disable BGP protocol on core ports; |
+| | |
+| | Default values exist. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | RFC2544 |
+| | |
++--------------+--------------------------------------------------------------+
+| pre-test | 1. BNG is up and running and has configured: |
+| conditions | * access ports with QinQ tagging; |
+| | * core ports with configured IP addresses and VLAN; |
+| | * PPPoE subscribers authorization settings (no auth or |
+| | Radius server, PAP auth protocol); |
+| | * QoS settings; |
+| | |
+| | 2. IxNetwork API server is running on specified in pod.yaml |
+| | file TCL port; |
+| | |
+| | 3. BNG ports are connected to IXIA ports (IXIA uplink |
+| | ports are connected to BNG access ports and IXIA |
+| | downlink ports are connected to BNG core ports; |
+| | |
+| | 4. The pod.yaml file contains all necessary information |
+| | (BNG access and core ports settings, core ports IP |
+| | address, NICs, IxNetwork TCL port, IXIA uplink/downlink |
+| | ports, etc). |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Yardstick resolves the topology and connects to IxNetwork |
+| | API server by TCL. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Test scenarios run, which performs the following steps: |
+| | |
+| | 1. Create access network topologies (this topologies are |
+| | based on IXIA ports which are connected to BNG access |
+| | ports); |
+| | 2. Configure access network topologies with multiple device |
+| | groups. Each device group represents single SVLAN with |
+| | PPPoE subscribers sessions (number of created on port |
+| | SVLANs and subscribers depends on specified if test case |
+| | file options); |
+| | 3. Create core network topologies (this topologies are |
+| | based on IXIA ports which are connected to BNG core |
+| | ports); |
+| | 4. Configure core network topologies with single device |
+| | group which represents one connection with configured |
+| | VLAN and BGP protocol; |
+| | 5. Establish PPPoE subscribers connections to BNG; |
+| | 6. Create traffic flows between access and core ports |
+| | (traffic flows are creating between access-core ports |
+| | pairs, traffic is bi-directional); |
+| | 7. Configure each traffic flow with specified in traffic |
+| | profile options; |
+| | 8. Run traffic with specified in test case file duration; |
+| | 9. Collect network metrics after traffic was stopped; |
+| | 10. In case drop percentage rate is higher than expected, |
+| | reduce traffic line rate and repeat steps 7-10 again; |
+| | 11. In case drop percentage rate is as expected or number |
+| | of maximum iterations in step 10 achieved, disconnect |
+| | PPPoE subscribers and stop traffic; |
+| | 12. Stop test. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | During each iteration interval in the test run, all specified|
+| | metrics are retrieved from IxNetwork and stored in the |
+| | yardstick dispatcher. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | The vBNG RFC2544 test case will achieve maximum traffic line |
+| | rate with zero packet loss (or other non-zero allowed |
+| | partial drop rate). |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/nsb/tc_bng_pppoe_rfc2544_ixia_8ports_1port_congested.rst b/docs/testing/user/userguide/nsb/tc_bng_pppoe_rfc2544_ixia_8ports_1port_congested.rst
new file mode 100644
index 000000000..889ba2410
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_bng_pppoe_rfc2544_ixia_8ports_1port_congested.rst
@@ -0,0 +1,179 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2019 Intel Corporation.
+
+***************************************************************
+Yardstick Test Case Description: NSB vBNG RFC2544 QoS TEST CASE
+***************************************************************
+
++-----------------------------------------------------------------------------+
+|NSB vBNG RFC2544 QoS base line test case with link congestion |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | tc_bng_pppoe_rfc2544_ixia_8ports_1port_congested_IMIX |
+| | |
++--------------+--------------------------------------------------------------+
+| metric | Network metrics: |
+| | * TxThroughput |
+| | * RxThroughput |
+| | * TG packets in |
+| | * TG packets out |
+| | * Max Latency |
+| | * Min Latency |
+| | * Average Latency |
+| | * Packets drop percentage |
+| | |
+| | PPPoE subscribers metrics: |
+| | * Sessions up |
+| | * Sessions down |
+| | * Sessions Not Started |
+| | * Sessions Total |
+| | |
+| | NOTE: the same network metrics list are collecting: |
+| | * summary for all ports |
+| | * per port |
+| | * per priority flows summary on all ports |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | This test allows to measure performance of BNG network device|
+| | according to RFC2544 testing methodology. Test case creates |
+| | PPPoE subscribers connections to BNG, run prioritized traffic|
+| | causing congestion of access port (port xe0) and collects |
+| | network and PPPoE subscribers metrics. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | The BNG QoS RFC2544 test cases are listed below: |
+| | |
+| | * tc_bng_pppoe_rfc2544_ixia_8ports_1port_congested_IMIX.yaml |
+| | |
+| | Number of ports: |
+| | * 8 ports |
+| | |
+| | Test duration: |
+| | * set as 30sec; |
+| | |
+| | Traffic type: |
+| | * IPv4; |
+| | |
+| | Packet sizes: |
+| | * IMIX. The following default IMIX distribution is using: |
+| | |
+| | uplink: 70B - 33%, 940B - 33%, 1470B - 34% |
+| | downlink: 68B - 3%, 932B - 1%, 1470B - 96% |
+| | |
+| | VLAN settings: |
+| | * QinQ on access ports; |
+| | * VLAN on core ports; |
+| | |
+| | Number of PPPoE subscribers: |
+| | * 4000 per access port; |
+| | * 1000 per SVLAN; |
+| | |
+| | Default ToS bits settings: |
+| | * 0 - (000) Routine |
+| | * 4 - (100) Flash Override |
+| | * 7 - (111) Network Control. |
+| | |
+| | The above fields are the main options used for the test case |
+| | and could be configured using cli options on test run or |
+| | directly in test case yaml file. |
+| | |
+| | NOTE: that only parameter that can't be changed is ports |
+| | number. To run the test with another number of ports |
+| | traffic profile should be updated. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | IXIA IxNetwork |
+| | |
+| | IXIA IxNetwork is using to emulates PPPoE sessions, generate |
+| | L2-L3 traffic, analyze traffic flows and collect network |
+| | metrics during test run. |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | Mentioned BNG QoS RFC2544 test cases can be configured with |
+| | different: |
+| | |
+| | * Number of PPPoE subscribers sessions; |
+| | * IP Priority type; |
+| | * Packet size; |
+| | * enable/disable BGP protocol on core ports; |
+| | |
+| | Default values exist. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | RFC2544 |
+| | |
++--------------+--------------------------------------------------------------+
+| pre-test | 1. BNG is up and running and has configured: |
+| conditions | * access ports with QinQ tagging; |
+| | * core ports with configured IP addresses and VLAN; |
+| | * PPPoE subscribers authorization settings (no auth or |
+| | Radius server, PAP auth protocol); |
+| | * QoS settings; |
+| | |
+| | 2. IxNetwork API server is running on specified in pod.yaml |
+| | file TCL port; |
+| | |
+| | 3. BNG ports are connected to IXIA ports (IXIA uplink |
+| | ports are connected to BNG access ports and IXIA |
+| | downlink ports are connected to BNG core ports; |
+| | |
+| | 4. The pod.yaml file contains all necessary information |
+| | (BNG access and core ports settings, core ports IP |
+| | address, NICs, IxNetwork TCL port, IXIA uplink/downlink |
+| | ports, etc). |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Yardstick resolve the topology and connects to IxNetwork |
+| | API server by TCL. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Test scenarios run, which performs the following steps: |
+| | |
+| | 1. Create access network topologies (this topologies are |
+| | based on IXIA ports which are connected to BNG access |
+| | ports); |
+| | 2. Configure access network topologies with multiple device |
+| | groups. Each device group represents single SVLAN with |
+| | PPPoE subscribers sessions (number of created on port |
+| | SVLANs and subscribers depends on specified if test case |
+| | file options); |
+| | 3. Create core network topologies (this topologies are |
+| | based on IXIA ports which are connected to BNG core |
+| | ports); |
+| | 4. Configure core network topologies with single device |
+| | group which represents one connection with configured |
+| | VLAN and BGP protocol; |
+| | 5. Establish PPPoE subscribers connections to BNG; |
+| | 6. Create traffic flows between access and core ports. |
+| | While test covers case with access port congestion, |
+| | flows between ports will be created in the following |
+| | way: traffic from two core ports are going to one access |
+| | port causing port congestion and traffic from other two |
+| | core ports is splitting between remaining three access |
+| | ports; |
+| | 7. Configure each traffic flow with specified in traffic |
+| | profile options; |
+| | 8. Run traffic with specified in test case file duration; |
+| | 9. Collect network metrics after traffic was stopped; |
+| | 10. Measure drop percentage rate of different priority |
+| | packets on congested port. Expected that all high and |
+| | medium priority packets was forwarded and only low |
+| | priority packets has drops. |
+| | 11. Disconnect PPPoE subscribers and stop test. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | During test run, in the end of each iteration all specified |
+| | in the document metrics are retrieved from IxNetwork and |
+| | stored in the yardstick dispatcher. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | The test case is successful if all high and medium priority |
+| | packets on congested port was forwarded and only low |
+| | priority packets has drops. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/nsb/tc_epc_dedicated_bearer_landslide.rst b/docs/testing/user/userguide/nsb/tc_epc_dedicated_bearer_landslide.rst
new file mode 100644
index 000000000..c8865ed93
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_epc_dedicated_bearer_landslide.rst
@@ -0,0 +1,156 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2018 Intel Corporation.
+
+*********************************************************
+Yardstick Test Case Description: NSB EPC DEDICATED BEARER
+*********************************************************
+
++-----------------------------------------------------------------------------+
+|NSB EPC dedicated bearer test case |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | tc_epc_{initiator}_dedicated_bearer_landslide |
+| | |
+| | * initiator: dedicated bearer creation initiator side could |
+| | be UE (ue) or Network (network). |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | All metrics provided by Spirent Landslide traffic generator |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | The Spirent Landslide product provides one box solution which|
+| | allows to fully emulate all EPC network nodes including |
+| | mobile users, network host and generate control and data |
+| | plane traffic. |
+| | |
+| | This test allows to check processing capability under |
+| | different levels of load (number of subscriber, generated |
+| | traffic throughput, etc.) for case when default and dedicated|
+| | bearers are creating and using for traffic transferring. |
+| | |
+| | It's easy to replace emulated node or multiple nodes in test |
+| | topology with real node or corresponding vEPC VNF as DUT and |
+| | check it's processing capabilities under specific test case |
+| | load conditions. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | The EPC dedicated bearer test cases are listed below: |
+| | |
+| | * tc_epc_ue_dedicated_bearer_create_landslide.yaml |
+| | * tc_epc_network_dedicated_bearer_create_landslide.yaml |
+| | |
+| | Test duration: |
+| | |
+| | * is set as 60sec (specified in test session profile); |
+| | |
+| | Traffic type: |
+| | |
+| | * UDP; |
+| | |
+| | Packet sizes: |
+| | |
+| | * 512 bytes; |
+| | |
+| | Traffic transaction rate: |
+| | |
+| | * 5 trans/s.; |
+| | |
+| | Number of mobile subscribers: |
+| | |
+| | * 20000; |
+| | |
+| | Number of default bearers per subscriber: |
+| | |
+| | * 1; |
+| | |
+| | Number of dedicated bearers per default bearer: |
+| | |
+| | * 1. |
+| | |
+| | The above fields and values are the main options used for the|
+| | test case. Other configurable options could be found in test |
+| | session profile yaml file. All these options have default |
+| | values which can be overwritten in test case file. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Spirent Landslide |
+| | |
+| | The Spirent Landslide is a tool for functional and |
+| | performance testing of different types of mobile networks. |
+| | It emulates real-world control and data traffic of mobile |
+| | subscribers moving through virtualized EPC network. |
+| | Detailed description of Spirent Landslide product could be |
+| | found here: https://www.spirent.com/Products/Landslide |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | This EPC DEDICATED BEARER test cases can be configured with |
+| | different: |
+| | |
+| | * packet sizes; |
+| | * traffic transaction rate; |
+| | * number of subscribers sessions; |
+| | * number of default bearers per subscriber; |
+| | * number of dedicated bearers per default; |
+| | * subscribers connection rate; |
+| | * subscribers disconnection rate; |
+| | * dedicated bearers activation timeout; |
+| | * DMF (traffic profile); |
+| | * enable/disable Fireball DMF threading model that provides |
+| | optimized performance; |
+| | |
+| | Default values exist. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI-NFV-TST001 |
+| | |
+| | 3GPP TS 32.455 |
+| | |
++--------------+--------------------------------------------------------------+
+| pre-test | * All Spirent Landslide dependencies need to be installed. |
+| conditions | The steps are described in NSB installation chapter for the|
+| | Spirent Landslide vEPC tests; |
+| | |
+| | * The pod.yaml file contains all necessary information (TAS |
+| | VM IP address, NICs, emulated SUTs and Test Nodes |
+| | parameters (names, types, ip addresses, etc.). |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Spirent Landslide components are running on the hosts |
+| | specified in the pod file. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Yardstick is connected with Spirent Landslide Test |
+| | Administrator Server (TAS) by TCL and REST API. The test |
+| | will resolve the topology and instantiate all emulated EPC |
+| | network nodes. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | Test scenarios run, which performs the following steps: |
+| | |
+| | * Start the emulated EPC network nodes; |
+| | * Establish the subscribers connections to EPC network |
+| | (default bearers); |
+| | * Establish the number of dedicated bearers as per per |
+| | default bearer for each subscriber; |
+| | * Create the sessions and transmit traffic through EPC |
+| | network nodes during the specified traffic duration time; |
+| | * Disconnect dedicated bearers; |
+| | * Disconnect subscribers at the end of the test. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | During test run, all the metrics provided by Spirent |
+| | Landslide are stored in the yardstick dispatcher. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | The test case will create the test session in Spirent |
+| | Landslide with the test case parameters and store the results|
+| | in the database for benchmarking purposes. The aim is only |
+| | to collect all the metrics that are provided by Spirent |
+| | Landslide product for each test specific scenario. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/nsb/tc_epc_default_bearer_landslide.rst b/docs/testing/user/userguide/nsb/tc_epc_default_bearer_landslide.rst
new file mode 100644
index 000000000..9e6d77825
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_epc_default_bearer_landslide.rst
@@ -0,0 +1,149 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2018 Intel Corporation.
+
+*******************************************************
+Yardstick Test Case Description: NSB EPC DEFAULT BEARER
+*******************************************************
+
++-----------------------------------------------------------------------------+
+|NSB EPC default bearer test case |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | tc_epc_default_bearer_landslide_{dmf_setup} |
+| | |
+| | * dmf_setup: single or multi dmf test session setup; |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | All metrics provided by Spirent Landslide traffic generator |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | The Spirent Landslide product provides one box solution which|
+| | allows to fully emulate all EPC network nodes including |
+| | mobile users, network host and generate control and data |
+| | plane traffic. |
+| | |
+| | This test allows to check processing capability of EPC under |
+| | different levels of load (number of subscriber, generated |
+| | traffic throughput) for case when only one default bearer is |
+| | using for transferring traffic from UE to Network. |
+| | |
+| | It's easy to replace emulated node or multiple nodes in test |
+| | topology with real node or corresponding vEPC VNF as DUT and |
+| | check it's processing capabilities under specific test case |
+| | load conditions. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | The EPC default bearer test cases are listed below: |
+| | |
+| | * tc_epc_default_bearer_create_landslide.yaml |
+| | * tc_epc_default_bearer_create_landslide_multi_dmf.yaml |
+| | |
+| | Test duration: |
+| | |
+| | * is set as 60sec (specified in test session profile); |
+| | |
+| | Traffic type: |
+| | |
+| | * UDP - for single DMF test case; |
+| | * UDP and TCP - for multi DMF test case; |
+| | |
+| | Packet sizes: |
+| | |
+| | * 512 bytes for UDP packets; |
+| | * 1518 bytes for TCP packets; |
+| | |
+| | Traffic transaction rate: |
+| | |
+| | * 5 trans/s.; |
+| | |
+| | Number of mobile subscribers: |
+| | |
+| | * 20000; |
+| | |
+| | Number of default bearers per subscriber: |
+| | |
+| | * 1. |
+| | |
+| | The above fields and values are the main options used for the|
+| | test case. Other configurable options could be found in test |
+| | session profile yaml file. All these options have default |
+| | values which can be overwritten in test case file. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Spirent Landslide |
+| | |
+| | The Spirent Landslide is a tool for functional & performance |
+| | testing of different types of mobile networks. It emulates |
+| | real-world control and data traffic of mobile subscribers |
+| | moving through virtualized EPC network. |
+| | Detailed description of Spirent Landslide product could be |
+| | found here: https://www.spirent.com/Products/Landslide |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | This EPC DEFAULT BEARER test cases can be configured with |
+| | different: |
+| | |
+| | * packet sizes; |
+| | * traffic transaction rate; |
+| | * number of subscribers sessions; |
+| | * number of default bearers per subscriber; |
+| | * subscribers connection rate; |
+| | * subscribers disconnection rate; |
+| | * DMF (traffic profile); |
+| | * enable/disable Fireball DMF threading model that provides |
+| | optimized performance; |
+| | |
+| | Default values exist. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI-NFV-TST001 |
+| | |
+| | 3GPP TS 32.455 |
+| | |
++--------------+--------------------------------------------------------------+
+| pre-test | * All Spirent Landslide dependencies are installed (detailed |
+| conditions | installation steps are described in Chapter 13- |
+| | nsb-installation.rst and 14-nsb-operation.rst file for NSB |
+| | Spirent Landslide vEPC tests; |
+| | |
+| | * The pod.yaml file contains all necessary information |
+| | (TAS VM IP address, NICs, emulated SUTs and Test Nodes |
+| | parameters (names, types, ip addresses, etc.). |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Spirent Landslide components are running on the hosts |
+| | specified in the pod file. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Yardstick is connected with Spirent Landslide Test |
+| | Administration Server (TAS) by TCL and REST API. The test |
+| | will resolve the topology and instantiate all emulated EPC |
+| | network nodes. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | Test scenarios run, which performs the following steps: |
+| | |
+| | * Start emulated EPC network nodes; |
+| | * Establish subscribers connections to EPC network (only |
+| | default bearers are established); |
+| | * Create the sessions and transmit traffic through EPC |
+| | network nodes during the specified traffic duration time; |
+| | * Disconnect subscribers at the end of the test. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | During test run, all the metrics provided by Spirent |
+| | Landslide are stored in the yardstick dispatcher. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | The test case will create the test session in Spirent |
+| | Landslide with the test case parameters and store the |
+| | results in the database for benchmarking purposes. The aim |
+| | is only to collect all the metrics that are provided by |
+| | Spirent Landslide product for each test specific scenario. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/nsb/tc_epc_network_service_request_landslide.rst b/docs/testing/user/userguide/nsb/tc_epc_network_service_request_landslide.rst
new file mode 100644
index 000000000..85e6ce11a
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_epc_network_service_request_landslide.rst
@@ -0,0 +1,159 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2018 Intel Corporation.
+
+****************************************************************
+Yardstick Test Case Description: NSB EPC NETWORK SERVICE REQUEST
+****************************************************************
+
++-----------------------------------------------------------------------------+
+|NSB EPC network service request test case |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | tc_epc_network_service_request_landslide |
+| | |
+| | * initiator: service request initiator side could be UE (ue) |
+| | or Network (network). |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | All metrics provided by Spirent Landslide traffic generator |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | The Spirent Landslide product provides one box solution which|
+| | allows to fully emulate all EPC network nodes including |
+| | mobile users, network host and generate control and data |
+| | plane traffic. |
+| | |
+| | This test covers case of network initiated service request & |
+| | allows to check processing capabilities of EPC handling high |
+| | amount of continuous Downlink Data Notification messages from|
+| | network to UEs which are in Idle state. |
+| | |
+| | It's easy to replace emulated node or multiple nodes in test |
+| | topology with real node or corresponding vEPC VNF as DUT and |
+| | check it's processing capabilities under specific test case |
+| | load conditions. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | The EPC network service request test cases are listed below: |
+| | |
+| | * tc_epc_network_service_request_landslide.yaml |
+| | |
+| | Test duration: |
+| | |
+| | * is set as 60sec (specified in test session profile); |
+| | |
+| | Traffic type: |
+| | |
+| | * UDP; |
+| | |
+| | Packet sizes: |
+| | |
+| | * 512 bytes; |
+| | |
+| | Traffic transaction rate: |
+| | |
+| | * 0.1 trans/s.; |
+| | |
+| | Number of mobile subscribers: |
+| | |
+| | * 20000; |
+| | |
+| | Number of default bearers per subscriber: |
+| | |
+| | * 1; |
+| | |
+| | Idle entry time (timeout after which UE goes to Idle state): |
+| | |
+| | * 5s; |
+| | |
+| | Traffic start delay: |
+| | |
+| | * 1000ms. |
+| | |
+| | The above fields and values are the main options used for the|
+| | test case. Other configurable options could be found in test |
+| | session profile yaml file. All these options have default |
+| | values which can be overwritten in test case file. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Spirent Landslide |
+| | |
+| | The Spirent Landslide is a tool for functional & performance |
+| | testing of different types of mobile networks. It emulates |
+| | real-world control and data traffic of mobile subscribers |
+| | moving through virtualized EPC network. |
+| | Detailed description of Spirent Landslide product could be |
+| | found here: https://www.spirent.com/Products/Landslide |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | This EPC NETWORK SERVICE REQUEST test case can be configured |
+| | with different: |
+| | |
+| | * packet sizes; |
+| | * traffic transaction rate; |
+| | * number of subscribers sessions; |
+| | * number of default bearers per subscriber; |
+| | * subscribers connection rate; |
+| | * subscribers disconnection rate; |
+| | * timeout after which UE goes to Idle state; |
+| | * Traffic start delay; |
+| | |
+| | Default values exist. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI-NFV-TST001 |
+| | |
+| | 3GPP TS 32.455 |
+| | |
++--------------+--------------------------------------------------------------+
+| pre-test | * All Spirent Landslide dependencies are installed (detailed |
+| conditions | installation steps are described in Chapter 13- |
+| | nsb-installation.rst and 14-nsb-operation.rst file for NSB |
+| | Spirent Landslide vEPC tests; |
+| | |
+| | * The pod.yaml file contains all necessary information |
+| | (TAS VM IP address, NICs, emulated SUTs and Test Nodes |
+| | parameters (names, types, ip addresses, etc.). |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Spirent Landslide components are running on the hosts |
+| | specified in the pod file. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Yardstick is connected with Spirent Landslide Test |
+| | Administration Server (TAS) by TCL and REST API. The test |
+| | will resolve the topology and instantiate all emulated EPC |
+| | network nodes. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | Test scenarios run, which performs the following steps: |
+| | |
+| | * Start emulated EPC network nodes; |
+| | * Establish subscribers connections to EPC network (default |
+| | bearers); |
+| | * Switch UE to Idle state after specified in test case |
+| | timeout; |
+| | * Send Downlink Data Notification from network to UE, that |
+| | will return UE to active state. This process is continuous |
+| | and during whole test run UEs will be going to Idle state |
+| | and will be switched back to active state after Downlink |
+| | Data Notification was received; |
+| | * Disconnect subscribers at the end of the test. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | During test run, all the metrics provided by Spirent |
+| | Landslide are stored in the yardstick dispatcher. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | The test case will create the test session in Spirent |
+| | Landslide with the test case parameters and store the |
+| | results in the database for benchmarking purposes. The aim |
+| | is only to collect all the metrics that are provided by |
+| | Spirent Landslide product for each test specific scenario. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/nsb/tc_epc_saegw_tput_relocation_landslide.rst b/docs/testing/user/userguide/nsb/tc_epc_saegw_tput_relocation_landslide.rst
new file mode 100644
index 000000000..102517562
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_epc_saegw_tput_relocation_landslide.rst
@@ -0,0 +1,167 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2018 Intel Corporation.
+
+*********************************************************
+Yardstick Test Case Description: NSB EPC SAEGW RELOCATION
+*********************************************************
+
++-----------------------------------------------------------------------------+
+|NSB EPC SAEGW throughput with relocation test case |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | tc_epc_saegw_tput_relocation_landslide |
+| | |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | All metrics provided by Spirent Landslide traffic generator |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | The Spirent Landslide product provides one box solution which|
+| | allows to fully emulate all EPC network nodes including |
+| | mobile users, network host and generate control and data |
+| | plane traffic. |
+| | |
+| | This test allows to check processing capability of EPC |
+| | handling large amount of subscribers X2 handovers between |
+| | different eNBs while UEs are sending traffic. |
+| | |
+| | It's easy to replace emulated node or multiple nodes in test |
+| | topology with real node or corresponding vEPC VNF as DUT and |
+| | check it's processing capabilities under specific test case |
+| | load conditions. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | The EPC SAEGW throughput with relocation tests are listed |
+| | below: |
+| | |
+| | * tc_epc_saegw_tput_relocation_landslide.yaml |
+| | |
+| | Test duration: |
+| | |
+| | * is set as 60sec (specified in test session profile); |
+| | |
+| | Traffic type: |
+| | |
+| | * UDP; |
+| | |
+| | Packet sizes: |
+| | |
+| | * 512 bytes; |
+| | |
+| | Traffic transaction rate: |
+| | |
+| | * 5 trans/s.; |
+| | |
+| | Number of mobile subscribers: |
+| | |
+| | * 20000; |
+| | |
+| | Number of default bearers per subscriber: |
+| | |
+| | * 1; |
+| | |
+| | Handover type: |
+| | |
+| | * X2 handover; |
+| | |
+| | Mobility time (timeout after sessions were established after |
+| | which handover will start): |
+| | |
+| | * 10000ms; |
+| | |
+| | Handover start type: |
+| | |
+| | * When all sessions started; |
+| | |
+| | Mobility mode: |
+| | |
+| | * Single handoff; |
+| | |
+| | Mobility Rate: |
+| | |
+| | * 120 subscribers/s. |
+| | |
+| | The above fields and values are the main options used for the|
+| | test case. Other configurable options could be found in test |
+| | session profile yaml file. All these options have default |
+| | values which can be overwritten in test case file. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Spirent Landslide |
+| | |
+| | The Spirent Landslide is a tool for functional & performance |
+| | testing of different types of mobile networks. It emulates |
+| | real-world control and data traffic of mobile subscribers |
+| | moving through virtualized EPC network. |
+| | Detailed description of Spirent Landslide product could be |
+| | found here: https://www.spirent.com/Products/Landslide |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | This EPC UE SERVICE REQUEST test cases can be configured with|
+| | different: |
+| | |
+| | * packet sizes; |
+| | * traffic transaction rate; |
+| | * number of subscribers sessions; |
+| | * handover type; |
+| | * mobility rate; |
+| | * mobility time; |
+| | * mobility mode; |
+| | * handover start condition; |
+| | * subscribers disconnection rate; |
+| | |
+| | Default values exist. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI-NFV-TST001 |
+| | |
+| | 3GPP TS 32.455 |
+| | |
++--------------+--------------------------------------------------------------+
+| pre-test | * All Spirent Landslide dependencies are installed (detailed |
+| conditions | installation steps are described in Chapter 13- |
+| | nsb-installation.rst and 14-nsb-operation.rst file for NSB |
+| | Spirent Landslide vEPC tests; |
+| | |
+| | * The pod.yaml file contains all necessary information |
+| | (TAS VM IP address, NICs, emulated SUTs and Test Nodes |
+| | parameters (names, types, ip addresses, etc.). |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Spirent Landslide components are running on the hosts |
+| | specified in the pod file. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Yardstick is connected with Spirent Landslide Test |
+| | Administration Server (TAS) by TCL and REST API. The test |
+| | will resolve the topology and instantiate all emulated EPC |
+| | network nodes. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | Test scenarios run, which performs the following steps: |
+| | |
+| | * Start emulated EPC network nodes; |
+| | * Establish subscribers connections to EPC network (default |
+| | bearers); |
+| | * Start run traffic; |
+| | * After specified in test case mobility timeout, start |
+| | handover process on specified mobility rate; |
+| | * Disconnect subscribers at the end of the test. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | During test run, all the metrics provided by Spirent |
+| | Landslide are stored in the yardstick dispatcher. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | The test case will create the test session in Spirent |
+| | Landslide with the test case parameters and store the |
+| | results in the database for benchmarking purposes. The aim |
+| | is only to collect all the metrics that are provided by |
+| | Spirent Landslide product for each test specific scenario. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/nsb/tc_epc_ue_service_request_landslide.rst b/docs/testing/user/userguide/nsb/tc_epc_ue_service_request_landslide.rst
new file mode 100644
index 000000000..0711a0ce3
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_epc_ue_service_request_landslide.rst
@@ -0,0 +1,174 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2018 Intel Corporation.
+
+***********************************************************
+Yardstick Test Case Description: NSB EPC UE SERVICE REQUEST
+***********************************************************
+
++-----------------------------------------------------------------------------+
+|NSB EPC UE service request test case |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | tc_epc_{initiator}_service_request_landslide |
+| | |
+| | * initiator: service request initiator side could be UE (ue) |
+| | or Network (nw). |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | All metrics provided by Spirent Landslide traffic generator |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | The Spirent Landslide product provides one box solution which|
+| | allows to fully emulate all EPC network nodes including |
+| | mobile users, network host and generate control and data |
+| | plane traffic. |
+| | |
+| | This test allows to check processing capabilities of EPC |
+| | under high user connections rate and traffic load for case |
+| | when UEs initiates service request (UE initiates bearer |
+| | modification request to provide dedicated bearer for new |
+| | type of traffic) |
+| | |
+| | It's easy to replace emulated node or multiple nodes in test |
+| | topology with real node or corresponding vEPC VNF as DUT and |
+| | check it's processing capabilities under specific test case |
+| | load conditions. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | The EPC ue service request test cases are listed below: |
+| | |
+| | * tc_epc_ue_service_request_landslide.yaml |
+| | |
+| | Test duration: |
+| | |
+| | * is set as 60sec (specified in test session profile); |
+| | |
+| | Traffic type: |
+| | |
+| | * UDP; |
+| | |
+| | Packet sizes: |
+| | |
+| | * 512 bytes; |
+| | |
+| | Traffic transaction rate: |
+| | |
+| | * 5 trans/s.; |
+| | |
+| | Number of mobile subscribers: |
+| | |
+| | * 20000; |
+| | |
+| | Number of default bearers per subscriber: |
+| | |
+| | * 1; |
+| | |
+| | Number of dedicated bearers per default bearer: |
+| | |
+| | * 1. |
+| | |
+| | TFT settings for dedicated bearers: |
+| | |
+| | * TFT configured to filter TCP traffic (Protocol ID 6) |
+| | |
+| | Modified TFT settings: |
+| | |
+| | * Create new TFT to filter UDP traffic (Protocol ID 17) from |
+| | 2002 local port and 2003 remote port; |
+| | |
+| | Modified QoS settings: |
+| | |
+| | * Set QCI 5 for dedicated bearers; |
+| | |
+| | The above fields and values are the main options used for the|
+| | test case. Other configurable options could be found in test |
+| | session profile yaml file. All these options have default |
+| | values which can be overwritten in test case file. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Spirent Landslide |
+| | |
+| | The Spirent Landslide is a tool for functional & performance |
+| | testing of different types of mobile networks. It emulates |
+| | real-world control and data traffic of mobile subscribers |
+| | moving through virtualized EPC network. |
+| | Detailed description of Spirent Landslide product could be |
+| | found here: https://www.spirent.com/Products/Landslide |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | This EPC UE SERVICE REQUEST test case can be configured with |
+| | different: |
+| | |
+| | * packet sizes; |
+| | * traffic transaction rate; |
+| | * number of subscribers sessions; |
+| | * number of default bearers per subscriber; |
+| | * number of dedicated bearers per default; |
+| | * subscribers connection rate; |
+| | * subscribers disconnection rate; |
+| | * dedicated bearers activation timeout; |
+| | * DMF (traffic profile); |
+| | * enable/disable Fireball DMF threading model that provides |
+| | optimized performance; |
+| | * Starting TFT settings for dedicated bearers; |
+| | * Modified TFT settings for dedicated bearers; |
+| | * Modified QoS settings for dedicated bearers; |
+| | |
+| | Default values exist. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI-NFV-TST001 |
+| | |
+| | 3GPP TS 32.455 |
+| | |
++--------------+--------------------------------------------------------------+
+| pre-test | * All Spirent Landslide dependencies are installed (detailed |
+| conditions | installation steps are described in Chapter 13- |
+| | nsb-installation.rst and 14-nsb-operation.rst file for NSB |
+| | Spirent Landslide vEPC tests; |
+| | |
+| | * The pod.yaml file contains all necessary information |
+| | (TAS VM IP address, NICs, emulated SUTs and Test Nodes |
+| | parameters (names, types, ip addresses, etc.). |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Spirent Landslide components are running on the hosts |
+| | specified in the pod file. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Yardstick is connected with Spirent Landslide Test |
+| | Administration Server (TAS) by TCL and REST API. The test |
+| | will resolve the topology and instantiate all emulated EPC |
+| | network nodes. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | Test scenarios run, which performs the following steps: |
+| | |
+| | * Start emulated EPC network nodes; |
+| | * Establish subscribers connections to EPC network (default |
+| | bearers); |
+| | * Establish the number of dedicated bearer as specified in |
+| | the test case as per default bearer for each subscriber; |
+| | * start run users traffic through EPC network nodes; |
+| | * During traffic is running, send bearer modification request|
+| | after specified in test case timeout; |
+| | * Disconnect dedicated bearers; |
+| | * Disconnect subscribers at the end of the test. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | During test run, all the metrics provided by Spirent |
+| | Landslide are stored in the yardstick dispatcher. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | The test case will create the test session in Spirent |
+| | Landslide with the test case parameters and store the |
+| | results in the database for benchmarking purposes. The aim |
+| | is only to collect all the metrics that are provided by |
+| | Spirent Landslide product for each test specific scenario. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/nsb/tc_pktgen_k8s_vcmts.rst b/docs/testing/user/userguide/nsb/tc_pktgen_k8s_vcmts.rst
new file mode 100755
index 000000000..56f5c27ed
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_pktgen_k8s_vcmts.rst
@@ -0,0 +1,102 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2019 Viosoft Corporation.
+
+***********************************************
+Yardstick Test Case Description: NSB vCMTS
+***********************************************
+
++------------------------------------------------------------------------------+
+|NSB Pktgen test for vCMTS characterization |
+| |
++--------------+---------------------------------------------------------------+
+|test case id | tc_vcmts_k8s_pktgen |
+| | |
++--------------+---------------------------------------------------------------+
+|metric | * Upstream Processing (Per Service Group); |
+| | * Downstream Processing (Per Service Group); |
+| | * Upstream Throughput; |
+| | * Downstream Throughput; |
+| | * Platform Metrics; |
+| | * Power Consumption; |
+| | * Upstream Throughput Time Series; |
+| | * Downstream Throughput Time Series; |
+| | * System Summary; |
+| | |
++--------------+---------------------------------------------------------------+
+|test purpose | * The vCMTS test handles service groups and packet generation |
+| | containers setup, and metrics collection. |
+| | |
+| | * The vCMTS test case is implemented to run in Kubernetes |
+| | environment with vCMTS pre-installed. |
++--------------+---------------------------------------------------------------+
+|configuration | The vCMTS test case configurable values are listed below |
+| | |
+| | * num_sg: Number of service groups (Upstream/Downstream |
+| | container pairs). |
+| | * num_tg: Number of Pktgen containers. |
+| | * vcmtsd_image: vCMTS container image (feat/perf). |
+| | * qat_on: QAT status (true/false). |
+| | |
+| | num_sg and num_tg values should be configured in the test |
+| | case file and in the topology file. |
+| | |
++--------------+---------------------------------------------------------------+
+|test tool | Intel vCMTS Reference Dataplane |
+| | Reference implementation of a DPDK-based vCMTS (DOCSIS MAC) |
+| | dataplane in a Kubernetes-orchestrated Linux Container |
+| | environment. |
+| | |
++--------------+---------------------------------------------------------------+
+|applicability | This test cases can be configured with different: |
+| | |
+| | * Number of service groups |
+| | * Number of Pktgen instances |
+| | * QAT offloading |
+| | * Feat/Perf Images for performance or features (more data |
+| | collection) |
+| | |
+| | Default values exist. |
+| | |
++--------------+---------------------------------------------------------------+
+|pre-test | Intel vCMTS Reference Dataplane should be installed and |
+|conditions | runnable on 2 nodes Kubernetes environment with modifications |
+| | to the containers to allow yardstick ssh access, and the |
+| | ConfigMaps from the original vCMTS package deployed. |
+| | |
++--------------+---------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+---------------------------------------------------------------+
+|step 1 | Yardstick is connected to the Kubernetes Master node using |
+| | the configuration file in /etc/kubernetes/admin.yaml |
+| | |
++--------------+---------------------------------------------------------------+
+|step 2 | The TG containers are created and started on the traffic |
+| | generator server (Master node), While the VNF containers are |
+| | created and started on the data plan server. |
+| | |
++--------------+---------------------------------------------------------------+
+|step 3 | Yardstick is connected with the TG and VNF by using ssh. |
+| | to start vCMTS-d, and Pktgen. |
+| | |
++--------------+---------------------------------------------------------------+
+|step 4 | Yardstick connects to the running Pktgen instances to start |
+| | generating traffic using the configurations from: |
+| | /etc/yardstick/pktgen_values.yaml |
+| | |
+| | and connects to the vCMTS-d containers to start the upstream |
+| | and downstream processing using the configurations from: |
+| | /etc/yardstick/vcmtsd_values.yaml |
+| | |
++--------------+---------------------------------------------------------------+
+|step 5 | Yardstick copies vCMTS metrics regularly from the remote |
+| | InfluxDB (deployed by the vCMTS Package) to the local |
+| | Yardstick InfluxDB as configured in the options section in |
+| | the test case file. |
+| | |
++--------------+---------------------------------------------------------------+
+|test verdict | None. The test case will collect the KPIs and plot on |
+| | Grafana. |
++--------------+---------------------------------------------------------------+ \ No newline at end of file
diff --git a/docs/testing/user/userguide/nsb/tc_prox_context_vpe_port.rst b/docs/testing/user/userguide/nsb/tc_prox_context_vpe_port.rst
index 6827b0525..3beb5303f 100644
--- a/docs/testing/user/userguide/nsb/tc_prox_context_vpe_port.rst
+++ b/docs/testing/user/userguide/nsb/tc_prox_context_vpe_port.rst
@@ -3,9 +3,9 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c) OPNFV, 2017 Intel Corporation.
-**********************************************
-Yardstick Test Case Description: NSB PROXi VPE
-**********************************************
+*********************************************
+Yardstick Test Case Description: NSB PROX VPE
+*********************************************
+-----------------------------------------------------------------------------+
|NSB PROX test for NFVI characterization |
diff --git a/docs/testing/user/userguide/nsb/tc_vfw_rfc2544.rst b/docs/testing/user/userguide/nsb/tc_vfw_rfc2544.rst
new file mode 100644
index 000000000..139990bc3
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_vfw_rfc2544.rst
@@ -0,0 +1,189 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2018 Intel Corporation.
+
+************************************************
+Yardstick Test Case Description: NSB vFW RFC2544
+************************************************
+
++------------------------------------------------------------------------------+
+| NSB vFW test for VNF characterization |
+| |
++---------------+--------------------------------------------------------------+
+| test case id | tc_{context}_rfc2544_ipv4_1rule_1flow_{pkt_size}_{tg_type} |
+| | |
+| | * context = baremetal, heat, heat_external, ovs, sriov |
+| | heat_sriov_external contexts; |
+| | * tg_type = ixia (context != heat,heat_sriov_external), |
+| | trex; |
+| | * pkt_size = 64B - all contexts; |
+| | 128B, 256B, 512B, 1024B, 1280B, 1518B - |
+| | (context = heat, tg_type = ixia) |
+| | |
++---------------+--------------------------------------------------------------+
+| metric | * Network Throughput; |
+| | * TG Packets Out; |
+| | * TG Packets In; |
+| | * TG Latency; |
+| | * VNF Packets Out; |
+| | * VNF Packets In; |
+| | * VNF Packets Fwd; |
+| | * Dropped packets; |
+| | |
++---------------+--------------------------------------------------------------+
+| test purpose | The VFW RFC2544 tests measure performance characteristics of |
+| | the SUT (multiple ports) and sends UDP bidirectional traffic |
+| | from all TG ports to SampleVNF vFW application. The |
+| | application forwards received traffic based on rules |
+| | provided by the user in the TC configuration and default |
+| | rules created by vFW to send traffic from uplink ports to |
+| | downlink and voice versa. |
+| | |
++---------------+--------------------------------------------------------------+
+| configuration | The 2 ports RFC2544 test cases are listed below: |
+| | |
+| | * tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml |
+| | * tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.yaml |
+| | * tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml |
+| | * tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml |
+| | * tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml |
+| | * tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml |
+| | * tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml |
+| | * tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml |
+| | * tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml |
+| | * tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml |
+| | * tc_heat_sriov_external_rfc2544_ipv4_1rule_1flow_64B_trex. |
+| | yaml |
+| | * tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml |
+| | * tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml |
+| | * tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml |
+| | * tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml |
+| | * tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml |
+| | |
+| | The 4 ports RFC2544 test cases are listed below: |
+| | |
+| | * tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml |
+| | * tc_tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_4port. |
+| | yaml |
+| | * tc_tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex_4 |
+| | port.yaml |
+| | * tc_tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_4port.yaml |
+| | |
+| | The scale-up RFC2544 test cases are listed below: |
+| | |
+| | * tc_tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml |
+| | |
+| | The scale-out RFC2544 test cases are listed below: |
+| | |
+| | * tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale_out.yaml |
+| | |
+| | Test duration is set as 30 sec for each test and default |
+| | number of rules are applied. These can be configured |
+| | |
++---------------+--------------------------------------------------------------+
+| test tool | The vFW is a DPDK application that performs basic filtering |
+| | for malformed packets and dynamic packet filtering of |
+| | incoming packets using the connection tracker library. |
+| | |
++---------------+--------------------------------------------------------------+
+| applicability | The vFW RFC2544 test cases can be configured with different: |
+| | |
+| | * packet sizes; |
+| | * test duration; |
+| | * tolerated loss; |
+| | * traffic flows; |
+| | * rules; |
+| | |
+| | Default values exist. |
+| | |
++---------------+--------------------------------------------------------------+
+| pre-test | For OpenStack test case image (yardstick-samplevnf) needs |
+| conditions | to be installed into Glance with vFW and DPDK included in |
+| | it (NSB install). |
+| | |
+| | For Baremetal tests cases vFW and DPDK must be installed on |
+| | the hosts where the test is executed. The pod.yaml file must |
+| | have the necessary system and NIC information. |
+| | |
+| | For standalone (SA) SRIOV/OvS test cases the |
+| | yardstick-samplevnf image needs to be installed on hosts and |
+| | pod.yaml file must be provided with necessary system, NIC |
+| | information. |
+| | |
++---------------+--------------------------------------------------------------+
+| test sequence | Description and expected result |
+| | |
++---------------+--------------------------------------------------------------+
+| step 1 | For Baremetal test: The TG (except IXIA) and VNF are started |
+| | on the hosts based on the pod file. |
+| | |
+| | For Heat test: Two host VMs are booted, as Traffic generator |
+| | and VNF(vFW) based on the test flavor. In case of scale-out |
+| | scenario the multiple VNF VMs will be started. |
+| | |
+| | For Heat external test: vFW VM is booted and TG (except IXIA)|
+| | generator is started on the external host based on the pod |
+| | file. In case of scale-out scenario the multiple VNF VMs |
+| | will be deployed. |
+| | |
+| | For Heat SRIOV external test: vFW VM is booted with network |
+| | interfaces of `direct` type which are mapped to VFs that are |
+| | available to OpenStack. TG (except IXIA) is started on the |
+| | external host based on the pod file. In case of scale-out |
+| | scenario the multiple VNF VMs will be deployed. |
+| | |
+| | For SRIOV test: VF ports are created on host's PFs specified |
+| | in the TC file and VM is booed using those ports and image |
+| | provided in the configuration. TG (except IXIA) is started |
+| | on other host connected to VNF machine based on the pod |
+| | file. The vFW is started in the booted VM. In case of |
+| | scale-out scenario the multiple VNF VMs will be created. |
+| | |
+| | For OvS-DPDK test: OvS DPDK switch is started and bridges |
+| | are created with ports specified in the TC file. DPDK vHost |
+| | ports are added to corresponding bridge and VM is booed |
+| | using those ports and image provided in the configuration. |
+| | TG (except IXIA) is started on other host connected to VNF |
+| | machine based on the pod file. The vFW is started in the |
+| | booted VM. In case of scale-out scenario the multiple VNF |
+| | VMs will be deployed. |
+| | |
++---------------+--------------------------------------------------------------+
+| step 2 | Yardstick is connected with the TG and VNF by using ssh (in |
+| | case of IXIA TG is connected via TCL interface). The test |
+| | will resolve the topology and instantiate all VNFs |
+| | and TG and collect the KPI's/metrics. |
+| | |
++---------------+--------------------------------------------------------------+
+| step 3 | The TG will send packets to the VNFs. If the number of |
+| | dropped packets is more than the tolerated loss the line |
+| | rate or throughput is halved. This is done until the dropped |
+| | packets are within an acceptable tolerated loss. |
+| | |
+| | The KPI is the number of packets per second for different |
+| | packet size with an accepted minimal packet loss for the |
+| | default configuration. |
+| | |
++---------------+--------------------------------------------------------------+
+| step 4 | In Baremetal test: The test quits the application and unbind |
+| | the DPDK ports. |
+| | |
+| | In Heat test: All VNF VMs and TG are deleted on test |
+| | completion. |
+| | |
+| | In SRIOV test: The deployed VM with vFW is destroyed on the |
+| | host and TG (exclude IXIA) is stopped. |
+| | |
+| | In Heat SRIOV test: The deployed VM with vFW is destroyed, |
+| | VFs are released and TG (exclude IXIA) is stopped. |
+| | |
+| | In OvS test: The deployed VM with vFW is destroyed on the |
+| | host and OvS DPDK switch is stopped and ports are unbinded. |
+| | The TG (exclude IXIA) is stopped. |
+| | |
++---------------+--------------------------------------------------------------+
+| test verdict | The test case will achieve a Throughput with an accepted |
+| | minimal tolerated packet loss. |
++---------------+--------------------------------------------------------------+
+
diff --git a/docs/testing/user/userguide/nsb/tc_vfw_rfc2544_correlated.rst b/docs/testing/user/userguide/nsb/tc_vfw_rfc2544_correlated.rst
new file mode 100644
index 000000000..de490900d
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_vfw_rfc2544_correlated.rst
@@ -0,0 +1,130 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2018 Intel Corporation.
+
+*************************************************************
+Yardstick Test Case Description: NSB vFW RFC2544 (correlated)
+*************************************************************
+
++------------------------------------------------------------------------------+
+| NSB vFW test for VNF characterization using correlated traffic |
+| |
++---------------+--------------------------------------------------------------+
+| test case id | tc_{context}_rfc2544_ipv4_1rule_1flow_64B_trex_corelated |
+| | |
+| | * context = baremetal, heat |
+| | |
++---------------+--------------------------------------------------------------+
+| metric | * Network Throughput; |
+| | * TG Packets Out; |
+| | * TG Packets In; |
+| | * TG Latency; |
+| | * VNF Packets Out; |
+| | * VNF Packets In; |
+| | * VNF Packets Fwd; |
+| | * Dropped packets; |
+| | |
+| | NOTE: For correlated TCs the TG metrics are available on |
+| | uplink ports. |
+| | |
++---------------+--------------------------------------------------------------+
+| test purpose | The VFW RFC2544 correlated tests measure performance |
+| | characteristics of the SUT (multiple ports) and sends UDP |
+| | traffic from uplink TG ports to SampleVNF vFW application. |
+| | The application forwards received traffic from uplink ports |
+| | to downlink ports based on rules provided by the user in the |
+| | TC configuration and default rules created by vFW. The VNF |
+| | downlink traffic is received by another UDPReplay VNF and it |
+| | is mirrored back to the VNF on the same port. Finally, the |
+| | traffic is received back to the TG uplink port. |
+| | |
++---------------+--------------------------------------------------------------+
+| configuration | The 2 ports RFC2544 correlated test cases are listed below: |
+| | |
+| | * tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated |
+| | _traffic.yaml |
+| | |
+| | Multiple VNF (2, 4, 10) RFC2544 correlated test cases are |
+| | listed below: |
+| | |
+| | * tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated |
+| | _scale_10.yaml |
+| | * tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale |
+| | _2.yaml |
+| | * tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale |
+| | _4.yaml |
+| | |
+| | The scale-out RFC2544 test cases are listed below: |
+| | |
+| | * tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale |
+| | _out.yaml |
+| | |
+| | Test duration is set as 30 sec for each test and default |
+| | number of rules are applied. These can be configured |
+| | |
++---------------+--------------------------------------------------------------+
+| test tool | The vFW is a DPDK application that performs basic filtering |
+| | for malformed packets and dynamic packet filtering of |
+| | incoming packets using the connection tracker library. |
+| | |
++---------------+--------------------------------------------------------------+
+| applicability | The vFW RFC2544 test cases can be configured with different: |
+| | |
+| | * packet sizes; |
+| | * test duration; |
+| | * tolerated loss; |
+| | * traffic flows; |
+| | * rules; |
+| | |
+| | Default values exist. |
+| | |
++---------------+--------------------------------------------------------------+
+| pre-test | For OpenStack test case image (yardstick-samplevnf) needs |
+| conditions | to be installed into Glance with vFW and DPDK included in |
+| | it (NSB install). |
+| | |
+| | For Baremetal tests cases vFW and DPDK must be installed on |
+| | the hosts where the test is executed. The pod.yaml file must |
+| | have the necessary system and NIC information. |
+| | |
++---------------+--------------------------------------------------------------+
+| test sequence | Description and expected result |
+| | |
++---------------+--------------------------------------------------------------+
+| step 1 | For Baremetal test: The TG (except IXIA), vFW and UDPReplay |
+| | VNFs are started on the hosts based on the pod file. |
+| | |
+| | For Heat test: Three host VMs are booted, as Traffic |
+| | generator, vFW and UDPReplay VNF(vFW) based on the test |
+| | flavor. In case of scale-out scenario the multiple vFW VNF |
+| | VMs will be started. |
+| | |
++---------------+--------------------------------------------------------------+
+| step 2 | Yardstick is connected with the TG, vFW and UDPReplay VNF by |
+| | using ssh (in case of IXIA TG is connected via TCL |
+| | interface). The test will resolve the topology and |
+| | instantiate all VNFs and TG and collect the KPI's/metrics. |
+| | |
++---------------+--------------------------------------------------------------+
+| step 3 | The TG will send packets to the VNFs. If the number of |
+| | dropped packets is more than the tolerated loss the line |
+| | rate or throughput is halved. This is done until the dropped |
+| | packets are within an acceptable tolerated loss. |
+| | |
+| | The KPI is the number of packets per second for 64B packet |
+| | size with an accepted minimal packet loss for the default |
+| | configuration. |
+| | |
++---------------+--------------------------------------------------------------+
+| step 4 | In Baremetal test: The test quits the application and unbind |
+| | the DPDK ports. |
+| | |
+| | In Heat test: All VNF VMs and TG are deleted on test |
+| | completion. |
+| | |
++---------------+--------------------------------------------------------------+
+| test verdict | The test case will achieve a Throughput with an accepted |
+| | minimal tolerated packet loss. |
++---------------+--------------------------------------------------------------+
+
diff --git a/docs/testing/user/userguide/nsb/tc_vfw_rfc3511.rst b/docs/testing/user/userguide/nsb/tc_vfw_rfc3511.rst
new file mode 100644
index 000000000..9051fc4df
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_vfw_rfc3511.rst
@@ -0,0 +1,133 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2018 Intel Corporation.
+
+*******************************************************
+Yardstick Test Case Description: NSB vFW RFC3511 (HTTP)
+*******************************************************
+
++------------------------------------------------------------------------------+
+| NSB vFW test for VNF characterization based on RFC3511 and IXIA |
+| |
++---------------+--------------------------------------------------------------+
+| test case id | tc_{context}_http_ixload_{http_size}_Requests-65000_{type} |
+| | |
+| | * context = baremetal, heat_external |
+| | * http_size = 1b, 4k, 64k, 256k, 512k, 1024k payload size |
+| | * type = Concurrency, Connections, Throughput |
+| | |
++---------------+--------------------------------------------------------------+
+| metric | * HTTP Total Throughput (Kbps); |
+| | * HTTP Simulated Users; |
+| | * HTTP Concurrent Connections; |
+| | * HTTP Connection Rate; |
+| | * HTTP Transaction Rate |
+| | |
++---------------+--------------------------------------------------------------+
+| test purpose | The vFW RFC3511 tests measure performance characteristics of |
+| | the SUT by sending the HTTP traffic from uplink to downlink |
+| | TG ports through vFW VNF. The application forwards received |
+| | traffic based on rules provided by the user in the TC |
+| | configuration and default rules created by vFW to send |
+| | traffic from uplink ports to downlink and voice versa. |
+| | |
++---------------+--------------------------------------------------------------+
+| configuration | The 2 ports RFC3511 test cases are listed below: |
+| | |
+| | * tc_baremetal_http_ixload_1024k_Requests-65000 |
+| | _Concurrency.yaml |
+| | * tc_baremetal_http_ixload_1b_Requests-65000 |
+| | _Concurrency.yaml |
+| | * tc_baremetal_http_ixload_256k_Requests-65000 |
+| | _Concurrency.yaml |
+| | * tc_baremetal_http_ixload_4k_Requests-65000 |
+| | _Concurrency.yaml |
+| | * tc_baremetal_http_ixload_512k_Requests-65000 |
+| | _Concurrency.yaml |
+| | * tc_baremetal_http_ixload_64k_Requests-65000 |
+| | _Concurrency.yaml |
+| | * tc_heat_external_http_ixload_1b_Requests-10Gbps |
+| | _Throughput.yaml |
+| | * tc_heat_external_http_ixload_1b_Requests-65000 |
+| | _Concurrency.yaml |
+| | * tc_heat_external_http_ixload_1b_Requests-65000 |
+| | _Connections.yaml |
+| | |
+| | The 4 ports RFC3511 test cases are listed below: |
+| | |
+| | * tc_baremetal_http_ixload_1b_Requests-65000 |
+| | _Concurrency_4port.yaml |
+| | |
++---------------+--------------------------------------------------------------+
+| test tool | The vFW is a DPDK application that performs basic filtering |
+| | for malformed packets and dynamic packet filtering of |
+| | incoming packets using the connection tracker library. |
+| | |
++---------------+--------------------------------------------------------------+
+| applicability | The vFW RFC3511 test cases can be configured with different: |
+| | |
+| | * http payload sizes; |
+| | * traffic flows; |
+| | * rules; |
+| | |
+| | Default values exist. |
+| | |
++---------------+--------------------------------------------------------------+
+| pre-test | For OpenStack test case image (yardstick-samplevnf) needs |
+| conditions | to be installed into Glance with vFW and DPDK included in |
+| | it (NSB install). |
+| | |
+| | For Baremetal tests cases vFW and DPDK must be installed on |
+| | the hosts where the test is executed. The pod.yaml file must |
+| | have the necessary system and NIC information. |
+| | |
++---------------+--------------------------------------------------------------+
+| test sequence | Description and expected result |
+| | |
++---------------+--------------------------------------------------------------+
+| step 1 | For Baremetal test: The vFW VNF is started on the hosts |
+| | based on the pod file. |
+| | |
+| | For Heat external test: The vFW VM are deployed and booted. |
+| | |
++---------------+--------------------------------------------------------------+
+| step 2 | Yardstick is connected with the TG (IxLoad) via IxLoad API |
+| | and VNF by using ssh. The test will resolve the topology and |
+| | instantiate all VNFs and TG and collect the KPI's/metrics. |
+| | |
++---------------+--------------------------------------------------------------+
+| step 3 | The TG simulates HTTP traffic based on selected type of TC. |
+| | |
+| | Concurrency: |
+| | The TC attempts to simulate some number of human users. |
+| | The simulated users are gradually brought online until 64K |
+| | users is met (the Ramp-Up phase), then taken offline (the |
+| | Ramp Down phase). |
+| | |
+| | Connections: |
+| | The TC creates some number of HTTP connections per second. |
+| | It will attempt to generate the 64K of HTTP connections |
+| | per second. |
+| | |
+| | Throughput: |
+| | TC simultaneously transmits and receives TCP payload |
+| | (bytes) at a certain rate measured in Megabits per second |
+| | (Mbps), Kilobits per second (Kbps), or Gigabits per |
+| | second. The 10 Gbits is default throughput. |
+| | |
+| | At the end of the TC, the KPIs are collected and stored |
+| | (depends on the selected dispatcher). |
+| | |
++---------------+--------------------------------------------------------------+
+| step 4 | In Baremetal test: The test quits the application and |
+| | unbinds the DPDK ports. |
+| | |
+| | In Heat test: All VNF VMs are deleted and connections to TG |
+| | are terminated. |
+| | |
++---------------+--------------------------------------------------------------+
+| test verdict | The test case will try to achieve the configured HTTP |
+| | Concurrency/Throughput/Connections. |
++---------------+--------------------------------------------------------------+
+
diff --git a/docs/testing/user/userguide/nsb/tc_vims_context_sipp.rst b/docs/testing/user/userguide/nsb/tc_vims_context_sipp.rst
new file mode 100644
index 000000000..6df4ab880
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_vims_context_sipp.rst
@@ -0,0 +1,96 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2019 Viosoft Corporation.
+
+**********************************************
+Yardstick Test Case Description: NSB VIMS
+**********************************************
+
++-----------------------------------------------------------------------------+
+|NSB VIMS test for vIMS characterization |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | tc_vims_{context}_sipp |
+| | |
+| | * context = baremetal or heat; |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | * Successful registrations per second; |
+| | * Total number of active registrations per server; |
+| | * Successful de-registrations per second; |
+| | * Successful session establishments per second; |
+| | * Total number of active sessions per server; |
+| | * Mean session setup time; |
+| | * Successful re-registrations per second; |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | The vIMS test handles registration rate, call rate, |
+| | round trip delay, and message statistics of vIMS system. |
+| | |
+| | The vIMS test cases are implemented to run in baremetal |
+| | and heat context default configuration. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | The vIMS test cases are listed below: |
+| | |
+| | * tc_vims_baremetal_sipp.yaml |
+| | * tc_vims_heat_sipp.yaml |
+| | |
+| | Each test runs one time and collects all the KPIs. |
+| | The configuration of vIMS and SIPp can be changed in each |
+| | test. |
++--------------+--------------------------------------------------------------+
+|test tool | SIPp |
+| | |
+| | SIPp is an application that can simulate SIP scenarios, can |
+| | generate RTP traffic and used for vIMS characterization. |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | The SIPp test cases can be configured with different: |
+| | |
+| | * number of accounts; |
+| | * the call per second (cps) of SIP test; |
+| | * the holding time; |
+| | * RTP configuratioin; |
+| | |
++--------------+--------------------------------------------------------------+
+|pre-test | For Openstack test case, only vIMS is deployed by external |
+|conditions | heat template, SIPp needs pod.yaml file with the necessary |
+| | system and NIC information |
+| | |
+| | For Baremetal tests cases SIPp and vIMS must be installed in |
+| | the hosts where the test is executed. The pod.yaml file must |
+| | have the necessary system and NIC information |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | For Baremetal test: The TG and VNF are started on the hosts |
+| | based on the pod file. |
+| | |
+| | For Heat test: One host VM for vIMS is booted, based on |
+| | the test flavor. Another host for SIPp is booted as |
+| | traffic generator, based on pod.yaml file |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Yardstick is connected with the vIMS and SIPp via ssh. |
+| | The test will resolve the topology, instantiate the vIMS and |
+| | SIPp and collect the KPIs/metrics. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | The SIPp will run scenario tests with parameters configured |
+| | in test case files (tc_vims_baremetal_sipp.yaml and |
+| | tc_vims_heat_sipp.yaml files). |
+| | This is done until the KPIs of SIPp are within an acceptable |
+| | threshold. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | In Baremetal test: The test quits the application. |
+| | |
+| | In Heat test: The host VM of vIMS is deleted on test |
+| | completion. |
++--------------+--------------------------------------------------------------+
+|test verdict | The test case will collect the KPIs and plot on Grafana. |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/nsb/tc_vpp_baremetal_crypto_ipsec.rst b/docs/testing/user/userguide/nsb/tc_vpp_baremetal_crypto_ipsec.rst
new file mode 100644
index 000000000..6a4a37697
--- /dev/null
+++ b/docs/testing/user/userguide/nsb/tc_vpp_baremetal_crypto_ipsec.rst
@@ -0,0 +1,113 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2019 Viosoft Corporation.
+
+***********************************************
+Yardstick Test Case Description: NSB VPP IPSEC
+***********************************************
+
++------------------------------------------------------------------------------+
+|NSB VPP test for vIPSEC characterization |
+| |
++--------------+---------------------------------------------------------------+
+|test case id | tc_baremetal_rfc2544_ipv4_{crypto_dev}_{crypto_alg} |
+| | |
+| | * crypto_dev = HW_cryptodev or SW_cryptodev; |
+| | * crypto_alg = aes-gcm or cbc-sha1; |
+| | |
++--------------+---------------------------------------------------------------+
+|metric | * Network Throughput NDR or PDR; |
+| | * Connections Per Second (CPS); |
+| | * Latency; |
+| | * Number of tunnels; |
+| | * TG Packets Out; |
+| | * TG Packets In; |
+| | * VNF Packets Out; |
+| | * VNF Packets In; |
+| | * Dropped packets; |
+| | |
++--------------+---------------------------------------------------------------+
+|test purpose | IPv4 IPsec tunnel mode performance test: |
+| | |
+| | * Finds and reports throughput NDR (Non Drop Rate) with zero |
+| | packet loss tolerance or throughput PDR (Partial Drop Rate) |
+| | with non-zero packet loss tolerance (LT) expressed in |
+| | number of packets transmitted. |
+| | |
+| | * The IPSEC test cases are implemented to run in baremetal |
+| | |
++--------------+---------------------------------------------------------------+
+|configuration | The IPSEC test cases are listed below: |
+| | |
+| | * tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml |
+| | * tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml |
+| | * tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml |
+| | * tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml |
+| | * tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml |
+| | * tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml |
+| | * tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml |
+| | * tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml |
+| | |
+| | Test duration is set as 500sec for each test. |
+| | Packet size set as 64 bytes or higher. |
+| | Number of tunnels set as 1 or higher. |
+| | Number of connections set as 1 or higher |
+| | These can be configured |
+| | |
++--------------+---------------------------------------------------------------+
+|test tool | Vector Packet Processing (VPP) |
+| | The VPP platform is an extensible framework that provides |
+| | out-of-the-box production quality switch/router functionality.|
+| | Its high performance, proven technology, its modularity and, |
+| | flexibility and rich feature set |
+| | |
++--------------+---------------------------------------------------------------+
+|applicability | This VPP IPSEC test cases can be configured with different: |
+| | |
+| | * packet sizes; |
+| | * test durations; |
+| | * tolerated loss; |
+| | * crypto device type; |
+| | * number of physical cores; |
+| | * number of tunnels; |
+| | * number of connections; |
+| | * encryption algorithms - integrity algorithm; |
+| | |
+| | Default values exist. |
+| | |
++--------------+---------------------------------------------------------------+
+|pre-test | For Baremetal tests cases VPP and DPDK must be installed in |
+|conditions | the hosts where the test is executed. The pod.yaml file must |
+| | have the necessary system and NIC information |
+| | |
++--------------+---------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+---------------------------------------------------------------+
+|step 1 | For Baremetal test: The TG and VNF are started on the hosts |
+| | based on the pod file. |
+| | |
++--------------+---------------------------------------------------------------+
+|step 2 | Yardstick is connected with the TG and VNF by using ssh. |
+| | The test will resolve the topology and instantiate the VNF |
+| | and TG and collect the KPI's/metrics. |
+| | |
++--------------+---------------------------------------------------------------+
+|step 3 | Test packets are generated by TG on links to DUTs. If the |
+| | number of dropped packets is more than the tolerated loss |
+| | the line rate or throughput is halved. This is done until |
+| | the dropped packets are within an acceptable tolerated loss. |
+| | |
+| | The KPI is the number of packets per second for a packet size |
+| | specified in the test case with an accepted minimal packet |
+| | loss for the default configuration. |
+| | |
++--------------+---------------------------------------------------------------+
+|step 4 | In Baremetal test: The test quits the application and unbind |
+| | the DPDK ports. |
+| | |
++--------------+---------------------------------------------------------------+
+|test verdict | The test case will achieve a Throughput with an accepted |
+| | minimal tolerated packet loss. |
++--------------+---------------------------------------------------------------+ \ No newline at end of file
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc010.rst b/docs/testing/user/userguide/opnfv_yardstick_tc010.rst
index 202307de6..19cc80e30 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc010.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc010.rst
@@ -34,6 +34,7 @@ Yardstick Test Case Description TC010
| | |
| | Lmbench is a suite of operating system microbenchmarks. This |
| | test uses lat_mem_rd tool from that suite including: |
+| | |
| | * Context switching |
| | * Networking: connection establishment, pipe, TCP, UDP, and |
| | RPC hot potato |
@@ -55,7 +56,7 @@ Yardstick Test Case Description TC010
| | The benchmark runs as two nested loops. The outer loop is |
| | the stride size. The inner loop is the array size. For each |
| | array size, the benchmark creates a ring of pointers that |
-| | point backward one stride.Traversing the array is done by: |
+| | point backward one stride. Traversing the array is done by:: |
| | |
| | p = (char **)*p; |
| | |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc011.rst b/docs/testing/user/userguide/opnfv_yardstick_tc011.rst
index 48bdef497..cbb1db91f 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc011.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc011.rst
@@ -60,14 +60,14 @@ Yardstick Test Case Description TC011
| | |
| | * options: |
| | protocol: udp # The protocol used by iperf3 tools |
-| | bandwidth: 20m # It will send the given number of packets |
-| | without pausing |
+| | # Send the given number of packets without pausing: |
+| | bandwidth: 20m |
| | * runner: |
| | duration: 30 # Total test duration 30 seconds. |
| | |
| | * SLA (optional): |
| | jitter: 10 (ms) # The maximum amount of jitter that is |
-| | accepted. |
+| | accepted. |
| | |
+--------------+--------------------------------------------------------------+
|applicability | Test can be configured with different: |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc012.rst b/docs/testing/user/userguide/opnfv_yardstick_tc012.rst
index b56e829f5..2502f5d94 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc012.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc012.rst
@@ -34,6 +34,7 @@ Yardstick Test Case Description TC012
| | |
| | LMbench is a suite of operating system microbenchmarks. |
| | This test uses bw_mem tool from that suite including: |
+| | |
| | * Cached file read |
| | * Memory copy (bcopy) |
| | * Memory read |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc015.rst b/docs/testing/user/userguide/opnfv_yardstick_tc015.rst
new file mode 100755
index 000000000..277614ad4
--- /dev/null
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc015.rst
@@ -0,0 +1,141 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Orange and others.
+
+*************************************
+Yardstick Test Case Description TC015
+*************************************
+
+.. _unixbench: https://github.com/kdlucas/byte-unixbench/blob/master/UnixBench
+
++-----------------------------------------------------------------------------+
+| Processing speed with impact on energy consumption and CPU load |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC015_PROCESSING SPEED |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | score of single cpu running, |
+| | score of parallel running, |
+| | energy consumption |
+| | cpu load |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | The purpose of TC015 is to evaluate the IaaS compute |
+| | performance with regards to CPU processing speed with |
+| | its impact on the energy consumption |
+| | It measures score of single cpu running and parallel |
+| | running. Energy consumption and cpu load are monitored while |
+| | the cpu test is running. |
+| | |
+| | The purpose is also to be able to spot the trends. |
+| | Test results, graphs and similar shall be stored for |
+| | comparison reasons and product evolution understanding |
+| | between different OPNFV versions and/or configurations, |
+| | different server types. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | UnixBench |
+| | |
+| | Unixbench is the most used CPU benchmarking software tool. |
+| | It can measure the performance of bash scripts, CPUs in |
+| | multithreading and single threading. It can also measure the |
+| | performance for parallel tasks. Also, specific disk IO for |
+| | small and large files are performed. You can use it to |
+| | measure either linux dedicated servers and linux vps |
+| | servers, running CentOS, Debian, Ubuntu, Fedora and other |
+| | distros. |
+| | |
+| | (UnixBench is not always part of a Linux distribution, hence |
+| | it needs to be installed. As an example see the |
+| | /yardstick/tools/ directory for how to generate a Linux |
+| | image with UnixBench included.) |
+| | |
+| | Redfish API |
+| | This HTTPS interface is provided by BMC of every telco grade |
+| | server. Is is a standard interface. |
+| | |
++--------------+--------------------------------------------------------------+
+|test | The UnixBench runs system benchmarks on a compute, getting |
+|description | information on the CPUs in the system. If the system has |
+| | more than one CPU, the tests will be run twice -- once with |
+| | a single copy of each test running at once, and once with N |
+| | N copies, where N is the number of CPUs. |
+| | |
+| | UnixBench will process a set of results from a single test |
+| | by averaging the individual pass results into a single final |
+| | value. |
+| | |
+| | While the cpu test is running Energy scenario run in |
+| | background to monitor the number of watt consumed by the |
+| | compute server on the fly. The same is done using Cpuload |
+| | scenario to monitor the overall percentage of CPU used on |
+| | the fly. This enables to balance the CPU score with its |
+| | impact on energy consumption. Synchronized measurements |
+| | enables to look at any relation between CPU load and energy |
+| | consumption. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | file: opnfv_yardstick_tc015.yaml |
+| | |
+| | run_mode: |
+| | Run Energy and Cpuload in background |
+| | Run unixbench in quiet mode or verbose mode |
+| | test_type: dhry2reg, whetstone and so on |
+| | |
+| | Duration and Interval are set globally for Energy and |
+| | Cpuload, aligned with duration of UnixBench test. |
+| | SLA can be set for each scenario type. Default is NA. |
+| | For SLA with single_score and parallel_score, both can be |
+| | set by user, default is NA. |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | Test shall be applied to node context only |
+| | It can be configured with different: |
+| | |
+| | * test types: dhry2reg, whetstone |
+| | |
+| | Default values exist. |
+| | |
+| | SLA (optional) : min_score: The minimun UnixBench score that |
+| | is accepted. |
+| | |
++--------------+--------------------------------------------------------------+
+|usability | This test case is one of Yardstick's generic test. Thus it |
+| | is runnable on most of the scenarios. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | unixbench_ |
+| | |
+| | ETSI-NFV-TST001 |
+| | |
++--------------+--------------------------------------------------------------+
+|pre-test | The target shall have unixbench installed on it. |
+|conditions | |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Yardstick is connected with the target node using ssh. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Energy and Cpuload are launched silently in background one |
+| | after the other. |
+| | Then UnixBench is invoked. All the tests are executed using |
+| | the "Run" script in the top-level of UnixBench directory. |
+| | The "Run" script will run a standard "index" test, and save |
+| | the report in the "results" directory. Then the report is |
+| | processed by "unixbench_benchmark" and checked against the |
+| | SLA. |
+| | While unibench runs energy and cpu load are catched |
+| | periodically according to interval value. |
+| | |
+| | Result: Logs are stored. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | Fails only if SLA is not passed, or if there is a test case |
+| | execution problem. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc019.rst b/docs/testing/user/userguide/opnfv_yardstick_tc019.rst
index 57e8ddf79..d27b201c5 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc019.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc019.rst
@@ -43,20 +43,24 @@ Yardstick Test Case Description TC019
| | |
+--------------+--------------------------------------------------------------+
|monitors | In this test case, two kinds of monitor are needed: |
+| | |
| | 1. the "openstack-cmd" monitor constantly request a specific |
| | Openstack command, which needs two parameters: |
-| | 1) monitor_type: which is used for finding the monitor class |
-| | and related scritps. It should be always set to |
-| | "openstack-cmd" for this monitor. |
-| | 2) command_name: which is the command name used for request |
+| | |
+| | 1. monitor_type: which is used for finding the monitor |
+| | class and related scritps. It should be always set to |
+| | "openstack-cmd" for this monitor. |
+| | 2. command_name: which is the command name used for |
+| | request |
| | |
| | 2. the "process" monitor check whether a process is running |
| | on a specific node, which needs three parameters: |
-| | 1) monitor_type: which used for finding the monitor class |
-| | and related scritps. It should be always set to "process" |
-| | for this monitor. |
-| | 2) process_name: which is the process name for monitor |
-| | 3) host: which is the name of the node runing the process |
+| | |
+| | 1. monitor_type: which used for finding the monitor class |
+| | and related scritps. It should be always set to |
+| | "process" for this monitor. |
+| | 2. process_name: which is the process name for monitor |
+| | 3. host: which is the name of the node runing the process |
| | |
| | e.g. |
| | monitor1: |
@@ -125,7 +129,12 @@ Yardstick Test Case Description TC019
+--------------+--------------------------------------------------------------+
|post-action | It is the action when the test cases exist. It will check |
| | the status of the specified process on the host, and restart |
-| | the process if it is not running for next test cases |
+| | the process if it is not running for next test cases. |
+| | |
+| | Notice: This post-action uses 'lsb_release' command to check |
+| | the host linux distribution and determine the OpenStack |
+| | service name to restart the process. Lack of 'lsb_release' |
+| | on the host may cause failure to restart the process. |
| | |
+--------------+--------------------------------------------------------------+
|test verdict | Fails only if SLA is not passed, or if there is a test case |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc025.rst b/docs/testing/user/userguide/opnfv_yardstick_tc025.rst
index 0e2e9a5f8..f3f9ea6bf 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc025.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc025.rst
@@ -39,12 +39,15 @@ Yardstick Test Case Description TC025
| | |
+--------------+--------------------------------------------------------------+
|monitors | In this test case, one kind of monitor are needed: |
+| | |
| | 1. the "openstack-cmd" monitor constantly request a specific |
| | Openstack command, which needs two parameters |
-| | 1) monitor_type: which is used for finding the monitor class |
-| | and related scritps. It should be always set to |
-| | "openstack-cmd" for this monitor. |
-| | 2) command_name: which is the command name used for request |
+| | |
+| | 1) monitor_type: which is used for finding the monitor |
+| | class and related scripts. It should be always set to |
+| | "openstack-cmd" for this monitor. |
+| | 2) command_name: which is the command name used for |
+| | request |
| | |
| | There are four instance of the "openstack-cmd" monitor: |
| | monitor1: |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc027.rst b/docs/testing/user/userguide/opnfv_yardstick_tc027.rst
index 125fd59fa..90790e2e3 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc027.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc027.rst
@@ -7,7 +7,7 @@
Yardstick Test Case Description TC027
*************************************
-.. _ipv6: https://wiki.opnfv.org/ipv6_opnfv_project
+.. _ipv6: https://wiki.opnfv.org/display/ipv6
+-----------------------------------------------------------------------------+
|IPv6 connectivity between nodes on the tenant network |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc040.rst b/docs/testing/user/userguide/opnfv_yardstick_tc040.rst
index d62fbf787..4c73c9677 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc040.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc040.rst
@@ -7,7 +7,7 @@
Yardstick Test Case Description TC040
*************************************
-.. _Parser: https://wiki.opnfv.org/parser
+.. _Parser: https://wiki.opnfv.org/display/parser
+-----------------------------------------------------------------------------+
|Verify Parser Yang-to-Tosca |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc042.rst b/docs/testing/user/userguide/opnfv_yardstick_tc042.rst
index 8660d9297..23b98c8f4 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc042.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc042.rst
@@ -4,12 +4,12 @@
.. (c) OPNFV, ZTE and others.
***************************************
-Yardstick Test Case Description TC0042
+Yardstick Test Case Description TC042
***************************************
.. _DPDK: http://dpdk.org/doc/guides/index.html
.. _Testpmd: http://dpdk.org/doc/guides/testpmd_app_ug/index.html
-.. _Pktgen-dpdk: http://pktgen.readthedocs.io/en/latest/index.html
+.. _Pktgen-dpdk: https://pktgen-dpdk.readthedocs.io/en/latest/index.html
+-----------------------------------------------------------------------------+
|Network Performance |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc045.rst b/docs/testing/user/userguide/opnfv_yardstick_tc045.rst
index 0b0993c34..378176090 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc045.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc045.rst
@@ -128,9 +128,14 @@ Yardstick Test Case Description TC045
| | Result: The test case is passed or not. |
| | |
+--------------+--------------------------------------------------------------+
-|post-action | It is the action when the test cases exist. It will check the|
-| | status of the specified process on the host, and restart the |
-| | process if it is not running for next test cases |
+|post-action | It is the action when the test cases exist. It will check |
+| | the status of the specified process on the host, and restart |
+| | the process if it is not running for next test cases. |
+| | |
+| | Notice: This post-action uses 'lsb_release' command to check |
+| | the host linux distribution and determine the OpenStack |
+| | service name to restart the process. Lack of 'lsb_release' |
+| | on the host may cause failure to restart the process. |
| | |
+--------------+--------------------------------------------------------------+
|test verdict | Fails only if SLA is not passed, or if there is a test case |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc046.rst b/docs/testing/user/userguide/opnfv_yardstick_tc046.rst
index cce6c6884..5308c8e7b 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc046.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc046.rst
@@ -127,9 +127,14 @@ Yardstick Test Case Description TC046
| | Result: The test case is passed or not. |
| | |
+--------------+--------------------------------------------------------------+
-|post-action | It is the action when the test cases exist. It will check the|
-| | status of the specified process on the host, and restart the |
-| | process if it is not running for next test cases |
+|post-action | It is the action when the test cases exist. It will check |
+| | the status of the specified process on the host, and restart |
+| | the process if it is not running for next test cases. |
+| | |
+| | Notice: This post-action uses 'lsb_release' command to check |
+| | the host linux distribution and determine the OpenStack |
+| | service name to restart the process. Lack of 'lsb_release' |
+| | on the host may cause failure to restart the process. |
| | |
+--------------+--------------------------------------------------------------+
|test verdict | Fails only if SLA is not passed, or if there is a test case |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc047.rst b/docs/testing/user/userguide/opnfv_yardstick_tc047.rst
index 95158cfd6..bb8ffc6ab 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc047.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc047.rst
@@ -128,9 +128,14 @@ Yardstick Test Case Description TC047
| | Result: The test case is passed or not. |
| | |
+--------------+--------------------------------------------------------------+
-|post-action | It is the action when the test cases exist. It will check the|
-| | status of the specified process on the host, and restart the |
-| | process if it is not running for next test cases |
+|post-action | It is the action when the test cases exist. It will check |
+| | the status of the specified process on the host, and restart |
+| | the process if it is not running for next test cases. |
+| | |
+| | Notice: This post-action uses 'lsb_release' command to check |
+| | the host linux distribution and determine the OpenStack |
+| | service name to restart the process. Lack of 'lsb_release' |
+| | on the host may cause failure to restart the process. |
| | |
+--------------+--------------------------------------------------------------+
|test verdict | Fails only if SLA is not passed, or if there is a test case |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc048.rst b/docs/testing/user/userguide/opnfv_yardstick_tc048.rst
index 21c00d1fe..1bf627282 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc048.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc048.rst
@@ -128,9 +128,14 @@ Yardstick Test Case Description TC048
| | Result: The test case is passed or not. |
| | |
+--------------+--------------------------------------------------------------+
-|post-action | It is the action when the test cases exist. It will check the|
-| | status of the specified process on the host, and restart the |
-| | process if it is not running for next test cases |
+|post-action | It is the action when the test cases exist. It will check |
+| | the status of the specified process on the host, and restart |
+| | the process if it is not running for next test case |
+| | |
+| | Notice: This post-action uses 'lsb_release' command to check |
+| | the host linux distribution and determine the OpenStack |
+| | service name to restart the process. Lack of 'lsb_release' |
+| | on the host may cause failure to restart the process. |
| | |
+--------------+--------------------------------------------------------------+
|test verdict | Fails only if SLA is not passed, or if there is a test case |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc049.rst b/docs/testing/user/userguide/opnfv_yardstick_tc049.rst
index f58bb9989..12ed94b7d 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc049.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc049.rst
@@ -128,9 +128,14 @@ Yardstick Test Case Description TC049
| | Result: The test case is passed or not. |
| | |
+--------------+--------------------------------------------------------------+
-|post-action | It is the action when the test cases exist. It will check the|
-| | status of the specified process on the host, and restart the |
-| | process if it is not running for next test cases |
+|post-action | It is the action when the test cases exist. It will check |
+| | the status of the specified process on the host, and restart |
+| | the process if it is not running for next test cases. |
+| | |
+| | Notice: This post-action uses 'lsb_release' command to check |
+| | the host linux distribution and determine the OpenStack |
+| | service name to restart the process. Lack of 'lsb_release' |
+| | on the host may cause failure to restart the process. |
| | |
+--------------+--------------------------------------------------------------+
|test verdict | Fails only if SLA is not passed, or if there is a test case |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc050.rst b/docs/testing/user/userguide/opnfv_yardstick_tc050.rst
index 8890c9d53..7d01cb99a 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc050.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc050.rst
@@ -34,23 +34,20 @@ Yardstick Test Case Description TC050
| | 2) host: which is the name of a control node being attacked. |
| | 3) interface: the network interface to be turned off. |
| | |
-| | There are four instance of the "close-interface" monitor: |
-| | attacker1(for public netork): |
-| | -fault_type: "close-interface" |
-| | -host: node1 |
-| | -interface: "br-ex" |
-| | attacker2(for management netork): |
-| | -fault_type: "close-interface" |
-| | -host: node1 |
-| | -interface: "br-mgmt" |
-| | attacker3(for storage netork): |
-| | -fault_type: "close-interface" |
-| | -host: node1 |
-| | -interface: "br-storage" |
-| | attacker4(for private netork): |
-| | -fault_type: "close-interface" |
-| | -host: node1 |
-| | -interface: "br-mesh" |
+| | The interface to be closed by the attacker can be set by the |
+| | variable of "{{ interface_name }}":: |
+| | |
+| | attackers: |
+| | - |
+| | fault_type: "general-attacker" |
+| | host: {{ attack_host }} |
+| | key: "close-br-public" |
+| | attack_key: "close-interface" |
+| | action_parameter: |
+| | interface: {{ interface_name }} |
+| | rollback_parameter: |
+| | interface: {{ interface_name }} |
+| | |
+--------------+--------------------------------------------------------------+
|monitors | In this test case, the monitor named "openstack-cmd" is |
| | needed. The monitor needs needs two parameters: |
@@ -59,19 +56,20 @@ Yardstick Test Case Description TC050
| | "openstack-cmd" for this monitor. |
| | 2) command_name: which is the command name used for request |
| | |
-| | There are four instance of the "openstack-cmd" monitor: |
-| | monitor1: |
-| | -monitor_type: "openstack-cmd" |
-| | -command_name: "nova image-list" |
-| | monitor2: |
-| | -monitor_type: "openstack-cmd" |
-| | -command_name: "neutron router-list" |
-| | monitor3: |
-| | -monitor_type: "openstack-cmd" |
-| | -command_name: "heat stack-list" |
-| | monitor4: |
-| | -monitor_type: "openstack-cmd" |
-| | -command_name: "cinder list" |
+| | There are four instance of the "openstack-cmd" monitor:: |
+| | |
+| | monitor1: |
+| | - monitor_type: "openstack-cmd" |
+| | - command_name: "nova image-list" |
+| | monitor2: |
+| | - monitor_type: "openstack-cmd" |
+| | - command_name: "neutron router-list" |
+| | monitor3: |
+| | - monitor_type: "openstack-cmd" |
+| | - command_name: "heat stack-list" |
+| | monitor4: |
+| | - monitor_type: "openstack-cmd" |
+| | - command_name: "cinder list" |
+--------------+--------------------------------------------------------------+
|metrics | In this test case, there is one metric: |
| | 1)service_outage_time: which indicates the maximum outage |
@@ -109,9 +107,9 @@ Yardstick Test Case Description TC050
+--------------+--------------------------------------------------------------+
|step 2 | do attacker: connect the host through SSH, and then execute |
| | the turnoff network interface script with param value |
-| | specified by "interface". |
+| | specified by "{{ interface_name }}". |
| | |
-| | Result: Network interfaces will be turned down. |
+| | Result: The specified network interface will be down. |
| | |
+--------------+--------------------------------------------------------------+
|step 3 | stop monitors after a period of time specified by |
@@ -133,3 +131,4 @@ Yardstick Test Case Description TC050
| | execution problem. |
| | |
+--------------+--------------------------------------------------------------+
+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc052.rst b/docs/testing/user/userguide/opnfv_yardstick_tc052.rst
index 9514b6819..7f2be6e7d 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc052.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc052.rst
@@ -65,15 +65,16 @@ Yardstick Test Case Description TC052
| | |
| | In this case, the "operation" adds a flavor and the "result |
| | checker" checks whether ths flavor is created. Their |
-| | parameters show as follows: |
-| | operation: |
-| | -operation_type: "nova-create-flavor" |
-| | -action_parameter: |
-| | flavorconfig: "test-001 test-001 100 1 1" |
-| | result checker: |
-| | -checker_type: "check-flavor" |
-| | -expectedValue: "test-001" |
-| | -condition: "in" |
+| | parameters show as follows:: |
+| | |
+| | operation: |
+| | -operation_type: "nova-create-flavor" |
+| | -action_parameter: |
+| | flavorconfig: "test-001 test-001 100 1 1" |
+| | result checker: |
+| | -checker_type: "check-flavor" |
+| | -expectedValue: "test-001" |
+| | -condition: "in" |
+--------------+--------------------------------------------------------------+
|metrics | In this test case, there is one metric: |
| | 1)service_outage_time: which indicates the maximum outage |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc053.rst b/docs/testing/user/userguide/opnfv_yardstick_tc053.rst
index 3c6bbc628..7308babb8 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc053.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc053.rst
@@ -135,6 +135,11 @@ Yardstick Test Case Description TC053
| | the status of the specified process on the host, and restart |
| | the process if it is not running for next test cases. |
| | |
+| | Notice: This post-action uses 'lsb_release' command to check |
+| | the host linux distribution and determine the OpenStack |
+| | service name to restart the process. Lack of 'lsb_release' |
+| | on the host may cause failure to restart the process. |
+| | |
+--------------+--------------------------------------------------------------+
|test verdict | Fails only if SLA is not passed, or if there is a test case |
| | execution problem. |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc055.rst b/docs/testing/user/userguide/opnfv_yardstick_tc055.rst
index c861ca90c..25703d3fb 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc055.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc055.rst
@@ -7,7 +7,7 @@
Yardstick Test Case Description TC055
*************************************
-.. _/proc/cpuinfo: http://www.linfo.org/proc_cpuinfo.html
+.. _`/proc/cpuinfo`: http://www.linfo.org/proc_cpuinfo.html
+-----------------------------------------------------------------------------+
|Compute Capacity |
@@ -41,7 +41,7 @@ Yardstick Test Case Description TC055
| | capacity output. |
| | |
+--------------+--------------------------------------------------------------+
-|references | /proc/cpuinfo_ |
+|references | `/proc/cpuinfo`_ |
| | |
| | ETSI-NFV-TST001 |
| | |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc056.rst b/docs/testing/user/userguide/opnfv_yardstick_tc056.rst
index 01aa99ac2..cd8cc2f20 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc056.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc056.rst
@@ -10,7 +10,7 @@ Yardstick Test Case Description TC056
+-----------------------------------------------------------------------------+
|OpenStack Controller Messaging Queue Service High Availability |
-+==============+==============================================================+
++--------------+--------------------------------------------------------------+
|test case id | OPNFV_YARDSTICK_TC056:OpenStack Controller Messaging Queue |
| | Service High Availability |
+--------------+--------------------------------------------------------------+
@@ -98,7 +98,7 @@ Yardstick Test Case Description TC056
| | |
+--------------+--------------------------------------------------------------+
|configuration | This test case needs two configuration files: |
-| | 1) test case file:opnfv_yardstick_tc056.yaml |
+| | 1) test case file: opnfv_yardstick_tc056.yaml |
| | -Attackers: see above "attackers" description |
| | -waiting_time: which is the time (seconds) from the process |
| | being killed to stoping monitors the monitors |
@@ -142,6 +142,11 @@ Yardstick Test Case Description TC056
| | the status of the specified process on the host, and restart |
| | the process if it is not running for next test cases. |
| | |
+| | Notice: This post-action uses 'lsb_release' command to check |
+| | the host linux distribution and determine the OpenStack |
+| | service name to restart the process. Lack of 'lsb_release' |
+| | on the host may cause failure to restart the process. |
+| | |
+--------------+--------------------------------------------------------------+
|test verdict | Fails only if SLA is not passed, or if there is a test case |
| | execution problem. |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc057.rst b/docs/testing/user/userguide/opnfv_yardstick_tc057.rst
index 2a4ce40c0..245a58e08 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc057.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc057.rst
@@ -10,8 +10,11 @@ Yardstick Test Case Description TC057
+-----------------------------------------------------------------------------+
|OpenStack Controller Cluster Management Service High Availability |
-+==============+==============================================================+
-|test case id | |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC057_HA: OpenStack Controller Cluster |
+| | Management Service High Availability |
+| | |
+--------------+--------------------------------------------------------------+
|test purpose | This test case will verify the quorum configuration of the |
| | cluster manager(pacemaker) on controller nodes. When a |
@@ -46,17 +49,21 @@ Yardstick Test Case Description TC057
| | -host: node1 |
+--------------+--------------------------------------------------------------+
|monitors | In this test case, a kind of monitor is needed: |
+| | |
| | 1. the "openstack-cmd" monitor constantly request a specific |
| | Openstack command, which needs two parameters: |
-| | 1) monitor_type: which is used for finding the monitor class |
-| | and related scripts. It should be always set to |
-| | "openstack-cmd" for this monitor. |
-| | 2) command_name: which is the command name used for request |
| | |
-| | In this case, the command_name of monitor1 should be services|
-| | that are managed by the cluster manager. (Since rabbitmq and |
-| | haproxy are managed by pacemaker, most Openstack Services |
-| | can be used to check high availability in this case) |
+| | 1. monitor_type: which is used for finding the monitor |
+| | class and related scripts. It should be always set to |
+| | "openstack-cmd" for this monitor. |
+| | 2. command_name: which is the command name used for |
+| | request |
+| | |
+| | In this case, the command_name of monitor1 should be |
+| | services that are managed by the cluster manager. |
+| | (Since rabbitmq and haproxy are managed by pacemaker, |
+| | most Openstack Services can be used to check high |
+| | availability in this case) |
| | |
| | (e.g.) |
| | monitor1: |
@@ -155,11 +162,17 @@ Yardstick Test Case Description TC057
| | Result: The test case is passed or not. |
| | |
+--------------+------+----------------------------------+--------------------+
-|post-action | It is the action when the test cases exist. It will check the|
-| | status of the cluster messaging process(corosync) on the |
+|post-action | It is the action when the test cases exist. It will check |
+| | the status of the cluster messaging process(corosync) on the |
| | host, and restart the process if it is not running for next |
-| | test cases |
+| | test cases. |
+| | Notice: This post-action uses 'lsb_release' command to check |
+| | the host linux distribution and determine the OpenStack |
+| | service name to restart the process. Lack of 'lsb_release' |
+| | on the host may cause failure to restart the process. |
+| | |
+--------------+------+----------------------------------+--------------------+
|test verdict | Fails only if SLA is not passed, or if there is a test case |
| | execution problem. |
+| | |
+--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc058.rst b/docs/testing/user/userguide/opnfv_yardstick_tc058.rst
index fb9a4c2d1..9e8427b50 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc058.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc058.rst
@@ -10,8 +10,9 @@ Yardstick Test Case Description TC058
+-----------------------------------------------------------------------------+
|OpenStack Controller Virtual Router Service High Availability |
-+==============+==============================================================+
-|test case id | OPNFV_YARDSTICK_TC058:OpenStack Controller Virtual Router |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC058: OpenStack Controller Virtual Router |
| | Service High Availability |
+--------------+--------------------------------------------------------------+
|test purpose | This test case will verify the high availability of virtual |
@@ -108,8 +109,9 @@ Yardstick Test Case Description TC058
|conditions | with cachestat included in the image. |
| | |
+--------------+--------------------------------------------------------------+
-|step 1 | Two host VMs are booted, these two hosts are in two different|
-| | networks, the networks are connected by a virtual router |
+|step 1 | Two host VMs are booted, these two hosts are in two |
+| | different networks, the networks are connected by a virtual |
+| | router. |
| | |
+--------------+--------------------------------------------------------------+
|step 1 | start monitors: |
@@ -142,7 +144,13 @@ Yardstick Test Case Description TC058
| | Virtual machines and network created in the test case will |
| | be destoryed. |
| | |
+| | Notice: This post-action uses 'lsb_release' command to check |
+| | the host linux distribution and determine the OpenStack |
+| | service name to restart the process. Lack of 'lsb_release' |
+| | on the host may cause failure to restart the process. |
+| | |
+--------------+------+----------------------------------+--------------------+
|test verdict | Fails only if SLA is not passed, or if there is a test case |
| | execution problem. |
+| | |
+--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc063.rst b/docs/testing/user/userguide/opnfv_yardstick_tc063.rst
index a77653aa5..7b8ee06c7 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc063.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc063.rst
@@ -58,6 +58,7 @@ Yardstick Test Case Description TC063
| | * count: 15 - how many times to stat disk utilization |
| | type: int |
| | unit: na |
+| | |
| | There are default values for each above-mentioned option. |
| | Run in background with other test cases. |
| | |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc069.rst b/docs/testing/user/userguide/opnfv_yardstick_tc069.rst
index af0e64fbf..e1bfd5399 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc069.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc069.rst
@@ -9,9 +9,6 @@ Yardstick Test Case Description TC069
.. _RAMspeed: http://alasir.com/software/ramspeed/
-.. table::
- :class: longtable
-
+-----------------------------------------------------------------------------+
|Memory Bandwidth |
| |
@@ -41,7 +38,8 @@ Yardstick Test Case Description TC069
| | * SLA (optional): 7000 (MBps) min_bandwidth: The minimum |
| | amount of memory bandwidth that is accepted. |
| | * type_id: 1 - runs a specified benchmark |
-| | (by an ID number): |
+| | (by an ID number):: |
+| | |
| | 1 -- INTmark [writing] 4 -- FLOATmark [writing] |
| | 2 -- INTmark [reading] 5 -- FLOATmark [reading] |
| | 3 -- INTmem 6 -- FLOATmem |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc073.rst b/docs/testing/user/userguide/opnfv_yardstick_tc073.rst
index ad4526405..873c5c99e 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc073.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc073.rst
@@ -7,7 +7,7 @@
Yardstick Test Case Description TC073
*************************************
-.. _netperf: http://www.netperf.org/netperf/training/Netperf.html
+.. _netperf: https://hewlettpackard.github.io/netperf/
+-----------------------------------------------------------------------------+
|Throughput per NFVI node test |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc074.rst b/docs/testing/user/userguide/opnfv_yardstick_tc074.rst
index 92cd51439..8d025eecf 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc074.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc074.rst
@@ -19,16 +19,27 @@ Yardstick Test Case Description TC074
|metric | Storage performance |
| | |
+--------------+--------------------------------------------------------------+
-|test purpose | Storperf integration with yardstick. The purpose of StorPerf |
-| | is to provide a tool to measure block and object storage |
-| | performance in an NFVI. When complemented with a |
-| | characterization of typical VF storage performance |
-| | requirements, it can provide pass/fail thresholds for test, |
-| | staging, and production NFVI environments. |
-| | |
-| | The benchmarks developed for block and object storage will |
-| | be sufficiently varied to provide a good preview of expected |
-| | storage performance behavior for any type of VNF workload. |
+|test purpose | To evaluate and report on the Cinder volume performance. |
+| | |
+| | This testcase integrates with OPNFV StorPerf to measure |
+| | block performance of the underlying Cinder drivers. Many |
+| | options are supported, and even the root disk (Glance |
+| | ephemeral storage can be profiled. |
+| | |
+| | The fundamental concept of the test case is to first fill |
+| | the volumes with random data to ensure reported metrics |
+| | are indicative of continued usage and not skewed by |
+| | transitional performance while the underlying storage |
+| | driver allocates blocks. |
+| | The metrics for filling the volumes with random data |
+| | are not reported in the final results. The test also |
+| | ensures the volumes are performing at a consistent level |
+| | of performance by measuring metrics every minute, and |
+| | comparing the trend of the metrics over the run. By |
+| | evaluating the min and max values, as well as the slope of |
+| | the trend, it can make the determination that the metrics |
+| | are stable, and not fluctuating beyond industry standard |
+| | norms. |
| | |
+--------------+--------------------------------------------------------------+
|configuration | file: opnfv_yardstick_tc074.yaml |
@@ -38,7 +49,8 @@ Yardstick Test Case Description TC074
| | * public_network: "ext-net" - name of public network |
| | * volume_size: 2 - cinder volume size |
| | * block_sizes: "4096" - data block size |
-| | * queue_depths: "4" |
+| | * queue_depths: "4" - the number of simultaneous I/Os |
+| | to perform at all times |
| | * StorPerf_ip: "192.168.200.2" |
| | * query_interval: 10 - state query interval |
| | * timeout: 600 - maximum allowed job time |
@@ -50,7 +62,11 @@ Yardstick Test Case Description TC074
| | performance in an NFVI. |
| | |
| | StorPerf is delivered as a Docker container from |
-| | https://hub.docker.com/r/opnfv/storperf/tags/. |
+| | https://hub.docker.com/r/opnfv/storperf-master/tags/. |
+| | |
+| | The underlying tool used is FIO, and StorPerf supports |
+| | any FIO option in order to tailor the test to the exact |
+| | workload needed. |
| | |
+--------------+--------------------------------------------------------------+
|references | Storperf_ |
@@ -75,33 +91,56 @@ Yardstick Test Case Description TC074
| | * workload=[workload module] |
| | If not specified, the default is to run all workloads. The |
| | workload types are: |
+| | |
| | - rs: 100% Read, sequential data |
| | - ws: 100% Write, sequential data |
| | - rr: 100% Read, random access |
| | - wr: 100% Write, random access |
| | - rw: 70% Read / 30% write, random access |
-| | * nossd: Do not perform SSD style preconditioning. |
-| | * nowarm: Do not perform a warmup prior to |
+| | |
| | measurements. |
+| | |
+| | * workloads={json maps} |
+| | This parameter supercedes the workload and calls the V2.0 |
+| | API in StorPerf. It allows for greater control of the |
+| | parameters to be passed to FIO. For example, running a |
+| | random read/write with a mix of 90% read and 10% write |
+| | would be expressed as follows: |
+| | {"9010randrw": {"rw":"randrw","rwmixread": "90"}} |
+| | Note: This must be passed in as a string, so don't forget |
+| | to escape or otherwise properly deal with the quotes. |
+| | |
| | * report= [job_id] |
| | Query the status of the supplied job_id and report on |
| | metrics. If a workload is supplied, will report on only |
| | that subset. |
+| | * availability_zone: Specify the availability zone which |
+| | the stack will use to create instances. |
+| | * volume_type: |
+| | Cinder volumes can have different types, for example |
+| | encrypted vs. not encrypted. |
+| | To be able to profile the difference between the two. |
+| | * subnet_CIDR: Specify subnet CIDR of private network |
+| | * stack_name: Specify the name of the stack that will be |
+| | created, the default: "StorperfAgentGroup" |
+| | * volume_count: Specify the number of volumes per |
+| | virtual machines |
| | |
| | There are default values for each above-mentioned option. |
| | |
+--------------+--------------------------------------------------------------+
|pre-test | If you do not have an Ubuntu 14.04 image in Glance, you will |
-|conditions | need to add one. A key pair for launching agents is also |
-| | required. |
+|conditions | need to add one. |
| | |
| | Storperf is required to be installed in the environment. |
| | There are two possible methods for Storperf installation: |
-| | Run container on Jump Host |
-| | Run container in a VM |
+| | |
+| | - Run container on Jump Host |
+| | - Run container in a VM |
| | |
| | Running StorPerf on Jump Host |
| | Requirements: |
+| | |
| | - Docker must be installed |
| | - Jump Host must have access to the OpenStack Controller |
| | API |
@@ -112,6 +151,7 @@ Yardstick Test Case Description TC074
| | |
| | Running StorPerf in a VM |
| | Requirements: |
+| | |
| | - VM has docker installed |
| | - VM has OpenStack Controller credentials and can |
| | communicate with the Controller API |
@@ -126,10 +166,21 @@ Yardstick Test Case Description TC074
|test sequence | description and expected result |
| | |
+--------------+--------------------------------------------------------------+
-|step 1 | The Storperf is installed and Ubuntu 14.04 image is stored |
-| | in glance. TC is invoked and logs are produced and stored. |
+|step 1 | Yardstick calls StorPerf to create the heat stack with the |
+| | number of VMs and size of Cinder volumes specified. The |
+| | VMs will be on their own private subnet, and take floating |
+| | IP addresses from the specified public network. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Yardstick calls StorPerf to fill all the volumes with |
+| | random data. |
| | |
-| | Result: Logs are stored. |
++--------------+--------------------------------------------------------------+
+|step 3 | Yardstick calls StorPerf to perform the series of tests |
+| | specified by the workload, queue depths and block sizes. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | Yardstick calls StorPerf to delete the stack it created. |
| | |
+--------------+--------------------------------------------------------------+
|test verdict | None. Storage performance results are fetched and stored. |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc081.rst b/docs/testing/user/userguide/opnfv_yardstick_tc081.rst
index 90af8a382..df2192313 100644
--- a/docs/testing/user/userguide/opnfv_yardstick_tc081.rst
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc081.rst
@@ -4,7 +4,7 @@
.. (c) OPNFV, Huawei Technologies Co.,Ltd and others.
*************************************
-Yardstick Test Case Description TC080
+Yardstick Test Case Description TC081
*************************************
.. _cirros-image: https://download.cirros-cloud.net
@@ -14,14 +14,14 @@ Yardstick Test Case Description TC080
|Network Latency |
| |
+--------------+--------------------------------------------------------------+
-|test case id | OPNFV_YARDSTICK_TC081_NETWORK_LATENCY_BETWEEN_CONTAINER_AND_ |
-| | VM |
+|test case id | OPNFV_YARDSTICK_TC081_NETWORK_LATENCY_BETWEEN_CONTAINER_AND |
+| | _VM |
| | |
+--------------+--------------------------------------------------------------+
|metric | RTT (Round Trip Time) |
| | |
+--------------+--------------------------------------------------------------+
-|test purpose | The purpose of TC080 is to do a basic verification that |
+|test purpose | The purpose of TC081 is to do a basic verification that |
| | network latency is within acceptable boundaries when packets |
| | travel between a containers and a VM. |
| | |
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc084.rst b/docs/testing/user/userguide/opnfv_yardstick_tc084.rst
new file mode 100644
index 000000000..b3d44c4bf
--- /dev/null
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc084.rst
@@ -0,0 +1,141 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Huawei Technologies Co.,Ltd and others.
+
+*************************************
+Yardstick Test Case Description TC084
+*************************************
+
+.. _spec_cpu_2006: https://www.spec.org/cpu2006/
+
++-----------------------------------------------------------------------------+
+|Compute Performance |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC084_SPEC CPU 2006 FOR VM |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | compute-intensive performance |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | The purpose of TC084 is to evaluate the IaaS compute |
+| | performance by using SPEC CPU 2006 benchmark. The SPEC CPU |
+| | 2006 benchmark has several different ways to measure |
+| | computer performance. One way is to measure how fast the |
+| | computer completes a single task; this is called a speed |
+| | measurement. Another way is to measure how many tasks |
+| | computer can accomplish in a certain amount of time; this is |
+| | called a throughput, capacity or rate measurement. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | SPEC CPU 2006 |
+| | |
+| | The SPEC CPU 2006 benchmark is SPEC's industry-standardized, |
+| | CPU-intensive benchmark suite, stressing a system's |
+| | processor, memory subsystem and compiler. This benchmark |
+| | suite includes the SPECint benchmarks and the SPECfp |
+| | benchmarks. The SPECint 2006 benchmark contains 12 different |
+| | benchmark tests and the SPECfp 2006 benchmark contains 19 |
+| | different benchmark tests. |
+| | |
+| | SPEC CPU 2006 is not always part of a Linux distribution. |
+| | SPEC requires that users purchase a license and agree with |
+| | their terms and conditions. For this test case, users must |
+| | manually download cpu2006-1.2.iso from the SPEC website and |
+| | save it under the yardstick/resources folder (e.g. /home/ |
+| | opnfv/repos/yardstick/yardstick/resources/cpu2006-1.2.iso) |
+| | SPEC CPU® 2006 benchmark is available for purchase via the |
+| | SPEC order form (https://www.spec.org/order.html). |
+| | |
++--------------+--------------------------------------------------------------+
+|test | This test case uses SPEC CPU 2006 benchmark to measure |
+|description | compute-intensive performance of VMs. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | file: opnfv_yardstick_tc084.yaml |
+| | |
+| | benchmark_subset is set to int. |
+| | |
+| | SLA is not available in this test case. |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | Test can be configured with different: |
+| | |
+| | * benchmark_subset - a subset of SPEC CPU 2006 benchmarks |
+| | to run; |
+| | * SPECint_benchmark - a SPECint benchmark to run; |
+| | * SPECint_benchmark - a SPECfp benchmark to run; |
+| | * output_format - desired report format; |
+| | * runspec_config - SPEC CPU 2006 config file provided to |
+| | the runspec binary; |
+| | * runspec_iterations - the number of benchmark iterations |
+| | to execute. For a reportable run, must be 3; |
+| | * runspec_tune - tuning to use (base, peak, or all). For a |
+| | reportable run, must be either base or all. Reportable |
+| | runs do base first, then (optionally) peak; |
+| | * runspec_size - size of input data to run (test, train, or |
+| | ref). Reportable runs ensure that your binaries can |
+| | produce correct results with the test and train workloads |
+| | |
++--------------+--------------------------------------------------------------+
+|usability | This test case is used for executing SPEC CPU 2006 benchmark |
+| | on virtual machines. The SPECint 2006 benchmark takes |
+| | approximately 5 hours. (The time may vary due to different |
+| | VM cpu configurations) |
+| | |
++--------------+--------------------------------------------------------------+
+|references | spec_cpu_2006_ |
+| | |
+| | ETSI-NFV-TST001 |
+| | |
++--------------+--------------------------------------------------------------+
+|pre-test | To run and install SPEC CPU 2006, the following are |
+|conditions | required: |
+| | |
+| | * For SPECint 2006: Both C99 and C++98 compilers are |
+| | installed in VM images; |
+| | * For SPECfp 2006: All three of C99, C++98 and Fortran-95 |
+| | compilers installed in VM images; |
+| | * At least 4GB of disk space availabile on VM. |
+| | |
+| | gcc 4.8.* and g++ 4.8.* version have been tested in Ubuntu |
+| | 14.04, Ubuntu 16.04 and Redhat Enterprise Linux 7.4 image. |
+| | Higher gcc and g++ version may cause compiling error. |
+| | |
+| | For more SPEC CPU 2006 dependencies please visit |
+| | (https://www.spec.org/cpu2006/Docs/techsupport.html) |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | cpu2006-1.2.iso has been saved under the yardstick/resources |
+| | folder (e.g. /home/opnfv/repos/yardstick/yardstick/resources |
+| | /cpu2006-1.2.iso). Additionally, to use your custom runspec |
+| | config file you can save it under the yardstick/resources/ |
+| | files folder and specify the config file name in the |
+| | runspec_config parameter. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Upload SPEC CPU 2006 ISO to the target VM using scp and |
+| | install SPEC CPU 2006. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | Connect to the target server using SSH. |
+| | If custom runspec config file is used, copy this file from |
+| | yardstick to the target VM via the SSH tunnel. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | SPEC CPU 2006 benchmark is invoked and SPEC CPU 2006 metrics |
+| | are generated. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 5 | Text, HTML, CSV, PDF, and Configuration file outputs for the |
+| | SPEC CPU 2006 metrics are fetched from the VM and stored |
+| | under /tmp/result folder. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | None. SPEC CPU 2006 results are collected and stored. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc087.rst b/docs/testing/user/userguide/opnfv_yardstick_tc087.rst
new file mode 100644
index 000000000..c11252606
--- /dev/null
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc087.rst
@@ -0,0 +1,191 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Ericsson and others.
+
+*************************************
+Yardstick Test Case Description TC087
+*************************************
+
++-----------------------------------------------------------------------------+
+|SDN Controller resilience in non-HA configuration |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC087: SDN controller resilience in |
+| | non-HA configuration |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | This test validates that network data plane services are |
+| | highly available in the event of an SDN Controller failure, |
+| | even if the SDN controller is deployed in a non-HA |
+| | configuration. Specifically, the test verifies that |
+| | existing data plane connectivity is not impacted, i.e. all |
+| | configured network services such as DHCP, ARP, L2, |
+| | L3 Security Groups should continue to operate |
+| | between the existing VMs while the SDN controller is |
+| | offline or rebooting. |
+| | |
+| | The test also validates that new network service operations |
+| | (creating a new VM in the existing L2/L3 network or in a new |
+| | network, etc.) are operational after the SDN controller |
+| | has recovered from a failure. |
+| | |
++--------------+--------------------------------------------------------------+
+|test method | This test case fails the SDN controller service running |
+| | on the OpenStack controller node, then checks if already |
+| | configured DHCP/ARP/L2/L3/SNAT connectivity is not |
+| | impacted between VMs and the system is able to execute |
+| | new virtual network operations once the SDN controller |
+| | is restarted and has fully recovered |
+| | |
++--------------+--------------------------------------------------------------+
+|attackers | In this test case, an attacker called “kill-process” is |
+| | needed. This attacker includes three parameters: |
+| | |
+| | 1. fault_type: which is used for finding the attacker's |
+| | scripts. It should be set to 'kill-process' in this test |
+| | |
+| | 2. process_name: should be set to the name of the SDN |
+| | controller process |
+| | |
+| | 3. host: which is the name of a control node where the |
+| | SDN controller process is running |
+| | |
+| | e.g. -fault_type: "kill-process" |
+| | -process_name: "opendaylight" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|monitors | This test case utilizes two monitors of type "ip-status" |
+| | and one monitor of type "process" to track the following |
+| | conditions: |
+| | |
+| | 1. "ping_same_network_l2": monitor ICMP traffic between |
+| | VMs in the same Neutron network |
+| | |
+| | 2. "ping_external_snat": monitor ICMP traffic from VMs to |
+| | an external host on the Internet to verify SNAT |
+| | functionality. |
+| | |
+| | 3. "SDN controller process monitor": a monitor checking the |
+| | state of a specified SDN controller process. It measures |
+| | the recovery time of the given process. |
+| | |
+| | Monitors of type "ip-status" use the "ping" utility to |
+| | verify reachability of a given target IP. |
+| | |
++--------------+--------------------------------------------------------------+
+|operations | In this test case, the following operations are needed: |
+| | |
+| | 1. "nova-create-instance-in_network": create a VM instance |
+| | in one of the existing Neutron network. |
+| | |
++--------------+--------------------------------------------------------------+
+|metrics | In this test case, there are two metrics: |
+| | |
+| | 1. process_recover_time: which indicates the maximun |
+| | time (seconds) from the process being killed to |
+| | recovered |
+| | |
+| | 2. packet_drop: measure the packets that have been dropped |
+| | by the monitors using pktgen. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Developed by the project. Please see folder: |
+| | "yardstick/benchmark/scenarios/availability/ha_tools" |
+| | |
++--------------+--------------------------------------------------------------+
+|references | none |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | This test case needs two configuration files: |
+| | |
+| | 1. test case file: opnfv_yardstick_tc087.yaml |
+| | |
+| | - Attackers: see above “attackers” discription |
+| | - waiting_time: which is the time (seconds) from the |
+| | process being killed to stoping monitors the monitors |
+| | - Monitors: see above “monitors” discription |
+| | - SLA: see above “metrics” discription |
+| | |
+| | 2. POD file: pod.yaml The POD configuration should record |
+| | on pod.yaml first. the “host” item in this test case |
+| | will use the node name in the pod.yaml. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | Description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|pre-action | 1. The OpenStack cluster is set up with a single SDN |
+| | controller in a non-HA configuration. |
+| | |
+| | 2. One or more Neutron networks are created with two or |
+| | more VMs attached to each of the Neutron networks. |
+| | |
+| | 3. The Neutron networks are attached to a Neutron router |
+| | which is attached to an external network towards the |
+| | DCGW. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Start IP connectivity monitors: |
+| | 1. Check the L2 connectivity between the VMs in the same |
+| | Neutron network. |
+| | |
+| | 2. Check connectivity from one VM to an external host on |
+| | the Internet to verify SNAT functionality. |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Start attacker: |
+| | SSH connect to the VIM node and kill the SDN controller |
+| | process |
+| | |
+| | Result: the SDN controller service will be shutdown |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | Verify the results of the IP connectivity monitors. |
+| | |
+| | Result: The outage_time metric reported by the monitors |
+| | is zero. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | Restart the SDN controller. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 5 | Create a new VM in the existing Neutron network |
+| | |
++--------------+--------------------------------------------------------------+
+|step 6 | Verify connectivity between VMs as follows: |
+| | 1. Check the L2 connectivity between the previously |
+| | existing VM and the newly created VM on the same |
+| | Neutron network by sending ICMP messages |
+| | |
++--------------+--------------------------------------------------------------+
+|step 7 | Stop IP connectivity monitors after a period of time |
+| | specified by “waiting_time” |
+| | |
+| | Result: The monitor info will be aggregated |
+| | |
++--------------+--------------------------------------------------------------+
+|step 8 | Verify the IP connectivity monitor results |
+| | |
+| | Result: IP connectivity monitor should not have any packet |
+| | drop failures reported |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | This test fails if the SLAs are not met or if there is a |
+| | test case execution problem. The SLAs are define as follows |
+| | for this test: |
+| | |
+| | * SDN Controller recovery |
+| | |
+| | * process_recover_time <= 30 sec |
+| | |
+| | * no impact on data plane connectivity during SDN |
+| | controller failure and recovery. |
+| | |
+| | * packet_drop == 0 |
+| | |
++--------------+--------------------------------------------------------------+
+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc088.rst b/docs/testing/user/userguide/opnfv_yardstick_tc088.rst
new file mode 100644
index 000000000..2423a6b31
--- /dev/null
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc088.rst
@@ -0,0 +1,129 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Yin Kanglin and others.
+.. 14_ykl@tongji.edu.cn
+
+*************************************
+Yardstick Test Case Description TC088
+*************************************
+
++-----------------------------------------------------------------------------+
+|Control Node Openstack Service High Availability - Nova Scheduler |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC088: Control node Openstack service down - |
+| | nova scheduler |
++--------------+--------------------------------------------------------------+
+|test purpose | This test case will verify the high availability of the |
+| | compute scheduler service provided by OpenStack (nova- |
+| | scheduler) on control node. |
+| | |
++--------------+--------------------------------------------------------------+
+|test method | This test case kills the processes of nova-scheduler service |
+| | on a selected control node, then checks whether the request |
+| | of the related OpenStack command is OK and the killed |
+| | processes are recovered. |
+| | |
++--------------+--------------------------------------------------------------+
+|attackers | In this test case, an attacker called "kill-process" is |
+| | needed. This attacker includes three parameters: |
+| | 1) fault_type: which is used for finding the attacker's |
+| | scripts. It should be always set to "kill-process" in this |
+| | test case. |
+| | 2) process_name: which is the process name of the specified |
+| | OpenStack service. If there are multiple processes use the |
+| | same name on the host, all of them are killed by this |
+| | attacker. |
+| | In this case. This parameter should always set to "nova- |
+| | scheduler". |
+| | 3) host: which is the name of a control node being attacked. |
+| | |
+| | e.g. |
+| | -fault_type: "kill-process" |
+| | -process_name: "nova-scheduler" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|monitors | In this test case, one kind of monitor is needed: |
+| | 1. the "process" monitor check whether a process is running |
+| | on a specific node, which needs three parameters: |
+| | 1) monitor_type: which used for finding the monitor class and|
+| | related scripts. It should be always set to "process" |
+| | for this monitor. |
+| | 2) process_name: which is the process name for monitor |
+| | 3) host: which is the name of the node running the process |
+| | |
+| | e.g. |
+| | monitor: |
+| | -monitor_type: "process" |
+| | -process_name: "nova-scheduler" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|operations | In this test case, the following operations are needed: |
+| | 1. "nova-create-instance": create a VM instance to check |
+| | whether the nova-scheduler works normally. |
+| | |
++--------------+--------------------------------------------------------------+
+|metrics | In this test case, there are one metric: |
+| | 1)process_recover_time: which indicates the maximum time |
+| | (seconds) from the process being killed to recovered |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Developed by the project. Please see folder: |
+| | "yardstick/benchmark/scenarios/availability/ha_tools" |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI NFV REL001 |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | This test case needs two configuration files: |
+| | 1) test case file: opnfv_yardstick_tc088.yaml |
+| | -Attackers: see above "attackers" description |
+| | -waiting_time: which is the time (seconds) from the process |
+| | being killed to stopping monitors the monitors |
+| | -Monitors: see above "monitors" description |
+| | -SLA: see above "metrics" description |
+| | |
+| | 2)POD file: pod.yaml |
+| | The POD configuration should record on pod.yaml first. |
+| | the "host" item in this test case will use the node name in |
+| | the pod.yaml. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | do attacker: connect the host through SSH, and then execute |
+| | the kill process script with param value specified by |
+| | "process_name" |
+| | |
+| | Result: Process will be killed. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | start monitors: |
+| | each monitor will run with independently process |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | create a new instance to check whether the nova scheduler |
+| | works normally. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | stop the monitor after a period of time specified by |
+| | "waiting_time" |
+| | |
+| | Result: The monitor info will be aggregated. |
+| | |
++--------------+--------------------------------------------------------------+
+|post-action | It is the action when the test cases exist. It will check the|
+| | status of the specified process on the host, and restart the |
+| | process if it is not running for next test cases |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | Fails only if SLA is not passed, or if there is a test case |
+| | execution problem. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc089.rst b/docs/testing/user/userguide/opnfv_yardstick_tc089.rst
new file mode 100644
index 000000000..0a8b2570b
--- /dev/null
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc089.rst
@@ -0,0 +1,129 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Yin Kanglin and others.
+.. 14_ykl@tongji.edu.cn
+
+*************************************
+Yardstick Test Case Description TC089
+*************************************
+
++-----------------------------------------------------------------------------+
+|Control Node Openstack Service High Availability - Nova Conductor |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC089: Control node Openstack service down - |
+| | nova conductor |
++--------------+--------------------------------------------------------------+
+|test purpose | This test case will verify the high availability of the |
+| | compute database proxy service provided by OpenStack (nova- |
+| | conductor) on control node. |
+| | |
++--------------+--------------------------------------------------------------+
+|test method | This test case kills the processes of nova-conductor service |
+| | on a selected control node, then checks whether the request |
+| | of the related OpenStack command is OK and the killed |
+| | processes are recovered. |
+| | |
++--------------+--------------------------------------------------------------+
+|attackers | In this test case, an attacker called "kill-process" is |
+| | needed. This attacker includes three parameters: |
+| | 1) fault_type: which is used for finding the attacker's |
+| | scripts. It should be always set to "kill-process" in this |
+| | test case. |
+| | 2) process_name: which is the process name of the specified |
+| | OpenStack service. If there are multiple processes use the |
+| | same name on the host, all of them are killed by this |
+| | attacker. |
+| | In this case. This parameter should always set to "nova- |
+| | conductor". |
+| | 3) host: which is the name of a control node being attacked. |
+| | |
+| | e.g. |
+| | -fault_type: "kill-process" |
+| | -process_name: "nova-conductor" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|monitors | In this test case, one kind of monitor is needed: |
+| | 1. the "process" monitor check whether a process is running |
+| | on a specific node, which needs three parameters: |
+| | 1) monitor_type: which used for finding the monitor class and|
+| | related scripts. It should be always set to "process" |
+| | for this monitor. |
+| | 2) process_name: which is the process name for monitor |
+| | 3) host: which is the name of the node running the process |
+| | |
+| | e.g. |
+| | monitor: |
+| | -monitor_type: "process" |
+| | -process_name: "nova-conductor" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|operations | In this test case, the following operations are needed: |
+| | 1. "nova-create-instance": create a VM instance to check |
+| | whether the nova-conductor works normally. |
+| | |
++--------------+--------------------------------------------------------------+
+|metrics | In this test case, there are one metric: |
+| | 1)process_recover_time: which indicates the maximum time |
+| | (seconds) from the process being killed to recovered |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Developed by the project. Please see folder: |
+| | "yardstick/benchmark/scenarios/availability/ha_tools" |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI NFV REL001 |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | This test case needs two configuration files: |
+| | 1) test case file: opnfv_yardstick_tc089.yaml |
+| | -Attackers: see above "attackers" description |
+| | -waiting_time: which is the time (seconds) from the process |
+| | being killed to stopping monitors the monitors |
+| | -Monitors: see above "monitors" description |
+| | -SLA: see above "metrics" description |
+| | |
+| | 2)POD file: pod.yaml |
+| | The POD configuration should record on pod.yaml first. |
+| | the "host" item in this test case will use the node name in |
+| | the pod.yaml. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | do attacker: connect the host through SSH, and then execute |
+| | the kill process script with param value specified by |
+| | "process_name" |
+| | |
+| | Result: Process will be killed. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | start monitors: |
+| | each monitor will run with independently process |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | create a new instance to check whether the nova conductor |
+| | works normally. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | stop the monitor after a period of time specified by |
+| | "waiting_time" |
+| | |
+| | Result: The monitor info will be aggregated. |
+| | |
++--------------+--------------------------------------------------------------+
+|post-action | It is the action when the test cases exist. It will check the|
+| | status of the specified process on the host, and restart the |
+| | process if it is not running for next test cases |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | Fails only if SLA is not passed, or if there is a test case |
+| | execution problem. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc090.rst b/docs/testing/user/userguide/opnfv_yardstick_tc090.rst
new file mode 100644
index 000000000..1f8747b2b
--- /dev/null
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc090.rst
@@ -0,0 +1,151 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Yin Kanglin and others.
+.. 14_ykl@tongji.edu.cn
+
+*************************************
+Yardstick Test Case Description TC090
+*************************************
+
++-----------------------------------------------------------------------------+
+|Control Node OpenStack Service High Availability - Database Instances |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC090: Control node OpenStack service down - |
+| | database instances |
++--------------+--------------------------------------------------------------+
+|test purpose | This test case will verify the high availability of the |
+| | data base instances used by OpenStack (mysql) on control |
+| | node. |
+| | |
++--------------+--------------------------------------------------------------+
+|test method | This test case kills the processes of database service on a |
+| | selected control node, then checks whether the request of |
+| | the related OpenStack command is OK and the killed processes |
+| | are recovered. |
+| | |
++--------------+--------------------------------------------------------------+
+|attackers | In this test case, an attacker called "kill-process" is |
+| | needed. This attacker includes three parameters: |
+| | 1) fault_type: which is used for finding the attacker's |
+| | scripts. It should be always set to "kill-process" in this |
+| | test case. |
+| | 2) process_name: which is the process name of the specified |
+| | OpenStack service. If there are multiple processes use the |
+| | same name on the host, all of them are killed by this |
+| | attacker. |
+| | In this case. This parameter should always set to the name |
+| | of the database service of OpenStack. |
+| | 3) host: which is the name of a control node being attacked. |
+| | |
+| | e.g. |
+| | -fault_type: "kill-process" |
+| | -process_name: "mysql" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|monitors | In this test case, two kinds of monitor are needed: |
+| | 1. the "openstack-cmd" monitor constantly request a specific |
+| | Openstack command, which needs two parameters: |
+| | 1) monitor_type: which is used for finding the monitor class |
+| | and related scritps. It should be always set to |
+| | "openstack-cmd" for this monitor. |
+| | 2) command_name: which is the command name used for request. |
+| | In this case, the command name should be neutron related |
+| | commands. |
+| | |
+| | 2. the "process" monitor check whether a process is running |
+| | on a specific node, which needs three parameters: |
+| | 1) monitor_type: which used for finding the monitor class and|
+| | related scripts. It should be always set to "process" |
+| | for this monitor. |
+| | 2) process_name: which is the process name for monitor |
+| | 3) host: which is the name of the node running the process |
+| | |
+| | The examples of monitors show as follows, there are four |
+| | instance of the "openstack-cmd" monitor, in order to check |
+| | the database connection of different OpenStack components. |
+| | |
+| | monitor1: |
+| | -monitor_type: "openstack-cmd" |
+| | -api_name: "openstack image list" |
+| | monitor2: |
+| | -monitor_type: "openstack-cmd" |
+| | -api_name: "openstack router list" |
+| | monitor3: |
+| | -monitor_type: "openstack-cmd" |
+| | -api_name: "openstack stack list" |
+| | monitor4: |
+| | -monitor_type: "openstack-cmd" |
+| | -api_name: "openstack volume list" |
+| | monitor5: |
+| | -monitor_type: "process" |
+| | -process_name: "mysql" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|metrics | In this test case, there are two metrics: |
+| | 1)service_outage_time: which indicates the maximum outage |
+| | time (seconds) of the specified OpenStack command request. |
+| | 2)process_recover_time: which indicates the maximum time |
+| | (seconds) from the process being killed to recovered |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Developed by the project. Please see folder: |
+| | "yardstick/benchmark/scenarios/availability/ha_tools" |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI NFV REL001 |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | This test case needs two configuration files: |
+| | 1) test case file: opnfv_yardstick_tc090.yaml |
+| | -Attackers: see above "attackers" description |
+| | -waiting_time: which is the time (seconds) from the process |
+| | being killed to stopping monitors the monitors |
+| | -Monitors: see above "monitors" description |
+| | -SLA: see above "metrics" description |
+| | |
+| | 2)POD file: pod.yaml |
+| | The POD configuration should record on pod.yaml first. |
+| | the "host" item in this test case will use the node name in |
+| | the pod.yaml. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | start monitors: |
+| | each monitor will run with independently process |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | do attacker: connect the host through SSH, and then execute |
+| | the kill process script with param value specified by |
+| | "process_name" |
+| | |
+| | Result: Process will be killed. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | stop monitors after a period of time specified by |
+| | "waiting_time" |
+| | |
+| | Result: The monitor info will be aggregated. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | verify the SLA |
+| | |
+| | Result: The test case is passed or not. |
+| | |
++--------------+--------------------------------------------------------------+
+|post-action | It is the action when the test cases exist. It will check the|
+| | status of the specified process on the host, and restart the |
+| | process if it is not running for next test cases |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | Fails only if SLA is not passed, or if there is a test case |
+| | execution problem. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc091.rst b/docs/testing/user/userguide/opnfv_yardstick_tc091.rst
new file mode 100644
index 000000000..8e89b6425
--- /dev/null
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc091.rst
@@ -0,0 +1,138 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Yin Kanglin and others.
+.. 14_ykl@tongji.edu.cn
+
+*************************************
+Yardstick Test Case Description TC091
+*************************************
+
++-----------------------------------------------------------------------------+
+|Control Node Openstack Service High Availability - Heat Api |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC091: Control node OpenStack service down - |
+| | heat api |
++--------------+--------------------------------------------------------------+
+|test purpose | This test case will verify the high availability of the |
+| | orchestration service provided by OpenStack (heat-api) on |
+| | control node. |
+| | |
++--------------+--------------------------------------------------------------+
+|test method | This test case kills the processes of heat-api service on a |
+| | selected control node, then checks whether the request of |
+| | the related OpenStack command is OK and the killed processes |
+| | are recovered. |
+| | |
++--------------+--------------------------------------------------------------+
+|attackers | In this test case, an attacker called "kill-process" is |
+| | needed. This attacker includes three parameters: |
+| | 1) fault_type: which is used for finding the attacker's |
+| | scripts. It should be always set to "kill-process" in this |
+| | test case. |
+| | 2) process_name: which is the process name of the specified |
+| | OpenStack service. If there are multiple processes use the |
+| | same name on the host, all of them are killed by this |
+| | attacker. |
+| | In this case. This parameter should always set to "heat-api".|
+| | 3) host: which is the name of a control node being attacked. |
+| | |
+| | e.g. |
+| | -fault_type: "kill-process" |
+| | -process_name: "heat-api" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|monitors | In this test case, two kinds of monitor are needed: |
+| | 1. the "openstack-cmd" monitor constantly request a specific |
+| | OpenStack command, which needs two parameters: |
+| | 1) monitor_type: which is used for finding the monitor class |
+| | and related scripts. It should be always set to |
+| | "openstack-cmd" for this monitor. |
+| | 2) command_name: which is the command name used for request. |
+| | In this case, the command name should be neutron related |
+| | commands. |
+| | |
+| | 2. the "process" monitor check whether a process is running |
+| | on a specific node, which needs three parameters: |
+| | 1) monitor_type: which used for finding the monitor class and|
+| | related scripts. It should be always set to "process" |
+| | for this monitor. |
+| | 2) process_name: which is the process name for monitor |
+| | 3) host: which is the name of the node running the process |
+| | |
+| | e.g. |
+| | monitor1: |
+| | -monitor_type: "openstack-cmd" |
+| | -command_name: "heat stack list" |
+| | monitor2: |
+| | -monitor_type: "process" |
+| | -process_name: "heat-api" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|metrics | In this test case, there are two metrics: |
+| | 1)service_outage_time: which indicates the maximum outage |
+| | time (seconds) of the specified OpenStack command request. |
+| | 2)process_recover_time: which indicates the maximum time |
+| | (seconds) from the process being killed to recovered |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Developed by the project. Please see folder: |
+| | "yardstick/benchmark/scenarios/availability/ha_tools" |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI NFV REL001 |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | This test case needs two configuration files: |
+| | 1) test case file: opnfv_yardstick_tc091.yaml |
+| | -Attackers: see above "attackers" description |
+| | -waiting_time: which is the time (seconds) from the process |
+| | being killed to the monitor stopped |
+| | -Monitors: see above "monitors" description |
+| | -SLA: see above "metrics" description |
+| | |
+| | 2)POD file: pod.yaml |
+| | The POD configuration should record on pod.yaml first. |
+| | the "host" item in this test case will use the node name in |
+| | the pod.yaml. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | start monitors: |
+| | each monitor will run with independently process |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | do attacker: connect the host through SSH, and then execute |
+| | the kill process script with param value specified by |
+| | "process_name" |
+| | |
+| | Result: Process will be killed. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | stop monitors after a period of time specified by |
+| | "waiting_time" |
+| | |
+| | Result: The monitor info will be aggregated. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | verify the SLA |
+| | |
+| | Result: The test case is passed or not. |
+| | |
++--------------+--------------------------------------------------------------+
+|post-action | It is the action when the test cases exist. It will check the|
+| | status of the specified process on the host, and restart the |
+| | process if it is not running for next test cases |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | Fails only if SLA is not passed, or if there is a test case |
+| | execution problem. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc092.rst b/docs/testing/user/userguide/opnfv_yardstick_tc092.rst
new file mode 100644
index 000000000..9c833fa23
--- /dev/null
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc092.rst
@@ -0,0 +1,201 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Ericsson and others.
+
+*************************************
+Yardstick Test Case Description TC092
+*************************************
+
++-----------------------------------------------------------------------------+
+|SDN Controller resilience in HA configuration |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC092: SDN controller resilience and high |
+| | availability HA configuration |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | This test validates SDN controller node high availability by |
+| | verifying there is no impact on the data plane connectivity |
+| | when one SDN controller fails in a HA configuration, |
+| | i.e. all existing configured network services DHCP, ARP, L2, |
+| | L3VPN, Security Groups should continue to operate |
+| | between the existing VMs while one SDN controller instance |
+| | is offline and rebooting. |
+| | |
+| | The test also validates that network service operations such |
+| | as creating a new VM in an existing or new L2 network |
+| | network remain operational while one instance of the |
+| | SDN controller is offline and recovers from the failure. |
+| | |
++--------------+--------------------------------------------------------------+
+|test method | This test case: |
+| | 1. fails one instance of a SDN controller cluster running |
+| | in a HA configuration on the OpenStack controller node |
+| | |
+| | 2. checks if already configured L2 connectivity between |
+| | existing VMs is not impacted |
+| | |
+| | 3. verifies that the system never loses the ability to |
+| | execute virtual network operations, even when the |
+| | failed SDN Controller is still recovering |
+| | |
++--------------+--------------------------------------------------------------+
+|attackers | In this test case, an attacker called “kill-process” is |
+| | needed. This attacker includes three parameters: |
+| | |
+| | 1. ``fault_type``: which is used for finding the attacker's |
+| | scripts. It should be set to 'kill-process' in this test |
+| | |
+| | 2. ``process_name``: should be set to sdn controller |
+| | process |
+| | |
+| | 3. ``host``: which is the name of a control node where |
+| | opendaylight process is running |
+| | |
+| | example: |
+| | - ``fault_type``: “kill-process” |
+| | - ``process_name``: “opendaylight-karaf” (TBD) |
+| | - ``host``: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|monitors | In this test case, the following monitors are needed |
+| | 1. ``ping_same_network_l2``: monitor pinging traffic |
+| | between the VMs in same neutron network |
+| | |
+| | 2. ``ping_external_snat``: monitor ping traffic from VMs to |
+| | external destinations (e.g. google.com) |
+| | |
+| | 3. ``SDN controller process monitor``: a monitor checking |
+| | the state of a specified SDN controller process. It |
+| | measures the recovery time of the given process. |
+| | |
++--------------+--------------------------------------------------------------+
+|operations | In this test case, the following operations are needed: |
+| | 1. "nova-create-instance-in_network": create a VM instance |
+| | in one of the existing neutron network. |
+| | |
++--------------+--------------------------------------------------------------+
+|metrics | In this test case, there are two metrics: |
+| | 1. process_recover_time: which indicates the maximun |
+| | time (seconds) from the process being killed to |
+| | recovered |
+| | |
+| | 2. packet_drop: measure the packets that have been dropped |
+| | by the monitors using pktgen. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Developed by the project. Please see folder: |
+| | "yardstick/benchmark/scenarios/availability/ha_tools" |
+| | |
++--------------+--------------------------------------------------------------+
+|references | TBD |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | This test case needs two configuration files: |
+| | 1. test case file: opnfv_yardstick_tc092.yaml |
+| | |
+| | - Attackers: see above “attackers” discription |
+| | - Monitors: see above “monitors” discription |
+| | |
+| | - waiting_time: which is the time (seconds) from the |
+| | process being killed to stoping monitors the |
+| | monitors |
+| | |
+| | - SLA: see above “metrics” discription |
+| | |
+| | 2. POD file: pod.yaml The POD configuration should record |
+| | on pod.yaml first. the “host” item in this test case |
+| | will use the node name in the pod.yaml. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | Description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|pre-action | 1. The OpenStack cluster is set up with an SDN controller |
+| | running in a three node cluster configuration. |
+| | |
+| | 2. One or more neutron networks are created with two or |
+| | more VMs attached to each of the neutron networks. |
+| | |
+| | 3. The neutron networks are attached to a neutron router |
+| | which is attached to an external network the towards |
+| | DCGW. |
+| | |
+| | 4. The master node of SDN controller cluster is known. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Start ip connectivity monitors: |
+| | 1. Check the L2 connectivity between the VMs in the same |
+| | neutron network. |
+| | |
+| | 2. Check the external connectivity of the VMs. |
+| | |
+| | Each monitor runs in an independent process. |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Start attacker: |
+| | SSH to the VIM node and kill the SDN controller process |
+| | determined in step 2. |
+| | |
+| | Result: One SDN controller service will be shut down |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | Restart the SDN controller. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | Create a new VM in the existing Neutron network while the |
+| | SDN controller is offline or still recovering. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 5 | Stop IP connectivity monitors after a period of time |
+| | specified by “waiting_time” |
+| | |
+| | Result: The monitor info will be aggregated |
+| | |
++--------------+--------------------------------------------------------------+
+|step 6 | Verify the IP connectivity monitor result |
+| | |
+| | Result: IP connectivity monitor should not have any packet |
+| | drop failures reported |
+| | |
++--------------+--------------------------------------------------------------+
+|step 7 | Verify process_recover_time, which indicates the maximun |
+| | time (seconds) from the process being killed to recovered, |
+| | is within the SLA. This step blocks until either the |
+| | process has recovered or a timeout occurred. |
+| | |
+| | Result: process_recover_time is within SLA limits, if not, |
+| | test case failed and stopped. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 8 | Start IP connectivity monitors for the new VM: |
+| | |
+| | 1. Check the L2 connectivity from the existing VMs to the |
+| | new VM in the Neutron network. |
+| | |
+| | 2. Check connectivity from one VM to an external host on |
+| | the Internet to verify SNAT functionality. |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 9 | Stop IP connectivity monitors after a period of time |
+| | specified by “waiting_time” |
+| | |
+| | Result: The monitor info will be aggregated |
+| | |
++--------------+--------------------------------------------------------------+
+|step 10 | Verify the IP connectivity monitor result |
+| | |
+| | Result: IP connectivity monitor should not have any packet |
+| | drop failures reported |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | Fails only if SLA is not passed, or if there is a test case |
+| | execution problem. |
+| | |
++--------------+--------------------------------------------------------------+
+
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc093.rst b/docs/testing/user/userguide/opnfv_yardstick_tc093.rst
new file mode 100644
index 000000000..4e22e8bf3
--- /dev/null
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc093.rst
@@ -0,0 +1,189 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Intracom Telecom and others.
+.. mardim@intracom-telecom.com
+
+*************************************
+Yardstick Test Case Description TC093
+*************************************
+
++-----------------------------------------------------------------------------+
+|SDN Vswitch resilience in non-HA or HA configuration |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC093: SDN Vswitch resilience in |
+| | non-HA or HA configuration |
++--------------+--------------------------------------------------------------+
+|test purpose | This test validates that network data plane services are |
+| | resilient in the event of Virtual Switch failure |
+| | in compute nodes. Specifically, the test verifies that |
+| | existing data plane connectivity is not permanently impacted |
+| | i.e. all configured network services such as DHCP, ARP, L2, |
+| | L3 Security Groups continue to operate between the existing |
+| | VMs eventually after the Virtual Switches have finished |
+| | rebooting. |
+| | |
+| | The test also validates that new network service operations |
+| | (creating a new VM in the existing L2/L3 network or in a new |
+| | network, etc.) are operational after the Virtual Switches |
+| | have recovered from a failure. |
+| | |
++--------------+--------------------------------------------------------------+
+|test method | This testcase first checks if the already configured |
+| | DHCP/ARP/L2/L3/SNAT connectivity is proper. After |
+| | it fails and restarts again the VSwitch services which are |
+| | running on both OpenStack compute nodes, and then checks if |
+| | already configured DHCP/ARP/L2/L3/SNAT connectivity is not |
+| | permanently impacted (even if there are some packet |
+| | loss events) between VMs and the system is able to execute |
+| | new virtual network operations once the Vswitch services |
+| | are restarted and have been fully recovered |
+| | |
++--------------+--------------------------------------------------------------+
+|attackers | In this test case, two attackers called “kill-process” are |
+| | needed. These attackers include three parameters: |
+| | |
+| | 1. fault_type: which is used for finding the attacker's |
+| | scripts. It should be set to 'kill-process' in this test |
+| | |
+| | 2. process_name: should be set to the name of the Vswitch |
+| | process |
+| | |
+| | 3. host: which is the name of the compute node where the |
+| | Vswitch process is running |
+| | |
+| | e.g. -fault_type: "kill-process" |
+| | -process_name: "openvswitch" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|monitors | This test case utilizes two monitors of type "ip-status" |
+| | and one monitor of type "process" to track the following |
+| | conditions: |
+| | |
+| | 1. "ping_same_network_l2": monitor ICMP traffic between |
+| | VMs in the same Neutron network |
+| | |
+| | 2. "ping_external_snat": monitor ICMP traffic from VMs to |
+| | an external host on the Internet to verify SNAT |
+| | functionality. |
+| | |
+| | 3. "Vswitch process monitor": a monitor checking the |
+| | state of the specified Vswitch process. It measures |
+| | the recovery time of the given process. |
+| | |
+| | Monitors of type "ip-status" use the "ping" utility to |
+| | verify reachability of a given target IP. |
+| | |
++--------------+--------------------------------------------------------------+
+|operations | In this test case, the following operations are needed: |
+| | 1. "nova-create-instance-in_network": create a VM instance |
+| | in one of the existing Neutron network. |
+| | |
++--------------+--------------------------------------------------------------+
+|metrics | In this test case, there are two metrics: |
+| | 1. process_recover_time: which indicates the maximun |
+| | time (seconds) from the process being killed to |
+| | recovered |
+| | |
+| | 2. outage_time: measures the total time in which |
+| | monitors were failing in their tasks (e.g. total time of |
+| | Ping failure) |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Developed by the project. Please see folder: |
+| | "yardstick/benchmark/scenarios/availability/ha_tools" |
+| | |
++--------------+--------------------------------------------------------------+
+|references | none |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | This test case needs two configuration files: |
+| | 1. test case file: opnfv_yardstick_tc093.yaml |
+| | |
+| | - Attackers: see above “attackers” description |
+| | - monitor_time: which is the time (seconds) from |
+| | starting to stoping the monitors |
+| | - Monitors: see above “monitors” discription |
+| | - SLA: see above “metrics” description |
+| | |
+| | 2. POD file: pod.yaml The POD configuration should record |
+| | on pod.yaml first. the “host” item in this test case |
+| | will use the node name in the pod.yaml. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | Description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|pre-action | 1. The Vswitches are set up in both compute nodes. |
+| | |
+| | 2. One or more Neutron networks are created with two or |
+| | more VMs attached to each of the Neutron networks. |
+| | |
+| | 3. The Neutron networks are attached to a Neutron router |
+| | which is attached to an external network towards the |
+| | DCGW. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Start IP connectivity monitors: |
+| | 1. Check the L2 connectivity between the VMs in the same |
+| | Neutron network. |
+| | |
+| | 2. Check connectivity from one VM to an external host on |
+| | the Internet to verify SNAT functionality. |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Start attackers: |
+| | SSH connect to the VIM compute nodes and kill the Vswitch |
+| | processes |
+| | |
+| | Result: the SDN Vswitch services will be shutdown |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | Verify the results of the IP connectivity monitors. |
+| | |
+| | Result: The outage_time metric reported by the monitors |
+| | is not greater than the max_outage_time. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | Restart the SDN Vswitch services. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 5 | Create a new VM in the existing Neutron network |
+| | |
++--------------+--------------------------------------------------------------+
+|step 6 | Verify connectivity between VMs as follows: |
+| | 1. Check the L2 connectivity between the previously |
+| | existing VM and the newly created VM on the same |
+| | Neutron network by sending ICMP messages |
+| | |
++--------------+--------------------------------------------------------------+
+|step 7 | Stop IP connectivity monitors after a period of time |
+| | specified by “monitor_time” |
+| | |
+| | Result: The monitor info will be aggregated |
+| | |
++--------------+--------------------------------------------------------------+
+|step 8 | Verify the IP connectivity monitor results |
+| | |
+| | Result: IP connectivity monitor should not have any packet |
+| | drop failures reported |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | This test fails if the SLAs are not met or if there is a |
+| | test case execution problem. The SLAs are define as follows |
+| | for this test: |
+| | * SDN Vswitch recovery |
+| | |
+| | * process_recover_time <= 30 sec |
+| | |
+| | * no impact on data plane connectivity during SDN |
+| | Vswitch failure and recovery. |
+| | |
+| | * packet_drop == 0 |
+| | |
++--------------+--------------------------------------------------------------+
+
diff --git a/docs/testing/user/userguide/references.rst b/docs/testing/user/userguide/references.rst
index 05729ba75..e6bc719fd 100644
--- a/docs/testing/user/userguide/references.rst
+++ b/docs/testing/user/userguide/references.rst
@@ -11,13 +11,12 @@ References
OPNFV
=====
-* Parser wiki: https://wiki.opnfv.org/parser
-* Pharos wiki: https://wiki.opnfv.org/pharos
-* VTC: https://wiki.opnfv.org/vtc
+* Parser wiki: https://wiki.opnfv.org/display/parser
+* Pharos wiki: https://wiki.opnfv.org/display/pharos
* Yardstick CI: https://build.opnfv.org/ci/view/yardstick/
* Yardstick and ETSI TST001 presentation: https://wiki.opnfv.org/display/yardstick/Yardstick?preview=%2F2925202%2F2925205%2Fopnfv_summit_-_bridging_opnfv_and_etsi.pdf
* Yardstick Project presentation: https://wiki.opnfv.org/display/yardstick/Yardstick?preview=%2F2925202%2F2925208%2Fopnfv_summit_-_yardstick_project.pdf
-* Yardstick wiki: https://wiki.opnfv.org/yardstick
+* Yardstick wiki: https://wiki.opnfv.org/display/yardstick
References used in Test Cases
=============================
@@ -26,22 +25,22 @@ References used in Test Cases
* cirros-image: https://download.cirros-cloud.net
* cyclictest: https://rt.wiki.kernel.org/index.php/Cyclictest
* DPDKpktgen: https://github.com/Pktgen/Pktgen-DPDK/
-* DPDK supported NICs: http://dpdk.org/doc/nics
+* DPDK supported NICs: http://core.dpdk.org/supported/
* fdisk: http://www.tldp.org/HOWTO/Partition/fdisk_partitioning.html
-* fio: http://www.bluestop.org/fio/HOWTO.txt
+* fio: https://bluestop.org/files/fio/HOWTO.txt
* free: http://manpages.ubuntu.com/manpages/trusty/en/man1/free.1.html
* iperf3: https://iperf.fr/
-* iostat: http://linux.die.net/man/1/iostat
+* iostat: https://linux.die.net/man/1/iostat
* Lmbench man-pages: http://manpages.ubuntu.com/manpages/trusty/lat_mem_rd.8.html
* Memory bandwidth man-pages: http://manpages.ubuntu.com/manpages/trusty/bw_mem.8.html
* mpstat man-pages: http://manpages.ubuntu.com/manpages/trusty/man1/mpstat.1.html
-* netperf: http://www.netperf.org/netperf/training/Netperf.html
+* netperf: https://hewlettpackard.github.io/netperf/
* pktgen: https://www.kernel.org/doc/Documentation/networking/pktgen.txt
* RAMspeed: http://alasir.com/software/ramspeed/
-* sar: http://linux.die.net/man/1/sar
+* sar: https://linux.die.net/man/1/sar
* SR-IOV: https://wiki.openstack.org/wiki/SR-IOV-Passthrough-For-Networking
* Storperf: https://wiki.opnfv.org/display/storperf/Storperf
-* unixbench: https://github.com/kdlucas/byte-unixbench/blob/master/UnixBench
+* unixbench: https://github.com/kdlucas/byte-unixbench/tree/master/UnixBench
Research
@@ -54,7 +53,7 @@ Research
Standards
=========
-* ETSI NFV: http://www.etsi.org/technologies-clusters/technologies/nfv
-* ETSI GS-NFV TST 001: http://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/001/01.01.01_60/gs_NFV-TST001v010101p.pdf
+* ETSI NFV: https://www.etsi.org/technologies-clusters/technologies/nfv
+* ETSI GS-NFV TST 001: https://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/001/01.01.01_60/gs_NFV-TST001v010101p.pdf
* RFC2544: https://www.ietf.org/rfc/rfc2544.txt
diff --git a/etc/infra/infra_deploy_multi.yaml.sample b/etc/infra/infra_deploy_multi.yaml.sample
new file mode 100644
index 000000000..aa27b735a
--- /dev/null
+++ b/etc/infra/infra_deploy_multi.yaml.sample
@@ -0,0 +1,97 @@
+nodes:
+ - name: Deployment and Controller node number 1 VM
+ openstack_node: controller
+ hostname: control-01
+ interfaces:
+ - network: management
+ ip: 192.168.1.10
+ netmask: 255.255.255.0
+ - network: traffic
+ ip: 192.20.1.10
+ netmask: 255.255.255.0
+ user: ubuntu
+ password: password
+ image: /tmp/image_cntrl_1.img
+ disk: 13000
+ ram: 9000
+ vcpus: 4
+
+ - name: Controller node number 2 VM
+ openstack_node: controller
+ hostname: control-02
+ interfaces:
+ - network: management
+ ip: 192.168.1.11
+ netmask: 255.255.255.0
+ - network: traffic
+ ip: 192.20.1.11
+ netmask: 255.255.255.0
+ user: ubuntu
+ password: password
+ image: /tmp/image_cntrl_2.img
+ disk: 11000
+ ram: 6000
+ vcpus: 2
+
+ - name: Compute node number 1 VM
+ openstack_node: compute
+ hostname: compute-01
+ interfaces:
+ - network: management
+ ip: 192.168.1.12
+ netmask: 255.255.255.0
+ - network: traffic
+ ip: 192.20.1.12
+ netmask: 255.255.255.0
+ user: ubuntu
+ password: password
+ image: /tmp/image_comp_1.img
+ disk: 30000
+ ram: 16000
+ vcpus: 12
+
+ - name: Compute node number 2 VM
+ openstack_node: compute
+ hostname: compute-02
+ interfaces:
+ - network: management
+ ip: 192.168.1.13
+ netmask: 255.255.255.0
+ - network: traffic
+ ip: 192.20.1.13
+ netmask: 255.255.255.0
+ user: ubuntu
+ password: password
+ image: /tmp/image_comp_2.img
+ disk: 12000
+ ram: 6000
+ vcpus: 4
+
+ - name: Jump host
+ hostname: yardstickvm
+ interfaces:
+ - network: management
+ ip: 192.168.1.14
+ netmask: 255.255.255.0
+ - network: traffic
+ ip: 192.20.1.14
+ netmask: 255.255.255.0
+ user: ubuntu
+ password: password
+ image: /tmp/image_yardstick.img
+ disk: 28000
+ ram: 12000
+ vcpus: 4
+
+networks:
+ - name: management
+ default_gateway: True
+ host_ip: 192.168.1.1
+ netmask: 255.255.255.0
+
+ - name: traffic
+ default_gateway: False # This parameter is not mandatory, default value: False
+ host_ip: 192.20.1.1
+ netmask: 255.255.255.0
+ dhcp_ip_start: 192.20.1.200
+ dhcp_ip_stop: 192.20.1.250
diff --git a/etc/infra/infra_deploy_one.yaml.sample b/etc/infra/infra_deploy_one.yaml.sample
new file mode 100644
index 000000000..f8759d42e
--- /dev/null
+++ b/etc/infra/infra_deploy_one.yaml.sample
@@ -0,0 +1,46 @@
+nodes:
+ - name: Deployment, Controller and Compute single VM
+ openstack_node: controller # if no compute nodes are defined means a standalone deployment
+ hostname: allinone
+ interfaces:
+ - network: management
+ ip: 192.168.1.21
+ netmask: 255.255.255.0
+ - network: traffic
+ ip: 192.20.1.21
+ netmask: 255.255.255.0
+ user: ubuntu
+ password: password
+ image: /tmp/image_one.img
+ disk: 22000
+ ram: 14000
+ vcpus: 12
+
+ - name: Jump host
+ hostname: yardstickvm
+ interfaces:
+ - network: management
+ ip: 192.168.1.22
+ netmask: 255.255.255.0
+ - network: traffic
+ ip: 192.20.1.22
+ netmask: 255.255.255.0
+ user: ubuntu
+ password: password
+ image: /tmp/image_yardstick.img
+ disk: 22000
+ ram: 10000
+ vcpus: 4
+
+networks:
+ - name: management
+ default_gateway: True
+ host_ip: 192.168.1.1
+ netmask: 255.255.255.0
+
+ - name: traffic
+ default_gateway: False # This parameter is not mandatory, default value: False
+ host_ip: 192.20.1.1
+ netmask: 255.255.255.0
+ dhcp_ip_start: 192.20.1.200
+ dhcp_ip_stop: 192.20.1.250
diff --git a/etc/infra/infra_deploy_two.yaml.sample b/etc/infra/infra_deploy_two.yaml.sample
new file mode 100644
index 000000000..a29f75453
--- /dev/null
+++ b/etc/infra/infra_deploy_two.yaml.sample
@@ -0,0 +1,63 @@
+nodes:
+ - name: Deployment and Controller node number 1 VM
+ openstack_node: controller
+ hostname: control-01
+ interfaces:
+ - network: management
+ ip: 192.168.1.118
+ netmask: 255.255.255.0
+ - network: traffic
+ ip: 192.20.1.118
+ netmask: 255.255.255.0
+ user: ubuntu
+ password: password
+ image: /tmp/image_cntrl_1.img
+ disk: 12000
+ ram: 10000
+ vcpus: 6
+
+ - name: Compute node number 1 VM
+ openstack_node: compute
+ hostname: compute-01
+ interfaces:
+ - network: management
+ ip: 192.168.1.119
+ netmask: 255.255.255.0
+ - network: traffic
+ ip: 192.20.1.119
+ netmask: 255.255.255.0
+ user: ubuntu
+ password: password
+ image: /tmp/image_comp_1.img
+ disk: 44000
+ ram: 30000
+ vcpus: 14
+
+ - name: Jump host
+ hostname: yardstickvm
+ interfaces:
+ - network: management
+ ip: 192.168.1.120
+ netmask: 255.255.255.0
+ - network: traffic
+ ip: 192.20.1.120
+ netmask: 255.255.255.0
+ user: ubuntu
+ password: password
+ image: /tmp/image_yardstick.img
+ disk: 22000
+ ram: 10000
+ vcpus: 4
+
+networks:
+ - name: management
+ default_gateway: True
+ host_ip: 192.168.1.1
+ netmask: 255.255.255.0
+
+ - name: traffic
+ default_gateway: False # This parameter is not mandatory, default value: False
+ host_ip: 192.20.1.1
+ netmask: 255.255.255.0
+ dhcp_ip_start: 192.20.1.200
+ dhcp_ip_stop: 192.20.1.250
diff --git a/etc/yardstick/nodes/apex_baremetal/pod.yaml b/etc/yardstick/nodes/apex_baremetal/pod.yaml
new file mode 100644
index 000000000..4b058c499
--- /dev/null
+++ b/etc/yardstick/nodes/apex_baremetal/pod.yaml
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2018 Intracom Telecom 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
+##############################################################################
+---
+nodes:
+-
+ name: node1
+ role: Controller
+ ip: ip1
+ user: heat-admin
+ key_filename: node_keyfile
+-
+ name: node2
+ role: Controller
+ ip: ip2
+ user: heat-admin
+ key_filename: node_keyfile
+-
+ name: node3
+ role: Controller
+ ip: ip3
+ user: heat-admin
+ key_filename: node_keyfile
+-
+ name: node4
+ role: Compute
+ ip: ip4
+ user: heat-admin
+ key_filename: node_keyfile
+-
+ name: node5
+ role: Compute
+ ip: ip5
+ user: heat-admin
+ key_filename: node_keyfile
+-
+ name: node6
+ role: Opendaylight-Cluster-Leader
+ ip: ip6
+ user: heat-admin
+ key_filename: node_keyfile
diff --git a/etc/yardstick/nodes/apex_virtual/pod.yaml b/etc/yardstick/nodes/apex_virtual/pod.yaml
new file mode 100644
index 000000000..59b51d224
--- /dev/null
+++ b/etc/yardstick/nodes/apex_virtual/pod.yaml
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2018 Intracom Telecom 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
+##############################################################################
+---
+nodes:
+-
+ name: node1
+ role: Controller
+ ip: 192.0.2.15
+ user: heat-admin
+ key_filename: /root/.ssh/id_rsa
+-
+ name: node2
+ role: Controller
+ ip: 192.0.2.4
+ user: heat-admin
+ key_filename: /root/.ssh/id_rsa
+-
+ name: node3
+ role: Controller
+ ip: 192.0.2.6
+ user: heat-admin
+ key_filename: /root/.ssh/id_rsa
+-
+ name: node4
+ role: Compute
+ ip: 192.0.2.10
+ user: heat-admin
+ key_filename: /root/.ssh/id_rsa
+-
+ name: node5
+ role: Compute
+ ip: 192.0.2.14
+ user: heat-admin
+ key_filename: /root/.ssh/id_rsa
diff --git a/etc/yardstick/nodes/fuel_baremetal/pod.yaml b/etc/yardstick/nodes/fuel_baremetal/pod.yaml
index acdb44741..301433d50 100644
--- a/etc/yardstick/nodes/fuel_baremetal/pod.yaml
+++ b/etc/yardstick/nodes/fuel_baremetal/pod.yaml
@@ -23,29 +23,42 @@ nodes:
name: node1
role: Controller
ip: ip1
- user: root
- key_filename: /root/.ssh/id_rsa
+ user: node_username
+ key_filename: node_keyfile
-
name: node2
role: Controller
ip: ip2
- user: root
- key_filename: /root/.ssh/id_rsa
+ user: node_username
+ key_filename: node_keyfile
-
name: node3
role: Controller
ip: ip3
- user: root
- key_filename: /root/.ssh/id_rsa
+ user: node_username
+ key_filename: node_keyfile
-
name: node4
role: Compute
ip: ip4
- user: root
- key_filename: /root/.ssh/id_rsa
+ user: node_username
+ key_filename: node_keyfile
-
name: node5
role: Compute
ip: ip5
- user: root
- key_filename: /root/.ssh/id_rsa
+ user: node_username
+ key_filename: node_keyfile
+-
+ name: node6
+ role: Opendaylight
+ ip: ip6
+ user: node_username
+ key_filename: node_keyfile
+-
+ name: node7
+ role: Gateway
+ ip: ip7
+ user: node_username
+ key_filename: node_keyfile
+
diff --git a/etc/yardstick/nodes/pod.yaml.nsb.sample.ixia b/etc/yardstick/nodes/pod.yaml.nsb.sample.ixia
index 57a83058e..1f755dc4e 100644
--- a/etc/yardstick/nodes/pod.yaml.nsb.sample.ixia
+++ b/etc/yardstick/nodes/pod.yaml.nsb.sample.ixia
@@ -26,7 +26,6 @@ nodes:
lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0"
root_dir: "/opt/ixia/ixos-api/8.01.0.2/"
py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/"
- py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi"
dut_result_dir: "/mnt/ixia"
version: 8.1
interfaces:
diff --git a/etc/yardstick/nodes/pod.yaml.vpp.sample b/etc/yardstick/nodes/pod.yaml.vpp.sample
new file mode 100644
index 000000000..15fb410f5
--- /dev/null
+++ b/etc/yardstick/nodes/pod.yaml.vpp.sample
@@ -0,0 +1,84 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nodes:
+-
+ name: trafficgen
+ role: TrafficGen
+ ip: 10.10.201.10
+ port: 22
+ user: root
+ username: root
+ password: r00t
+ interfaces:
+ xe0:
+ driver: igb_uio
+ local_mac: "90:e2:ba:7c:30:e8"
+ vpci: "0000:81:00.0"
+ local_ip: "192.168.100.1"
+ netmask: "255.255.255.0"
+ dpdk_port_num: 0
+ xe1:
+ driver: igb_uio
+ local_mac: "90:e2:ba:7c:30:e9"
+ vpci: "0000:81:00.1"
+ local_ip: "192.168.101.1"
+ netmask: "255.255.255.0"
+ dpdk_port_num: 1
+-
+ name: vnf0
+ role: VirtualNetworkFunction
+ ip: 10.10.201.101
+ port: 22
+ user: root
+ username: root
+ password: r00t
+ interfaces:
+ xe0:
+ driver: igb_uio
+ local_mac: "90:e2:ba:7c:41:a8"
+ vpci: "0000:ff:06.0"
+ local_ip: "192.168.100.2"
+ netmask: "255.255.255.0"
+ dpdk_port_num: 0
+ xe1:
+ driver: igb_uio
+ local_mac: "4e:90:85:d3:c5:13"
+ vpci: "0000:ff:07.0"
+ local_ip: "1.1.1.1"
+ netmask: "255.255.255.0"
+ dpdk_port_num: 1
+-
+ name: vnf1
+ role: VirtualNetworkFunction
+ ip: 10.10.201.102
+ port: 22
+ user: root
+ username: root
+ password: r00t
+ interfaces:
+ xe0:
+ driver: igb_uio
+ local_mac: "90:e2:ba:7c:41:a9"
+ vpci: "0000:ff:06.0"
+ local_ip: "192.168.101.2"
+ netmask: "255.255.255.0"
+ dpdk_port_num: 0
+ xe1:
+ driver: igb_uio
+ local_mac: "0a:b1:ec:fd:a2:66"
+ vpci: "0000:ff:07.0"
+ local_ip: "1.1.1.2"
+ netmask: "255.255.255.0"
+ dpdk_port_num: 1
diff --git a/etc/yardstick/nodes/standalone/baremetal_trex.yaml b/etc/yardstick/nodes/standalone/baremetal_trex.yaml
index d41b8989f..b3b57d066 100644
--- a/etc/yardstick/nodes/standalone/baremetal_trex.yaml
+++ b/etc/yardstick/nodes/standalone/baremetal_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
nodes:
-
- name: tg__0
+ name: trafficgen_0
role: tg__0
ip: {{gen.ip.mgmt[0]| ipaddr('address')}}
user: {{gen.user}}
diff --git a/etc/yardstick/nodes/standalone/ixia_correlated_template.yaml b/etc/yardstick/nodes/standalone/ixia_correlated_template.yaml
index 7250c4ce3..8fdaf9f6d 100644
--- a/etc/yardstick/nodes/standalone/ixia_correlated_template.yaml
+++ b/etc/yardstick/nodes/standalone/ixia_correlated_template.yaml
@@ -20,19 +20,18 @@
nodes:
-
- name: tg__0
+ name: trafficgen_0
role: IxNet
ip: {{gen.ip.mgmt[0]| ipaddr('address')}}
user: {{gen.user}}
password: {{gen.password}}
key_filename: {{gen.key_filename}}
- tg_config:
+ tg_config:
ixchassis: "{{gen.tg_config.ixchassis}}" #ixia chassis ip
tcl_port: "{{gen.tg_config.tcl_port}}" # tcl server port
lib_path: "{{gen.tg_config.lib_path}}"
root_dir: "{{gen.tg_config.root_dir}}"
py_bin_path: "{{gen.tg_config.py_bin_path}}"
- py_lib_path: "{{gen.tg_config.py_lib_path}}"
dut_result_dir: "{{gen.tg_config.dut_result_dir}}"
version: "{{gen.tg_config.version}}"
interfaces:
@@ -54,7 +53,7 @@ nodes:
{% endfor %}
-
- name: tg__1
+ name: trafficgen_1
role: tg__1
ip: {{gen_1.ip.mgmt[0]| ipaddr('address')}}
user: {{gen_1.user}}
diff --git a/etc/yardstick/nodes/standalone/ixia_template.yaml b/etc/yardstick/nodes/standalone/ixia_template.yaml
index 617a65162..97749aa1f 100644
--- a/etc/yardstick/nodes/standalone/ixia_template.yaml
+++ b/etc/yardstick/nodes/standalone/ixia_template.yaml
@@ -20,7 +20,7 @@
nodes:
-
- name: tg__0
+ name: trafficgen_0
role: IxNet
ip: {{gen.ip.mgmt[0]| ipaddr('address')}}
user: {{gen.user}}
@@ -32,7 +32,6 @@ nodes:
lib_path: "{{gen.tg_config.lib_path}}"
root_dir: "{{gen.tg_config.root_dir}}"
py_bin_path: "{{gen.tg_config.py_bin_path}}"
- py_lib_path: "{{gen.tg_config.py_lib_path}}"
dut_result_dir: "{{gen.tg_config.dut_result_dir}}"
version: "{{gen.tg_config.version}}"
interfaces:
diff --git a/etc/yardstick/nodes/standalone/pod_bm_vnf.yaml b/etc/yardstick/nodes/standalone/pod_bm_vnf.yaml
index b724cb09b..bf8c45f25 100644
--- a/etc/yardstick/nodes/standalone/pod_bm_vnf.yaml
+++ b/etc/yardstick/nodes/standalone/pod_bm_vnf.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
nodes:
-
- name: vnf__0
+ name: vnf_0
role: vnf__0
ip: {{vnf.ip.mgmt[0]| ipaddr('address')}}
user: {{vnf.user}}
diff --git a/etc/yardstick/nodes/standalone/pod_bm_vnf_scale_out.yaml b/etc/yardstick/nodes/standalone/pod_bm_vnf_scale_out.yaml
new file mode 100644
index 000000000..3fd9db26e
--- /dev/null
+++ b/etc/yardstick/nodes/standalone/pod_bm_vnf_scale_out.yaml
@@ -0,0 +1,37 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nodes:
+{% for num in range(num_vnfs|int) %}
+-
+ name: vnf_{{ num }}
+ role: vnf__{{ num }}
+ ip: {{vnf.ip.mgmt[num] | ipaddr('address')}}
+ user: {{vnf.user}}
+ password: {{vnf.password}}
+ key_filename: {{vnf.key_filename}}
+ interfaces:
+ xe0: # logical name from topology.yaml and vnfd.yaml
+ vpci: "{{vnf.pcis.uplink[num]}}"
+ dpdk_port_num: 0
+ local_ip: "{{vnf.ip.uplink[num] | ipaddr('address')}}"
+ netmask: "{{vnf.ip.uplink[num] | ipaddr('netmask')}}"
+ local_mac: "{{vnf.mac.uplink[num]}}"
+ xe1: # logical name from topology.yaml and vnfd.yaml
+ vpci: "{{vnf.pcis.downlink[num]}}"
+ dpdk_port_num: 1
+ local_ip: "{{vnf.ip.downlink[num] | ipaddr('address') }}"
+ netmask: "{{vnf.ip.downlink[num] | ipaddr('netmask')}}"
+ local_mac: "{{vnf.mac.downlink[num]}}"
+{% endfor %}
diff --git a/etc/yardstick/nodes/standalone/pod_landslide.yaml b/etc/yardstick/nodes/standalone/pod_landslide.yaml
new file mode 100644
index 000000000..32e9a336e
--- /dev/null
+++ b/etc/yardstick/nodes/standalone/pod_landslide.yaml
@@ -0,0 +1,130 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+nodes:
+-
+ name: "trafficgen_0"
+ role: tg__0
+ tas_manager:
+ ip: 192.168.122.100
+ super_user: SUPER_USER
+ super_user_password: SUPER_USER_PASSWORD
+ cfguser_password: CFGUSER_PASSWORD
+ test_user: TEST_USER
+ test_user_password: TEST_USER_PASSWORD
+ proto: http
+ license: LICENSE_NUMBER
+ interfaces: # dummy values
+ xe0:
+ vpci: "0000:05:00.0"
+ local_mac: "68:05:ca:30:3d:50"
+ driver: "i40e"
+ local_ip: "152.16.100.19"
+ netmask: "255.255.255.0"
+ xe1:
+ vpci: "0000:05:00.1"
+ local_mac: "68:05:ca:30:3d:51"
+ driver: "i40e"
+ local_ip: "152.16.40.19"
+ netmask: "255.255.255.0"
+ config:
+ - test_server:
+ name: TestServer_1
+ role: SGW_Node
+ ip: 192.168.122.101
+ thread_model: Fireball
+ # override port-subnet and static route reservation information for this
+ # test server within the test session.
+ phySubnets:
+ - base: 10.42.32.100
+ mask: "/24"
+ name: &ts1_port1 eth5
+ numIps: 20
+ - base: 10.42.33.100
+ mask: "/24"
+ name: &ts1_port2 eth6
+ numIps: 20
+ preResolvedArpAddress: # required for testcases with enabled Fireball mode
+ - StartingAddress: 10.42.33.10
+ NumNodes: 1
+ suts:
+ - name: SGW-C TestNode
+ role: SgwControlAddr
+ managementIp: 12.0.1.1
+ phy: *ts1_port1
+ ip: 10.42.32.100
+ # nextHop: ''
+ - name: SGW-U TestNode
+ role: SgwUserAddr
+ managementIp: 12.0.1.2
+ phy: *ts1_port1
+ ip: 10.42.32.101
+ # nextHop: ''
+
+ - test_server:
+ name: TestServer_2
+ role: SGW_Nodal
+ ip: 192.168.122.102
+ thread_model: Fireball
+ # override port-subnet and static route reservation information for this
+ # test server within the test session.
+ phySubnets:
+ - base: 10.42.32.1
+ mask: "/24"
+ name: &ts2_port1 eth5
+ numIps: 100
+ - base: 10.42.33.1
+ mask: "/24"
+ name: &ts2_port2 eth6
+ numIps: 100
+ suts:
+ - name: eNodeB TestNode
+ role: EnbUserAddr
+ managementIp: 12.0.2.1
+ phy: *ts2_port1
+ ip: 10.42.32.2
+ # nextHop: ''
+ - name: Target eNodeB
+ role: MobEnbUserAddr
+ managementIp: 12.0.2.2
+ phy: *ts2_port1
+ ip: 10.42.32.3
+ # nextHop: ''
+ - name: MME TestNode
+ role: MmeControlAddr
+ managementIp: 12.0.3.1
+ phy: *ts2_port1
+ ip: 10.42.32.1
+ # nextHop: ''
+ - name: NetHost TestNode
+ role: NetworkHostAddrLocal
+ managementIp: 12.0.4.1
+ phy: *ts2_port2
+ ip: 10.42.33.10
+ # nextHop: ''
+ - name: PGW SUT
+ role: PgwV4Sut
+ managementIp: 12.0.5.1
+ phy: *ts1_port1
+ ip: 10.42.32.105
+ # nextHop: ''
+ - name: SGW-C SUT
+ role: SgwSut
+ managementIp: 12.0.6.1
+ ip: 10.42.32.100
+ - name: SGW-U SUT
+ role: SgwUserSut
+ managementIp: 12.0.6.2
+ ip: 10.42.32.101
diff --git a/etc/yardstick/nodes/standalone/pod_landslide_network_dedicated.yaml b/etc/yardstick/nodes/standalone/pod_landslide_network_dedicated.yaml
new file mode 100644
index 000000000..e416ec351
--- /dev/null
+++ b/etc/yardstick/nodes/standalone/pod_landslide_network_dedicated.yaml
@@ -0,0 +1,163 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+nodes:
+-
+ name: "trafficgen_0"
+ role: tg__0
+ tas_manager:
+ ip: 192.168.122.100
+ super_user: sms
+ super_user_password: a1b2c3d4
+ cfguser_password: cfguser
+ test_user: demoaff
+ test_user_password: demo123
+ proto: http
+ license: 49
+ interfaces: # dummy config
+ xe0:
+ vpci: "0000:05:00.0"
+ local_mac: "68:05:ca:30:3d:50"
+ driver: "i40e"
+ local_ip: "152.16.100.19"
+ netmask: "255.255.255.0"
+ xe1:
+ vpci: "0000:05:00.1"
+ local_mac: "68:05:ca:30:3d:51"
+ driver: "i40e"
+ local_ip: "152.16.40.19"
+ netmask: "255.255.255.0"
+ config:
+ - test_server:
+ name: TestServer_1
+ role: SGW_Node
+ ip: 192.168.122.101
+ # override port-subnet and static route reservation information for this
+ # test server within the test session.
+ thread_model: Fireball
+ phySubnets:
+ - base: 10.42.32.100
+ mask: "/24"
+ name: &ts1_port1 eth5
+ numIps: 20
+ - base: 10.42.33.100
+ mask: "/24"
+ name: &ts1_port2 eth6
+ numIps: 20
+ suts:
+ - name: SGW-C TestNode
+ role: SgwControlAddr
+ managementIp: 12.0.1.1
+ phy: *ts1_port1
+ ip: 10.42.32.100
+ # nextHop: ''
+ - name: SGW-U TestNode
+ role: SgwUserAddr
+ managementIp: 12.0.1.2
+ phy: *ts1_port1
+ ip: 10.42.32.101
+ # nextHop: ''
+ - name: PGW-C SUT
+ role: PgwSut
+ managementIp: 12.0.5.2
+ phy: *ts1_port1
+ ip: 10.42.32.108
+ # nextHop: ''
+
+ - test_server:
+ name: TestServer_1
+ role: PGW_Node
+ ip: 192.168.122.101
+ # override port-subnet and static route reservation information for this
+ # test server within the test session.
+ suts:
+ - name: PDN GW TestNode
+ role: PdnGwAddr
+ managementIp: 12.0.5.1
+ phy: *ts1_port1
+ ip: 10.42.32.103
+ nextHop: ''
+ - name: AGW TestNode
+ role: AgwNodeAddr
+ managementIp: 12.0.7.2
+ phy: *ts1_port1
+ ip: 10.42.32.107
+ nextHop: ''
+ - name: PCRF SUT
+ role: TyCcClnSutPrimarySrv
+ managementIp: 12.0.7.1
+ ip: 10.42.32.95
+
+ - test_server:
+ name: TestServer_2
+ role: SGW_Nodal
+ ip: 192.168.122.102
+ # override port-subnet and static route reservation information for this
+ # test server within the test session.
+ thread_model: Fireball
+ phySubnets:
+ - base: 10.42.32.1
+ mask: "/24"
+ name: &ts2_port1 eth5
+ numIps: 100
+ - base: 10.42.33.1
+ mask: "/24"
+ name: &ts2_port2 eth6
+ numIps: 50
+ suts:
+ - name: eNodeB TestNode
+ role: EnbUserAddr
+ managementIp: 12.0.2.1
+ phy: *ts2_port1
+ ip: 10.42.32.2
+ nextHop: ''
+ - name: MME TestNode
+ role: MmeControlAddr
+ managementIp: 12.0.3.1
+ phy: *ts2_port1
+ ip: 10.42.32.1
+ nextHop: ''
+ - name: NetHost TestNode
+ role: NetworkHostAddrLocal
+ managementIp: 12.0.4.1
+ phy: *ts2_port2
+ ip: 10.42.33.1
+ nextHop: ''
+ - name: PGW-C SUT
+ role: PgwV4Sut
+ managementIp: 12.0.5.1
+ ip: 10.42.32.103
+ - name: SGW-C SUT
+ role: SgwSut
+ managementIp: 12.0.1.1
+ ip: 10.42.32.100
+ - name: SGW-U SUT
+ role: SgwUserSut
+ managementIp: 12.0.1.2
+ ip: 10.42.32.101
+
+ - test_server:
+ name: TestServer_2
+ role: PCRF_Node
+ ip: 192.168.122.102
+ # override port-subnet and static route reservation information for this
+ # test server within the test session.
+ suts:
+ - name: AgwSrvNode TestNode
+ role: AgwSrvNode
+ managementIp: 12.0.7.1
+ phy: *ts2_port1
+ ip: 10.42.32.95
+ nextHop: ''
diff --git a/etc/yardstick/nodes/standalone/pod_vepc_sut.yaml b/etc/yardstick/nodes/standalone/pod_vepc_sut.yaml
new file mode 100644
index 000000000..5d5ff379b
--- /dev/null
+++ b/etc/yardstick/nodes/standalone/pod_vepc_sut.yaml
@@ -0,0 +1,37 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+# Sample config file for fully emulated EPC environment
+
+
+nodes:
+-
+ name: "vnf_0"
+ role: vnf__0
+ ip: 192.168.122.200
+ user: user
+ password: password
+ interfaces: # dummy config
+ xe0:
+ vpci: "0000:05:00.0"
+ local_mac: "68:05:ca:30:3d:50"
+ driver: "i40e"
+ local_ip: "152.16.100.19"
+ netmask: "255.255.255.0"
+ xe1:
+ vpci: "0000:05:00.1"
+ local_mac: "68:05:ca:30:3d:51"
+ driver: "i40e"
+ local_ip: "152.16.40.19"
+ netmask: "255.255.255.0"
diff --git a/etc/yardstick/nodes/standalone/sipp_baremetal_pod.yaml b/etc/yardstick/nodes/standalone/sipp_baremetal_pod.yaml
new file mode 100644
index 000000000..c7a0af1dd
--- /dev/null
+++ b/etc/yardstick/nodes/standalone/sipp_baremetal_pod.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nodes:
+-
+ name: sipp
+ role: TrafficGen
+ ip: 10.80.3.7
+ user: USER_ROOT
+ password: PASSWORD_ROOT
+ interfaces:
+ xe0: # logical name from topology.yaml and vnfd.yaml
+ local_ip: "10.80.3.7"
+ netmask: "255.255.255.0"
+ local_mac: "90:e2:ba:7c:30:e8"
+ xe1:
+ local_ip: "10.80.3.7"
+ netmask: "255.255.255.0"
+ local_mac: "90:e2:ba:7c:30:e8"
+-
+ name: pcscf
+ role: VirtualNetworkFunction
+ ip: 10.80.3.11
+ user: USER_ROOT
+ password: PASSWORD_ROOT
+ interfaces:
+ xe0:
+ local_ip: "10.80.3.11"
+ netmask: "255.255.255.0"
+ local_mac: "90:e2:ba:7c:41:a8"
+-
+ name: hss
+ role: VirtualNetworkFunction
+ ip: 10.80.3.11
+ user: USER_ROOT
+ password: PASSWORD_ROOT
+ interfaces:
+ xe0:
+ local_ip: "10.80.3.11"
+ netmask: "255.255.255.0"
+ local_mac: "90:e2:ba:7c:41:a8"
diff --git a/etc/yardstick/nodes/standalone/sipp_pod.yaml b/etc/yardstick/nodes/standalone/sipp_pod.yaml
new file mode 100644
index 000000000..ae473c509
--- /dev/null
+++ b/etc/yardstick/nodes/standalone/sipp_pod.yaml
@@ -0,0 +1,30 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nodes:
+-
+ name: sipp
+ role: TrafficGen
+ ip: 10.80.3.7
+ user: USER_ROOT
+ password: PASSWORD_ROOT
+ interfaces:
+ xe0: # logical name from topology.yaml and vnfd.yaml
+ local_ip: "10.80.3.7"
+ netmask: "255.255.255.0"
+ local_mac: "0c:c4:7a:de:8f:da"
+ xe1: # logical name from topology.yaml and vnfd.yaml
+ local_ip: "10.80.3.7"
+ netmask: "255.255.255.0"
+ local_mac: "0c:c4:7a:de:8f:da"
diff --git a/etc/yardstick/nodes/standalone/trex_bm.yaml.sample b/etc/yardstick/nodes/standalone/trex_bm.yaml.sample
index 55a359ce1..fb877ec44 100644
--- a/etc/yardstick/nodes/standalone/trex_bm.yaml.sample
+++ b/etc/yardstick/nodes/standalone/trex_bm.yaml.sample
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
nodes:
-
- name: tg__0
+ name: trafficgen_0
role: tg__0
ip: 1.1.1.1
user: root
@@ -34,5 +34,4 @@ nodes:
dpdk_port_num: 1
local_ip: "152.16.40.20"
netmask: "255.255.255.0"
- local_mac: "00:00.00:00:00:02"
-
+ local_mac: "00:00:00:00:00:02"
diff --git a/etc/yardstick/yardstick.conf.sample b/etc/yardstick/yardstick.conf.sample
index 5675cc3bd..ccfa86d5c 100644
--- a/etc/yardstick/yardstick.conf.sample
+++ b/etc/yardstick/yardstick.conf.sample
@@ -32,3 +32,5 @@ password = root
trex_path=/opt/nsb_bin/trex/scripts
bin_path=/opt/nsb_bin
trex_client_lib=/opt/nsb_bin/trex_client/stl
+# Path to 32-bit Java installation, for Spirent Landslide TG API
+jre_path_i386=/usr/lib/jvm/java-8-openjdk-i386/jre
diff --git a/gui/app/index.html b/gui/app/index.html
index d959b14d2..2ea1cabe7 100644
--- a/gui/app/index.html
+++ b/gui/app/index.html
@@ -93,6 +93,7 @@
<script src="scripts/controllers/detail.controller.js"></script>
<script src="scripts/controllers/image.controller.js"></script>
<script src="scripts/controllers/pod.controller.js"></script>
+ <script src="scripts/controllers/sut.controller.js"></script>
<script src="scripts/controllers/container.controller.js"></script>
<script src="scripts/controllers/testcase.controller.js"></script>
<script src="scripts/controllers/testcasedetail.controller.js"></script>
diff --git a/gui/app/scripts/controllers/container.controller.js b/gui/app/scripts/controllers/container.controller.js
index 3ad200a91..a7d5f0309 100644
--- a/gui/app/scripts/controllers/container.controller.js
+++ b/gui/app/scripts/controllers/container.controller.js
@@ -127,10 +127,15 @@ angular.module('yardStickGui2App')
function chooseResult(name) {
$scope.selectContainer = name;
}
+
$scope.goBack = function goBack() {
$state.go('app.projectList');
}
+ $scope.goNext = function goNext() {
+ $state.go('app.sut', {uuid: $scope.uuid});
+ }
+
$scope.openDeleteEnv = function openDeleteEnv(id, name) {
$scope.deleteName = name;
$scope.deleteId = id;
diff --git a/gui/app/scripts/controllers/content.controller.js b/gui/app/scripts/controllers/content.controller.js
index 0288fa540..90a3f1433 100644
--- a/gui/app/scripts/controllers/content.controller.js
+++ b/gui/app/scripts/controllers/content.controller.js
@@ -49,6 +49,7 @@ angular.module('yardStickGui2App')
$scope.gotoOpenrcPage = gotoOpenrcPage;
$scope.gotoPodPage = gotoPodPage;
$scope.gotoContainerPage = gotoContainerPage;
+ $scope.gotoSUTPage = gotoSUTPage;
$scope.gotoTestcase = gotoTestcase;
$scope.gotoEnviron = gotoEnviron;
$scope.gotoSuite = gotoSuite;
@@ -95,6 +96,12 @@ angular.module('yardStickGui2App')
$state.go('app.container', { uuid: $scope.uuid });
}
+ function gotoSUTPage() {
+ $scope.path = $location.path();
+ $scope.uuid = $scope.path.split('/').pop();
+ $state.go('app.sut', { uuid: $scope.uuid });
+ }
+
function gotoTestcase() {
$state.go('app.testcase');
}
diff --git a/gui/app/scripts/controllers/main.js b/gui/app/scripts/controllers/main.js
index ceec83fa9..dc5c32670 100644
--- a/gui/app/scripts/controllers/main.js
+++ b/gui/app/scripts/controllers/main.js
@@ -107,7 +107,7 @@ angular.module('yardStickGui2App')
$scope.envInfo = [
{ name: 'OS_USERNAME', value: '' },
{ name: 'OS_PASSWORD', value: '' },
- { name: 'OS_TENANT_NAME', value: '' },
+ { name: 'OS_PROJECT_NAME', value: '' },
{ name: 'EXTERNAL_NETWORK', value: '' }
];
@@ -298,7 +298,7 @@ angular.module('yardStickGui2App')
$scope.envInfo = [
{ name: 'OS_USERNAME', value: '' },
{ name: 'OS_PASSWORD', value: '' },
- { name: 'OS_TENANT_NAME', value: '' },
+ { name: 'OS_PROJECT_NAME', value: '' },
{ name: 'EXTERNAL_NETWORK', value: '' }
];
$scope.displayOpenrcFile = null;
diff --git a/gui/app/scripts/controllers/projectDetail.controller.js b/gui/app/scripts/controllers/projectDetail.controller.js
index e8468045d..353e02bcf 100644
--- a/gui/app/scripts/controllers/projectDetail.controller.js
+++ b/gui/app/scripts/controllers/projectDetail.controller.js
@@ -439,15 +439,36 @@ angular.module('yardStickGui2App')
$scope.displayTable = false;
$scope.contentInfo = response.result.testcase;
+ $scope.optionalParams = response.result.args;
}
}, function(error) {
- toaster.pop({
- type: 'error',
- title: 'fail',
- body: 'unknow error',
- timeout: 3000
- });
+ mainFactory.errorHandler2(error);
+ })
+ }
+
+
+ function addParamsToTask(){
+ var params = {}
+ angular.forEach($scope.optionalParams, function(value, name){
+ if(value.value){
+ params[name] = value.value;
+ }
+ });
+
+ mainFactory.taskAddParams().put({
+ 'taskId': $scope.newUUID,
+ 'action': 'add_params',
+ 'args': {
+ 'params': params
+ }
+ }).$promise.then(function(resp) {
+ if (resp.status == 1) {
+ } else {
+ mainFactory.errorHandler1(resp);
+ }
+ }, function(error) {
+ mainFactory.errorHandler2(error);
})
}
@@ -530,6 +551,7 @@ angular.module('yardStickGui2App')
function confirmAddCaseOrSuite(content) {
if ($scope.selectType.name == "Test Case") {
addCasetoTask(content);
+ addParamsToTask();
} else {
addSuitetoTask(content);
}
diff --git a/gui/app/scripts/controllers/sut.controller.js b/gui/app/scripts/controllers/sut.controller.js
new file mode 100644
index 000000000..092aabc41
--- /dev/null
+++ b/gui/app/scripts/controllers/sut.controller.js
@@ -0,0 +1,58 @@
+'use strict';
+
+angular.module('yardStickGui2App')
+ .controller('SUTController', ['$scope', '$state', '$stateParams', 'mainFactory', 'Upload', 'toaster', '$location', 'ngDialog',
+ function($scope, $state, $stateParams, mainFactory, Upload, toaster, $location, ngDialog) {
+
+
+ init();
+ $scope.showloading = false;
+ $scope.loadingOPENrc = false;
+
+ function init() {
+
+
+ $scope.uuid = $stateParams.uuid;
+ $scope.sutInfo = {};
+ getItemIdDetail();
+ getSUTDetail();
+
+ }
+
+ function getItemIdDetail() {
+ mainFactory.ItemDetail().get({
+ 'envId': $scope.uuid
+ }).$promise.then(function(response) {
+ if (response.status == 1) {
+ $scope.envName = response.result.environment.name;
+ }else{
+ mainFactory.errorHandler1(response);
+ }
+ }, function(error) {
+ mainFactory.errorHandler2(error);
+ })
+ }
+
+ function getSUTDetail(){
+ mainFactory.SUTDetail().get({
+ 'envId': $scope.uuid
+ }).$promise.then(function(resp){
+ $scope.sutInfo = resp.result.sut;
+ console.log($scope.sutInfo);
+ }, function(error){
+ })
+ }
+
+ $scope.goBack = function goBack() {
+ $state.go('app.projectList');
+ }
+
+
+ $scope.goNext = function goNext() {
+ $scope.path = $location.path();
+ $scope.uuid = $scope.path.split('/').pop();
+ $state.go('app.container', { uuid: $scope.uuid });
+ }
+
+ }
+ ]);
diff --git a/gui/app/scripts/controllers/taskModify.controller.js b/gui/app/scripts/controllers/taskModify.controller.js
index 757d65866..c9672fea8 100644
--- a/gui/app/scripts/controllers/taskModify.controller.js
+++ b/gui/app/scripts/controllers/taskModify.controller.js
@@ -20,6 +20,7 @@ angular.module('yardStickGui2App')
$scope.constructTestSuit = constructTestSuit;
$scope.constructTestCase = constructTestCase;
$scope.getTestDeatil = getTestDeatil;
+ $scope.getTestcaseArgs = getTestcaseArgs;
$scope.confirmToServer = confirmToServer;
$scope.addEnvToTask = addEnvToTask;
}
@@ -46,6 +47,8 @@ angular.module('yardStickGui2App')
getItemIdDetail($scope.taskDetailData.environment_id);
}
+ getTestcaseArgs();
+
}
}, function(error) {
toaster.pop({
@@ -277,7 +280,6 @@ angular.module('yardStickGui2App')
function getTestDeatil() {
-
if ($scope.selectType.name == 'Test Case') {
getTestcaseDetail();
} else {
@@ -307,6 +309,29 @@ angular.module('yardStickGui2App')
}
+ function getTestcaseArgs(){
+ mainFactory.getTestcaseDetail().get({
+ 'testcasename': $scope.taskDetailData.case_name
+ }).$promise.then(function(resp){
+ if(resp.status == 1){
+ $scope.optionalParams = resp.result.args;
+ var params = $scope.taskDetailData.params;
+ if(params){
+ angular.forEach($scope.optionalParams, function(value, name){
+ if(name in params){
+ value.value = params[name];
+ }
+ });
+ }
+ }else{
+ mainFactory.errorHandler1(resp);
+ }
+ }, function(error){
+ mainFactory.errorHandler2(error);
+ });
+ }
+
+
function getTestcaseDetail() {
mainFactory.getTestcaseDetail().get({
'testcasename': $scope.selectCase
@@ -316,15 +341,13 @@ angular.module('yardStickGui2App')
$scope.displayTable = false;
$scope.contentInfo = response.result.testcase;
+ $scope.optionalParams = response.result.args;
+ }else{
+ mainFactory.errorHandler1(response);
}
}, function(error) {
- toaster.pop({
- type: 'error',
- title: 'fail',
- body: 'unknow error',
- timeout: 3000
- });
+ mainFactory.errorHandler2(error);
})
}
@@ -426,12 +449,38 @@ angular.module('yardStickGui2App')
if ($scope.selectCase == 'Test Case' || $scope.taskDetailData.suite == false) {
addCasetoTask(content);
+ addParamsToTask();
} else {
addSuitetoTask(content);
}
}
+ function addParamsToTask(){
+ var params = {}
+ angular.forEach($scope.optionalParams, function(value, name){
+ if(value.value){
+ params[name] = value.value;
+ }
+ });
+
+ mainFactory.taskAddParams().put({
+ 'taskId': $stateParams.taskId,
+ 'action': 'add_params',
+ 'args': {
+ 'params': params
+ }
+ }).$promise.then(function(resp) {
+ if (resp.status == 1) {
+ } else {
+ mainFactory.errorHandler1(resp);
+ }
+ }, function(error) {
+ mainFactory.errorHandler2(error);
+ })
+ }
+
+
function addEnvToTask() {
mainFactory.taskAddEnv().put({
diff --git a/gui/app/scripts/factory/main.factory.js b/gui/app/scripts/factory/main.factory.js
index 7637a9ff3..f75369336 100644
--- a/gui/app/scripts/factory/main.factory.js
+++ b/gui/app/scripts/factory/main.factory.js
@@ -58,6 +58,13 @@ angular.module('yardStickGui2App')
}
})
},
+ SUTDetail: function() {
+ return $resource(Base_URL + '/api/v2/yardstick/environments/:envId/sut', { envId: "@envId" }, {
+ 'get': {
+ method: 'GET'
+ }
+ })
+ },
ImageDetail: function() {
return $resource(Base_URL + '/api/v2/yardstick/images/:image_id', { image_id: "@image_id" }, {
'get': {
@@ -214,6 +221,14 @@ angular.module('yardStickGui2App')
}
})
},
+
+ taskAddParams: function() {
+ return $resource(Base_URL + '/api/v2/yardstick/tasks/:taskId', { taskId: "@taskId" }, {
+ 'put': {
+ method: 'PUT'
+ }
+ })
+ },
//delete operate
deleteEnv: function() {
return $resource(Base_URL + '/api/v2/yardstick/environments/:env_id', { env_id: '@env_id' }, {
diff --git a/gui/app/scripts/router.config.js b/gui/app/scripts/router.config.js
index da2eb086b..75d5372fb 100644
--- a/gui/app/scripts/router.config.js
+++ b/gui/app/scripts/router.config.js
@@ -116,6 +116,15 @@ angular.module('yardStickGui2App')
label: 'Container Manage'
}
})
+ .state('app.sut', {
+ url: '/envsut/:uuid',
+ templateUrl: 'views/sut.html',
+ controller: 'SUTController',
+ params: { uuid: null },
+ ncyBreadcrumb: {
+ label: 'SUT Manage'
+ }
+ })
.state('app.projectList', {
url: '/project',
templateUrl: 'views/projectList.html',
diff --git a/gui/app/views/container.html b/gui/app/views/container.html
index b3d78bfb1..ea5902996 100644
--- a/gui/app/views/container.html
+++ b/gui/app/views/container.html
@@ -5,7 +5,7 @@
<div style="width:750px;">
<h3>{{envName}} -- Container
- <!--<button class="btn btn-default" style="float:right">Go Next</button>-->
+ <button class="btn btn-default" ng-click="goNext()" style="float:right">Next</button>
</h3>
<!--<p>In this process, you can input your define openrc config or upload a openrc file</p>-->
diff --git a/gui/app/views/layout/sideNav.html b/gui/app/views/layout/sideNav.html
index 6c4426307..2333d22d5 100644
--- a/gui/app/views/layout/sideNav.html
+++ b/gui/app/views/layout/sideNav.html
@@ -42,6 +42,9 @@
<div class="panel-body " style="border:none;text-align: right;cursor:pointer" ng-click="gotoContainerPage()" ng-class="{active:$state.includes('app.container')}">
Container
</div>
+ <div class="panel-body " style="border:none;text-align: right;cursor:pointer" ng-click="gotoSUTPage()" ng-class="{active:$state.includes('app.sut')}">
+ SUT
+ </div>
<div class="panel-body " style="border:none;text-align: right;">
Others
</div>
@@ -151,4 +154,4 @@
.active.panel-body {
background-color: #dfe3e4;
}
-</style> \ No newline at end of file
+</style>
diff --git a/gui/app/views/modal/taskCreate.html b/gui/app/views/modal/taskCreate.html
index 2d7f1dc3b..ab6ff0ca1 100644
--- a/gui/app/views/modal/taskCreate.html
+++ b/gui/app/views/modal/taskCreate.html
@@ -80,13 +80,20 @@
</div>
</div>
- <div ng-show="displayTable==false">
- <textarea ng-model="contentInfo" spellcheck="false">
-
-
- </textarea>
-
+ <div ng-show="displayTable==false" style="display:flex;flex-direction:row;justify-content:space-between;margin-top:10px;">
+ <textarea class="col-md-8" ng-model="contentInfo" style="margin-top:5px;" spellcheck="false"></textarea>
+ <div class="col-md-4" style="border:1px solid #e8e8e8;margin-top:5px;margin-left:10px;padding-top:30px;">
+ <h4>Optional Paramters:</h4>
+ <form class="form-horizontal col-md-offset-2" style="margin-top:20px">
+ <div ng-repeat="(name, value) in optionalParams" class="form-group">
+ <label for="param{{$index}}" class="col-md-5" style="font-weight:normal;">{{ name }}:</label>
+ <div class="col-md-5">
+ <input type="text" ng-model="value.value" class="form-control" id="param{{$index}}">
+ </div>
+ </div>
+ </form>
+ </div>
</div>
diff --git a/gui/app/views/sut.html b/gui/app/views/sut.html
new file mode 100644
index 000000000..8cf1fcd6c
--- /dev/null
+++ b/gui/app/views/sut.html
@@ -0,0 +1,33 @@
+<!--sut management-->
+
+<div class="content">
+ <div style="display:flex;flex-direction:row;">
+ <div style="width:750px;">
+
+ <h3>{{envName}} -- SUT
+ <!--<button class="btn btn-default" style="float:right">Go Next</button>-->
+
+ </h3>
+
+ <h2>Hosts</h2>
+ <div ng-repeat="(host, info) in sutInfo">
+ <hr/>
+ <div class="results-table" style="margin-top:30px;">
+ <table class="table table-striped table-hover">
+ <tbody style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
+ <tr ng-repeat="record in info">
+ <td>{{ record[0] }}</td>
+ <td>{{ record[1] }}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+ </div>
+
+</div>
+<toaster-container></toaster-container>
+
+<style>
+</style>
diff --git a/gui/app/views/taskmodify.html b/gui/app/views/taskmodify.html
index d12df4ba2..24b3d945f 100644
--- a/gui/app/views/taskmodify.html
+++ b/gui/app/views/taskmodify.html
@@ -42,11 +42,20 @@
<button class="btn btn-default" style="float:right" ng-disabled="sourceShow==null" ng-click="confirmToServer(contentInfo,taskDetailData.content)">Confirm</button>
</div>
-
- <textarea ng-model="taskDetailData.content" ng-show="sourceShow==false" style="margin-top:5px;" spellcheck="false">
-
-
- </textarea>
+ <div ng-show="sourceShow==false" style="display:flex;flex-direction:row;justify-content:space-between;margin-top:10px;">
+ <textarea class="col-md-8" ng-model="taskDetailData.content" style="margin-top:5px;" spellcheck="false"></textarea>
+ <div class="col-md-4" style="border:1px solid #e8e8e8;margin-top:5px;margin-left:10px;padding-top:30px;">
+ <h4>Optional Paramters:</h4>
+ <form class="form-horizontal col-md-offset-2" style="margin-top:20px">
+ <div ng-repeat="(name, value) in optionalParams" class="form-group">
+ <label for="param{{$index}}" class="col-md-5" style="font-weight:normal;">{{ name }}:</label>
+ <div class="col-md-5">
+ <input type="text" ng-model="value.value" class="form-control" id="param{{$index}}">
+ </div>
+ </div>
+ </form>
+ </div>
+ </div>
<div ng-show="sourceShow==true">
<div style="display:flex;flex-direction:row">
@@ -102,9 +111,7 @@
<div ng-show="displayTable==false">
<textarea ng-model="contentInfo" spellcheck="false">
- </textarea>
-
-
+ </textarea>
</div>
</div>
diff --git a/gui/bower.json b/gui/bower.json
index d1d934f64..311c759cb 100644
--- a/gui/bower.json
+++ b/gui/bower.json
@@ -22,7 +22,7 @@
"angular-sanitize": "^1.6.5"
},
"resolutions": {
- "angular": "~1.6.x"
+ "angular": "~1.7.x"
},
"devDependencies": {
"angular-mocks": "^1.4.0"
diff --git a/gui/gui.sh b/gui/gui.sh
index 12a14923e..0746fb4a4 100755
--- a/gui/gui.sh
+++ b/gui/gui.sh
@@ -1,5 +1,6 @@
+curl -sL https://deb.nodesource.com/setup_8.x -o /tmp/nodesource_setup.sh
+bash /tmp/nodesource_setup.sh
apt-get install -y nodejs
-apt-get install -y npm
ln -s /usr/bin/nodejs /usr/bin/node
npm install
npm install -g grunt
diff --git a/gui/package.json b/gui/package.json
index b85c75469..3d1a086fd 100644
--- a/gui/package.json
+++ b/gui/package.json
@@ -39,5 +39,8 @@
},
"scripts": {
"test": "karma start test\\karma.conf.js"
+ },
+ "config": {
+ "unsafe-perm": true
}
}
diff --git a/install.sh b/install.sh
index 5cd83677b..74929345d 100755
--- a/install.sh
+++ b/install.sh
@@ -84,7 +84,8 @@ apt-get update && apt-get install -y \
libxft-dev \
libxss-dev \
sudo \
- iputils-ping
+ iputils-ping \
+ rabbitmq-server
if [[ "${DOCKER_ARCH}" != "aarch64" ]]; then
apt-get install -y libc6:arm64
@@ -94,9 +95,14 @@ apt-get -y autoremove && apt-get clean
git config --global http.sslVerify false
+# Start and configure RabbitMQ
+service rabbitmq-server restart
+rabbitmqctl start_app
+rabbitmqctl add_user yardstick yardstick
+rabbitmqctl set_permissions yardstick ".*" ".*" ".*"
# install yardstick + dependencies
-easy_install -U pip
+easy_install -U pip==9.0.1
pip install -r requirements.txt
pip install -e .
@@ -113,4 +119,4 @@ tar xvf ${NSB_DIR}/trex_client.tar.gz -C ${NSB_DIR}
rm -f ${NSB_DIR}/trex_client.tar.gz
service nginx restart
-uwsgi -i /etc/yardstick/yardstick.ini
+uwsgi -i /etc/yardstick/yardstick.ini \ No newline at end of file
diff --git a/nsb_setup.sh b/nsb_setup.sh
index a983f4de7..49eb5def8 100755
--- a/nsb_setup.sh
+++ b/nsb_setup.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-# Copyright (c) 2017 Intel Corporation.
+# Copyright (c) 2017-2019 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,14 +13,78 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+usage()
+{
+ cat <<EOF
+
+Yardstick NSB setup script.
+
+Usage: $0 [-h] [[-o] admin-openrc-for-openstack] [-i yardstick-docker-image]
+
+Options:
+ -h Show this message and exit
+ -o openrc Specify admin-openrc file with OpenStack credentials
+ Defaults to none
+ -i image Specify Yardstick Docker image, e.g. opnfv/yardstick:stable
+ Default value provided by ansible/nsb_setup.yml
+ See https://hub.docker.com/r/opnfv/yardstick/tags/
+
+EOF
+}
+
+OPTSTR=':ho:i:'
+openrc=
+image=
+
+# For backward compatibility reasons, accept openrc both as an argument
+# and as the -o option. Hence these two loops.
+while [ $# -ge 1 ]; do
+ OPTIND=1
+ while getopts ${OPTSTR} OPT; do
+ case $OPT in
+ h)
+ usage
+ exit 0
+ ;;
+ o)
+ openrc=${OPTARG}
+ ;;
+ i)
+ image=${OPTARG}
+ ;;
+ :)
+ usage
+ echo "ERROR: Missing value for -${OPTARG} option"
+ exit 1
+ ;;
+ *)
+ usage
+ echo "ERROR: Invalid -${OPTARG} option"
+ exit 1
+ ;;
+ esac
+ done
+
+ if [ ${OPTIND} -eq 1 ]; then
+ openrc=$1
+ shift
+ else
+ shift $((OPTIND - 1))
+ fi
+done
+
# OPENRC handling has to be first due no_proxy
-if [ $# -eq 1 ]; then
- OPENRC=$(readlink -f -- "$1")
+if [ -n "${openrc}" ]; then
+ OPENRC=$(readlink -f -- "${openrc}")
extra_args="${extra_args} -e openrc_file=${OPENRC}"
source "${OPENRC}"
CONTROLLER_IP=$(echo ${OS_AUTH_URL} | sed -ne "s#http://\([0-9a-zA-Z.\-]*\):*[0-9]*/.*#\1#p")
fi
+if [ -n "${image}" ]; then
+ extra_args="${extra_args} -e yardstick_docker_image=${image}"
+fi
+
env_http_proxy=$(sed -ne "s/^http_proxy=[\"\']\(.*\)[\"\']/\1/p" /etc/environment)
if [[ -z ${http_proxy} ]] && [[ ! -z ${env_http_proxy} ]]; then
export http_proxy=${env_http_proxy}
@@ -42,6 +106,16 @@ proxy_env:
https_proxy: ${https_proxy}
no_proxy: ${no_proxy}
EOF
+
+ mkdir -p /etc/systemd/system/docker.service.d
+ cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf
+---
+[Service]
+Environment="HTTP_PROXY=${http_proxy}" "HTTPS_PROXY=${https_proxy}" "NO_PROXY=${no_proxy}"
+EOF
+
+ systemctl daemon-reload
+ systemctl restart docker
fi
apt-get update > /dev/null 2>&1
@@ -53,12 +127,15 @@ for i in "${pkg[@]}"; do
fi
done
-pip install ansible==2.3.2 shade==1.17.0 docker-py==1.10.6
+pip install ansible==2.5.5 shade==1.22.2 docker-py==1.10.6
ANSIBLE_SCRIPTS="ansible"
-cd ${ANSIBLE_SCRIPTS} &&\
+cd ${ANSIBLE_SCRIPTS} && \
ansible-playbook \
- -e img_modify_playbook='ubuntu_server_cloudimg_modify_samplevnfs.yml' \
- -e YARD_IMG_ARCH='amd64' ${extra_args}\
- -i yardstick-install-inventory.ini nsb_setup.yml
+ -e IMAGE_PROPERTY='nsb' \
+ -e OS_RELEASE='xenial' \
+ -e INSTALLATION_MODE='container_pull' \
+ -e YARD_IMAGE_ARCH='amd64' ${extra_args} \
+ -i install-inventory.ini install.yaml
+
diff --git a/requirements.txt b/requirements.txt
index dec58b6b6..c441900e7 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,6 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
@@ -7,81 +10,63 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-Babel==2.3.4 # BSD; OSI Approved BSD License
-Jinja2==2.8.1 # BSD; OSI Approved BSD License
-MarkupSafe==0.23 # BSD; OSI Approved BSD License
-PTable==0.9.2 # BSD (3 clause); OSI Approved BSD License
-PyYAML==3.12 # MIT; OSI Approved MIT License
-SQLAlchemy==1.1.4 # MIT License; OSI Approved MIT License
-ansible==2.3.2 # GPLv3; OSI Approved GNU General Public License v3 or later (GPLv3+)
-appdirs==1.4.3 # MIT; OSI Approved MIT License
-backport-ipaddress==0.1; python_version <= "2.7" # OSI Approved Python Software Foundation License
-chainmap==1.0.2 # Python Software Foundation License; OSI Approved Python Software Foundation License
-cliff==2.4.0 # OSI Approved Apache Software License
-cmd2==0.6.9 # MIT; OSI Approved MIT License
-debtcollector==1.11.0 # OSI Approved Apache Software License
-django==1.8.17 # BSD; OSI Approved BSD License
-docker-py==1.10.6 # OSI Approved Apache Software License
-ecdsa==0.13 # MIT
-extras==1.0.0 # OSI Approved MIT License
-flasgger==0.5.13 # MIT
-flask-restful-swagger==0.19 # MIT
-flask-restful==0.3.5 # BSD; OSI Approved BSD License
-flask==0.11.1 # BSD; OSI Approved BSD License
-funcsigs==1.0.2 # ASL; OSI Approved Apache Software License
-functools32==3.2.3.post2; python_version <= "2.7" # PSF license
-futures==3.0.5 # BSD; OSI Approved BSD License
-influxdb==4.0.0 # MIT License; OSI Approved MIT License
-iso8601==0.1.11 # MIT; OSI Approved MIT License
-jsonpatch==1.15 # Modified BSD License; OSI Approved BSD License
-jsonpointer==1.10 # Modified BSD License; OSI Approved BSD License
-jsonschema==2.5.1 # MIT; OSI Approved MIT License
-jinja2schema==0.1.4 # OSI Approved BSD License
-keystoneauth1==2.18.0 # OSI Approved Apache Software License
-kubernetes==3.0.0a1 # OSI Approved Apache Software License
-linecache2==1.0.0 # OSI Approved Python Software Foundation License
-lxml==3.7.2 # OSI Approved BSD License
-# upgrade to version 2.0.0 to match python3 unittest.mock features
-mock==2.0.0 # OSI Approved BSD License; `BSD License`_; http://github.com/testing-cabal/mock/blob/master/LICENSE.txt
-monotonic==1.2 # Apache; OSI Approved Apache Software License
-msgpack-python==0.4.8 # OSI Approved Apache Software License
-netaddr==0.7.19 # BSD License; OSI Approved BSD License; OSI Approved MIT License
-netifaces==0.10.5 # MIT License; OSI Approved MIT License
-openstacksdk==0.9.13 # OSI Approved Apache Software License
-os-client-config==1.26.0 # OSI Approved Apache Software License
-osc-lib==1.3.0 # OSI Approved Apache Software License
-oslo.config==3.22.0 # OSI Approved Apache Software License
-oslo.i18n==3.12.0 # OSI Approved Apache Software License
-oslo.serialization==2.16.0 # OSI Approved Apache Software License
-oslo.utils==3.22.0 # OSI Approved Apache Software License
-paramiko==2.1.1 # LGPL; OSI Approved GNU Library or Lesser General Public License (LGPL)
-pbr==1.10.0 # OSI Approved Apache Software License; Apache License, Version 2.0
-# version 14.5.0 for compatibility with trex traffic generator
-pika==0.10.0 # BSD; OSI Approved BSD License
-positional==1.1.1 # OSI Approved Apache Software License
-pycrypto==2.6.1 # Public Domain
-pyparsing==2.1.10 # MIT License; OSI Approved MIT License
-pyroute2==0.4.12 # dual license GPLv2+ and Apache v2; OSI Approved GNU General Public License v2 or later (GPLv2+); OSI Approved Apache Software License
-pyrsistent==0.11.12 # LICENSE.mit; OSI Approved MIT License
-python-cinderclient==1.11.0 # OSI Approved Apache Software License
-python-glanceclient==2.6.0 # OSI Approved Apache Software License
-python-heatclient==1.8.1 # OSI Approved Apache Software License
-python-keystoneclient==3.10.0 # OSI Approved Apache Software License
-python-mimeparse==1.6.0 # OSI Approved MIT License
-python-neutronclient==6.1.0 # OSI Approved Apache Software License
-python-novaclient==7.1.1 # OSI Approved Apache Software License
-python-openstackclient==3.8.1 # OSI Approved Apache Software License
-python-swiftclient==3.3.0 # OSI Approved Apache Software License
-pytz==2016.10 # MIT; OSI Approved MIT License
-pyzmq==14.5.0 # LGPL+BSD; OSI Approved GNU Library or Lesser General Public License (LGPL); OSI Approved BSD License
-requests==2.13.0 # Apache 2.0; OSI Approved Apache Software License
-requestsexceptions==1.1.3 # OSI Approved Apache Software License
-scp==0.10.2 # LGPL
-shade==1.17.0 # OSI Approved Apache Software License
-simplejson==3.10.0 # MIT License; OSI Approved MIT License; OSI Approved Academic Free License (AFL)
-six==1.10.0 # MIT; OSI Approved MIT License
-stevedore==1.20.0 # OSI Approved Apache Software License
-traceback2==1.4.0 # OSI Approved Python Software Foundation License
-unicodecsv==0.14.1 # BSD License; OSI Approved BSD License
-warlock==1.2.0 # OSI Approved Apache Software License
-wrapt==1.10.8 # BSD
+Babel!=2.4.0 # BSD
+Jinja2 # BSD License (3 clause)
+SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8 # MIT
+PTable # BSD (3 clause); OSI Approved BSD License
+ansible # GPLv3; OSI Approved GNU General Public License v3 or later (GPLv3+)
+backport-ipaddress;python_version <= "2.7" # OSI Approved Python Software Foundation License
+chainmap # Python Software Foundation License; OSI Approved Python Software Foundation License
+cmd2!=0.8.3,<0.9.0 # MIT
+docker-py # OSI Approved Apache Software License
+extras # MIT
+flasgger # MIT
+flask-restful-swagger # MIT
+Flask-RESTful # BSD
+Flask!=0.11 # BSD
+functools32;python_version <= "2.7" # PSF license
+futures!=0.17.0;python_version=='2.7' or python_version=='2.6' # PSF
+influxdb!=5.2.0,!=5.2.1 # MIT
+IxNetwork # MIT License; OSI Approved MIT License
+jinja2schema # OSI Approved BSD License
+keystoneauth1 # Apache-2.0
+kubernetes # Apache-2.0
+mock # BSD
+msgpack-python # OSI Approved Apache Software License
+netaddr # BSD
+netifaces!=0.10.0,!=0.10.1 # MIT
+os-client-config # Apache-2.0
+osc-lib # Apache-2.0
+oslo.log # Apache-2.0
+oslo.config!=4.3.0,!=4.4.0 # Apache-2.0
+oslo.i18n # Apache-2.0
+oslo.messaging!=9.0.0 # Apache-2.0
+oslo.privsep # Apache-2.0
+oslo.serialization!=2.19.1 # Apache-2.0
+oslo.utils!=3.39.1,!=3.40.0,!=3.40.1 # Apache-2.0
+paramiko # LGPLv2.1+
+pbr!=2.1.0 # Apache-2.0
+pika # BSD
+pip # MIT
+positional # OSI Approved Apache Software License
+pycrypto # Public Domain
+pyparsing # MIT
+pyroute2;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2)
+pyrsistent # LICENSE.mit; OSI Approved MIT License
+python-cinderclient!=4.0.0 # Apache-2.0
+python-glanceclient # Apache-2.0
+python-keystoneclient!=2.1.0 # Apache-2.0
+python-neutronclient # Apache-2.0
+python-novaclient # Apache-2.0
+python-openstackclient # Apache-2.0
+pyzmq # LGPL+BSD
+requests!=2.20.0 # Apache-2.0
+requestsexceptions # Apache-2.0
+scp # LGPL
+shade # Apache-2.0
+simplejson # MIT
+six # MIT
+stevedore # Apache-2.0
+traceback2 # OSI Approved Python Software Foundation License
+unicodecsv;python_version<'3.0' # BSD
+wrapt # BSD License
diff --git a/samples/MoongenL2fwd.yaml b/samples/MoongenL2fwd.yaml
new file mode 100644
index 000000000..8c00bfec6
--- /dev/null
+++ b/samples/MoongenL2fwd.yaml
@@ -0,0 +1,96 @@
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# VSPERF specific configuration file for execution of RFC2544 throughput
+# traffic. Traffic executed by traffic generator is forwarded directly
+# between interfaces connected to the traffic generator. So test will only
+# benchmark the performance of OVS external bridge at controller node.
+# Details about supported test options and test case execution can be
+# found in VSPERF documentation:
+#
+# http://artifacts.opnfv.org/vswitchperf/docs/userguide/yardstick.html
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+{% for multistream in [1, 1000] %}
+-
+ type: MoongenTestPMD
+ options:
+ multistream: {{multistream}}
+ frame_size: 1024
+ testpmd_queue: 2
+ trafficgen_port1: 'ens4'
+ trafficgen_port2: 'ens5'
+ moongen_host_user: 'root'
+ moongen_host_passwd: 'root'
+ moongen_host_ip: '192.168.37.2'
+ moongen_dir: '/home/lua-trafficgen'
+ moongen_runBidirec: 'true'
+ Package_Loss: 0
+ SearchRuntime: 60
+ moongen_port1_mac: '88:cf:98:2f:4d:ed'
+ moongen_port2_mac: '88:cf:98:2f:4d:ee'
+ forward_type: 'l2fwd'
+
+ host: testpmd.demo
+
+ runner:
+ type: Sequence
+ scenario_option_name: frame_size
+ sequence:
+ - 64
+
+ sla:
+ # The throughput SLA (or any other SLA) cannot be set to a meaningful
+ # value without knowledge of the server and networking environment,
+ # possibly including prior testing in that environment to establish
+ # a baseline SLA level under well-understood circumstances.
+ throughput_rx_mpps: 0.5
+{% endfor %}
+
+context:
+ name: demo
+ image: yardstick-image
+ flavor:
+ vcpus: 10
+ ram: 20480
+ disk: 6
+ extra_specs:
+ hw:mem_page_size: "1GB"
+ hw:cpu_policy: "dedicated"
+ hw:vif_multiqueue_enabled: "true"
+ user: ubuntu
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ testpmd:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ test:
+ cidr: '10.0.1.0/24'
+ test2:
+ cidr: '10.0.2.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ test3:
+ cidr: '10.0.3.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
diff --git a/samples/MoongenTestPMD.yaml b/samples/MoongenTestPMD.yaml
new file mode 100644
index 000000000..b389a19bc
--- /dev/null
+++ b/samples/MoongenTestPMD.yaml
@@ -0,0 +1,106 @@
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# VSPERF specific configuration file for execution of RFC2544 throughput
+# traffic. Traffic executed by traffic generator is forwarded directly
+# between interfaces connected to the traffic generator. So test will only
+# benchmark the performance of OVS external bridge at controller node.
+# Details about supported test options and test case execution can be
+# found in VSPERF documentation:
+#
+# http://artifacts.opnfv.org/vswitchperf/docs/userguide/yardstick.html
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+{% for multistream in [1, 1000] %}
+-
+ type: MoongenTestPMD
+ options:
+ multistream: {{multistream}}
+ frame_size: 1024
+ testpmd_queue: 2
+ trafficgen_port1: 'ens5'
+ trafficgen_port2: 'ens6'
+ moongen_host_user: 'root'
+ moongen_host_passwd: 'root'
+ moongen_host_ip: '192.168.37.2'
+ moongen_dir: '/home/lua-trafficgen'
+ moongen_runBidirec: 'true'
+ Package_Loss: 0
+ SearchRuntime: 60
+ moongen_port1_mac: '88:cf:98:2f:4d:ed'
+ moongen_port2_mac: '88:cf:98:2f:4d:ee'
+ forward_type: 'testpmd'
+
+ host: testpmd.demo
+
+ runner:
+ type: Sequence
+ scenario_option_name: frame_size
+ sequence:
+ - 64
+
+ sla:
+ # The throughput SLA (or any other SLA) cannot be set to a meaningful
+ # value without knowledge of the server and networking environment,
+ # possibly including prior testing in that environment to establish
+ # a baseline SLA level under well-understood circumstances.
+ throughput_rx_mpps: 0.5
+{% endfor %}
+
+context:
+ name: demo
+ #image: yardstick-image
+ image: yardstick-nsb-image
+ flavor:
+ vcpus: 10
+ ram: 20480
+ disk: 6
+ extra_specs:
+ hw:mem_page_size: "1GB"
+ hw:cpu_policy: "dedicated"
+ hw:vif_multiqueue_enabled: "true"
+ user: ubuntu
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ testpmd:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ test:
+ cidr: '10.0.1.0/24'
+ provider: "sriov"
+ physical_network: "sriov2"
+ segmentation_id: "1063"
+ test2:
+ cidr: '10.0.2.0/24'
+ gateway_ip: 'null'
+ provider: "sriov"
+ physical_network: "sriov2"
+ segmentation_id: "1061"
+ #port_security_enabled: False
+ enable_dhcp: 'false'
+ test3:
+ cidr: '10.0.3.0/24'
+ provider: "sriov"
+ physical_network: "sriov2"
+ segmentation_id: "1062"
+ gateway_ip: 'null'
+ #port_security_enabled: False
+ enable_dhcp: 'false'
diff --git a/samples/dummy-no-context.yaml b/samples/dummy-no-context.yaml
index 7667e5a16..e4ace44c2 100644
--- a/samples/dummy-no-context.yaml
+++ b/samples/dummy-no-context.yaml
@@ -14,7 +14,7 @@ schema: "yardstick:task:0.1"
scenarios:
-
type: Dummy
-
+ name: Dummy
runner:
type: Duration
duration: 5
diff --git a/samples/dummy.yaml b/samples/dummy.yaml
index fde2907cd..2921f5d3f 100644
--- a/samples/dummy.yaml
+++ b/samples/dummy.yaml
@@ -22,4 +22,5 @@ scenarios:
context:
type: Dummy
+ name: Dummy
diff --git a/samples/energy.yaml b/samples/energy.yaml
new file mode 100755
index 000000000..bc8f8228b
--- /dev/null
+++ b/samples/energy.yaml
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2019 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
+##############################################################################
+---
+# Sample benchmark task config file
+# Monitor energy consumption during a cpu test
+# Should be used inside test cases where UnixBench is replaced by other
+# scenario type. This enables to easily consider energy consumption as a
+# mandatory metric for any performance test
+
+schema: "yardstick:task:0.1"
+
+{% set target = target or "node5"%}
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set duree = 60 %}
+{% set intervalle = 5 %}
+scenarios:
+
+-
+ type: Energy
+ run_in_background: true
+ target: {{target}}.LF
+
+ runner:
+ type: Duration
+ duration: {{duree}}
+ interval: {{intervalle}}
+
+ sla:
+ action: monitor
+
+-
+ type: UnixBench
+ options:
+ run_mode: 'verbose'
+ test_type: 'dhry2reg'
+ host: {{target}}.LF
+
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: 1
+
+
+context:
+ type: Node
+ name: LF
+ file: {{file}}
diff --git a/samples/fio.yaml b/samples/fio.yaml
index b6e5a282f..0890766cf 100644
--- a/samples/fio.yaml
+++ b/samples/fio.yaml
@@ -9,6 +9,7 @@
---
# Sample benchmark task config file
# measure storage performance using fio
+# can be used both on Openstack and Kubernetes with "context_type"
#
# For this sample just like running the command below on the test vm and
# getting benchmark info back to the yardstick.
@@ -18,18 +19,24 @@
# -direct=1 -group_reporting -numjobs=1 -time_based \
# --output-format=json
+{% set context_type = context_type or "Heat" %}
+{% set separator = separator or "." %}
+{% if context_type == "Kubernetes" %}
+{% set separator = "-" %}
+{% endif %}
+
schema: "yardstick:task:0.1"
scenarios:
-
type: Fio
options:
- filename: /home/ubuntu/data.raw
+ filename: /tmp/data.raw
bs: 4k
iodepth: 1
rw: rw
ramp_time: 10
- host: fio.demo
+ host: fio{{ separator }}demo
runner:
type: Duration
duration: 60
@@ -44,7 +51,25 @@ scenarios:
action: monitor
context:
+ type: {{ context_type }}
name: demo
+ {% if context_type == "Kubernetes" %}
+
+ servers:
+ fio:
+ image: opnfv/yardstick-image-k8s
+ resources:
+ limits:
+ cpu: 1
+ memory: 1Gi
+ requests:
+ cpu: 1
+ memory: 1Gi
+ command: /bin/bash
+ args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.;
+ chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;
+ while true ; do sleep 10000; done']
+ {% else %}
image: yardstick-image
flavor: yardstick-flavor
user: ubuntu
@@ -54,3 +79,4 @@ context:
networks:
test:
cidr: "10.0.1.0/24"
+ {% endif %}
diff --git a/samples/lmbench.yaml b/samples/lmbench.yaml
index ea2966b24..7050243f9 100644
--- a/samples/lmbench.yaml
+++ b/samples/lmbench.yaml
@@ -9,6 +9,13 @@
---
# Sample benchmark task config file
# measure memory read latency and memory bandwidth using lmbench
+# can be used both on Openstack and Kubernetes with "context_type"
+
+{% set context_type = context_type or "Heat" %}
+{% set separator = separator or "." %}
+{% if context_type == "Kubernetes" %}
+{% set separator = "-" %}
+{% endif %}
schema: "yardstick:task:0.1"
@@ -19,7 +26,7 @@ scenarios:
test_type: "latency"
stop_size: 32.0
- host: demeter.demo
+ host: demeter{{ separator }}demo
runner:
type: Arithmetic
@@ -39,7 +46,7 @@ scenarios:
test_type: "bandwidth"
benchmark: "wr"
- host: demeter.demo
+ host: demeter{{ separator }}demo
runner:
type: Arithmetic
@@ -55,7 +62,24 @@ scenarios:
action: monitor
context:
+ type: {{ context_type }}
name: demo
+ {% if context_type == "Kubernetes" %}
+ servers:
+ demeter:
+ image: opnfv/yardstick-image-k8s
+ resources:
+ limits:
+ cpu: 1
+ memory: 1Gi
+ requests:
+ cpu: 1
+ memory: 1Gi
+ command: /bin/bash
+ args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.;
+ chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;
+ while true ; do sleep 10000; done']
+ {% else %}
image: yardstick-image
flavor: yardstick-flavor
user: ubuntu
@@ -71,6 +95,5 @@ context:
networks:
test:
- cidr: '10.0.1.0/24'
-
-
+ cidr: "10.0.1.0/24"
+ {% endif %}
diff --git a/samples/netperf_soak.yaml b/samples/netperf_soak.yaml
new file mode 100644
index 000000000..a7344dae2
--- /dev/null
+++ b/samples/netperf_soak.yaml
@@ -0,0 +1,71 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# Bottlenecks long duration test need Yardstick to create VM pairs and use netperf sending messages
+# This yaml file for the above operations based on Netperf mode similiar as netperf.yaml
+# UDP_STREAM is used and out_opt is customized
+
+schema: "yardstick:task:0.1"
+
+{% set tx_msg_size = tx_msg_size or "8K" %}
+{% set rx_msg_size = rx_msg_size or "8K" %}
+{% set test_time = test_time or "10" %}
+{% set out_opt = out_opt or "THROUGHPUT,THROUGHPUT_UNITS,MEAN_LATENCY,LOCAL_CPU_UTIL,REMOTE_CPU_UTIL,LOCAL_BYTES_SENT,REMOTE_BYTES_RECVD" %}
+{% set image_name = image_name or "yardstick-image" %}
+{% set cpu_num = cpu_num or 1 %}
+{% set ram_num = ram_num or 512 %}
+{% set disk_num = disk_num or 7 %}
+
+scenarios:
+-
+ type: Netperf
+ options:
+ testname: 'UDP_STREAM'
+ send_msg_size: {{tx_msg_size}}
+ recv_msg_size: {{rx_msg_size}}
+ duration: {{test_time}}
+ output_opt: {{out_opt}}
+
+ host: netperf-host.demo
+ target: netperf-target.demo
+
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: 1
+ run_step: 'setup,run'
+
+ sla:
+ mean_latency: 100
+ action: monitor
+
+context:
+ name: demo
+ image: {{image_name}}
+ flavor:
+ vcpus: {{cpu_num}}
+ ram: {{ram_num}}
+ disk: {{disk_num}}
+ user: ubuntu
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ netperf-host:
+ floating_ip: true
+ placement: "pgrp1"
+ netperf-target:
+ floating_ip: false
+ placement: "pgrp1"
+
+ networks:
+ test:
+ cidr: '10.0.1.0/24'
diff --git a/samples/parser.yaml b/samples/parser.yaml
index e2e4b66ce..682c11329 100644
--- a/samples/parser.yaml
+++ b/samples/parser.yaml
@@ -27,3 +27,4 @@ scenarios:
context:
type: Dummy
+ name: Dummy
diff --git a/samples/ping-mixed-network.yaml b/samples/ping-mixed-network.yaml
new file mode 100644
index 000000000..76e05c9aa
--- /dev/null
+++ b/samples/ping-mixed-network.yaml
@@ -0,0 +1,65 @@
+##############################################################################
+## Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+###############################################################################
+---
+# Sample benchmark task config file
+# measure network latency using ping
+# This test case sample uses existing network to be public network,
+# and also create the private network by heat like normal ping.
+
+schema: "yardstick:task:0.1"
+
+{% set public_net = public_net or 'public' %}
+{% set public_subnet = public_subnet or 'public_subnet' %}
+{% set provider = provider or none %}
+{% set physical_network = physical_network or 'physnet1' %}
+{% set segmentation_id = segmentation_id or none %}
+
+scenarios:
+-
+ type: Ping
+ options:
+ packetsize: 200
+ host: athena.demo
+ target: ares.demo
+
+ runner:
+ type: Duration
+ duration: 60
+ interval: 1
+
+ sla:
+ max_rtt: 10
+ action: monitor
+
+context:
+ name: demo
+ image: yardstick-image
+ flavor: yardstick-flavor
+ user: ubuntu
+
+ servers:
+ athena:
+ ares:
+
+ networks:
+ test:
+ cidr: '10.0.1.0/24'
+ {% if provider == "vlan" %}
+ provider: {{provider}}
+ physical_network: {{physical_network}}
+ {% if segmentation_id %}
+ segmentation_id: {{segmentation_id}}
+ {% endif %}
+ {% endif %}
+
+ {{ public_net }}:
+ net_flags:
+ is_existing: true
+ is_public: true
+ subnet: {{ public_subnet }}
diff --git a/samples/ping-one-exising-network.yaml b/samples/ping-one-exising-network.yaml
new file mode 100644
index 000000000..9e33148d6
--- /dev/null
+++ b/samples/ping-one-exising-network.yaml
@@ -0,0 +1,50 @@
+##############################################################################
+## Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+###############################################################################
+---
+# Sample benchmark task config file
+# measure network latency using ping
+# This sample use one existing network as both public network and private network.
+
+schema: "yardstick:task:0.1"
+
+{% set public_net = public_net or 'public' %}
+{% set public_subnet = public_subnet or 'public_subnet' %}
+
+scenarios:
+-
+ type: Ping
+ options:
+ packetsize: 200
+ host: athena.demo
+ target: ares.demo
+
+ runner:
+ type: Duration
+ duration: 60
+ interval: 1
+
+ sla:
+ max_rtt: 10
+ action: monitor
+
+context:
+ name: demo
+ image: yardstick-image
+ flavor: yardstick-flavor
+ user: ubuntu
+
+ servers:
+ athena:
+ ares:
+
+ networks:
+ {{ public_net }}:
+ net_flags:
+ is_existing: true
+ subnet: {{ public_subnet }}
diff --git a/samples/ping-security-group.yaml b/samples/ping-security-group.yaml
new file mode 100644
index 000000000..1545ee1cf
--- /dev/null
+++ b/samples/ping-security-group.yaml
@@ -0,0 +1,74 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# Sample ping test case using custom security group
+# measure network latency using ping
+
+schema: "yardstick:task:0.1"
+
+{% set provider = provider or none %}
+{% set physical_network = physical_network or 'physnet1' %}
+{% set segmentation_id = segmentation_id or none %}
+scenarios:
+-
+ type: Ping
+ options:
+ packetsize: 200
+ host: athena.demo
+ target: ares.demo
+
+ runner:
+ type: Duration
+ duration: 60
+ interval: 1
+
+ sla:
+ max_rtt: 10
+ action: monitor
+
+context:
+ name: demo
+ image: yardstick-image
+ flavor: yardstick-flavor
+ user: ubuntu
+ security_group:
+ rules:
+ - remote_ip_prefix: "0.0.0.0/0"
+ protocol: "tcp"
+ port_range_min: 1
+ port_range_max: 65535
+ - remote_ip_prefix: "0.0.0.0/0"
+ protocol: "udp"
+ port_range_min: 1
+ port_range_max: 65535
+ - remote_ip_prefix: "0.0.0.0/0"
+ protocol: "icmp"
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ athena:
+ floating_ip: true
+ placement: "pgrp1"
+ ares:
+ placement: "pgrp1"
+
+
+ networks:
+ test:
+ cidr: '10.0.1.0/24'
+ {% if provider == "vlan" %}
+ provider: {{provider}}
+ physical_network: {{physical_network}}
+ {% if segmentation_id %}
+ segmentation_id: {{segmentation_id}}
+ {% endif %}
+ {% endif %}
diff --git a/samples/ping-two-exising-network.yaml b/samples/ping-two-exising-network.yaml
new file mode 100644
index 000000000..adea43ef5
--- /dev/null
+++ b/samples/ping-two-exising-network.yaml
@@ -0,0 +1,58 @@
+##############################################################################
+## Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+###############################################################################
+---
+# Sample benchmark task config file
+# measure network latency using ping
+# This sample use two existing network, one as public network to replace for
+# floating ip, one as private network to ping between VMs.
+
+schema: "yardstick:task:0.1"
+
+{% set private_net = private_net or 'private' %}
+{% set private_subnet = private_subnet or 'private_subnet' %}
+{% set public_net = public_net or 'public' %}
+{% set public_subnet = public_subnet or 'public_subnet' %}
+
+scenarios:
+-
+ type: Ping
+ options:
+ packetsize: 200
+ host: athena.demo
+ target: ares.demo
+
+ runner:
+ type: Duration
+ duration: 60
+ interval: 1
+
+ sla:
+ max_rtt: 10
+ action: monitor
+
+context:
+ name: demo
+ image: yardstick-image
+ flavor: yardstick-flavor
+ user: ubuntu
+
+ servers:
+ athena:
+ ares:
+
+ networks:
+ {{ private_net }}:
+ net_flags:
+ is_existing: true
+ subnet: {{ private_subnet }}
+ {{ public_net }}:
+ net_flags:
+ is_existing: true
+ is_public: true
+ subnet: {{ public_subnet }}
diff --git a/samples/ping_bottlenecks.yaml b/samples/ping_bottlenecks.yaml
index e6fef4259..895ec78fc 100644
--- a/samples/ping_bottlenecks.yaml
+++ b/samples/ping_bottlenecks.yaml
@@ -15,6 +15,11 @@ description: >
measure VMs latency using ping;
run_in_parallel: true
{% set stack_num = stack_num or 1 %}
+{% set image_name = image_name or "yardstick-image" %}
+{% set cpu_num = cpu_num or 1 %}
+{% set ram_num = ram_num or 512 %}
+{% set disk_num = disk_num or 7 %}
+{% set dpdk_enabled = dpdk_enabled or False %}
scenarios:
{% for num in range(stack_num) %}
@@ -22,31 +27,52 @@ scenarios:
type: Ping
options:
packetsize: 100
- host: demo1.demo{{num}}
- target: demo2.demo{{num}}
+ host: demo2.demo{{num}}
+ target: demo1.demo{{num}}
runner:
type: Duration
duration: 60
interval: 1
+ sla:
+ max_rtt: 10
{% endfor %}
contexts:
{% for num in range(stack_num) %}
-
name: demo{{num}}
- image: yardstick-image
- flavor: yardstick-flavor
+ image: {{image_name}}
+ flavor:
+ vcpus: {{cpu_num}}
+ ram: {{ram_num}}
+ disk: {{disk_num}}
+ {% if dpdk_enabled %}
+ extra_specs:
+ hw:mem_page_size: "large"
+ {% endif %}
user: ubuntu
+ security_group:
+ rules:
+ - remote_ip_prefix: "0.0.0.0/0"
+ protocol: "tcp"
+ port_range_min: 1
+ port_range_max: 65535
+ - remote_ip_prefix: "0.0.0.0/0"
+ protocol: "udp"
+ port_range_min: 1
+ port_range_max: 65535
+ - remote_ip_prefix: "0.0.0.0/0"
+ protocol: "icmp"
placement_groups:
pgrp1:
policy: "availability"
servers:
- demo1:
+ demo2:
floating_ip: true
placement: "pgrp1"
- demo2:
+ demo1:
placement: "pgrp1"
networks:
diff --git a/samples/storage_bottlenecks.yaml b/samples/storage_bottlenecks.yaml
new file mode 100644
index 000000000..971a307da
--- /dev/null
+++ b/samples/storage_bottlenecks.yaml
@@ -0,0 +1,85 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# Sample benchmark task config file
+# measure storage performance using fio
+#
+# For this sample just like running the command below on the test vm and
+# getting benchmark info back to the yardstick.
+#
+# sudo fio -filename=/home/ubuntu/data.raw -bs=4k -ipdepth=1 -rw=rw \
+# -ramp_time=10 -runtime=60 -name=yardstick-fio -ioengine=libaio \
+# -direct=1 -group_reporting -numjobs=1 -time_based \
+# --output-format=json
+
+schema: "yardstick:task:0.1"
+run_in_parallel: true
+
+{% set directory = directory or '/FIO_Test' %}
+{% set stack_num = stack_num or 1 %}
+{% set volume_num = volume_num or "1" %}
+{% set rw = rw or "randrw" %}
+{% set bs = bs or "4k" %}
+{% set size = size or "30g" %}
+{% set rwmixwrite = rwmixwrite or "50" %}
+{% set numjobs = numjobs or "1" %}
+{% set direct = direct or "1" %}
+{% set volume_size = volume_size or 50 %}
+{% set image_name = image_name or "yardstick-image" %}
+{% set cpu_num = cpu_num or 1 %}
+{% set ram_num = ram_num or 512 %}
+{% set disk_num = disk_num or 7 %}
+{% set run_time = run_time or 3000 %}
+
+scenarios:
+{% for num in range(stack_num) %}
+-
+ type: Fio
+ options:
+ filename: {{ directory }}/test
+ directory: {{ directory }}
+ bs: {{bs}}
+ rw: {{rw}}
+ size: {{size}}
+ rwmixwrite: {{rwmixwrite}}
+ numjobs: {{numjobs}}
+ direct: {{direct}}
+ ramp_time: 10
+
+ host: demo.storage_bottlenecks-{{num}}-{{volume_num}}
+
+ runner:
+ type: Duration
+ duration: {{ run_time }}
+ interval: 1
+{% endfor %}
+
+contexts:
+{% for context_num in range(stack_num) %}
+-
+ name: storage_bottlenecks-{{context_num}}-{{volume_num}}
+ image: {{image_name}}
+ flavor:
+ vcpus: {{cpu_num}}
+ ram: {{ram_num}}
+ disk: {{disk_num}}
+ user: ubuntu
+
+ servers:
+ demo:
+ volume:
+ size: {{volume_size}}
+ volume_mountpoint: "/dev/vdb"
+ floating_ip: true
+
+ networks:
+ test:
+ cidr: "10.0.1.0/24"
+ port_security_enabled: true
+{% endfor %}
diff --git a/samples/storperf.yaml b/samples/storperf.yaml
index 2ea022173..00f74c1fe 100644
--- a/samples/storperf.yaml
+++ b/samples/storperf.yaml
@@ -38,3 +38,4 @@ scenarios:
context:
type: Dummy
+ name: Dummy
diff --git a/samples/test_suite.yaml b/samples/test_suite.yaml
index 9a766b06a..6f5f53b46 100644
--- a/samples/test_suite.yaml
+++ b/samples/test_suite.yaml
@@ -20,7 +20,8 @@ test_cases:
file_name: ping.yaml
-
file_name: ping-template.yaml
- task_args: '{"packetsize": "200"}'
+ task_args:
+ default: '{"packetsize": "200"}'
-
file_name: ping-template.yaml
task_args_file: "/tmp/test-args-file.json"
diff --git a/samples/vnf_samples/nsut/2trex/tc_trex_baremetal_context.yaml b/samples/vnf_samples/nsut/2trex/tc_trex_baremetal_context.yaml
index d96236e17..050c8cc0f 100644
--- a/samples/vnf_samples/nsut/2trex/tc_trex_baremetal_context.yaml
+++ b/samples/vnf_samples/nsut/2trex/tc_trex_baremetal_context.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,14 +22,14 @@ scenarios:
topology: trex_tg_topology.yaml # TODO: look in relative path where the tc.yaml is found
nodes: # This section is copied from pod.xml or resolved via Heat
- trexgen__1: trafficgen_1.yardstick
- trexvnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
vnf_options:
- trexgen__1:
- target_ip: trexvnf__0.xe0.local_ip # TODO: resolve to config vars
- trexvnf__0:
- target_ip: trexgen__1.xe1.local_ip # TODO: resolve to config vars
+ tg__0:
+ target_ip: vnf__0.xe0.local_ip # TODO: resolve to config vars
+ vnf__0:
+ target_ip: tg__0.xe1.local_ip # TODO: resolve to config vars
runner:
type: Duration
duration: 10
diff --git a/samples/vnf_samples/nsut/2trex/trex_tg_topology.yaml b/samples/vnf_samples/nsut/2trex/trex_tg_topology.yaml
index 822cf5eba..ab95bb9ce 100644
--- a/samples/vnf_samples/nsut/2trex/trex_tg_topology.yaml
+++ b/samples/vnf_samples/nsut/2trex/trex_tg_topology.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -20,31 +20,31 @@ nsd:nsd-catalog:
description: trex-tg-topology
constituent-vnfd:
- member-vnf-index: '1'
- vnfd-id-ref: trexgen__0
+ vnfd-id-ref: tg__0
VNF model: ../../vnf_descriptors/tg_trex_tpl.yaml #VNF type
- member-vnf-index: '2'
- vnfd-id-ref: trexvnf__0
+ vnfd-id-ref: vnf__0
VNF model: ../../vnf_descriptors/tg_trex_tpl.yaml #VNF type
vld:
- id: uplink
- name: trexgen__0 to trexvnf__0 link 1
+ name: tg__0 to vnf__0 link 1
type: ELAN
vnfd-connection-point-ref:
- member-vnf-index-ref: '1'
vnfd-connection-point-ref: xe0
- vnfd-id-ref: trexgen
+ vnfd-id-ref: tg__0
- member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe0
- vnfd-id-ref: trexgen
+ vnfd-id-ref: vnf__0
- id: downlink
- name: trexvnf__0 to trexgen__0 link 2
+ name: vnf__0 to tg__0 link 2
type: ELAN
vnfd-connection-point-ref:
- member-vnf-index-ref: '1'
vnfd-connection-point-ref: xe1
- vnfd-id-ref: trexgen
+ vnfd-id-ref: vnf__0
- member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe1
- vnfd-id-ref: trexgen
+ vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/acl/acl_1rule.yaml b/samples/vnf_samples/nsut/acl/acl_1rule.yaml
index b184a29e2..49066e924 100644
--- a/samples/vnf_samples/nsut/acl/acl_1rule.yaml
+++ b/samples/vnf_samples/nsut/acl/acl_1rule.yaml
@@ -11,37 +11,29 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
-access-list1:
- acl:
- access-list-entries:
- - ace:
- ace-oper-data:
- match-counter: 0
- actions: drop,count
- matches:
- destination-ipv4-network: 152.16.40.20/24
- destination-port-range:
- lower-port: 0
- upper-port: 65535
- source-ipv4-network: 0.0.0.0/0
- source-port-range:
- lower-port: 0
- upper-port: 65535
- rule-name: rule1588
- - ace:
- ace-oper-data:
- match-counter: 0
- actions: drop,count
- matches:
- destination-ipv4-network: 0.0.0.0/0
- destination-port-range:
- lower-port: 0
- upper-port: 65535
- source-ipv4-network: 152.16.100.20/24
- source-port-range:
- lower-port: 0
- upper-port: 65535
- rule-name: rule1589
- acl-name: sample-ipv4-acl
- acl-type: ipv4-acl
+---
+access-list-entries:
+ -
+ actions: [drop,count]
+ matches:
+ destination-ipv4-network: 152.16.40.20/24
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 0.0.0.0/0
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1588
+ -
+ actions: [drop,count]
+ matches:
+ destination-ipv4-network: 0.0.0.0/0
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 152.16.100.20/24
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1589
diff --git a/samples/vnf_samples/nsut/acl/acl_rules.yaml b/samples/vnf_samples/nsut/acl/acl_rules.yaml
deleted file mode 100644
index b184a29e2..000000000
--- a/samples/vnf_samples/nsut/acl/acl_rules.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-access-list1:
- acl:
- access-list-entries:
- - ace:
- ace-oper-data:
- match-counter: 0
- actions: drop,count
- matches:
- destination-ipv4-network: 152.16.40.20/24
- destination-port-range:
- lower-port: 0
- upper-port: 65535
- source-ipv4-network: 0.0.0.0/0
- source-port-range:
- lower-port: 0
- upper-port: 65535
- rule-name: rule1588
- - ace:
- ace-oper-data:
- match-counter: 0
- actions: drop,count
- matches:
- destination-ipv4-network: 0.0.0.0/0
- destination-port-range:
- lower-port: 0
- upper-port: 65535
- source-ipv4-network: 152.16.100.20/24
- source-port-range:
- lower-port: 0
- upper-port: 65535
- rule-name: rule1589
- acl-name: sample-ipv4-acl
- acl-type: ipv4-acl
diff --git a/samples/vnf_samples/nsut/acl/acl_rules.yaml.sample b/samples/vnf_samples/nsut/acl/acl_rules.yaml.sample
new file mode 100644
index 000000000..4c425d44f
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/acl_rules.yaml.sample
@@ -0,0 +1,47 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+access-list-entries:
+ -
+ actions:
+ - count
+ - nat:
+ port: 1
+ - fwd:
+ port: 0
+ matches:
+ destination-ipv4-network: 152.16.40.20/24
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 0.0.0.0/0
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ protocol-mask: 255
+ protocol: 127
+ priority: 1
+ rule-name: rule1588
+ -
+ actions: [drop,count]
+ matches:
+ destination-ipv4-network: 0.0.0.0/0
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 152.16.100.20/24
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1589
diff --git a/samples/vnf_samples/nsut/acl/acl_worstcaserules.yaml b/samples/vnf_samples/nsut/acl/acl_worstcaserules.yaml
index b184a29e2..6f09bb848 100644
--- a/samples/vnf_samples/nsut/acl/acl_worstcaserules.yaml
+++ b/samples/vnf_samples/nsut/acl/acl_worstcaserules.yaml
@@ -11,37 +11,33 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
-access-list1:
- acl:
- access-list-entries:
- - ace:
- ace-oper-data:
- match-counter: 0
- actions: drop,count
- matches:
- destination-ipv4-network: 152.16.40.20/24
- destination-port-range:
- lower-port: 0
- upper-port: 65535
- source-ipv4-network: 0.0.0.0/0
- source-port-range:
- lower-port: 0
- upper-port: 65535
- rule-name: rule1588
- - ace:
- ace-oper-data:
- match-counter: 0
- actions: drop,count
- matches:
- destination-ipv4-network: 0.0.0.0/0
- destination-port-range:
- lower-port: 0
- upper-port: 65535
- source-ipv4-network: 152.16.100.20/24
- source-port-range:
- lower-port: 0
- upper-port: 65535
- rule-name: rule1589
- acl-name: sample-ipv4-acl
- acl-type: ipv4-acl
+---
+access-list-entries:
+ -
+ ace-oper-data:
+ match-counter: 0
+ actions: [drop,count]
+ matches:
+ destination-ipv4-network: 152.16.40.20/24
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 0.0.0.0/0
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1588
+ -
+ ace-oper-data:
+ match-counter: 0
+ actions: [drop,count]
+ matches:
+ destination-ipv4-network: 0.0.0.0/0
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 152.16.100.20/24
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1589
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_ixia_template.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_ixia_template.yaml
index 17b918ce0..887e089b1 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_ixia_template.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_ixia_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
topology: acl-tg-topology-ixia-multi-port-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {{ flow.pkt_size.uplink }}
@@ -41,7 +41,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
- ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg
runner:
type: Iteration
iterations: 10
@@ -49,7 +48,7 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml
+ file: /etc/yardstick/nodes/baremetal_ixia_{{num_vnfs}}.yaml
- name: yardstick
type: Node
file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_template.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_template.yaml
index 1333b2721..824c83c2a 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_template.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,10 +17,10 @@ schema: yardstick:task:0.1
scenarios:
- type: NSPerf
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
- topology: acl-tg-topology-scale-out-{{ num_vnfs }}.yaml
+ topology: acl-tg-topology-multi-port-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {{ flow.pkt_size.uplink }}
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_template.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_template.yaml
index fe7be9aba..bd36e6eb4 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_template.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,9 +19,9 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: acl-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- tg__1: tg__1.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {{ flow.pkt_size.uplink }}
@@ -42,8 +42,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
- ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{ num_vnfs }}_port.ixncfg
-
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_scale_out_template.yaml
new file mode 100644
index 000000000..888e1196a
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_scale_out_template.yaml
@@ -0,0 +1,60 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+ - type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
+ topology: acl-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
+{% for vnf_num in range(num_vnfs|int) %}
+ vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
+{% endfor %}
+ options:
+ framesize:
+ uplink: {{ flow.pkt_size.uplink | to_yaml }}
+ downlink: {{ flow.pkt_size.downlink | to_yaml }}
+ flow:
+ src_ip:
+{% for vnf_num in range(num_vnfs|int) %}
+ - {'tg__0': 'xe{{ vnf_num }}'}
+{% endfor %}
+ dst_ip:
+{% for vnf_num in range(num_vnfs|int) %}
+ - {'tg__1': 'xe{{ vnf_num }}'}
+{% endfor %}
+ count: {{ flow.count }}
+ traffic_type: {{ flow.traffic_type }}
+ rfc2544:
+ allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }}
+ correlated_traffic: true
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
+ ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{ num_vnfs * 2 }}_port.ixncfg
+
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/ixia_correlated_{{num_vnfs}}.yaml
+ - type: Node
+ file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml
+ name: yardstick
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
index 6c9f53507..e5f770bcf 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml"
topology: acl_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia.yaml
index bd99fdd3b..7887fad35 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
topology: acl_vnf_topology_ixia.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -40,7 +40,6 @@ scenarios:
type: Iteration
iterations: 10
interval: 35
- ixia_profile: ../../traffic_profiles/acl/acl_ipv4_profile_1flows.ixncfg
context:
type: Node
name: yardstick
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_packetsize.yaml
index 706ffb992..23908a6e6 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_packetsize.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex.yaml
index cb50d7da1..4c183722f 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic.yaml
index 334e36e95..9c3ca9ca2 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,13 +19,13 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology-3node.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ tg__1: trafficgen_1.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__1': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml
index bc68632cf..4f2561ea8 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -20,12 +20,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_trex.yaml
index cb50d7da1..4c183722f 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_ipv4_worstcaserules_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_trex.yaml
index ad9fe90b8..8dd0adf81 100644
--- a/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_bottlenecks_scale_out.yaml b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_bottlenecks_scale_out.yaml
new file mode 100644
index 000000000..b44374c48
--- /dev/null
+++ b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_bottlenecks_scale_out.yaml
@@ -0,0 +1,123 @@
+# Copyright (c) 2017-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set framesize = framesize or "{64B: 100}" %}
+---
+schema: yardstick:task:0.1
+
+{% set num_vnfs = num_vnfs or 2 %}
+{% set image_name = image_name or "yardstick-samplevnfs" %}
+{% set cpu_num = cpu_num or 10 %}
+{% set ram_num = ram_num or 10240 %}
+{% set disk_num = disk_num or 7 %}
+
+scenarios:
+ - type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
+ topology: acl-tg-topology-3node-{{ num_vnfs }}.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
+{% for vnf_num in range(num_vnfs|int) %}
+ vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
+{% endfor %}
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip:
+{% for vnf_num in range(num_vnfs|int) %}
+ - {'tg__0': 'xe{{ vnf_num }}'}
+{% endfor %}
+ dst_ip:
+{% for vnf_num in range(num_vnfs|int) %}
+ - {'tg__1': 'xe{{ vnf_num }}'}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ correlated_traffic: true
+{% for vnf_num in range(num_vnfs|int) %}
+ vnf__{{ vnf_num }}:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+{% endfor %}
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+context:
+ name: yardstick
+ image: {{ image_name }}
+ flavor:
+ vcpus: {{ cpu_num }}
+ ram: {{ ram_num }}
+ disk: {{ disk_num }}
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ cpu_num }}
+ hw:cpu_threads: 1
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ trafficgen_0:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+{% for vnf_num in range(num_vnfs|int) %}
+ uplink_{{ vnf_num }}:
+ - xe{{ vnf_num }}
+{% endfor %}
+ trafficgen_1:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+{% for vnf_num in range(num_vnfs|int) %}
+ downlink_{{ vnf_num }}:
+ - xe{{ vnf_num }}
+{% endfor %}
+{% for vnf_num in range(num_vnfs|int) %}
+ vnf_{{ vnf_num }}:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+ uplink_{{ vnf_num }}:
+ - xe0
+ downlink_{{ vnf_num }}:
+ - xe1
+{% endfor %}
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vnf_num in range(num_vnfs|int) %}
+ uplink_{{ vnf_num }}:
+ cidr: '10.{{ vnf_num + 1 }}.0.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_{{ vnf_num }}:
+ cidr: '10.{{ vnf_num + 1 }}.1.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex.yaml
index 9c6cd7fc4..8eba2ab50 100644
--- a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -66,7 +66,7 @@ context:
- xe0
downlink_0:
- xe1
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -89,4 +89,3 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
-
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_10.yaml b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_10.yaml
index 5b28d5675..8c1952b11 100644
--- a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_10.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_10.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-10.yaml
topology: acl-tg-topology-3node-10.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
vnf__0: vnf_0.yardstick
vnf__1: vnf_1.yardstick
vnf__2: vnf_2.yardstick
@@ -33,8 +33,8 @@ scenarios:
vnf__9: vnf_9.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- {'tg__0': 'xe0'}
@@ -113,7 +113,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -139,7 +139,7 @@ context:
- xe8
uplink_9:
- xe9
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_2.yaml b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_2.yaml
index ef76405fe..8b0630327 100644
--- a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_2.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-2.yaml
topology: acl-tg-topology-3node-2.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
vnf__0: vnf_0.yardstick
vnf__1: vnf_1.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- {'tg__0': 'xe0'}
@@ -65,7 +65,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -75,7 +75,7 @@ context:
- xe0
uplink_1:
- xe1
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_4.yaml b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_4.yaml
index edf9611c8..4f7b0e325 100644
--- a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_4.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,16 +19,16 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-4.yaml
topology: acl-tg-topology-3node-4.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
vnf__0: vnf_0.yardstick
vnf__1: vnf_1.yardstick
vnf__2: vnf_2.yardstick
vnf__3: vnf_3.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- {'tg__0': 'xe0'}
@@ -77,7 +77,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -91,7 +91,7 @@ context:
- xe2
uplink_3:
- xe3
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_out.yaml b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_out.yaml
index 4da95a1ca..a01d33960 100644
--- a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_traffic_scale_out.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic_scale_out.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,15 +19,15 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
topology: acl-tg-topology-3node-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
{% for vnf_num in range(num_vnfs|int) %}
@@ -67,7 +67,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -77,7 +77,7 @@ context:
uplink_{{ vnf_num }}:
- xe{{ vnf_num }}
{% endfor %}
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml
index 2d84802f8..74ca3e741 100644
--- a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
{% set mem = mem or 20480 %}
@@ -23,12 +23,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -71,7 +71,7 @@ context:
- xe0
downlink_0:
- xe1
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -94,5 +94,3 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
-
-
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_trex_external_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/acl/tc_heat_trex_external_rfc2544_ipv4_1rule_1flow_packetsize.yaml
index 015c20eca..f98358a90 100644
--- a/samples/vnf_samples/nsut/acl/tc_heat_trex_external_rfc2544_ipv4_1rule_1flow_64B_packetsize.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_heat_trex_external_rfc2544_ipv4_1rule_1flow_packetsize.yaml
@@ -1,17 +1,17 @@
-# Copyright (c) 2016 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
-# Licensed under the Apache License, Version 2.0 (the License);
+# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an AS IS BASIS,
+# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.baremetal
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -35,7 +35,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- nfvi_enable: True
runner:
type: Iteration
iterations: 10
@@ -60,7 +59,7 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
networks:
diff --git a/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_correlated_scale_out_template.yaml
index 5f5d0869d..c742653b9 100644
--- a/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_correlated_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_correlated_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: acl-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- tg__1: tg__1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
@@ -46,7 +46,6 @@ scenarios:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
{% endfor %}
- ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs}}_port.ixncfg
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_scale_out_template.yaml b/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_scale_out_template.yaml
index 9800d280d..3c0e5e45b 100644
--- a/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: acl-tg-topology-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
diff --git a/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_scale_out.yaml b/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_scale_out.yaml
index 0fbfcdc2e..9fc218912 100644
--- a/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_scale_out.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_scale_out.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
topology: acl-tg-topology-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
diff --git a/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_ixia.yaml
index 469eddfc0..6185ff134 100644
--- a/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
topology: acl_vnf_topology_ixia.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -35,7 +35,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- ixia_profile: ../../traffic_profiles/acl/acl_ipv4_profile_1flows.ixncfg
runner:
type: Iteration
iterations: 10
@@ -69,7 +68,7 @@ contexts:
user: ""
password: ""
servers:
- vnf__0:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.7/24'
diff --git a/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_trex.yaml
index 134b15fb0..46dd73532 100644
--- a/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -42,10 +42,10 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
- type: StandaloneOvsDpdk
name: yardstick
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
vm_deploy: True
ovs_properties:
version:
@@ -56,11 +56,13 @@ contexts:
socket_0: 2048
socket_1: 2048
queues: 4
+ lcore_mask: ""
+ pmd_cpu_mask: "0x6"
vpath: "/usr/local"
flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
extra_specs:
hw:cpu_sockets: 1
hw:cpu_cores: 6
@@ -68,7 +70,7 @@ contexts:
user: ""
password: ""
servers:
- vnf__0:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.7/24'
diff --git a/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_correlated_scale_out_template.yaml
index 024507bc6..a7299fa7b 100644
--- a/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_correlated_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_correlated_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: acl-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- tg__1: tg__1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
@@ -46,7 +46,6 @@ scenarios:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
{% endfor %}
- ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs}}_port.ixncfg
runner:
type: Iteration
diff --git a/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_scale_out_template.yaml b/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_scale_out_template.yaml
index 4abc429f4..69da3e575 100644
--- a/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: acl-tg-topology-ixia-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
@@ -45,7 +45,6 @@ scenarios:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
{% endfor %}
- ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs* 2}}_port.ixncfg
runner:
type: Iteration
diff --git a/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_scale_out.yaml b/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_scale_out.yaml
index 91e47df1d..c81417d0a 100644
--- a/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_scale_out.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_scale_out.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
topology: acl-tg-topology-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
diff --git a/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_ixia.yaml
index a9eb9066b..4aae3e9a9 100644
--- a/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
topology: acl_vnf_topology_ixia.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -35,7 +35,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- ixia_profile: ../../traffic_profiles/acl/acl_ipv4_profile_1flows.ixncfg
runner:
type: Iteration
iterations: 10
@@ -58,7 +57,7 @@ contexts:
user: ""
password: ""
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.61/24'
diff --git a/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_trex.yaml
index 8b3241620..b946eceee 100644
--- a/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -42,14 +42,14 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
- type: StandaloneSriov
file: /etc/yardstick/nodes/standalone/host_sriov.yaml
name: yardstick
vm_deploy: True
flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
extra_specs:
hw:cpu_sockets: 1
hw:cpu_cores: 6
@@ -57,7 +57,7 @@ contexts:
user: ""
password: ""
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.61/24'
diff --git a/samples/vnf_samples/nsut/agnostic/HTTP_requests_concurrency.yaml b/samples/vnf_samples/nsut/agnostic/HTTP_requests_concurrency.yaml
new file mode 100755
index 000000000..1e9b1e8a0
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/HTTP_requests_concurrency.yaml
@@ -0,0 +1,56 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or imp
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+schema: "nsb:traffic_profile:0.1"
+
+name: TrafficProfileGenericHTTP
+description: Traffic profile to run HTTP test
+traffic_profile:
+ traffic_type: TrafficProfileGenericHTTP
+
+uplink_0:
+ ip:
+ address: "152.16.100.32" # must be in same subnet with gateway
+ subnet_prefix: 24 # subnet prefix
+ mac: "Auto" # port mac addr or auto to generate automatically
+ gateway: <GATEWAY_ADDR> # will be taken from pod file
+
+ http_client:
+ simulated_users: {{ get(simulated_users, 'simulated_users.uplink_0', '65000') }} # number of threads to be run
+ page_object: {{ get(page_object, 'page_object.uplink_0', '/1b.html') }} # http locator to be read
+
+downlink_0:
+ ip:
+ address: "152.40.40.32" # must be in same subnet with gateway
+ subnet_prefix: 24 # subnet prefix
+ mac: "Auto" # port mac addr or auto to generate automatically
+ gateway: <GATEWAY_ADDR> # will be taken from pod file
+
+uplink_1:
+ ip:
+ address: "12.12.12.32"
+ subnet_prefix: 24
+ mac: "00:00:00:00:00:01"
+ gateway: <GATEWAY_ADDR>
+
+ http_client:
+ simulated_users: {{ get(simulated_users, 'simulated_users.uplink_1', '65000') }} # number of threads to be run
+ page_object: {{ get(page_object, 'page_object.uplink_1', '/1b.html') }} # http locator to be read
+
+downlink_1:
+ ip:
+ address: "13.13.13.32"
+ subnet_prefix: 24
+ mac: "00:00:00:00:00:02"
+ gateway: <GATEWAY_ADDR> \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_2ports.yaml b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_2ports.yaml
new file mode 100644
index 000000000..007d16f82
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_2ports.yaml
@@ -0,0 +1,49 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+nsd:nsd-catalog:
+ nsd:
+ - id: agnostic-topology
+ name: agnostic-topology
+ short-name: agnostic-topology
+ description: agnostic-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml #TG type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/agnostic_vnf.yaml #VNF type
+
+ vld:
+ - id: uplink_0
+ name: tg__0 to vnf__0 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_0
+ name: vnf__0 to tg__0 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_4ports.yaml b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_4ports.yaml
new file mode 100644
index 000000000..1447faff3
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_4ports.yaml
@@ -0,0 +1,71 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+nsd:nsd-catalog:
+ nsd:
+ - id: agnostic-topology
+ name: agnostic-topology
+ short-name: agnostic-topology
+ description: agnostic-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml #TG type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/agnostic_vnf.yaml #VNF type
+
+ vld:
+ - id: uplink_0
+ name: tg__0 to vnf__0 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_0
+ name: vnf__0 to tg__0 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0
+
+ - id: uplink_1
+ name: tg__0 to vnf__0 link 3
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe2
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe2
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_1
+ name: vnf__0 to tg__0 link 4
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe3
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe3
+ vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_8ports.yaml b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_8ports.yaml
new file mode 100644
index 000000000..88ddf6ccd
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixia_8ports.yaml
@@ -0,0 +1,114 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+nsd:nsd-catalog:
+ nsd:
+ - id: agnostic-topology
+ name: agnostic-topology
+ short-name: agnostic-topology
+ description: agnostic-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml #TG type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/agnostic_vnf.yaml #VNF type
+
+ vld:
+ - id: uplink_0
+ name: tg__0 to vnf__0 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_0
+ name: vnf__0 to tg__0 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0
+
+ - id: uplink_1
+ name: tg__0 to vnf__0 link 3
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe2
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe2
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_1
+ name: vnf__0 to tg__0 link 4
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe3
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe3
+ vnfd-id-ref: tg__0
+ - id: uplink_2
+ name: tg__0 to vnf__0 link 5
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe4
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe4
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_2
+ name: vnf__0 to tg__0 link 6
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe5
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe5
+ vnfd-id-ref: tg__0
+
+ - id: uplink_3
+ name: tg__0 to vnf__0 link 7
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe6
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe6
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_3
+ name: vnf__0 to tg__0 link 8
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe7
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe7
+ vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixload_2ports.yaml b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixload_2ports.yaml
new file mode 100755
index 000000000..80f6dcf67
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_ixload_2ports.yaml
@@ -0,0 +1,50 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: agnostic-topology
+ name: agnostic-topology
+ short-name: agnostic-topology
+ description: scenario with HTTP and Agnostic VNF
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_ixload.yaml
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/agnostic_vnf.yaml
+
+ vld:
+ - id: uplink_0
+ name: tg__0 to vnf__0 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0 # HTTP Client
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0 # VNF
+
+ - id: downlink_0
+ name: vnf__0 to tg__0 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0 # HTTP Server
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0 # VNF
diff --git a/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_tmpl.yaml b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_tmpl.yaml
new file mode 100644
index 000000000..f8074f44f
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_tmpl.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+{% set vports = get(extra_args, 'vports', 2) %}
+nsd:nsd-catalog:
+ nsd:
+ - id: agnostic-topology
+ name: agnostic-topology
+ short-name: agnostic-topology
+ description: agnostic-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #TG type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/agnostic_vnf.yaml #VNF type
+
+ vld:
+{% for vport in range(0,vports,2|int) %}
+ - id: uplink_{{loop.index0}}
+ name: tg__0 to vnf__0 link {{vport + 1}}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{vport}}
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{vport}}
+ vnfd-id-ref: vnf__0
+ - id: downlink_{{loop.index0}}
+ name: vnf__0 to tg__0 link {{vport + 2}}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{vport+1}}
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{vport+1}}
+ vnfd-id-ref: tg__0
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_concurrent_connections_ixload.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_concurrent_connections_ixload.yaml
new file mode 100644
index 000000000..785cbaeea
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_concurrent_connections_ixload.yaml
@@ -0,0 +1,37 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %}
+---
+schema: yardstick:task:0.1
+{% set page = page or "/1b.html" %}
+scenarios:
+- type: NSPerf-RFC3511
+ traffic_profile: "../../traffic_profiles/ixload/http_ixload.yaml"
+ topology: agnostic_vnf_topology_ixload_2ports.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ page_object:
+ uplink: [{{page}}]
+ vnf__0: []
+ runner:
+ type: Iteration
+ iterations: 1
+ ixia_profile: ../../traffic_profiles/ixload/HTTP-ConcurrentConnections_2Ports.rxf
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: {{ file }}
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_connections_ixload.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_connections_ixload.yaml
new file mode 100644
index 000000000..96ccd3a67
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_connections_ixload.yaml
@@ -0,0 +1,37 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %}
+---
+schema: yardstick:task:0.1
+{% set page = page or "/1b.html" %}
+scenarios:
+- type: NSPerf-RFC3511
+ traffic_profile: "../../traffic_profiles/ixload/http_ixload.yaml"
+ topology: agnostic_vnf_topology_ixload_2ports.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ page_object:
+ uplink: [{{page}}]
+ vnf__0: []
+ runner:
+ type: Iteration
+ iterations: 1
+ ixia_profile: ../../traffic_profiles/ixload/HTTP-Connections_2Ports.rxf
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: {{ file }}
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_suite.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_suite.yaml
new file mode 100755
index 000000000..d3c75eb25
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_suite.yaml
@@ -0,0 +1,27 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+schema: "yardstick:suite:0.1"
+
+name: "http test suite"
+test_cases_dir: "samples/"
+test_cases:
+-
+ file_name: vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_template.yaml
+ task_args:
+ default: '{"page": "/1b.html", "users" : "5000"}'
+-
+ file_name: vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_template.yaml
+ task_args:
+ default: '{"page": "/1b.html", "users" : "6000"}'
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_template.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_template.yaml
new file mode 100755
index 000000000..08f897009
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_template.yaml
@@ -0,0 +1,40 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %}
+---
+schema: yardstick:task:0.1
+{% set users = users or "10000" %}
+{% set page = page or "/1b.html" %}
+scenarios:
+- type: NSPerf
+ traffic_profile: "HTTP_requests_concurrency.yaml"
+ topology: agnostic_vnf_topology_ixload_2ports.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ simulated_users:
+ uplink: [{{users}}]
+ page_object:
+ uplink: [{{page}}]
+ vnf__0: []
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports_Concurrency.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: {{ file }}
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_simulated_users_ixload.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_simulated_users_ixload.yaml
new file mode 100644
index 000000000..33c8b9e7a
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_simulated_users_ixload.yaml
@@ -0,0 +1,40 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %}
+---
+schema: yardstick:task:0.1
+{% set users = users or "10000" %}
+{% set page = page or "/1b.html" %}
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/ixload/http_ixload.yaml"
+ topology: agnostic_vnf_topology_ixload_2ports.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ simulated_users:
+ uplink: [{{users}}]
+ page_object:
+ uplink: [{{page}}]
+ vnf__0: []
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/ixload/HTTP-SimulatedUsers_2Ports.rxf
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: {{ file }}
diff --git a/samples/vnf_samples/nsut/prox/baremetal/throughput/tc_ipv4_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_throughput_ixload.yaml
index 1fe2ed943..c8358d6c6 100644
--- a/samples/vnf_samples/nsut/prox/baremetal/throughput/tc_ipv4_1flow_64B_packetsize.yaml
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_throughput_ixload.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2018-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,28 +11,27 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %}
---
schema: yardstick:task:0.1
+{% set page = page or "/1b.html" %}
scenarios:
- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: "../../prox-tg-topology.yaml"
+ traffic_profile: "../../traffic_profiles/ixload/http_ixload.yaml"
+ topology: agnostic_vnf_topology_ixload_2ports.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ page_object:
+ uplink: [{{page}}]
+ vnf__0: []
runner:
type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_voice.yaml"
+ duration: 2
+ ixia_profile: ../../traffic_profiles/ixload/HTTP-Throughput_2Ports.rxf
context:
type: Node
name: yardstick
nfvi_type: baremetal
- file: /etc/yardstick/nodes/pod.yaml
+ file: {{ file }}
diff --git a/samples/vnf_samples/nsut/prox/ovs-dpdk/http_tests/tc_FileSize-1K_Requests-1M_Concurrency-100.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_transactions_ixload.yaml
index 73fea8122..91f35b1da 100644
--- a/samples/vnf_samples/nsut/prox/ovs-dpdk/http_tests/tc_FileSize-1K_Requests-1M_Concurrency-100.yaml
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_transactions_ixload.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2018-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,34 +11,27 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %}
---
-schema: "yardstick:task:0.1"
-
+schema: yardstick:task:0.1
+{% set page = page or "/1b.html" %}
scenarios:
--
- type: NSPerf
- traffic_profile: ../../../../traffic_profiles/http_tests/FileSize-1K_Requests-1M_Concurrency-100.yaml
- topology: ../../acl-tg-topology-http.yaml
-
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/ixload/http_ixload.yaml"
+ topology: agnostic_vnf_topology_ixload_2ports.yaml
nodes:
- vnf__0: vnf.yardstick
- tg__0: trafficgen_1.yardstick
- tg__1: trafficgen_2.yardstick
-
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
- acl:
- rules: ../../acl_rules.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
-
+ page_object:
+ uplink: [{{page}}]
+ vnf__0: []
runner:
type: Duration
duration: 2
-
+ ixia_profile: ../../traffic_profiles/ixload/HTTP-Transactions_2Ports.rxf
context:
- type: Node-ovs
+ type: Node
name: yardstick
- nfvi_type: ovs
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_ovs.yaml
+ nfvi_type: baremetal
+ file: {{ file }}
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_ixia.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_ixia.yaml
new file mode 100644
index 000000000..edf36b811
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_ixia.yaml
@@ -0,0 +1,45 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
+ topology: agnostic_vnf_topology_ixia_2ports.yaml
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {64B: 100}
+ downlink: {64B: 100}
+ flow:
+ src_ip: [{'tg__0': 'xe0'}]
+ dst_ip: [{'tg__0': 'xe1'}]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ []
+ runner:
+ type: Iteration
+ iterations: 2
+ interval: 5
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_ixia_multi_framesize.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_ixia_multi_framesize.yaml
new file mode 100644
index 000000000..dfbff286b
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_ixia_multi_framesize.yaml
@@ -0,0 +1,47 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
+ topology: agnostic_vnf_topology_ixia_2ports.yaml
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip: [{'tg__0': 'xe0'}]
+ dst_ip: [{'tg__0': 'xe1'}]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ []
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {512B: 100}
+ downlink: {512B: 100}
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex.yaml
new file mode 100644
index 000000000..611109349
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set file = file or "/etc/yardstick/nodes/pod.yaml" %}
+{% set frame_rate = frame_rate or 100 %}
+{% set framesize = framesize or "{64B: 100}" %}
+{% set allowed_drop_rate = allowed_drop_rate or "0.0001 - 0.001" %}
+{% set iterations = iterations or 1 %}
+{% set interval = interval or 5 %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: agnostic_vnf_topology_trex_tmpl.yaml
+ extra_args:
+ frame_rate: {{ frame_rate }}
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip: [{'tg__0': 'xe0'}]
+ dst_ip: [{'tg__0': 'xe1'}]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{ allowed_drop_rate }}
+ vnf__0:
+ []
+ runner:
+ type: Iteration
+ iterations: {{ iterations }}
+ interval: {{ interval }}
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: {{ file }}
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml
new file mode 100644
index 000000000..71d9074e1
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml
@@ -0,0 +1,63 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set framesize = framesize or "{64B: 100}" %}
+{% set vports = vports or 2 %}
+{% set rate = rate or 100 %}
+{% set drop_rate = drop_rate or "0.0001 - 0.0001" %}
+{% set iterations = iterations or 1 %}
+{% set queues_per_port = queues_per_port or 1 %}
+{% set pod_file = pod_file or "/etc/yardstick/nodes/pod_trex.yaml" %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-tmpl.yaml
+ topology: agnostic_vnf_topology_trex_tmpl.yaml
+ extra_args:
+ vports: {{vports}}
+ rate: {{rate}}
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {{framesize}}
+ downlink: {{framesize}}
+ flow:
+ src_ip: [
+{% for vport in range(0,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ dst_ip: [
+{% for vport in range(1,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{drop_rate}}
+ tg__0:
+ queues_per_port: {{queues_per_port}}
+ vnf__0:
+ []
+ runner:
+ type: Iteration
+ iterations: {{iterations}}
+ interval: 5
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: {{pod_file}}
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia_L3.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia_L3.yaml
new file mode 100644
index 000000000..36c6bc647
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia_L3.yaml
@@ -0,0 +1,55 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_L3.yaml
+ topology: agnostic_vnf_topology_ixia_{{ vports }}ports.yaml
+ ixia_config: IxiaL3
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {64B: 100}
+ downlink: {64B: 100}
+ flow:
+ src_ip:
+{% for vport in range(0,vports,2|int) %}
+ - '152.{{ vport }}.0.1-152.{{ vport }}.0.50'
+{% endfor %}
+ dst_ip:
+{% for vport in range(1,vports,2|int) %}
+ - '152.{{ vport }}.1.1-152.{{ vport }}.1.150'
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ []
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_ixia.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_ixia.yaml
new file mode 100644
index 000000000..036eb2b46
--- /dev/null
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_ixia.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %}
+{% set frame_rate = frame_rate or "100%" %}
+{% set framesize = framesize or "{64B: 100}" %}
+{% set allowed_drop_rate = allowed_drop_rate or "0.0001 - 0.001" %}
+{% set iterations = iterations or 1 %}
+{% set interval = interval or 5 %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
+ extra_args:
+ frame_rate: {{ frame_rate }}
+ topology: agnostic_vnf_topology_ixia_2ports.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip: [{'tg__0': 'xe0'}]
+ dst_ip: [{'tg__0': 'xe1'}]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{ allowed_drop_rate }}
+ vnf__0:
+ []
+ runner:
+ type: Iteration
+ iterations: {{ iterations }}
+ interval: {{ interval }}
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: {{ file }}
diff --git a/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_8ports_1port_congested_IMIX.yaml b/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_8ports_1port_congested_IMIX.yaml
new file mode 100644
index 000000000..aea981d20
--- /dev/null
+++ b/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_8ports_1port_congested_IMIX.yaml
@@ -0,0 +1,84 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+{% set sessions_per_port = sessions_per_port or 4000 %}
+{% set sessions_per_svlan = sessions_per_svlan or 1000 %}
+{% set duration = duration or 60 %}
+{% set tolerance_low = tolerance_low or 0.0001 %}
+{% set tolerance_high = tolerance_high or 0.0001 %}
+schema: yardstick:task:0.1
+description: >
+ vBNG RFC2544 test case with QoS base line with link congestion.
+ Test case creates PPPoE sessions, runs traffic from two core ports
+ to one access port causing congestion of that port (traffic from
+ other access ports are splitting between remaining core ports)
+ and measures packets drop rate on all ports for each priority flow.
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/ixia_ipv4_latency_vbng_1port_congested-8.yaml"
+ topology: "../agnostic/agnostic_vnf_topology_ixia_8ports.yaml"
+ ixia_config: IxiaPppoeClient
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ duration: {{ duration }}
+ pppoe_client: # access network
+ sessions_per_port: {{ sessions_per_port }}
+ sessions_per_svlan: {{ sessions_per_svlan }}
+ pap_user: 'pppoe_user'
+ pap_password: ''
+ ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}, {'tg__0': 'xe4'}, {'tg__0': 'xe6'}]
+ s_vlan: 100 # s-vlan applies per device group
+ c_vlan: 1000 # c-vlan applies per subscriber
+ ipv4_client: # core network
+ sessions_per_port: 1
+ sessions_per_vlan: 1
+ ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}, {'tg__0': 'xe5'}, {'tg__0': 'xe7'}]
+ gateway_ip: [{'vnf__0': 'xe1'}, {'vnf__0': 'xe3'}, {'vnf__0': 'xe5'}, {'vnf__0': 'xe7'}]
+ vlan: 101
+ bgp:
+ bgp_type: external
+ dut_ip: 10.0.0.3
+ as_number: 65000
+ framesize:
+ uplink: {70B: 33, 940B: 33, 1470B: 34}
+ downlink: {68B: 3, 932B: 1, 1470B: 96}
+ priority:
+ # 0 - (000) Routine
+ # 1 - (001) Priority
+ # 2 - (010) Immediate
+ # 3 - (011) Flash
+ # 4 - (100) Flash Override
+ # 5 - (101) CRITIC/ECP
+ # 6 - (110) Internetwork Control
+ # 7 - (111) Network Control
+ tos: {precedence: [0, 4, 7]}
+ flow:
+ src_ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}, {'tg__0': 'xe4'}, {'tg__0': 'xe6'}]
+ dst_ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}, {'tg__0': 'xe5'}, {'tg__0': 'xe7'}]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: {{ duration + 15 }}
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_IMIX_scale_up.yaml b/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_IMIX_scale_up.yaml
new file mode 100644
index 000000000..882d3e28e
--- /dev/null
+++ b/samples/vnf_samples/nsut/bng/tc_bng_pppoe_rfc2544_ixia_IMIX_scale_up.yaml
@@ -0,0 +1,100 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+{% set sessions_per_port = sessions_per_port or 4000 %}
+{% set sessions_per_svlan = sessions_per_svlan or 1000 %}
+{% set duration = duration or 60 %}
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0001 %}
+{% set tolerance_high = tolerance_high or 0.0001 %}
+schema: yardstick:task:0.1
+description: >
+ vBNG RFC2544 test case with QoS base line without link congestion.
+ Test case creates PPPoE sessions, runs traffic on maximum throughput
+ and measures packets drop rate on all ports for each priority flow.
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/ixia_ipv4_latency_vbng_scale_up.yaml"
+ topology: "../agnostic/agnostic_vnf_topology_ixia_{{ vports }}ports.yaml"
+ ixia_config: IxiaPppoeClient
+ extra_args:
+ access_vports_num: {{ vports|int / 2 }}
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ duration: {{ duration }}
+ pppoe_client: # access network
+ sessions_per_port: {{ sessions_per_port }}
+ sessions_per_svlan: {{ sessions_per_svlan }}
+ pap_user: 'pppoe_user'
+ pap_password: ''
+ ip:
+{% for vnf_num in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vnf_num }}'}
+{% endfor %}
+ s_vlan: 100 # s-vlan applies per device group
+ c_vlan: 1000 # c-vlan applies per subscriber
+ ipv4_client: # core network
+ sessions_per_port: 1
+ sessions_per_vlan: 1
+ ip:
+{% for vnf_num in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vnf_num }}'}
+{% endfor %}
+ gateway_ip:
+{% for vnf_num in range(1, vports|int, 2) %}
+ - {'vnf__0': 'xe{{ vnf_num }}'}
+{% endfor %}
+ vlan: 101
+ bgp:
+ bgp_type: external
+ dut_ip: 10.0.0.3
+ as_number: 65000
+ framesize:
+ uplink: {70B: 33, 940B: 33, 1470B: 34}
+ downlink: {68B: 3, 932B: 1, 1470B: 96}
+ priority:
+ # 0 - (000) Routine
+ # 1 - (001) Priority
+ # 2 - (010) Immediate
+ # 3 - (011) Flash
+ # 4 - (100) Flash Override
+ # 5 - (101) CRITIC/ECP
+ # 6 - (110) Internetwork Control
+ # 7 - (111) Network Control
+ tos: {precedence: [0, 4, 7]}
+ flow:
+ src_ip:
+{% for vnf_num in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vnf_num }}'}
+{% endfor %}
+ dst_ip:
+{% for vnf_num in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vnf_num }}'}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: {{ duration + 15 }}
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-scale-up.yaml b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-scale-up.yaml
new file mode 100644
index 000000000..1805f6aa0
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-scale-up.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+{% set vports = get(extra_args, 'vports', 2) %}
+nsd:nsd-catalog:
+ nsd:
+ - id: vFW
+ name: vFW
+ short-name: vFW
+ description: scenario with vFW VNF
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml #VNF type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/cgnapt_vnf.yaml #VNF type
+
+ vld:
+{% for vport in range(0,vports,2|int) %}
+ - id: uplink_{{loop.index0}}
+ name: tg__0 to vnf__0 link {{vport + 1}}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{vport}}
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{vport}}
+ vnfd-id-ref: vnf__0
+ - id: downlink_{{loop.index0}}
+ name: vnf__0 to tg__0 link {{vport + 2}}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{vport+1}}
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{vport+1}}
+ vnfd-id-ref: tg__0
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-scale-up.yaml b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-scale-up.yaml
new file mode 100644
index 000000000..f68d5d09b
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-scale-up.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+{% set vports = get(extra_args, 'vports', 2) %}
+nsd:nsd-catalog:
+ nsd:
+ - id: 3tg-topology
+ name: 3tg-topology
+ short-name: 3tg-topology
+ description: 3tg-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/cgnapt_vnf.yaml #VNF type
+
+ vld:
+{% for vport in range(0,vports,2|int) %}
+ - id: uplink_{{loop.index0}}
+ name: tg__0 to vnf__0 link {{vport + 1}}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{vport}}
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{vport}}
+ vnfd-id-ref: vnf__0
+ - id: downlink_{{loop.index0}}
+ name: vnf__0 to tg__0 link {{vport + 2}}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{vport+1}}
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{vport+1}}
+ vnfd-id-ref: tg__0
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/cgnapt/standalone-args.yaml b/samples/vnf_samples/nsut/cgnapt/standalone-args.yaml
new file mode 100644
index 000000000..ee47ab4d1
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/standalone-args.yaml
@@ -0,0 +1,49 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+public_ip:
+ - "152.16.40.10"
+ - "152.16.30.10"
+
+networks:
+ uplink:
+ -
+ port_num: 0
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ -
+ port_num: 2
+ phy_port: "0000:05:00.2"
+ vpci: "0000:00:0c.0"
+ cidr: '152.16.50.10/24'
+ gateway_ip: '152.16.100.20'
+
+ downlink:
+ -
+ port_num: 1
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+
+ -
+ port_num: 3
+ phy_port: "0000:05:00.3"
+ vpci: "0000:00:0d.0"
+ cidr: '152.16.30.10/24'
+ gateway_ip: '152.16.100.20'
+
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_ixia_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_ixia_template.yaml
index 3a1c1cb12..e01b5e7ba 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_ixia_template.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_ixia_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,10 +17,10 @@ schema: yardstick:task:0.1
scenarios:
- type: NSPerf
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
- topology: cgnapt-tg-topology-ixia-multi-port-{{ num_vnfs }}.yaml
+ topology: cgnapt-tg-topology-multi-port-ixia-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {{ flow.pkt_size.uplink }}
@@ -39,9 +39,7 @@ scenarios:
rfc2544:
allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }}
vnf__0:
- rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
- ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg
runner:
type: Iteration
iterations: 10
@@ -49,7 +47,7 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml
+ file: /etc/yardstick/nodes/baremetal_ixia_{{num_vnfs}}.yaml
- name: yardstick
type: Node
file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_template.yaml
index 81000a7a5..0a1a3766c 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_template.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
topology: cgnapt-tg-topology-multi-port-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {{ flow.pkt_size.uplink }}
@@ -39,7 +39,6 @@ scenarios:
rfc2544:
allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }}
vnf__0:
- rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
runner:
type: Iteration
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_template.yaml
index 879911f62..7a9caf1dd 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_template.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,9 +19,9 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: cgnapt-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- tg__1: tg__1.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {{ flow.pkt_size.uplink }}
@@ -40,10 +40,7 @@ scenarios:
rfc2544:
allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }}
vnf__0:
- rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
- ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{ num_vnfs }}_port.ixncfg
-
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_scale_out_template.yaml
new file mode 100644
index 000000000..41675e5a5
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_scale_out_template.yaml
@@ -0,0 +1,59 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+ - type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
+ topology: cgnapt-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
+{% for vnf_num in range(num_vnfs|int) %}
+ vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
+{% endfor %}
+ options:
+ framesize:
+ uplink: {{ flow.pkt_size.uplink | to_yaml }}
+ downlink: {{ flow.pkt_size.downlink | to_yaml }}
+ flow:
+ src_ip:
+{% for vnf_num in range(num_vnfs|int) %}
+ - {'tg__0': 'xe{{ vnf_num }}'}
+{% endfor %}
+ dst_ip:
+{% for vnf_num in range(num_vnfs|int) %}
+ - {'tg__1': 'xe{{ vnf_num }}'}
+{% endfor %}
+ count: {{ flow.count }}
+ traffic_type: {{ flow.traffic_type }}
+ rfc2544:
+ allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }}
+ correlated_traffic: true
+ vnf__0:
+ vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
+ ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{ num_vnfs * 2}}_port.ixncfg
+
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/ixia_correlated_{{num_vnfs}}.yaml
+ - type: Node
+ file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml
+ name: yardstick
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
index 6bfca0d7a..7b94fef44 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml"
topology: cgnapt_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
public_ip: ["152.16.40.10"]
traffic_type: 4
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_scale_up.yaml
deleted file mode 100644
index 3c5d12abb..000000000
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_scale_up.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-{% for worker_thread in [1, 2 ,3 , 4, 5, 6] %}
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
- topology: cgnapt-vnf-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- options:
- framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- public_ip: ["152.16.40.10"]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}}
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-{% endfor %}
-context:
- type: Node
- name: yardstick
- nfvi_type: baremetal
- file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_ixia.yaml
index a56321396..d8673b89c 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
topology: cgnapt_vnf_topology_ixia.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -39,7 +39,6 @@ scenarios:
type: Iteration
iterations: 10
interval: 35
- ixia_profile: ../../traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows.ixncfg
context:
type: Node
name: yardstick
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_ixia_scale_up.yaml
index 71f6d1dc8..cc3757f2e 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia_scale_up.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_ixia_scale_up.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -20,12 +20,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/ixia_ipv4_latency_cgnapt.yaml"
topology: cgnapt_vnf_topology_ixia.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -41,7 +41,6 @@ scenarios:
type: Iteration
iterations: 10
interval: 35
- ixia_profile: ../../traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows.ixncfg
{% endfor %}
context:
type: Node
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex.yaml
index 042c4ddee..dc507abd7 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
topology: cgnapt-vnf-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex_correlated_traffic.yaml
index 1461c9601..7d7925926 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex_correlated_traffic.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,13 +19,13 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
topology: cgnapt-vnf-topology-3node.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ tg__1: trafficgen_1.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__1': 'xe0'}]
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml
new file mode 100644
index 000000000..64f93a2d4
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml
@@ -0,0 +1,64 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.005 %}
+{% set tolerance_high = tolerance_high or 0.01 %}
+{% set public_ip = public_ip or ["152.16.40.10"] %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml
+ topology: cgnapt-tg-topology-ixia-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip: [
+{% for vport in range(0,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ dst_ip: [
+{% for vport in range(1,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ public_ip:
+{% for port_num in range((vports/2)|int) %}
+ - {{ public_ip[port_num] }}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ resolution: 0.01
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+ downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml
new file mode 100644
index 000000000..e661ef319
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml
@@ -0,0 +1,67 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set framesize = framesize or "{64B: 100}" %}
+{% set worker_threads = worker_threads or [1] %}
+{% set duration = duration or 30 %}
+{% set tolerance_low = tolerance_low or 0.0001 %}
+{% set tolerance_high = tolerance_high or 0.0001 %}
+{% set public_ip = public_ip or ["152.16.40.10"] %}
+{% set vports = vports or 2 %}
+---
+schema: yardstick:task:0.1
+scenarios:
+{% for worker_thread in worker_threads %}
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: cgnapt-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ duration: {{ duration }}
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip:
+{% for vport in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ dst_ip:
+{% for vport in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ public_ip:
+{% for port_num in range((vports/2)|int) %}
+ - {{ public_ip[port_num] }}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}}
+ nfvi_enable: True
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: 5
+{% endfor %}
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_dynamic_cgnapt_ixia.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_dynamic_cgnapt_ixia.yaml
index c51729790..95ed67196 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_dynamic_cgnapt_ixia.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_dynamic_cgnapt_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,13 +19,13 @@ scenarios:
traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
topology: cgnapt-vnf-topology-ixia-3node.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ tg__1: trafficgen_1.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__1': 'xe0'}]
@@ -44,7 +44,6 @@ scenarios:
type: Iteration
iterations: 28
interval: 35
- ixia_profile: ../../traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows_3node_latency.ixncfg
context:
type: Node
name: yardstick
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_trex.yaml
index 91a703877..a3a54a5e0 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_with_latency_ipv4_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
topology: cgnapt-vnf-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_1flow_trex.yaml
index ba5180a82..47ddbf0e1 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
topology: cgnapt-vnf-topology.yaml
nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.baremetal
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -58,7 +58,7 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
networks:
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml
new file mode 100644
index 000000000..fa9f24a3f
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml
@@ -0,0 +1,124 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set image = image or "yardstick-samplevnfs" %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 10 %}
+{% set vports = vports or 2 %}
+{% set public_ip = public_ip or {0: "10.0.3.33",
+ 1: "10.0.5.55"} %}
+{% set phynet_map = phynet_map or {'uplink_0': 'prov0',
+ 'downlink_0': 'prov1',
+ 'uplink_1': 'prov2',
+ 'downlink_1': 'prov3'} %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml
+ topology: cgnapt-tg-topology-ixia-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.barametal
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip: [
+{% for vport in range(0,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ dst_ip: [
+{% for vport in range(1,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ public_ip:
+{% for port_num in range((vports/2)|int) %}
+ - {{ public_ip[port_num] }}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ resolution: 0.01
+ allowed_drop_rate: 0.005 - 0.01
+ vnf__0:
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {128B: 100}
+ downlink: {128B: 100}
+ - uplink: {256B: 100}
+ downlink: {256B: 100}
+ - uplink: {512B: 100}
+ downlink: {512B: 100}
+ - uplink: {1024B: 100}
+ downlink: {1024B: 100}
+ - uplink: {1518B: 100}
+ downlink: {1518B: 100}
+ - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+ downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+contexts:
+ - name: barametal
+ type: Node
+ file: /etc/yardstick/nodes/pod_ixia.yaml
+ - name: yardstick
+ image: {{ image }}
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+{% for vport in range(0,vports,2|int) %}
+ uplink_{{loop.index0}}:
+ - xe{{vport}}
+ downlink_{{loop.index0}}:
+ - xe{{vport + 1}}
+{% endfor %}
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{loop.index0}}:
+ cidr: '10.0.{{vport + 1}}.0/24'
+ gateway_ip: 'null'
+ provider: true
+ physical_network: {{phynet_map['uplink_' + loop.index0|string] }}
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_{{loop.index0}}:
+ cidr: '10.0.{{vport + 2}}.0/24'
+ gateway_ip: 'null'
+ provider: true
+ physical_network: {{phynet_map['downlink_' + loop.index0|string] }}
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml
new file mode 100644
index 000000000..aa9807003
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml
@@ -0,0 +1,124 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set image = image or "yardstick-samplevnfs" %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 10 %}
+{% set vports = vports or 2 %}
+{% set public_ip = public_ip or {0: "10.0.3.50",
+ 1: "10.0.5.50"} %}
+{% set phynet_map = phynet_map or {'uplink_0': 'prov6',
+ 'downlink_0': 'prov7',
+ 'uplink_1': 'prov4',
+ 'downlink_1': 'prov5'} %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml
+ topology: cgnapt-tg-topology-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.barametal
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip: [
+{% for vport in range(0,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ dst_ip: [
+{% for vport in range(1,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ public_ip:
+{% for port_num in range((vports/2)|int) %}
+ - {{ public_ip[port_num] }}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ resolution: 0.01
+ allowed_drop_rate: 0.005 - 0.01
+ vnf__0:
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {128B: 100}
+ downlink: {128B: 100}
+ - uplink: {256B: 100}
+ downlink: {256B: 100}
+ - uplink: {512B: 100}
+ downlink: {512B: 100}
+ - uplink: {1024B: 100}
+ downlink: {1024B: 100}
+ - uplink: {1518B: 100}
+ downlink: {1518B: 100}
+ - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+ downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+contexts:
+ - name: barametal
+ type: Node
+ file: /etc/yardstick/nodes/pod_trex.yaml
+ - name: yardstick
+ image: {{ image }}
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+{% for vport in range(0,vports,2|int) %}
+ uplink_{{loop.index0}}:
+ - xe{{vport}}
+ downlink_{{loop.index0}}:
+ - xe{{vport + 1}}
+{% endfor %}
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{loop.index0}}:
+ cidr: '10.0.{{vport + 1}}.0/24'
+ gateway_ip: 'null'
+ provider: true
+ physical_network: {{phynet_map['uplink_' + loop.index0|string] }}
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_{{loop.index0}}:
+ cidr: '10.0.{{vport + 2}}.0/24'
+ gateway_ip: 'null'
+ provider: true
+ physical_network: {{phynet_map['downlink_' + loop.index0|string] }}
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %} \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex.yaml
index b38d4be6c..8c0339e39 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
topology: cgnapt-vnf-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -55,10 +55,10 @@ context:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
- trafficgen_1:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
networks:
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_10.yaml b/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_10.yaml
index ac0a83b34..d91a4cfc9 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_10.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_10.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-10.yaml
topology: cgnapt-vnf-topology-3node-10.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
vnf__0: vnf_0.yardstick
vnf__1: vnf_1.yardstick
vnf__2: vnf_2.yardstick
@@ -33,8 +33,8 @@ scenarios:
vnf__9: vnf_9.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- {'tg__0': 'xe0'}
@@ -113,7 +113,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -139,7 +139,7 @@ context:
- xe8
uplink_9:
- xe9
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_2.yaml b/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_2.yaml
index 894fcceef..873c1a232 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_2.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-2.yaml
topology: cgnapt-vnf-topology-3node-2.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
vnf__0: vnf_0.yardstick
vnf__1: vnf_1.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- {'tg__0': 'xe0'}
@@ -65,7 +65,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -75,7 +75,7 @@ context:
- xe0
uplink_1:
- xe1
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_4.yaml b/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_4.yaml
index ffdec998e..fede37918 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_4.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,16 +19,16 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-4.yaml
topology: cgnapt-vnf-topology-3node-4.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
vnf__0: vnf_0.yardstick
vnf__1: vnf_1.yardstick
vnf__2: vnf_2.yardstick
vnf__3: vnf_3.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- {'tg__0': 'xe0'}
@@ -77,7 +77,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -91,7 +91,7 @@ context:
- xe2
uplink_3:
- xe3
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_out.yaml b/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_out.yaml
index 5c884f2e0..d6a670203 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_out.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_trex_correlated_scale_out.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,15 +19,15 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-{{ num_vnfs }}.yaml
topology: cgnapt-vnf-topology-3node-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
{% for vnf_num in range(num_vnfs|int) %}
@@ -67,7 +67,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -77,7 +77,7 @@ context:
uplink_{{ vnf_num }}:
- xe{{ vnf_num }}
{% endfor %}
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_template.yaml
index e2002abc0..922eb938b 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: cgnapt-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- tg__1: tg__1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
@@ -47,7 +47,6 @@ scenarios:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
{% endfor %}
- ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs}}_port.ixncfg
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_scale_out_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_scale_out_template.yaml
index ffd06d5a2..9b458621c 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-cgnapt-ixia-{{ num_vnfs }}.yaml
topology: cgnapt-tg-topology-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_scale_out.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_scale_out.yaml
index 1a2f57ff5..ab51e1753 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_scale_out.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_scale_out.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-cgnapt-{{ num_vnfs }}.yaml
topology: cgnapt-tg-topology-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_1flow_ixia.yaml
index 1d8be5f74..af431bc48 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_cgnapt.yaml
topology: cgnapt_vnf_topology_ixia.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -36,7 +36,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- ixia_profile: ../../traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows.ixncfg
runner:
type: Iteration
iterations: 10
@@ -70,7 +69,7 @@ contexts:
user: ""
password: ""
servers:
- vnf__0:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.7/24'
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_trex.yaml
index 52becd3c6..577d86ff9 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
topology: cgnapt-vnf-topology.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -42,7 +42,7 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
- type: StandaloneOvsDpdk
name: yardstick
file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
@@ -59,8 +59,8 @@ contexts:
vpath: "/usr/local"
flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
extra_specs:
hw:cpu_sockets: 1
hw:cpu_cores: 7
@@ -68,7 +68,7 @@ contexts:
user: ""
password: ""
servers:
- vnf__0:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.7/24'
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml
new file mode 100644
index 000000000..ff6e58f20
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml
@@ -0,0 +1,111 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.005 %}
+{% set tolerance_high = tolerance_high or 0.01 %}
+{% set public_ip = public_ip or ["152.16.40.10"] %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml
+ topology: cgnapt-tg-topology-ixia-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip:
+{% for vport in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ dst_ip:
+{% for vport in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ public_ip:
+{% for port_num in range((vports/2)|int) %}
+ - {{ public_ip[port_num] }}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ resolution: 0.01
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+ downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/pod_ixia_ovs.yaml
+ - type: StandaloneOvsDpdk
+ name: yardstick
+ file: /etc/yardstick/nodes/pod_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.1
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 6
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '172.10.1.150/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml
new file mode 100644
index 000000000..13496c12e
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml
@@ -0,0 +1,109 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0001 %}
+{% set tolerance_high = tolerance_high or 0.0001 %}
+{% set framesize = framesize or "{64B: 100}" %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: cgnapt-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip:
+{% for vport in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ dst_ip:
+{% for vport in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ public_ip:
+{% for port_num in range((vports/2)|int) %}
+ - {{ public_ip[port_num] }}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: 5
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
+ - type: StandaloneOvsDpdk
+ name: yardstick
+ file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.1
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 6
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.7/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_correlated_scale_out_template.yaml
index 7f6e76cc2..c49df903c 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_correlated_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_correlated_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: cgnapt-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- tg__1: tg__1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
@@ -46,7 +46,6 @@ scenarios:
vnf__{{ vnf_num }}:
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
{% endfor %}
- ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs}}_port.ixncfg
runner:
type: Iteration
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_scale_out_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_scale_out_template.yaml
index a88a05d5a..43ec182f0 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-cgnapt-ixia-{{ num_vnfs }}.yaml
topology: cgnapt-tg-topology-ixia-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
@@ -46,7 +46,6 @@ scenarios:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
{% endfor %}
- ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg
runner:
type: Iteration
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_scale_out.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_scale_out.yaml
index cb1f5ebf9..309171bf4 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_scale_out.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_scale_out.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-cgnapt-{{ num_vnfs }}.yaml
topology: cgnapt-tg-topology-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_1flow_ixia.yaml
index f0d996d51..b239fb45a 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_cgnapt.yaml
topology: cgnapt_vnf_topology_ixia.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -36,7 +36,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- ixia_profile: ../../traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows.ixncfg
runner:
type: Iteration
iterations: 10
@@ -59,7 +58,7 @@ contexts:
user: ""
password: ""
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.61/24'
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_trex.yaml
index ec517bbef..ceb6c5e9a 100644
--- a/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
topology: cgnapt-vnf-topology.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -42,14 +42,14 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
- type: StandaloneSriov
file: /etc/yardstick/nodes/standalone/host_sriov.yaml
name: yardstick
vm_deploy: True
flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
extra_specs:
hw:cpu_sockets: 1
hw:cpu_cores: 7
@@ -57,7 +57,7 @@ contexts:
user: ""
password: ""
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.61/24'
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml
new file mode 100644
index 000000000..734862055
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml
@@ -0,0 +1,101 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.005 %}
+{% set tolerance_high = tolerance_high or 0.01 %}
+{% set public_ip = public_ip or ["152.16.40.10"] %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml
+ topology: cgnapt-tg-topology-ixia-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip:
+{% for vport in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ dst_ip:
+{% for vport in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ public_ip:
+{% for port_num in range((vports/2)|int) %}
+ - {{ public_ip[port_num] }}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ resolution: 0.01
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+ downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/pod_ixia_ovs.yaml
+ - type: StandaloneSriov
+ name: yardstick
+ file: /etc/yardstick/nodes/pod_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 6
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '172.10.1.150/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml
new file mode 100644
index 000000000..34f42c971
--- /dev/null
+++ b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml
@@ -0,0 +1,98 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0001 %}
+{% set tolerance_high = tolerance_high or 0.0001 %}
+{% set framesize = framesize or "{64B: 100}" %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: cgnapt-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip:
+{% for vport in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ dst_ip:
+{% for vport in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ public_ip:
+{% for port_num in range((vports/2)|int) %}
+ - {{ public_ip[port_num] }}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: 5
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
+ - type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ name: yardstick
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 7
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.7/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/cmts/cmts-tg-topology.yaml b/samples/vnf_samples/nsut/cmts/cmts-tg-topology.yaml
new file mode 100644
index 000000000..81323e71c
--- /dev/null
+++ b/samples/vnf_samples/nsut/cmts/cmts-tg-topology.yaml
@@ -0,0 +1,39 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+nsd:nsd-catalog:
+ nsd:
+ - id: cmts-tg-topology
+ name: cmts-tg-topology
+ short-name: cmts-tg-topology
+ description: cmts-tg-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_pktgen.yaml
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/tg_pktgen.yaml
+
+ vld: []
+# - id: uplink
+# name: tg__0 to vnf__0 link 1
+# type: ELAN
+# vnfd-connection-point-ref:
+# - member-vnf-index-ref: '1'
+# vnfd-connection-point-ref: sriov01
+# vnfd-id-ref: tg__0
+# - member-vnf-index-ref: '2'
+# vnfd-connection-point-ref: sriov01
+# vnfd-id-ref: vnf__0
diff --git a/samples/vnf_samples/nsut/cmts/k8s_vcmts_topology.yaml b/samples/vnf_samples/nsut/cmts/k8s_vcmts_topology.yaml
new file mode 100755
index 000000000..95ac76964
--- /dev/null
+++ b/samples/vnf_samples/nsut/cmts/k8s_vcmts_topology.yaml
@@ -0,0 +1,36 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set num_tg = get(extra_args, 'num_tg', 2) %}
+{% set num_sg = get(extra_args, 'num_sg', 2) %}
+
+nsd:nsd-catalog:
+ nsd:
+ - id: vcmts-topology
+ name: vcmts-topology
+ short-name: vcmts-topology
+ description: vcmts-topology
+ constituent-vnfd:
+ {% for tg_num in range(0, num_tg) %}
+ - member-vnf-index: '{{ tg_num + 1 }}'
+ vnfd-id-ref: tg__{{ tg_num }}
+ VNF model: ../../vnf_descriptors/tg_vcmts_tpl.yaml #VNF type
+ {% endfor %}
+ {% for vnf_num in range(0, num_sg * 2) %}
+ - member-vnf-index: '{{ vnf_num + num_tg + 1 }}'
+ vnfd-id-ref: vnf__{{ vnf_num }}
+ VNF model: ../../vnf_descriptors/vnf_vcmts_tpl.yaml #VNF type
+ {% endfor %}
+
+ vld: []
diff --git a/samples/vnf_samples/nsut/cmts/tc_k8s_pktgen_01.yaml b/samples/vnf_samples/nsut/cmts/tc_k8s_pktgen_01.yaml
new file mode 100644
index 000000000..bb82e7a90
--- /dev/null
+++ b/samples/vnf_samples/nsut/cmts/tc_k8s_pktgen_01.yaml
@@ -0,0 +1,171 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/pktgen_throughput.yaml
+ topology: cmts-tg-topology.yaml
+ nodes:
+ tg__0: trafficgen-k8syardstick
+ vnf__0: vnf-k8syardstick
+ options: {}
+ runner:
+ type: IterationIPC
+ iterations: 10
+ interval: 15
+ timeout: 10000
+context:
+ name: k8syardstick
+ type: Kubernetes
+
+ servers:
+ vnf_0:
+ containers:
+ - image: si-docker.ir.intel.com/vcmts-ubuntu/vcmts-pktgen-uepi
+ args: ["/opt/bin/cmk isolate --conf-dir=/etc/cmk --socket-id=0 --pool=dataplane /vcmts/setup.sh anga_mac_1_ds.pcap ds"]
+ env:
+ - name: LUA_PATH
+ value: "/vcmts/Pktgen.lua"
+ - name: CMK_PROC_FS
+ value: "/host/proc"
+ resources:
+ requests:
+ pod.alpha.kubernetes.io/opaque-int-resource-cmk: "1"
+ ports:
+ - containerPort: 22022
+ volumeMounts:
+ - name: hugepages
+ mountPath: /dev/hugepages
+ - name: sysfs
+ mountPath: /sys
+ - name: sriov
+ mountPath: /sriov-cni
+ - name: host-proc
+ mountPath: /host/proc
+ readOnly: true
+ - name: cmk-install-dir
+ mountPath: /opt/bin
+ - name: cmk-conf-dir
+ mountPath: /etc/cmk
+ securityContext:
+ allowPrivilegeEscalation: true
+ privileged: true
+
+ node_ports:
+ - name: lua # Lower case alphanumeric characters or '-'
+ port: 22022
+ networks:
+ - flannel
+ - sriov01
+ volumes:
+ - name: hugepages
+ hostPath:
+ path: /dev/hugepages
+ - name: sysfs
+ hostPath:
+ path: /sys
+ - name: sriov
+ hostPath:
+ path: /var/lib/cni/sriov
+ - name: cmk-install-dir
+ hostPath:
+ path: /opt/bin
+ - name: host-proc
+ hostPath:
+ path: /proc
+ - name: cmk-conf-dir
+ hostPath:
+ path: /etc/cmk
+
+ trafficgen:
+ containers:
+ - image: si-docker.ir.intel.com/vcmts-ubuntu/vcmts-pktgen-uepi
+ args: ["/opt/bin/cmk isolate --conf-dir=/etc/cmk --socket-id=0 --pool=dataplane /vcmts/setup.sh anga_mac_1_ds.pcap ds"]
+ env:
+ - name: LUA_PATH
+ value: "/vcmts/Pktgen.lua"
+ - name: CMK_PROC_FS
+ value: "/host/proc"
+ resources:
+ requests:
+ pod.alpha.kubernetes.io/opaque-int-resource-cmk: "1"
+ ports:
+ - containerPort: 22022
+ volumeMounts:
+ - name: hugepages
+ mountPath: /dev/hugepages
+ - name: sysfs
+ mountPath: /sys
+ - name: sriov
+ mountPath: /sriov-cni
+ - name: host-proc
+ mountPath: /host/proc
+ readOnly: true
+ - name: cmk-install-dir
+ mountPath: /opt/bin
+ - name: cmk-conf-dir
+ mountPath: /etc/cmk
+ securityContext:
+ allowPrivilegeEscalation: true
+ privileged: true
+
+ node_ports:
+ - name: lua # Lower case alphanumeric characters or '-'
+ port: 22022
+ networks:
+ - flannel
+ - sriov01
+ volumes:
+ - name: hugepages
+ hostPath:
+ path: /dev/hugepages
+ - name: sysfs
+ hostPath:
+ path: /sys
+ - name: sriov
+ hostPath:
+ path: /var/lib/cni/sriov
+ - name: cmk-install-dir
+ hostPath:
+ path: /opt/bin
+ - name: host-proc
+ hostPath:
+ path: /proc
+ - name: cmk-conf-dir
+ hostPath:
+ path: /etc/cmk
+
+ networks:
+ flannel:
+ args: '[{ "delegate": { "isDefaultGateway": true }}]'
+ plugin: flannel
+ sriov01:
+ plugin: sriov
+ args: '[{"if0": "ens802f0",
+ "if0name": "net0",
+ "dpdk": {
+ "kernel_driver": "i40evf",
+ "dpdk_driver": "igb_uio",
+ "dpdk_tool": "/opt/nsb_bin/dpdk-devbind.py"}
+ }]'
+ sriov02:
+ plugin: sriov
+ args: '[{"if0": "ens802f0",
+ "if0name": "net0",
+ "dpdk": {
+ "kernel_driver": "i40evf",
+ "dpdk_driver": "igb_uio",
+ "dpdk_tool": "/opt/nsb_bin/dpdk-devbind.py"}
+ }]'
diff --git a/samples/vnf_samples/nsut/cmts/tc_vcmts_k8s_pktgen.yaml b/samples/vnf_samples/nsut/cmts/tc_vcmts_k8s_pktgen.yaml
new file mode 100755
index 000000000..6c85a0892
--- /dev/null
+++ b/samples/vnf_samples/nsut/cmts/tc_vcmts_k8s_pktgen.yaml
@@ -0,0 +1,360 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+{% set num_tg = 2 %}
+{% set num_sg = 4 %}
+
+{% set vcmtsd_image = "vcmts-d:perf" %}
+{% set qat_on = false %}
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/fixed.yaml
+ extra_args:
+ num_sg: {{ num_sg }}
+ num_tg: {{ num_tg }}
+ topology: k8s_vcmts_topology.yaml
+ nodes:
+{% for tg_num in range(0, num_tg) %}
+ tg__{{ tg_num }}: pktgen{{ tg_num }}-k8syardstick
+{% endfor %}
+{% for vnf_index in range(0, num_sg) %}
+ vnf__{{ vnf_index * 2 }}: vnf{{ vnf_index }}us-k8syardstick
+ vnf__{{ (vnf_index * 2) + 1}}: vnf{{ vnf_index }}ds-k8syardstick
+{% endfor %}
+
+ runner:
+ type: Duration
+ duration: 120
+
+ options:
+ vcmts_influxdb_ip: "10.80.5.150"
+ vcmts_influxdb_port: 8086
+ vcmtsd_values: /etc/yardstick/vcmtsd_values.yaml
+ pktgen_values: /etc/yardstick/pktgen_values.yaml
+ pktgen_rate: 6.5
+{% for vnf_index in range(0, num_sg) %}
+ vnf__{{ vnf_index * 2 }}:
+ sg_id: {{ vnf_index }}
+ stream_dir: "us"
+ vnf__{{ (vnf_index * 2) + 1}}:
+ sg_id: {{ vnf_index }}
+ stream_dir: "ds"
+{% endfor %}
+{% for tg_num in range(0, num_tg) %}
+ tg__{{ tg_num }}:
+ pktgen_id: {{ tg_num }}
+{% endfor %}
+
+context:
+ name: k8syardstick
+ type: Kubernetes
+
+ servers:
+{% for vnf_index in range(0, num_sg) %}
+ vnf{{ vnf_index }}us:
+ nodeSelector:
+ vcmts: "true"
+ containers:
+ - image: {{ vcmtsd_image }}
+ imagePullPolicy: IfNotPresent
+ env:
+ - name: CMK_PROC_FS
+ value: "/host/proc"
+ command: /bin/bash
+ args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.;
+ chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;
+ while true ; do sleep 10000; done']
+ resources:
+ requests:
+ memory: 10Ki
+{% if qat_on %}
+ hugepages-1Gi: 2Gi
+ qat.intel.com/generic: '1'
+{% else %}
+ hugepages-1Gi: 1Gi
+{% endif %}
+ limits:
+ memory: 1Gi
+{% if qat_on %}
+ hugepages-1Gi: 2Gi
+ qat.intel.com/generic: '1'
+{% else %}
+ hugepages-1Gi: 1Gi
+{% endif %}
+ lifecycle:
+ postStart:
+ exec:
+ command: [ "/bin/bash", "-c", "env > /tmp/qat" ]
+ volumeMounts:
+ - name: vcmts-configmap-vcmtspod
+ mountPath: /vcmts-config
+ - name: hugepages
+ mountPath: /hugepages
+ readOnly: false
+ - name: collectd
+ mountPath: /opt/collectd/var
+ readOnly: false
+ - name: sysfs
+ mountPath: /sys
+ readOnly: false
+ - name: sriov
+ mountPath: /sriov-cni
+ readOnly: false
+ - name: host-proc
+ mountPath: /host/proc
+ readOnly: true
+ - name: cmk-install-dir
+ mountPath: /opt/bin
+ - name: cmk-conf-dir
+ mountPath: /etc/cmk
+ - name: power-mgmt
+ mountPath: /opt/power_mgmt
+ ports:
+ - containerPort: 22022
+ securityContext:
+ allowPrivilegeEscalation: true
+ privileged: true
+ node_ports:
+ - name: lua # Lower case alphanumeric characters or '-'
+ port: 22022
+ networks:
+ - flannel
+ - xe0
+ - xe1
+ volumes:
+ - name: vcmts-configmap-vcmtspod
+ configMap:
+ name: vcmts-configmap-vcmtspod
+ defaultMode: 0744
+ - name: hugepages
+ emptyDir:
+ medium: HugePages
+ - name: collectd
+ hostPath:
+ path: /opt/collectd/var
+ - name: sysfs
+ hostPath:
+ path: /sys
+ - name: sriov
+ hostPath:
+ path: /var/lib/cni/sriov
+ - name: cmk-install-dir
+ hostPath:
+ path: /opt/bin
+ - name: host-proc
+ hostPath:
+ path: /proc
+ - name: cmk-conf-dir
+ hostPath:
+ path: /etc/cmk
+ - name: power-mgmt
+ hostPath:
+ path: /opt/power_mgmt
+
+ vnf{{ vnf_index }}ds:
+ nodeSelector:
+ vcmts: "true"
+ containers:
+ - image: {{ vcmtsd_image }}
+ imagePullPolicy: IfNotPresent
+ env:
+ - name: CMK_PROC_FS
+ value: "/host/proc"
+ command: /bin/bash
+ args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.;
+ chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;
+ while true ; do sleep 10000; done']
+ resources:
+ requests:
+ memory: 10Ki
+{% if qat_on %}
+ hugepages-1Gi: 2Gi
+ qat.intel.com/generic: '1'
+{% else %}
+ hugepages-1Gi: 1Gi
+{% endif %}
+ limits:
+ memory: 1Gi
+{% if qat_on %}
+ hugepages-1Gi: 2Gi
+ qat.intel.com/generic: '1'
+{% else %}
+ hugepages-1Gi: 1Gi
+{% endif %}
+ lifecycle:
+ postStart:
+ exec:
+ command: [ "/bin/bash", "-c", "env > /tmp/qat" ]
+ volumeMounts:
+ - name: vcmts-configmap-vcmtspod
+ mountPath: /vcmts-config
+ - name: hugepages
+ mountPath: /hugepages
+ readOnly: false
+ - name: collectd
+ mountPath: /opt/collectd/var
+ readOnly: false
+ - name: sysfs
+ mountPath: /sys
+ readOnly: false
+ - name: sriov
+ mountPath: /sriov-cni
+ readOnly: false
+ - name: host-proc
+ mountPath: /host/proc
+ readOnly: true
+ - name: cmk-install-dir
+ mountPath: /opt/bin
+ - name: cmk-conf-dir
+ mountPath: /etc/cmk
+ - name: power-mgmt
+ mountPath: /opt/power_mgmt
+ ports:
+ - containerPort: 22022
+ securityContext:
+ allowPrivilegeEscalation: true
+ privileged: true
+ node_ports:
+ - name: lua # Lower case alphanumeric characters or '-'
+ port: 22022
+ networks:
+ - flannel
+ - xe0
+ - xe1
+ volumes:
+ - name: vcmts-configmap-vcmtspod
+ configMap:
+ name: vcmts-configmap-vcmtspod
+ defaultMode: 0744
+ - name: hugepages
+ emptyDir:
+ medium: HugePages
+ - name: collectd
+ hostPath:
+ path: /opt/collectd/var
+ - name: sysfs
+ hostPath:
+ path: /sys
+ - name: sriov
+ hostPath:
+ path: /var/lib/cni/sriov
+ - name: cmk-install-dir
+ hostPath:
+ path: /opt/bin
+ - name: host-proc
+ hostPath:
+ path: /proc
+ - name: cmk-conf-dir
+ hostPath:
+ path: /etc/cmk
+ - name: power-mgmt
+ hostPath:
+ path: /opt/power_mgmt
+{% endfor %}
+
+{% for index in range(0, num_tg) %}
+ pktgen{{index}}:
+ nodeSelector:
+ vcmtspktgen: "true"
+ containers:
+ - image: vcmts-pktgen:v18.10
+ imagePullPolicy: IfNotPresent
+ tty: true
+ stdin: true
+ env:
+ - name: LUA_PATH
+ value: "/vcmts/Pktgen.lua"
+ - name: CMK_PROC_FS
+ value: "/host/proc"
+ command: /bin/bash
+ args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.;
+ chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;
+ while true ; do sleep 10000; done']
+ resources:
+ requests:
+ hugepages-1Gi: 9Gi
+ memory: 200Mi
+ limits:
+ hugepages-1Gi: 9Gi
+ memory: 200Mi
+ volumeMounts:
+ - name: sysfs
+ mountPath: /sys
+ readOnly: false
+ - name: hugepages
+ mountPath: /hugepages
+ readOnly: false
+ - name: sriov
+ mountPath: /sriov-cni
+ readOnly: false
+ - name: host-proc
+ mountPath: /host/proc
+ readOnly: true
+ - name: cmk-install-dir
+ mountPath: /opt/bin
+ - name: cmk-conf-dir
+ mountPath: /etc/cmk
+ - name: pktgen-config
+ mountPath: /pktgen-config
+ ports:
+ - containerPort: 22022
+ securityContext:
+ allowPrivilegeEscalation: true
+ privileged: true
+ volumes:
+ - name: sysfs
+ hostPath:
+ path: /sys
+ - name: hugepages
+ emptyDir:
+ medium: HugePages
+ - name: sriov
+ hostPath:
+ path: /var/lib/cni/sriov
+ - name: cmk-install-dir
+ hostPath:
+ path: /opt/bin
+ - name: host-proc
+ hostPath:
+ path: /proc
+ - name: cmk-conf-dir
+ hostPath:
+ path: /etc/cmk
+ - name: pktgen-config
+ configMap:
+ name: vcmts-configmap-pktgen
+ defaultMode: 0744
+ node_ports:
+ - name: lua # Lower case alphanumeric characters or '-'
+ port: 22022
+ networks:
+ - flannel
+ - xe0
+ - xe1
+{% endfor %}
+
+ networks:
+ flannel:
+ args: '[{ "delegate": { "isDefaultGateway": true }}]'
+ plugin: flannel
+ xe0:
+ args: '[{ "delegate": { "isDefaultGateway": true }}]'
+ plugin: flannel
+ xe1:
+ args: '[{ "delegate": { "isDefaultGateway": true }}]'
+ plugin: flannel
diff --git a/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixload.yaml b/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixload.yaml
new file mode 100644
index 000000000..2ccf54bf1
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixload.yaml
@@ -0,0 +1,50 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: VFW
+ name: VFW
+ short-name: VFW
+ description: scenario with HTTP and vFW VNF
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_ixload.yaml
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/firewall_vnf.yaml
+
+ vld:
+ - id: uplink_0
+ name: tg__0 to vnf__0 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0 # HTTP Client
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0 # VNF
+
+ - id: downlink_0
+ name: vnf__0 to tg__0 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0 # HTTP Server
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0 # VFW VNF
diff --git a/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixload_4port.yaml b/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixload_4port.yaml
new file mode 100644
index 000000000..be90f5a1f
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixload_4port.yaml
@@ -0,0 +1,72 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: VFW
+ name: VFW
+ short-name: VFW
+ description: scenario with HTTP and vFW VNF
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_ixload.yaml
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/firewall_vnf.yaml
+
+ vld:
+ - id: uplink_0
+ name: tg__0 to vnf__0 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0 # HTTP Client
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0 # VNF
+
+ - id: downlink_0
+ name: vnf__0 to tg__0 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0 # HTTP Server
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0 # VFW VNF
+
+ - id: uplink_1
+ name: tg__0 to vnf__0 link 3
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe2
+ vnfd-id-ref: tg__0 # HTTP Client
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe2
+ vnfd-id-ref: vnf__0 # VNF
+
+ - id: downlink_1
+ name: vnf__0 to tg__0 link 4
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe3
+ vnfd-id-ref: vnf__0 # HTTP Server
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe3
+ vnfd-id-ref: tg__0 # VFW VNF
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1024k_Requests-65000_Concurrency.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_CPS.yaml
index a87996c1a..54d393cd3 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1024k_Requests-65000_Concurrency.yaml
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_CPS.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,15 +16,15 @@
schema: yardstick:task:0.1
scenarios:
- type: NSPerf
- traffic_profile: "../../traffic_profiles/http_tests/HTTP_1024k-requests_65000_concurrency.yaml"
- topology: vfw_vnf_topology_ixload.yaml
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1024k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ private: {64B: 100}
+ public: {64B: 100}
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
@@ -35,10 +35,9 @@ scenarios:
runner:
type: Duration
duration: 2
- ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports.rxf # Need vlan update
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CPS-1024K.rxf # Need vlan update
context:
type: Node
name: yardstick
nfvi_type: baremetal
file: /etc/yardstick/nodes/pod_ixia.yaml
-
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_CPS_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_CPS_4port.yaml
new file mode 100644
index 000000000..9a426218a
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_CPS_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1024k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CPS-1024K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPS.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPS.yaml
new file mode 100644
index 000000000..9b292664f
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPS.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1024k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-TPS-1024K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPS_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPS_4port.yaml
new file mode 100644
index 000000000..f813b2fd3
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPS_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1024k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-TPS-1024K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPUT.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPUT.yaml
new file mode 100644
index 000000000..e89237e65
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPUT.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1024k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-TPUT-1024K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPUT_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPUT_4port.yaml
new file mode 100644
index 000000000..0fc376030
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1024k_Requests-1M_TPUT_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1024k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-TPUT-1024K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_512k_Requests-65000_Concurrency.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_CPS.yaml
index 8fcd66e31..f0823522c 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_512k_Requests-65000_Concurrency.yaml
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_CPS.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,15 +16,15 @@
schema: yardstick:task:0.1
scenarios:
- type: NSPerf
- traffic_profile: "../../traffic_profiles/http_tests/HTTP_512k-requests_65000_concurrency.yaml"
- topology: vfw_vnf_topology_ixload.yaml
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ private: {64B: 100}
+ public: {64B: 100}
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
@@ -35,10 +35,9 @@ scenarios:
runner:
type: Duration
duration: 2
- ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports.rxf # Need vlan update
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CPS-1B.rxf # Need vlan update
context:
type: Node
name: yardstick
nfvi_type: baremetal
file: /etc/yardstick/nodes/pod_ixia.yaml
-
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_CPS_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_CPS_4port.yaml
new file mode 100644
index 000000000..d5e2a15fc
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_CPS_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CPS-1B.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPS.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPS.yaml
new file mode 100644
index 000000000..1f53aa78e
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPS.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-TPS-1B.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPS_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPS_4port.yaml
new file mode 100644
index 000000000..234c099d7
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPS_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-TPS-1B.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPUT.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPUT.yaml
new file mode 100644
index 000000000..2e4831975
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPUT.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-TPUT-1B.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPUT_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPUT_4port.yaml
new file mode 100644
index 000000000..7e20c791c
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_1b_Requests-1M_TPUT_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-TPUT-1B.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_256k_Requests-65000_Concurrency.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_CPS.yaml
index 82cdd6210..bf7d7f9aa 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_256k_Requests-65000_Concurrency.yaml
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_CPS.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,15 +16,15 @@
schema: yardstick:task:0.1
scenarios:
- type: NSPerf
- traffic_profile: "../../traffic_profiles/http_tests/HTTP_256k-requests_65000_concurrency.yaml"
- topology: vfw_vnf_topology_ixload.yaml
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_256k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ private: {64B: 100}
+ public: {64B: 100}
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
@@ -35,10 +35,9 @@ scenarios:
runner:
type: Duration
duration: 2
- ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports.rxf # Need vlan update
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CPS-256K.rxf # Need vlan update
context:
type: Node
name: yardstick
nfvi_type: baremetal
file: /etc/yardstick/nodes/pod_ixia.yaml
-
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_CPS_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_CPS_4port.yaml
new file mode 100644
index 000000000..735177218
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_CPS_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_256k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CPS-256K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPS.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPS.yaml
new file mode 100644
index 000000000..5ce173146
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPS.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_256k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-TPS-256K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPS_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPS_4port.yaml
new file mode 100644
index 000000000..5fd27d39f
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPS_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_256k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-TPS-256K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPUT.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPUT.yaml
new file mode 100644
index 000000000..1c6b9749f
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPUT.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_256k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-TPUT-256K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPUT_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPUT_4port.yaml
new file mode 100644
index 000000000..ec5c80ddb
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_256k_Requests-1M_TPUT_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_256k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-TPUT-256K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_4k_Requests-65000_Concurrency.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_CPS.yaml
index 00131b5f9..11f947d0d 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_4k_Requests-65000_Concurrency.yaml
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_CPS.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,15 +16,15 @@
schema: yardstick:task:0.1
scenarios:
- type: NSPerf
- traffic_profile: "../../traffic_profiles/http_tests/HTTP_4k-requests_65000_concurrency.yaml"
- topology: vfw_vnf_topology_ixload.yaml
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_4k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ private: {64B: 100}
+ public: {64B: 100}
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
@@ -35,10 +35,9 @@ scenarios:
runner:
type: Duration
duration: 2
- ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports.rxf # Need vlan update
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CPS-4K.rxf # Need vlan update
context:
type: Node
name: yardstick
nfvi_type: baremetal
file: /etc/yardstick/nodes/pod_ixia.yaml
-
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_CPS_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_CPS_4port.yaml
new file mode 100644
index 000000000..b5e7821e5
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_CPS_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_4k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CPS-4K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPS.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPS.yaml
new file mode 100644
index 000000000..b6ea12c01
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPS.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_4k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-TPS-4K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPS_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPS_4port.yaml
new file mode 100644
index 000000000..f81aaac32
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPS_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_4k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-TPS-4K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPUT.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPUT.yaml
new file mode 100644
index 000000000..fd1a166b1
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPUT.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_4k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-TPUT-4K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPUT_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPUT_4port.yaml
new file mode 100644
index 000000000..6a29592a9
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_4k_Requests-1M_TPUT_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_4k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-TPUT-4K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_64k_Requests-65000_Concurrency.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_CPS.yaml
index 3b354243b..41c5fad57 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_64k_Requests-65000_Concurrency.yaml
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_CPS.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,15 +16,15 @@
schema: yardstick:task:0.1
scenarios:
- type: NSPerf
- traffic_profile: "../../traffic_profiles/http_tests/HTTP_64k-requests_65000_concurrency.yaml"
- topology: vfw_vnf_topology_ixload.yaml
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_64k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ private: {64B: 100}
+ public: {64B: 100}
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
@@ -35,7 +35,7 @@ scenarios:
runner:
type: Duration
duration: 2
- ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports.rxf # Need vlan update
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CPS-64K.rxf # Need vlan update
context:
type: Node
name: yardstick
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_CPS_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_CPS_4port.yaml
new file mode 100644
index 000000000..c2c3deb68
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_CPS_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_64k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CPS-64K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPS.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPS.yaml
new file mode 100644
index 000000000..bac4a634c
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPS.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_64k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-TPS-64K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPS_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPS_4port.yaml
new file mode 100644
index 000000000..63003b756
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPS_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_64k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-TPS-64K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPUT.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPUT.yaml
new file mode 100644
index 000000000..421acc9c5
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPUT.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_64k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-TPUT-64K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPUT_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPUT_4port.yaml
new file mode 100644
index 000000000..e10736d6b
--- /dev/null
+++ b/samples/vnf_samples/nsut/firewall/tc_baremetal_http_ixload_64k_Requests-1M_TPUT_4port.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/http_tests/HTTP_64k-requests_1M_concurrency.yaml"
+ topology: firewall_vnf_topology_ixload_4port.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ private: {64B: 100}
+ public: {64B: 100}
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Duration
+ duration: 2
+ ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-TPUT-64K.rxf # Need vlan update
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml
new file mode 100644
index 000000000..a9c0e4860
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set mlr_search = mlr_search or false %}
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0 %}
+{% set tolerance_high = tolerance_high or 0.005 %}
+{% set tunnels = tunnels or 1 %}
+{% set flow_count = flow_count or 1 %}
+{% set worker_threads = worker_threads or [1] %}
+---
+schema: yardstick:task:0.1
+description: >
+ This is the VPP IPSec performance tests based on the Data Plane Development
+ Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK HW
+ cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get
+ IPv4 traffic from TG with IMIX packet size and number of flows is
+ {{ flow_count }}, encrypt it and send to another DUT, where packets are
+ decrypted and sent back to TG. Measure successful transmit rate, throughput
+ NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency.
+
+scenarios:
+{% for worker_thread in worker_threads %}
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vpp-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen.yardstick
+ vnf__0: vnf0.yardstick
+ vnf__1: vnf1.yardstick
+ options:
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }}
+ framesize:
+ uplink: {64B: 28, 570B: 16, 1518B: 4}
+ downlink: {64B: 28, 570B: 16, 1518B: 4}
+ flow:
+ src_ip:
+ - '10.0.0.0-10.0.0.100'
+ dst_ip:
+ - '20.0.0.0-20.0.0.100'
+ count: {{ flow_count }}
+ vnf__0:
+ collectd:
+ interval: 1
+ # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev
+ # Number of RX queues, default value: ${None}. Type: integer
+ vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ vnf__1:
+ collectd:
+ interval: 1
+ vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ tg__0:
+ collectd:
+ interval: 1
+ queues_per_port: 7
+ vpp_config:
+ # Number of tunnels
+ tunnels: {{ tunnels }}
+ # Encryption algorithms - Integrity algorithm. Type: string
+ # Example: aes-gcm | cbc-sha1
+ crypto_algorithms: 'aes-gcm'
+{% if mlr_search %}
+ # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size
+ # for a 10 Gb/s Ethernet link and IMIX packet size,
+ # maximum rate = 10*10^9/(((28*64+16*570+4*1518)/48+8+12)*8)
+ max_rate: 3351206
+{% endif %}
+ runner:
+ type: Duration
+ duration: 500
+{% endfor %}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml
new file mode 100644
index 000000000..84a7fe61b
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml
@@ -0,0 +1,96 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set mlr_search = mlr_search or false %}
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0 %}
+{% set tolerance_high = tolerance_high or 0.005 %}
+{% set frame_size = frame_size or 64 %}
+{% set tunnels = tunnels or 1 %}
+{% set flow_count = flow_count or 1 %}
+{% set worker_threads = worker_threads or [1] %}
+---
+schema: yardstick:task:0.1
+description: >
+ This is the VPP IPSec performance tests based on the Data Plane Development
+ Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK HW
+ cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get
+ IPv4 traffic from TG with {{ frame_size }}B packet size and number of flows
+ is {{ flow_count }}, encrypt it and send to another DUT, where packets are
+ decrypted and sent back to TG. Measure successful transmit rate, throughput
+ NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency.
+
+scenarios:
+{% for worker_thread in worker_threads %}
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vpp-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen.yardstick
+ vnf__0: vnf0.yardstick
+ vnf__1: vnf1.yardstick
+ options:
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }}
+ framesize:
+ uplink: {'{{ frame_size }}B': 100}
+ downlink: {'{{ frame_size }}B': 100}
+ flow:
+ src_ip:
+ - '10.0.0.0-10.0.0.100'
+ dst_ip:
+ - '20.0.0.0-20.0.0.100'
+ count: {{ flow_count }}
+ vnf__0:
+ collectd:
+ interval: 1
+ # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev
+ # Number of RX queues, default value: ${None}. Type: integer
+ vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ vnf__1:
+ collectd:
+ interval: 1
+ vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ tg__0:
+ collectd:
+ interval: 1
+ queues_per_port: 7
+ vpp_config:
+ # Number of tunnels
+ tunnels: {{ tunnels }}
+ # Encryption algorithms - Integrity algorithm. Type: string
+ # Example: aes-gcm | cbc-sha1
+ crypto_algorithms: 'aes-gcm'
+{% if mlr_search %}
+ # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size
+ # for a 10 Gb/s Ethernet link and 64 bytes,
+ # maximum rate = 10*10^9/((64+8+12)*8)
+ max_rate: {{ (10 * 10 ** 9 / ((frame_size + 8 + 12) * 8)) | int }}
+{% endif %}
+ runner:
+ type: Duration
+ duration: 500
+{% endfor %}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml
new file mode 100644
index 000000000..07afe809e
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set mlr_search = mlr_search or false %}
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0 %}
+{% set tolerance_high = tolerance_high or 0.005 %}
+{% set tunnels = tunnels or 1 %}
+{% set flow_count = flow_count or 1 %}
+{% set worker_threads = worker_threads or [1] %}
+---
+schema: yardstick:task:0.1
+description: >
+ This is the VPP IPSec performance tests based on the Data Plane Development
+ Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK HW
+ cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get
+ IPv4 traffic from TG with IMIX packet size and number of flows is
+ {{ flow_count }}, encrypt it and send to another DUT, where packets are
+ decrypted and sent back to TG. Measure successful transmit rate, throughput
+ NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency.
+
+scenarios:
+{% for worker_thread in worker_threads %}
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vpp-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen.yardstick
+ vnf__0: vnf0.yardstick
+ vnf__1: vnf1.yardstick
+ options:
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }}
+ framesize:
+ uplink: {64B: 28, 570B: 16, 1518B: 4}
+ downlink: {64B: 28, 570B: 16, 1518B: 4}
+ flow:
+ src_ip:
+ - '10.0.0.0-10.0.0.100'
+ dst_ip:
+ - '20.0.0.0-20.0.0.100'
+ count: {{ flow_count }}
+ vnf__0:
+ collectd:
+ interval: 1
+ # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev
+ # Number of RX queues, default value: ${None}. Type: integer
+ vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ vnf__1:
+ collectd:
+ interval: 1
+ vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ tg__0:
+ collectd:
+ interval: 1
+ queues_per_port: 7
+ vpp_config:
+ # Number of tunnels
+ tunnels: {{ tunnels }}
+ # Encryption algorithms - Integrity algorithm. Type: string
+ # Example: aes-gcm | cbc-sha1
+ crypto_algorithms: 'cbc-sha1'
+{% if mlr_search %}
+ # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size
+ # for a 10 Gb/s Ethernet link and IMIX packet size,
+ # maximum rate = 10*10^9/(((28*64+16*570+4*1518)/48+8+12)*8)
+ max_rate: 3351206
+{% endif %}
+ runner:
+ type: Duration
+ duration: 500
+{% endfor %}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml
new file mode 100644
index 000000000..9e210aeed
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml
@@ -0,0 +1,96 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set mlr_search = mlr_search or false %}
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0 %}
+{% set tolerance_high = tolerance_high or 0.005 %}
+{% set frame_size = frame_size or 64 %}
+{% set tunnels = tunnels or 1 %}
+{% set flow_count = flow_count or 1 %}
+{% set worker_threads = worker_threads or [1] %}
+---
+schema: yardstick:task:0.1
+description: >
+ This is the VPP IPSec performance tests based on the Data Plane Development
+ Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK HW
+ cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get
+ IPv4 traffic from TG with {{ frame_size }}B packet size and number of flows
+ is {{ flow_count }}, encrypt it and send to another DUT, where packets are
+ decrypted and sent back to TG. Measure successful transmit rate, throughput
+ NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency.
+
+scenarios:
+{% for worker_thread in worker_threads %}
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vpp-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen.yardstick
+ vnf__0: vnf0.yardstick
+ vnf__1: vnf1.yardstick
+ options:
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }}
+ framesize:
+ uplink: {'{{ frame_size }}B': 100}
+ downlink: {'{{ frame_size }}B': 100}
+ flow:
+ src_ip:
+ - '10.0.0.0-10.0.0.100'
+ dst_ip:
+ - '20.0.0.0-20.0.0.100'
+ count: {{ flow_count }}
+ vnf__0:
+ collectd:
+ interval: 1
+ # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev
+ # Number of RX queues, default value: ${None}. Type: integer
+ vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ vnf__1:
+ collectd:
+ interval: 1
+ vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ tg__0:
+ collectd:
+ interval: 1
+ queues_per_port: 7
+ vpp_config:
+ # Number of tunnels
+ tunnels: {{ tunnels }}
+ # Encryption algorithms - Integrity algorithm. Type: string
+ # Example: aes-gcm | cbc-sha1
+ crypto_algorithms: 'cbc-sha1'
+{% if mlr_search %}
+ # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size
+ # for a 10 Gb/s Ethernet link and 64 bytes,
+ # maximum rate = 10*10^9/((64+8+12)*8)
+ max_rate: {{ (10 * 10 ** 9 / ((frame_size + 8 + 12) * 8)) | int }}
+{% endif %}
+ runner:
+ type: Duration
+ duration: 500
+{% endfor %}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml
new file mode 100644
index 000000000..ac7fceef6
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set mlr_search = mlr_search or false %}
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0 %}
+{% set tolerance_high = tolerance_high or 0.005 %}
+{% set tunnels = tunnels or 1 %}
+{% set flow_count = flow_count or 1 %}
+{% set worker_threads = worker_threads or [1] %}
+---
+schema: yardstick:task:0.1
+description: >
+ This is the VPP IPSec performance tests based on the Data Plane Development
+ Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK SW
+ cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get
+ IPv4 traffic from TG with IMIX packet size and number of flows is
+ {{ flow_count }}, encrypt it and send to another DUT, where packets are
+ decrypted and sent back to TG. Measure successful transmit rate, throughput
+ NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency.
+
+scenarios:
+{% for worker_thread in worker_threads %}
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vpp-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen.yardstick
+ vnf__0: vnf0.yardstick
+ vnf__1: vnf1.yardstick
+ options:
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }}
+ framesize:
+ uplink: {64B: 28, 570B: 16, 1518B: 4}
+ downlink: {64B: 28, 570B: 16, 1518B: 4}
+ flow:
+ src_ip:
+ - '10.0.0.0-10.0.0.100'
+ dst_ip:
+ - '20.0.0.0-20.0.0.100'
+ count: {{ flow_count }}
+ vnf__0:
+ collectd:
+ interval: 1
+ # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev
+ # Number of RX queues, default value: ${None}. Type: integer
+ vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ vnf__1:
+ collectd:
+ interval: 1
+ vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ tg__0:
+ collectd:
+ interval: 1
+ queues_per_port: 7
+ vpp_config:
+ # Number of tunnels
+ tunnels: {{ tunnels }}
+ # Encryption algorithms - Integrity algorithm. Type: string
+ # Example: aes-gcm | cbc-sha1
+ crypto_algorithms: 'aes-gcm'
+{% if mlr_search %}
+ # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size
+ # for a 10 Gb/s Ethernet link and IMIX packet size,
+ # maximum rate = 10*10^9/(((28*64+16*570+4*1518)/48+8+12)*8)
+ max_rate: 3351206
+{% endif %}
+ runner:
+ type: Duration
+ duration: 500
+{% endfor %}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml
new file mode 100644
index 000000000..82f27112d
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml
@@ -0,0 +1,96 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set mlr_search = mlr_search or false %}
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0 %}
+{% set tolerance_high = tolerance_high or 0.005 %}
+{% set frame_size = frame_size or 64 %}
+{% set tunnels = tunnels or 1 %}
+{% set flow_count = flow_count or 1 %}
+{% set worker_threads = worker_threads or [1] %}
+---
+schema: yardstick:task:0.1
+description: >
+ This is the VPP IPSec performance tests based on the Data Plane Development
+ Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK SW
+ cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get
+ IPv4 traffic from TG with {{ frame_size }}B packet size and number of flows
+ is {{ flow_count }}, encrypt it and send to another DUT, where packets are
+ decrypted and sent back to TG. Measure successful transmit rate, throughput
+ NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency.
+
+scenarios:
+{% for worker_thread in worker_threads %}
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vpp-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen.yardstick
+ vnf__0: vnf0.yardstick
+ vnf__1: vnf1.yardstick
+ options:
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }}
+ framesize:
+ uplink: {'{{ frame_size }}B': 100}
+ downlink: {'{{ frame_size }}B': 100}
+ flow:
+ src_ip:
+ - '10.0.0.0-10.0.0.100'
+ dst_ip:
+ - '20.0.0.0-20.0.0.100'
+ count: {{ flow_count }}
+ vnf__0:
+ collectd:
+ interval: 1
+ # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev
+ # Number of RX queues, default value: ${None}. Type: integer
+ vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{worker_thread}}}
+ vnf__1:
+ collectd:
+ interval: 1
+ vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{worker_thread}}}
+ tg__0:
+ collectd:
+ interval: 1
+ queues_per_port: 7
+ vpp_config:
+ # Number of tunnels
+ tunnels: {{ tunnels }}
+ # Encryption algorithms - Integrity algorithm. Type: string
+ # Example: aes-gcm | cbc-sha1
+ crypto_algorithms: 'aes-gcm'
+{% if mlr_search %}
+ # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size
+ # for a 10 Gb/s Ethernet link and 64 bytes,
+ # maximum rate = 10*10^9/((64+8+12)*8)
+ max_rate: {{ (10 * 10 ** 9 / ((frame_size + 8 + 12) * 8)) | int }}
+{% endif %}
+ runner:
+ type: Duration
+ duration: 500
+{% endfor %}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml
new file mode 100644
index 000000000..d3bc14a97
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set mlr_search = mlr_search or false %}
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0 %}
+{% set tolerance_high = tolerance_high or 0.005 %}
+{% set tunnels = tunnels or 1 %}
+{% set flow_count = flow_count or 1 %}
+{% set worker_threads = worker_threads or [1] %}
+---
+schema: yardstick:task:0.1
+description: >
+ This is the VPP IPSec performance tests based on the Data Plane Development
+ Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK SW
+ cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get
+ IPv4 traffic from TG with IMIX packet size and number of flows is
+ {{ flow_count }}, encrypt it and send to another DUT, where packets are
+ decrypted and sent back to TG. Measure successful transmit rate, throughput
+ NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency.
+
+scenarios:
+{% for worker_thread in worker_threads %}
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vpp-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen.yardstick
+ vnf__0: vnf0.yardstick
+ vnf__1: vnf1.yardstick
+ options:
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }}
+ framesize:
+ uplink: {64B: 28, 570B: 16, 1518B: 4}
+ downlink: {64B: 28, 570B: 16, 1518B: 4}
+ flow:
+ src_ip:
+ - '10.0.0.0-10.0.0.100'
+ dst_ip:
+ - '20.0.0.0-20.0.0.100'
+ count: {{ flow_count }}
+ vnf__0:
+ collectd:
+ interval: 1
+ # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev
+ # Number of RX queues, default value: ${None}. Type: integer
+ vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ vnf__1:
+ collectd:
+ interval: 1
+ vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ tg__0:
+ collectd:
+ interval: 1
+ queues_per_port: 7
+ vpp_config:
+ # Number of tunnels
+ tunnels: {{ tunnels }}
+ # Encryption algorithms - Integrity algorithm. Type: string
+ # Example: aes-gcm | cbc-sha1
+ crypto_algorithms: 'cbc-sha1'
+{% if mlr_search %}
+ # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size
+ # for a 10 Gb/s Ethernet link and IMIX packet size,
+ # maximum rate = 10*10^9/(((28*64+16*570+4*1518)/48+8+12)*8)
+ max_rate: 3351206
+{% endif %}
+ runner:
+ type: Duration
+ duration: 500
+{% endfor %}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml
new file mode 100644
index 000000000..a70aa49f7
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml
@@ -0,0 +1,96 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set mlr_search = mlr_search or false %}
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0 %}
+{% set tolerance_high = tolerance_high or 0.005 %}
+{% set frame_size = frame_size or 64 %}
+{% set tunnels = tunnels or 1 %}
+{% set flow_count = flow_count or 1 %}
+{% set worker_threads = worker_threads or [1] %}
+---
+schema: yardstick:task:0.1
+description: >
+ This is the VPP IPSec performance tests based on the Data Plane Development
+ Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK SW
+ cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get
+ IPv4 traffic from TG with {{ frame_size }}B packet size and number of flows
+ is {{ flow_count }}, encrypt it and send to another DUT, where packets are
+ decrypted and sent back to TG. Measure successful transmit rate, throughput
+ NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency.
+
+scenarios:
+{% for worker_thread in worker_threads %}
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vpp-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen.yardstick
+ vnf__0: vnf0.yardstick
+ vnf__1: vnf1.yardstick
+ options:
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }}
+ framesize:
+ uplink: {'{{ frame_size }}B': 100}
+ downlink: {'{{ frame_size }}B': 100}
+ flow:
+ src_ip:
+ - '10.0.0.0-10.0.0.100'
+ dst_ip:
+ - '20.0.0.0-20.0.0.100'
+ count: {{ flow_count }}
+ vnf__0:
+ collectd:
+ interval: 1
+ # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev
+ # Number of RX queues, default value: ${None}. Type: integer
+ vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ vnf__1:
+ collectd:
+ interval: 1
+ vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T',
+ worker_threads: {{ worker_thread }}}
+ tg__0:
+ collectd:
+ interval: 1
+ queues_per_port: 7
+ vpp_config:
+ # Number of tunnels
+ tunnels: {{ tunnels }}
+ # Encryption algorithms - Integrity algorithm. Type: string
+ # Example: aes-gcm | cbc-sha1
+ crypto_algorithms: 'cbc-sha1'
+{% if mlr_search %}
+ # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size
+ # for a 10 Gb/s Ethernet link and 64 bytes,
+ # maximum rate = 10*10^9/((64+8+12)*8)
+ max_rate: {{ (10 * 10 ** 9 / ((frame_size + 8 + 12) * 8)) | int }}
+{% endif %}
+ runner:
+ type: Duration
+ duration: 500
+{% endfor %}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/ipsec/vpp-tg-topology-scale-up.yaml b/samples/vnf_samples/nsut/ipsec/vpp-tg-topology-scale-up.yaml
new file mode 100644
index 000000000..067ef2425
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/vpp-tg-topology-scale-up.yaml
@@ -0,0 +1,65 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+{% set vports = get(extra_args, 'vports', 2) %}
+
+nsd:nsd-catalog:
+ nsd:
+ - id: ipsec-tg-topology
+ name: ipsec-tg-topology
+ short-name: ipsec-tg-topology
+ description: ipsec-tg-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_vpp_tpl.yaml # Traffic Generator
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/vpp_vnfd.yaml # IPSec
+ - member-vnf-index: '3'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/vpp_vnfd.yaml # IPSec
+ vld:
+{% for vport in range(0,vports,2|int) %}
+ - id: uplink_{{loop.index0}}
+ name: tg__0 to vnf__0 link {{ vport + 1 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{ vport }}
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{ vport }}
+ vnfd-id-ref: vnf__0
+ - id: ciphertext
+ name: vnf__0 to vnf__1 link {{ vport + 2 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{ vport + 1 }}
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe{{ vport + 1 }}
+ vnfd-id-ref: vnf__1
+ - id: downlink_{{loop.index0}}
+ name: vnf__1 to tg__0 link {{ vport + 3 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe{{ vport }}
+ vnfd-id-ref: vnf__1
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{ vport + 1 }}
+ vnfd-id-ref: tg__0
+{% endfor %} \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/ping/tc_external_ping_heat_context.yaml b/samples/vnf_samples/nsut/ping/tc_external_ping_heat_context.yaml
index 6e3dd3280..47d1dc383 100644
--- a/samples/vnf_samples/nsut/ping/tc_external_ping_heat_context.yaml
+++ b/samples/vnf_samples/nsut/ping/tc_external_ping_heat_context.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,8 +22,8 @@ scenarios:
topology: ping_tg_topology.yaml
nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.baremetal
+ vnf__0: vnf_0.yardstick
runner:
type: Duration
@@ -40,7 +40,7 @@ contexts:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
diff --git a/samples/vnf_samples/nsut/ping/tc_ping_baremetal_context.yaml b/samples/vnf_samples/nsut/ping/tc_ping_baremetal_context.yaml
index 63f252484..bd7d6fda8 100644
--- a/samples/vnf_samples/nsut/ping/tc_ping_baremetal_context.yaml
+++ b/samples/vnf_samples/nsut/ping/tc_ping_baremetal_context.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,8 +22,8 @@ scenarios:
topology: ping_tg_topology.yaml # TODO: look in relative path where the tc.yaml is found
nodes: # This section is copied from pod.xml or resolved via Heat
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
vnf_options:
tg__0:
diff --git a/samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml b/samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml
index a3a11f670..55b93090c 100644
--- a/samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml
+++ b/samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,8 +22,8 @@ scenarios:
topology: ping_tg_topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
runner:
type: Duration
@@ -40,10 +40,10 @@ context:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
- trafficgen_1:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
diff --git a/samples/vnf_samples/nsut/ping/tc_ping_ovs_dpdk_context.yaml b/samples/vnf_samples/nsut/ping/tc_ping_ovs_dpdk_context.yaml
index 5733f0df8..9a425f5e5 100644
--- a/samples/vnf_samples/nsut/ping/tc_ping_ovs_dpdk_context.yaml
+++ b/samples/vnf_samples/nsut/ping/tc_ping_ovs_dpdk_context.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,8 +22,8 @@ scenarios:
topology: ping_tg_topology.yaml # TODO: look in relative path where the tc.yaml is found
nodes: # This section is copied from pod.xml or resolved via Heat
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
vnf_options:
tg__0:
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_acl-2.cfg b/samples/vnf_samples/nsut/prox/configs/gen_acl-2.cfg
index 816bb3297..bf49cd484 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_acl-2.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_acl-2.cfg
@@ -38,7 +38,7 @@ $qinq_tag_inline="88 a8"
[global]
start time=5
-name=Basic Gen
+name=Basic ACL Gen x2
[core 0]
mode=master
@@ -50,7 +50,7 @@ mode=gen
tx port=p0
bps=625000000
; Ethernet + QinQ + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac0} 70 00 00 00 00 01 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 50 51 52 53
; svlan: [0,1]
random=000000000000000X
rand_offset=14
@@ -72,7 +72,6 @@ random=000000000000XXX00000000XXXXXXXXX
rand_offset=42
lat pos=50
-
[core 2]
name=p1
task=0
@@ -80,7 +79,7 @@ mode=gen
tx port=p1
bps=625000000
; Ethernet + QinQ + IP + UDP
-pkt inline=${sut_mac1} 70 00 00 00 00 02 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac1} 70 00 00 00 00 02 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 50 51 52 53
; svlan: [0,1]
random=000000000000000X
rand_offset=14
@@ -107,10 +106,12 @@ name=rec 0
task=0
mode=lat
rx port=p0
+lat pos=50
[core 4]
name=rec 1
task=0
mode=lat
rx port=p1
+lat pos=50
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_acl-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_acl-4.cfg
index bcfdb5028..6c5939356 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_acl-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_acl-4.cfg
@@ -62,7 +62,7 @@ mode=gen
tx port=p0
bps=625000000
; Ethernet + QinQ + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac0} 70 00 00 00 00 01 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 50 51 52 53
; svlan: [0,1]
random=000000000000000X
rand_offset=14
@@ -82,6 +82,7 @@ rand_offset=23
; dport: [0..511]
random=000000000000XXX00000000XXXXXXXXX
rand_offset=42
+lat pos=50
[core 2]
name=p1
@@ -90,7 +91,7 @@ mode=gen
tx port=p1
bps=625000000
; Ethernet + QinQ + IP + UDP
-pkt inline=${sut_mac1} 70 00 00 00 00 02 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac1} 70 00 00 00 00 02 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 50 51 52 53
; svlan: [0,1]
random=000000000000000X
rand_offset=14
@@ -110,6 +111,7 @@ rand_offset=23
; dport: [0..511]
random=000000000000XXX00000000XXXXXXXXX
rand_offset=42
+lat pos=50
[core 3]
name=p2
@@ -118,7 +120,7 @@ mode=gen
tx port=p2
bps=625000000
; Ethernet + QinQ + IP + UDP
-pkt inline=${sut_mac2} 70 00 00 00 00 02 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac2} 70 00 00 00 00 03 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 50 51 52 53
; svlan: [0,1]
random=000000000000000X
rand_offset=14
@@ -138,6 +140,7 @@ rand_offset=23
; dport: [0..511]
random=000000000000XXX00000000XXXXXXXXX
rand_offset=42
+lat pos=50
[core 4]
name=p3
@@ -146,7 +149,7 @@ mode=gen
tx port=p3
bps=625000000
; Ethernet + QinQ + IP + UDP
-pkt inline=${sut_mac3} 70 00 00 00 00 04 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac3} 70 00 00 00 00 04 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 50 51 52 53
; svlan: [0,1]
random=000000000000000X
rand_offset=14
@@ -166,27 +169,33 @@ rand_offset=23
; dport: [0..511]
random=000000000000XXX00000000XXXXXXXXX
rand_offset=42
+lat pos=50
[core 5]
name=rec 0
task=0
mode=lat
rx port=p0
+lat pos=50
[core 6]
name=rec 1
task=0
mode=lat
rx port=p1
+lat pos=50
[core 7]
name=rec 2
task=0
mode=lat
rx port=p2
+lat pos=50
[core 8]
name=rec 3
task=0
mode=lat
rx port=p3
+lat pos=50
+
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_all-2.cfg b/samples/vnf_samples/nsut/prox/configs/gen_all-2.cfg
index 1ca3f7791..8708d562e 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_all-2.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_all-2.cfg
@@ -20,11 +20,11 @@ no-output=no ; disable DPDK debug output
[port 0]
name=p0
mac=hardware
+
[port 1]
name=p1
mac=hardware
-
[defaults]
mempool size=4K
@@ -46,7 +46,8 @@ mode=gen
tx port=p0
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 00 00 00 01 00 00 00 02 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d 00 00 00 01 00 00 00 02 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
[core 2]
name=gen 1
@@ -55,7 +56,8 @@ mode=gen
tx port=p1
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 00 00 00 01 00 00 00 03 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d 00 00 00 01 00 00 00 03 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
[core 3]
task=0
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_bng-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_bng-4.cfg
index 3b9c68f3f..60f21bd70 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_bng-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_bng-4.cfg
@@ -56,7 +56,7 @@ mode=gen
tx port=cpe0
bps=12500000
; Ethernet + QinQ + ARP-reply
-pkt inline=${sut_mac0} 70 00 00 00 00 01 ${qinq_tag_inline} 00 01 81 00 00 01 08 06 00 01 08 00 06 04 00 02 00 1e 67 3e b8 df c0 a8 01 01 00 00 00 00 00 00 c0 a8 01 01
+pkt inline=${sut_mac0} 00 00 02 00 00 02 ${qinq_tag_inline} 00 01 81 00 00 01 08 06 00 01 08 00 06 04 00 02 00 1e 67 3e b8 df c0 a8 01 01 00 00 00 00 00 00 c0 a8 01 01
; svlan: [0..127]
random=000000000XXXXXXX
rand_offset=14
@@ -71,7 +71,7 @@ mode=gen
tx port=cpe1
bps=12500000
; Ethernet + QinQ + ARP-reply
-pkt inline=${sut_mac2} 70 00 00 00 00 03 ${qinq_tag_inline} 00 01 81 00 00 01 08 06 00 01 08 00 06 04 00 02 00 1e 67 3e b8 df c0 a8 01 01 00 00 00 00 00 00 c0 a8 01 01
+pkt inline=${sut_mac2} 00 00 02 00 00 02 ${qinq_tag_inline} 00 01 81 00 00 01 08 06 00 01 08 00 06 04 00 02 00 1e 67 3e b8 df c0 a8 01 01 00 00 00 00 00 00 c0 a8 01 01
; svlan: [128..255]
random=000000001XXXXXXX
rand_offset=14
@@ -93,8 +93,8 @@ rand_offset=14
; cvlan: 256*[0..15]+16*[0..3]+[0..3]
random=0000XXXX00XX00XX
rand_offset=18
-; dst_ip: [10,11].[0..255].[0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240].[0..255]
-random=0000101XXXXXXXXXXXXX0000XXXXXXXX
+; dst_ip: [10,11].[odd 1..255].[16,48,80,112,144,176,208,240].[odd 1..255]
+random=0000101XXXXXXXX11XXX0000XXXXXXX1
rand_offset=38
lat pos=42
@@ -105,15 +105,15 @@ mode=gen
tx port=cpe1
bps=1069289928
; Ethernet + QinQ + IP + UDP
-pkt inline=${sut_mac2} 70 00 00 00 00 03 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21
+pkt inline=${sut_mac2} 70 00 00 00 00 01 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21
; svlan: [128..255]
random=000000001XXXXXXX
rand_offset=14
; cvlan: 256*[0..15]+16*[0..3]+[0..3]
random=0000XXXX00XX00XX
rand_offset=18
-; dst_ip: [10,11].[0..255].[0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240].[0..255]
-random=0000101XXXXXXXXXXXXX0000XXXXXXXX
+; dst_ip: [10,11].[odd 1..255].[16,48,80,112,144,176,208,240].[odd 1..255]
+random=0000101XXXXXXXX11XXX0000XXXXXXX1
rand_offset=38
lat pos=42
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_bng_qos-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_bng_qos-4.cfg
index 3b9c68f3f..60f21bd70 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_bng_qos-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_bng_qos-4.cfg
@@ -56,7 +56,7 @@ mode=gen
tx port=cpe0
bps=12500000
; Ethernet + QinQ + ARP-reply
-pkt inline=${sut_mac0} 70 00 00 00 00 01 ${qinq_tag_inline} 00 01 81 00 00 01 08 06 00 01 08 00 06 04 00 02 00 1e 67 3e b8 df c0 a8 01 01 00 00 00 00 00 00 c0 a8 01 01
+pkt inline=${sut_mac0} 00 00 02 00 00 02 ${qinq_tag_inline} 00 01 81 00 00 01 08 06 00 01 08 00 06 04 00 02 00 1e 67 3e b8 df c0 a8 01 01 00 00 00 00 00 00 c0 a8 01 01
; svlan: [0..127]
random=000000000XXXXXXX
rand_offset=14
@@ -71,7 +71,7 @@ mode=gen
tx port=cpe1
bps=12500000
; Ethernet + QinQ + ARP-reply
-pkt inline=${sut_mac2} 70 00 00 00 00 03 ${qinq_tag_inline} 00 01 81 00 00 01 08 06 00 01 08 00 06 04 00 02 00 1e 67 3e b8 df c0 a8 01 01 00 00 00 00 00 00 c0 a8 01 01
+pkt inline=${sut_mac2} 00 00 02 00 00 02 ${qinq_tag_inline} 00 01 81 00 00 01 08 06 00 01 08 00 06 04 00 02 00 1e 67 3e b8 df c0 a8 01 01 00 00 00 00 00 00 c0 a8 01 01
; svlan: [128..255]
random=000000001XXXXXXX
rand_offset=14
@@ -93,8 +93,8 @@ rand_offset=14
; cvlan: 256*[0..15]+16*[0..3]+[0..3]
random=0000XXXX00XX00XX
rand_offset=18
-; dst_ip: [10,11].[0..255].[0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240].[0..255]
-random=0000101XXXXXXXXXXXXX0000XXXXXXXX
+; dst_ip: [10,11].[odd 1..255].[16,48,80,112,144,176,208,240].[odd 1..255]
+random=0000101XXXXXXXX11XXX0000XXXXXXX1
rand_offset=38
lat pos=42
@@ -105,15 +105,15 @@ mode=gen
tx port=cpe1
bps=1069289928
; Ethernet + QinQ + IP + UDP
-pkt inline=${sut_mac2} 70 00 00 00 00 03 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21
+pkt inline=${sut_mac2} 70 00 00 00 00 01 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21
; svlan: [128..255]
random=000000001XXXXXXX
rand_offset=14
; cvlan: 256*[0..15]+16*[0..3]+[0..3]
random=0000XXXX00XX00XX
rand_offset=18
-; dst_ip: [10,11].[0..255].[0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240].[0..255]
-random=0000101XXXXXXXXXXXXX0000XXXXXXXX
+; dst_ip: [10,11].[odd 1..255].[16,48,80,112,144,176,208,240].[odd 1..255]
+random=0000101XXXXXXXX11XXX0000XXXXXXX1
rand_offset=38
lat pos=42
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_buffering-1.cfg b/samples/vnf_samples/nsut/prox/configs/gen_buffering-1.cfg
index 6deefa82f..925ff0fb4 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_buffering-1.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_buffering-1.cfg
@@ -42,7 +42,8 @@ mode=gen
tx port=p0
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
[core 2]
name=P1
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_buffering-2.cfg b/samples/vnf_samples/nsut/prox/configs/gen_buffering-2.cfg
new file mode 100644
index 000000000..962f34a17
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/gen_buffering-2.cfg
@@ -0,0 +1,75 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#;
+
+[eal options]
+-n=4 ; number of memory channels
+no-output=no ; disable DPDK debug output
+
+[port 0]
+name=p0
+mac=hardware
+
+[port 1]
+name=p1
+mac=hardware
+
+[defaults]
+mempool size=4K
+
+[variables]
+$sut_mac0=@@dst_mac0
+$sut_mac1=@@dst_mac1
+
+[global]
+start time=5
+name=Buffering gen
+
+[core 0]
+mode=master
+
+[core 1-4]
+name=p0
+task=0
+mode=gen
+tx port=p0
+bps=1250000000
+; Ethernet + IP + UDP
+pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
+
+[core 5-8]
+name=p1
+task=0
+mode=gen
+tx port=p1
+bps=1250000000
+; Ethernet + IP + UDP
+pkt inline=${sut_mac1} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
+
+[core 28]
+name=P0
+task=0
+mode=lat
+rx port=p0
+lat pos=42
+
+[core 29]
+name=P1
+task=0
+mode=lat
+rx port=p1
+lat pos=42
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_buffering-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_buffering-4.cfg
new file mode 100644
index 000000000..9be6297a8
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/gen_buffering-4.cfg
@@ -0,0 +1,122 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#;
+
+[eal options]
+-n=4 ; number of memory channels
+no-output=no ; disable DPDK debug output
+
+[port 0]
+name=p0
+mac=hardware
+
+[port 1]
+name=p1
+mac=hardware
+
+[port 2]
+name=p2
+mac=hardware
+
+[port 3]
+name=p3
+mac=hardware
+
+
+[defaults]
+mempool size=4K
+
+[variables]
+$sut_mac0=@@dst_mac0
+$sut_mac1=@@dst_mac1
+$sut_mac2=@@dst_mac2
+$sut_mac3=@@dst_mac3
+
+[global]
+start time=5
+name=Buffering gen
+
+[core 0]
+mode=master
+
+[core 1-4]
+name=p0
+task=0
+mode=gen
+tx port=p0
+bps=1250000000
+; Ethernet + IP + UDP
+pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
+
+[core 5-8]
+name=p1
+task=0
+mode=gen
+tx port=p1
+bps=1250000000
+; Ethernet + IP + UDP
+pkt inline=${sut_mac1} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
+
+
+[core 9-12]
+name=p2
+task=0
+mode=gen
+tx port=p2
+bps=1250000000
+; Ethernet + IP + UDP
+pkt inline=${sut_mac2} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
+
+
+[core 13-16]
+name=p3
+task=0
+mode=gen
+tx port=p3
+bps=1250000000
+; Ethernet + IP + UDP
+pkt inline=${sut_mac3} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
+
+[core 28]
+name=P0
+task=0
+mode=lat
+rx port=p0
+lat pos=42
+
+[core 29]
+name=P1
+task=0
+mode=lat
+rx port=p1
+lat pos=42
+
+[core 30]
+name=P2
+task=0
+mode=lat
+rx port=p2
+lat pos=42
+
+[core 31]
+name=P3
+task=0
+mode=lat
+rx port=p3
+lat pos=42
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd-2.cfg b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd-2.cfg
index e7fad98bf..c82abdb78 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd-2.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd-2.cfg
@@ -49,7 +49,10 @@ mode=gen
tx port=p0
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 00 00 00 01 00 00 00 02 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac0} 3c fd fe 9f a3 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 2]
name=gen 1
@@ -58,7 +61,10 @@ mode=gen
tx port=p1
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 00 00 00 01 00 00 00 03 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac1} 3c fd fe 9f a3 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 3]
name=rec 0
@@ -66,6 +72,8 @@ task=0
mode=lat
rx port=p0
lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 4]
name=rec 0
@@ -73,4 +81,5 @@ task=0
mode=lat
rx port=p1
lat pos=42
-
+signature pos=46
+signature=0xcafedeca
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd-4.cfg
index 5b79185a7..5109c3d67 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd-4.cfg
@@ -61,7 +61,10 @@ mode=gen
tx port=p0
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac0} 3c fd fe 9f a3 a0 08 a0 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac0} 3c fd fe 9f a3 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 2]
name=gen 1
@@ -70,7 +73,10 @@ mode=gen
tx port=p1
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac1} 3c fd fe 9f a5 50 08 a0 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac1} 3c fd fe 9f a3 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 3]
name=gen 2
@@ -79,7 +85,10 @@ mode=gen
tx port=p2
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac2} 3c fd fe 9f a5 50 08 a0 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac2} 3c fd fe 9f a5 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 4]
name=gen 3
@@ -88,28 +97,43 @@ mode=gen
tx port=p3
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac3} 3c fd fe 9f a5 50 08 a0 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac3} 3c fd fe 9f a5 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 5]
name=rec 0
task=0
mode=lat
rx port=p0
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 6]
name=rec 1
task=0
mode=lat
rx port=p1
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 7]
name=rec 2
task=0
mode=lat
rx port=p2
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 8]
name=rec 3
task=0
mode=lat
rx port=p3
+lat pos=42
+signature pos=46
+signature=0xcafedeca
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_multiflow-2.cfg b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_multiflow-2.cfg
index c1939c06c..d344d3a48 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_multiflow-2.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_multiflow-2.cfg
@@ -53,15 +53,19 @@ mode=gen
tx port=p0
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 08 55 7b
-; src_ip: 152.16.100.0/8
+pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 152.16.100.0/28
random=0000XXX1
rand_offset=29
-; dst_ip: 152.16.100.0/8
+; dst_ip: 152.16.100.0/28
random=0000XXX0
rand_offset=33
+; src_port: 5000-5007, dst_port: 5000-5007
random=0001001110001XXX0001001110001XXX
rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 2]
name=p1
@@ -70,16 +74,19 @@ mode=gen
tx port=p1
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac1} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 98 10 28 01 98 10 28 02 13 88 13 88 00 08 55 7b
-; src_ip: 152.16.40.0/8
-random=1001100000010000001010000000XXXX
-rand_offset=26
-; dst_ip: 152.16.40.0/8
-random=1001100000010000001010000000XXXX
-rand_offset=30
+pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 152.16.100.0/28
+random=0000XXX1
+rand_offset=29
+; dst_ip: 152.16.100.0/28
+random=0000XXX0
+rand_offset=33
+; src_port: 5000-5007, dst_port: 5000-5007
random=0001001110001XXX0001001110001XXX
rand_offset=34
-
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 3]
name=rec 0
@@ -87,6 +94,8 @@ task=0
mode=lat
rx port=p0
lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 4]
name=rec 1
@@ -94,3 +103,5 @@ task=0
mode=lat
rx port=p1
lat pos=42
+signature pos=46
+signature=0xcafedeca
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_multiflow-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_multiflow-4.cfg
index f1e158414..c3c7c25d7 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_multiflow-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_multiflow-4.cfg
@@ -27,21 +27,29 @@ $sut_mac3=@@dst_mac3
[port 0]
name=p0
mac=hardware
+rx desc=2048
+tx desc=2048
promiscuous=yes
[port 1]
name=p1
mac=hardware
+rx desc=2048
+tx desc=2048
promiscuous=yes
[port 2]
name=p2
mac=hardware
+rx desc=2048
+tx desc=2048
promiscuous=yes
[port 3]
name=p3
mac=hardware
+rx desc=2048
+tx desc=2048
promiscuous=yes
[defaults]
@@ -61,15 +69,19 @@ mode=gen
tx port=p0
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 08 55 7b
-; src_ip: 152.16.100.0/8
+pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 152.16.100.0/28
random=0000XXX1
rand_offset=29
-; dst_ip: 152.16.100.0/8
+; dst_ip: 152.16.100.0/28
random=0000XXX0
rand_offset=33
+; src_port: 5000-5007, dst_port: 5000-5007
random=0001001110001XXX0001001110001XXX
rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 2]
name=p1
@@ -78,15 +90,19 @@ mode=gen
tx port=p1
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac1} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 08 55 7b
-; src_ip: 152.16.100.0/8
+pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 152.16.100.0/28
random=0000XXX1
rand_offset=29
-; dst_ip: 152.16.100.0/8
+; dst_ip: 152.16.100.0/28
random=0000XXX0
rand_offset=33
+; src_port: 5000-5007, dst_port: 5000-5007
random=0001001110001XXX0001001110001XXX
rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 3]
name=p2
@@ -95,15 +111,19 @@ mode=gen
tx port=p2
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac2} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 08 55 7b
-; src_ip: 152.16.100.0/8
+pkt inline=${sut_mac2} 70 00 00 00 00 03 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 152.16.100.0/28
random=0000XXX1
rand_offset=29
-; dst_ip: 152.16.100.0/8
+; dst_ip: 152.16.100.0/28
random=0000XXX0
rand_offset=33
+; src_port: 5000-5007, dst_port: 5000-5007
random=0001001110001XXX0001001110001XXX
rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 4]
name=p3
@@ -112,36 +132,52 @@ mode=gen
tx port=p3
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac3} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 08 55 7b
-; src_ip: 152.16.100.0/8
+pkt inline=${sut_mac3} 70 00 00 00 00 04 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d 98 10 64 01 98 10 64 02 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 152.16.100.0/28
random=0000XXX1
rand_offset=29
-; dst_ip: 152.16.100.0/8
+; dst_ip: 152.16.100.0/28
random=0000XXX0
rand_offset=33
+; src_port: 5000-5007, dst_port: 5000-5007
random=0001001110001XXX0001001110001XXX
rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 5]
name=rec 0
task=0
mode=lat
rx port=p0
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 6]
name=rec 1
task=0
mode=lat
rx port=p1
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 7]
name=rec 2
task=0
mode=lat
rx port=p2
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 8]
name=rec 3
task=0
mode=lat
rx port=p3
+lat pos=42
+signature pos=46
+signature=0xcafedeca
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_pktTouch-2.cfg b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_pktTouch-2.cfg
index 016a6b29c..e20edc199 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_pktTouch-2.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_pktTouch-2.cfg
@@ -21,6 +21,7 @@ no-output=no ; disable DPDK debug output
[port 0]
name=p0
mac=hardware
+
[port 1]
name=p1
mac=hardware
@@ -46,7 +47,8 @@ mode=gen
tx port=p0
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
[core 2]
name=p1
@@ -55,7 +57,8 @@ mode=gen
tx port=p1
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
[core 3]
task=0
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_pktTouch-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_pktTouch-4.cfg
index cb52d6c87..8dc4716bc 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_pktTouch-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_l2fwd_pktTouch-4.cfg
@@ -21,12 +21,15 @@ no-output=no ; disable DPDK debug output
[port 0]
name=p0
mac=hardware
+
[port 1]
name=p1
mac=hardware
+
[port 2]
name=p2
mac=hardware
+
[port 3]
name=p3
mac=hardware
@@ -54,7 +57,8 @@ mode=gen
tx port=p0
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
[core 2]
name=p1
@@ -63,7 +67,8 @@ mode=gen
tx port=p1
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
[core 3]
name=p2
@@ -72,7 +77,8 @@ mode=gen
tx port=p2
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac2} 70 00 00 00 00 03 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac2} 70 00 00 00 00 03 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
[core 4]
name=p3
@@ -81,7 +87,8 @@ mode=gen
tx port=p3
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac3} 70 00 00 00 00 04 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac3} 70 00 00 00 00 04 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 0c 55 7b 42 43 44 45
+lat pos=42
[core 5]
task=0
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_l3fwd-2.cfg b/samples/vnf_samples/nsut/prox/configs/gen_l3fwd-2.cfg
index efdc3ef17..7cd8c52ec 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_l3fwd-2.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_l3fwd-2.cfg
@@ -31,6 +31,8 @@ mempool size=4K
[variables]
$sut_mac0=@@dst_mac0
$sut_mac1=@@dst_mac1
+$tester_mac0=@@src_mac0
+$tester_mac1=@@src_mac1
[global]
start time=5
@@ -45,9 +47,13 @@ task=0
mode=gen
tx port=p0
bps=1250000000
-pkt inline=00 00 01 00 00 01 00 00 02 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 08 55 7b
-random=0000101XXXXXXXXXXXXX0000XXXXXXXX
+pkt inline=${sut_mac0} ${tester_mac0} 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+random=0000101XXXXXXXXXXXXX0000XXXXXXX1
rand_offset=30
+lat pos=42
+signature pos=46
+signature=0xcafedeca
+
[core 2]
name=p1
@@ -55,19 +61,27 @@ task=0
mode=gen
tx port=p1
bps=1250000000
-pkt inline=00 00 01 00 00 01 00 00 02 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 08 55 7b
-random=0000101XXXXXXXXXXXXX0000XXXXXXXX
+pkt inline=${sut_mac1} ${tester_mac1} 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+random=0000101XXXXXXXXXXXXX0000XXXXXXX1
rand_offset=30
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 3]
+name=REC_P0
task=0
mode=lat
rx port=p0
lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 4]
+name=REC_P1
task=0
mode=lat
rx port=p1
lat pos=42
-
+signature pos=46
+signature=0xcafedeca
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_l3fwd-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_l3fwd-4.cfg
index bf226f822..0a3795eb5 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_l3fwd-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_l3fwd-4.cfg
@@ -39,7 +39,10 @@ $sut_mac0=@@dst_mac0
$sut_mac1=@@dst_mac1
$sut_mac2=@@dst_mac2
$sut_mac3=@@dst_mac3
-
+$tester_mac0=@@src_mac0
+$tester_mac1=@@src_mac1
+$tester_mac2=@@src_mac2
+$tester_mac3=@@src_mac3
[global]
start time=5
name=Routing Gen
@@ -53,9 +56,12 @@ task=0
mode=gen
tx port=p0
bps=1250000000
-pkt inline=00 00 01 00 00 01 00 00 02 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 08 55 7b
-random=0000101XXXXXXXXXXXXX0000XXXXXXXX
+pkt inline=${sut_mac0} ${tester_mac0} 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+random=0000101XXXXXXXXXXXXX0000XXXXXXX1
rand_offset=30
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 2]
name=p1
@@ -63,9 +69,12 @@ task=0
mode=gen
tx port=p1
bps=1250000000
-pkt inline=00 00 01 00 00 01 00 00 02 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 08 55 7b
-random=0000101XXXXXXXXXXXXX0000XXXXXXXX
+pkt inline=${sut_mac1} ${tester_mac1} 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+random=0000101XXXXXXXXXXXXX0000XXXXXXX1
rand_offset=30
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 3]
name=p2
@@ -73,9 +82,12 @@ task=0
mode=gen
tx port=p2
bps=1250000000
-pkt inline=00 00 01 00 00 01 00 00 02 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 08 55 7b
-random=0000101XXXXXXXXXXXXX0000XXXXXXXX
+pkt inline=${sut_mac2} ${tester_mac2} 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+random=0000101XXXXXXXXXXXXX0000XXXXXXX1
rand_offset=30
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 4]
name=p3
@@ -83,32 +95,45 @@ task=0
mode=gen
tx port=p3
bps=1250000000
-pkt inline=00 00 01 00 00 01 00 00 02 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 08 55 7b
-random=0000101XXXXXXXXXXXXX0000XXXXXXXX
+pkt inline=${sut_mac3} ${tester_mac3} 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 0a 00 00 00 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+random=0000101XXXXXXXXXXXXX0000XXXXXXX1
rand_offset=30
-
+lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 5]
+name=REC_P0
task=0
mode=lat
rx port=p0
lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 6]
+name=REC_P1
task=0
mode=lat
rx port=p1
lat pos=42
-
+signature pos=46
+signature=0xcafedeca
[core 7]
+name=REC_P2
task=0
mode=lat
rx port=p2
lat pos=42
+signature pos=46
+signature=0xcafedeca
[core 8]
+name=REC_P3
task=0
mode=lat
rx port=p3
-lat pos=42 \ No newline at end of file
+lat pos=42
+signature pos=46
+signature=0xcafedeca
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_lb-2.cfg b/samples/vnf_samples/nsut/prox/configs/gen_lb-2.cfg
new file mode 100644
index 000000000..cd53631eb
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/gen_lb-2.cfg
@@ -0,0 +1,114 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#;
+
+[eal options]
+-n=4 ; force number of memory channels
+no-output=no ; disable DPDK debug output
+
+[variables]
+$sut_mac0=@@dst_mac0
+$sut_mac1=@@dst_mac1
+
+[port 0]
+name=p0
+mac=hardware
+rx desc=4096
+tx desc=4096
+promiscuous=yes
+
+[port 1]
+name=p1
+mac=hardware
+rx desc=4096
+tx desc=1024
+promiscuous=yes
+
+
+[defaults]
+mempool size=16K
+
+[global]
+start time=5
+name=Gen Load Balancing
+
+[core 0]
+mode=master
+
+[core 1-4]
+name=p0
+task=0
+mode=gen
+tx port=p0
+bps=1250000000
+; Ethernet + IP + pseudo-UDP
+pkt inline=${sut_mac0} 3c fd fe 9f a3 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 10.x.x.x
+random=101000000000XXXX0000XXXX000XXXXX
+rand_offset=26
+; dst_ip: 10.x.x.x
+random=101000000000XXXX0000XXXX000XXXXX
+rand_offset=30
+; sport: [0..31]
+; dport: [0..31]
+random=00000000000XXXXX00000000000XXXXX
+rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
+
+[core 5-8]
+name=p1
+task=0
+mode=gen
+tx port=p1
+bps=1250000000
+; Ethernet + IP + pseudo-UDP
+pkt inline=${sut_mac1} 3c fd fe 9f a3 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 10.x.x.x
+random=101000000000XXXX0000XXXX000XXXXX
+rand_offset=26
+; dst_ip: 10.x.x.x
+random=101000000000XXXX0000XXXX000XXXXX
+rand_offset=30
+; sport: [0..31]
+; dport: [0..31]
+random=00000000000XXXXX00000000000XXXXX
+rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
+
+[core 28]
+name=rec_0
+task=0
+mode=lat
+rx port=p0
+lat pos=42
+signature pos=46
+signature=0xcafedeca
+
+[core 29]
+name=rec_1
+task=0
+mode=lat
+rx port=p1
+lat pos=42
+signature pos=46
+signature=0xcafedeca
+
+
+
+
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_lb-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_lb-4.cfg
index 4ac4f94d7..00449041b 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_lb-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_lb-4.cfg
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -20,6 +20,9 @@ no-output=no ; disable DPDK debug output
[variables]
$sut_mac0=@@dst_mac0
+$sut_mac1=@@dst_mac1
+$sut_mac2=@@dst_mac2
+$sut_mac3=@@dst_mac3
[port 0]
name=p0
@@ -59,14 +62,14 @@ name=Gen Load Balancing
[core 0]
mode=master
-[core 1]
+[core 1-4]
name=p0
task=0
mode=gen
tx port=p0
bps=1250000000
; Ethernet + IP + pseudo-UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d 00 00 00 01 00 00 00 02 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac0} 3c fd fe 9f a3 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
; src_ip: 10.x.x.x
random=101000000000XXXX0000XXXX000XXXXX
rand_offset=26
@@ -77,29 +80,111 @@ rand_offset=30
; dport: [0..31]
random=00000000000XXXXX00000000000XXXXX
rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
-[core 2]
-name=p0
+[core 5-8]
+name=p1
task=0
-mode=nop
+mode=gen
+tx port=p1
+bps=1250000000
+; Ethernet + IP + pseudo-UDP
+pkt inline=${sut_mac1} 3c fd fe 9f a3 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 10.x.x.x
+random=101000000000XXXX0000XXXX000XXXXX
+rand_offset=26
+; dst_ip: 10.x.x.x
+random=101000000000XXXX0000XXXX000XXXXX
+rand_offset=30
+; sport: [0..31]
+; dport: [0..31]
+random=00000000000XXXXX00000000000XXXXX
+rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
+
+[core 9-12]
+name=p2
+task=0
+mode=gen
+tx port=p2
+bps=1250000000
+; Ethernet + IP + pseudo-UDP
+pkt inline=${sut_mac1} 3c fd fe 9f a3 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 10.x.x.x
+random=101000000000XXXX0000XXXX000XXXXX
+rand_offset=26
+; dst_ip: 10.x.x.x
+random=101000000000XXXX0000XXXX000XXXXX
+rand_offset=30
+; sport: [0..31]
+; dport: [0..31]
+random=00000000000XXXXX00000000000XXXXX
+rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
+
+[core 13-16]
+name=p3
+task=0
+mode=gen
+tx port=p3
+bps=1250000000
+; Ethernet + IP + pseudo-UDP
+pkt inline=${sut_mac1} 3c fd fe 9f a3 08 08 00 45 00 00 24 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 13 88 13 88 00 10 55 7b 00 01 02 03 04 05 06 07
+; src_ip: 10.x.x.x
+random=101000000000XXXX0000XXXX000XXXXX
+rand_offset=26
+; dst_ip: 10.x.x.x
+random=101000000000XXXX0000XXXX000XXXXX
+rand_offset=30
+; sport: [0..31]
+; dport: [0..31]
+random=00000000000XXXXX00000000000XXXXX
+rand_offset=34
+lat pos=42
+signature pos=46
+signature=0xcafedeca
+
+[core 28]
+name=rec_0
+task=0
+mode=lat
rx port=p0
+lat pos=42
+signature pos=46
+signature=0xcafedeca
-[core 3]
-name=p1
+[core 29]
+name=rec_1
task=0
-mode=nop
+mode=lat
rx port=p1
+lat pos=42
+signature pos=46
+signature=0xcafedeca
-[core 4]
-name=p2
+[core 30]
+name=rec_2
task=0
-mode=nop
+mode=lat
rx port=p2
+lat pos=42
+signature pos=46
+signature=0xcafedeca
-[core 5]
-name=p3
+[core 31]
+name=rec_3
task=0
-mode=nop
+mode=lat
rx port=p3
+lat pos=42
+signature pos=46
+signature=0xcafedeca
+
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_lw_aftr-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_lw_aftr-4.cfg
index dba589590..085c41b9c 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_lw_aftr-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_lw_aftr-4.cfg
@@ -60,7 +60,7 @@ mode=gen
tx port=lwB4_0
bps=1250000000
; Ethernet + IPv6 + IPv4 + UDP
-pkt inline=${sut_mac1} 90 e2 ba c6 84 d1 86 dd 60 00 00 00 00 1c 04 04 fe 80 00 00 00 00 00 00 02 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 1c 34 85 00 00 20 11 00 00 ab cd 01 01 ab cd 02 01 00 00 66 66 00 08 00 00
+pkt inline=${sut_mac1} 90 e2 ba c6 84 d1 86 dd 60 00 00 00 00 20 04 04 fe 80 00 00 00 00 00 00 02 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 20 34 85 00 00 20 11 00 00 ab cd 01 01 ab cd 02 01 00 00 66 66 00 0c 00 00 82 83 84 85
; src_ipv6: fe80::200:ff:0:[0000..ffff]
random=XXXXXXXXXXXXXXXX
rand_offset=36
@@ -70,6 +70,7 @@ rand_offset=68
; src_port: 64*[0..63]
random=0000XXXXXX000000
rand_offset=74
+lat pos=82
[core 2]
name=tun_0b
@@ -78,16 +79,17 @@ mode=gen
tx port=lwB4_0
bps=1250000000
; Ethernet + IPv6 + IPv4 + UDP
-pkt inline=${sut_mac1} 90 e2 ba c6 84 d1 86 dd 60 00 00 00 00 1c 04 04 fe 80 00 00 00 00 00 00 02 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 1c 34 85 00 00 20 11 00 00 ab cd 01 02 ab cd 02 02 00 00 66 66 00 08 00 00
+pkt inline=${sut_mac1} 90 e2 ba c6 84 d1 86 dd 60 00 00 00 00 20 04 04 fe 80 00 00 00 00 00 00 02 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 20 34 85 00 00 20 11 00 00 ab cd 01 02 ab cd 02 02 00 00 66 66 00 0c 00 00 82 83 84 85
; src_ipv6: fe80::200:ff:0:[0000..ffff]
random=XXXXXXXXXXXXXXXX
rand_offset=36
; src_ipv4: 171.205.[0..3].[0..255]
random=000000XXXXXXXXXX
rand_offset=68
-; src_port: 64*[0..63]
+; src_port: 64*[0..63]
random=0000XXXXXX000000
rand_offset=74
+lat pos=82
[core 3]
name=inet_0a
@@ -96,13 +98,14 @@ mode=gen
tx port=inet_0
bps=1250000000
; Ethernet + IPv4 + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d ab cd 02 01 ab cd 01 03 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d ab cd 02 01 ab cd 01 03 13 88 13 88 00 0c 55 7b 42 43 44 45
; dst_ipv4: 171.205.[0..3].[0..255]
random=000000XXXXXXXXXX
rand_offset=32
; dst_port: 64*[0..63]
random=0000XXXXXX000000
rand_offset=36
+lat pos=42
[core 4]
name=inet_0b
@@ -111,13 +114,14 @@ mode=gen
tx port=inet_0
bps=1250000000
; Ethernet + IPv4 + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d ab cd 02 01 ab cd 01 03 13 88 13 88 00 08 55 7b
+pkt inline=${sut_mac0} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d ab cd 02 01 ab cd 01 03 13 88 13 88 00 0c 55 7b 42 43 44 45
; dst_ipv4: 171.205.[0..3].[0..255]
random=000000XXXXXXXXXX
rand_offset=32
; dst_port: 64*[0..63]
random=0000XXXXXX000000
rand_offset=36
+lat pos=42
[core 5]
name=tun_1a
@@ -125,7 +129,8 @@ task=0
mode=gen
tx port=lwB4_1
bps=1250000000
-pkt inline=${sut_mac3} 90 e2 ba c6 84 d1 86 dd 60 00 00 00 00 1c 04 04 fe 80 00 00 00 00 00 00 02 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 1c 34 85 00 00 20 11 00 00 ab cd 00 00 ab cd 03 02 00 00 66 66 00 08 00 00
+; Ethernet + IPv6 + IPv4 + UDP
+pkt inline=${sut_mac3} 90 e2 ba c6 84 d1 86 dd 60 00 00 00 00 20 04 04 fe 80 00 00 00 00 00 00 02 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 20 34 85 00 00 20 11 00 00 ab cd 00 00 ab cd 03 02 00 00 66 66 00 0c 00 00 82 83 84 85
; src_ipv6: fe80::200:ff:0:[0000..ffff]
random=XXXXXXXXXXXXXXXX
rand_offset=36
@@ -135,6 +140,7 @@ rand_offset=68
; src_port: 64*[0..63]
random=0000XXXXXX000000
rand_offset=74
+lat pos=82
[core 10]
name=tun_1b
@@ -142,7 +148,8 @@ task=0
mode=gen
tx port=lwB4_1
bps=1250000000
-pkt inline=${sut_mac3} 90 e2 ba c6 84 d1 86 dd 60 00 00 00 00 1c 04 04 fe 80 00 00 00 00 00 00 02 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 1c 34 85 00 00 20 11 00 00 ab cd 00 00 ab cd 03 01 00 00 66 66 00 08 00 00
+; Ethernet + IPv6 + IPv4 + UDP
+pkt inline=${sut_mac3} 90 e2 ba c6 84 d1 86 dd 60 00 00 00 00 20 04 04 fe 80 00 00 00 00 00 00 02 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 20 34 85 00 00 20 11 00 00 ab cd 00 00 ab cd 03 01 00 00 66 66 00 0c 00 00 82 83 84 85
; src_ipv6: fe80::200:ff:0:[0000..ffff]
random=XXXXXXXXXXXXXXXX
rand_offset=36
@@ -152,6 +159,7 @@ rand_offset=68
; src_port: 64*[0..63]
random=0000XXXXXX000000
rand_offset=74
+lat pos=82
[core 11]
name=inet_2a
@@ -159,13 +167,15 @@ task=0
mode=gen
tx port=inet_1
bps=1250000000
-pkt inline=${sut_mac2} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d ab cd 02 01 ab cd 01 03 13 88 13 88 00 08 55 7b
+; Ethernet + IPv4 + UDP
+pkt inline=${sut_mac2} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d ab cd 02 01 ab cd 01 03 13 88 13 88 00 0c 55 7b 42 43 44 45
; dst_ipv4: 171.205.[0..3].[0..255]
random=000000XXXXXXXXXX
rand_offset=32
; dst_port: 64*[0..63]
random=0000XXXXXX000000
rand_offset=36
+lat pos=42
[core 16]
name=inet_2b
@@ -173,34 +183,40 @@ task=0
mode=gen
tx port=inet_1
bps=1250000000
-pkt inline=${sut_mac2} 70 00 00 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d ab cd 02 01 ab cd 01 03 13 88 13 88 00 08 55 7b
+; Ethernet + IPv4 + UDP
+pkt inline=${sut_mac2} 70 00 00 00 00 01 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d ab cd 02 01 ab cd 01 03 13 88 13 88 00 0c 55 7b 42 43 44 45
; dst_ipv4: 171.205.[0..3].[0..255]
random=000000XXXXXXXXXX
rand_offset=32
; dst_port: 64*[0..63]
random=0000XXXXXX000000
rand_offset=36
+lat pos=42
[core 17]
name=lat_in0
task=0
mode=lat
rx port=inet_0
+lat pos=42
[core 18]
name=lat_tun0
task=0
mode=lat
rx port=lwB4_0
+lat pos=82
[core 19]
name=lat_in1
task=0
mode=lat
rx port=inet_1
+lat pos=42
[core 20]
name=lat_tun1
task=0
mode=lat
rx port=lwB4_1
+lat pos=82
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_mpls_tag_untag-2.cfg b/samples/vnf_samples/nsut/prox/configs/gen_mpls_tag_untag-2.cfg
index d9c742983..9fcbbacc9 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_mpls_tag_untag-2.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_mpls_tag_untag-2.cfg
@@ -21,6 +21,7 @@ no-output=no ; disable DPDK debug output
[port 0]
name=taggd1
mac=hardware
+
[port 1]
name=plain1
mac=hardware
@@ -47,7 +48,8 @@ mode=gen
tx port=taggd1
bps=1250000000
; Ethernet + MPLS + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 88 47 00 00 31 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac0} 70 00 00 00 00 01 88 47 00 00 31 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 46 47 48 49
+lat pos=46
[core 2]
name=udp1
@@ -56,7 +58,8 @@ mode=gen
tx port=plain1
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 42 43 44 45
+lat pos=42
[core 3]
task=0
diff --git a/samples/vnf_samples/nsut/prox/configs/gen_mpls_tag_untag-4.cfg b/samples/vnf_samples/nsut/prox/configs/gen_mpls_tag_untag-4.cfg
index 20b373882..1e89d9dd7 100644
--- a/samples/vnf_samples/nsut/prox/configs/gen_mpls_tag_untag-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/gen_mpls_tag_untag-4.cfg
@@ -21,12 +21,15 @@ no-output=no ; disable DPDK debug output
[port 0]
name=taggd1
mac=hardware
+
[port 1]
name=plain1
mac=hardware
+
[port 2]
name=plain2
mac=hardware
+
[port 3]
name=taggd2
mac=hardware
@@ -55,7 +58,8 @@ mode=gen
tx port=taggd1
bps=1250000000
; Ethernet + MPLS + IP + UDP
-pkt inline=${sut_mac0} 70 00 00 00 00 01 88 47 00 00 31 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac0} 70 00 00 00 00 01 88 47 00 00 31 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 46 47 48 49
+lat pos=46
[core 2]
name=udp1
@@ -64,7 +68,8 @@ mode=gen
tx port=plain1
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac1} 70 00 00 00 00 02 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 42 43 44 45
+lat pos=42
[core 3]
name=udp2
@@ -73,7 +78,8 @@ mode=gen
tx port=plain2
bps=1250000000
; Ethernet + IP + UDP
-pkt inline=${sut_mac2} 70 00 00 00 00 03 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac2} 70 00 00 00 00 03 08 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 42 43 44 45
+lat pos=42
[core 4]
name=tag2
@@ -82,7 +88,8 @@ mode=gen
tx port=taggd2
bps=1250000000
; Ethernet + MPLS + IP + UDP
-pkt inline=${sut_mac3} 70 00 00 00 00 04 88 47 00 00 31 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21 FFFFFFFF
+pkt inline=${sut_mac3} 70 00 00 00 00 04 88 47 00 00 31 00 45 00 00 20 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 0c 7c 21 46 47 48 49
+lat pos=46
[core 5]
task=0
diff --git a/samples/vnf_samples/nsut/prox/configs/handle_bng-4.cfg b/samples/vnf_samples/nsut/prox/configs/handle_bng-4.cfg
index e602fac11..c191d29d5 100644
--- a/samples/vnf_samples/nsut/prox/configs/handle_bng-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/handle_bng-4.cfg
@@ -14,7 +14,7 @@
#
[lua]
-lpm4 = dofile("ipv4.lua")
+lpm4 = dofile("ipv4_bng.lua")
user_table = dofile("gre_table.lua")
[eal options]
@@ -27,7 +27,7 @@ $core_lb_cpe0 =1
$core_inet0 =2
$core_lb_cpe1 =3
$core_inet1 =4
-$core_workers =13-14,15-16
+$core_workers =13-14,15-16,17-18,19-20
$core_tx_cpe0 =6
$core_tx_cpe1 =8
$core_tx_inet0 =9
diff --git a/samples/vnf_samples/nsut/prox/configs/handle_bng_qos-4.cfg b/samples/vnf_samples/nsut/prox/configs/handle_bng_qos-4.cfg
index e1da4cdc0..b873fb9af 100644
--- a/samples/vnf_samples/nsut/prox/configs/handle_bng_qos-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/handle_bng_qos-4.cfg
@@ -14,7 +14,7 @@
#
[lua]
-lpm4 = dofile("ipv4.lua")
+lpm4 = dofile("ipv4_bng.lua")
user_table = dofile("gre_table.lua")
dscp_table = dofile("dscp.lua")
@@ -28,7 +28,7 @@ $core_lb_cpe0 =1
$core_inet0 =2
$core_lb_cpe1 =3
$core_inet1 =4
-$core_workers =13-14,15-16 ;sut_bng_qos_wk
+$core_workers =13-14,15-16,17-18,19-20
$core_qos_cpe0 =5
$core_tx_cpe0 =6
$core_qos_cpe1 =7
diff --git a/samples/vnf_samples/nsut/prox/configs/handle_buffering-2.cfg b/samples/vnf_samples/nsut/prox/configs/handle_buffering-2.cfg
new file mode 100644
index 000000000..17300e651
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/handle_buffering-2.cfg
@@ -0,0 +1,74 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#;
+
+[eal options]
+-n=4 ; number of memory channels
+no-output=no ; disable DPDK debug output
+
+[port 0]
+name=if0
+mac=hardware
+rx desc=2048
+tx desc=2048
+
+[port 1]
+name=if1
+mac=hardware
+rx desc=2048
+tx desc=2048
+
+[defaults]
+mempool size=1408K
+memcache size=512
+
+[global]
+start time=5
+name=Handle Buffering (1x)
+
+[core 0]
+mode=master
+
+[core 1]
+name=none
+task=0
+mode=impair
+delay ms=125
+rx port=if0
+tx cores=1t1
+drop=no
+
+task=1
+mode=l2fwd
+dst mac=@@tester_p0
+rx ring=yes
+tx port=if0
+drop=no
+
+[core 2]
+name=none
+task=0
+mode=impair
+delay ms=125
+rx port=if1
+tx cores=2t1
+drop=no
+
+task=1
+mode=l2fwd
+dst mac=@@tester_p1
+rx ring=yes
+tx port=if1
+drop=no \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/prox/configs/handle_buffering-4.cfg b/samples/vnf_samples/nsut/prox/configs/handle_buffering-4.cfg
new file mode 100644
index 000000000..c4fa46f89
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/handle_buffering-4.cfg
@@ -0,0 +1,118 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#;
+
+[eal options]
+-n=4 ; number of memory channels
+no-output=no ; disable DPDK debug output
+
+[port 0]
+name=if0
+mac=hardware
+rx desc=2048
+tx desc=2048
+
+[port 1]
+name=if1
+mac=hardware
+rx desc=2048
+tx desc=2048
+
+[port 2]
+name=if2
+mac=hardware
+rx desc=2048
+tx desc=2048
+
+[port 3]
+name=if3
+mac=hardware
+rx desc=2048
+tx desc=2048
+
+[defaults]
+mempool size=640K
+memcache size=512
+
+[global]
+start time=5
+name=Handle Buffering (1x)
+
+[core 0]
+mode=master
+
+[core 1]
+name=none
+task=0
+mode=impair
+delay ms=125
+rx port=if0
+tx cores=1t1
+drop=no
+
+task=1
+mode=l2fwd
+dst mac=@@tester_p0
+rx ring=yes
+tx port=if0
+drop=no
+
+[core 2]
+name=none
+task=0
+mode=impair
+delay ms=125
+rx port=if1
+tx cores=2t1
+drop=no
+
+task=1
+mode=l2fwd
+dst mac=@@tester_p1
+rx ring=yes
+tx port=if1
+drop=no
+
+[core 3]
+name=none
+task=0
+mode=impair
+delay ms=125
+rx port=if2
+tx cores=3t1
+drop=no
+
+task=1
+mode=l2fwd
+dst mac=@@tester_p2
+rx ring=yes
+tx port=if2
+drop=no
+
+[core 4]
+name=none
+task=0
+mode=impair
+delay ms=125
+rx port=if3
+tx cores=4t1
+drop=no
+
+task=1
+mode=l2fwd
+dst mac=@@tester_p3
+rx ring=yes
+tx port=if3
+drop=no \ No newline at end of file
diff --git a/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-2.cfg b/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-2.cfg
index 17384940d..35f3646e7 100644
--- a/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-2.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-2.cfg
@@ -14,8 +14,6 @@
#
#;
-[lua]
-lpm4 = dofile("ipv4.lua")
[eal options]
-n=4 ; force number of memory channels
@@ -24,12 +22,19 @@ no-output=no ; disable DPDK debug output
[port 0]
name=if0
mac=hardware
+rx desc=2048
+tx desc=2048
[port 1]
name=if1
mac=hardware
+rx desc=2048
+tx desc=2048
[defaults]
-mempool size=4K
+mempool size=8K
+
+[lua]
+lpm4 = dofile("ipv4-2port.lua")
[global]
start time=5
@@ -54,4 +59,4 @@ mode=routing
route table=lpm4
rx port=if1
tx port=if0,if1
-drop=no \ No newline at end of file
+drop=no
diff --git a/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-4.cfg b/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-4.cfg
index d5822225f..bd696c4b0 100644
--- a/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/handle_l3fwd-4.cfg
@@ -14,8 +14,6 @@
#
#;
-[lua]
-lpm4 = dofile("ipv4.lua")
[eal options]
-n=4 ; force number of memory channels
@@ -24,18 +22,29 @@ no-output=no ; disable DPDK debug output
[port 0]
name=if0
mac=hardware
+rx desc=2048
+tx desc=2048
[port 1]
name=if1
mac=hardware
+rx desc=2048
+tx desc=2048
[port 2]
name=if2
mac=hardware
+rx desc=2048
+tx desc=2048
[port 3]
name=if3
mac=hardware
+rx desc=2048
+tx desc=2048
[defaults]
-mempool size=4K
+mempool size=8K
+
+[lua]
+lpm4 = dofile("ipv4.lua")
[global]
start time=5
diff --git a/samples/vnf_samples/nsut/prox/configs/handle_lb-2.cfg b/samples/vnf_samples/nsut/prox/configs/handle_lb-2.cfg
new file mode 100644
index 000000000..24c064b21
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/handle_lb-2.cfg
@@ -0,0 +1,81 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#;
+
+[eal options]
+-n=4
+no-output=no ; disable DPDK debug output
+
+[lua]
+dofile("tuples.lua")
+
+[port 0]
+name=if0
+mac=hardware
+rx desc=4096
+tx desc=2048
+promiscuous=yes
+
+[port 1]
+name=if1
+mac=hardware
+rx desc=2048
+tx desc=2048
+promiscuous=yes
+
+[defaults]
+memcache size=512
+mempool size=16K
+
+[global]
+start time=5
+name=Handle 5 Tuple Load Balance
+
+[core 0]
+mode=master
+
+[core 1]
+name=Handle_LB
+task=0
+mode=lb5tuple
+rx port=if0
+tx cores=3,4,3,4
+drop=no
+
+[core 2]
+name=Handle_LB
+task=0
+mode=lb5tuple
+rx port=if1
+tx cores=3,4,3,4
+drop=no
+
+[core 3]
+name=TX_p0
+task=0
+mode=l2fwd
+dst mac=@@p0
+rx ring=yes
+tx port=if0
+drop=no
+
+[core 4]
+name=TX_p1
+task=0
+mode=l2fwd
+dst mac=@@p1
+rx ring=yes
+tx port=if1
+drop=no
diff --git a/samples/vnf_samples/nsut/prox/configs/handle_lb-4.cfg b/samples/vnf_samples/nsut/prox/configs/handle_lb-4.cfg
index b85e00b5c..0df50f748 100644
--- a/samples/vnf_samples/nsut/prox/configs/handle_lb-4.cfg
+++ b/samples/vnf_samples/nsut/prox/configs/handle_lb-4.cfg
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -50,13 +50,12 @@ tx desc=2048
promiscuous=yes
[defaults]
-mempool size=13K
memcache size=512
mempool size=16K
[global]
start time=5
-name=Handle 5 Tuple Load Balance 1-to-4
+name=Handle 5 Tuple Load Balance
[core 0]
mode=master
@@ -66,10 +65,34 @@ name=Handle_LB
task=0
mode=lb5tuple
rx port=if0
-tx cores=2,3,4,5
+tx cores=5,6,7,8
drop=no
[core 2]
+name=Handle_LB
+task=0
+mode=lb5tuple
+rx port=if1
+tx cores=5,6,7,8
+drop=no
+
+[core 3]
+name=Handle_LB
+task=0
+mode=lb5tuple
+rx port=if2
+tx cores=5,6,7,8
+drop=no
+
+[core 4]
+name=Handle_LB
+task=0
+mode=lb5tuple
+rx port=if3
+tx cores=5,6,7,8
+drop=no
+
+[core 5]
name=TX_p0
task=0
mode=l2fwd
@@ -78,7 +101,7 @@ rx ring=yes
tx port=if0
drop=no
-[core 3]
+[core 6]
name=TX_p1
task=0
mode=l2fwd
@@ -87,7 +110,7 @@ rx ring=yes
tx port=if1
drop=no
-[core 4]
+[core 7]
name=TX_p2
task=0
mode=l2fwd
@@ -96,7 +119,7 @@ rx ring=yes
tx port=if2
drop=no
-[core 5]
+[core 8]
name=TX_p3
task=0
mode=l2fwd
diff --git a/samples/vnf_samples/nsut/prox/configs/ipv4-2port.lua b/samples/vnf_samples/nsut/prox/configs/ipv4-2port.lua
new file mode 100644
index 000000000..efeb3aa93
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/ipv4-2port.lua
@@ -0,0 +1,100 @@
+--
+-- Copyright (c) 2010-2017 Intel Corporation
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+
+require("parameters")
+
+local lpm4 = {}
+lpm4.next_hops = {
+ {id = 0, port_id = 0, ip = ip("1.1.1.1"), mac = mac(tester_mac0), mpls = 0x112},
+ {id = 1, port_id = 1, ip = ip("2.1.1.1"), mac = mac(tester_mac1), mpls = 0x212},
+ {id = 2, port_id = 0, ip = ip("3.1.1.1"), mac = mac(tester_mac0), mpls = 0x312},
+ {id = 3, port_id = 1, ip = ip("4.1.1.1"), mac = mac(tester_mac1), mpls = 0x412},
+ {id = 4, port_id = 0, ip = ip("5.1.1.1"), mac = mac(tester_mac0), mpls = 0x512},
+ {id = 5, port_id = 1, ip = ip("6.1.1.1"), mac = mac(tester_mac1), mpls = 0x612},
+ {id = 6, port_id = 0, ip = ip("7.1.1.1"), mac = mac(tester_mac0), mpls = 0x712},
+ {id = 7, port_id = 1, ip = ip("8.1.1.1"), mac = mac(tester_mac1), mpls = 0x812},
+ {id = 8, port_id = 0, ip = ip("9.1.1.1"), mac = mac(tester_mac0), mpls = 0x912},
+ {id = 9, port_id = 1, ip = ip("10.1.1.1"), mac = mac(tester_mac1), mpls = 0x1012},
+ {id = 10, port_id = 0, ip = ip("11.1.1.1"), mac = mac(tester_mac0), mpls = 0x1112},
+ {id = 11, port_id = 1, ip = ip("12.1.1.1"), mac = mac(tester_mac1), mpls = 0x1212},
+ {id = 12, port_id = 0, ip = ip("13.1.1.1"), mac = mac(tester_mac0), mpls = 0x1312},
+ {id = 13, port_id = 1, ip = ip("14.1.1.1"), mac = mac(tester_mac1), mpls = 0x1412},
+ {id = 14, port_id = 0, ip = ip("15.1.1.1"), mac = mac(tester_mac0), mpls = 0x1512},
+ {id = 15, port_id = 1, ip = ip("16.1.1.1"), mac = mac(tester_mac1), mpls = 0x1612},
+ {id = 16, port_id = 0, ip = ip("17.1.1.1"), mac = mac(tester_mac0), mpls = 0x1712},
+ {id = 17, port_id = 1, ip = ip("18.1.1.1"), mac = mac(tester_mac1), mpls = 0x1812},
+ {id = 18, port_id = 0, ip = ip("19.1.1.1"), mac = mac(tester_mac0), mpls = 0x1912},
+ {id = 19, port_id = 1, ip = ip("20.1.1.1"), mac = mac(tester_mac1), mpls = 0x2012},
+ {id = 20, port_id = 0, ip = ip("21.1.1.1"), mac = mac(tester_mac0), mpls = 0x2112},
+ {id = 21, port_id = 1, ip = ip("22.1.1.1"), mac = mac(tester_mac1), mpls = 0x2212},
+ {id = 22, port_id = 0, ip = ip("23.1.1.1"), mac = mac(tester_mac0), mpls = 0x2312},
+ {id = 23, port_id = 1, ip = ip("24.1.1.1"), mac = mac(tester_mac1), mpls = 0x2412},
+ {id = 24, port_id = 0, ip = ip("25.1.1.1"), mac = mac(tester_mac0), mpls = 0x2512},
+ {id = 25, port_id = 1, ip = ip("26.1.1.1"), mac = mac(tester_mac1), mpls = 0x2612},
+ {id = 26, port_id = 0, ip = ip("27.1.1.1"), mac = mac(tester_mac0), mpls = 0x2712},
+ {id = 27, port_id = 1, ip = ip("28.1.1.1"), mac = mac(tester_mac1), mpls = 0x2812},
+ {id = 28, port_id = 0, ip = ip("29.1.1.1"), mac = mac(tester_mac0), mpls = 0x2912},
+ {id = 29, port_id = 1, ip = ip("30.1.1.1"), mac = mac(tester_mac1), mpls = 0x3012},
+ {id = 30, port_id = 0, ip = ip("31.1.1.1"), mac = mac(tester_mac0), mpls = 0x3112},
+ {id = 31, port_id = 1, ip = ip("32.1.1.1"), mac = mac(tester_mac1), mpls = 0x3212},
+ {id = 32, port_id = 0, ip = ip("33.1.1.1"), mac = mac(tester_mac0), mpls = 0x3312},
+ {id = 33, port_id = 1, ip = ip("34.1.1.1"), mac = mac(tester_mac1), mpls = 0x3412},
+ {id = 34, port_id = 0, ip = ip("35.1.1.1"), mac = mac(tester_mac0), mpls = 0x3512},
+ {id = 35, port_id = 1, ip = ip("36.1.1.1"), mac = mac(tester_mac1), mpls = 0x3612},
+ {id = 36, port_id = 0, ip = ip("37.1.1.1"), mac = mac(tester_mac0), mpls = 0x3712},
+ {id = 37, port_id = 1, ip = ip("38.1.1.1"), mac = mac(tester_mac1), mpls = 0x3812},
+ {id = 38, port_id = 0, ip = ip("39.1.1.1"), mac = mac(tester_mac0), mpls = 0x3912},
+ {id = 39, port_id = 1, ip = ip("40.1.1.1"), mac = mac(tester_mac1), mpls = 0x4012},
+ {id = 40, port_id = 0, ip = ip("41.1.1.1"), mac = mac(tester_mac0), mpls = 0x4112},
+ {id = 41, port_id = 1, ip = ip("42.1.1.1"), mac = mac(tester_mac1), mpls = 0x4212},
+ {id = 42, port_id = 0, ip = ip("43.1.1.1"), mac = mac(tester_mac0), mpls = 0x4312},
+ {id = 43, port_id = 1, ip = ip("44.1.1.1"), mac = mac(tester_mac1), mpls = 0x4412},
+ {id = 44, port_id = 0, ip = ip("45.1.1.1"), mac = mac(tester_mac0), mpls = 0x4512},
+ {id = 45, port_id = 1, ip = ip("46.1.1.1"), mac = mac(tester_mac1), mpls = 0x4612},
+ {id = 46, port_id = 0, ip = ip("47.1.1.1"), mac = mac(tester_mac0), mpls = 0x4712},
+ {id = 47, port_id = 1, ip = ip("48.1.1.1"), mac = mac(tester_mac1), mpls = 0x4812},
+ {id = 48, port_id = 0, ip = ip("49.1.1.1"), mac = mac(tester_mac0), mpls = 0x4912},
+ {id = 49, port_id = 1, ip = ip("50.1.1.1"), mac = mac(tester_mac1), mpls = 0x5012},
+ {id = 50, port_id = 0, ip = ip("51.1.1.1"), mac = mac(tester_mac0), mpls = 0x5112},
+ {id = 51, port_id = 1, ip = ip("52.1.1.1"), mac = mac(tester_mac1), mpls = 0x5212},
+ {id = 52, port_id = 0, ip = ip("53.1.1.1"), mac = mac(tester_mac0), mpls = 0x5312},
+ {id = 53, port_id = 1, ip = ip("54.1.1.1"), mac = mac(tester_mac1), mpls = 0x5412},
+ {id = 54, port_id = 0, ip = ip("55.1.1.1"), mac = mac(tester_mac0), mpls = 0x5512},
+ {id = 55, port_id = 1, ip = ip("56.1.1.1"), mac = mac(tester_mac1), mpls = 0x5612},
+ {id = 56, port_id = 0, ip = ip("57.1.1.1"), mac = mac(tester_mac0), mpls = 0x5712},
+ {id = 57, port_id = 1, ip = ip("58.1.1.1"), mac = mac(tester_mac1), mpls = 0x5812},
+ {id = 58, port_id = 0, ip = ip("59.1.1.1"), mac = mac(tester_mac0), mpls = 0x5912},
+ {id = 59, port_id = 1, ip = ip("60.1.1.1"), mac = mac(tester_mac1), mpls = 0x6012},
+ {id = 60, port_id = 0, ip = ip("61.1.1.1"), mac = mac(tester_mac0), mpls = 0x6112},
+ {id = 61, port_id = 1, ip = ip("62.1.1.1"), mac = mac(tester_mac1), mpls = 0x6212},
+ {id = 62, port_id = 0, ip = ip("63.1.1.1"), mac = mac(tester_mac0), mpls = 0x6312},
+ {id = 63, port_id = 1, ip = ip("64.1.1.1"), mac = mac(tester_mac1), mpls = 0x6412},
+}
+
+lpm4.routes = {};
+
+base_ip = 10 * 2^24;
+
+for i = 1,2^13 do
+ res = ip(base_ip + (1 * 2^12) * (i - 1));
+
+ lpm4.routes[i] = {
+ cidr = {ip = res, depth = 24},
+ next_hop_id = (i - 1) % 64,
+ }
+end
+
+return lpm4
diff --git a/samples/vnf_samples/nsut/prox/configs/ipv4.lua b/samples/vnf_samples/nsut/prox/configs/ipv4.lua
index 6a8fbe183..df471d737 100644
--- a/samples/vnf_samples/nsut/prox/configs/ipv4.lua
+++ b/samples/vnf_samples/nsut/prox/configs/ipv4.lua
@@ -13,72 +13,74 @@
-- limitations under the License.
--
+require("parameters")
+
local lpm4 = {}
lpm4.next_hops = {
- {id = 0, port_id = 0, ip = ip("1.1.1.1"), mac = mac("00:00:00:00:00:01"), mpls = 0x112},
- {id = 1, port_id = 1, ip = ip("2.1.1.1"), mac = mac("00:00:00:00:00:02"), mpls = 0x212},
- {id = 2, port_id = 0, ip = ip("3.1.1.1"), mac = mac("00:00:00:00:00:03"), mpls = 0x312},
- {id = 3, port_id = 1, ip = ip("4.1.1.1"), mac = mac("00:00:00:00:00:04"), mpls = 0x412},
- {id = 4, port_id = 0, ip = ip("5.1.1.1"), mac = mac("00:00:00:00:00:05"), mpls = 0x512},
- {id = 5, port_id = 1, ip = ip("6.1.1.1"), mac = mac("00:00:00:00:00:06"), mpls = 0x612},
- {id = 6, port_id = 0, ip = ip("7.1.1.1"), mac = mac("00:00:00:00:00:07"), mpls = 0x712},
- {id = 7, port_id = 1, ip = ip("8.1.1.1"), mac = mac("00:00:00:00:00:08"), mpls = 0x812},
- {id = 8, port_id = 0, ip = ip("9.1.1.1"), mac = mac("00:00:00:00:00:09"), mpls = 0x912},
- {id = 9, port_id = 1, ip = ip("10.1.1.1"), mac = mac("00:00:00:00:00:10"), mpls = 0x1012},
- {id = 10, port_id = 0, ip = ip("11.1.1.1"), mac = mac("00:00:00:00:00:11"), mpls = 0x1112},
- {id = 11, port_id = 1, ip = ip("12.1.1.1"), mac = mac("00:00:00:00:00:12"), mpls = 0x1212},
- {id = 12, port_id = 0, ip = ip("13.1.1.1"), mac = mac("00:00:00:00:00:13"), mpls = 0x1312},
- {id = 13, port_id = 1, ip = ip("14.1.1.1"), mac = mac("00:00:00:00:00:14"), mpls = 0x1412},
- {id = 14, port_id = 0, ip = ip("15.1.1.1"), mac = mac("00:00:00:00:00:15"), mpls = 0x1512},
- {id = 15, port_id = 1, ip = ip("16.1.1.1"), mac = mac("00:00:00:00:00:16"), mpls = 0x1612},
- {id = 16, port_id = 0, ip = ip("17.1.1.1"), mac = mac("00:00:00:00:00:17"), mpls = 0x1712},
- {id = 17, port_id = 1, ip = ip("18.1.1.1"), mac = mac("00:00:00:00:00:18"), mpls = 0x1812},
- {id = 18, port_id = 0, ip = ip("19.1.1.1"), mac = mac("00:00:00:00:00:19"), mpls = 0x1912},
- {id = 19, port_id = 1, ip = ip("20.1.1.1"), mac = mac("00:00:00:00:00:20"), mpls = 0x2012},
- {id = 20, port_id = 0, ip = ip("21.1.1.1"), mac = mac("00:00:00:00:00:21"), mpls = 0x2112},
- {id = 21, port_id = 1, ip = ip("22.1.1.1"), mac = mac("00:00:00:00:00:22"), mpls = 0x2212},
- {id = 22, port_id = 0, ip = ip("23.1.1.1"), mac = mac("00:00:00:00:00:23"), mpls = 0x2312},
- {id = 23, port_id = 1, ip = ip("24.1.1.1"), mac = mac("00:00:00:00:00:24"), mpls = 0x2412},
- {id = 24, port_id = 0, ip = ip("25.1.1.1"), mac = mac("00:00:00:00:00:25"), mpls = 0x2512},
- {id = 25, port_id = 1, ip = ip("26.1.1.1"), mac = mac("00:00:00:00:00:26"), mpls = 0x2612},
- {id = 26, port_id = 0, ip = ip("27.1.1.1"), mac = mac("00:00:00:00:00:27"), mpls = 0x2712},
- {id = 27, port_id = 1, ip = ip("28.1.1.1"), mac = mac("00:00:00:00:00:28"), mpls = 0x2812},
- {id = 28, port_id = 0, ip = ip("29.1.1.1"), mac = mac("00:00:00:00:00:29"), mpls = 0x2912},
- {id = 29, port_id = 1, ip = ip("30.1.1.1"), mac = mac("00:00:00:00:00:30"), mpls = 0x3012},
- {id = 30, port_id = 0, ip = ip("31.1.1.1"), mac = mac("00:00:00:00:00:31"), mpls = 0x3112},
- {id = 31, port_id = 1, ip = ip("32.1.1.1"), mac = mac("00:00:00:00:00:32"), mpls = 0x3212},
- {id = 32, port_id = 0, ip = ip("33.1.1.1"), mac = mac("00:00:00:00:00:33"), mpls = 0x3312},
- {id = 33, port_id = 1, ip = ip("34.1.1.1"), mac = mac("00:00:00:00:00:34"), mpls = 0x3412},
- {id = 34, port_id = 0, ip = ip("35.1.1.1"), mac = mac("00:00:00:00:00:35"), mpls = 0x3512},
- {id = 35, port_id = 1, ip = ip("36.1.1.1"), mac = mac("00:00:00:00:00:36"), mpls = 0x3612},
- {id = 36, port_id = 0, ip = ip("37.1.1.1"), mac = mac("00:00:00:00:00:37"), mpls = 0x3712},
- {id = 37, port_id = 1, ip = ip("38.1.1.1"), mac = mac("00:00:00:00:00:38"), mpls = 0x3812},
- {id = 38, port_id = 0, ip = ip("39.1.1.1"), mac = mac("00:00:00:00:00:39"), mpls = 0x3912},
- {id = 39, port_id = 1, ip = ip("40.1.1.1"), mac = mac("00:00:00:00:00:40"), mpls = 0x4012},
- {id = 40, port_id = 0, ip = ip("41.1.1.1"), mac = mac("00:00:00:00:00:41"), mpls = 0x4112},
- {id = 41, port_id = 1, ip = ip("42.1.1.1"), mac = mac("00:00:00:00:00:42"), mpls = 0x4212},
- {id = 42, port_id = 0, ip = ip("43.1.1.1"), mac = mac("00:00:00:00:00:43"), mpls = 0x4312},
- {id = 43, port_id = 1, ip = ip("44.1.1.1"), mac = mac("00:00:00:00:00:44"), mpls = 0x4412},
- {id = 44, port_id = 0, ip = ip("45.1.1.1"), mac = mac("00:00:00:00:00:45"), mpls = 0x4512},
- {id = 45, port_id = 1, ip = ip("46.1.1.1"), mac = mac("00:00:00:00:00:46"), mpls = 0x4612},
- {id = 46, port_id = 0, ip = ip("47.1.1.1"), mac = mac("00:00:00:00:00:47"), mpls = 0x4712},
- {id = 47, port_id = 1, ip = ip("48.1.1.1"), mac = mac("00:00:00:00:00:48"), mpls = 0x4812},
- {id = 48, port_id = 0, ip = ip("49.1.1.1"), mac = mac("00:00:00:00:00:49"), mpls = 0x4912},
- {id = 49, port_id = 1, ip = ip("50.1.1.1"), mac = mac("00:00:00:00:00:50"), mpls = 0x5012},
- {id = 50, port_id = 0, ip = ip("51.1.1.1"), mac = mac("00:00:00:00:00:51"), mpls = 0x5112},
- {id = 51, port_id = 1, ip = ip("52.1.1.1"), mac = mac("00:00:00:00:00:52"), mpls = 0x5212},
- {id = 52, port_id = 0, ip = ip("53.1.1.1"), mac = mac("00:00:00:00:00:53"), mpls = 0x5312},
- {id = 53, port_id = 1, ip = ip("54.1.1.1"), mac = mac("00:00:00:00:00:54"), mpls = 0x5412},
- {id = 54, port_id = 0, ip = ip("55.1.1.1"), mac = mac("00:00:00:00:00:55"), mpls = 0x5512},
- {id = 55, port_id = 1, ip = ip("56.1.1.1"), mac = mac("00:00:00:00:00:56"), mpls = 0x5612},
- {id = 56, port_id = 0, ip = ip("57.1.1.1"), mac = mac("00:00:00:00:00:57"), mpls = 0x5712},
- {id = 57, port_id = 1, ip = ip("58.1.1.1"), mac = mac("00:00:00:00:00:58"), mpls = 0x5812},
- {id = 58, port_id = 0, ip = ip("59.1.1.1"), mac = mac("00:00:00:00:00:59"), mpls = 0x5912},
- {id = 59, port_id = 1, ip = ip("60.1.1.1"), mac = mac("00:00:00:00:00:60"), mpls = 0x6012},
- {id = 60, port_id = 0, ip = ip("61.1.1.1"), mac = mac("00:00:00:00:00:61"), mpls = 0x6112},
- {id = 61, port_id = 1, ip = ip("62.1.1.1"), mac = mac("00:00:00:00:00:62"), mpls = 0x6212},
- {id = 62, port_id = 0, ip = ip("63.1.1.1"), mac = mac("00:00:00:00:00:63"), mpls = 0x6312},
- {id = 63, port_id = 1, ip = ip("64.1.1.1"), mac = mac("00:00:00:00:00:64"), mpls = 0x6412},
+ {id = 0, port_id = 0, ip = ip("1.1.1.1"), mac = mac(tester_mac0), mpls = 0x112},
+ {id = 1, port_id = 1, ip = ip("2.1.1.1"), mac = mac(tester_mac1), mpls = 0x212},
+ {id = 2, port_id = 0, ip = ip("3.1.1.1"), mac = mac(tester_mac2), mpls = 0x312},
+ {id = 3, port_id = 1, ip = ip("4.1.1.1"), mac = mac(tester_mac3), mpls = 0x412},
+ {id = 4, port_id = 0, ip = ip("5.1.1.1"), mac = mac(tester_mac0), mpls = 0x512},
+ {id = 5, port_id = 1, ip = ip("6.1.1.1"), mac = mac(tester_mac1), mpls = 0x612},
+ {id = 6, port_id = 0, ip = ip("7.1.1.1"), mac = mac(tester_mac2), mpls = 0x712},
+ {id = 7, port_id = 1, ip = ip("8.1.1.1"), mac = mac(tester_mac3), mpls = 0x812},
+ {id = 8, port_id = 0, ip = ip("9.1.1.1"), mac = mac(tester_mac0), mpls = 0x912},
+ {id = 9, port_id = 1, ip = ip("10.1.1.1"), mac = mac(tester_mac1), mpls = 0x1012},
+ {id = 10, port_id = 0, ip = ip("11.1.1.1"), mac = mac(tester_mac2), mpls = 0x1112},
+ {id = 11, port_id = 1, ip = ip("12.1.1.1"), mac = mac(tester_mac3), mpls = 0x1212},
+ {id = 12, port_id = 0, ip = ip("13.1.1.1"), mac = mac(tester_mac0), mpls = 0x1312},
+ {id = 13, port_id = 1, ip = ip("14.1.1.1"), mac = mac(tester_mac1), mpls = 0x1412},
+ {id = 14, port_id = 0, ip = ip("15.1.1.1"), mac = mac(tester_mac2), mpls = 0x1512},
+ {id = 15, port_id = 1, ip = ip("16.1.1.1"), mac = mac(tester_mac3), mpls = 0x1612},
+ {id = 16, port_id = 0, ip = ip("17.1.1.1"), mac = mac(tester_mac0), mpls = 0x1712},
+ {id = 17, port_id = 1, ip = ip("18.1.1.1"), mac = mac(tester_mac1), mpls = 0x1812},
+ {id = 18, port_id = 0, ip = ip("19.1.1.1"), mac = mac(tester_mac2), mpls = 0x1912},
+ {id = 19, port_id = 1, ip = ip("20.1.1.1"), mac = mac(tester_mac3), mpls = 0x2012},
+ {id = 20, port_id = 0, ip = ip("21.1.1.1"), mac = mac(tester_mac0), mpls = 0x2112},
+ {id = 21, port_id = 1, ip = ip("22.1.1.1"), mac = mac(tester_mac1), mpls = 0x2212},
+ {id = 22, port_id = 0, ip = ip("23.1.1.1"), mac = mac(tester_mac2), mpls = 0x2312},
+ {id = 23, port_id = 1, ip = ip("24.1.1.1"), mac = mac(tester_mac3), mpls = 0x2412},
+ {id = 24, port_id = 0, ip = ip("25.1.1.1"), mac = mac(tester_mac0), mpls = 0x2512},
+ {id = 25, port_id = 1, ip = ip("26.1.1.1"), mac = mac(tester_mac1), mpls = 0x2612},
+ {id = 26, port_id = 0, ip = ip("27.1.1.1"), mac = mac(tester_mac2), mpls = 0x2712},
+ {id = 27, port_id = 1, ip = ip("28.1.1.1"), mac = mac(tester_mac3), mpls = 0x2812},
+ {id = 28, port_id = 0, ip = ip("29.1.1.1"), mac = mac(tester_mac0), mpls = 0x2912},
+ {id = 29, port_id = 1, ip = ip("30.1.1.1"), mac = mac(tester_mac1), mpls = 0x3012},
+ {id = 30, port_id = 0, ip = ip("31.1.1.1"), mac = mac(tester_mac2), mpls = 0x3112},
+ {id = 31, port_id = 1, ip = ip("32.1.1.1"), mac = mac(tester_mac3), mpls = 0x3212},
+ {id = 32, port_id = 0, ip = ip("33.1.1.1"), mac = mac(tester_mac0), mpls = 0x3312},
+ {id = 33, port_id = 1, ip = ip("34.1.1.1"), mac = mac(tester_mac1), mpls = 0x3412},
+ {id = 34, port_id = 0, ip = ip("35.1.1.1"), mac = mac(tester_mac2), mpls = 0x3512},
+ {id = 35, port_id = 1, ip = ip("36.1.1.1"), mac = mac(tester_mac3), mpls = 0x3612},
+ {id = 36, port_id = 0, ip = ip("37.1.1.1"), mac = mac(tester_mac0), mpls = 0x3712},
+ {id = 37, port_id = 1, ip = ip("38.1.1.1"), mac = mac(tester_mac1), mpls = 0x3812},
+ {id = 38, port_id = 0, ip = ip("39.1.1.1"), mac = mac(tester_mac2), mpls = 0x3912},
+ {id = 39, port_id = 1, ip = ip("40.1.1.1"), mac = mac(tester_mac3), mpls = 0x4012},
+ {id = 40, port_id = 0, ip = ip("41.1.1.1"), mac = mac(tester_mac0), mpls = 0x4112},
+ {id = 41, port_id = 1, ip = ip("42.1.1.1"), mac = mac(tester_mac1), mpls = 0x4212},
+ {id = 42, port_id = 0, ip = ip("43.1.1.1"), mac = mac(tester_mac2), mpls = 0x4312},
+ {id = 43, port_id = 1, ip = ip("44.1.1.1"), mac = mac(tester_mac3), mpls = 0x4412},
+ {id = 44, port_id = 0, ip = ip("45.1.1.1"), mac = mac(tester_mac0), mpls = 0x4512},
+ {id = 45, port_id = 1, ip = ip("46.1.1.1"), mac = mac(tester_mac1), mpls = 0x4612},
+ {id = 46, port_id = 0, ip = ip("47.1.1.1"), mac = mac(tester_mac2), mpls = 0x4712},
+ {id = 47, port_id = 1, ip = ip("48.1.1.1"), mac = mac(tester_mac3), mpls = 0x4812},
+ {id = 48, port_id = 0, ip = ip("49.1.1.1"), mac = mac(tester_mac0), mpls = 0x4912},
+ {id = 49, port_id = 1, ip = ip("50.1.1.1"), mac = mac(tester_mac1), mpls = 0x5012},
+ {id = 50, port_id = 0, ip = ip("51.1.1.1"), mac = mac(tester_mac2), mpls = 0x5112},
+ {id = 51, port_id = 1, ip = ip("52.1.1.1"), mac = mac(tester_mac3), mpls = 0x5212},
+ {id = 52, port_id = 0, ip = ip("53.1.1.1"), mac = mac(tester_mac0), mpls = 0x5312},
+ {id = 53, port_id = 1, ip = ip("54.1.1.1"), mac = mac(tester_mac1), mpls = 0x5412},
+ {id = 54, port_id = 0, ip = ip("55.1.1.1"), mac = mac(tester_mac2), mpls = 0x5512},
+ {id = 55, port_id = 1, ip = ip("56.1.1.1"), mac = mac(tester_mac3), mpls = 0x5612},
+ {id = 56, port_id = 0, ip = ip("57.1.1.1"), mac = mac(tester_mac0), mpls = 0x5712},
+ {id = 57, port_id = 1, ip = ip("58.1.1.1"), mac = mac(tester_mac1), mpls = 0x5812},
+ {id = 58, port_id = 0, ip = ip("59.1.1.1"), mac = mac(tester_mac2), mpls = 0x5912},
+ {id = 59, port_id = 1, ip = ip("60.1.1.1"), mac = mac(tester_mac3), mpls = 0x6012},
+ {id = 60, port_id = 0, ip = ip("61.1.1.1"), mac = mac(tester_mac0), mpls = 0x6112},
+ {id = 61, port_id = 1, ip = ip("62.1.1.1"), mac = mac(tester_mac1), mpls = 0x6212},
+ {id = 62, port_id = 0, ip = ip("63.1.1.1"), mac = mac(tester_mac2), mpls = 0x6312},
+ {id = 63, port_id = 1, ip = ip("64.1.1.1"), mac = mac(tester_mac3), mpls = 0x6412},
}
lpm4.routes = {};
diff --git a/samples/vnf_samples/nsut/prox/configs/ipv4_bng.lua b/samples/vnf_samples/nsut/prox/configs/ipv4_bng.lua
new file mode 100644
index 000000000..22697b06a
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/ipv4_bng.lua
@@ -0,0 +1,99 @@
+-- Copyright (c) 2016-2017 Intel Corporation
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+
+require("parameters")
+
+local lpm4 = {}
+lpm4.next_hops = {
+ {id = 0, port_id = 0, ip = ip("1.1.1.1"), mac = mac(tester_mac1), mpls = 0x112},
+ {id = 1, port_id = 1, ip = ip("2.1.1.1"), mac = mac(tester_mac1), mpls = 0x212},
+ {id = 2, port_id = 0, ip = ip("3.1.1.1"), mac = mac(tester_mac3), mpls = 0x312},
+ {id = 3, port_id = 1, ip = ip("4.1.1.1"), mac = mac(tester_mac3), mpls = 0x412},
+ {id = 4, port_id = 0, ip = ip("5.1.1.1"), mac = mac(tester_mac1), mpls = 0x512},
+ {id = 5, port_id = 1, ip = ip("6.1.1.1"), mac = mac(tester_mac1), mpls = 0x612},
+ {id = 6, port_id = 0, ip = ip("7.1.1.1"), mac = mac(tester_mac3), mpls = 0x712},
+ {id = 7, port_id = 1, ip = ip("8.1.1.1"), mac = mac(tester_mac3), mpls = 0x812},
+ {id = 8, port_id = 0, ip = ip("9.1.1.1"), mac = mac(tester_mac1), mpls = 0x912},
+ {id = 9, port_id = 1, ip = ip("10.1.1.1"), mac = mac(tester_mac1), mpls = 0x1012},
+ {id = 10, port_id = 0, ip = ip("11.1.1.1"), mac = mac(tester_mac3), mpls = 0x1112},
+ {id = 11, port_id = 1, ip = ip("12.1.1.1"), mac = mac(tester_mac3), mpls = 0x1212},
+ {id = 12, port_id = 0, ip = ip("13.1.1.1"), mac = mac(tester_mac1), mpls = 0x1312},
+ {id = 13, port_id = 1, ip = ip("14.1.1.1"), mac = mac(tester_mac1), mpls = 0x1412},
+ {id = 14, port_id = 0, ip = ip("15.1.1.1"), mac = mac(tester_mac3), mpls = 0x1512},
+ {id = 15, port_id = 1, ip = ip("16.1.1.1"), mac = mac(tester_mac3), mpls = 0x1612},
+ {id = 16, port_id = 0, ip = ip("17.1.1.1"), mac = mac(tester_mac1), mpls = 0x1712},
+ {id = 17, port_id = 1, ip = ip("18.1.1.1"), mac = mac(tester_mac1), mpls = 0x1812},
+ {id = 18, port_id = 0, ip = ip("19.1.1.1"), mac = mac(tester_mac3), mpls = 0x1912},
+ {id = 19, port_id = 1, ip = ip("20.1.1.1"), mac = mac(tester_mac3), mpls = 0x2012},
+ {id = 20, port_id = 0, ip = ip("21.1.1.1"), mac = mac(tester_mac1), mpls = 0x2112},
+ {id = 21, port_id = 1, ip = ip("22.1.1.1"), mac = mac(tester_mac1), mpls = 0x2212},
+ {id = 22, port_id = 0, ip = ip("23.1.1.1"), mac = mac(tester_mac3), mpls = 0x2312},
+ {id = 23, port_id = 1, ip = ip("24.1.1.1"), mac = mac(tester_mac3), mpls = 0x2412},
+ {id = 24, port_id = 0, ip = ip("25.1.1.1"), mac = mac(tester_mac1), mpls = 0x2512},
+ {id = 25, port_id = 1, ip = ip("26.1.1.1"), mac = mac(tester_mac1), mpls = 0x2612},
+ {id = 26, port_id = 0, ip = ip("27.1.1.1"), mac = mac(tester_mac3), mpls = 0x2712},
+ {id = 27, port_id = 1, ip = ip("28.1.1.1"), mac = mac(tester_mac3), mpls = 0x2812},
+ {id = 28, port_id = 0, ip = ip("29.1.1.1"), mac = mac(tester_mac1), mpls = 0x2912},
+ {id = 29, port_id = 1, ip = ip("30.1.1.1"), mac = mac(tester_mac1), mpls = 0x3012},
+ {id = 30, port_id = 0, ip = ip("31.1.1.1"), mac = mac(tester_mac3), mpls = 0x3112},
+ {id = 31, port_id = 1, ip = ip("32.1.1.1"), mac = mac(tester_mac3), mpls = 0x3212},
+ {id = 32, port_id = 0, ip = ip("33.1.1.1"), mac = mac(tester_mac1), mpls = 0x3312},
+ {id = 33, port_id = 1, ip = ip("34.1.1.1"), mac = mac(tester_mac1), mpls = 0x3412},
+ {id = 34, port_id = 0, ip = ip("35.1.1.1"), mac = mac(tester_mac3), mpls = 0x3512},
+ {id = 35, port_id = 1, ip = ip("36.1.1.1"), mac = mac(tester_mac3), mpls = 0x3612},
+ {id = 36, port_id = 0, ip = ip("37.1.1.1"), mac = mac(tester_mac1), mpls = 0x3712},
+ {id = 37, port_id = 1, ip = ip("38.1.1.1"), mac = mac(tester_mac1), mpls = 0x3812},
+ {id = 38, port_id = 0, ip = ip("39.1.1.1"), mac = mac(tester_mac3), mpls = 0x3912},
+ {id = 39, port_id = 1, ip = ip("40.1.1.1"), mac = mac(tester_mac3), mpls = 0x4012},
+ {id = 40, port_id = 0, ip = ip("41.1.1.1"), mac = mac(tester_mac1), mpls = 0x4112},
+ {id = 41, port_id = 1, ip = ip("42.1.1.1"), mac = mac(tester_mac1), mpls = 0x4212},
+ {id = 42, port_id = 0, ip = ip("43.1.1.1"), mac = mac(tester_mac3), mpls = 0x4312},
+ {id = 43, port_id = 1, ip = ip("44.1.1.1"), mac = mac(tester_mac3), mpls = 0x4412},
+ {id = 44, port_id = 0, ip = ip("45.1.1.1"), mac = mac(tester_mac1), mpls = 0x4512},
+ {id = 45, port_id = 1, ip = ip("46.1.1.1"), mac = mac(tester_mac1), mpls = 0x4612},
+ {id = 46, port_id = 0, ip = ip("47.1.1.1"), mac = mac(tester_mac3), mpls = 0x4712},
+ {id = 47, port_id = 1, ip = ip("48.1.1.1"), mac = mac(tester_mac3), mpls = 0x4812},
+ {id = 48, port_id = 0, ip = ip("49.1.1.1"), mac = mac(tester_mac1), mpls = 0x4912},
+ {id = 49, port_id = 1, ip = ip("50.1.1.1"), mac = mac(tester_mac1), mpls = 0x5012},
+ {id = 50, port_id = 0, ip = ip("51.1.1.1"), mac = mac(tester_mac3), mpls = 0x5112},
+ {id = 51, port_id = 1, ip = ip("52.1.1.1"), mac = mac(tester_mac3), mpls = 0x5212},
+ {id = 52, port_id = 0, ip = ip("53.1.1.1"), mac = mac(tester_mac1), mpls = 0x5312},
+ {id = 53, port_id = 1, ip = ip("54.1.1.1"), mac = mac(tester_mac1), mpls = 0x5412},
+ {id = 54, port_id = 0, ip = ip("55.1.1.1"), mac = mac(tester_mac3), mpls = 0x5512},
+ {id = 55, port_id = 1, ip = ip("56.1.1.1"), mac = mac(tester_mac3), mpls = 0x5612},
+ {id = 56, port_id = 0, ip = ip("57.1.1.1"), mac = mac(tester_mac1), mpls = 0x5712},
+ {id = 57, port_id = 1, ip = ip("58.1.1.1"), mac = mac(tester_mac1), mpls = 0x5812},
+ {id = 58, port_id = 0, ip = ip("59.1.1.1"), mac = mac(tester_mac3), mpls = 0x5912},
+ {id = 59, port_id = 1, ip = ip("60.1.1.1"), mac = mac(tester_mac3), mpls = 0x6012},
+ {id = 60, port_id = 0, ip = ip("61.1.1.1"), mac = mac(tester_mac1), mpls = 0x6112},
+ {id = 61, port_id = 1, ip = ip("62.1.1.1"), mac = mac(tester_mac1), mpls = 0x6212},
+ {id = 62, port_id = 0, ip = ip("63.1.1.1"), mac = mac(tester_mac3), mpls = 0x6312},
+ {id = 63, port_id = 1, ip = ip("64.1.1.1"), mac = mac(tester_mac3), mpls = 0x6412},
+}
+
+lpm4.routes = {};
+
+base_ip = 10 * 2^24;
+
+for i = 1,2^13 do
+ res = ip(base_ip + (1 * 2^12) * (i - 1));
+
+ lpm4.routes[i] = {
+ cidr = {ip = res, depth = 24},
+ next_hop_id = (i - 1) % 64,
+ }
+end
+
+return lpm4
diff --git a/samples/vnf_samples/nsut/prox/configs/irq.cfg b/samples/vnf_samples/nsut/prox/configs/irq.cfg
new file mode 100644
index 000000000..303744371
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/irq.cfg
@@ -0,0 +1,46 @@
+# Copyright (c) 2016-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#;
+
+[eal options]
+-n=4 ; force number of memory channels
+no-output=no ; disable DPDK debug output
+
+[global]
+start time=5
+name=IRQ Query
+
+[core 0]
+mode=master
+
+[core 1]
+name=irq
+task=0
+mode=irq
+
+[core 2]
+name=irq
+task=0
+mode=irq
+
+[core 3]
+name=irq
+task=0
+mode=irq
+
+[core 4]
+name=irq
+task=0
+mode=irq
diff --git a/samples/vnf_samples/nsut/prox/configs/irq2.cfg b/samples/vnf_samples/nsut/prox/configs/irq2.cfg
new file mode 100644
index 000000000..9eda96f58
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/irq2.cfg
@@ -0,0 +1,66 @@
+# Copyright (c) 2016-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#;
+
+[eal options]
+-n=4 ; force number of memory channels
+no-output=no ; disable DPDK debug output
+
+[global]
+start time=5
+name=IRQ Query
+
+[core 0]
+mode=master
+
+[core 1]
+name=irq
+task=0
+mode=irq
+
+[core 2]
+name=irq
+task=0
+mode=irq
+
+[core 3]
+name=irq
+task=0
+mode=irq
+
+[core 4]
+name=irq
+task=0
+mode=irq
+
+[core 5]
+name=irq
+task=0
+mode=irq
+
+[core 6]
+name=irq
+task=0
+mode=irq
+
+[core 7]
+name=irq
+task=0
+mode=irq
+
+[core 8]
+name=irq
+task=0
+mode=irq
diff --git a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_1518B_packetsize.yaml b/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_1518B_packetsize.yaml
deleted file mode 100644
index 0ca0005b2..000000000
--- a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_1518B_packetsize.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_1rule.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_storage.yaml"
-context:
- type: Node-ovs
- name: yardstick
- nfvi_type: ovs
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_ovs.yaml
diff --git a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_64B_packetsize.yaml
deleted file mode 100644
index d51b42f84..000000000
--- a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_64B_packetsize.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_1rule.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_voice.yaml"
-context:
- type: Node-ovs
- name: yardstick
- nfvi_type: ovs
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_ovs.yaml
diff --git a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_IMIX_packetsize.yaml b/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_IMIX_packetsize.yaml
deleted file mode 100644
index 37da8e6c7..000000000
--- a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_1rule_1flow_IMIX_packetsize.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_1rule.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_video.yaml"
-context:
- type: Node-ovs
- name: yardstick
- nfvi_type: ovs
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_ovs.yaml
diff --git a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_1518B_packetsize.yaml b/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_1518B_packetsize.yaml
deleted file mode 100644
index cbe3e97ae..000000000
--- a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_1518B_packetsize.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_worstcaserules.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_storage.yaml"
-context:
- type: Node-ovs
- name: yardstick
- nfvi_type: ovs
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_ovs.yaml
diff --git a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_64B_packetsize.yaml
deleted file mode 100644
index 707b46e7f..000000000
--- a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_64B_packetsize.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_worstcaserules.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_voice.yaml"
-context:
- type: Node-ovs
- name: yardstick
- nfvi_type: ovs
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_ovs.yaml
diff --git a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_IMIX_packetsize.yaml b/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_IMIX_packetsize.yaml
deleted file mode 100644
index b1003df3d..000000000
--- a/samples/vnf_samples/nsut/prox/ovs-dpdk/throughput/tc_ipv4_worstcaserules_1flow_IMIX_packetsize.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_worstcaserules.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_video.yaml"
-context:
- type: Node-ovs
- name: yardstick
- nfvi_type: ovs
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_ovs.yaml
diff --git a/samples/vnf_samples/nsut/prox/prox-baremetal-1.yaml b/samples/vnf_samples/nsut/prox/prox-baremetal-1.yaml
index 8b0ba3f9c..b239a1599 100644
--- a/samples/vnf_samples/nsut/prox/prox-baremetal-1.yaml
+++ b/samples/vnf_samples/nsut/prox/prox-baremetal-1.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
nodes:
-
- name: "tg_0"
+ name: "trafficgen_0"
role: TrafficGen
ip: 1.1.1.1
user: "root"
diff --git a/samples/vnf_samples/nsut/prox/prox-baremetal-2.yaml b/samples/vnf_samples/nsut/prox/prox-baremetal-2.yaml
index 1390e4a67..81572bf87 100644
--- a/samples/vnf_samples/nsut/prox/prox-baremetal-2.yaml
+++ b/samples/vnf_samples/nsut/prox/prox-baremetal-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,13 +16,12 @@
nodes:
-
- name: "tg_0"
+ name: "trafficgen_0"
role: TrafficGen
ip: 1.1.1.1
user: "root"
ssh_port: "22"
password: "r00t"
- key_filename: ""
interfaces:
xe0:
vpci: "0000:05:00.0"
@@ -45,7 +44,6 @@ nodes:
user: "root"
ssh_port: "22"
password: "r00t"
- key_filename: ""
interfaces:
xe0:
vpci: "0000:05:00.0"
@@ -79,4 +77,3 @@ nodes:
netmask: "112"
gateway: "0064:ff9b:0:0:0:0:9810:2814"
if: "xe1"
-
diff --git a/samples/vnf_samples/nsut/prox/prox-baremetal-4.yaml b/samples/vnf_samples/nsut/prox/prox-baremetal-4.yaml
index 0b0986052..0cc33375a 100644
--- a/samples/vnf_samples/nsut/prox/prox-baremetal-4.yaml
+++ b/samples/vnf_samples/nsut/prox/prox-baremetal-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,12 +11,10 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
-#;
nodes:
-
- name: "tg_0"
+ name: "trafficgen_0"
role: TrafficGen
ip: 1.1.1.1
user: "root"
diff --git a/samples/vnf_samples/nsut/prox/prox-irq-baremetal.yaml b/samples/vnf_samples/nsut/prox/prox-irq-baremetal.yaml
new file mode 100644
index 000000000..5e1a469e0
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/prox-irq-baremetal.yaml
@@ -0,0 +1,47 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#;
+
+nodes:
+-
+ name: "trafficgen_0"
+ role: ProxIrqGen
+ ip: 1.1.1.1
+ user: "root"
+ ssh_port: "22"
+ password: "r00t"
+ interfaces:
+ xe0:
+ vpci: "0000:05:00.0"
+ local_mac: "00:00:00:00:00:01"
+ driver: "i40e"
+ local_ip: "152.16.100.19"
+ netmask: "255.255.255.0"
+ dpdk_port_num: 0
+-
+ name: "vnf_0"
+ role: ProxIrqGen
+ ip: 1.1.1.2
+ user: "root"
+ ssh_port: "22"
+ password: "r00t"
+ interfaces:
+ xe0:
+ vpci: "0000:05:00.0"
+ local_mac: "00:00:00:00:00:02"
+ driver: "i40e"
+ local_ip: "152.16.100.21"
+ netmask: "255.255.255.0"
+ dpdk_port_num: 0
diff --git a/samples/vnf_samples/nsut/prox/prox-tg-topology-0.yaml b/samples/vnf_samples/nsut/prox/prox-tg-topology-0.yaml
new file mode 100644
index 000000000..cbd7b57a0
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/prox-tg-topology-0.yaml
@@ -0,0 +1,49 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: prox-tg-topology
+ name: prox-tg-topology
+ short-name: prox-tg-topology
+ description: prox-tg-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_prox_irq.yaml
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/prox_irq_vnf.yaml
+ vld:
+ - id: uplink_0
+ name: tg__0 to vnf__0 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_0
+ name: vnf__0 to tg__0 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/prox/prox-tg-topology-1.yaml b/samples/vnf_samples/nsut/prox/prox-tg-topology-1.yaml
index 10902a7b8..f59146c0b 100644
--- a/samples/vnf_samples/nsut/prox/prox-tg-topology-1.yaml
+++ b/samples/vnf_samples/nsut/prox/prox-tg-topology-1.yaml
@@ -21,10 +21,10 @@ nsd:nsd-catalog:
constituent-vnfd:
- member-vnf-index: '1'
vnfd-id-ref: tg__0
- VNF model: ../../vnf_descriptors/tg_prox_tpl-1.yaml
+ VNF model: ../../vnf_descriptors/tg_prox_tpl.yaml
- member-vnf-index: '2'
vnfd-id-ref: vnf__0
- VNF model: ../../vnf_descriptors/prox_vnf-1.yaml
+ VNF model: ../../vnf_descriptors/prox_vnf.yaml
vld:
- id: uplink_0
name: tg__0 to vnf__0 link 1
diff --git a/samples/vnf_samples/nsut/prox/prox-tg-topology-2.yaml b/samples/vnf_samples/nsut/prox/prox-tg-topology-2.yaml
index 11eed52fc..63d0acc91 100644
--- a/samples/vnf_samples/nsut/prox/prox-tg-topology-2.yaml
+++ b/samples/vnf_samples/nsut/prox/prox-tg-topology-2.yaml
@@ -21,10 +21,10 @@ nsd:nsd-catalog:
constituent-vnfd:
- member-vnf-index: '1'
vnfd-id-ref: tg__0
- VNF model: ../../vnf_descriptors/tg_prox_tpl-2.yaml
+ VNF model: ../../vnf_descriptors/tg_prox_tpl.yaml
- member-vnf-index: '2'
vnfd-id-ref: vnf__0
- VNF model: ../../vnf_descriptors/prox_vnf-2.yaml
+ VNF model: ../../vnf_descriptors/prox_vnf.yaml
vld:
- id: uplink_0
name: tg__0 to vnf__0 link 1
diff --git a/samples/vnf_samples/nsut/prox/prox-tg-topology-4.yaml b/samples/vnf_samples/nsut/prox/prox-tg-topology-4.yaml
index eda239e3b..4b586b4c9 100644
--- a/samples/vnf_samples/nsut/prox/prox-tg-topology-4.yaml
+++ b/samples/vnf_samples/nsut/prox/prox-tg-topology-4.yaml
@@ -21,10 +21,10 @@ nsd:nsd-catalog:
constituent-vnfd:
- member-vnf-index: '1'
vnfd-id-ref: tg__0
- VNF model: ../../vnf_descriptors/tg_prox_tpl-4.yaml
+ VNF model: ../../vnf_descriptors/tg_prox_tpl.yaml
- member-vnf-index: '2'
vnfd-id-ref: vnf__0
- VNF model: ../../vnf_descriptors/prox_vnf-4.yaml
+ VNF model: ../../vnf_descriptors/prox_vnf.yaml
vld:
- id: uplink_0
name: tg__0 to vnf__0 link 1
@@ -38,32 +38,34 @@ nsd:nsd-catalog:
vnfd-id-ref: vnf__0
- id: downlink_0
- name: vnf__0 to tg__0 link 1
+ name: vnf__0 to tg__0 link 2
type: ELAN
vnfd-connection-point-ref:
- - member-vnf-index-ref: '1'
+ - member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe1
vnfd-id-ref: vnf__0
- - member-vnf-index-ref: '2'
+ - member-vnf-index-ref: '1'
vnfd-connection-point-ref: xe1
vnfd-id-ref: tg__0
- - id: downlink_1
- name: vnf__0 to tg__0 link 2
+
+ - id: uplink_1
+ name: tg__0 to vnf__0 link 3
type: ELAN
vnfd-connection-point-ref:
- member-vnf-index-ref: '1'
vnfd-connection-point-ref: xe2
- vnfd-id-ref: vnf__0
+ vnfd-id-ref: tg__0
- member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe2
- vnfd-id-ref: tg__0
- - id: downlink_2
- name: vnf__0 to tg__0 link 3
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_1
+ name: vnf__0 to tg__0 link 4
type: ELAN
vnfd-connection-point-ref:
- - member-vnf-index-ref: '1'
+ - member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe3
vnfd-id-ref: vnf__0
- - member-vnf-index-ref: '2'
+ - member-vnf-index-ref: '1'
vnfd-connection-point-ref: xe3
vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/prox/prox-tg-topology-scale-out.yaml b/samples/vnf_samples/nsut/prox/prox-tg-topology-scale-out.yaml
new file mode 100644
index 000000000..5f01ecb7e
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/prox-tg-topology-scale-out.yaml
@@ -0,0 +1,53 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set num_vnfs = get(extra_args, 'num_vnfs', 1) %}
+---
+nsd:nsd-catalog:
+ nsd:
+ - id: prox-tg-topology
+ name: prox-tg-topology
+ short-name: prox-tg-topology
+ description: prox-tg-topology
+ constituent-vnfd:
+{% for vnf_num in range(num_vnfs|int) %}
+ - member-vnf-index: '{{ (vnf_num * 2) + 1 }}'
+ vnfd-id-ref: tg__{{ vnf_num }}
+ VNF model: ../../vnf_descriptors/tg_prox_tpl.yaml
+ - member-vnf-index: '{{ (vnf_num * 2) + 2 }}'
+ vnfd-id-ref: vnf__{{ vnf_num }}
+ VNF model: ../../vnf_descriptors/prox_vnf.yaml
+{% endfor %}
+ vld:
+{% for vnf_num in range(num_vnfs|int) %}
+ - id: uplink_{{ vnf_num }}
+ name: tg__{{ vnf_num }} to vnf__{{ vnf_num }} link {{ (vnf_num * 2) + 1 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '{{ (vnf_num * 2) + 1 }}'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__{{ vnf_num }}
+ - member-vnf-index-ref: '{{ (vnf_num * 2) + 2 }}'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__{{ vnf_num }}
+ - id: downlink_{{ vnf_num }}
+ name: vnf__{{ vnf_num }} to tg__{{ vnf_num }} link {{ (vnf_num * 2) + 2 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '{{ (vnf_num * 2) + 1 }}'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__{{ vnf_num }}
+ - member-vnf-index-ref: '{{ (vnf_num * 2) + 2 }}'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__{{ vnf_num }}
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/prox-tg-topology-scale-up.yaml b/samples/vnf_samples/nsut/prox/prox-tg-topology-scale-up.yaml
new file mode 100644
index 000000000..87db3702f
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/prox-tg-topology-scale-up.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+{% set vports = get(extra_args, 'vports', 2) %}
+
+nsd:nsd-catalog:
+ nsd:
+ - id: prox-tg-topology
+ name: prox-tg-topology
+ short-name: prox-tg-topology
+ description: prox-tg-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_prox_tpl.yaml
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/prox_vnf.yaml
+ vld:
+{% for vport in range(0,vports,2|int) %}
+ - id: uplink_{{loop.index0}}
+ name: tg__0 to vnf__0 link {{ vport + 1 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{ vport }}
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{ vport }}
+ vnfd-id-ref: vnf__0
+ - id: downlink_{{loop.index0}}
+ name: vnf__0 to tg__0 link {{ vport + 2 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{ vport + 1 }}
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{ vport + 1 }}
+ vnfd-id-ref: tg__0
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/prox_tg_bm.yaml b/samples/vnf_samples/nsut/prox/prox_tg_bm.yaml
new file mode 100644
index 000000000..bc1b45bfc
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/prox_tg_bm.yaml
@@ -0,0 +1,37 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nodes:
+-
+ name: "trafficgen_0"
+ role: TrafficGen
+ ip: 192.168.100.101
+ user: user
+ ssh_port: "22"
+ password: password
+ interfaces:
+ xe0:
+ vpci: "0000:05:00.0"
+ local_mac: "68:05:ca:30:3d:50"
+ driver: "i40e"
+ local_ip: "152.16.100.19"
+ netmask: "255.255.255.0"
+ dpdk_port_num: 0
+ xe1:
+ vpci: "0000:05:00.1"
+ local_mac: "68:05:ca:30:3d:51"
+ driver: "i40e"
+ local_ip: "152.16.40.19"
+ netmask: "255.255.255.0"
+ dpdk_port_num: 1
diff --git a/samples/vnf_samples/nsut/prox/sriov/http_tests/tc_FileSize-1K_Requests-1M_Concurrency-100.yaml b/samples/vnf_samples/nsut/prox/sriov/http_tests/tc_FileSize-1K_Requests-1M_Concurrency-100.yaml
deleted file mode 100644
index 15892b886..000000000
--- a/samples/vnf_samples/nsut/prox/sriov/http_tests/tc_FileSize-1K_Requests-1M_Concurrency-100.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-##############################################################################
-# Copyright 2012 - 2016 Intel Corporation All Rights Reserved.
-# deepak.s@intel.com
-# 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
-##############################################################################
-
----
-schema: "yardstick:task:0.1"
-
-scenarios:
--
- type: NSPerf
- traffic_profile: ../../../../traffic_profiles/http_tests/FileSize-1K_Requests-1M_Concurrency-100.yaml
- topology: ../../acl-tg-topology-http.yaml
-
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
-
- options:
- acl:
- rules: ../../acl_rules.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
-
- runner:
- type: Duration
- duration: 2
-
-context:
- type: Node-sriov
- name: yardstick
- nfvi_type: sriov
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_sriov.yaml
diff --git a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_1518B_packetsize.yaml b/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_1518B_packetsize.yaml
deleted file mode 100644
index 1238ed41c..000000000
--- a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_1518B_packetsize.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-##############################################################################
-# Copyright 2012 - 2016 Intel Corporation All Rights Reserved.
-# deepak.s@intel.com
-# 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
-##############################################################################
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_1rule.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_storage.yaml"
-context:
- type: Node-sriov
- name: yardstick
- nfvi_type: sriov
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_sriov.yaml
diff --git a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_64B_packetsize.yaml
deleted file mode 100644
index 059a6502f..000000000
--- a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_64B_packetsize.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-##############################################################################
-# Copyright 2012 - 2016 Intel Corporation All Rights Reserved.
-# deepak.s@intel.com
-# 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
-##############################################################################
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_1rule.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_voice.yaml"
-context:
- type: Node-sriov
- name: yardstick
- nfvi_type: sriov
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_sriov.yaml
diff --git a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_IMIX_packetsize.yaml b/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_IMIX_packetsize.yaml
deleted file mode 100644
index b6aa48a0e..000000000
--- a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_1rule_1flow_IMIX_packetsize.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-##############################################################################
-# Copyright 2012 - 2016 Intel Corporation All Rights Reserved.
-# deepak.s@intel.com
-# 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
-##############################################################################
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_1rule.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_video.yaml"
-context:
- type: Node-sriov
- name: yardstick
- nfvi_type: sriov
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_sriov.yaml
diff --git a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_1518B_packetsize.yaml b/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_1518B_packetsize.yaml
deleted file mode 100644
index baa4b5997..000000000
--- a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_1518B_packetsize.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-##############################################################################
-# Copyright 2012 - 2016 Intel Corporation All Rights Reserved.
-# deepak.s@intel.com
-# 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
-##############################################################################
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_worstcaserules.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_storage.yaml"
-context:
- type: Node-sriov
- name: yardstick
- nfvi_type: sriov
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_sriov.yaml
diff --git a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_64B_packetsize.yaml b/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_64B_packetsize.yaml
deleted file mode 100644
index 590150602..000000000
--- a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_64B_packetsize.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-##############################################################################
-# Copyright 2012 - 2016 Intel Corporation All Rights Reserved.
-# deepak.s@intel.com
-# 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
-##############################################################################
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_worstcaserules.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_voice.yaml"
-context:
- type: Node-sriov
- name: yardstick
- nfvi_type: sriov
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_sriov.yaml
diff --git a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_IMIX_packetsize.yaml b/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_IMIX_packetsize.yaml
deleted file mode 100644
index 517dd9024..000000000
--- a/samples/vnf_samples/nsut/prox/sriov/throughput/tc_ipv4_worstcaserules_1flow_IMIX_packetsize.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-##############################################################################
-# Copyright 2012 - 2016 Intel Corporation All Rights Reserved.
-# deepak.s@intel.com
-# 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
-##############################################################################
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../../../traffic_profiles/ipv4_throughput.yaml"
- topology: ../../acl-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
- tc_options:
- rfc2544:
- allowed_drop_rate: 0.8 - 1
- options:
- acl:
- rules: ../../acl_worstcaserules.yaml
- cfg: "../../acl_config"
- script: "../../acl_script"
- runner:
- type: Duration
- duration: 400
- interval: 35
- traffic_options:
- flow: "../../../../traffic_profiles/ipv4_1flow_Packets.yaml"
- imix: "../../../../traffic_profiles/imix_video.yaml"
-context:
- type: Node-sriov
- name: yardstick
- nfvi_type: sriov
- vm_deploy: True
- file: /etc/yardstick/nodes/pod_sriov.yaml
diff --git a/samples/vnf_samples/nsut/prox/standalone-args.yaml b/samples/vnf_samples/nsut/prox/standalone-args.yaml
new file mode 100644
index 000000000..7f45112e3
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/standalone-args.yaml
@@ -0,0 +1,46 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+
+networks:
+ uplink:
+ -
+ port_num: 0
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ -
+ port_num: 2
+ phy_port: "0000:05:00.2"
+ vpci: "0000:00:0c.0"
+ cidr: '152.16.50.10/24'
+ gateway_ip: '152.16.100.20'
+
+ downlink:
+ -
+ port_num: 1
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+
+ -
+ port_num: 3
+ phy_port: "0000:05:00.3"
+ vpci: "0000:00:0d.0"
+ cidr: '152.16.30.10/24'
+ gateway_ip: '152.16.100.20'
+
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-2.yaml
index 22216d108..ecec1f480 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -30,11 +30,13 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_acl-2.cfg"
prox_args:
@@ -43,6 +45,8 @@ scenarios:
"configs/acl_rules-2.lua": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_acl-2.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-4.yaml
index 8c6d0a2d7..1d59dbfbb 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -30,11 +30,13 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_acl-4.cfg"
prox_args:
@@ -43,6 +45,8 @@ scenarios:
"configs/acl_rules-2.lua": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_acl-4.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-scale-up.yaml
new file mode 100644
index 000000000..6960647ef
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_acl-scale-up.yaml
@@ -0,0 +1,65 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ #
+ # In case where we know that all the packets generated by the generator
+ # will bw received. Then use prox_binsearch.
+ #
+ # In the case where some or all the packets generated by the generator may
+ # not be received. Please use prox_acl .. (This generates packets at
+ # a specific rate and does not change rate.
+ #
+ traffic_profile: ../../traffic_profiles/prox_acl.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_acl-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/acl_rules-2.lua": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_acl-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: prox-baremetal-{{ vports }}.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_binsearch-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_binsearch-2.yaml
index 2abbb9a46..6cba16936 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_binsearch-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_binsearch-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,7 +22,7 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_bng-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_bng-4.yaml
index 914bace6c..e59d67538 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_bng-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_bng-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,20 +22,28 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
+
+ interface_speed_gbps: 10
+
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_bng-4.cfg"
prox_args:
"-t": ""
prox_files:
"configs/gre_table.lua" : ""
- "configs/ipv4.lua" : ""
+ "configs/ipv4_bng.lua" : ""
+ prox_generate_parameter: True
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_bng-4.cfg"
prox_args:
@@ -43,13 +51,15 @@ scenarios:
"-t": ""
runner:
- type: Duration
+ type: ProxDuration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 2900
+ confirmation: 1
+ sampled: yes
+ interval: 1
context:
type: Node
name: yardstick
nfvi_type: baremetal
file: prox-baremetal-4.yaml
-
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_bng_qos-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_bng_qos-4.yaml
index 599a6e09a..9513c75f4 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_bng_qos-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_bng_qos-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,21 +22,29 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
+
+ interface_speed_gbps: 10
+
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_bng_qos-4.cfg"
prox_args:
"-t": ""
prox_files:
"configs/gre_table.lua" : ""
- "configs/ipv4.lua" : ""
+ "configs/ipv4_bng.lua" : ""
"configs/dscp.lua" : ""
+ prox_generate_parameter: True
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_bng_qos-4.cfg"
prox_args:
@@ -44,13 +52,15 @@ scenarios:
"-t": ""
runner:
- type: Duration
+ type: ProxDuration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 2900
+ confirmation: 1
+ sampled: yes
+ interval: 1
context:
type: Node
name: yardstick
nfvi_type: baremetal
file: prox-baremetal-4.yaml
-
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-1.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-1.yaml
index 5cc4f3cc4..a04993b80 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-1.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-1.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-1.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_buffering-1.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_buffering-1.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-2.yaml
new file mode 100644
index 000000000..077a29d28
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-2.yaml
@@ -0,0 +1,55 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-2.yaml
+
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_buffering-2.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_buffering-2.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 4000
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: prox-baremetal-2.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-4.yaml
new file mode 100644
index 000000000..86e8f9d89
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-4.yaml
@@ -0,0 +1,55 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-4.yaml
+
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_buffering-4.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_buffering-4.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 4000
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: prox-baremetal-4.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-scale-up.yaml
new file mode 100644
index 000000000..c38e1c9e7
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_buffering-scale-up.yaml
@@ -0,0 +1,55 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_buffering-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_buffering-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: prox-baremetal-{{ vports }}.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_irq.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_irq.yaml
new file mode 100644
index 000000000..3d4f304be
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_irq.yaml
@@ -0,0 +1,59 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+description: >
+ This test queries the PROX IRQ Statistics on the GEN and VNF. The KPIs
+ returned are the Maximium IRQ per core and the IRQs per second per
+ core.
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_irq.yaml
+ topology: prox-tg-topology-0.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/irq2.cfg"
+ prox_args:
+ "-t": ""
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/irq2.cfg"
+ prox_args:
+ "-t": ""
+
+ runner:
+ type: ProxDuration
+ # sampling interval
+ interval: 1
+ # sampled : yes OR sampled: no (DEFAULT yes)
+ sampled: yes
+ # we kill after duration, independent of test duration, so set this high
+ duration: 3100
+ # Confirmation attempts
+ confirmation: 1
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: prox-irq-baremetal.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-2.yaml
index b1fef6d45..5cc432408 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,23 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
+ interface_speed_gbps: 10
+
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd-2.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd-2.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-4.yaml
index e17c5c2a1..ec675c1e7 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,27 +22,40 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
+ interface_speed_gbps: 10
+
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd-4.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd-4.cfg"
prox_args:
"-e": ""
"-t": ""
+
runner:
- type: Duration
+ type: ProxDuration
+ # sampling interval
+ interval: 1
+ # sampled : yes OR sampled: no (DEFAULT yes)
+ sampled: yes
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 3100
+ # Confirmation attempts
+ confirmation: 1
context:
type: Node
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-scale-up.yaml
new file mode 100644
index 000000000..66b53b425
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd-scale-up.yaml
@@ -0,0 +1,57 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set underscore = '_' if type %}
+{% set type = type or '' %} # type: {'', 'multiflow', 'pktTouch'}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd{{ underscore }}{{ type }}-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd{{ underscore }}{{ type }}-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: prox-baremetal-{{ vports }}.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_multiflow-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_multiflow-2.yaml
index 0354dc78c..c77fd6956 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_multiflow-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_multiflow-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd_multiflow-2.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd_multiflow-2.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_multiflow-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_multiflow-4.yaml
index ec49be722..78cedd3c5 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_multiflow-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_multiflow-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd_multiflow-4.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd_multiflow-4.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_pktTouch-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_pktTouch-2.yaml
index 8ee90ff93..724a8ae0e 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_pktTouch-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_pktTouch-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd_pktTouch-2.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd_pktTouch-2.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_pktTouch-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_pktTouch-4.yaml
index 94f3a5629..5767dc533 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_pktTouch-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l2fwd_pktTouch-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd_pktTouch-4.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd_pktTouch-4.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-2.yaml
index 843073343..3376e745c 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,19 +22,24 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l3fwd-2.cfg"
prox_args:
"-t": ""
prox_files:
- "configs/ipv4.lua" : ""
+ "configs/ipv4-2port.lua" : ""
+ prox_generate_parameter: True
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l3fwd-2.cfg"
prox_args:
@@ -44,7 +49,7 @@ scenarios:
runner:
type: Duration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 1800
context:
type: Node
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-4.yaml
index bfc1eead2..a67d109d1 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,19 +22,24 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l3fwd-4.cfg"
prox_args:
"-t": ""
prox_files:
"configs/ipv4.lua" : ""
+ prox_generate_parameter: True
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l3fwd-4.cfg"
prox_args:
@@ -44,7 +49,7 @@ scenarios:
runner:
type: Duration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 1800
context:
type: Node
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-scale-up.yaml
new file mode 100644
index 000000000..86f77418a
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_l3fwd-scale-up.yaml
@@ -0,0 +1,57 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l3fwd-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/ipv4.lua" : ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l3fwd-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: prox-baremetal-{{ vports }}.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-2.yaml
new file mode 100644
index 000000000..2843055e5
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-2.yaml
@@ -0,0 +1,64 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-2.yaml
+
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_lb-2.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/tuples.lua": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_lb-2.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: ProxDuration
+ # sampling interval
+ interval: 1
+ # sampled : yes OR sampled: no (DEFAULT yes)
+ sampled: yes
+ # we kill after duration, independent of test duration, so set this high
+ duration: 4000
+ # Confirmation attempts
+ confirmation: 1
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: prox-baremetal-2.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-4.yaml
index c1969d441..e5c797107 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,19 +19,17 @@ scenarios:
-
type: NSPerf
- # This is a special traffic profile for Load Balancer
- # Because what is transmitted for 1 port is distributed to the other ports evenly
- # Only 1/4 of the transmiited packets is expected back. So this tolerates a much
- # packet loss.
- traffic_profile: ../../traffic_profiles/prox_lb.yaml
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_lb-4.cfg"
prox_args:
@@ -40,6 +38,8 @@ scenarios:
"configs/tuples.lua": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_lb-4.cfg"
prox_args:
@@ -47,9 +47,15 @@ scenarios:
"-t": ""
runner:
- type: Duration
+ type: ProxDuration
+ # sampling interval
+ interval: 1
+ # sampled : yes OR sampled: no (DEFAULT yes)
+ sampled: yes
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 4000
+ # Confirmation attempts
+ confirmation: 1
context:
type: Node
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-scale-up.yaml
new file mode 100644
index 000000000..7b4e4d0a8
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lb-scale-up.yaml
@@ -0,0 +1,57 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_lb-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/tuples.lua": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_lb-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: prox-baremetal-{{ vports }}.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lw_aftr-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lw_aftr-4.yaml
index 37af37dcc..532cff8ec 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lw_aftr-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_lw_aftr-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,11 +22,13 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_lw_aftr-4.cfg"
prox_args:
@@ -35,6 +37,8 @@ scenarios:
"configs/ip6_tun_bind_65k.lua" : ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_lw_aftr-4.cfg"
prox_args:
@@ -50,5 +54,5 @@ context:
type: Node
name: yardstick
nfvi_type: baremetal
- file: /etc/yardstick/nodes/prox-baremetal-4.yml
+ file: prox-baremetal-4.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-2.yaml
index e74e59ada..982c910bd 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_mpls_tag_untag-2.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_mpls_tag_untag-2.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-4.yaml
index 9c5edc117..d8d8c6948 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_mpls_tag_untag-4.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_mpls_tag_untag-4.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-scale-up.yaml
new file mode 100644
index 000000000..7a54cc76b
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_mpls_tagging-scale-up.yaml
@@ -0,0 +1,55 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set duration = duration or 400 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_mpls_tag_untag.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_mpls_tag_untag-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_mpls_tag_untag-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: prox-baremetal-{{ vports }}.yaml
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_ramp-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_ramp-2.yaml
index 1cf9d809d..986509c05 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_ramp-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_ramp-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_none-2.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_all-2.cfg"
prox_args:
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_vpe-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_vpe-4.yaml
index 16dfa1b32..c39b3249e 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_baremetal_vpe-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_baremetal_vpe-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,11 +22,13 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_vpe-4.cfg"
prox_args:
@@ -40,6 +42,8 @@ scenarios:
prox_generate_parameter: True
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_vpe-4.cfg"
prox_args:
@@ -47,13 +51,15 @@ scenarios:
"-t": ""
runner:
- type: Duration
+ type: ProxDuration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 2900
+ confirmation: 1
+ sampled: yes
+ interval: 1
context:
type: Node
name: yardstick
nfvi_type: baremetal
file: prox-baremetal-4.yaml
-
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-2.yaml
index e8701638b..81390f8f5 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -30,11 +30,13 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_acl-2.cfg"
prox_args:
@@ -43,6 +45,8 @@ scenarios:
"configs/acl_rules-2.lua" : ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_acl-2.cfg"
prox_args:
@@ -91,4 +95,3 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
-
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-4.yaml
index ece618fa1..9a6eb9653 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -30,11 +30,13 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_acl-4.cfg"
prox_args:
@@ -42,6 +44,8 @@ scenarios:
prox_files: "configs/acl_rules-2.lua"
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_acl-4.cfg"
prox_args:
@@ -74,7 +78,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -91,14 +95,13 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_1:
+ uplink_1:
cidr: '10.0.4.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_2:
+ downlink_1:
cidr: '10.0.5.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
-
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-scale-up.yaml
new file mode 100644
index 000000000..63264b73a
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_acl-scale-up.yaml
@@ -0,0 +1,103 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 10 %}
+{% set disk = disk or 6 %}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ #
+ # In case where we know that all the packets generated by the generator
+ # will bw received. Then use prox_binsearch.
+ #
+ # In the case where some or all the packets generated by the generator may
+ # not be received. Please use prox_heat_acl .. (This generates packets at
+ # a specific rate and does not change rate.
+ #
+ traffic_profile: ../../traffic_profiles/prox_heat_acl.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_acl-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/acl_rules-2.lua" : ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_acl-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: {{ disk }}
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ trafficgen_0:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+1 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+
+ downlink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+2 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_bng-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_bng-4.yaml
index 67ad5e278..37dc5e64c 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_bng-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_bng-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,20 +22,28 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
+
+ interface_speed_gbps: 10
+
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_bng-4.cfg"
prox_args:
"-t": ""
prox_files:
"configs/gre_table.lua" : ""
- "configs/ipv4.lua" : ""
+ "configs/ipv4_bng.lua" : ""
+ prox_generate_parameter: True
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_bng-4.cfg"
prox_args:
@@ -45,14 +53,14 @@ scenarios:
runner:
type: Duration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 1600
context:
name: yardstick
image: yardstick-samplevnfs
user: ubuntu
flavor:
- vcpus: 18
+ vcpus: 18
ram: 20480
disk: 6
extra_specs:
@@ -68,7 +76,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -85,12 +93,12 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_1:
+ uplink_1:
cidr: '10.0.4.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_2:
+ downlink_1:
cidr: '10.0.5.0/24'
gateway_ip: 'null'
port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_bng_qos-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_bng_qos-4.yaml
index 0578bf5f7..69f9da2a2 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_bng_qos-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_bng_qos-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,21 +22,29 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
+
+ interface_speed_gbps: 10
+
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_bng_qos-4.cfg"
prox_args:
"-t": ""
prox_files:
"configs/gre_table.lua" : ""
- "configs/ipv4.lua" : ""
+ "configs/ipv4_bng.lua" : ""
"configs/dscp.lua" : ""
+ prox_generate_parameter: True
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_bng_qos-4.cfg"
prox_args:
@@ -46,7 +54,7 @@ scenarios:
runner:
type: Duration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 1600
context:
name: yardstick
@@ -69,7 +77,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -86,12 +94,12 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_1:
+ uplink_1:
cidr: '10.0.4.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_2:
+ downlink_1:
cidr: '10.0.5.0/24'
gateway_ip: 'null'
port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-1.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-1.yaml
index 31b872dd4..06841036e 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-1.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-1.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-1.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_buffering-1.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_buffering-1.cfg"
prox_args:
@@ -64,7 +68,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -76,4 +80,3 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
-
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-2.yaml
new file mode 100644
index 000000000..98a139641
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-2.yaml
@@ -0,0 +1,88 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-2.yaml
+
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_buffering-2.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_buffering-2.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 1800
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: 32
+ ram: 40960
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 32
+ hw:cpu_threads: 1
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ tg_0:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+ uplink_0:
+ cidr: '10.0.2.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_0:
+ cidr: '10.0.3.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-4.yaml
new file mode 100644
index 000000000..a88299496
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-4.yaml
@@ -0,0 +1,110 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-4.yaml
+
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ traffic_config:
+ tolerated_loss: 0.1
+ test_precision: 0.01
+
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_buffering-4.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_buffering-4.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: ProxDuration
+ # sampling interval
+ interval: 1
+ # sampled : yes OR sampled: no (DEFAULT yes)
+ sampled: yes
+ # we kill after duration, independent of test duration, so set this high
+ duration: 4000
+ # Confirmation attempts
+ confirmation: 1
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: 32
+ ram: 20480
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 32
+ hw:cpu_threads: 1
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ tg_0:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+ uplink_0:
+ cidr: '10.0.2.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_0:
+ cidr: '10.0.3.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ uplink_1:
+ cidr: '10.0.4.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_1:
+ cidr: '10.0.5.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-scale-up.yaml
new file mode 100644
index 000000000..f9f13e85c
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_buffering-scale-up.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 32 %}
+{% set disk = disk or 10 %}
+{% set duration = duration or 4000 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_buffering-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_buffering-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: {{ disk }}
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ tg_0:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+1 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+
+ downlink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+2 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
+
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-2-l3fwd-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-2-l3fwd-2.yaml
index a42ca703d..1b22a7c95 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-2-l3fwd-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-2-l3fwd-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,7 +22,7 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
@@ -51,7 +51,7 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
@@ -97,7 +97,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-2.yaml
index 68218f312..e4019d2d1 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd-2.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd-2.cfg"
prox_args:
@@ -64,7 +68,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -81,4 +85,3 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
-
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-4-l3fwd-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-4-l3fwd-4.yaml
index 4ea0b2ebb..6f95cc967 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-4-l3fwd-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-4-l3fwd-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,7 +22,7 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
@@ -52,7 +52,7 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
@@ -94,7 +94,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-4.yaml
index a0bc7ef16..0c478dc47 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd-4.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd-4.cfg"
prox_args:
@@ -64,7 +68,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -81,12 +85,12 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_1:
+ uplink_1:
cidr: '10.0.4.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_2:
+ downlink_1:
cidr: '10.0.5.0/24'
gateway_ip: 'null'
port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-l3fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-l3fwd-scale-up.yaml
new file mode 100644
index 000000000..04529f533
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-l3fwd-scale-up.yaml
@@ -0,0 +1,128 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 10 %}
+{% set disk = disk or 6 %}
+{% set timeout = timeout or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Search
+ # we kill after duration, independent of test duration, so set this high
+ interval: 5
+ timeout: {{ timeout }}
+
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l3fwd-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/ipv4.lua" : ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l3fwd-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Search
+ # we kill after duration, independent of test duration, so set this high
+ interval: 5
+ timeout: {{ timeout }}
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: {{ disk }}
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ trafficgen_0:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+1 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+
+ downlink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+2 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-scale-up.yaml
new file mode 100644
index 000000000..ead8c882f
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd-scale-up.yaml
@@ -0,0 +1,94 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set underscore = '_' if type %}
+{% set type = type or '' %} # type: {'', 'multiflow', 'pktTouch'}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 10 %}
+{% set disk = disk or 6 %}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd{{ underscore }}{{ type }}-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd{{ underscore }}{{ type }}-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: {{ disk }}
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ trafficgen_0:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+ uplink_0:
+ cidr: '10.0.2.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% for vport in range(vports-1|int) %}
+ downlink_{{ vport }}:
+ cidr: '10.0.{{ vport+3 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2-scale-out.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2-scale-out.yaml
new file mode 100644
index 000000000..88581d2da
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2-scale-out.yaml
@@ -0,0 +1,113 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set num_vnfs = num_vnfs or 1 %}
+{% set availability_zone = availability_zone or {} %}
+---
+schema: "yardstick:task:0.1"
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-scale-out.yaml
+ extra_args:
+ num_vnfs: {{ num_vnfs }}
+
+ nodes:
+{% for vnf_num in range(num_vnfs|int) %}
+ tg__{{ vnf_num }}: tg_{{ vnf_num }}.yardstick
+ vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
+{% endfor %}
+
+ options:
+{% for vnf_num in range(num_vnfs|int) %}
+ vnf__{{ vnf_num }}:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd_multiflow-2.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__{{ vnf_num }}:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd_multiflow-2.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+{% endfor %}
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: 8
+ ram: 20480
+ disk: 10
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 8
+ hw:cpu_threads: 1
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+{% for vnf_num in range(num_vnfs|int) %}
+ vnf_{{ vnf_num }}:
+ floating_ip: true
+ placement: "pgrp1"
+ {% if 'vnf_%s'|format(vnf_num) in availability_zone %}
+ availability_zone: "{{ availability_zone['vnf_%s'|format(vnf_num)] }}"
+ {% endif %}
+ network_ports:
+ mgmt:
+ - mgmt
+ uplink_{{ vnf_num }}:
+ - xe0
+ downlink_{{ vnf_num }}:
+ - xe1
+ tg_{{ vnf_num }}:
+ floating_ip: true
+ placement: "pgrp1"
+ {% if 'tg_%s'|format(vnf_num) in availability_zone %}
+ availability_zone: "{{ availability_zone['tg_%s'|format(vnf_num)] }}"
+ {% endif %}
+ network_ports:
+ mgmt:
+ - mgmt
+ uplink_{{ vnf_num }}:
+ - xe0
+ downlink_{{ vnf_num }}:
+ - xe1
+{% endfor %}
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vnf_num in range(num_vnfs|int) %}
+ uplink_{{ vnf_num }}:
+ cidr: '10.0.{{ (vnf_num * 2) + 2 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_{{ vnf_num }}:
+ cidr: '10.0.{{ (vnf_num * 2) + 3 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2.yaml
index 776ddf1d2..46226bfba 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd_multiflow-2.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd_multiflow-2.cfg"
prox_args:
@@ -64,7 +68,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-4.yaml
index 321b17373..45fb0579f 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_multiflow-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd_multiflow-4.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd_multiflow-4.cfg"
prox_args:
@@ -64,7 +68,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -81,12 +85,12 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_1:
+ uplink_1:
cidr: '10.0.4.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_2:
+ downlink_1:
cidr: '10.0.5.0/24'
gateway_ip: 'null'
port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_pktTouch-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_pktTouch-2.yaml
index db140d3ed..56d316a1a 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_pktTouch-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_pktTouch-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd_pktTouch-2.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd_pktTouch-2.cfg"
prox_args:
@@ -64,7 +68,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_pktTouch-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_pktTouch-4.yaml
index 05723cab3..9141a4a57 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_pktTouch-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l2fwd_pktTouch-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l2fwd_pktTouch-4.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l2fwd_pktTouch-4.cfg"
prox_args:
@@ -64,7 +68,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -81,12 +85,12 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_1:
+ uplink_1:
cidr: '10.0.4.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_2:
+ downlink_1:
cidr: '10.0.5.0/24'
gateway_ip: 'null'
port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-2.yaml
index d82bfb215..c6b4adf36 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,19 +22,24 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l3fwd-2.cfg"
prox_args:
"-t": ""
prox_files:
- "configs/ipv4.lua" : ""
+ "configs/ipv4-2port.lua" : ""
+ prox_generate_parameter: True
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l3fwd-2.cfg"
prox_args:
@@ -44,7 +49,7 @@ scenarios:
runner:
type: Duration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 1800
context:
name: yardstick
@@ -67,7 +72,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-4.yaml
index d4b2be03d..049ccdf77 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,19 +22,24 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_l3fwd-4.cfg"
prox_args:
"-t": ""
prox_files:
"configs/ipv4.lua" : ""
+ prox_generate_parameter: True
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_l3fwd-4.cfg"
prox_args:
@@ -44,7 +49,7 @@ scenarios:
runner:
type: Duration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 1800
context:
name: yardstick
@@ -67,7 +72,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -84,12 +89,12 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_1:
+ uplink_1:
cidr: '10.0.4.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_2:
+ downlink_1:
cidr: '10.0.5.0/24'
gateway_ip: 'null'
port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-scale-up.yaml
new file mode 100644
index 000000000..44dc11b92
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_l3fwd-scale-up.yaml
@@ -0,0 +1,97 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 10 %}
+{% set disk = disk or 6 %}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l3fwd-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/ipv4.lua" : ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l3fwd-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: {{ disk }}
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ tg_0:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+1 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+
+ downlink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+2 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
+
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-2.yaml
new file mode 100644
index 000000000..a7f6fb7b8
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-2.yaml
@@ -0,0 +1,100 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-2.yaml
+
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_lb-2.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/tuples.lua": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_lb-2.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 4300
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: 32
+ ram: 40960
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 32
+ hw:cpu_threads: 1
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ tg_0:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+ uplink_0:
+ cidr: '10.0.2.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_0:
+ cidr: '10.0.3.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ uplink_1:
+ cidr: '10.0.4.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_1:
+ cidr: '10.0.5.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-4.yaml
index 736f1c4c1..643b34e33 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -18,15 +18,17 @@ schema: "yardstick:task:0.1"
scenarios:
-
type: NSPerf
- traffic_profile: ../../traffic_profiles/prox_lb.yaml
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_lb-4.cfg"
prox_args:
@@ -35,6 +37,8 @@ scenarios:
"configs/tuples.lua": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_lb-4.cfg"
prox_args:
@@ -44,19 +48,19 @@ scenarios:
runner:
type: Duration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 4300
context:
name: yardstick
image: yardstick-samplevnfs
user: ubuntu
flavor:
- vcpus: 12
+ vcpus: 32
ram: 40960
disk: 6
extra_specs:
hw:cpu_sockets: 1
- hw:cpu_cores: 12
+ hw:cpu_cores: 32
hw:cpu_threads: 1
placement_groups:
@@ -67,7 +71,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -84,12 +88,12 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_1:
+ uplink_1:
cidr: '10.0.4.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_2:
+ downlink_1:
cidr: '10.0.5.0/24'
gateway_ip: 'null'
port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-scale-up.yaml
new file mode 100644
index 000000000..feca71d61
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lb-scale-up.yaml
@@ -0,0 +1,97 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 32 %}
+{% set disk = disk or 10 %}
+{% set duration = duration or 4000 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_lb-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/tuples.lua": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_lb-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: {{ disk }}
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ tg_0:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+1 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+
+ downlink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+2 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
+
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lw_aftr-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lw_aftr-4.yaml
index 2aa5cebe3..48d564e9a 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lw_aftr-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_lw_aftr-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,11 +22,13 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_lw_aftr-4.cfg"
prox_args:
@@ -35,6 +37,8 @@ scenarios:
"configs/ip6_tun_bind_65k.lua" : ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_lw_aftr-4.cfg"
prox_args:
@@ -67,7 +71,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-2.yaml
index e5e94ad29..31d48d51e 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-2.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-2.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_mpls_tag_untag-2.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_mpls_tag_untag-2.cfg"
prox_args:
@@ -65,7 +69,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-4.yaml
index d9cc4bc57..811f5beaf 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,17 +22,21 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_mpls_tag_untag-4.cfg"
prox_args:
"-t": ""
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_mpls_tag_untag-4.cfg"
prox_args:
@@ -65,7 +69,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -82,12 +86,12 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_1:
+ uplink_1:
cidr: '10.0.4.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_2:
+ downlink_1:
cidr: '10.0.5.0/24'
gateway_ip: 'null'
port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-scale-up.yaml
new file mode 100644
index 000000000..969277d51
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_mpls_tagging-scale-up.yaml
@@ -0,0 +1,94 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 10 %}
+{% set disk = disk or 6 %}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_mpls_tag_untag.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_mpls_tag_untag-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_mpls_tag_untag-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: {{ disk }}
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ trafficgen_0:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+1 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+
+ downlink_{{ loop.index0 }}:
+ cidr: '10.0.{{ vport+2 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_vpe-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_vpe-4.yaml
index 4e2e70bb4..fde294bca 100644
--- a/samples/vnf_samples/nsut/prox/tc_prox_heat_context_vpe-4.yaml
+++ b/samples/vnf_samples/nsut/prox/tc_prox_heat_context_vpe-4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,11 +22,13 @@ scenarios:
topology: prox-tg-topology-4.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
vnf__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/handle_vpe-4.cfg"
prox_args:
@@ -40,6 +42,8 @@ scenarios:
prox_generate_parameter: True
tg__0:
+ collectd:
+ interval: 1
prox_path: /opt/nsb_bin/prox
prox_config: "configs/gen_vpe-4.cfg"
prox_args:
@@ -49,7 +53,7 @@ scenarios:
runner:
type: Duration
# we kill after duration, independent of test duration, so set this high
- duration: 300
+ duration: 1600
context:
name: yardstick
@@ -72,7 +76,7 @@ context:
vnf_0:
floating_ip: true
placement: "pgrp1"
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
@@ -89,12 +93,12 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_1:
+ uplink_1:
cidr: '10.0.4.0/24'
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
- downlink_2:
+ downlink_1:
cidr: '10.0.5.0/24'
gateway_ip: 'null'
port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_acl-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_acl-scale-up.yaml
new file mode 100644
index 000000000..4e52bed91
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_acl-scale-up.yaml
@@ -0,0 +1,111 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ #
+ # In case where we know that all the packets generated by the generator
+ # will bw received. Then use prox_binsearch.
+ #
+ # In the case where some or all the packets generated by the generator may
+ # not be received. Please use prox_acl .. (This generates packets at
+ # a specific rate and does not change rate.
+ #
+ traffic_profile: ../../traffic_profiles/prox_acl.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_acl-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/acl_rules-2.lua": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_acl-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_buffering-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_buffering-scale-up.yaml
new file mode 100644
index 000000000..a01e98225
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_buffering-scale-up.yaml
@@ -0,0 +1,105 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_buffering-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_buffering-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ servers:
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{networks.uplink[port_num].port_num}}
+ phy_port: "{{networks.uplink[port_num].phy_port}}"
+ vpci: "{{networks.uplink[port_num].vpci}}"
+ cidr: "{{networks.uplink[port_num].cidr}}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{networks.downlink[port_num].port_num}}
+ phy_port: "{{networks.downlink[port_num].phy_port}}"
+ vpci: "{{networks.downlink[port_num].vpci}}"
+ cidr: "{{networks.downlink[port_num].cidr}}"
+ gateway_ip: "{{networks.downlink[port_num].gateway_ip}}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-2.yaml
new file mode 100644
index 000000000..08e35cfc1
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-2.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-2.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd-2.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd-2.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '172.20.2.7/24'
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ networks:
+ uplink_0:
+ port_num: 0
+ phy_port: "0000:af:00.0"
+ vpci: "0000:00:07.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ port_num: 1
+ phy_port: "0000:af:00.1"
+ vpci: "0000:00:08.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-4.yaml
new file mode 100644
index 000000000..1f24e62ae
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-4.yaml
@@ -0,0 +1,113 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-4.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd-4.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd-4.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ xe2:
+ - uplink_1
+ xe3:
+ - downlink_1
+
+ networks:
+ uplink_0:
+ port_num: 0
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ port_num: 1
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+ uplink_1:
+ port_num: 2
+ phy_port: "0000:05:00.2"
+ vpci: "0000:00:0c.0"
+ cidr: '152.16.50.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_1:
+ port_num: 3
+ phy_port: "0000:05:00.3"
+ vpci: "0000:00:0d.0"
+ cidr: '152.16.30.10/24'
+ gateway_ip: '152.16.100.20'
+
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml
new file mode 100644
index 000000000..508d7980f
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml
@@ -0,0 +1,103 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 600
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ servers:
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{networks.uplink[port_num].port_num}}
+ phy_port: "{{networks.uplink[port_num].phy_port}}"
+ vpci: "{{networks.uplink[port_num].vpci}}"
+ cidr: "{{networks.uplink[port_num].cidr}}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{networks.downlink[port_num].port_num}}
+ phy_port: "{{networks.downlink[port_num].phy_port}}"
+ vpci: "{{networks.downlink[port_num].vpci}}"
+ cidr: "{{networks.downlink[port_num].cidr}}"
+ gateway_ip: "{{networks.downlink[port_num].gateway_ip}}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml
new file mode 100644
index 000000000..25152bc38
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml
@@ -0,0 +1,102 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd_multiflow-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd_multiflow-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 600
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_pktTouch-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_pktTouch-2.yaml
new file mode 100644
index 000000000..bae1132fd
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_pktTouch-2.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-2.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd_pktTouch-2.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd_pktTouch-2.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.61/24'
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ networks:
+ uplink_0:
+ port_num: 0
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:07.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ port_num: 1
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:08.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_pktTouch-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_pktTouch-4.yaml
new file mode 100644
index 000000000..bb69cfe13
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_pktTouch-4.yaml
@@ -0,0 +1,111 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-4.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd_pktTouch-4.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd_pktTouch-4.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.61/24'
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ xe2:
+ - uplink_1
+ xe3:
+ - downlink_1
+ networks:
+ uplink_0:
+ port_num: 0
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ port_num: 1
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+ uplink_1:
+ port_num: 2
+ phy_port: "0000:05:00.2"
+ vpci: "0000:00:0c.0"
+ cidr: '152.16.50.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_1:
+ port_num: 3
+ phy_port: "0000:05:00.3"
+ vpci: "0000:00:0d.0"
+ cidr: '152.16.30.10/24'
+ gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l3fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l3fwd-scale-up.yaml
new file mode 100644
index 000000000..9b63443e2
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l3fwd-scale-up.yaml
@@ -0,0 +1,107 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l3fwd-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+{% if vports == 2 %}
+ "configs/ipv4-2port.lua" : ""
+{% else %}
+ "configs/ipv4.lua" : ""
+{% endif %}
+ prox_generate_parameter: True
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l3fwd-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 600
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_lb-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_lb-scale-up.yaml
new file mode 100644
index 000000000..bf7fd9d1e
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_lb-scale-up.yaml
@@ -0,0 +1,114 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_lb-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/tuples.lua": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_lb-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: ProxDuration
+ # sampling interval
+ interval: 1
+ # sampled : yes OR sampled: no (DEFAULT yes)
+ sampled: yes
+ # we kill after duration, independent of test duration, so set this high
+ duration: 4000
+ # Confirmation attempts
+ confirmation: 1
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 32786
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 32
+ hw:cpu_threads: 2
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_mpls_tagging-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_mpls_tagging-scale-up.yaml
new file mode 100644
index 000000000..c20fed688
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_mpls_tagging-scale-up.yaml
@@ -0,0 +1,101 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set duration = duration or 400 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_mpls_tag_untag.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_mpls_tag_untag-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_mpls_tag_untag-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_acl-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_acl-scale-up.yaml
new file mode 100644
index 000000000..5b267931d
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_acl-scale-up.yaml
@@ -0,0 +1,101 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set duration = duration or 300 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ #
+ # In case where we know that all the packets generated by the generator
+ # will bw received. Then use prox_binsearch.
+ #
+ # In the case where some or all the packets generated by the generator may
+ # not be received. Please use prox_acl .. (This generates packets at
+ # a specific rate and does not change rate.
+ #
+ traffic_profile: ../../traffic_profiles/prox_acl.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_acl-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/acl_rules-2.lua": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_acl-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_buffering-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_buffering-scale-up.yaml
new file mode 100644
index 000000000..211405aa6
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_buffering-scale-up.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_buffering-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_buffering-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{networks.uplink[port_num].port_num}}
+ phy_port: "{{networks.uplink[port_num].phy_port}}"
+ vpci: "{{networks.uplink[port_num].vpci}}"
+ cidr: "{{networks.uplink[port_num].cidr}}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{networks.downlink[port_num].port_num}}
+ phy_port: "{{networks.downlink[port_num].phy_port}}"
+ vpci: "{{networks.downlink[port_num].vpci}}"
+ cidr: "{{networks.downlink[port_num].cidr}}"
+ gateway_ip: "{{networks.downlink[port_num].gateway_ip}}"
+{% endfor %}
+
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-2.yaml
new file mode 100644
index 000000000..68d6a5448
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-2.yaml
@@ -0,0 +1,83 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-2.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd-2.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd-2.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.61/24'
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ networks:
+ uplink_0:
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-4.yaml
new file mode 100644
index 000000000..7246fe362
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-4.yaml
@@ -0,0 +1,98 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-4.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd-4.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd-4.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.61/24'
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ xe2:
+ - uplink_1
+ xe3:
+ - downlink_1
+
+ networks:
+ uplink_0:
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+ uplink_1:
+ phy_port: "0000:05:00.2"
+ vpci: "0000:00:0c.0"
+ cidr: '152.16.50.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_1:
+ phy_port: "0000:05:00.3"
+ vpci: "0000:00:0d.0"
+ cidr: '152.16.30.10/24'
+ gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml
new file mode 100644
index 000000000..0fb86c4e6
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml
@@ -0,0 +1,92 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 600
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ user: "root"
+ password: ""
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ phy_port: "{{networks.uplink[port_num].phy_port}}"
+ vpci: "{{networks.uplink[port_num].vpci}}"
+ cidr: "{{networks.uplink[port_num].cidr}}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ phy_port: "{{networks.downlink[port_num].phy_port}}"
+ vpci: "{{networks.downlink[port_num].vpci}}"
+ cidr: "{{networks.downlink[port_num].cidr}}"
+ gateway_ip: "{{networks.downlink[port_num].gateway_ip}}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml
new file mode 100644
index 000000000..ee7646721
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml
@@ -0,0 +1,92 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd_multiflow-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd_multiflow-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 600
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_pktTouch-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_pktTouch-2.yaml
new file mode 100644
index 000000000..e444e5b86
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_pktTouch-2.yaml
@@ -0,0 +1,83 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-2.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd_pktTouch-2.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd_pktTouch-2.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.61/24'
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ networks:
+ uplink_0:
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_pktTouch-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_pktTouch-4.yaml
new file mode 100644
index 000000000..47b9b68ec
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_pktTouch-4.yaml
@@ -0,0 +1,98 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-4.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd_pktTouch-4.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd_pktTouch-4.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 300
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.61/24'
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ xe2:
+ - uplink_1
+ xe3:
+ - downlink_1
+
+ networks:
+ uplink_0:
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+ uplink_1:
+ phy_port: "0000:05:00.2"
+ vpci: "0000:00:0c.0"
+ cidr: '152.16.50.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_1:
+ phy_port: "0000:05:00.3"
+ vpci: "0000:00:0d.0"
+ cidr: '152.16.30.10/24'
+ gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-2.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-2.yaml
new file mode 100644
index 000000000..33eb50659
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-2.yaml
@@ -0,0 +1,86 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-2.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l3fwd-2.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/ipv4-2port.lua" : ""
+ prox_generate_parameter: True
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l3fwd-2.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 1800
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ networks:
+ uplink_0:
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-4.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-4.yaml
new file mode 100644
index 000000000..688fcb862
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-4.yaml
@@ -0,0 +1,102 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ topology: prox-tg-topology-4.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l3fwd-4.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/ipv4.lua" : ""
+ prox_generate_parameter: True
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l3fwd-4.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 1800
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+ xe0:
+ - uplink_0
+ xe1:
+ - downlink_0
+ xe2:
+ - uplink_1
+ xe3:
+ - downlink_1
+
+ networks:
+ uplink_0:
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_0:
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+ uplink_1:
+ phy_port: "0000:05:00.2"
+ vpci: "0000:00:0c.0"
+ cidr: '152.16.50.10/24'
+ gateway_ip: '152.16.100.20'
+ downlink_1:
+ phy_port: "0000:05:00.3"
+ vpci: "0000:00:0d.0"
+ cidr: '152.16.30.10/24'
+ gateway_ip: '152.16.100.20'
+
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-scale-up.yaml
new file mode 100644
index 000000000..062bd2cec
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l3fwd-scale-up.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l3fwd-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+{% if vports == 2 %}
+ "configs/ipv4-2port.lua" : ""
+{% else %}
+ "configs/ipv4.lua" : ""
+{% endif %}
+ prox_generate_parameter: True
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l3fwd-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 1800
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_lb-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_lb-scale-up.yaml
new file mode 100644
index 000000000..982943c5c
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_lb-scale-up.yaml
@@ -0,0 +1,103 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_lb-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+ prox_files:
+ "configs/tuples.lua": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_lb-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: ProxDuration
+ # sampling interval
+ interval: 1
+ # sampled : yes OR sampled: no (DEFAULT yes)
+ sampled: yes
+ # we kill after duration, independent of test duration, so set this high
+ duration: 4000
+ # Confirmation attempts
+ confirmation: 1
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 32768
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 32
+ hw:cpu_threads: 2
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
+
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_mpls_tagging-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_mpls_tagging-scale-up.yaml
new file mode 100644
index 000000000..364299dd6
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_mpls_tagging-scale-up.yaml
@@ -0,0 +1,91 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set duration = duration or 400 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_mpls_tag_untag.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_mpls_tag_untag-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_mpls_tag_untag-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: {{ duration }}
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/router/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/router/tc_baremetal_rfc2544_ipv4_1flow_trex.yaml
index 7b4db0e64..d0048360e 100644
--- a/samples/vnf_samples/nsut/router/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/router/tc_baremetal_rfc2544_ipv4_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: router-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- '152.16.100.26'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_256B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports.yaml
index c2bc0b7d2..79db4c0ca 100644
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_256B.yaml
+++ b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: router-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.baremetal
+ vnf__0: vnf_0.yardstick
# Required for enabling NFVi collection
cpt__0: compute_0.compute_nodes
options:
framesize:
- uplink: {256B: 100}
- downlink: {256B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- '10.0.2.26-10.0.2.105'
@@ -80,7 +80,7 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
networks:
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1024B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1024B.yaml
deleted file mode 100644
index 5b268d09e..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1024B.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {1024B: 100}
- downlink: {1024B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c2p
- flavor:
- vcpus: 5
- ram: 20480
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 1
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_mem.0: 20480
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1280B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1280B.yaml
deleted file mode 100644
index 20305df7c..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1280B.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {1280B: 100}
- downlink: {1280B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c2p
- flavor:
- vcpus: 5
- ram: 20480
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 1
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_mem.0: 20480
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_128B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_128B.yaml
deleted file mode 100644
index 73459c340..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_128B.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {128B: 100}
- downlink: {128B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c2p
- flavor:
- vcpus: 5
- ram: 20480
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 1
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_mem.0: 20480
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1518B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1518B.yaml
deleted file mode 100644
index fb7f48a2f..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_1518B.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {1518B: 100}
- downlink: {1518B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 2
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c2p
- flavor:
- vcpus: 5
- ram: 20480
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 1
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_mem.0: 20480
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_512B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_512B.yaml
deleted file mode 100644
index bb17eb4b2..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_512B.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {512B: 100}
- downlink: {512B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c2p
- flavor:
- vcpus: 5
- ram: 20480
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 1
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_mem.0: 20480
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_64B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_64B.yaml
deleted file mode 100644
index 0726e1063..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_5cores_2ports_64B.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c2p
- flavor:
- vcpus: 5
- ram: 20480
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 1
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_mem.0: 20480
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1024B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports.yaml
index 6efc69c40..90b43f42a 100644
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1024B.yaml
+++ b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: router-tg-topology-4port.yaml
nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.baremetal
+ vnf__0: vnf_0.yardstick
# Required for enabling NFVi collection
cpt__0: compute_0.compute_nodes
options:
framesize:
- uplink: {1024B: 100}
- downlink: {1024B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- '10.0.2.26-10.0.2.105'
@@ -84,7 +84,7 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
networks:
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1280B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1280B.yaml
deleted file mode 100644
index be08b5b39..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1280B.yaml
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {1280B: 100}
- downlink: {1280B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- - '10.0.4.26-10.0.4.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- - '10.0.5.26-10.0.5.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod_4p.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c4p
- flavor:
- vcpus: 9
- ram: 8192
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 2
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_cpus.1: 5,6,7,8
- hw:numa_mem.0: 4096
- hw:numa_mem.1: 4096
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
- xe2:
- cidr: '10.0.4.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant4
- port_security_enabled: False
- enable_dhcp: 'false'
- xe3:
- cidr: '10.0.5.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant5
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_128B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_128B.yaml
deleted file mode 100644
index afc4a6839..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_128B.yaml
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {128B: 100}
- downlink: {128B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- - '10.0.4.26-10.0.4.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- - '10.0.5.26-10.0.5.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod_4p.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c4p
- flavor:
- vcpus: 9
- ram: 8192
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 2
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_cpus.1: 5,6,7,8
- hw:numa_mem.0: 4096
- hw:numa_mem.1: 4096
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
- xe2:
- cidr: '10.0.4.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant4
- port_security_enabled: False
- enable_dhcp: 'false'
- xe3:
- cidr: '10.0.5.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant5
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1518B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1518B.yaml
deleted file mode 100644
index c0bbc8cdc..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1518B.yaml
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {1518B: 100}
- downlink: {1518B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- - '10.0.4.26-10.0.4.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- - '10.0.5.26-10.0.5.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod_4p.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c4p
- flavor:
- vcpus: 9
- ram: 8192
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 2
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_cpus.1: 5,6,7,8
- hw:numa_mem.0: 4096
- hw:numa_mem.1: 4096
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
- xe2:
- cidr: '10.0.4.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant4
- port_security_enabled: False
- enable_dhcp: 'false'
- xe3:
- cidr: '10.0.5.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant5
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_256B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_256B.yaml
deleted file mode 100644
index c78f0c2c1..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_256B.yaml
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {256B: 100}
- downlink: {256B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- - '10.0.4.26-10.0.4.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- - '10.0.5.26-10.0.5.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod_4p.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c4p
- flavor:
- vcpus: 9
- ram: 8192
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 2
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_cpus.1: 5,6,7,8
- hw:numa_mem.0: 4096
- hw:numa_mem.1: 4096
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
- xe2:
- cidr: '10.0.4.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant4
- port_security_enabled: False
- enable_dhcp: 'false'
- xe3:
- cidr: '10.0.5.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant5
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_512B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_512B.yaml
deleted file mode 100644
index 9d223299a..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_512B.yaml
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {512B: 100}
- downlink: {512B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- - '10.0.4.26-10.0.4.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- - '10.0.5.26-10.0.5.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod_4p.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c4p
- flavor:
- vcpus: 9
- ram: 8192
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 2
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_cpus.1: 5,6,7,8
- hw:numa_mem.0: 4096
- hw:numa_mem.1: 4096
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
- xe2:
- cidr: '10.0.4.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant4
- port_security_enabled: False
- enable_dhcp: 'false'
- xe3:
- cidr: '10.0.5.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant5
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_64B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_64B.yaml
deleted file mode 100644
index 45a8c2c5a..000000000
--- a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_64B.yaml
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: compute_0.compute_nodes
- options:
- framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
- flow:
- src_ip:
- - '10.0.2.26-10.0.2.105'
- - '10.0.4.26-10.0.4.105'
- dst_ip:
- - '10.0.3.26-10.0.3.105'
- - '10.0.5.26-10.0.5.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: compute_nodes
- type: Node
- file: /etc/yardstick/nodes/compute.yaml
-
- - name: baremetal
- type: Node
- file: /etc/yardstick/nodes/pod_4p.yaml
-
- - name: yardstick
- image: vrouter_affinity_2c4p
- flavor:
- vcpus: 9
- ram: 8192
- disk: 10
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- hw:mem_page_size: large
- hw:cpu_policy: dedicated
- hw:cpu_thread_policy: prefer
- hw:numa_nodes: 2
- hw:numa_mempolicy: preffered
- hw:numa_cpus.0: 0,1,2,3,4
- hw:numa_cpus.1: 5,6,7,8
- hw:numa_mem.0: 4096
- hw:numa_mem.1: 4096
- user: "root"
- password: "password"
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
- enable_dhcp: 'false'
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant3
- port_security_enabled: False
- enable_dhcp: 'false'
- xe2:
- cidr: '10.0.4.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant4
- port_security_enabled: False
- enable_dhcp: 'false'
- xe3:
- cidr: '10.0.5.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant5
- port_security_enabled: False
- enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1024B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1024B_trex.yaml
deleted file mode 100644
index b3e4157f5..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1024B_trex.yaml
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {1024B: 100}
- downlink: {1024B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- # override pmd_threads; use specific cpus
- pmd_cpu_mask: "0x78"
- lcore_mask: "0x4"
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_5cores.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='11'/>
- <vcpupin vcpu='1' cpuset='12'/>
- <vcpupin vcpu='2' cpuset='13'/>
- <vcpupin vcpu='3' cpuset='14'/>
- <vcpupin vcpu='4' cpuset='15'/>
- </cputune>"
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/30'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1280B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1280B_trex.yaml
deleted file mode 100644
index 6d1353297..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1280B_trex.yaml
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {1280B: 100}
- downlink: {1280B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- # override pmd_threads; Use specific cpus
- pmd_cpu_mask: "0x78"
- lcore_mask: "0x4"
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_5cores.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='11'/>
- <vcpupin vcpu='1' cpuset='12'/>
- <vcpupin vcpu='2' cpuset='13'/>
- <vcpupin vcpu='3' cpuset='14'/>
- <vcpupin vcpu='4' cpuset='15'/>
- </cputune>"
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_128B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_128B_trex.yaml
deleted file mode 100644
index 99e9b8d0e..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_128B_trex.yaml
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {128B: 100}
- downlink: {128B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- # override pmd_threads; use specific CPUs
- pmd_cpu_mask: "0x78"
- lcore_mask: "0x4"
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_5cores.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='11'/>
- <vcpupin vcpu='1' cpuset='12'/>
- <vcpupin vcpu='2' cpuset='13'/>
- <vcpupin vcpu='3' cpuset='14'/>
- <vcpupin vcpu='4' cpuset='15'/>
- </cputune>"
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1518B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1518B_trex.yaml
deleted file mode 100644
index 1a1be3732..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_1518B_trex.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {1518B: 100}
- downlink: {1518B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 2
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- pmd_cpu_mask: "0x78"
- lcore_mask: "0x4"
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_5cores.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='11'/>
- <vcpupin vcpu='1' cpuset='12'/>
- <vcpupin vcpu='2' cpuset='13'/>
- <vcpupin vcpu='3' cpuset='14'/>
- <vcpupin vcpu='4' cpuset='15'/>
- </cputune>"
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_256B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_256B_trex.yaml
deleted file mode 100644
index 6c30b621e..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_256B_trex.yaml
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {256B: 100}
- downlink: {256B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- # override pmd_threads to use specific cpus
- pmd_cpu_mask: "0x78"
- lcore_mask: "0x4"
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_5cores.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='11'/>
- <vcpupin vcpu='1' cpuset='12'/>
- <vcpupin vcpu='2' cpuset='13'/>
- <vcpupin vcpu='3' cpuset='14'/>
- <vcpupin vcpu='4' cpuset='15'/>
- </cputune>"
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_512B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_512B_trex.yaml
deleted file mode 100644
index ddb59cbe6..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_512B_trex.yaml
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {512B: 100}
- downlink: {512B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- # override pmd_threads to use specific cpus
- pmd_cpu_mask: "0x78"
- lcore_mask: "0x4"
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_5cores.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 5
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='11'/>
- <vcpupin vcpu='1' cpuset='12'/>
- <vcpupin vcpu='2' cpuset='13'/>
- <vcpupin vcpu='3' cpuset='14'/>
- <vcpupin vcpu='4' cpuset='15'/>
- </cputune>"
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_64B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_trex.yaml
index c141f4e57..d534eee1a 100644
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_5cores_2ports_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: router-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
# Required for enabling NFVi collection
cpt__0: ovs_dpdk.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- '152.16.100.26-152.16.100.105'
@@ -92,7 +92,7 @@ contexts:
user: "root"
password: "password"
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
ip: '10.166.31.252'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1024B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1024B_trex.yaml
deleted file mode 100644
index bfa5ba4f0..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1024B_trex.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {1024B: 100}
- downlink: {1024B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/30'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1280B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1280B_trex.yaml
deleted file mode 100644
index ea5fb16a9..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1280B_trex.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {1280B: 100}
- downlink: {1280B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_128B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_128B_trex.yaml
deleted file mode 100644
index fea64f5e7..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_128B_trex.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {128B: 100}
- downlink: {128B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1518B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1518B_trex.yaml
deleted file mode 100644
index ac38751e9..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_1518B_trex.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {1518B: 100}
- downlink: {1518B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_512B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_512B_trex.yaml
deleted file mode 100644
index 6417d9342..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_512B_trex.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {512B: 100}
- downlink: {512B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_64B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_64B_trex.yaml
deleted file mode 100644
index ae46b865f..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_64B_trex.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 7
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 4
- ram:
- socket_0: 2048
- socket_1: 2048
- queues: 4
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:1a:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:18:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_256B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_trex.yaml
index 145f69d89..431f19008 100644
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_256B_trex.yaml
+++ b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_7cores_2ports_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: router-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
# Required for enabling NFVi collection
cpt__0: ovs_dpdk.yardstick
options:
framesize:
- uplink: {256B: 100}
- downlink: {256B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- '152.16.100.26-152.16.100.105'
@@ -82,7 +82,7 @@ contexts:
user: "root"
password: "password"
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
ip: '10.166.31.252'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1280B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1280B_trex.yaml
deleted file mode 100644
index 0467436ba..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1280B_trex.yaml
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput-2.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {1280B: 100}
- downlink: {1280B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 8
- # override pmd_threads to use NUMA 1 vcpus
- pmd_cpu_mask: "0x3FC00000"
- lcore_mask: "0x200000"
- ram:
- socket_0: 0
- socket_1: 4096
- queues: 2
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
-
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- #gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- #gateway_ip: '152.16.40.20'
- uplink_1:
- port_num: 2
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- port_num: 3
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_128B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_128B_trex.yaml
deleted file mode 100644
index 30119c76d..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_128B_trex.yaml
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput-2.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {128B: 100}
- downlink: {128B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 8
- # override pmd_threads to use NUMA 1 vcpus
- pmd_cpu_mask: "0x3FC00000"
- lcore_mask: "0x200000"
- ram:
- socket_0: 0
- socket_1: 4096
- queues: 2
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
-
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- port_num: 2
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- port_num: 3
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1518B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1518B_trex.yaml
deleted file mode 100644
index ac52c29c5..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1518B_trex.yaml
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput-2.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {1518B: 100}
- downlink: {1518B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 5
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 8
- # override pmd_threads to use NUMA 1 vcpus
- # 8 cores (CPU 22-29) in NUMA 1 of a 2 socket 20 cpus per socket
- pmd_cpu_mask: "0x3FC00000"
- lcore_mask: "0x200000"
- ram:
- socket_0: 0
- socket_1: 4096
- queues: 2
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
-
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- port_num: 2
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- port_num: 3
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_256B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_256B_trex.yaml
deleted file mode 100644
index 2767851a6..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_256B_trex.yaml
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput-2.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {256B: 100}
- downlink: {256B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 8
- # override pmd_threads to use NUMA 1 vcpus
- pmd_cpu_mask: "0x3FC00000"
- lcore_mask: "0x200000"
- ram:
- socket_0: 0
- socket_1: 4096
- queues: 2
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
-
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- port_num: 2
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- port_num: 3
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_512B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_512B_trex.yaml
deleted file mode 100644
index 006718fa2..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_512B_trex.yaml
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput-2.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {512B: 100}
- downlink: {512B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 8
- # override pmd_threads to use NUMA 1 vcpus
- pmd_cpu_mask: "0x3FC00000"
- lcore_mask: "0x200000"
- ram:
- socket_0: 0
- socket_1: 4096
- queues: 2
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
-
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- port_num: 2
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- port_num: 3
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_64B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_64B_trex.yaml
deleted file mode 100644
index 601d30891..000000000
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_64B_trex.yaml
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput-2.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: ovs_dpdk.yardstick
- options:
- framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
-
- - name: yardstick
- type: StandaloneOvsDpdk
- file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
- vm_deploy: True
- ovs_properties:
- version:
- ovs: 2.7.0
- dpdk: 16.11.1
- pmd_threads: 8
- # override pmd_threads to use NUMA 1 vcpus
- pmd_cpu_mask: "0x3FC00000"
- lcore_mask: "0x200000"
- ram:
- socket_0: 0
- socket_1: 4096
- queues: 2
- vpath: "/usr/local"
-
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- port_num: 0
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- port_num: 1
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- port_num: 2
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- port_num: 3
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
diff --git a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1024B_trex.yaml b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_trex.yaml
index d947e254f..491ecd3ff 100644
--- a/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_1024B_trex.yaml
+++ b/samples/vnf_samples/nsut/router/tc_ovs_rfc2544_ipv4_128Kflows_9cores_4ports_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-2.yaml
topology: router-tg-topology-4port.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
# Required for enabling NFVi collection
cpt__0: ovs_dpdk.yardstick
options:
framesize:
- uplink: {1024B: 100}
- downlink: {1024B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- '152.16.100.26-152.16.100.105'
@@ -97,11 +97,10 @@ contexts:
<vcpupin vcpu='8' cpuset='39'/>
<emulatorpin cpuset='31-39'/>
</cputune>"
-
user: "root"
password: "password"
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
ip: '10.166.31.252'
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1024B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1024B_trex.yaml
deleted file mode 100644
index 18e25e25d..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1024B_trex.yaml
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {1024B: 100}
- downlink: {1024B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_13cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 13
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='27'/>
- <vcpupin vcpu='1' cpuset='28'/>
- <vcpupin vcpu='2' cpuset='29'/>
- <vcpupin vcpu='3' cpuset='30'/>
- <vcpupin vcpu='4' cpuset='31'/>
- <vcpupin vcpu='5' cpuset='32'/>
- <vcpupin vcpu='6' cpuset='33'/>
- <vcpupin vcpu='7' cpuset='34'/>
- <vcpupin vcpu='8' cpuset='35'/>
- <vcpupin vcpu='9' cpuset='36'/>
- <vcpupin vcpu='10' cpuset='37'/>
- <vcpupin vcpu='11' cpuset='38'/>
- <vcpupin vcpu='12' cpuset='39'/>
- <emulatorpin cpuset='27-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1280B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1280B_trex.yaml
deleted file mode 100644
index bfaf74b5c..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1280B_trex.yaml
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {1280B: 100}
- downlink: {1280B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_13cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 13
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='27'/>
- <vcpupin vcpu='1' cpuset='28'/>
- <vcpupin vcpu='2' cpuset='29'/>
- <vcpupin vcpu='3' cpuset='30'/>
- <vcpupin vcpu='4' cpuset='31'/>
- <vcpupin vcpu='5' cpuset='32'/>
- <vcpupin vcpu='6' cpuset='33'/>
- <vcpupin vcpu='7' cpuset='34'/>
- <vcpupin vcpu='8' cpuset='35'/>
- <vcpupin vcpu='9' cpuset='36'/>
- <vcpupin vcpu='10' cpuset='37'/>
- <vcpupin vcpu='11' cpuset='38'/>
- <vcpupin vcpu='12' cpuset='39'/>
- <emulatorpin cpuset='27-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_128B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_128B_trex.yaml
deleted file mode 100644
index 529c8a5ef..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_128B_trex.yaml
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {128B: 100}
- downlink: {128B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_13cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 13
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='27'/>
- <vcpupin vcpu='1' cpuset='28'/>
- <vcpupin vcpu='2' cpuset='29'/>
- <vcpupin vcpu='3' cpuset='30'/>
- <vcpupin vcpu='4' cpuset='31'/>
- <vcpupin vcpu='5' cpuset='32'/>
- <vcpupin vcpu='6' cpuset='33'/>
- <vcpupin vcpu='7' cpuset='34'/>
- <vcpupin vcpu='8' cpuset='35'/>
- <vcpupin vcpu='9' cpuset='36'/>
- <vcpupin vcpu='10' cpuset='37'/>
- <vcpupin vcpu='11' cpuset='38'/>
- <vcpupin vcpu='12' cpuset='39'/>
- <emulatorpin cpuset='27-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_256B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_256B_trex.yaml
deleted file mode 100644
index 9e1e8ebd3..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_256B_trex.yaml
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {256B: 100}
- downlink: {256B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_13cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 13
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='27'/>
- <vcpupin vcpu='1' cpuset='28'/>
- <vcpupin vcpu='2' cpuset='29'/>
- <vcpupin vcpu='3' cpuset='30'/>
- <vcpupin vcpu='4' cpuset='31'/>
- <vcpupin vcpu='5' cpuset='32'/>
- <vcpupin vcpu='6' cpuset='33'/>
- <vcpupin vcpu='7' cpuset='34'/>
- <vcpupin vcpu='8' cpuset='35'/>
- <vcpupin vcpu='9' cpuset='36'/>
- <vcpupin vcpu='10' cpuset='37'/>
- <vcpupin vcpu='11' cpuset='38'/>
- <vcpupin vcpu='12' cpuset='39'/>
- <emulatorpin cpuset='27-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_512B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_512B_trex.yaml
deleted file mode 100644
index 4b3fbe4b3..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_512B_trex.yaml
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {512B: 100}
- downlink: {512B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_13cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 13
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='27'/>
- <vcpupin vcpu='1' cpuset='28'/>
- <vcpupin vcpu='2' cpuset='29'/>
- <vcpupin vcpu='3' cpuset='30'/>
- <vcpupin vcpu='4' cpuset='31'/>
- <vcpupin vcpu='5' cpuset='32'/>
- <vcpupin vcpu='6' cpuset='33'/>
- <vcpupin vcpu='7' cpuset='34'/>
- <vcpupin vcpu='8' cpuset='35'/>
- <vcpupin vcpu='9' cpuset='36'/>
- <vcpupin vcpu='10' cpuset='37'/>
- <vcpupin vcpu='11' cpuset='38'/>
- <vcpupin vcpu='12' cpuset='39'/>
- <emulatorpin cpuset='27-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_64B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_64B_trex.yaml
deleted file mode 100644
index d23ab4e69..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_64B_trex.yaml
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_13cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 13
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='27'/>
- <vcpupin vcpu='1' cpuset='28'/>
- <vcpupin vcpu='2' cpuset='29'/>
- <vcpupin vcpu='3' cpuset='30'/>
- <vcpupin vcpu='4' cpuset='31'/>
- <vcpupin vcpu='5' cpuset='32'/>
- <vcpupin vcpu='6' cpuset='33'/>
- <vcpupin vcpu='7' cpuset='34'/>
- <vcpupin vcpu='8' cpuset='35'/>
- <vcpupin vcpu='9' cpuset='36'/>
- <vcpupin vcpu='10' cpuset='37'/>
- <vcpupin vcpu='11' cpuset='38'/>
- <vcpupin vcpu='12' cpuset='39'/>
- <emulatorpin cpuset='27-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1518B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_trex.yaml
index 0d2cdfbc0..b1fdeecf9 100644
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_1518B_trex.yaml
+++ b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_4ports_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: router-tg-topology-4port.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
# Required for enabling NFVi collection
cpt__0: sriov.yardstick
options:
framesize:
- uplink: {1518B: 100}
- downlink: {1518B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- '152.16.100.26-152.16.100.105'
@@ -88,7 +88,7 @@ contexts:
user: root
password: password
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
ip: '10.166.31.252'
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_6ports_1518B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_6ports_1518B_trex.yaml
index 0353b3875..b13c1d3d4 100644
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_6ports_1518B_trex.yaml
+++ b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_13cores_6ports_1518B_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-3.yaml
topology: router-tg-topology-6port.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
# Required for enabling NFVi collection
cpt__0: sriov.yardstick
options:
framesize:
- uplink: {1518B: 100}
- downlink: {1518B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- '152.16.100.26-152.16.100.105'
@@ -90,7 +90,7 @@ contexts:
user: root
password: password
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
ip: '10.166.31.252'
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1024B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1024B_trex.yaml
deleted file mode 100644
index 4fa22975f..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1024B_trex.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {1024B: 100}
- downlink: {1024B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 4
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 6
- hw:cpu_threads: 2
- user: "root"
- password: "password"
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '192.168.18.185'
- cidr: '192.168.18.185/30'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- phy_port: "0000:07:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:07:00.1"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1280B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1280B_trex.yaml
deleted file mode 100644
index a7acbafdd..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1280B_trex.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {1280B: 100}
- downlink: {1280B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 4
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '192.168.18.185'
- cidr: '192.168.18.185/30'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- phy_port: "0000:07:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:07:00.1"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_128B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_128B_trex.yaml
deleted file mode 100644
index 121aaec4b..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_128B_trex.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {128B: 100}
- downlink: {128B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 4
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '192.168.18.185'
- cidr: '192.168.18.185/30'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- phy_port: "0000:07:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:07:00.1"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1518B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1518B_trex.yaml
deleted file mode 100644
index 6e856c80e..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_1518B_trex.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {1518B: 100}
- downlink: {1518B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 4
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '192.168.18.185'
- cidr: '192.168.18.185/30'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- phy_port: "0000:07:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:07:00.1"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_256B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_256B_trex.yaml
deleted file mode 100644
index 54a26bc49..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_256B_trex.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {256B: 100}
- downlink: {256B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 4
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '192.168.18.185'
- cidr: '192.168.18.185/30'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- phy_port: "0000:07:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:07:00.1"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_512B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_512B_trex.yaml
deleted file mode 100644
index 1ed39c236..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_512B_trex.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {512B: 100}
- downlink: {512B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 4
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
-
- - name: yardstick
- type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
-
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 7
- hw:cpu_threads: 1
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '192.168.18.185'
- cidr: '192.168.18.185/30'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- networks:
- uplink_0:
- phy_port: "0000:07:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:07:00.1"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_64B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_trex.yaml
index c128df37b..c54aa3fcc 100644
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_7cores_2ports_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,13 +19,13 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: router-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
cpt__0: sriov.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- '152.16.100.26-152.16.100.105'
@@ -70,7 +70,7 @@ contexts:
user: root
password: password
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
ip: '192.168.18.185'
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1280B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1280B_trex.yaml
deleted file mode 100644
index cf73e1690..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1280B_trex.yaml
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {1280B: 100}
- downlink: {1280B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_128B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_128B_trex.yaml
deleted file mode 100644
index 493acb20b..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_128B_trex.yaml
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {128B: 100}
- downlink: {128B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1518B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1518B_trex.yaml
deleted file mode 100644
index 6a88e3b8c..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1518B_trex.yaml
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {1518B: 100}
- downlink: {1518B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_256B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_256B_trex.yaml
deleted file mode 100644
index 79aba6043..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_256B_trex.yaml
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {256B: 100}
- downlink: {256B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_512B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_512B_trex.yaml
deleted file mode 100644
index f83c78872..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_512B_trex.yaml
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {512B: 100}
- downlink: {512B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_64B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_64B_trex.yaml
deleted file mode 100644
index 2c4397233..000000000
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_64B_trex.yaml
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: router-tg-topology-4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
-# Required for enabling NFVi collection
- cpt__0: sriov.yardstick
- options:
- framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
- flow:
- src_ip:
- - '152.16.100.26-152.16.100.105'
- - '152.16.101.26-152.16.101.105'
- dst_ip:
- - '152.16.40.26-152.16.40.105'
- - '152.16.41.26-152.16.41.105'
- src_port:
- - '1234-1238'
- dst_port:
- - '2001-2004'
- count: 128000
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.1
- tg__0:
- queues_per_port: 8
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- - name: yardstick
- type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex_4ports.yaml
- - type: StandaloneSriov
- file: /etc/yardstick/nodes/standalone/host_sriov.yaml
- name: yardstick
- vm_deploy: True
- flavor:
- images: "/var/lib/libvirt/images/ubuntu_9cores.qcow2"
- ram: 4096
- hw_socket: 1
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 9
- hw:cpu_threads: 1
- cputune: "<cputune>
- <vcpupin vcpu='0' cpuset='31'/>
- <vcpupin vcpu='1' cpuset='32'/>
- <vcpupin vcpu='2' cpuset='33'/>
- <vcpupin vcpu='3' cpuset='34'/>
- <vcpupin vcpu='4' cpuset='35'/>
- <vcpupin vcpu='5' cpuset='36'/>
- <vcpupin vcpu='6' cpuset='37'/>
- <vcpupin vcpu='7' cpuset='38'/>
- <vcpupin vcpu='8' cpuset='39'/>
- <emulatorpin cpuset='31-39'/>
- </cputune>"
- user: root
- password: password
- servers:
- vnf:
- network_ports:
- mgmt:
- ip: '10.166.31.252'
- cidr: '10.166.31.252/28'
- xe0:
- - uplink_0
- xe1:
- - downlink_0
- xe2:
- - uplink_1
- xe3:
- - downlink_1
- networks:
- uplink_0:
- phy_port: "0000:88:00.0"
- vpci: "0000:00:07.0"
- cidr: '152.16.100.19/24'
- gateway_ip: '152.16.100.20'
- downlink_0:
- phy_port: "0000:d8:00.0"
- vpci: "0000:00:08.0"
- cidr: '152.16.40.19/24'
- gateway_ip: '152.16.40.20'
- uplink_1:
- phy_port: "0000:81:00.0"
- vpci: "0000:00:09.0"
- cidr: '152.16.101.19/24'
- gateway_ip: '152.16.101.20'
- downlink_1:
- phy_port: "0000:86:00.0"
- vpci: "0000:00:0a.0"
- cidr: '152.16.41.19/24'
- gateway_ip: '152.16.41.20'
-
diff --git a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1024B_trex.yaml b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_trex.yaml
index 7be7c991c..83f460368 100644
--- a/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_1024B_trex.yaml
+++ b/samples/vnf_samples/nsut/router/tc_sriov_rfc2544_ipv4_128Kflows_9cores_4ports_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: router-tg-topology-4port.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
# Required for enabling NFVi collection
cpt__0: sriov.yardstick
options:
framesize:
- uplink: {1024B: 100}
- downlink: {1024B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- '152.16.100.26-152.16.100.105'
@@ -84,7 +84,7 @@ contexts:
user: root
password: password
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
ip: '10.166.31.252'
diff --git a/samples/vnf_samples/nsut/udp_replay/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/udp_replay/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml
index 313581ba2..16985277c 100644
--- a/samples/vnf_samples/nsut/udp_replay/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/udp_replay/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
topology: udp_replay-vnf-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {64B: 100}
diff --git a/samples/vnf_samples/nsut/udp_replay/tc_heat_rfc2544_ipv4_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/udp_replay/tc_heat_rfc2544_ipv4_1flow_64B_trex.yaml
index 90e04f973..7047e4991 100644
--- a/samples/vnf_samples/nsut/udp_replay/tc_heat_rfc2544_ipv4_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/udp_replay/tc_heat_rfc2544_ipv4_1flow_64B_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: udp_replay-vnf-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
packetsize: 64
traffic_type: 4
@@ -55,10 +55,10 @@ context:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
- trafficgen_1:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
diff --git a/samples/vnf_samples/nsut/udp_replay/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml b/samples/vnf_samples/nsut/udp_replay/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml
index bea9c8261..4abaf60a0 100644
--- a/samples/vnf_samples/nsut/udp_replay/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/udp_replay/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: udp_replay-vnf-topology.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {64B: 100}
@@ -41,7 +41,7 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
- type: StandaloneOvsDpdk
name: yardstick
file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
@@ -58,8 +58,8 @@ contexts:
vpath: "/usr/local"
flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
extra_specs:
hw:cpu_sockets: 1
hw:cpu_cores: 7
@@ -67,7 +67,7 @@ contexts:
user: ""
password: ""
servers:
- vnf__0:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.7/24'
diff --git a/samples/vnf_samples/nsut/udp_replay/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml b/samples/vnf_samples/nsut/udp_replay/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml
index 0867d6b51..359a86c78 100644
--- a/samples/vnf_samples/nsut/udp_replay/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/udp_replay/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: udp_replay-vnf-topology.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {64B: 100}
@@ -41,14 +41,14 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
- type: StandaloneSriov
file: /etc/yardstick/nodes/standalone/host_sriov.yaml
name: yardstick
vm_deploy: True
flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
extra_specs:
hw:cpu_sockets: 1
hw:cpu_cores: 7
@@ -56,7 +56,7 @@ contexts:
user: ""
password: ""
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.61/24'
diff --git a/samples/vnf_samples/nsut/vepc/landslide_tg_topology.yaml b/samples/vnf_samples/nsut/vepc/landslide_tg_topology.yaml
new file mode 100644
index 000000000..ccf496bf9
--- /dev/null
+++ b/samples/vnf_samples/nsut/vepc/landslide_tg_topology.yaml
@@ -0,0 +1,50 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: landslide-tg-topology
+ name: landslide-tg-topology
+ short-name: landslide-tg-topology
+ description: landslide-tg-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_landslide_tpl.yaml #TG type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/tg_landslide_tpl.yaml #VNF type: Emulated vEPC
+
+ vld:
+ - id: uplink_0
+ name: tg__0 to vnf__0 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_0
+ name: vnf__0 to tg__0 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide.yaml b/samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide.yaml
new file mode 100644
index 000000000..5c05bf356
--- /dev/null
+++ b/samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide.yaml
@@ -0,0 +1,58 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+description: >
+ UE default bearer creation test case. Measure successful default bearer
+ creation rate, total number of active bearer per server.
+
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/landslide/landslide_dmf_udp.yaml"
+ session_profile: "../../traffic_profiles/landslide/landslide_session_default_bearer.yaml"
+ topology: "vepc_vnf_topology_landslide.yaml"
+ nodes:
+ tg__0: trafficgen_0.traffic_gen
+ vnf__0: vnf.vnf_epc
+ options:
+ traffic_duration: 70
+ dmf:
+ transactionRate: 5
+ packetSize: 512
+ test_cases: # test case parameters to apply on session profile
+ - type: SGW_Node # test type from test session profile
+ AssociatedPhys: 'eth6' # interface(s) in Node test type to loop traffic back from NetHost
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ FireballEn: 'false'
+ Sessions: '20000'
+ - type: SGW_Nodal # test type from test session profile
+ StartRate: '1000.0'
+ DisconnectRate: '1000.0'
+ FireballEn: 'false'
+ Sessions: '20000'
+
+ runner:
+ type: Duration
+ duration: 200
+ interval: 5
+
+contexts:
+- name: traffic_gen
+ type: Node
+ file: /etc/yardstick/nodes/pod_landslide.yaml
+- name: vnf_epc
+ type: Node
+ file: /etc/yardstick/nodes/pod_vepc_sut.yaml
diff --git a/samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide_multi_dmf.yaml b/samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide_multi_dmf.yaml
new file mode 100644
index 000000000..ba242416b
--- /dev/null
+++ b/samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide_multi_dmf.yaml
@@ -0,0 +1,57 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+description: >
+ UE default bearer creation test case. Measure successful default bearer
+ creation rate, total number of active bearer per server.
+
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/landslide/landslide_dmf_udp_tcp.yaml"
+ session_profile: "../../traffic_profiles/landslide/landslide_session_default_bearer_multi_dmf.yaml"
+ topology: "vepc_vnf_topology_landslide.yaml"
+ nodes:
+ tg__0: trafficgen_0.traffic_gen
+ vnf__0: vnf.vnf_epc
+ options:
+ dmf:
+ - transactionRate: 5
+ packetSize: 512
+ - transactionRate: 5
+ packetSize: 1518
+ test_cases: # test case parameters to apply on session profile
+ - type: SGW_Node # test type from test session profile
+ AssociatedPhys: 'eth6' # interface(s) in Node test type to loop traffic back from NetHost
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ Sessions: '20000'
+ - type: SGW_Nodal # test type from test session profile
+ StartRate: '1000.0'
+ DisconnectRate: '1000.0'
+ Sessions: '20000'
+
+ runner:
+ type: Duration
+ duration: 300
+ interval: 5
+
+contexts:
+- name: traffic_gen
+ type: Node
+ file: /etc/yardstick/nodes/pod_landslide.yaml
+- name: vnf_epc
+ type: Node
+ file: /etc/yardstick/nodes/pod_vepc_sut.yaml
diff --git a/samples/vnf_samples/nsut/vepc/tc_epc_network_dedicated_bearer_create_landslide.yaml b/samples/vnf_samples/nsut/vepc/tc_epc_network_dedicated_bearer_create_landslide.yaml
new file mode 100644
index 000000000..e2dc1c798
--- /dev/null
+++ b/samples/vnf_samples/nsut/vepc/tc_epc_network_dedicated_bearer_create_landslide.yaml
@@ -0,0 +1,164 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+description: >
+ NW triggered dedicated bearer creation test case. Measure successful dedicated bearers
+ creation rate, total number of active bearer per server.
+
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/landslide/landslide_dmf_udp.yaml"
+ session_profile: "../../traffic_profiles/landslide/landslide_session_network_dedicated_bearer.yaml"
+ topology: "vepc_vnf_topology_landslide.yaml"
+ nodes:
+ tg__0: trafficgen_0.traffic_gen
+ vnf__0: vnf.vnf_epc
+ options:
+ dmf:
+ transactionRate: 5
+ packetSize: 512
+ burstCount: 1 # Applies only to Basic UDP DMF, DataProtocol==udp
+ test_cases: # test case parameters to apply on session profile
+ - type: SGW_Node # test type from test session profile
+ AssociatedPhys: 'eth6' # interface(s) in Node test type to loop traffic back from NetHost
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ Sessions: 50000
+ UeInitBearerEn: 'false'
+ DedicatedsPerDefaultBearer: 1 # number of dedicated bearers per default
+ DefaultBearers: 1 # number of default bearers
+ FireballEn: 'false' # Fireball settings
+
+ # APN settings (number of APNs and APN's names)
+ Gtp2ApnNumSpecifiedApns_0: '1'
+ Gtp2ApnSpecified_0:
+ array: [dummy.an]
+ class: Array
+
+ - type: PGW_Node # test type from test session profile
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ Sessions: 50000
+ DedicatedsPerDefaultBearer: 1 # number of dedicated bearers per default
+ DefaultBearers: 1 # number of default bearers
+ FireballEn: 'false' # Fireball settings
+
+ # APN settings (number of APNs and APN's names)
+ Gtp2ApnNumSpecifiedApns_0: '1'
+ Gtp2ApnSpecified_0:
+ class: Array
+ array: [dummy.an]
+
+ - type: SGW_Nodal # test type from test session profile
+ StartRate: '1000.0'
+ DisconnectRate: '1000.0'
+ Sessions: 50000
+ UeInitBearerEn: 'false'
+ DedicatedsPerDefaultBearer: 1 # number of dedicated bearers per default
+ DefaultBearers: 1 # number of default bearers
+ PgwNodeEn: 'false' # Emulate PGW Node
+ FireballEn: 'false' # Fireball settings
+
+ # APN settings (number of APNs and APN's names)
+ Gtp2ApnNumSpecifiedApns_0: '1'
+ Gtp2ApnSpecified_0:
+ class: Array
+ array: [dummy.an]
+
+ # Creation delay individually for each dedicated bearer
+ # Array items specifies timeout between default and dedicated bearers creation
+ # Array items corresponds to specific dedicated bearer
+ ConnectBearerDelay:
+ class: Array
+ array: ['1']
+
+ - type: PCRF_Node # test type from test session profile
+ Sessions: 50000
+ DisconnectRate: '1000'
+
+ # Starting IP address
+ StartingMsIpAddr: 1.0.0.1
+
+ # APN settings (APN's Names)
+ TyCcSrvApns:
+ class: Array
+ array: [dummy.an]
+
+ # Timer column (in seconds)
+ # Value specifies timeout after which dedicated bearer will be created
+ # None-zero timeout corresponds to dedicated bearer, zero timeout - to default bearer
+ TyCcV4SrvRuleInterval_1: '10' # APN1 dedicated bearer
+ TyCcV4SrvRuleInterval_2: '0' # APN1 default bearer
+
+ # QoS Class ID
+ # Name Pattern: TyCcV4SrvCrQci_<RULE_SET_NUM>_<CHAR_RULE_NUM>_<RULE_DEF_NUM>
+ TyCcV4SrvCrQci_1_1_1: '1' # QCI of dedicated bearer
+
+ # Dedicated bearer Uplink/Downlink Bandwidth settings
+ # Name Pattern: TyCcV4SrvPrMaxUL_<RULE_SET_NUM>_<CHAR_RULE_NUM>_<RULE_DEF_NUM>
+ # Name Pattern: TyCcV4SrvPrGuaranteedUplink_<RULE_SET_NUM>_<CHAR_RULE_NUM>_<RULE_DEF_NUM>
+ TyCcV4SrvPrMaxUL_1_1_1: '300' # Uplink Max Bandwidth
+ TyCcV4SrvPrMaxDL_1_1_1: '300' # Downlink Max Bandwidth
+ TyCcV4SrvPrGuaranteedUplink_1_1_1: '300' # Uplink Guaranteed Bandwidth
+ TyCcV4SrvPrGuaranteedDownlink_1_1_1: '300' # Downlink Guaranteed Bandwidth
+
+ # Dedicated bearer ARP Rules
+ # Name Pattern: TyCcV4SrvPrArpEn_<RULE_SET_NUM>_<CHAR_RULE_NUM>_<RULE_DEF_NUM>
+ # Name Pattern: TyCcV4SrvPrArpValue_<RULE_SET_NUM>_<CHAR_RULE_NUM>_<RULE_DEF_NUM>
+ TyCcV4SrvPrArpEn_1_1_1: 'true' # Enable ARP Rules
+ TyCcV4SrvPrArpValue_1_1_1: '1' # ARP Value
+ TyCcV4SrvPrArpPreemptCapEn_1_1_1: 'true' # Enable Pre-emption Capability
+ TyCcV4SrvPrArpPreemptVulnEn_1_1_1: 'true' # Enable Pre-emption Vulnerability
+
+ # Packet Filter Description
+ # Name Pattern:
+ # TyCcV4SrvCrFilter_<RULE_SET_NUM>_<CHAR_RULE_NUM>_<RULE_DEF_NUM>_<FILTER_NUM>
+ # To explicitly specify protocol number with decimal number, use following naming pattern:
+ # permit in <PROTOCOL_NUMBER> from
+ TyCcV4SrvCrFilter_1_1_1_1: permit in 17 from
+
+ # Packet Filter Destination IP
+ # Name Pattern:
+ # TyCcV4SrvCrFilterDestIp_<RULE_SET_NUM>_<CHAR_RULE_NUM>_<RULE_DEF_NUM>_<FILTER_NUM>
+ # Parameter's value specifies filter's destination IP address and remote port range
+ TyCcV4SrvCrFilterDestIp_1_1_1_1: 0.0.0.0 0-65535
+
+ # Packet Filter IP Ext
+ # Name Pattern:
+ # TyCcV4SrvCrUserIpExt_<RULE_SET_NUM>_<CHAR_RULE_NUM>_<RULE_DEF_NUM>_<FILTER_NUM>
+ # Parameter's value specifies filter's local port range
+ TyCcV4SrvCrUserIpExt_1_1_1_1: 0-65535
+
+ # Packet Filter Flow Direction
+ # Name Pattern:
+ # TyCcV4SrvCrFilterDirection_<RULE_SET_NUM>_<CHAR_RULE_NUM>_<RULE_DEF_NUM>_<FILTER_NUM>
+ TyCcV4SrvCrFilterDirection_1_1_1_1: '3' # Bi-Directional
+
+ # Diameter Transmission Protocol
+ TyCcSrvTcpProtocol: '1' # 0 - TCP, 1 - SCTP
+
+ runner:
+ type: Duration
+ duration: 600
+ interval: 5
+
+contexts:
+- name: traffic_gen
+ type: Node
+ file: /etc/yardstick/nodes/pod_landslide_network_dedicated.yaml
+- name: vnf_epc
+ type: Node
+ file: /etc/yardstick/nodes/pod_vepc_sut.yaml
diff --git a/samples/vnf_samples/nsut/vepc/tc_epc_network_service_request_landslide.yaml b/samples/vnf_samples/nsut/vepc/tc_epc_network_service_request_landslide.yaml
new file mode 100644
index 000000000..7b298b7ba
--- /dev/null
+++ b/samples/vnf_samples/nsut/vepc/tc_epc_network_service_request_landslide.yaml
@@ -0,0 +1,67 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+description: >
+ Downlink Data Notification from Network to UE that are in Idle state.
+
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/landslide/landslide_dmf_udp.yaml"
+ session_profile: "../../traffic_profiles/landslide/landslide_session_network_service_request.yaml"
+ topology: "vepc_vnf_topology_landslide.yaml"
+ nodes:
+ tg__0: trafficgen_0.traffic_gen
+ vnf__0: vnf.vnf_epc
+ options:
+ dmf:
+ transactionRate: 0.1
+ packetSize: 512
+ burstCount: 1 # Applies only to Basic UDP DMF, DataProtocol==udp
+ test_cases: # test case parameters to apply on session profile
+ - type: SGW_Node # test type from test session profile
+ AssociatedPhys: 'eth6'
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ Sessions: '20000'
+ - type: SGW_Nodal # test type from test session profile
+ StartRate: '1000.0'
+ DisconnectRate: '1000.0'
+ Sessions: '20000'
+
+ # Configurations:
+ # 1. Specify continuous periodical events: UE goes to Idle state -> DL Data Notification
+ # E.g. Set Gtp2IdleEntryTime = 5 - UE goes to idle state after 5 seconds
+ # Set transactionRate = 0.1 - Send traffic periodically every 10 seconds
+ # 2. Set traffic run start delay
+ # E.g. Set Gtp2IdleEntryTime = 5 - UE goes to idle state after 5 seconds
+ # Set TrafficStartDelay with value greater that Gtp2IdleEntryTime
+ Gtp2IdleEntryTime: '5' # Idle Entry Time (s)
+
+ # Downlink Data Notification settings
+ TrafficStartDelay: 1000 # Data Start Delay (ms)
+
+ runner:
+ type: Duration
+ duration: 300
+ interval: 5
+
+contexts:
+- name: traffic_gen
+ type: Node
+ file: /etc/yardstick/nodes/pod_landslide.yaml
+- name: vnf_epc
+ type: Node
+ file: /etc/yardstick/nodes/pod_vepc_sut.yaml
diff --git a/samples/vnf_samples/nsut/vepc/tc_epc_saegw_tput_relocation_landslide.yaml b/samples/vnf_samples/nsut/vepc/tc_epc_saegw_tput_relocation_landslide.yaml
new file mode 100644
index 000000000..7ba15207a
--- /dev/null
+++ b/samples/vnf_samples/nsut/vepc/tc_epc_saegw_tput_relocation_landslide.yaml
@@ -0,0 +1,62 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+description: >
+ SAEGW throughput with relocation test case
+
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/landslide/landslide_dmf_udp.yaml"
+ session_profile: "../../traffic_profiles/landslide/landslide_session_saegw_relocation.yaml"
+ topology: "vepc_vnf_topology_landslide.yaml"
+ nodes:
+ tg__0: trafficgen_0.traffic_gen
+ vnf__0: vnf.vnf_epc
+ options:
+ dmf:
+ transactionRate: 5
+ packetSize: 512
+ test_cases: # test case parameters to apply on session profile
+ - type: SGW_Node # test type from test session profile
+ AssociatedPhys: 'eth6' # interface(s) in Node test type to loop traffic back from NetHost
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ Sessions: '20000'
+ - type: SGW_Nodal # test type from test session profile
+ StartRate: '1000.0'
+ DisconnectRate: '1000.0'
+ Sessions: '20000'
+ # Relocation settings
+ HandoffType: '0' # 0 - X2, 1 - S1, 2 - TAU/RAU
+ MobilityTimeMs: '10000' # Mobility Delay Time (ms)
+ StartType: When All Sessions Started # When All Sessions Started or When Session Started
+ SessionRetries: 'true' # Enable/disable Session Start Retries
+ MobilityRate: '120.0' # Mobility Rate
+ MobilityMode: Single Handoff # Handoff Mode: Single Handoff or Continuous Handoff
+ MobilityIntervalShape: Fixed # Mobility Rate Interval Distribution
+
+ runner:
+ type: Duration
+ duration: 300
+ interval: 5
+
+contexts:
+- name: traffic_gen
+ type: Node
+ file: /etc/yardstick/nodes/pod_landslide.yaml
+- name: vnf_epc
+ type: Node
+ file: /etc/yardstick/nodes/pod_vepc_sut.yaml
diff --git a/samples/vnf_samples/nsut/vepc/tc_epc_ue_dedicated_bearer_create_landslide.yaml b/samples/vnf_samples/nsut/vepc/tc_epc_ue_dedicated_bearer_create_landslide.yaml
new file mode 100644
index 000000000..c9b215a64
--- /dev/null
+++ b/samples/vnf_samples/nsut/vepc/tc_epc_ue_dedicated_bearer_create_landslide.yaml
@@ -0,0 +1,74 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+description: >
+ UE triggered dedicated bearer creation test case. Measure successful dedicated bearers
+ creation rate, total number of active bearer per server.
+
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/landslide/landslide_dmf_udp.yaml"
+ session_profile: "../../traffic_profiles/landslide/landslide_session_ue_dedicated_bearer.yaml"
+ topology: "vepc_vnf_topology_landslide.yaml"
+ nodes:
+ tg__0: trafficgen_0.traffic_gen
+ vnf__0: vnf.vnf_epc
+ options:
+ dmf:
+ transactionRate: 5
+ packetSize: 512
+ burstCount: 1 # Applies only to Basic UDP DMF, DataProtocol==udp
+ test_cases: # test case parameters to apply on session profile
+ - type: SGW_Node # test type from test session profile
+ AssociatedPhys: 'eth6' # interface(s) in Node test type to loop traffic back from NetHost
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ Sessions: '20000'
+ UeInitBearerEn: 'true'
+ DedicatedsPerDefaultBearer: 1 # number of dedicated bearers per default
+ DefaultBearers: 1 # number of default bearers
+
+ # Fireball settings
+ FireballEn: 'false'
+
+ - type: SGW_Nodal # test type from test session profile
+ StartRate: '1000.0'
+ DisconnectRate: '1000.0'
+ Sessions: '20000'
+ UeInitBearerEn: 'true'
+ DedicatedsPerDefaultBearer: '1' # number of dedicated bearers per default
+ DefaultBearers: '1' # number of default bearers
+
+ # Connection delay individually for each dedicated bearer
+ ConnectBearerDelay:
+ class: Array
+ array: ['5']
+
+ # Fireball settings
+ FireballEn: 'false'
+
+ runner:
+ type: Duration
+ duration: 300
+ interval: 5
+
+contexts:
+- name: traffic_gen
+ type: Node
+ file: /etc/yardstick/nodes/pod_landslide.yaml
+- name: vnf_epc
+ type: Node
+ file: /etc/yardstick/nodes/pod_vepc_sut.yaml
diff --git a/samples/vnf_samples/nsut/vepc/tc_epc_ue_service_request_landslide.yaml b/samples/vnf_samples/nsut/vepc/tc_epc_ue_service_request_landslide.yaml
new file mode 100644
index 000000000..72efa1943
--- /dev/null
+++ b/samples/vnf_samples/nsut/vepc/tc_epc_ue_service_request_landslide.yaml
@@ -0,0 +1,228 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+description: >
+ UE triggered bearer modification request with new QoS and TFT settings
+
+scenarios:
+- type: NSPerf
+ traffic_profile: "../../traffic_profiles/landslide/landslide_dmf_udp.yaml"
+ session_profile: "../../traffic_profiles/landslide/landslide_session_ue_service_request.yaml"
+ topology: "vepc_vnf_topology_landslide.yaml"
+ nodes:
+ tg__0: trafficgen_0.traffic_gen
+ vnf__0: vnf.vnf_epc
+ options:
+ dmf:
+ transactionRate: 5
+ packetSize: 512
+ burstCount: 1 # Applies only to Basic UDP DMF, DataProtocol==udp
+ test_cases: # test case parameters to apply on session profile
+ - type: SGW_Node # test type from test session profile
+ AssociatedPhys: 'eth6'
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ Sessions: '20000'
+ UeInitBearerEn: 'true'
+ DedicatedsPerDefaultBearer: 1 # number of dedicated bearers per default
+ DefaultBearers: 1 # number of default bearers
+ FireballEn: 'false' # Fireball settings
+
+ # Number of TFTs
+ # Parameter name pattern: TrafficNumTftsForContext<DEDICATED_BEARER_INDEX>
+ TrafficNumTftsForContext0: '1'
+
+ # TFT Settings
+ # Parameter name(s) depends on number of dedicated bearers and number of TFTs per bearer.
+ # Parameter naming pattern: "TrafficTftForContext<DEDICATED_BEARER_INDEX>_<TFT_INDEX>"
+ # E.g.:
+ # "TrafficTftForContext0_0" - dedicated bearer 1, 1st TFT
+ # "TrafficTftForContext0_1" - dedicated bearer 1, 2nd TFT
+ # "TrafficTftForContext1_0" - dedicated bearer 2, 1st TFT
+ TrafficTftForContext0_0:
+ array:
+ - '255' # Packet Evaluation Precedence
+ - '6' # Protocol Number
+ - ''
+ - '' # Starting Remote Port
+ - '' # Ending Remote Port
+ - '' # Remote Address
+ - '' # Starting Local Port
+ - '' # Ending Local Port
+ - '' # Type of Service
+ - '' # Mask
+ - '' # Security Parameter Index
+ - '' # Flow Label
+ - ''
+ - '' # Include In Bearer Modification Request
+ - '3' # Direction: 0 - Pre Rel 7, 1 - Downlink, 2 - Uplink, 3 - Bi-Directional
+ - ''
+ - ''
+ - ''
+ - ''
+ class: Array
+
+ - type: SGW_Nodal # test type from test session profile
+ StartRate: '1000.0'
+ DisconnectRate: '1000.0'
+ Sessions: '20000'
+ UeInitBearerEn: 'true'
+ DedicatedsPerDefaultBearer: '1' # number of dedicated bearers per default
+ DefaultBearers: '1' # number of default bearers
+ FireballEn: 'false' # Fireball settings
+
+ # Creation delay individually for each dedicated bearer
+ # Array items specifies timeout between default and dedicated bearers creation
+ # Array items corresponds to specific dedicated bearer:
+ # E.g. 1st item - 1st dedicated bearer, 2nd item - 2nd dedicated bearer, etc.
+ ConnectBearerDelay:
+ class: Array
+ array: ['1']
+
+ # Data start delay (ms)
+ TrafficStartDelay: 1000
+
+ # Number of TFTs
+ # Parameter name pattern: TrafficNumTftsForContext<DEDICATED_BEARER_INDEX>
+ TrafficNumTftsForContext0: '1'
+
+ # TFT settings
+ # Parameter name(s) depends on number of dedicated bearers and number of TFTs per bearer.
+ # Parameter naming pattern: "TrafficTftForContext<DEDICATED_BEARER_INDEX>_<TFT_INDEX>"
+ # E.g.:
+ # "TrafficTftForContext0_0" - dedicated bearer 1, 1st TFT
+ # "TrafficTftForContext0_1" - dedicated bearer 1, 2nd TFT
+ # "TrafficTftForContext1_0" - dedicated bearer 2, 1st TFT
+ TrafficTftForContext0_0:
+ array:
+ - '255' # Packet Evaluation Precedence
+ - '6' # Protocol Number
+ - ''
+ - '' # Starting Remote Port
+ - '' # Ending Remote Port
+ - '' # Remote Address
+ - '' # Starting Local Port
+ - '' # Ending Local Port
+ - '' # Type of Service
+ - '' # Mask
+ - '' # Security Parameter Index
+ - '' # Flow Label
+ - ''
+ - '' # Include In Bearer Modification Request
+ - '3' # Direction: 0 - Pre Rel 7, 1 - Downlink, 2 - Uplink, 3 - Bi-Directional
+ - ''
+ - ''
+ - ''
+ - ''
+ class: Array
+
+ # Bearers modification settings
+ # Dedicated bearers modification settings and TFT filters
+ Gtp2BearerModEn: 'true' # Enable/Disable bearer modification
+ Gtp2BearerModInit: 'UE' # Bearer modification initiator
+ Gtp2BearerDelayTime: '5' # Delay time (s)
+ Gtp2IncModQos_2: 'true' # Include QoS IE
+ Gtp2BearerContinuousMod: 'false' # Continuous modifications
+ # Operation code in TFT settings:
+ # Parameter name(s) depends on number of dedicated bearers
+ # Parameter naming pattern: "TrafficOpCodeForContext<DEDICATED_BEARER_INDEX>_2"
+ # E.g.:
+ # TrafficOpCodeForContext0_2 - operation code for 1st dedicated bearer's TFT
+ # TrafficOpCodeForContext1_2 - operation code for 2st dedicated bearer's TFT
+ # 1 - create new TFT
+ # 2 - delete existing TFT
+ # 3 - add packet filters to existing TFT
+ # 4 - replace packet filters in existing TFT
+ # 5 - delete packet filters from existing TFT
+ TrafficOpCodeForContext0_2: '1'
+
+ # Number of TFTs
+ # Parameter name pattern: TrafficNumTftsForContext<DEDICATED_BEARER_INDEX>_2
+ TrafficNumTftsForContext0_2: '1'
+
+ # TFT settings
+ # Parameter name(s) depends on number of dedicated bearers and number of TFTs per bearer.
+ # Parameter naming pattern: "TrafficTftForContext<DEDICATED_BEARER_INDEX>_<TFT_INDEX>_2"
+ # E.g.:
+ # "TrafficTftForContext0_0" - dedicated bearer 1, 1st TFT
+ # "TrafficTftForContext0_1" - dedicated bearer 1, 2nd TFT
+ # "TrafficTftForContext1_0" - dedicated bearer 2, 1st TFT
+ TrafficTftForContext0_0_2:
+ class: Array
+ array:
+ - '255' # Packet Evaluation Precedence
+ - '17' # Protocol Number
+ - ''
+ - '2003' # Starting Remote Port
+ - '2003' # Ending Remote Port
+ - '' # Remote Address
+ - '2002' # Starting Local Port
+ - '2002' # Ending Local Port
+ - '' # Type of Service
+ - '' # Mask
+ - '' # Security Parameter Index
+ - '' # Flow Label
+ - ''
+ - 'true' # Include In Bearer Modification Request
+ - '3' # Direction: 0 - Pre Rel 7, 1 - Downlink, 2 - Uplink, 3 - Bi-Directional
+ - ''
+ - ''
+ - ''
+ - ''
+
+ # Modified bearers QoS settings
+ Gtp2QosDetail_2: Individual # bearers QoS details (Summary, Individual, Per Bearer)
+
+ # Parameter name(s) depends on number of dedicated bearers
+ # Parameter(s) naming pattern: "Gtp2QosClassId_2_<BEARER_INDEX>"
+ # E.g.:
+ # Gtp2QosClassId_2_1 - default bearer class identifier
+ # Gtp2QosClassId_2_2 - 1st dedicated bearer class identifier
+ # Gtp2QosClassId_2_3 - 2st dedicated bearer class identifier
+ # Modified default bearer settings
+ Gtp2QosClassId_2_1: '1' # Bearer class identifier
+ Gtp2QosArpValue_2_1: '1' # Bearer ARP priority level
+ Gtp2QosArpPreemptCapEn_2_1: 'false' # Pre-emption capability
+ Gtp2QosArpPreemptVulnEn_2_1: 'false' # Pre-emption vulnerability
+ Gtp2QosMaxUplink_2_1: '1000' # Uplink maximum bit rates (kb/s)
+ Gtp2QosMaxDownlink_2_1: '1000' # Downlink maximum bit rates (kb/s)
+ Gtp2QosGuarUplink_2_1: '1000' # Uplink guaranteed bit rates (kb/s)
+ Gtp2QosGuarDownlink_2_1: '1000' # Downlink guaranteed bit rates (kb/s)
+
+ # Modified dedicated bearer settings
+ Gtp2QosClassId_2_2: '5' # Bearer class identifier
+ Gtp2QosArpValue_2_2: '1' # Bearer ARP priority level
+ Gtp2QosArpPreemptCapEn_2_2: 'false' # Pre-emption capability
+ Gtp2QosArpPreemptVulnEn_2_2: 'false' # Pre-emption vulnerability
+
+ # Uncomment this settings in case Gtp2QosClassId_2_2 is equal to 1
+ # Gtp2QosMaxUplink_2_2: '1000' # Uplink maximum bit rates (kb/s)
+ # Gtp2QosMaxDownlink_2_2: '1000' # Downlink maximum bit rates (kb/s)
+ # Gtp2QosGuarUplink_2_2: '1000' # Uplink guaranteed bit rates (kb/s)
+ # Gtp2QosGuarDownlink_2_2: '1000' # Downlink guaranteed bit rates (kb/s)
+
+ runner:
+ type: Duration
+ duration: 300
+ interval: 5
+
+contexts:
+- name: traffic_gen
+ type: Node
+ file: /etc/yardstick/nodes/pod_landslide.yaml
+- name: vnf_epc
+ type: Node
+ file: /etc/yardstick/nodes/pod_vepc_sut.yaml
diff --git a/samples/vnf_samples/nsut/vepc/vepc_vnf_topology_landslide.yaml b/samples/vnf_samples/nsut/vepc/vepc_vnf_topology_landslide.yaml
new file mode 100644
index 000000000..f54cdaf81
--- /dev/null
+++ b/samples/vnf_samples/nsut/vepc/vepc_vnf_topology_landslide.yaml
@@ -0,0 +1,50 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: vEPC
+ name: vEPC
+ short-name: vEPC
+ description: vEPC VNF with Spirent landslide TG
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_landslide_tpl.yaml #TG type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/vepc_vnf.yaml #VNF type
+
+ vld:
+ - id: uplink_0
+ name: tg__0 to vnf__0 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+
+ - id: downlink_0
+ name: vnf__0 to tg__0 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/vfw/acl_1rule.yaml b/samples/vnf_samples/nsut/vfw/acl_1rule.yaml
index 6753645ba..f7569b32c 100644
--- a/samples/vnf_samples/nsut/vfw/acl_1rule.yaml
+++ b/samples/vnf_samples/nsut/vfw/acl_1rule.yaml
@@ -11,37 +11,29 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
-access-list1:
- acl:
- access-list-entries:
- - ace:
- ace-oper-data:
- match-counter: 0
- actions: drop,count
- matches:
- destination-ipv4-network: 152.16.0.0/24
- destination-port-range:
- lower-port: 0
- upper-port: 65535
- source-ipv4-network: 0.0.0.0/0
- source-port-range:
- lower-port: 0
- upper-port: 65535
- rule-name: rule1588
- - ace:
- ace-oper-data:
- match-counter: 0
- actions: drop,count
- matches:
- destination-ipv4-network: 0.0.0.0/0
- destination-port-range:
- lower-port: 0
- upper-port: 65535
- source-ipv4-network: 152.16.0.0/24
- source-port-range:
- lower-port: 0
- upper-port: 65535
- rule-name: rule1589
- acl-name: sample-ipv4-acl
- acl-type: ipv4-acl
+---
+access-list-entries:
+ -
+ actions: [drop,count]
+ matches:
+ destination-ipv4-network: 152.16.0.0/24
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 0.0.0.0/0
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1588
+ -
+ actions: [drop,count]
+ matches:
+ destination-ipv4-network: 0.0.0.0/0
+ destination-port-range:
+ lower-port: 0
+ upper-port: 65535
+ source-ipv4-network: 152.16.0.0/24
+ source-port-range:
+ lower-port: 0
+ upper-port: 65535
+ rule-name: rule1589
diff --git a/samples/vnf_samples/nsut/vfw/standalone-args.yaml b/samples/vnf_samples/nsut/vfw/standalone-args.yaml
new file mode 100644
index 000000000..6f9cde7d9
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/standalone-args.yaml
@@ -0,0 +1,45 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+networks:
+ uplink:
+ -
+ port_num: 0
+ phy_port: "0000:05:00.0"
+ vpci: "0000:00:0a.0"
+ cidr: '152.16.100.10/24'
+ gateway_ip: '152.16.100.20'
+ -
+ port_num: 2
+ phy_port: "0000:05:00.2"
+ vpci: "0000:00:0c.0"
+ cidr: '152.16.50.10/24'
+ gateway_ip: '152.16.100.20'
+
+ downlink:
+ -
+ port_num: 1
+ phy_port: "0000:05:00.1"
+ vpci: "0000:00:0b.0"
+ cidr: '152.16.40.10/24'
+ gateway_ip: '152.16.100.20'
+
+ -
+ port_num: 3
+ phy_port: "0000:05:00.3"
+ vpci: "0000:00:0d.0"
+ cidr: '152.16.30.10/24'
+ gateway_ip: '152.16.100.20'
+
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
index 1c807ca53..f608af55e 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,8 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set page_size = page_size or "1b" %}
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +20,16 @@ scenarios:
traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml"
topology: vfw_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
+ simulated_users:
+ uplink: [65000]
+ page_object:
+ uplink: ["/{{ page_size }}.html"] #supports /1b /4k /8k /16k /32k /64k /128k....
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency_4port.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency_4port.yaml
index a62e447bf..80d4ea121 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency_4port.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_http_ixload_1b_Requests-65000_Concurrency_4port.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml"
topology: vfw_vnf_topology_ixload_4port.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml
deleted file mode 100644
index caafe9161..000000000
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-{% for worker_thread in [1, 2 ,3 , 4, 5, 6] %}
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: vfw-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- options:
- framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}}
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-{% endfor %}
-context:
- type: Node
- name: yardstick
- nfvi_type: baremetal
- file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia.yaml
index 6c9cb9d03..38f12b73d 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
topology: vfw_vnf_topology_ixia.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -40,7 +40,6 @@ scenarios:
type: Iteration
iterations: 10
interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
context:
type: Node
name: yardstick
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia_4port.yaml
index 56afdf426..fb446c1cc 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia_4port.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,8 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-# vfw_ipv4_profile_1flows.ixncfg
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -20,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
topology: vfw_vnf_topology_ixia_4port.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}]
dst_ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}]
@@ -41,7 +40,6 @@ scenarios:
type: Iteration
iterations: 10
interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_muttiport.ixncfg
context:
type: Node
name: yardstick
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia_scale_up.yaml
index 0aea82247..108836817 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_scale_up.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_ixia_scale_up.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -20,12 +20,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
topology: vfw_vnf_topology_ixia.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -41,7 +41,6 @@ scenarios:
type: Iteration
iterations: 10
interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
{% endfor %}
context:
type: Node
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex.yaml
index a3082eeea..58ea5b62f 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: vfw-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {128B: 100}
- downlink: {128B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_4port.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_4port.yaml
index 30f44d082..5f66f8ba1 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_4port.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_4port.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: vfw-tg-topology-4port.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}]
dst_ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}]
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic.yaml
index 0c4119cf6..058493c5e 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_corelated_traffic.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_correlated_traffic.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,13 +19,13 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: vfw-tg-topology-3node.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ tg__1: trafficgen_1.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__1': 'xe0'}]
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml
new file mode 100644
index 000000000..a826f31c7
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml
@@ -0,0 +1,59 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.005 %}
+{% set tolerance_high = tolerance_high or 0.01 %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml
+ topology: vfw-tg-topology-ixia-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip: [
+{% for vport in range(0,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ dst_ip: [
+{% for vport in range(1,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ resolution: 0.01
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+ downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex.yaml
new file mode 100644
index 000000000..856a4aa7e
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex.yaml
@@ -0,0 +1,48 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set framesize = framesize or "{64B: 100}" %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: vfw-tg-topology.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip: [{'tg__0': 'xe0'}]
+ dst_ip: [{'tg__0': 'xe1'}]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ nfvi_enable: True
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: 5
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_trex.yaml
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml
new file mode 100644
index 000000000..95ad7700b
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml
@@ -0,0 +1,62 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set framesize = framesize or "{64B: 100}" %}
+{% set worker_threads = worker_threads or [1] %}
+{% set duration = duration or 30 %}
+{% set tolerance_low = tolerance_low or 0.0001 %}
+{% set tolerance_high = tolerance_high or 0.0001 %}
+{% set vports = vports or 2 %}
+---
+schema: yardstick:task:0.1
+scenarios:
+{% for worker_thread in worker_threads %}
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vfw-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ duration: {{ duration }}
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip:
+{% for vport in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ dst_ip:
+{% for vport in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}}
+ nfvi_enable: True
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: 5
+{% endfor %}
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_ixia.yaml
index d71b985b8..736d672cb 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
topology: vfw_vnf_topology_ixia.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -41,7 +41,6 @@ scenarios:
type: Iteration
iterations: 28
interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
context:
type: Node
name: yardstick
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_trex.yaml
index d51a1e983..aedc43249 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_with_latency_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: vfw-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_ixia_template.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_ixia_template.yaml
index f442c71d0..0fe065865 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_ixia_template.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_ixia_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
topology: vfw-tg-topology-ixia-multi-port-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {{ flow.pkt_size.uplink }}
@@ -41,7 +41,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
- ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg
runner:
type: Iteration
iterations: 10
@@ -49,7 +48,7 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml
+ file: /etc/yardstick/nodes/baremetal_ixia_{{num_vnfs}}.yaml
- name: yardstick
type: Node
file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml
index 6604e6451..54ae429f1 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
topology: vfw-tg-topology-multi-port-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {{ flow.pkt_size.uplink }}
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_template.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_template.yaml
index d00fe1dcf..d1aa782c1 100644
--- a/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_template.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,9 +19,9 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: vfw-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- tg__1: tg__1.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {{ flow.pkt_size.uplink }}
@@ -42,8 +42,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
- ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{ num_vnfs }}_port.ixncfg
-
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_scale_out_template.yaml
new file mode 100644
index 000000000..643badb9d
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_scale_out_template.yaml
@@ -0,0 +1,60 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+ - type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
+ topology: vfw-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
+{% for vnf_num in range(num_vnfs|int) %}
+ vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
+{% endfor %}
+ options:
+ framesize:
+ uplink: {{ flow.pkt_size.uplink | to_yaml }}
+ downlink: {{ flow.pkt_size.downlink | to_yaml }}
+ flow:
+ src_ip:
+{% for vnf_num in range(num_vnfs|int) %}
+ - {'tg__0': 'xe{{ vnf_num }}'}
+{% endfor %}
+ dst_ip:
+{% for vnf_num in range(num_vnfs|int) %}
+ - {'tg__1': 'xe{{ vnf_num }}'}
+{% endfor %}
+ count: {{ flow.count }}
+ traffic_type: {{ flow.traffic_type }}
+ rfc2544:
+ allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }}
+ correlated_traffic: true
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
+ ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{ num_vnfs * 2 }}_port.ixncfg
+
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/ixia_correlated_{{num_vnfs}}.yaml
+ - type: Node
+ file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml
+ name: yardstick
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-10Gbps_Throughput.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-10Gbps_Throughput.yaml
index 24d87663e..8a28a7656 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-10Gbps_Throughput.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-10Gbps_Throughput.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml"
topology: vfw_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- private: {64B: 100}
- public: {64B: 100}
+ private: {{ framesize }}
+ public: {{ framesize }}
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
@@ -37,7 +37,7 @@ scenarios:
duration: 2
ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports_Throughput.rxf # Need vlan update
contexts:
- - name: yardstick1
+ - name: yardstick
type: Node
file: /etc/yardstick/nodes/pod_ixia.yaml
- name: yardstick
@@ -55,7 +55,7 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-65000_Concurrency.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-65000_Concurrency.yaml
index 4b3c45f20..46ab57b28 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-65000_Concurrency.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-65000_Concurrency.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml"
topology: vfw_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- private: {64B: 100}
- public: {64B: 100}
+ private: {{ framesize }}
+ public: {{ framesize }}
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
@@ -37,7 +37,7 @@ scenarios:
duration: 2
ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports_Concurrency.rxf # Need vlan update
contexts:
- - name: yardstick1
+ - name: yardstick
type: Node
file: /etc/yardstick/nodes/pod_ixia.yaml
- name: yardstick
@@ -55,7 +55,7 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-65000_Connections.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-65000_Connections.yaml
index 065143cf9..8c2cfd38e 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-65000_Connections.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_external_http_ixload_1b_Requests-65000_Connections.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: "../../traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml"
topology: vfw_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- private: {64B: 100}
- public: {64B: 100}
+ private: {{ framesize }}
+ public: {{ framesize }}
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
@@ -37,7 +37,7 @@ scenarios:
duration: 2
ixia_profile: ../../traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports_Connections.rxf # Need vlan update
contexts:
- - name: yardstick1
+ - name: yardstick
type: Node
file: /etc/yardstick/nodes/pod_ixia.yaml
- name: yardstick
@@ -55,7 +55,7 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml
deleted file mode 100644
index 1e95c8c2d..000000000
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: vfw_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- uplink: {1024B: 100}
- downlink: {1024B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
-
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml
deleted file mode 100644
index 1a7e147aa..000000000
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: vfw_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- uplink: {1280B: 100}
- downlink: {1280B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
-
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml
deleted file mode 100644
index 7a1ffd82c..000000000
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: vfw_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- uplink: {1518B: 100}
- downlink: {1518B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml
deleted file mode 100644
index c06c9ad1a..000000000
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: vfw_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- uplink: {256B: 100}
- downlink: {256B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml
deleted file mode 100644
index 798dca293..000000000
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: vfw_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- uplink: {512B: 100}
- downlink: {512B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_ixia.yaml
index b685699cc..a29299bb6 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
topology: vfw_vnf_topology_ixia.yaml
nodes:
- tg__0: tg_0.traffic_gen
+ tg__0: trafficgen_0.traffic_gen
vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -39,7 +39,6 @@ scenarios:
type: Iteration
iterations: 10
interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
contexts:
# put node context first, so we don't HEAT deploy if node has errors
- name: traffic_gen
@@ -60,7 +59,7 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
networks:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_trex.yaml
index 502436ced..81df46d41 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: vfw-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.baremetal
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -59,7 +59,7 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
networks:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex_4port.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_trex_4port.yaml
index 2469dc866..19012af9a 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex_4port.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_trex_4port.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-4.yaml
topology: vfw-tg-topology-4port.yaml
nodes:
- tg__0: tg_0.traffic_gen
+ tg__0: trafficgen_0.traffic_gen
vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}]
dst_ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}]
@@ -39,7 +39,6 @@ scenarios:
type: Iteration
iterations: 10
interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_muttiport.ixncfg
contexts:
# put node context first, so we don't HEAT deploy if node has errors
- name: traffic_gen
@@ -60,7 +59,7 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
networks:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml
new file mode 100644
index 000000000..47f3e01fa
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml
@@ -0,0 +1,122 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set image = image or "yardstick-samplevnfs" %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 10 %}
+{% set vports = vports or 2 %}
+{% set phynet_map = phynet_map or {'uplink_0': 'prov0',
+ 'downlink_0': 'prov1',
+ 'uplink_1': 'prov2',
+ 'downlink_1': 'prov3'} %}
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml
+ topology: vfw-tg-topology-ixia-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.barametal
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip: [
+{% for vport in range(0,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ dst_ip: [
+{% for vport in range(1,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ resolution: 0.01
+ allowed_drop_rate: 0.005 - 0.01
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {128B: 100}
+ downlink: {128B: 100}
+ - uplink: {256B: 100}
+ downlink: {256B: 100}
+ - uplink: {512B: 100}
+ downlink: {512B: 100}
+ - uplink: {1024B: 100}
+ downlink: {1024B: 100}
+ - uplink: {1518B: 100}
+ downlink: {1518B: 100}
+ - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+ downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+
+contexts:
+ - name: barametal
+ type: Node
+ file: /etc/yardstick/nodes/pod_ixia.yaml
+ - name: yardstick
+ image: {{ image }}
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+{% for vport in range(0,vports,2|int) %}
+ uplink_{{loop.index0}}:
+ - xe{{vport}}
+ downlink_{{loop.index0}}:
+ - xe{{vport + 1}}
+{% endfor %}
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{loop.index0}}:
+ cidr: '10.0.{{vport + 1}}.0/24'
+ gateway_ip: 'null'
+ provider: true
+ physical_network: {{phynet_map['uplink_' + loop.index0|string] }}
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_{{loop.index0}}:
+ cidr: '10.0.{{vport + 2}}.0/24'
+ gateway_ip: 'null'
+ provider: true
+ physical_network: {{phynet_map['downlink_' + loop.index0|string] }}
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
+
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml
new file mode 100644
index 000000000..2e66778f9
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml
@@ -0,0 +1,122 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set image = image or "yardstick-samplevnfs" %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 10 %}
+{% set vports = vports or 2 %}
+{% set phynet_map = phynet_map or {'uplink_0': 'prov6',
+ 'downlink_0': 'prov7',
+ 'uplink_1': 'prov4',
+ 'downlink_1': 'prov5'} %}
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml
+ topology: vfw-tg-topology-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.barametal
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip: [
+{% for vport in range(0,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ dst_ip: [
+{% for vport in range(1,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ resolution: 0.01
+ allowed_drop_rate: 0.005 - 0.01
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {128B: 100}
+ downlink: {128B: 100}
+ - uplink: {256B: 100}
+ downlink: {256B: 100}
+ - uplink: {512B: 100}
+ downlink: {512B: 100}
+ - uplink: {1024B: 100}
+ downlink: {1024B: 100}
+ - uplink: {1518B: 100}
+ downlink: {1518B: 100}
+ - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+ downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+
+contexts:
+ - name: barametal
+ type: Node
+ file: /etc/yardstick/nodes/pod_trex.yaml
+ - name: yardstick
+ image: {{ image }}
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+{% for vport in range(0,vports,2|int) %}
+ uplink_{{loop.index0}}:
+ - xe{{vport}}
+ downlink_{{loop.index0}}:
+ - xe{{vport + 1}}
+{% endfor %}
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{loop.index0}}:
+ cidr: '10.0.{{vport + 1}}.0/24'
+ gateway_ip: 'null'
+ provider: true
+ physical_network: {{phynet_map['uplink_' + loop.index0|string] }}
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_{{loop.index0}}:
+ cidr: '10.0.{{vport + 2}}.0/24'
+ gateway_ip: 'null'
+ provider: true
+ physical_network: {{phynet_map['downlink_' + loop.index0|string] }}
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
+
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex.yaml
new file mode 100644
index 000000000..64de42a62
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set framesize = framesize or "{64B: 100}" %}
+---
+{% set provider = provider or none %}
+{% set physical_networks = physical_networks or ['physnet1', 'physnet2'] %}
+{% set segmentation_id = segmentation_id or none %}
+
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: vfw-tg-topology.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip: [{'tg__0': 'xe0'}]
+ dst_ip: [{'tg__0': 'xe1'}]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+context:
+ # put node context first, so we don't HEAT deploy if node has errors
+ name: yardstick
+ image: yardstick-samplevnfs
+ flavor:
+ vcpus: 10
+ ram: 20480
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 1
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ trafficgen_0:
+ floating_ip: true
+ placement: "pgrp1"
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+ xe0:
+ cidr: '10.0.2.0/24'
+ gateway_ip: 'null'
+ {% if provider %}
+ provider: {{ provider }}
+ physical_network: {{ physical_networks[0] }}
+ {% if segmentation_id %}
+ segmentation_id: {{ segmentation_id }}
+ {% endif %}
+ {% endif %}
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ xe1:
+ cidr: '10.0.3.0/24'
+ gateway_ip: 'null'
+ {% if provider %}
+ provider: {{ provider }}
+ physical_network: {{ physical_networks[1] }}
+ {% if segmentation_id %}
+ segmentation_id: {{ segmentation_id }}
+ {% endif %}
+ {% endif %}
+ port_security_enabled: False
+ enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_4port.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_4port.yaml
index 980efe433..09353c25b 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_4port.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_4port.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-4.yaml
topology: vfw-tg-topology-4port.yaml
nodes:
- tg__0: tg_0.yardstick
+ tg__0: trafficgen_0.yardstick
vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}]
dst_ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}]
@@ -57,7 +57,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
vnf_0:
@@ -86,4 +86,3 @@ context:
gateway_ip: 'null'
port_security_enabled: False
enable_dhcp: 'false'
-
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_computeKPI.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_computeKPI.yaml
index b0972c53f..0b0b1924a 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_computeKPI.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_computeKPI.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
@@ -21,13 +21,13 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: vfw-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
cpt__0: compute_0.compute_nodes
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -67,10 +67,10 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
- trafficgen_1:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
networks:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_10.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_10.yaml
index 1d9c4e1c6..be86a11eb 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_10.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_10.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-10.yaml
topology: vfw-tg-topology-3node-10.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
vnf__0: vnf_0.yardstick
vnf__1: vnf_1.yardstick
vnf__2: vnf_2.yardstick
@@ -33,8 +33,8 @@ scenarios:
vnf__9: vnf_9.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- {'tg__0': 'xe0'}
@@ -114,7 +114,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -140,7 +140,7 @@ context:
- xe8
uplink_9:
- xe9
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_2.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_2.yaml
index bfda0bb7f..24ebcafba 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_2.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,14 +19,14 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-2.yaml
topology: vfw-tg-topology-3node-2.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
vnf__0: vnf_0.yardstick
vnf__1: vnf_1.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- {'tg__0': 'xe0'}
@@ -66,7 +66,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -76,7 +76,7 @@ context:
- xe0
uplink_1:
- xe1
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_4.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_4.yaml
index bd29ab76c..371071c79 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_4.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_4.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,16 +19,16 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-4.yaml
topology: vfw-tg-topology-3node-4.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
vnf__0: vnf_0.yardstick
vnf__1: vnf_1.yardstick
vnf__2: vnf_2.yardstick
vnf__3: vnf_3.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
- {'tg__0': 'xe0'}
@@ -78,7 +78,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -92,7 +92,7 @@ context:
- xe2
uplink_3:
- xe3
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_out.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_out.yaml
index be15e4550..598944de2 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_out.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_correlated_scale_out.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,15 +19,15 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
topology: vfw-tg-topology-3node-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip:
{% for vnf_num in range(num_vnfs|int) %}
@@ -68,7 +68,7 @@ context:
pgrp1:
policy: "availability"
servers:
- tg_0:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
network_ports:
@@ -78,7 +78,7 @@ context:
uplink_{{ vnf_num }}:
- xe{{ vnf_num }}
{% endfor %}
- tg_1:
+ trafficgen_1:
floating_ip: true
placement: "pgrp1"
network_ports:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_iterationipc.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_iterationipc.yaml
new file mode 100644
index 000000000..3e6933731
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_iterationipc.yaml
@@ -0,0 +1,96 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set framesize = framesize or "{64B: 100}" %}
+---
+{% set provider = provider or none %}
+{% set physical_networks = physical_networks or ['physnet1', 'physnet2'] %}
+{% set segmentation_id = segmentation_id or none %}
+
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: vfw-tg-topology.yaml
+ nodes:
+ tg__0: trafficgen_1.yardstick
+ vnf__0: vnf.yardstick
+ options:
+ hugepages_gb: 8
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip: [{'tg__0': 'xe0'}]
+ dst_ip: [{'tg__0': 'xe1'}]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: IterationIPC
+ iterations: 10
+ timeout: 60
+context:
+ # put node context first, so we don't HEAT deploy if node has errors
+ name: yardstick
+ image: yardstick-samplevnfs
+ flavor:
+ vcpus: 10
+ ram: 12288
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 1
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ vnf:
+ floating_ip: true
+ placement: "pgrp1"
+ trafficgen_1:
+ floating_ip: true
+ placement: "pgrp1"
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+ xe0:
+ cidr: '10.0.2.0/24'
+ gateway_ip: 'null'
+ {% if provider %}
+ provider: {{ provider }}
+ physical_network: {{ physical_networks[0] }}
+ {% if segmentation_id %}
+ segmentation_id: {{ segmentation_id }}
+ {% endif %}
+ {% endif %}
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ xe1:
+ cidr: '10.0.3.0/24'
+ gateway_ip: 'null'
+ {% if provider %}
+ provider: {{ provider }}
+ physical_network: {{ physical_networks[1] }}
+ {% if segmentation_id %}
+ segmentation_id: {{ segmentation_id }}
+ {% endif %}
+ {% endif %}
+ port_security_enabled: False
+ enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale-up.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale-up.yaml
new file mode 100644
index 000000000..3af511aa4
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale-up.yaml
@@ -0,0 +1,90 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set framesize = framesize or "{64B: 100}" %}
+{% set mem = mem or 20480 %}
+{% set vcpus = vcpus or 10 %}
+{% set vports = vports or 2 %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vfw-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip: [
+{% for vport in range(0,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ dst_ip: [
+{% for vport in range(1,vports,2|int) %}
+ {'tg__0': 'xe{{vport}}'},
+{% endfor %} ]
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+ vnf__0:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', file: vfw_vnf_pipeline_cores_{{vcpus}}_ports_{{vports}}_lb_1_sw.conf }
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+context:
+ # put node context first, so we don't HEAT deploy if node has errors
+ name: yardstick
+ image: yardstick-samplevnfs
+ flavor:
+ vcpus: {{ vcpus }}
+ ram: {{ mem }}
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: {{ vcpus }}
+ hw:cpu_threads: 1
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ trafficgen_0:
+ floating_ip: true
+ placement: "pgrp1"
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vport in range(1,vports,2|int) %}
+ uplink_{{loop.index0}}:
+ cidr: '10.1.{{vport}}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_{{loop.index0}}:
+ cidr: '10.1.{{vport+1}}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale_out.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale_out.yaml
new file mode 100644
index 000000000..915919f1c
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_trex_scale_out.yaml
@@ -0,0 +1,115 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set framesize = framesize or "{64B: 100}" %}
+{% set num_vnfs = num_vnfs or 1 %}
+{% set availability_zone = availability_zone or {} %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput_scale_out.yaml
+ topology: vfw_tg_topology_scale_out.yaml
+ extra_args:
+ num_vnfs: {{ num_vnfs }}
+ nodes:
+{% for vnf_num in range(num_vnfs|int) %}
+ tg__{{ vnf_num }}: tg_{{ vnf_num }}.yardstick
+ vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
+{% endfor %}
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip:
+{% for vnf_num in range(num_vnfs|int) %}
+ - {'tg__{{ vnf_num }}': 'xe0'}
+{% endfor %}
+ dst_ip:
+{% for vnf_num in range(num_vnfs|int) %}
+ - {'tg__{{ vnf_num }}': 'xe1'}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: 0.0001 - 0.0001
+{% for vnf_num in range(num_vnfs|int) %}
+ vnf__{{ vnf_num }}:
+ rules: acl_1rule.yaml
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+{% endfor %}
+ runner:
+ type: Iteration
+ iterations: 10
+ interval: 35
+context:
+ # put node context first, so we don't HEAT deploy if node has errors
+ name: yardstick
+ image: yardstick-samplevnfs
+ flavor:
+ vcpus: 10
+ ram: 20480
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 1
+ user: ubuntu
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+{% for vnf_num in range(num_vnfs|int) %}
+ vnf_{{ vnf_num }}:
+ floating_ip: true
+ placement: "pgrp1"
+ {% if 'vnf_%s'|format(vnf_num) in availability_zone %}
+ availability_zone: "{{ availability_zone['vnf_%s'|format(vnf_num)] }}"
+ {% endif %}
+ network_ports:
+ mgmt:
+ - mgmt
+ uplink_{{ vnf_num }}:
+ - xe0
+ downlink_{{ vnf_num }}:
+ - xe1
+ tg_{{ vnf_num }}:
+ floating_ip: true
+ placement: "pgrp1"
+ {% if 'tg_%s'|format(vnf_num) in availability_zone %}
+ availability_zone: "{{ availability_zone['tg_%s'|format(vnf_num)] }}"
+ {% endif %}
+ network_ports:
+ mgmt:
+ - mgmt
+ uplink_{{ vnf_num }}:
+ - xe0
+ downlink_{{ vnf_num }}:
+ - xe1
+{% endfor %}
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+{% for vnf_num in range(num_vnfs|int) %}
+ uplink_{{ vnf_num }}:
+ cidr: '10.0.{{ (vnf_num * 2) + 2 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_{{ vnf_num }}:
+ cidr: '10.0.{{ (vnf_num * 2) + 3 }}.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_trex.yaml
index 2799a7ee9..eadc6cca1 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,19 +12,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
-- type: NSPerf
+- type: NSPerf-RFC2544
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: vfw-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -37,8 +38,8 @@ scenarios:
vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
runner:
type: Iteration
- iterations: 10
- interval: 35
+ iterations: 1
+ interval: 5
context:
# put node context first, so we don't HEAT deploy if node has errors
name: yardstick
@@ -56,10 +57,10 @@ context:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
- trafficgen_1:
+ trafficgen_0:
floating_ip: true
placement: "pgrp1"
networks:
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_sriov_external_rfc2544_ipv4_1rule_1flow_trex.yaml
index 9a4e60be1..6c71d5e67 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_sriov_external_rfc2544_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,20 +11,20 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: vfw_vnf_topology_ixia.yaml
+ traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+ topology: vfw-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.baremetal
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {128B: 100}
- downlink: {128B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -39,12 +39,11 @@ scenarios:
type: Iteration
iterations: 10
interval: 35
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
contexts:
# put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
+ - name: baremetal
type: Node
- file: ixia.yml
+ file: trex-baremetal.yml
- name: yardstick
image: yardstick-samplevnfs
flavor:
@@ -60,24 +59,30 @@ contexts:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+ uplink_0:
+ - xe0
+ downlink_0:
+ - xe1
networks:
mgmt:
cidr: '10.0.1.0/24'
- xe0:
+ uplink_0:
cidr: '10.0.2.0/24'
- vld_id: downlink_0
gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
+ provider: "sriov"
+ physical_network: physnet1
port_security_enabled: False
- xe1:
+ enable_dhcp: 'false'
+ downlink_0:
cidr: '10.0.3.0/24'
- vld_id: uplink_0
gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
+ provider: "sriov"
+ physical_network: physnet2
port_security_enabled: False
-
+ enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_ixia.yaml
index a77d9003c..f0523b12e 100644
--- a/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
topology: vfw_vnf_topology_ixia.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -35,7 +35,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
runner:
type: Iteration
iterations: 10
@@ -69,7 +68,7 @@ contexts:
user: ""
password: ""
servers:
- vnf__0:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.7/24'
diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_trex.yaml
index 6b9ccb111..0d1a8a5d6 100644
--- a/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: vfw-tg-topology.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -42,7 +42,7 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
- type: StandaloneOvsDpdk
name: yardstick
file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
@@ -59,8 +59,8 @@ contexts:
vpath: "/usr/local"
flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
extra_specs:
hw:cpu_sockets: 1
hw:cpu_cores: 6
@@ -68,7 +68,7 @@ contexts:
user: ""
password: ""
servers:
- vnf__0:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.7/24'
diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml
new file mode 100644
index 000000000..022865210
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml
@@ -0,0 +1,106 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.005 %}
+{% set tolerance_high = tolerance_high or 0.01 %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml
+ topology: vfw-tg-topology-ixia-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip:
+{% for vport in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ dst_ip:
+{% for vport in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ resolution: 0.01
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+ downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/pod_ixia_ovs.yaml
+ - type: StandaloneOvsDpdk
+ name: yardstick
+ file: /etc/yardstick/nodes/pod_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.1
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 6
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '172.10.1.150/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml
new file mode 100644
index 000000000..b42770491
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml
@@ -0,0 +1,105 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0001 %}
+{% set tolerance_high = tolerance_high or 0.0001 %}
+{% set framesize = framesize or "{64B: 100}" %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vfw-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip:
+{% for vport in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ dst_ip:
+{% for vport in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: 5
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
+ - type: StandaloneOvsDpdk
+ name: yardstick
+ file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.1
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 6
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.7/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_correlated_scale_out_template.yaml
index 3606a5585..d8bf80ace 100644
--- a/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_correlated_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_correlated_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: vfw-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- tg__1: tg__1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
@@ -46,7 +46,6 @@ scenarios:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
{% endfor %}
- ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs}}_port.ixncfg
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_scale_out_template.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_scale_out_template.yaml
index c263a7688..660cb3bfd 100644
--- a/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: vfw-tg-topology-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
@@ -45,7 +45,6 @@ scenarios:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
{% endfor %}
- ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_scale_out.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_scale_out.yaml
index 1e4ccccb4..b382d87d1 100644
--- a/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_scale_out.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_scale_out.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
topology: vfw-tg-topology-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_ixia.yaml
index 458471a28..7a8ca12ec 100644
--- a/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
topology: vfw_vnf_topology_ixia.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -35,7 +35,6 @@ scenarios:
vnf__0:
rules: acl_1rule.yaml
vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
runner:
type: Iteration
iterations: 10
@@ -58,7 +57,7 @@ contexts:
user: ""
password: ""
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.61/24'
diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_trex.yaml
index 0f1560183..3767290b0 100644
--- a/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+{% set framesize = framesize or "{64B: 100}" %}
---
schema: yardstick:task:0.1
scenarios:
@@ -19,12 +19,12 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: vfw-tg-topology.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- uplink: {64B: 100}
- downlink: {64B: 100}
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
flow:
src_ip: [{'tg__0': 'xe0'}]
dst_ip: [{'tg__0': 'xe1'}]
@@ -42,14 +42,14 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
- type: StandaloneSriov
file: /etc/yardstick/nodes/standalone/host_sriov.yaml
name: yardstick
vm_deploy: True
flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 4096
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
extra_specs:
hw:cpu_sockets: 1
hw:cpu_cores: 6
@@ -57,7 +57,7 @@ contexts:
user: ""
password: ""
servers:
- vnf:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.61/24'
diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml
new file mode 100644
index 000000000..b0ea0dc33
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml
@@ -0,0 +1,96 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.005 %}
+{% set tolerance_high = tolerance_high or 0.01 %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml
+ topology: vfw-tg-topology-ixia-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ flow:
+ src_ip:
+{% for vport in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ dst_ip:
+{% for vport in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ resolution: 0.01
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Sequence
+ scenario_option_name: framesize
+ sequence:
+ - uplink: {64B: 100}
+ downlink: {64B: 100}
+ - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+ downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25}
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/pod_ixia_ovs.yaml
+ - type: StandaloneSriov
+ name: yardstick
+ file: /etc/yardstick/nodes/pod_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 6
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '172.10.1.150/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml
new file mode 100644
index 000000000..67c76bff4
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml
@@ -0,0 +1,94 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set vports = vports or 2 %}
+{% set tolerance_low = tolerance_low or 0.0001 %}
+{% set tolerance_high = tolerance_high or 0.0001 %}
+{% set framesize = framesize or "{64B: 100}" %}
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf-RFC2544
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: vfw-tg-topology-scale-up.yaml
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ framesize:
+ uplink: {{ framesize }}
+ downlink: {{ framesize }}
+ flow:
+ src_ip:
+{% for vport in range(0, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ dst_ip:
+{% for vport in range(1, vports|int, 2) %}
+ - {'tg__0': 'xe{{ vport }}'}
+{% endfor %}
+ count: 1
+ traffic_type: 4
+ rfc2544:
+ allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}"
+ vnf__0:
+ vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: 5
+contexts:
+ - name: yardstick
+ type: Node
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
+ - type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ name: yardstick
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 7
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf_0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.7/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_correlated_scale_out_template.yaml
index d7016964a..6093799a4 100644
--- a/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_correlated_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_correlated_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: vfw-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
- tg__1: tg__1.yardstick
+ tg__0: trafficgen_0.yardstick
+ tg__1: trafficgen_1.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
@@ -46,7 +46,6 @@ scenarios:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
{% endfor %}
- ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{ num_vnfs }}_port.ixncfg
runner:
type: Iteration
diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_scale_out_template.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_scale_out_template.yaml
index 79a6be073..ea67cccae 100644
--- a/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_scale_out_template.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_scale_out_template.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
topology: vfw-tg-topology-ixia-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
@@ -45,7 +45,6 @@ scenarios:
rules: acl_1rule.yaml
vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
{% endfor %}
- ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg
runner:
type: Iteration
diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_scale_out.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_scale_out.yaml
index d6ff61363..dceea06be 100644
--- a/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_scale_out.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_scale_out.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
topology: vfw-tg-topology-scale-out-{{ num_vnfs }}.yaml
nodes:
- tg__0: tg__0.yardstick
+ tg__0: trafficgen_0.yardstick
{% for vnf_num in range(num_vnfs|int) %}
vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-scale-up.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-scale-up.yaml
new file mode 100644
index 000000000..3d29d3e67
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-scale-up.yaml
@@ -0,0 +1,53 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+{% set vports = get(extra_args, 'vports', 2) %}
+nsd:nsd-catalog:
+ nsd:
+ - id: vFW
+ name: vFW
+ short-name: vFW
+ description: scenario with vFW VNF
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml #VNF type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+
+ vld:
+{% for vport in range(0,vports,2|int) %}
+ - id: uplink_{{loop.index0}}
+ name: tg__0 to vnf__0 link {{vport + 1}}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{vport}}
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{vport}}
+ vnfd-id-ref: vnf__0
+ - id: downlink_{{loop.index0}}
+ name: vnf__0 to tg__0 link {{vport + 2}}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{vport+1}}
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{vport+1}}
+ vnfd-id-ref: tg__0
+{% endfor %}
+
diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml
new file mode 100644
index 000000000..d4bf8d6d1
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) 2016-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+{% set vports = get(extra_args, 'vports', '2') %}
+nsd:nsd-catalog:
+ nsd:
+ - id: 3tg-topology
+ name: 3tg-topology
+ short-name: 3tg-topology
+ description: 3tg-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+
+ vld:
+{% for vport in range(0,vports,2|int) %}
+ - id: uplink_{{loop.index0}}
+ name: tg__0 to vnf__0 link {{vport + 1}}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{vport}}
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{vport}}
+ vnfd-id-ref: vnf__0
+ - id: downlink_{{loop.index0}}
+ name: vnf__0 to tg__0 link {{vport + 2}}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{vport+1}}
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{vport+1}}
+ vnfd-id-ref: tg__0
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/vfw/vfw_tg_topology_scale_out.yaml b/samples/vnf_samples/nsut/vfw/vfw_tg_topology_scale_out.yaml
new file mode 100644
index 000000000..8bd01b7f2
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw_tg_topology_scale_out.yaml
@@ -0,0 +1,53 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{% set num_vnfs = get(extra_args, 'num_vnfs', 1) %}
+---
+nsd:nsd-catalog:
+ nsd:
+ - id: 3tg-topology
+ name: 3tg-topology
+ short-name: 3tg-topology
+ description: 3tg-topology
+ constituent-vnfd:
+{% for vnf_num in range(num_vnfs|int) %}
+ - member-vnf-index: '{{ (vnf_num * 2) + 1 }}'
+ vnfd-id-ref: tg__{{ vnf_num }}
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml
+ - member-vnf-index: '{{ (vnf_num * 2) + 2 }}'
+ vnfd-id-ref: vnf__{{ vnf_num }}
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml
+{% endfor %}
+ vld:
+{% for vnf_num in range(num_vnfs|int) %}
+ - id: uplink_{{ vnf_num }}
+ name: tg__{{ vnf_num }} to vnf__{{ vnf_num }} link {{ (vnf_num * 2) + 1 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '{{ (vnf_num * 2) + 1 }}'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__{{ vnf_num }}
+ - member-vnf-index-ref: '{{ (vnf_num * 2) + 2 }}'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__{{ vnf_num }}
+ - id: downlink_{{ vnf_num }}
+ name: vnf__{{ vnf_num }} to tg__{{ vnf_num }} link {{ (vnf_num * 2) + 2 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '{{ (vnf_num * 2) + 2 }}'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__{{ vnf_num }}
+ - member-vnf-index-ref: '{{ (vnf_num * 2) + 1 }}'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__{{ vnf_num }}
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_2_lb_1_sw.conf b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_2_lb_1_sw.conf
new file mode 100644
index 000000000..b31d0546c
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_2_lb_1_sw.conf
@@ -0,0 +1,52 @@
+[PIPELINE0]
+type = MASTER
+core = 0
+
+[PIPELINE1]
+type = ARPICMP
+core = 0
+pktq_in = SWQ0
+pktq_out = SWQ1
+pktq_in_prv = RXQ1.0
+prv_to_pub_map = (1,0)
+
+[PIPELINE2]
+type = TXRX
+core = 1
+pipeline_txrx_type = RXRX
+dest_if_offset = 176
+pktq_in = RXQ1.0 RXQ0.0
+pktq_out = SWQ2 SWQ3 SWQ0
+
+[PIPELINE3]
+type = LOADB
+core = 2
+pktq_in = SWQ2 SWQ3
+pktq_out = SWQ4 SWQ5
+outport_offset = 136
+n_vnf_threads = 1
+n_lb_tuples = 5
+loadb_debug = 0
+lib_arp_debug = 0
+prv_que_handler = (0,)
+
+[PIPELINE4]
+type = VFW
+core = 3
+pktq_in = SWQ4 SWQ5
+pktq_out = SWQ6 SWQ7
+n_rules = 10
+prv_que_handler = (0)
+n_flows = 2000000
+traffic_type = 4
+pkt_type = ipv4
+tcp_be_liberal = 0
+
+[PIPELINE5]
+type = TXRX
+core = 1
+pipeline_txrx_type = TXTX
+dest_if_offset = 176
+pktq_in = SWQ6 SWQ7 SWQ1
+pktq_out = TXQ1.0 TXQ0.0
+
diff --git a/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_4_lb_1_sw.conf b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_4_lb_1_sw.conf
new file mode 100644
index 000000000..3bf8dc68b
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_4_ports_4_lb_1_sw.conf
@@ -0,0 +1,52 @@
+
+[PIPELINE0]
+type = MASTER
+core = 0
+
+[PIPELINE1]
+type = ARPICMP
+core = 0
+pktq_in = SWQ0
+pktq_out = SWQ1
+pktq_in_prv = RXQ2.0 RXQ3.0
+prv_to_pub_map = (2,0)(3,1)
+
+[PIPELINE2]
+type = TXRX
+core = 1
+pipeline_txrx_type = RXRX
+dest_if_offset = 176
+pktq_in = RXQ2.0 RXQ0.0 RXQ3.0 RXQ1.0
+pktq_out = SWQ2 SWQ3 SWQ4 SWQ5 SWQ0
+
+[PIPELINE3]
+type = LOADB
+core = 2
+pktq_in = SWQ2 SWQ3 SWQ4 SWQ5
+pktq_out = SWQ6 SWQ7 SWQ8 SWQ9
+outport_offset = 136
+n_vnf_threads = 1
+n_lb_tuples = 5
+loadb_debug = 0
+lib_arp_debug = 0
+prv_que_handler = (0,2,)
+
+[PIPELINE4]
+type = VFW
+core = 3
+pktq_in = SWQ6 SWQ7 SWQ8 SWQ9
+pktq_out = SWQ10 SWQ11 SWQ12 SWQ13
+n_rules = 10
+prv_que_handler = (0)
+n_flows = 2000000
+traffic_type = 4
+pkt_type = ipv4
+tcp_be_liberal = 0
+
+[PIPELINE5]
+type = TXRX
+core = 1
+pipeline_txrx_type = TXTX
+dest_if_offset = 176
+pktq_in = SWQ10 SWQ11 SWQ12 SWQ13 SWQ1
+pktq_out = TXQ2.0 TXQ0.0 TXQ3.0 TXQ1.0
diff --git a/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_6_lb_1_sw.conf b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_6_lb_1_sw.conf
new file mode 100644
index 000000000..1d55d8855
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_6_lb_1_sw.conf
@@ -0,0 +1,51 @@
+[PIPELINE0]
+type = MASTER
+core = 0
+
+[PIPELINE1]
+type = ARPICMP
+core = 0
+pktq_in = SWQ0
+pktq_out = SWQ1
+pktq_in_prv = RXQ5.0 RXQ3.0 RXQ4.0
+prv_to_pub_map = (5,2)(3,0)(4,1)
+
+[PIPELINE2]
+type = TXRX
+core = 1
+pipeline_txrx_type = RXRX
+dest_if_offset = 176
+pktq_in = RXQ5.0 RXQ2.0 RXQ3.0 RXQ0.0 RXQ4.0 RXQ1.0
+pktq_out = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 SWQ0
+
+[PIPELINE3]
+type = LOADB
+core = 2
+pktq_in = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7
+pktq_out = SWQ8 SWQ9 SWQ10 SWQ11 SWQ12 SWQ13
+outport_offset = 136
+n_vnf_threads = 1
+n_lb_tuples = 5
+loadb_debug = 0
+lib_arp_debug = 0
+prv_que_handler = (0,2,4,)
+
+[PIPELINE4]
+type = VFW
+core = 3
+pktq_in = SWQ8 SWQ9 SWQ10 SWQ11 SWQ12 SWQ13
+pktq_out = SWQ14 SWQ15 SWQ16 SWQ17 SWQ18 SWQ19
+n_rules = 10
+prv_que_handler = (0)
+n_flows = 2000000
+traffic_type = 4
+pkt_type = ipv4
+tcp_be_liberal = 0
+
+[PIPELINE5]
+type = TXRX
+core = 1
+pipeline_txrx_type = TXTX
+dest_if_offset = 176
+pktq_in = SWQ14 SWQ15 SWQ16 SWQ17 SWQ18 SWQ19 SWQ1
+pktq_out = TXQ5.0 TXQ2.0 TXQ3.0 TXQ0.0 TXQ4.0 TXQ1.0
diff --git a/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_8_lb_1_sw.conf b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_8_lb_1_sw.conf
new file mode 100644
index 000000000..8434fee34
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_6_ports_8_lb_1_sw.conf
@@ -0,0 +1,52 @@
+[PIPELINE0]
+type = MASTER
+core = 0
+
+[PIPELINE1]
+type = ARPICMP
+core = 0
+pktq_in = SWQ0
+pktq_out = SWQ1
+pktq_in_prv = RXQ6.0 RXQ7.0 RXQ4.0 RXQ5.0
+prv_to_pub_map = (6,2)(7,3)(4,0)(5,1)
+
+[PIPELINE2]
+type = TXRX
+core = 1
+pipeline_txrx_type = RXRX
+dest_if_offset = 176
+pktq_in = RXQ6.0 RXQ2.0 RXQ7.0 RXQ3.0 RXQ4.0 RXQ0.0 RXQ5.0 RXQ1.0
+pktq_out = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 SWQ8 SWQ9 SWQ0
+
+[PIPELINE3]
+type = LOADB
+core = 2
+pktq_in = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 SWQ8 SWQ9
+pktq_out = SWQ10 SWQ11 SWQ12 SWQ13 SWQ14 SWQ15 SWQ16 SWQ17
+outport_offset = 136
+n_vnf_threads = 1
+n_lb_tuples = 5
+loadb_debug = 0
+lib_arp_debug = 0
+prv_que_handler = (0,2,4,6,)
+
+[PIPELINE4]
+type = VFW
+core = 3
+pktq_in = SWQ10 SWQ11 SWQ12 SWQ13 SWQ14 SWQ15 SWQ16 SWQ17
+pktq_out = SWQ18 SWQ19 SWQ20 SWQ21 SWQ22 SWQ23 SWQ24 SWQ25
+n_rules = 10
+prv_que_handler = (0)
+n_flows = 2000000
+traffic_type = 4
+pkt_type = ipv4
+tcp_be_liberal = 0
+
+[PIPELINE5]
+type = TXRX
+core = 1
+pipeline_txrx_type = TXTX
+dest_if_offset = 176
+pktq_in = SWQ18 SWQ19 SWQ20 SWQ21 SWQ22 SWQ23 SWQ24 SWQ25 SWQ1
+pktq_out = TXQ6.0 TXQ2.0 TXQ7.0 TXQ3.0 TXQ4.0 TXQ0.0 TXQ5.0 TXQ1.0
+
diff --git a/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_8_ports_10_lb_1_sw.conf b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_8_ports_10_lb_1_sw.conf
new file mode 100644
index 000000000..51d97e0f8
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw_vnf_pipeline_cores_8_ports_10_lb_1_sw.conf
@@ -0,0 +1,52 @@
+[PIPELINE0]
+type = MASTER
+core = 0
+
+[PIPELINE1]
+type = ARPICMP
+core = 0
+pktq_in = SWQ0
+pktq_out = SWQ1
+pktq_in_prv = RXQ7.0 RXQ8.0 RXQ5.0 RXQ6.0 RXQ9.0
+prv_to_pub_map = (7,2)(8,3)(5,0)(6,1)(9,4)
+
+[PIPELINE2]
+type = TXRX
+core = 1
+pipeline_txrx_type = RXRX
+dest_if_offset = 176
+pktq_in = RXQ7.0 RXQ2.0 RXQ8.0 RXQ3.0 RXQ5.0 RXQ0.0 RXQ6.0 RXQ1.0 RXQ9.0 RXQ4.0
+pktq_out = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 SWQ8 SWQ9 SWQ10 SWQ11 SWQ0
+
+[PIPELINE3]
+type = LOADB
+core = 2
+pktq_in = SWQ2 SWQ3 SWQ4 SWQ5 SWQ6 SWQ7 SWQ8 SWQ9 SWQ10 SWQ11
+pktq_out = SWQ12 SWQ13 SWQ14 SWQ15 SWQ16 SWQ17 SWQ18 SWQ19 SWQ20 SWQ21
+outport_offset = 136
+n_vnf_threads = 1
+n_lb_tuples = 5
+loadb_debug = 0
+lib_arp_debug = 0
+prv_que_handler = (0,2,4,6,8,)
+
+[PIPELINE4]
+type = VFW
+core = 3
+pktq_in = SWQ12 SWQ13 SWQ14 SWQ15 SWQ16 SWQ17 SWQ18 SWQ19 SWQ20 SWQ21
+pktq_out = SWQ22 SWQ23 SWQ24 SWQ25 SWQ26 SWQ27 SWQ28 SWQ29 SWQ30 SWQ31
+n_rules = 10
+prv_que_handler = (0)
+n_flows = 2000000
+traffic_type = 4
+pkt_type = ipv4
+tcp_be_liberal = 0
+
+[PIPELINE5]
+type = TXRX
+core = 1
+pipeline_txrx_type = TXTX
+dest_if_offset = 176
+pktq_in = SWQ22 SWQ23 SWQ24 SWQ25 SWQ26 SWQ27 SWQ28 SWQ29 SWQ30 SWQ31 SWQ1
+pktq_out = TXQ7.0 TXQ2.0 TXQ8.0 TXQ3.0 TXQ5.0 TXQ0.0 TXQ6.0 TXQ1.0 TXQ9.0 TXQ4.0
+
diff --git a/samples/vnf_samples/nsut/vims/tc_vims_baremetal_sipp.yaml b/samples/vnf_samples/nsut/vims/tc_vims_baremetal_sipp.yaml
new file mode 100644
index 000000000..bf9f5a44a
--- /dev/null
+++ b/samples/vnf_samples/nsut/vims/tc_vims_baremetal_sipp.yaml
@@ -0,0 +1,57 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+schema: yardstick:task:0.1
+run_in_parallel: false
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: "../../traffic_profiles/sip.yaml"
+ topology: vims-topology.yaml
+
+ nodes:
+ vnf__0: pcscf.yardstick
+ vnf__1: hss.yardstick
+ tg__0: sipp.yardstick
+
+ runner:
+ type: Duration
+ duration: 10000
+ interval: 1
+ options:
+ port: 5060
+ start_user: 1
+ end_user: 10000
+ init_reg_cps: 50
+ init_reg_max: 5000
+ reg_cps: 20
+ reg_step: 10
+ rereg_cps: 20
+ rereg_step: 10
+ dereg_cps: 20
+ dereg_step: 10
+ msgc_cps: 10
+ msgc_step: 5
+ run_mode: nortp
+ call_cps: 10
+ hold_time: 15
+ call_step: 5
+
+ wait_time: 5
+
+context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/sipp_baremetal_pod.yaml
diff --git a/samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml b/samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml
new file mode 100644
index 000000000..8bf59c962
--- /dev/null
+++ b/samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml
@@ -0,0 +1,97 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+schema: "yardstick:task:0.1"
+run_in_parallel: false
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: "../../traffic_profiles/sip.yaml"
+ topology: vims-topology.yaml
+ nodes:
+ tg__0: sipp.trafficgen
+ vnf__0:
+ name: bono-0.yardstick
+ public_ip_attr: "bono_public_ip"
+ private_ip_attr: "bono_private_ip"
+ interfaces:
+ ims_network:
+ local_ip: bono_private_ip
+ local_mac: bono_local_mac
+ netmask: "255.255.255.0"
+ network: private_net_name
+ gateway_ip: private_net_gateway
+
+ vnf__1:
+ name: homestead-0.yardstick
+ public_ip_attr: "homestead_public_ip"
+ private_ip_attr: "homestead_private_ip"
+ interfaces:
+ ims_network:
+ local_ip: homestead_private_ip
+ local_mac: homestead_local_mac
+ netmask: "255.255.255.0"
+ network: private_net_name
+ gateway_ip: private_net_gateway
+ options:
+ # Public key to create keypair on openstack
+ key_name: yardstick
+ public_key: ""
+ port: 5060
+ start_user: 1
+ end_user: 10000
+ init_reg_cps: 50
+ init_reg_max: 5000
+ reg_cps: 50
+ reg_step: 10
+ rereg_cps: 10
+ rereg_step: 5
+ dereg_cps: 10
+ dereg_step: 5
+ msgc_cps: 10
+ msgc_step: 2
+ run_mode: rtp
+ call_cps: 10
+ hold_time: 15
+ call_step: 5
+ wait_time: 600
+ runner:
+ type: Duration
+ duration: 10000
+ interval: 1
+contexts:
+# put node context first, so we don't HEAT deploy if node has errors
+-
+ name: trafficgen
+ type: Node
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/sipp_pod.yaml
+
+-
+ name: yardstick
+ user: ubuntu
+ # Private key to access VM
+ key_filename: /etc/yardstick/yardstick.pem
+ heat_template: /tmp/clearwater.yaml
+ heat_parameters:
+ image: "Ubuntu_14_trusty"
+ flavor: m1.small
+ key_name: yardstick
+ public_net_id: "public1"
+ repo_url: "http://repo.cw-ngv.com/archive/repo107/"
+ dnssec_key: "HOz2ZYgvbyCFRUymRLBXyLD4+tESevesP07hhzs/uKUD+Oy3aWvReEWMKgBwy75FAl9XQqw6wIGb"
+ private_net_name: "ims_network"
+ private_net_cidr: "10.0.1.0/24"
+ private_net_gateway: "10.0.1.1"
+ private_net_pool_start: "10.0.1.2"
diff --git a/samples/vnf_samples/nsut/vims/vims-topology.yaml b/samples/vnf_samples/nsut/vims/vims-topology.yaml
new file mode 100644
index 000000000..a7525ab57
--- /dev/null
+++ b/samples/vnf_samples/nsut/vims/vims-topology.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nsd:nsd-catalog:
+ nsd:
+ - id: vims-tg-topology
+ name: vims-tg-topology
+ short-name: vims-tg-topology
+ description: vims-tg-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_sipp_vnfd.yaml # Traffic Generator
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/vims_pcscf_vnfd.yaml # vims
+ - member-vnf-index: '3'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/vims_hss_vnfd.yaml # vims
+
+ vld:
+ - id: ims_network
+ name: tg__0 to vnf__0 link 1
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+ - id: data_network
+ name: tg__0 to vnf__0 link 2
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml
index 04668d38f..32eb21dd3 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_http_ipv4_ixload.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: "../../traffic_profiles/ipv4_throughput_vpe.yaml"
topology: vpe_vnf_topology_ixload.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {64B: 100}
@@ -32,11 +32,12 @@ scenarios:
traffic_type: 4
vnf__0:
nfvi_enable: True
- vnf_config: vpe_config
+ vnf_config: {file: './vpe_config/vpe_config_2_ports',
+ action_bulk_file: './vpe_config/action_bulk_512.txt',
+ full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg'}
runner:
type: Duration
duration: 4
- ixia_profile: ../../traffic_profiles/vpe/HTTP-vPE_IPv4_2Ports.rxf # Need vlan update
context:
type: Node
name: yardstick
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml
index 4f8395b53..3048a1d72 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: "../../traffic_profiles/ipv4_throughput_vpe.yaml"
topology: vpe_vnf_topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {1518B: 100}
@@ -34,7 +34,9 @@ scenarios:
allowed_drop_rate: 0.0001 - 0.0001
vnf__0:
nfvi_enable: True
- vnf_config: vpe_config
+ vnf_config: {file: './vpe_config/vpe_config_2_ports',
+ action_bulk_file: './vpe_config/action_bulk_512.txt',
+ full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg'}
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml
index 271cb8978..f683ff91a 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: "../../traffic_profiles/ipv4_throughput_vpe.yaml"
topology: vpe_vnf_topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {64B: 100}
@@ -34,7 +34,9 @@ scenarios:
allowed_drop_rate: 0.0001 - 0.0001
vnf__0:
nfvi_enable: True
- vnf_config: vpe_config
+ vnf_config: {file: './vpe_config/vpe_config_2_ports',
+ action_bulk_file: './vpe_config/action_bulk_512.txt',
+ full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg'}
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml
index d55540afb..e7095b8b7 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: "../../traffic_profiles/ixia_ipv4_latency_vpe.yaml"
topology: vpe_vnf_topology_ixia.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {64B: 100}
@@ -34,12 +34,14 @@ scenarios:
allowed_drop_rate: 0.0001 - 0.0001
vnf__0:
nfvi_enable: True
- vnf_config: vpe_config
+ vnf_config: {file: './vpe_config/vpe_config_2_ports',
+ action_bulk_file: './vpe_config/action_bulk_512.txt',
+ full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg',
+ script_file: './vpe_config/vpe_script_sample'}
runner:
type: Iteration
iterations: 10
interval: 35
- ixia_profile: ../../traffic_profiles/vpe/vpe_ipv4_profile_1flows.ixncfg
context:
type: Node
name: yardstick
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml
index a552730a5..cd98714e9 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_trex_corelated_traffic.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,9 +19,9 @@ scenarios:
traffic_profile: "../../traffic_profiles/ipv4_throughput_vpe.yaml"
topology: vpe_vnf_topology-3node.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- tg__1: trafficgen_2.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ tg__1: trafficgen_1.yardstick
options:
framesize:
uplink: {64B: 100}
@@ -36,7 +36,9 @@ scenarios:
correlated_traffic: true
vnf__0:
nfvi_enable: True
- vnf_config: vpe_config
+ vnf_config: {file: './vpe_config/vpe_config_2_ports',
+ action_bulk_file: './vpe_config/action_bulk_512.txt',
+ full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg'}
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml
index 47b9a6f2e..f81392ed0 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_IMIX.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: "../../traffic_profiles/ipv4_throughput_vpe.yaml"
topology: vpe_vnf_topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {64B: 5, 128B: 11, 256B: 16, 373B: 10, 570B: 35, 1400B: 10, 1500B: 13}
@@ -35,7 +35,9 @@ scenarios:
allowed_drop_rate: 0.0001 - 0.0001
vnf__0:
nfvi_enable: True
- vnf_config: vpe_config
+ vnf_config: {file: './vpe_config/vpe_config_2_ports',
+ action_bulk_file: './vpe_config/action_bulk_512.txt',
+ full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg'}
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_ixia.yaml b/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_ixia.yaml
index 5293b5270..99c9cccb9 100644
--- a/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_ixia.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_vpe.yaml
topology: vpe_vnf_topology_ixia.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {64B: 100}
@@ -34,8 +34,9 @@ scenarios:
allowed_drop_rate: 0.0001 - 0.0001
vnf__0:
nfvi_enable: True
- vnf_config: vpe_config
- ixia_profile: ../../traffic_profiles/vpe/vpe_ipv4_profile_1flows.ixncfg
+ vnf_config: {file: './vpe_config/vpe_config_2_ports',
+ action_bulk_file: './vpe_config/action_bulk_512.txt',
+ full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg'}
runner:
type: Iteration
iterations: 10
@@ -69,7 +70,7 @@ contexts:
user: ""
password: ""
servers:
- vnf__0:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.7/24'
diff --git a/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml b/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml
index 2382e0292..726754f05 100644
--- a/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput_vpe.yaml
topology: vpe_vnf_topology.yaml
nodes:
- tg__0: tg__0.yardstick
- vnf__0: vnf__0.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {64B: 100}
@@ -34,7 +34,9 @@ scenarios:
allowed_drop_rate: 0.0001 - 0.0001
vnf__0:
nfvi_enable: True
- vnf_config: vpe_config
+ vnf_config: {file: './vpe_config/vpe_config_2_ports',
+ action_bulk_file: './vpe_config/action_bulk_512.txt',
+ full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg'}
runner:
type: Iteration
iterations: 10
@@ -42,7 +44,7 @@ scenarios:
contexts:
- name: yardstick
type: Node
- file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+ file: /etc/yardstick/nodes/standalone/trex_bm.yaml
- type: StandaloneOvsDpdk
name: yardstick
file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
@@ -59,8 +61,8 @@ contexts:
vpath: "/usr/local"
flavor:
- images: "/var/lib/libvirt/images/ubuntu.qcow2"
- ram: 16364
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 20480
extra_specs:
hw:cpu_sockets: 1
hw:cpu_cores: 7
@@ -68,7 +70,7 @@ contexts:
user: ""
password: ""
servers:
- vnf__0:
+ vnf_0:
network_ports:
mgmt:
cidr: '1.1.1.7/24'
diff --git a/samples/vnf_samples/nsut/vpe/vpe_config/action_bulk_512.txt b/samples/vnf_samples/nsut/vpe/vpe_config/action_bulk_512.txt
index 21731cd45..6fb3bdd7d 100644
--- a/samples/vnf_samples/nsut/vpe/vpe_config/action_bulk_512.txt
+++ b/samples/vnf_samples/nsut/vpe/vpe_config/action_bulk_512.txt
@@ -1,3 +1,17 @@
+# Copyright (c) 2016-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
flow 0 meter 0 trtcm 1250000000 1250000000 1000000 1000000 policer 0 g G y Y r R meter 1 trtcm 1250000000 1250000000 1000000 1000000 policer 1 g G y Y r R meter 2 trtcm 1250000000 1250000000 1000000 1000000 policer 2 g G y Y r R meter 3 trtcm 1250000000 1250000000 1000000 1000000 policer 3 g G y Y r R port 0
flow 1 meter 0 trtcm 1250000000 1250000000 1000000 1000000 policer 0 g G y Y r R meter 1 trtcm 1250000000 1250000000 1000000 1000000 policer 1 g G y Y r R meter 2 trtcm 1250000000 1250000000 1000000 1000000 policer 2 g G y Y r R meter 3 trtcm 1250000000 1250000000 1000000 1000000 policer 3 g G y Y r R port 0
flow 2 meter 0 trtcm 1250000000 1250000000 1000000 1000000 policer 0 g G y Y r R meter 1 trtcm 1250000000 1250000000 1000000 1000000 policer 1 g G y Y r R meter 2 trtcm 1250000000 1250000000 1000000 1000000 policer 2 g G y Y r R meter 3 trtcm 1250000000 1250000000 1000000 1000000 policer 3 g G y Y r R port 0
diff --git a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_config_2_ports b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_config_2_ports
new file mode 100644
index 000000000..44aa9854e
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_config_2_ports
@@ -0,0 +1,100 @@
+# Copyright (c) 2016-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+[PIPELINE0]
+type = MASTER
+core = 0
+
+[TM0]
+burst_read = 24
+burst_write = 32
+cfg = /tmp/full_tm_profile_10G.cfg
+
+[PIPELINE1]
+type = FIREWALL
+core = s0c1
+pktq_in = RXQ0.0
+pktq_out = SWQ0 SINK0
+n_rules = 4096
+pkt_type = qinq_ipv4
+
+[PIPELINE2]
+type = FLOW_CLASSIFICATION
+core = s0c2
+pktq_in = SWQ0
+pktq_out = SWQ1 SINK1
+n_flows = 65536
+key_size = 8
+key_offset = 268
+key_mask = 00000FFF00000FFF
+flowid_offset = 172
+
+[PIPELINE3]
+type = FLOW_ACTIONS
+core = s0c2
+pktq_in = SWQ1
+pktq_out = SWQ2
+n_flows = 65536
+n_meters_per_flow = 1
+flow_id_offset = 172
+ip_hdr_offset = 278
+color_offset = 176
+
+[PIPELINE4]
+type = FLOW_ACTIONS
+core = s0c1
+pktq_in = SWQ2
+pktq_out = SWQ3
+n_flows = 65536
+n_meters_per_flow = 4
+flow_id_offset = 172
+ip_hdr_offset = 278
+color_offset = 176
+
+[PIPELINE5]
+type = ROUTING
+core = s0c3
+pktq_in = SWQ3
+pktq_out = TXQ1.0 SINK2
+encap = ethernet_mpls
+mpls_color_mark = yes
+ip_hdr_offset = 278
+color_offset = 176
+
+[PIPELINE6]
+type = ROUTING
+core = s0c4
+pktq_in = RXQ1.0
+pktq_out = SWQ4 SINK3
+encap = ethernet_qinq
+qinq_sched = yes
+ip_hdr_offset = 270
+
+[PIPELINE7]
+type = PASS-THROUGH
+core = s0c5
+pktq_in = SWQ4
+pktq_out = SWQ5
+
+[PIPELINE8]
+type = PASS-THROUGH
+core = s0c5
+pktq_in = SWQ5 TM0
+pktq_out = TM0 SWQ6
+
+[PIPELINE9]
+type = PASS-THROUGH
+core = s0c5
+pktq_in = SWQ6
+pktq_out = TXQ0.0
diff --git a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_script_sample b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_script_sample
new file mode 100644
index 000000000..ebf59ccfb
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_script_sample
@@ -0,0 +1,631 @@
+# Copyright (c) 2016-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+p 1 firewall add priority 1 ipv4 152.16.0.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.1.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.2.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.3.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.4.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.5.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.6.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.7.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.8.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.9.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.10.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.11.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.12.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.13.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.14.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.15.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.16.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.17.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.18.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.19.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.20.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.21.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.22.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.23.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.24.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.25.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.26.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.27.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.28.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.29.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.30.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.31.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.32.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.33.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.34.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.35.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.36.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.37.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.38.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.39.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.40.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.41.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.42.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.43.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.44.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.45.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.46.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.47.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.48.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.49.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.50.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.51.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.52.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.53.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.54.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.55.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.56.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.57.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.58.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.59.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.60.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.61.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.62.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.63.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.64.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.65.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.66.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.67.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.68.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.69.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.70.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.71.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.72.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.73.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.74.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.75.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.76.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.77.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.78.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.79.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.80.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.81.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.82.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.83.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.84.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.85.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.86.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.87.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.88.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.89.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.90.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.91.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.92.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.93.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.94.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.95.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.96.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.97.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.98.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.99.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.100.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.101.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.102.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.103.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.104.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.105.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.106.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.107.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.108.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.109.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.110.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.111.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.112.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.113.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.114.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.115.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.116.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.117.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.118.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.119.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.120.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.121.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.122.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.123.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.124.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.125.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.126.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.127.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.128.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.129.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.130.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.131.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.132.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.133.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.134.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.135.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.136.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.137.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.138.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.139.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.140.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.141.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.142.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.143.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.144.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.145.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.146.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.147.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.148.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.149.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.150.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.151.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.152.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.153.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.154.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.155.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.156.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.157.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.158.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.159.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.160.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.161.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.162.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.163.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.164.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.165.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.166.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.167.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.168.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.169.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.170.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.171.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.172.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.173.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.174.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.175.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.176.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.177.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.178.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.179.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.180.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.181.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.182.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.183.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.184.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.185.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.186.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.187.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.188.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.189.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.190.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.191.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.192.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.193.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.194.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.195.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.196.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.197.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.198.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.199.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.200.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.201.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.202.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.203.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.204.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.205.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.206.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.207.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.208.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.209.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.210.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.211.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.212.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.213.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.214.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.215.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.216.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.217.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.218.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.219.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.220.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.221.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.222.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.223.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.224.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.225.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.226.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.227.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.228.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.229.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.230.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.231.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.232.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.233.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.234.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.235.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.236.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.237.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.238.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.239.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.240.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.241.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.242.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.243.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.244.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.245.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.246.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.247.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.248.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.249.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.250.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.251.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.252.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.253.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.254.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.255.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add default 1
+
+p 2 flow add qinq 128 512 port 0 id 1
+p 2 flow add default 1
+p 3 action flow bulk /tmp/action_bulk_512.txt
+p 4 action flow bulk /tmp/action_bulk_512.txt
+p 4 action dscp 0 class 0 color G
+p 4 action dscp 1 class 1 color Y
+p 4 action dscp 2 class 2 color R
+p 4 action dscp 3 class 3 color G
+p 4 action dscp 4 class 0 color Y
+p 4 action dscp 5 class 1 color R
+p 4 action dscp 6 class 2 color G
+p 4 action dscp 7 class 3 color Y
+p 4 action dscp 8 class 0 color R
+p 4 action dscp 9 class 1 color G
+p 4 action dscp 10 class 2 color Y
+p 4 action dscp 11 class 3 color R
+p 4 action dscp 12 class 0 color G
+p 4 action dscp 13 class 1 color Y
+p 4 action dscp 14 class 2 color R
+p 4 action dscp 15 class 3 color G
+p 4 action dscp 16 class 0 color Y
+p 4 action dscp 17 class 1 color R
+p 4 action dscp 18 class 2 color G
+p 4 action dscp 19 class 3 color Y
+p 4 action dscp 20 class 0 color R
+p 4 action dscp 21 class 1 color G
+p 4 action dscp 22 class 2 color Y
+p 4 action dscp 23 class 3 color R
+p 4 action dscp 24 class 0 color G
+p 4 action dscp 25 class 1 color Y
+p 4 action dscp 26 class 2 color R
+p 4 action dscp 27 class 3 color G
+p 4 action dscp 28 class 0 color Y
+p 4 action dscp 29 class 1 color R
+p 4 action dscp 30 class 2 color G
+p 4 action dscp 31 class 3 color Y
+p 4 action dscp 32 class 0 color R
+p 4 action dscp 33 class 1 color G
+p 4 action dscp 34 class 2 color Y
+p 4 action dscp 35 class 3 color R
+p 4 action dscp 36 class 0 color G
+p 4 action dscp 37 class 1 color Y
+p 4 action dscp 38 class 2 color R
+p 4 action dscp 39 class 3 color G
+p 4 action dscp 40 class 0 color Y
+p 4 action dscp 41 class 1 color R
+p 4 action dscp 42 class 2 color G
+p 4 action dscp 43 class 3 color Y
+p 4 action dscp 44 class 0 color R
+p 4 action dscp 45 class 1 color G
+p 4 action dscp 46 class 2 color Y
+p 4 action dscp 47 class 3 color R
+p 4 action dscp 48 class 0 color G
+p 4 action dscp 49 class 1 color Y
+p 4 action dscp 50 class 2 color R
+p 4 action dscp 51 class 3 color G
+p 4 action dscp 52 class 0 color Y
+p 4 action dscp 53 class 1 color R
+p 4 action dscp 54 class 2 color G
+p 4 action dscp 55 class 3 color Y
+p 4 action dscp 56 class 0 color R
+p 4 action dscp 57 class 1 color G
+p 4 action dscp 58 class 2 color Y
+p 4 action dscp 59 class 3 color R
+p 4 action dscp 60 class 0 color G
+p 4 action dscp 61 class 1 color Y
+p 4 action dscp 62 class 2 color R
+p 4 action dscp 63 class 3 color G
+p 5 route add 152.40.0.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:0
+p 5 route add 152.40.8.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:8
+p 5 route add 152.40.16.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:16
+p 5 route add 152.40.24.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:24
+p 5 route add 152.40.32.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:32
+p 5 route add 152.40.40.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:40
+p 5 route add 152.40.48.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:48
+p 5 route add 152.40.56.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:56
+p 5 route add 152.40.64.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:64
+p 5 route add 152.40.72.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:72
+p 5 route add 152.40.80.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:80
+p 5 route add 152.40.88.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:88
+p 5 route add 152.40.96.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:96
+p 5 route add 152.40.104.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:104
+p 5 route add 152.40.112.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:112
+p 5 route add 152.40.120.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:120
+p 5 route add 152.40.128.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:128
+p 5 route add 152.40.136.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:136
+p 5 route add 152.40.144.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:144
+p 5 route add 152.40.152.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:152
+p 5 route add 152.40.160.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:160
+p 5 route add 152.40.168.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:168
+p 5 route add 152.40.176.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:176
+p 5 route add 152.40.184.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:184
+p 5 route add 152.40.192.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:192
+p 5 route add 152.40.200.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:200
+p 5 route add 152.40.208.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:208
+p 5 route add 152.40.216.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:216
+p 5 route add 152.40.224.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:224
+p 5 route add 152.40.232.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:232
+p 5 route add 152.40.240.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:240
+p 5 route add 152.40.248.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:248
+p 5 route add default 1
+
+p 6 route add 152.16.0.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 0
+p 6 route add 152.16.1.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 1
+p 6 route add 152.16.2.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 2
+p 6 route add 152.16.3.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 3
+p 6 route add 152.16.4.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 4
+p 6 route add 152.16.5.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 5
+p 6 route add 152.16.6.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 6
+p 6 route add 152.16.7.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 7
+p 6 route add 152.16.8.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 8
+p 6 route add 152.16.9.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 9
+p 6 route add 152.16.10.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 10
+p 6 route add 152.16.11.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 11
+p 6 route add 152.16.12.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 12
+p 6 route add 152.16.13.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 13
+p 6 route add 152.16.14.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 14
+p 6 route add 152.16.15.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 15
+p 6 route add 152.16.16.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 16
+p 6 route add 152.16.17.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 17
+p 6 route add 152.16.18.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 18
+p 6 route add 152.16.19.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 19
+p 6 route add 152.16.20.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 20
+p 6 route add 152.16.21.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 21
+p 6 route add 152.16.22.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 22
+p 6 route add 152.16.23.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 23
+p 6 route add 152.16.24.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 24
+p 6 route add 152.16.25.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 25
+p 6 route add 152.16.26.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 26
+p 6 route add 152.16.27.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 27
+p 6 route add 152.16.28.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 28
+p 6 route add 152.16.29.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 29
+p 6 route add 152.16.30.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 30
+p 6 route add 152.16.31.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 31
+p 6 route add 152.16.32.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 32
+p 6 route add 152.16.33.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 33
+p 6 route add 152.16.34.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 34
+p 6 route add 152.16.35.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 35
+p 6 route add 152.16.36.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 36
+p 6 route add 152.16.37.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 37
+p 6 route add 152.16.38.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 38
+p 6 route add 152.16.39.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 39
+p 6 route add 152.16.40.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 40
+p 6 route add 152.16.41.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 41
+p 6 route add 152.16.42.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 42
+p 6 route add 152.16.43.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 43
+p 6 route add 152.16.44.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 44
+p 6 route add 152.16.45.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 45
+p 6 route add 152.16.46.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 46
+p 6 route add 152.16.47.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 47
+p 6 route add 152.16.48.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 48
+p 6 route add 152.16.49.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 49
+p 6 route add 152.16.50.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 50
+p 6 route add 152.16.51.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 51
+p 6 route add 152.16.52.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 52
+p 6 route add 152.16.53.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 53
+p 6 route add 152.16.54.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 54
+p 6 route add 152.16.55.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 55
+p 6 route add 152.16.56.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 56
+p 6 route add 152.16.57.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 57
+p 6 route add 152.16.58.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 58
+p 6 route add 152.16.59.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 59
+p 6 route add 152.16.60.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 60
+p 6 route add 152.16.61.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 61
+p 6 route add 152.16.62.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 62
+p 6 route add 152.16.63.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 63
+p 6 route add 152.16.64.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 64
+p 6 route add 152.16.65.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 65
+p 6 route add 152.16.66.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 66
+p 6 route add 152.16.67.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 67
+p 6 route add 152.16.68.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 68
+p 6 route add 152.16.69.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 69
+p 6 route add 152.16.70.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 70
+p 6 route add 152.16.71.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 71
+p 6 route add 152.16.72.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 72
+p 6 route add 152.16.73.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 73
+p 6 route add 152.16.74.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 74
+p 6 route add 152.16.75.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 75
+p 6 route add 152.16.76.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 76
+p 6 route add 152.16.77.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 77
+p 6 route add 152.16.78.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 78
+p 6 route add 152.16.79.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 79
+p 6 route add 152.16.80.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 80
+p 6 route add 152.16.81.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 81
+p 6 route add 152.16.82.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 82
+p 6 route add 152.16.83.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 83
+p 6 route add 152.16.84.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 84
+p 6 route add 152.16.85.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 85
+p 6 route add 152.16.86.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 86
+p 6 route add 152.16.87.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 87
+p 6 route add 152.16.88.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 88
+p 6 route add 152.16.89.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 89
+p 6 route add 152.16.90.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 90
+p 6 route add 152.16.91.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 91
+p 6 route add 152.16.92.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 92
+p 6 route add 152.16.93.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 93
+p 6 route add 152.16.94.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 94
+p 6 route add 152.16.95.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 95
+p 6 route add 152.16.96.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 96
+p 6 route add 152.16.97.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 97
+p 6 route add 152.16.98.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 98
+p 6 route add 152.16.99.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 99
+p 6 route add 152.16.100.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 100
+p 6 route add 152.16.101.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 101
+p 6 route add 152.16.102.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 102
+p 6 route add 152.16.103.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 103
+p 6 route add 152.16.104.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 104
+p 6 route add 152.16.105.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 105
+p 6 route add 152.16.106.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 106
+p 6 route add 152.16.107.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 107
+p 6 route add 152.16.108.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 108
+p 6 route add 152.16.109.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 109
+p 6 route add 152.16.110.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 110
+p 6 route add 152.16.111.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 111
+p 6 route add 152.16.112.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 112
+p 6 route add 152.16.113.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 113
+p 6 route add 152.16.114.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 114
+p 6 route add 152.16.115.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 115
+p 6 route add 152.16.116.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 116
+p 6 route add 152.16.117.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 117
+p 6 route add 152.16.118.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 118
+p 6 route add 152.16.119.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 119
+p 6 route add 152.16.120.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 120
+p 6 route add 152.16.121.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 121
+p 6 route add 152.16.122.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 122
+p 6 route add 152.16.123.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 123
+p 6 route add 152.16.124.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 124
+p 6 route add 152.16.125.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 125
+p 6 route add 152.16.126.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 126
+p 6 route add 152.16.127.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 127
+p 6 route add 152.16.128.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 128
+p 6 route add 152.16.129.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 129
+p 6 route add 152.16.130.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 130
+p 6 route add 152.16.131.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 131
+p 6 route add 152.16.132.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 132
+p 6 route add 152.16.133.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 133
+p 6 route add 152.16.134.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 134
+p 6 route add 152.16.135.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 135
+p 6 route add 152.16.136.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 136
+p 6 route add 152.16.137.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 137
+p 6 route add 152.16.138.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 138
+p 6 route add 152.16.139.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 139
+p 6 route add 152.16.140.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 140
+p 6 route add 152.16.141.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 141
+p 6 route add 152.16.142.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 142
+p 6 route add 152.16.143.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 143
+p 6 route add 152.16.144.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 144
+p 6 route add 152.16.145.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 145
+p 6 route add 152.16.146.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 146
+p 6 route add 152.16.147.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 147
+p 6 route add 152.16.148.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 148
+p 6 route add 152.16.149.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 149
+p 6 route add 152.16.150.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 150
+p 6 route add 152.16.151.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 151
+p 6 route add 152.16.152.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 152
+p 6 route add 152.16.153.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 153
+p 6 route add 152.16.154.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 154
+p 6 route add 152.16.155.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 155
+p 6 route add 152.16.156.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 156
+p 6 route add 152.16.157.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 157
+p 6 route add 152.16.158.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 158
+p 6 route add 152.16.159.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 159
+p 6 route add 152.16.160.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 160
+p 6 route add 152.16.161.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 161
+p 6 route add 152.16.162.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 162
+p 6 route add 152.16.163.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 163
+p 6 route add 152.16.164.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 164
+p 6 route add 152.16.165.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 165
+p 6 route add 152.16.166.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 166
+p 6 route add 152.16.167.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 167
+p 6 route add 152.16.168.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 168
+p 6 route add 152.16.169.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 169
+p 6 route add 152.16.170.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 170
+p 6 route add 152.16.171.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 171
+p 6 route add 152.16.172.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 172
+p 6 route add 152.16.173.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 173
+p 6 route add 152.16.174.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 174
+p 6 route add 152.16.175.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 175
+p 6 route add 152.16.176.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 176
+p 6 route add 152.16.177.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 177
+p 6 route add 152.16.178.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 178
+p 6 route add 152.16.179.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 179
+p 6 route add 152.16.180.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 180
+p 6 route add 152.16.181.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 181
+p 6 route add 152.16.182.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 182
+p 6 route add 152.16.183.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 183
+p 6 route add 152.16.184.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 184
+p 6 route add 152.16.185.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 185
+p 6 route add 152.16.186.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 186
+p 6 route add 152.16.187.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 187
+p 6 route add 152.16.188.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 188
+p 6 route add 152.16.189.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 189
+p 6 route add 152.16.190.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 190
+p 6 route add 152.16.191.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 191
+p 6 route add 152.16.192.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 192
+p 6 route add 152.16.193.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 193
+p 6 route add 152.16.194.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 194
+p 6 route add 152.16.195.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 195
+p 6 route add 152.16.196.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 196
+p 6 route add 152.16.197.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 197
+p 6 route add 152.16.198.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 198
+p 6 route add 152.16.199.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 199
+p 6 route add 152.16.200.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 200
+p 6 route add 152.16.201.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 201
+p 6 route add 152.16.202.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 202
+p 6 route add 152.16.203.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 203
+p 6 route add 152.16.204.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 204
+p 6 route add 152.16.205.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 205
+p 6 route add 152.16.206.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 206
+p 6 route add 152.16.207.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 207
+p 6 route add 152.16.208.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 208
+p 6 route add 152.16.209.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 209
+p 6 route add 152.16.210.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 210
+p 6 route add 152.16.211.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 211
+p 6 route add 152.16.212.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 212
+p 6 route add 152.16.213.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 213
+p 6 route add 152.16.214.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 214
+p 6 route add 152.16.215.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 215
+p 6 route add 152.16.216.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 216
+p 6 route add 152.16.217.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 217
+p 6 route add 152.16.218.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 218
+p 6 route add 152.16.219.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 219
+p 6 route add 152.16.220.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 220
+p 6 route add 152.16.221.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 221
+p 6 route add 152.16.222.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 222
+p 6 route add 152.16.223.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 223
+p 6 route add 152.16.224.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 224
+p 6 route add 152.16.225.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 225
+p 6 route add 152.16.226.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 226
+p 6 route add 152.16.227.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 227
+p 6 route add 152.16.228.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 228
+p 6 route add 152.16.229.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 229
+p 6 route add 152.16.230.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 230
+p 6 route add 152.16.231.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 231
+p 6 route add 152.16.232.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 232
+p 6 route add 152.16.233.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 233
+p 6 route add 152.16.234.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 234
+p 6 route add 152.16.235.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 235
+p 6 route add 152.16.236.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 236
+p 6 route add 152.16.237.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 237
+p 6 route add 152.16.238.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 238
+p 6 route add 152.16.239.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 239
+p 6 route add 152.16.240.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 240
+p 6 route add 152.16.241.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 241
+p 6 route add 152.16.242.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 242
+p 6 route add 152.16.243.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 243
+p 6 route add 152.16.244.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 244
+p 6 route add 152.16.245.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 245
+p 6 route add 152.16.246.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 246
+p 6 route add 152.16.247.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 247
+p 6 route add 152.16.248.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 248
+p 6 route add 152.16.249.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 249
+p 6 route add 152.16.250.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 250
+p 6 route add 152.16.251.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 251
+p 6 route add 152.16.252.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 252
+p 6 route add 152.16.253.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 253
+p 6 route add 152.16.254.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 254
+p 6 route add 152.16.255.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 255
+p 6 route add default 1
diff --git a/samples/vnf_samples/nsut/vpe/vpe_vnf_topology.yaml b/samples/vnf_samples/nsut/vpe/vpe_vnf_topology.yaml
index 4ade967f7..b63f4cc0f 100644
--- a/samples/vnf_samples/nsut/vpe/vpe_vnf_topology.yaml
+++ b/samples/vnf_samples/nsut/vpe/vpe_vnf_topology.yaml
@@ -21,10 +21,10 @@ nsd:nsd-catalog:
constituent-vnfd:
- member-vnf-index: '1'
vnfd-id-ref: tg__0
- VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #tg_vpe_upstream.yaml #VPE VNF
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #tg_trex_tpl.yaml #TREX
- member-vnf-index: '2'
vnfd-id-ref: vnf__0
- VNF model: ../../vnf_descriptors/vpe_vnf.yaml #tg_l3fwd.yaml #tg_trex_tpl.yaml #TREX
+ VNF model: ../../vnf_descriptors/vpe_vnf.yaml #VPE VNF
vld:
- id: uplink_0
@@ -33,10 +33,10 @@ nsd:nsd-catalog:
vnfd-connection-point-ref:
- member-vnf-index-ref: '1'
vnfd-connection-point-ref: xe0
- vnfd-id-ref: tg__0 #TREX
+ vnfd-id-ref: tg__0
- member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe0
- vnfd-id-ref: vnf__0 #VNF
+ vnfd-id-ref: vnf__0
- id: downlink_0
name: vnf__0 to tg__0 link 2
@@ -44,7 +44,7 @@ nsd:nsd-catalog:
vnfd-connection-point-ref:
- member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe1
- vnfd-id-ref: vnf__0 #L3fwd
+ vnfd-id-ref: vnf__0
- member-vnf-index-ref: '1'
vnfd-connection-point-ref: xe1
- vnfd-id-ref: tg__0 #VPE VNF
+ vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixia.yaml b/samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixia.yaml
index d7e11a696..70e80a7a6 100644
--- a/samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixia.yaml
+++ b/samples/vnf_samples/nsut/vpe/vpe_vnf_topology_ixia.yaml
@@ -36,7 +36,7 @@ nsd:nsd-catalog:
vnfd-id-ref: tg__0 #TREX
- member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe0
- vnfd-id-ref: vnf__0 #VNF
+ vnfd-id-ref: vnf__0 #VNF
- id: downlink_0
name: vnf__0 to tg__0 link 2
@@ -44,7 +44,7 @@ nsd:nsd-catalog:
vnfd-connection-point-ref:
- member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe1
- vnfd-id-ref: vnf__0 #L3fwd
+ vnfd-id-ref: vnf__0
- member-vnf-index-ref: '1'
vnfd-connection-point-ref: xe1
- vnfd-id-ref: tg__0 #VPE VNF
+ vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/traffic_profiles/acl/acl_ipv4_profile_1flows.ixncfg b/samples/vnf_samples/traffic_profiles/acl/acl_ipv4_profile_1flows.ixncfg
deleted file mode 100644
index 01269bee2..000000000
--- a/samples/vnf_samples/traffic_profiles/acl/acl_ipv4_profile_1flows.ixncfg
+++ /dev/null
Binary files differ
diff --git a/samples/vnf_samples/traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows.ixncfg b/samples/vnf_samples/traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows.ixncfg
deleted file mode 100644
index d24204385..000000000
--- a/samples/vnf_samples/traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows.ixncfg
+++ /dev/null
Binary files differ
diff --git a/samples/vnf_samples/traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows_3node_latency.ixncfg b/samples/vnf_samples/traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows_3node_latency.ixncfg
deleted file mode 100644
index fdf47dad8..000000000
--- a/samples/vnf_samples/traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows_3node_latency.ixncfg
+++ /dev/null
Binary files differ
diff --git a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_1024K-requests_65000_concurrency.yaml b/samples/vnf_samples/traffic_profiles/http_tests/HTTP_1024K-requests_65000_concurrency.yaml
deleted file mode 100644
index bfc75982f..000000000
--- a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_1024K-requests_65000_concurrency.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-schema: "nsb:traffic_profile:0.1"
-
-name: TrafficProfileGenericHTTP
-description: Traffic profile to run HTTP test
-traffic_profile:
- traffic_type: TrafficProfileGenericHTTP
-
-#http client specific values
-uplink_0:
- http_no_requests: "1000" # number of http iterations
- http_concurency: "65000" # number of threads to be run
- http_locator: "/1024K.bin" # http locator to be read
- http_peer_address: "152.40.40.20" # address range of the servers
- http_peer_port: "9004" # port range of the server
- http_client_address: "152.16.100.20" # address range of the servers
- private_subnet_mask: "255.255.255.0"
- attacker_tests: "False" # True : If attacker Test, False : Otherwise
-
-#http server side
-downlink_0:
- http_locator_image_size: "1024KB" # image size requested by http client
- http_bind_address: "152.40.40.20" # where address is bound
- http_bind_port: "9004" # when port is bound
- public_subnet_mask: "255.255.255.0"
diff --git a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml b/samples/vnf_samples/traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml
index 112836ac9..fec8b3316 100644
--- a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml
+++ b/samples/vnf_samples/traffic_profiles/http_tests/HTTP_1b-requests_65000_concurrency.yaml
@@ -5,37 +5,38 @@ description: Traffic profile to run HTTP test
traffic_profile:
traffic_type: TrafficProfileGenericHTTP
-#http client specific values
uplink_0:
- http_no_requests: "1000" # number of http iterations
- http_concurency: "65000" # number of threads to be run
- http_locator: "/1B.bin" # http locator to be read
- http_peer_address: "152.40.40.20" # address range of the servers
- http_peer_port: "9004" # port range of the server
- http_client_address: "152.16.100.20" # address range of the servers
- private_subnet_mask: "255.255.255.0"
- attacker_tests: "False" # True : If attacker Test, False : Otherwise
+ ip:
+ address: "152.16.100.32" # must be in same subnet with gateway
+ subnet_prefix: 24 # subnet prefix
+ mac: "Auto" # port mac addr or auto to generate automatically
+ gateway: <GATEWAY_ADDR> # will be taken from pod file
+
+ http_client:
+ simulated_users: {{ get(simulated_users, 'simulated_users.uplink_0', '65000') }} # number of threads to be run
+ page_object: {{ get(page_object, 'page_object.uplink_0', '/1b.html') }} # http locator to be read
-#http server side
downlink_0:
- http_locator_image_size: "1B" # image size requested by http client
- http_bind_address: "152.40.40.20" # where address is bound
- http_bind_port: "9004" # when port is bound
- public_subnet_mask: "255.255.255.0"
+ ip:
+ address: "152.40.40.32" # must be in same subnet with gateway
+ subnet_prefix: 24 # subnet prefix
+ mac: "Auto" # port mac addr or auto to generate automatically
+ gateway: <GATEWAY_ADDR> # will be taken from pod file
uplink_1:
- http_no_requests: "1000" # number of http iterations
- http_concurency: "65000" # number of threads to be run
- http_locator: "/1B.bin" # http locator to be read
- http_peer_address: "192.40.40.20" # address range of the servers
- http_peer_port: "9004" # port range of the server
- http_client_address: "152.16.100.20" # address range of the servers
- private_subnet_mask: "255.255.255.0"
- attacker_tests: "False" # True : If attacker Test, False : Otherwise
+ ip:
+ address: "12.12.12.32"
+ subnet_prefix: 24
+ mac: "00:00:00:00:00:01"
+ gateway: <GATEWAY_ADDR>
+
+ http_client:
+ simulated_users: {{ get(simulated_users, 'simulated_users.uplink_1', '65000') }} # number of threads to be run
+ page_object: {{ get(page_object, 'page_object.uplink_1', '/1b.html') }} # http locator to be read
-#http server side
downlink_1:
- http_locator_image_size: "1B" # image size requested by http client
- http_bind_address: "192.40.40.20" # where address is bound
- http_bind_port: "9004" # when port is bound
- public_subnet_mask: "255.255.255.0"
+ ip:
+ address: "13.13.13.32"
+ subnet_prefix: 24
+ mac: "00:00:00:00:00:02"
+ gateway: <GATEWAY_ADDR> \ No newline at end of file
diff --git a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_256K-requests_65000_concurrency.yaml b/samples/vnf_samples/traffic_profiles/http_tests/HTTP_256K-requests_65000_concurrency.yaml
deleted file mode 100644
index 100257533..000000000
--- a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_256K-requests_65000_concurrency.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-schema: "nsb:traffic_profile:0.1"
-
-name: TrafficProfileGenericHTTP
-description: Traffic profile to run HTTP test
-traffic_profile:
- traffic_type: TrafficProfileGenericHTTP
-
-#http client specific values
-uplink_0:
- http_no_requests: "1000" # number of http iterations
- http_concurency: "65000" # number of threads to be run
- http_locator: "/256K.bin" # http locator to be read
- http_peer_address: "152.40.40.20" # address range of the servers
- http_peer_port: "9004" # port range of the server
- http_client_address: "152.16.100.20" # address range of the servers
- private_subnet_mask: "255.255.255.0"
- attacker_tests: "False" # True : If attacker Test, False : Otherwise
-
-#http server side
-downlink_0:
- http_locator_image_size: "256KB" # image size requested by http client
- http_bind_address: "152.40.40.20" # where address is bound
- http_bind_port: "9004" # when port is bound
- public_subnet_mask: "255.255.255.0"
diff --git a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_4K-requests_65000_concurrency.yaml b/samples/vnf_samples/traffic_profiles/http_tests/HTTP_4K-requests_65000_concurrency.yaml
deleted file mode 100644
index a62aeb210..000000000
--- a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_4K-requests_65000_concurrency.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-schema: "nsb:traffic_profile:0.1"
-
-name: TrafficProfileGenericHTTP
-description: Traffic profile to run HTTP test
-traffic_profile:
- traffic_type: TrafficProfileGenericHTTP
-
-#http client specific values
-uplink_0:
- http_no_requests: "1000" # number of http iterations
- http_concurency: "65000" # number of threads to be run
- http_locator: "/4K.bin" # http locator to be read
- http_peer_address: "152.40.40.20" # address range of the servers
- http_peer_port: "9004" # port range of the server
- http_client_address: "152.16.100.20" # address range of the servers
- private_subnet_mask: "255.255.255.0"
- attacker_tests: "False" # True : If attacker Test, False : Otherwise
-
-#http server side
-downlink_0:
- http_locator_image_size: "4KB" # image size requested by http client
- http_bind_address: "152.40.40.20" # where address is bound
- http_bind_port: "9004" # when port is bound
- public_subnet_mask: "255.255.255.0"
diff --git a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_512K-requests_65000_concurrency.yaml b/samples/vnf_samples/traffic_profiles/http_tests/HTTP_512K-requests_65000_concurrency.yaml
deleted file mode 100644
index 9fd76354f..000000000
--- a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_512K-requests_65000_concurrency.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-schema: "nsb:traffic_profile:0.1"
-
-name: TrafficProfileGenericHTTP
-description: Traffic profile to run HTTP test
-traffic_profile:
- traffic_type: TrafficProfileGenericHTTP
-
-#http client specific values
-uplink_0:
- http_no_requests: "1000" # number of http iterations
- http_concurency: "65000" # number of threads to be run
- http_locator: "/512K.bin" # http locator to be read
- http_peer_address: "152.40.40.20" # address range of the servers
- http_peer_port: "9004" # port range of the server
- http_client_address: "152.16.100.20" # address range of the servers
- private_subnet_mask: "255.255.255.0"
- attacker_tests: "False" # True : If attacker Test, False : Otherwise
-
-#http server side
-downlink_0:
- http_locator_image_size: "512KB" # image size requested by http client
- http_bind_address: "152.40.40.20" # where address is bound
- http_bind_port: "9004" # when port is bound
- public_subnet_mask: "255.255.255.0"
diff --git a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_64K-requests_65000_concurrency.yaml b/samples/vnf_samples/traffic_profiles/http_tests/HTTP_64K-requests_65000_concurrency.yaml
deleted file mode 100644
index 4585b31e9..000000000
--- a/samples/vnf_samples/traffic_profiles/http_tests/HTTP_64K-requests_65000_concurrency.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-schema: "nsb:traffic_profile:0.1"
-
-name: TrafficProfileGenericHTTP
-description: Traffic profile to run HTTP test
-traffic_profile:
- traffic_type: TrafficProfileGenericHTTP
-
-#http client specific values
-uplink_0:
- http_no_requests: "1000" # number of http iterations
- http_concurency: "65000" # number of threads to be run
- http_locator: "/64K.bin" # http locator to be read
- http_peer_address: "152.40.40.20" # address range of the servers
- http_peer_port: "9004" # port range of the server
- http_client_address: "152.16.100.20" # address range of the servers
- private_subnet_mask: "255.255.255.0"
- attacker_tests: "False" # True : If attacker Test, False : Otherwise
-
-#http server side
-downlink_0:
- http_locator_image_size: "64KB" # image size requested by http client
- http_bind_address: "152.40.40.20" # where address is bound
- http_bind_port: "9004" # when port is bound
- public_subnet_mask: "255.255.255.0"
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-10.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-10.yaml
index f862abdb7..c1acb69a4 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-10.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-10.yaml
@@ -43,8 +43,8 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
+ enable_latency: False
uplink_0:
ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-2.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-2.yaml
index a3218879b..54f42b2bc 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-2.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-2.yaml
@@ -43,8 +43,8 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
+ enable_latency: False
uplink_0:
ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-3.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-3.yaml
index d849ed8ab..06fb220da 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-3.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-3.yaml
@@ -43,8 +43,8 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
+ enable_latency: False
uplink_0:
ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-4.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-4.yaml
index c03b28d60..f6a12eb31 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-4.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-4.yaml
@@ -43,8 +43,8 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
+ enable_latency: False
uplink_0:
ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-ixia-scale-out.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-ixia-scale-out.yaml
index ad703f291..43f52094a 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-ixia-scale-out.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-ixia-scale-out.yaml
@@ -44,8 +44,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
[% for vnf_num in range(num_vnfs|int) %]
uplink_[[ vnf_num ]]:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml
index 75927d40d..a025a6931 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml
@@ -44,8 +44,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
[% for vnf_num in range(num_vnfs|int) %]
uplink_[[ vnf_num ]]:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml
index 500163205..081d630ac 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml
@@ -44,8 +44,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
[% for vnf_num in range(num_vnfs|int) %]
uplink_[[ vnf_num ]]:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-scale-out.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-scale-out.yaml
index 78e5f516a..d93bf1145 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-scale-out.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-scale-out.yaml
@@ -44,8 +44,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
[% for vnf_num in range(num_vnfs|int) %]
uplink_[[ vnf_num ]]:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml
index 73c41099f..0e842d48a 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml
@@ -44,8 +44,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
[% for vnf_num in range(num_vnfs|int) %]
uplink_[[ vnf_num ]]:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml
new file mode 100644
index 000000000..d0be9f4c0
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml
@@ -0,0 +1,103 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# flow definition for ACL tests - 1K flows - ipv4 only
+#
+# the number of flows defines the widest range of parameters
+# for example if srcip_range=1.0.0.1-1.0.0.255 and dst_ip_range=10.0.0.1-10.0.1.255
+# and it should define only 16 flows
+#
+# there is assumption that packets generated will have a random sequences of following addresses pairs
+# in the packets
+# 1. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+# 2. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+# ...
+# 512. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+#
+# not all combination should be filled
+# Any other field with random range will be added to flow definition
+#
+# the example.yaml provides all possibilities for traffic generation
+#
+# the profile defines a public and private side to make limited traffic correlation
+# between private and public side same way as it is made by IXIA solution.
+#
+{% set vports = get(extra_args, 'vports', 2) %}
+---
+schema: "nsb:traffic_profile:0.1"
+
+# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
+
+name: rfc2544
+description: Traffic profile to run RFC2544 latency
+traffic_profile:
+ traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate: 100 # pc of linerate
+ duration: {{ duration }}
+
+{% for vport in range((vports / 2)|int) %}
+uplink_{{vport}}:
+ ipv4:
+ id: {{ (vport * 2) + 1 }}
+ outer_l2:
+ framesize:
+ 64B: "{{ get(imix, 'imix.uplink.64B', '0') }}"
+ 128B: "{{ get(imix, 'imix.uplink.128B', '0') }}"
+ 256B: "{{ get(imix, 'imix.uplink.256B', '0') }}"
+ 373b: "{{ get(imix, 'imix.uplink.373B', '0') }}"
+ 512B: "{{ get(imix, 'imix.uplink.512B', '0') }}"
+ 570B: "{{ get(imix, 'imix.uplink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}"
+ 1400B: "{{ get(imix, 'imix.uplink.1400B', '0') }}"
+ 1500B: "{{ get(imix, 'imix.uplink.1500B', '0') }}"
+ 1518B: "{{ get(imix, 'imix.uplink.1518B', '0') }}"
+ outer_l3v4:
+ proto: "udp"
+ srcip4: {{ get(flow, 'flow.src_ip_%s'| format(vport), '1.%s.1.1-1.%s.255.255'| format(vport, vport)) }}
+ dstip4: {{ get(flow, 'flow.dst_ip_%s'| format(vport), '90.%s.1.1-90.%s.255.255'| format(vport, vport)) }}
+ count: {{ get(flow, 'flow.count', '1') }}
+ ttl: 32
+ dscp: 0
+ outer_l4:
+ srcport: {{ get(flow, 'flow.src_port_%s'| format(vport), '1234-4321') }}
+ dstport: {{ get(flow, 'flow.dst_port_%s'| format(vport), '2001-4001') }}
+ count: {{ get(flow, 'flow.count', '1') }}
+downlink_{{vport}}:
+ ipv4:
+ id: {{ (vport * 2) + 2}}
+ outer_l2:
+ framesize:
+ 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}"
+ 128B: "{{ get(imix, 'imix.downlink.128B', '0') }}"
+ 256B: "{{ get(imix, 'imix.downlink.256B', '0') }}"
+ 373b: "{{ get(imix, 'imix.downlink.373B', '0') }}"
+ 512B: "{{ get(imix, 'imix.downlink.512B', '0') }}"
+ 570B: "{{ get(imix, 'imix.downlink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}"
+ 1400B: "{{ get(imix, 'imix.downlink.1400B', '0') }}"
+ 1500B: "{{ get(imix, 'imix.downlink.1500B', '0') }}"
+ 1518B: "{{ get(imix, 'imix.downlink.1518B', '0') }}"
+
+ outer_l3v4:
+ proto: "udp"
+ srcip4: {{ get(flow, 'flow.dst_ip_%s'| format(vport), '90.%s.1.1-90.%s.255.255'| format(vport, vport)) }}
+ dstip4: {{ get(flow, 'flow.src_ip_%s'| format(vport), '1.%s.1.1-1.%s.255.255'| format(vport, vport)) }}
+ count: {{ get(flow, 'flow.count', '1') }}
+ ttl: 32
+ dscp: 0
+ outer_l4:
+ srcport: {{ get(flow, 'flow.dst_port_%s'| format(vport), '1234-4321') }}
+ dstport: {{ get(flow, 'flow.src_port_%s'| format(vport), '2001-4001') }}
+ count: {{ get(flow, 'flow.count', '1') }}
+{% endfor %}
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-tmpl.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-tmpl.yaml
new file mode 100644
index 000000000..066efcac6
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-tmpl.yaml
@@ -0,0 +1,79 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = get(extra_args, 'vports', 2) %}
+{% set rate = get(extra_args, 'rate', 100) %}
+---
+schema: "nsb:traffic_profile:0.1"
+name: rfc2544
+description: Traffic profile to run RFC2544 latency
+traffic_profile:
+ traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate: {{ rate }} # pc of linerate
+ duration: {{ duration }}
+
+
+{% for vport in range(0,(vports/2)|int) %}
+uplink_{{vport}}:
+ ipv4:
+ id: {{vport * 2 + 1}}
+ outer_l2:
+ framesize:
+ 64B: "{{ get(imix, 'imix.uplink.64B', '0') }}"
+ 128B: "{{ get(imix, 'imix.uplink.128B', '0') }}"
+ 256B: "{{ get(imix, 'imix.uplink.256B', '0') }}"
+ 373b: "{{ get(imix, 'imix.uplink.373B', '0') }}"
+ 512B: "{{ get(imix, 'imix.uplink.512B', '0') }}"
+ 570B: "{{ get(imix, 'imix.uplink.570B', '0') }}"
+ 1400B: "{{ get(imix, 'imix.uplink.1400B', '0') }}"
+ 1500B: "{{ get(imix, 'imix.uplink.1500B', '0') }}"
+ 1518B: "{{ get(imix, 'imix.uplink.1518B', '0') }}"
+ outer_l3v4:
+ proto: "udp"
+ srcip4: "{{ get(flow, 'flow.src_ip_{{vport}}', '1.1.1.1-1.1.255.255') }}"
+ dstip4: "{{ get(flow, 'flow.dst_ip_{{vport}}', '90.90.1.1-90.90.255.255') }}"
+ count: "{{ get(flow, 'flow.count', '1') }}"
+ ttl: 32
+ dscp: 0
+ outer_l4:
+ srcport: "{{ get(flow, 'flow.src_port_{{vport}}', '1234-4321') }}"
+ dstport: "{{ get(flow, 'flow.dst_port_{{vport}}', '2001-4001') }}"
+ count: "{{ get(flow, 'flow.count', '1') }}"
+downlink_{{vport}}:
+ ipv4:
+ id: {{vport * 2 + 2}}
+ outer_l2:
+ framesize:
+ 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}"
+ 128B: "{{ get(imix, 'imix.downlink.128B', '0') }}"
+ 256B: "{{ get(imix, 'imix.downlink.256B', '0') }}"
+ 373b: "{{ get(imix, 'imix.downlink.373B', '0') }}"
+ 512B: "{{ get(imix, 'imix.downlink.512B', '0') }}"
+ 570B: "{{ get(imix, 'imix.downlink.570B', '0') }}"
+ 1400B: "{{ get(imix, 'imix.downlink.1400B', '0') }}"
+ 1500B: "{{ get(imix, 'imix.downlink.1500B', '0') }}"
+ 1518B: "{{ get(imix, 'imix.downlink.1518B', '0') }}"
+
+ outer_l3v4:
+ proto: "udp"
+ srcip4: "{{ get(flow, 'flow.dst_ip_{{vport}}', '90.90.1.1-90.90.255.255') }}"
+ dstip4: "{{ get(flow, 'flow.src_ip_{{vport}}', '1.1.1.1-1.1.255.255') }}"
+ count: "{{ get(flow, 'flow.count', '1') }}"
+ ttl: 32
+ dscp: 0
+ outer_l4:
+ srcport: "{{ get(flow, 'flow.dst_port_{{vport}}', '1234-4321') }}"
+ dstport: "{{ get(flow, 'flow.src_port_{{vport}}', '2001-4001') }}"
+ count: "{{ get(flow, 'flow.count', '1') }}"
+{% endfor %} \ No newline at end of file
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml
index 5b5b4473b..51c58962f 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -33,6 +33,7 @@
# the profile defines a public and private side to make limited traffic correlation
# between private and public side same way as it is made by IXIA solution.
#
+{% set frame_rate = get(extra_args, 'frame_rate' or 100 ) %}
schema: "nsb:traffic_profile:0.1"
# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
@@ -41,9 +42,9 @@ name: rfc2544
description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type : RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
- frame_rate : 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ frame_rate : {{ frame_rate }} # pc of linerate
+ duration: {{ duration }}
+ enable_latency: False
uplink_0:
ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-10.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-10.yaml
index 80d0872d5..1ff47a5b8 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-10.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-10.yaml
@@ -43,8 +43,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
uplink_0:
ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-2.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-2.yaml
index d6c9164a0..2b3e6f3d1 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-2.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-2.yaml
@@ -43,8 +43,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
uplink_0:
ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-4.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-4.yaml
index 55610b048..7df0682ed 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-4.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-4.yaml
@@ -43,8 +43,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
uplink_0:
ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-out.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-out.yaml
index d455bccea..82c487e1b 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-out.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-out.yaml
@@ -44,8 +44,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type: RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate: 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
[% for vnf_num in range(num_vnfs|int) %]
uplink_[[ vnf_num ]]:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml
new file mode 100644
index 000000000..223eae4ef
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml
@@ -0,0 +1,104 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# flow definition for ACL tests - 1K flows - ipv4 only
+#
+# the number of flows defines the widest range of parameters
+# for example if srcip_range=1.0.0.1-1.0.0.255 and dst_ip_range=10.0.0.1-10.0.1.255
+# and it should define only 16 flows
+#
+#there is assumption that packets generated will have a random sequences of following addresses pairs
+# in the packets
+# 1. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+# 2. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+# ...
+# 512. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+#
+# not all combination should be filled
+# Any other field with random range will be added to flow definition
+#
+# the example.yaml provides all possibilities for traffic generation
+#
+# the profile defines a public and private side to make limited traffic correlation
+# between private and public side same way as it is made by IXIA solution.
+#
+{% set vports = get(extra_args, 'vports', 2) %}
+---
+schema: "nsb:traffic_profile:0.1"
+
+# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
+
+name: rfc2544
+description: Traffic profile to run RFC2544 latency
+traffic_profile:
+ traffic_type : RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate : 100 # pc of linerate
+ duration: {{ duration }}
+
+{% for vport in range((vports / 2)|int) %}
+uplink_{{vport}}:
+ ipv4:
+ id: {{ (vport * 2) + 1 }}
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+ 128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.uplink.256B', '0') }}"
+ 373B: "{{get(imix, 'imix.uplink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.uplink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.uplink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}"
+ 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+
+ outer_l3v4:
+ proto: "udp"
+ srcip4: "{{ get(flow, 'flow.src_ip_%s'| format(vport), '10.%s.2.1-10.%s.2.255'| format(vport, vport)) }}"
+ dstip4: "{{ get(flow, 'flow.dst_ip_%s'| format(vport), '10.%s.3.1-10.%s.3.255'| format(vport, vport)) }}"
+ count: "{{ get(flow, 'flow.count', '1') }}"
+ ttl: 32
+ dscp: 0
+ outer_l4:
+ srcport: "{{ get(flow, 'flow.src_port_%s'| format(vport), '1234-4321') }}"
+ dstport: "{{ get(flow, 'flow.dst_port_%s'| format(vport), '2001-4001') }}"
+ count: "{{ get(flow, 'flow.count', '1') }}"
+downlink_{{vport}}:
+ ipv4:
+ id: {{ (vport * 2) + 2}}
+ outer_l2:
+ framesize:
+ 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}"
+ 128B: "{{ get(imix, 'imix.downlink.128B', '0') }}"
+ 256B: "{{ get(imix, 'imix.downlink.256B', '0') }}"
+ 373b: "{{ get(imix, 'imix.downlink.373B', '0') }}"
+ 512B: "{{ get(imix, 'imix.downlink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.downlink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}"
+ 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+
+ outer_l3v4:
+ proto: "udp"
+ srcip4: "{{ get(flow, 'flow.dst_ip_%s'| format(vport), '10.%s.3.1-10.%s.3.255'| format(vport, vport)) }}"
+ dstip4: "{{ get(flow, 'flow.public_ip_%s'| format(vport), '10.%s.2.1-10.%s.2.255'| format(vport, vport)) }}"
+ count: "{{ get(flow, 'flow.count', '1') }}"
+ ttl: 32
+ dscp: 0
+ outer_l4:
+ srcport: "{{ get(flow, 'flow.dst_port_%s'| format(vport), '1-65535') }}"
+ dstport: "{{ get(flow, 'flow.src_port_%s'| format(vport), '1-65535') }}"
+ count: "{{ get(flow, 'flow.count', '1') }}"
+{% endfor %}
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml
index 61cbd4e4e..809415a00 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml
@@ -42,8 +42,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type : RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate : 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
uplink_0:
ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_latency_vpp.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_latency_vpp.yaml
new file mode 100644
index 000000000..abbad6728
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_latency_vpp.yaml
@@ -0,0 +1,72 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+schema: "nsb:traffic_profile:0.1"
+
+# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
+
+name: rfc2544
+description: Traffic profile to run RFC2544 latency
+traffic_profile:
+ traffic_type: VppRFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+ enable_latency: true
+ intermediate_phases: 2
+ test_precision: 0.1
+ duration: 30
+ lower_bound: 1.0
+ upper_bound: 100.0
+ step_interval: 0.5
+ frame_rate: 100 # pc of linerate
+
+uplink_0:
+ ipv4:
+ id: 1
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+ 128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.uplink.256B', '0') }}"
+ 373B: "{{get(imix, 'imix.uplink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.uplink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.uplink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+ outer_l3v4:
+ proto: 61
+ srcip4: "{{get(flow, 'flow.src_ip_0', '10.0.0.0-10.0.0.100') }}"
+ dstip4: "{{get(flow, 'flow.dst_ip_0', '20.0.0.0-20.0.0.100') }}"
+ count: "{{get(flow, 'flow.count', '1') }}"
+downlink_0:
+ ipv4:
+ id: 2
+ outer_l2:
+ framesize:
+ 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}"
+ 128B: "{{ get(imix, 'imix.downlink.128B', '0') }}"
+ 256B: "{{ get(imix, 'imix.downlink.256B', '0') }}"
+ 373b: "{{ get(imix, 'imix.downlink.373B', '0') }}"
+ 512B: "{{ get(imix, 'imix.downlink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.downlink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+ outer_l3v4:
+ proto: 61
+ srcip4: "{{get(flow, 'flow.dst_ip_0', '20.0.0.0-20.0.0.100') }}"
+ dstip4: "{{get(flow, 'flow.src_ip_0', '10.0.0.0-10.0.0.100') }}"
+ count: "{{get(flow, 'flow.count', '1') }}" \ No newline at end of file
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_scale_out.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_scale_out.yaml
new file mode 100644
index 000000000..71e9e817b
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_scale_out.yaml
@@ -0,0 +1,102 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# flow definition for ACL tests - 1K flows - ipv4 only
+#
+# the number of flows defines the widest range of parameters
+# for example if srcip_range=1.0.0.1-1.0.0.255 and dst_ip_range=10.0.0.1-10.0.1.255
+# and it should define only 16 flows
+#
+#there is assumption that packets generated will have a random sequences of following addresses pairs
+# in the packets
+# 1. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+# 2. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+# ...
+# 512. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+#
+# not all combination should be filled
+# Any other field with random range will be added to flow definition
+#
+# the example.yaml provides all possibilities for traffic generation
+#
+# the profile defines a public and private side to make limited traffic correlation
+# between private and public side same way as it is made by IXIA solution.
+#
+{% set num_vnfs = get(extra_args, 'num_vnfs', 1) %}
+---
+schema: "nsb:traffic_profile:0.1"
+name: rfc2544
+description: Traffic profile to run RFC2544 latency
+traffic_profile:
+ traffic_type : RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate : 100 # pc of linerate
+ # that specifies a range (e.g. ipv4 address, port)
+{% for vnf_num in range(num_vnfs|int) %}
+uplink_{{ vnf_num }}:
+ ipv4:
+ id: {{ (vnf_num * 2) + 1 }}
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+ 128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.uplink.256B', '0') }}"
+ 373B: "{{get(imix, 'imix.uplink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.uplink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.uplink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+
+ outer_l3v4:
+ proto: "udp"
+ srcip4: "{{get(flow, 'flow.src_ip_{{ vnf_num }}', '10.0.2.1-10.0.2.255') }}"
+ dstip4: "{{get(flow, 'flow.dst_ip_{{ vnf_num }}', '10.0.3.1-10.0.3.255') }}"
+ count: "{{get(flow, 'flow.count', '1') }}"
+ ttl: 32
+ dscp: 0
+ outer_l4:
+ srcport: "{{get(flow, 'flow.src_port_{{ vnf_num }}', '1234-4321') }}"
+ dstport: "{{get(flow, 'flow.dst_port_{{ vnf_num }}', '2001-4001') }}"
+ count: "{{get(flow, 'flow.count', '1') }}"
+downlink_{{ vnf_num }}:
+ ipv4:
+ id: {{ (vnf_num * 2) + 2 }}
+ outer_l2:
+ framesize:
+ 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}"
+ 128B: "{{ get(imix, 'imix.downlink.128B', '0') }}"
+ 256B: "{{ get(imix, 'imix.downlink.256B', '0') }}"
+ 373b: "{{ get(imix, 'imix.downlink.373B', '0') }}"
+ 512B: "{{ get(imix, 'imix.downlink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.downlink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+
+ outer_l3v4:
+ proto: "udp"
+ srcip4: "{{get(flow, 'flow.dst_ip_{{ vnf_num }}', '10.0.3.1-10.0.3.255') }}"
+ dstip4: "{{get(flow, 'flow.src_ip_{{ vnf_num }}', '10.0.2.1-10.0.2.255') }}"
+ count: "{{get(flow, 'flow.count', '1') }}"
+ ttl: 32
+ dscp: 0
+ outer_l4:
+ srcport: "{{get(flow, 'flow.dst_port_{{ vnf_num }}', '1234-4321') }}"
+ dstport: "{{get(flow, 'flow.src_port_{{ vnf_num }}', '2001-4001') }}"
+ count: "{{get(flow, 'flow.count', '1') }}"
+{% endfor %}
diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml
index 20bc6568d..e113c9de2 100644
--- a/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml
+++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml
@@ -42,8 +42,7 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type : RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate : 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
uplink_0:
ipv4:
diff --git a/samples/vnf_samples/traffic_profiles/ixia/ixia_ipv4_profile_2_port.ixncfg b/samples/vnf_samples/traffic_profiles/ixia/ixia_ipv4_profile_2_port.ixncfg
deleted file mode 100644
index 01269bee2..000000000
--- a/samples/vnf_samples/traffic_profiles/ixia/ixia_ipv4_profile_2_port.ixncfg
+++ /dev/null
Binary files differ
diff --git a/samples/vnf_samples/traffic_profiles/ixia/ixia_ipv4_profile_4_port.ixncfg b/samples/vnf_samples/traffic_profiles/ixia/ixia_ipv4_profile_4_port.ixncfg
deleted file mode 100644
index 76accc1ed..000000000
--- a/samples/vnf_samples/traffic_profiles/ixia/ixia_ipv4_profile_4_port.ixncfg
+++ /dev/null
Binary files differ
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml
index 7b66d663b..1ecb2cb2e 100644
--- a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml
+++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency.yaml
@@ -19,7 +19,8 @@
# the profile defines a public and private side to make limited traffic correlation
# between private and public side same way as it is made by IXIA solution.
#
-schema: "isb:traffic_profile:0.1"
+{% set frame_rate = get(extra_args, 'frame_rate' or '100%' ) %}
+schema: "nsb:traffic_profile:0.1"
# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
@@ -27,9 +28,9 @@ name: rfc2544
description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type : IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
- frame_rate : 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ frame_rate : {{ frame_rate }} # pc of linerate
+ duration: {{ duration }}
+ enable_latency: True
uplink_0:
ipv4:
@@ -53,12 +54,15 @@ uplink_0:
srcip4: "{{get(flow, 'flow.src_ip_0', '1.1.1.1-1.15.255.255') }}"
dstip4: "{{get(flow, 'flow.dst_ip_0', '90.90.1.1-90.105.255.255') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 0
outer_l4:
srcport: "{{get(flow, 'flow.src_port_0', '1234') }}"
dstport: "{{get(flow, 'flow.dst_port_0', '2001') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
downlink_0:
ipv4:
id: 2
@@ -84,12 +88,15 @@ downlink_0:
dstip4: "{{get(flow, 'flow.public_ip_0', '90.90.1.1-90.105.255.255') }}"
{% endif %}
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 0
outer_l4:
srcport: "{{get(flow, 'flow.src_port_0', '1234') }}"
dstport: "{{get(flow, 'flow.dst_port_0', '2001') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
uplink_1:
ipv4:
id: 3
@@ -112,12 +119,15 @@ uplink_1:
srcip4: "{{get(flow, 'flow.src_ip_1', '1.1.1.1-1.15.255.255') }}"
dstip4: "{{get(flow, 'flow.dst_ip_1', '90.90.1.1-90.105.255.255') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 0
outer_l4:
srcport: "{{get(flow, 'flow.src_port_1', '1234') }}"
dstport: "{{get(flow, 'flow.dst_port_1', '2001') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
downlink_1:
ipv4:
id: 4
@@ -143,9 +153,12 @@ downlink_1:
dstip4: "{{get(flow, 'flow.public_ip_1', '90.90.1.1-90.105.255.255') }}"
{% endif %}
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 0
outer_l4:
srcport: "{{get(flow, 'flow.dst_port_1', '1234') }}"
dstport: "{{get(flow, 'flow.src_port_1', '2001') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml
new file mode 100644
index 000000000..24688fe95
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml
@@ -0,0 +1,64 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+{% set vports = get(extra_args, 'vports', '2') %}
+---
+schema: "nsb:traffic_profile:0.1"
+
+# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
+
+name: rfc2544
+description: Traffic profile to run RFC2544 latency with L3 support
+traffic_profile:
+ traffic_type : IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate : 100% # pc of linerate
+ duration: {{ duration }}
+ enable_latency: True
+
+{% for vport in range(vports|int) %}
+uplink_{{ vport }}:
+ ipv4:
+ id: {{ (vport * 2) + 1 }}
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+ 128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.uplink.256B', '0') }}"
+ 373b: "{{get(imix, 'imix.uplink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.uplink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.uplink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+
+downlink_{{vport}}:
+ ipv4:
+ id: {{ (vport * 2) + 2 }}
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.downlink.64B', '0') }}"
+ 128B: "{{get(imix, 'imix.downlink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.downlink.256B', '0') }}"
+ 373b: "{{get(imix, 'imix.downlink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.downlink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.downlink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+{% endfor %}
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_cgnapt.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_cgnapt.yaml
index 8fdfe9b2f..9e8f67216 100644
--- a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_cgnapt.yaml
+++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_cgnapt.yaml
@@ -28,8 +28,8 @@ description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type : IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
frame_rate : 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
-
+ duration: {{ duration }}
+ enable_latency: True
uplink_0:
ipv4:
@@ -51,12 +51,15 @@ uplink_0:
srcip4: "{{get(flow, 'flow.src_ip_0', '1.1.1.1-1.15.255.255') }}"
dstip4: "{{get(flow, 'flow.dst_ip_0', '90.90.1.1-90.105.255.255') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 0
outer_l4:
srcport: "{{get(flow, 'flow.src_port_0', '1234') }}"
dstport: "{{get(flow, 'flow.dst_port_0', '2001') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
downlink_0:
ipv4:
id: 2
@@ -77,12 +80,15 @@ downlink_0:
srcip4: "{{get(flow, 'flow.dst_ip_0', '1.1.1.1-1.15.255.255') }}"
dstip4: "{{get(flow, 'flow.public_ip_0', '10.0.2.1-10.0.2.255') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 0
outer_l4:
srcport: "{{get(flow, 'flow.src_port_0', '1234') }}"
dstport: "{{get(flow, 'flow.dst_port_0', '2001') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
uplink_1:
ipv4:
id: 3
@@ -103,12 +109,15 @@ uplink_1:
srcip4: "{{get(flow, 'flow.src_ip_1', '1.1.1.1-1.15.255.255') }}"
dstip4: "{{get(flow, 'flow.dst_ip_1', '90.90.1.1-90.105.255.255') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 0
outer_l4:
srcport: "{{get(flow, 'flow.src_port_1', '1234') }}"
dstport: "{{get(flow, 'flow.dst_port_1', '2001') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
downlink_1:
ipv4:
id: 4
@@ -129,9 +138,12 @@ downlink_1:
srcip4: "{{get(flow, 'flow.dst_ip_1', '1.1.1.1-1.15.255.255') }}"
dstip4: "{{get(flow, 'flow.public_ip_1', '10.0.2.1-10.0.2.255') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 0
outer_l4:
srcport: "{{get(flow, 'flow.dst_port_1', '1234') }}"
dstport: "{{get(flow, 'flow.src_port_1', '2001') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_scale_up.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_scale_up.yaml
new file mode 100644
index 000000000..30675375b
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_scale_up.yaml
@@ -0,0 +1,95 @@
+# Copyright (c) 2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set vports = get(extra_args, 'vports', 2) %}
+---
+schema: "nsb:traffic_profile:0.1"
+
+# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
+
+name: rfc2544
+description: Traffic profile to run RFC2544 latency
+traffic_profile:
+ traffic_type : IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate : 100% # pc of linerate
+ duration: {{ duration }}
+ enable_latency: True
+
+{% for vport in range((vports / 2)|int) %}
+uplink_{{vport}}:
+ ipv4:
+ id: {{ (vport * 2) + 1 }}
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+ 128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.uplink.256B', '0') }}"
+ 373b: "{{get(imix, 'imix.uplink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.uplink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.uplink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+
+ outer_l3v4:
+ proto: "udp"
+ srcip4: "{{ get(flow, 'flow.src_ip_%s'| format(vport), '1.%s.1.1-1.%s.255.255'| format(vport, vport)) }}"
+ dstip4: "{{ get(flow, 'flow.dst_ip_%s'| format(vport), '90.%s.1.1-90.%s.255.255'| format(vport, vport)) }}"
+ count: "{{ get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
+ ttl: 32
+ dscp: 0
+ outer_l4:
+ srcport: "{{ get(flow, 'flow.src_port_%s'| format(vport), '1234-4321') }}"
+ dstport: "{{ get(flow, 'flow.dst_port_%s'| format(vport), '2001-4001') }}"
+ count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
+downlink_{{vport}}:
+ ipv4:
+ id: {{ (vport * 2) + 2 }}
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.downlink.64B', '0') }}"
+ 128B: "{{get(imix, 'imix.downlink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.downlink.256B', '0') }}"
+ 373b: "{{get(imix, 'imix.downlink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.downlink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.downlink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+
+ outer_l3v4:
+ proto: "udp"
+ srcip4: "{{ get(flow, 'flow.src_ip_%s'| format(vport), '1.%s.1.1-1.%s.255.255'| format(vport, vport)) }}"
+ dstip4: "{{ get(flow, 'flow.dst_ip_%s'| format(vport), '90.%s.1.1-90.%s.255.255'| format(vport, vport)) }}"
+ {% if get(flow, 'flow.public_ip_%s'| format(vport)) is defined %}
+ dstip4: "{{get(flow, 'flow.public_ip_%s'| format(vport), '90.90.1.1-90.105.255.255') }}"
+ {% endif %}
+ count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
+ ttl: 32
+ dscp: 0
+ outer_l4:
+ srcport: "{{ get(flow, 'flow.dst_port_%s'| format(vport), '1234-4321') }}"
+ dstport: "{{ get(flow, 'flow.src_port_%s'| format(vport), '2001-4001') }}"
+ count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
+{% endfor %}
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng_1port_congested-8.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng_1port_congested-8.yaml
new file mode 100644
index 000000000..3cd6f652a
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng_1port_congested-8.yaml
@@ -0,0 +1,392 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: "nsb:traffic_profile:0.1"
+
+# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
+
+name: rfc2544
+description: Traffic profile to run RFC2544 latency
+traffic_profile:
+ traffic_type : IXIARFC2544PppoeScenarioProfile # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate : 12.5% # pc of linerate
+ duration: {{ duration }}
+ enable_latency: True
+
+uplink_0: # traffic flow from xe0 to xe1
+ ipv4:
+ id: 1
+ frame_rate: 25%
+ port: xe0
+ outer_l2:
+ framesize: &uplink_framesize
+ 64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+ 68B: "{{get(imix, 'imix.uplink.68B', '0') }}"
+ 70B: "{{get(imix, 'imix.uplink.70B', '0') }}"
+ 128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.uplink.256B', '0') }}"
+ 373B: "{{get(imix, 'imix.uplink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.uplink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.uplink.570B', '0') }}"
+ 932B: "{{get(imix, 'imix.uplink.932B', '0') }}"
+ 940B: "{{get(imix, 'imix.uplink.940B', '0') }}"
+ 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+ 1470B: "{{get(imix, 'imix.uplink.1470B', '0') }}"
+ 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+
+ outer_l3v4:
+ priority: &uplink_precedence
+ {% if priority %}
+ {{ priority }}
+ {% else %}
+ tos:
+ precedence: [0, 4, 7]
+ {% endif %}
+downlink_0: # traffic flow from xe1 to xe0
+ ipv4:
+ id: 2
+ frame_rate: 50%
+ port: xe1
+ outer_l2:
+ framesize: &downlink_framesize
+ 64B: "{{get(imix, 'imix.downlink.64B', '0') }}"
+ 68B: "{{get(imix, 'imix.downlink.68B', '0') }}"
+ 70B: "{{get(imix, 'imix.downlink.70B', '0') }}"
+ 128B: "{{get(imix, 'imix.downlink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.downlink.256B', '0') }}"
+ 373B: "{{get(imix, 'imix.downlink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.downlink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.downlink.570B', '0') }}"
+ 932B: "{{get(imix, 'imix.downlink.932B', '0') }}"
+ 940B: "{{get(imix, 'imix.downlink.940B', '0') }}"
+ 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+ 1470B: "{{get(imix, 'imix.downlink.1470B', '0') }}"
+ 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+
+ outer_l3v4:
+ priority: &downlink_precedence
+ {% if priority %}
+ {{ priority }}
+ {% else %}
+ tos:
+ precedence: [0, 4, 7]
+ {% endif %}
+uplink_1: # traffic flow from xe0 to xe1
+ ipv4:
+ id: 3
+ frame_rate: 25%
+ port: xe0
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_1: # traffic flow from xe1 to xe0
+ ipv4:
+ id: 4
+ frame_rate: 50%
+ port: xe1
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_2: # traffic flow from xe0 to xe3
+ ipv4:
+ id: 5
+ frame_rate: 25%
+ port: xe0
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_2: # traffic flow from xe3 to xe0
+ ipv4:
+ id: 6
+ frame_rate: 50%
+ port: xe3
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_3: # traffic flow from xe0 to xe3
+ ipv4:
+ id: 7
+ frame_rate: 25%
+ port: xe0
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_3: # traffic flow from xe3 to xe0
+ ipv4:
+ id: 8
+ frame_rate: 50%
+ port: xe3
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_4: # traffic flow from xe2 to xe5
+ ipv4:
+ id: 9
+ frame_rate: 25%
+ port: xe2
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_4: # traffic flow from xe5 to xe2
+ ipv4:
+ id: 10
+ frame_rate: 7%
+ port: xe5
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_5: # traffic flow from xe2 to xe5
+ ipv4:
+ id: 11
+ frame_rate: 25%
+ port: xe2
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_5: # traffic flow from xe5 to xe2
+ ipv4:
+ id: 12
+ frame_rate: 7%
+ port: xe5
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_6: # traffic flow from xe2 to xe5
+ ipv4:
+ id: 13
+ frame_rate: 25%
+ port: xe2
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_6: # traffic flow from xe5 to xe2
+ ipv4:
+ id: 14
+ frame_rate: 7%
+ port: xe5
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_7: # traffic flow from xe2 to xe5
+ ipv4:
+ id: 15
+ frame_rate: 25%
+ port: xe2
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_7: # traffic flow from xe5 to xe2
+ ipv4:
+ id: 16
+ frame_rate: 7%
+ port: xe5
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_8: # traffic flow from xe4 to xe5
+ ipv4:
+ id: 17
+ frame_rate: 25%
+ port: xe4
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_8: # traffic flow from xe5 to xe4
+ ipv4:
+ id: 18
+ frame_rate: 7%
+ port: xe5
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_9: # traffic flow from xe4 to xe5
+ ipv4:
+ id: 19
+ frame_rate: 25%
+ port: xe4
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_9: # traffic flow from xe5 to xe4
+ ipv4:
+ id: 20
+ frame_rate: 7%
+ port: xe5
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_10: # traffic flow from xe4 to xe7
+ ipv4:
+ id: 21
+ frame_rate: 25%
+ port: xe4
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_10: # traffic flow from xe7 to xe4
+ ipv4:
+ id: 22
+ frame_rate: 7%
+ port: xe7
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_11: # traffic flow from xe4 to xe7
+ ipv4:
+ id: 23
+ frame_rate: 25%
+ port: xe4
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_11: # traffic flow from xe7 to xe4
+ ipv4:
+ id: 24
+ frame_rate: 7%
+ port: xe7
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+
+uplink_12: # traffic flow from xe6 to xe7
+ ipv4:
+ id: 25
+ frame_rate: 25%
+ port: xe6
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_12: # traffic flow from xe7 to xe6
+ ipv4:
+ id: 26
+ frame_rate: 7%
+ port: xe7
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_13: # traffic flow from xe6 to xe7
+ ipv4:
+ id: 27
+ frame_rate: 25%
+ port: xe6
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_13: # traffic flow from xe7 to xe6
+ ipv4:
+ id: 28
+ frame_rate: 7%
+ port: xe7
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_14: # traffic flow from xe6 to xe7
+ ipv4:
+ id: 29
+ frame_rate: 25%
+ port: xe6
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_14: # traffic flow from xe7 to xe6
+ ipv4:
+ id: 30
+ frame_rate: 7%
+ port: xe7
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
+uplink_15: # traffic flow from xe6 to xe7
+ ipv4:
+ id: 31
+ frame_rate: 25%
+ port: xe6
+ outer_l2:
+ framesize: *uplink_framesize
+
+ outer_l3v4:
+ priority: *uplink_precedence
+downlink_15: # traffic flow from xe7 to xe6
+ ipv4:
+ id: 32
+ frame_rate: 7%
+ port: xe7
+ outer_l2:
+ framesize: *downlink_framesize
+
+ outer_l3v4:
+ priority: *downlink_precedence
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng_scale_up.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng_scale_up.yaml
new file mode 100644
index 000000000..cdab7d968
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vbng_scale_up.yaml
@@ -0,0 +1,90 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+{% set ports = get(extra_args, 'access_vports_num')|int %}
+schema: "nsb:traffic_profile:0.1"
+
+# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
+
+name: rfc2544
+description: Traffic profile to run RFC2544 latency
+traffic_profile:
+ traffic_type : IXIARFC2544PppoeScenarioProfile # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate : 100% # pc of linerate
+ duration: {{ duration }}
+ enable_latency: True
+
+{% for i in range(ports|int) %}
+uplink_{{ i }}:
+ ipv4:
+ id: {{ (i * 2) + 1 }}
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+ 68B: "{{get(imix, 'imix.uplink.68B', '0') }}"
+ 70B: "{{get(imix, 'imix.uplink.70B', '0') }}"
+ 128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.uplink.256B', '0') }}"
+ 373B: "{{get(imix, 'imix.uplink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.uplink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.uplink.570B', '0') }}"
+ 932B: "{{get(imix, 'imix.uplink.932B', '0') }}"
+ 940B: "{{get(imix, 'imix.uplink.940B', '0') }}"
+ 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+ 1470B: "{{get(imix, 'imix.uplink.1470B', '0') }}"
+ 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+
+ outer_l3v4:
+ priority:
+ {% if priority %}
+ {{ priority }}
+ {% else %}
+ tos:
+ precedence: [0, 4, 7]
+ {% endif %}
+downlink_{{ i }}:
+ ipv4:
+ id: {{ (i * 2) + 2 }}
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.downlink.64B', '0') }}"
+ 68B: "{{get(imix, 'imix.downlink.68B', '0') }}"
+ 70B: "{{get(imix, 'imix.downlink.70B', '0') }}"
+ 128B: "{{get(imix, 'imix.downlink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.downlink.256B', '0') }}"
+ 373B: "{{get(imix, 'imix.downlink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.downlink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.downlink.570B', '0') }}"
+ 932B: "{{get(imix, 'imix.downlink.932B', '0') }}"
+ 940B: "{{get(imix, 'imix.downlink.940B', '0') }}"
+ 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+ 1470B: "{{get(imix, 'imix.downlink.1470B', '0') }}"
+ 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+
+ outer_l3v4:
+ priority:
+ {% if priority %}
+ {{ priority }}
+ {% else %}
+ tos:
+ precedence: [0, 4, 7]
+ {% endif %}
+{% endfor %}
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vpe.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vpe.yaml
index 4d73b8ffe..a21227f38 100644
--- a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vpe.yaml
+++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_vpe.yaml
@@ -41,15 +41,16 @@ name: rfc2544
description: Traffic profile to run RFC2544 latency
traffic_profile:
traffic_type : IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
- frame_rate : 100 # pc of linerate
- # that specifies a range (e.g. ipv4 address, port)
+ frame_rate : 100% # pc of linerate
+ injection_time: {{ injection_time }}
+ enable_latency: True
uplink_0:
ipv4:
id: 1
outer_l2:
framesize:
- 64B: "{{ get(imix, 'imix.uplink.imix_small', '0') }}"
+ 64B: "{{ get(imix, 'imix.uplink.imix_64B', '0') }}"
128B: "{{ get(imix, 'imix.uplink.imix_128B', '0') }}"
256B: "{{ get(imix, 'imix.uplink.imix_256B', '0') }}"
373b: "{{ get(imix, 'imix.uplink.imix_373B', '0') }}"
@@ -68,10 +69,12 @@ uplink_0:
cfi: 0
outer_l3v4:
- proto: "tcp"
+ proto: "udp"
srcip4: "{{get(flow, 'flow.src_ip_0', '192.168.0.0-192.168.255.255') }}"
dstip4: "{{get(flow, 'flow.dst_ip_0', '192.16.0.0-192.16.0.31') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 32
@@ -79,12 +82,13 @@ uplink_0:
srcport: "{{get(flow, 'flow.src_port_0', '0') }}"
dstport: "{{get(flow, 'flow.dst_port_0', '0') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
downlink_0:
- id: 2
ipv4:
+ id: 2
outer_l2:
framesize:
- 64B: "{{ get(imix, 'imix.uplink.imix_small', '0') }}"
+ 64B: "{{ get(imix, 'imix.uplink.imix_64B', '0') }}"
128B: "{{ get(imix, 'imix.uplink.imix_128B', '0') }}"
256B: "{{ get(imix, 'imix.uplink.imix_256B', '0') }}"
373b: "{{ get(imix, 'imix.uplink.imix_373B', '0') }}"
@@ -93,10 +97,12 @@ downlink_0:
1518B: "{{get(imix, 'imix.uplink.imix_1500B', '0') }}"
outer_l3v4:
- proto: "tcp"
+ proto: "udp"
srcip4: "{{get(flow, 'flow.dst_ip_0', '192.16.0.0-192.16.0.31') }}"
dstip4: "{{get(flow, 'flow.src_ip_0', '192.168.0.0-192.168.255.255') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 32
@@ -104,12 +110,13 @@ downlink_0:
srcport: "{{get(flow, 'flow.dst_port_0', '0') }}"
dstport: "{{get(flow, 'flow.src_port_0', '0') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
uplink_1:
- id: 3
ipv4:
+ id: 3
outer_l2:
framesize:
- 64B: "{{ get(imix, 'imix.uplink.imix_small', '0') }}"
+ 64B: "{{ get(imix, 'imix.uplink.imix_64B', '0') }}"
128B: "{{ get(imix, 'imix.uplink.imix_128B', '0') }}"
256B: "{{ get(imix, 'imix.uplink.imix_256B', '0') }}"
373b: "{{ get(imix, 'imix.uplink.imix_373B', '0') }}"
@@ -128,9 +135,12 @@ uplink_1:
cfi: 0
outer_l3v4:
- proto: "tcp"
+ proto: "udp"
srcip4: "{{get(flow, 'flow.srcip_1', '192.168.0.0-192.168.255.255') }}"
dstip4: "{{get(flow, 'flow.dstip_1', '192.16.0.0-192.16.0.31') }}"
+ count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 32
@@ -138,12 +148,13 @@ uplink_1:
srcport: "{{get(flow, 'flow.src_port_1', '0') }}"
dstport: "{{get(flow, 'flow.dst_port_1', '0') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
downlink_1:
- id: 4
ipv4:
+ id: 4
outer_l2:
framesize:
- 64B: "{{ get(imix, 'imix.uplink.imix_small', '0') }}"
+ 64B: "{{ get(imix, 'imix.uplink.imix_64B', '0') }}"
128B: "{{ get(imix, 'imix.uplink.imix_128B', '0') }}"
256B: "{{ get(imix, 'imix.uplink.imix_256B', '0') }}"
373b: "{{ get(imix, 'imix.uplink.imix_373B', '0') }}"
@@ -152,10 +163,12 @@ downlink_1:
1518B: "{{get(imix, 'imix.uplink.imix_1500B', '0') }}"
outer_l3v4:
- proto: "tcp"
+ proto: "udp"
srcip4: "{{get(flow, 'flow.dst_ip_1', '192.16.0.0-192.16.0.31') }}"
dstip4: "{{get(flow, 'flow.src_ip_1', '192.168.0.0-192.168.255.255') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ srcseed: "{{get(flow, 'flow.srcseed', '1') }}"
+ dstseed: "{{get(flow, 'flow.dstseed', '1') }}"
ttl: 32
dscp: 32
@@ -163,3 +176,4 @@ downlink_1:
srcport: "{{get(flow, 'flow.dst_port_1', '0') }}"
dstport: "{{get(flow, 'flow.src_port_1', '0') }}"
count: "{{get(flow, 'flow.count', '1') }}"
+ seed: "{{get(flow, 'flow.seed', '1') }}"
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-1024K.rxf b/samples/vnf_samples/traffic_profiles/ixload/HTTP-ConcurrentConnections_2Ports.rxf
index bd0b83f95..bbf12d8cf 100644
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-1024K.rxf
+++ b/samples/vnf_samples/traffic_profiles/ixload/HTTP-ConcurrentConnections_2Ports.rxf
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>
<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
<_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;04a56313-c07c-4fae-acc5-e29a816e1311&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c284265e-5fc6-4a6a-ad6e-a8c3f465d00b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
+ <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;628fdbe1-4254-48b1-8765-a4d5bbafd1ff&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;uplink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;downlink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c284265e-5fc6-4a6a-ad6e-a8c3f465d00b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;payloadAttrTypes type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
</_smSessionXml>
<_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
<xml type="str"></xml>
@@ -10,11 +10,11 @@
<xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
</_quickTestConfig>
<lastApiUniqueId type="int">15481</lastApiUniqueId>
- <version type="str">8.20.0.273</version>
- <name type="str">HTTP-vFW_IPv4_2Ports-CC-1024K.rxf</name>
+ <version type="str">8.30.115.152</version>
+ <name type="str">HTTP-ConcurrentConnections_2Ports.rxf</name>
<comment type="str"></comment>
- <path type="str">F:\IXIA-TESTS</path>
- <last type="str">HTTP-vFW_IPv4_2Ports-CC-256K.rxf</last>
+ <path type="str">C:\ixload</path>
+ <last type="str">HTTP-ConcurrentConnections_2Ports.rxf</last>
<activeTest type="str">Test1</activeTest>
<chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
<chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
@@ -54,8 +54,8 @@
<item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
<name type="str">Client</name>
<elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
+ <item ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
+ <name type="str">HTTP client@uplink_0</name>
<column type="NoneType">None</column>
<scenarioElementType type="str">netTraffic</scenarioElementType>
<enable type="int">1</enable>
@@ -98,8 +98,8 @@
<inUse type="bool">True</inUse>
<customPortMap type="NoneType">None</customPortMap>
<sourceCommunity ref="0"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
+ <destinationCommunity ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
+ <name type="str">HTTP server@downlink_0</name>
<column type="NoneType">None</column>
<scenarioElementType type="str">netTraffic</scenarioElementType>
<enable type="int">1</enable>
@@ -484,7 +484,7 @@
</traffic>
<network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
<resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
+ <name type="str">downlink_0</name>
<role type="str">Server</role>
<networkType type="str">none</networkType>
<aggregation type="int">0</aggregation>
@@ -498,7 +498,7 @@
<networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
<item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
<_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (152.40.40.20+1)</name>
+ <name type="str">Network Range IP-R2 in downlink_0 (152.40.40.20+1)</name>
<rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
<name type="str">DistGroup1</name>
<ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
@@ -743,6 +743,7 @@
<browserEmulationName type="str">Custom1</browserEmulationName>
<enableSsl type="int">0</enableSsl>
<sslVersion type="int">3</sslVersion>
+ <disableMacValidation type="int">0</disableMacValidation>
<sslReuseMethod type="int">0</sslReuseMethod>
<sequentialSessionReuse type="int">0</sequentialSessionReuse>
<enablesslRecordSize type="int">0</enablesslRecordSize>
@@ -807,7 +808,7 @@
</item>
</outputList>
<destination type="str">HTTP server_newServerActivity1:80</destination>
- <pageObject type="str">/1024k.html</pageObject>
+ <pageObject type="str">/1b.html</pageObject>
<abort type="str">None</abort>
<arguments type="str"></arguments>
<namevalueargs type="str"></namevalueargs>
@@ -862,12 +863,16 @@
<ipPreference type="int">2</ipPreference>
<tcpCloseOption type="int">0</tcpCloseOption>
<piggybackAck type="int">1</piggybackAck>
+ <tcpFastOpen type="int">0</tcpFastOpen>
<enableLargeHeader type="int">0</enableLargeHeader>
<maxHeaderLen type="int">1024</maxHeaderLen>
<useAllIPs type="int">0</useAllIPs>
<enableDecompressSupport type="int">0</enableDecompressSupport>
<enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
<enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
+ <enableAuth type="int">0</enableAuth>
+ <authProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthProfileList" itemtype="ixAuthProfile"/>
+ <ipMappingList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthIpMapList" itemtype="ixAuthIpMap"/>
<uniqueID type="int">1</uniqueID>
<disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
<methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
@@ -889,7 +894,7 @@
</traffic>
<network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
<resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
+ <name type="str">uplink_0</name>
<role type="str">Client</role>
<networkType type="str">none</networkType>
<aggregation type="int">0</aggregation>
@@ -903,7 +908,7 @@
<networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
<item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
<_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (152.16.100.20+1)</name>
+ <name type="str">Network Range IP-R1 in uplink_0 (152.16.100.20+1)</name>
<rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
<name type="str">DistGroup1</name>
<ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
@@ -1258,7 +1263,7 @@
<pollingInterval type="int">2</pollingInterval>
<allowCsvLogging type="bool">False</allowCsvLogging>
<enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;EOXC@8_BL1*U6[TN9P(-!2VA'EF$9# 1'FD+:KRB2&amp;&gt;B&lt;DC.UPS&amp;K_&#10;M^]K.00@)K78_M''\/.]AY[']FLZ'_=I7MHA0' 9W-: 9M0_W'8=!]@6C'2)'&#10;MJ*DU#&lt;W0S%:SQ@F(BMX1IDSYA YW-;AA&gt;(^A1K?:1EA0A@(7:3G&gt;5P(W'.+&amp;&#10;MO&lt;EX/AC/%?V^,YT-'-[LSNW)N/C^,NC;\^[#:&quot;&quot; WN3IP1X/^EEHFK7&gt;D\!9&#10;M\/O.D* ?$&gt;&lt;&lt;E&quot;WT(W17,VLR$-V.PM4*!ZNT?PA]BB0VQVOD' +W ;W&quot;+0Y)&#10;MRC RE#*XWDP)&lt;K',+,'K$A^L&quot;$]&amp;3.O\L$$I!B0VX=/LA]&quot;;DI AE^5LYR1&quot;&#10;MA&lt;0&gt;L&gt;&gt;A0#BBYSD. KCP41\RZ+&quot;0H'/&quot;]#@[^3P:9=87(_&amp;$)A';1&quot;R;R:?(&#10;M9WCC%\&lt;F27WG#=H3W O949Y?+Z(L7'_DW^PUXS33F$/LHRED&amp;2+[NSXBC*9/&#10;MA6LZH.T]Q7&gt;U5\8V;5W?[7;:KJZ%9*6;A@'T;T\CQWU%:ZCB@'\T/AFUS,I[&#10;MVTH&amp;U=.H?;2$?$QRGD[?).T4[I$P40%!B*.%]QGT&lt;/B1A-&amp;F .&quot; W9L=73PZ&#10;M&gt;B6KYV,4L&amp;%(UI$/'&lt;08UTOV[?Z^^F7?O^7_NK=7/Z*0W7Z)%W?\THX?0+/B&#10;MQN]G;#&amp; A/O'$?SSV/SGV(R7!%\0LR@HYG'EL]N3?2&gt;-;,0-A:LD]+A% D1L&#10;MJ8)FW/YPM6*WN&lt;RXJR2*'2Q#!Q$,??P3BB7T %&lt;Y)&lt;3F[Y9#DLE1$^^SCUFG&#10;M.2J*R'+]PI+9X&quot;K'+E_I&amp;UKDQ4PQGC%&lt;(X&amp;*-A&quot;=&gt;KZWW*8'&amp;5J%Y&quot; 88@GK&#10;MC_/Y-+/-H^?VO&gt;4J75B&quot;,&amp;P_V]_LKCH?.'/G6?A1M\.O+_9TVW@QIR%7O=KK&#10;MJ&gt;!!(_NEC%&quot;P+T\0D70 'CT.ZMA[;M6/Y)@5O1)^W&quot;4BOL!QWN*(-&quot;:+O\3.&#10;MNT7T$NL1KUY]_L&lt;J6=G^RFR^=S*\Q(@(INNYUF+A&gt;JJ%W(7: #&lt;+=6$&quot;I()6&#10;MRS&quot;0Z0&amp;S;LDYJ7)P'HJ+*:\3_@J U91.&lt;M&quot;YW6&gt;*B&amp;/W!&gt;BH0+54$Z@MTZHW&#10;M+*M15YN&amp;&quot;9H\F6O5,EMFO64V#+5N-&amp;]NFBWI.F==FA+7-V'(FP2&quot;81J@I0*@&#10;M&amp;JTYJ+&gt;M1AM86M,TK&amp;M@JL9UVS#2;$^L*OR&amp;_ SG#(4OYW: _61),GY&quot;)JNU&#10;MXI/$F^(3=%]Q@-)IZ8^=CZH0&gt;:S?,LH;GKJ&gt;)TYTP03-&amp;\VT&amp;II9-S1@WAP-&#10;MVVUPNEGI52[.@]G[,6*[D'Q/MVG.NM;,N JK2V=EE N.9LA'D,JQV?L1KS&gt;4&#10;M:PT8RJ![ZBQ'N^ L7&gt;N]]C/?S%8$KA6Q!5#EU_UU\[=GFU=CSW&amp;49Y&amp;U6HQ2&#10;MO5?8^QG:\$T&amp;D=RPZEI+C!RT$B\EE/(E^_G)&lt;:$O1P.,1'&quot;%_G-#9YN#/RWX&#10;M5BW,3GI+12HKDS,92N/W' &quot;Y@P)17C/0R4:&lt;9!4&quot;Z86^S_&lt;L4&lt;9)12,&amp;^0?P&#10;M8IF=8I7&amp;(P1)@#QQ&gt; K&gt;4I1W&gt;0&lt;%O-+/T ]WLB&quot;AI6Y.X4HO?.\33%D(&quot;J)&lt;&#10;MVSDW1?R2HZ3TO^2K2*EVQ^ORT U].^&quot;*6T(7E7LL954ZG8410S,8K,J]%&gt; R&#10;M-^N-V#WFF5R*4U^&amp;5^GRHMYB77J'0*B6W[=*3K\3RA=1Z)V1LJ574:T)=EQ9&#10;M9[&gt;T_W!!S IO&lt;4$)_(-\!Z)CA(/OR#L6YD&lt;;/5'&quot;L45+&lt;7&amp;1O&gt;]((2L!/R7N&#10;M:M);+7&gt;#KIWB\5VFIH3$0T3&gt;=:#+A4%':(O\]-*I2PM^HPW6F\O764Y(Z@-Y&#10;M9\G=9P74&quot;X,E7D4$YF^08M8I!UT.RN^1O&amp;\AB7.,#T]AGQRC4-9!Y\&gt;KAZA+&#10;ML%1( N;*7&gt;Z5'VD^/\_2,DM\[210/JZ'MF\8Y!AZ/O/_JPUI+L8I'ME/'/?_&#10;% D1BE1\ &#10; &#10;end&#10;</svConfiguration>
+ <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;MSXC84_2L&gt;.LVTT_K-*X1D)P&amp;R898$!K-I9YK.CK %T:ZQO9+,HYW^&#10;M]U[)QAACDTS[81=9Y]RK*^GHZBK=#]N5KZPQ920,KFNF9M0^W'0=CO@SP1M,&#10;M#U!3:QJ:H=E&amp;LP8$S$3OB#&quot;N?,*[ZQJ*.-D2I+&amp;U%@D+QG'@8BW'^XVB&quot;&quot; P&#10;M[HV?9H.GF:+?=&quot;?3@0/-V]EP_%3\_C+H#V&gt;W=Z.! 'KCQ[OATZ&quot;?#&lt;VRUGL&quot;&#10;M.!G\IGM/\?&lt;8.#MEC?P87]&gt;LFAR(K4?A&lt;DF&quot;Y;[_'OD,2VQ&amp;5MC9!&gt;X=?D5K&#10;M$M(]P\A0QM$JFE#L$AE9BML2'RPI!&quot;.6=;:+\!XS)3:&amp;9?9#Y$UHR+'+&lt;[8S&#10;M&amp;N-&quot;8 _$\W @'+'3&amp; &lt;!FONXCSAR&gt;$CQ*6%R6)U\'/4RZ[,C04#CF$&lt;QSU;R&#10;M,?8YB?SBW&quot;2I[[Q!&gt;T1;(3L&amp;\?5BQL/51]BSUXS3W(]Y3WP\03Q#9/^MCREG&#10;M^U\%-!VPSI:1Z]HKYU%'US&gt;;C;:QM9 N=&lt;LP3/WWQY'CON(54DD FP:+4&lt;NL&#10;MO+&gt;MY*#Z?M0^7B&quot;8DURGXR]).X9[-$Q50#$&amp;M/ ]11X)/](PC@H &quot;?B-U=7%&#10;M3U&gt;O9/5\@@-^'])5[&quot;,'&lt;PYZR?;N[XL?MOTK^._VZN)['/*KY^1P)Q^=Y,?4&#10;M&amp;DGCUQ.VF$#*_&gt;, _GEH_G-H)D&lt;&quot;#L0T#HIQ7/C\ZBCO[$&lt;VDH8&quot;*@D]L$B!&#10;MF&quot;]4LYFT/UPL^54N,G&quot;5CC(,%J&amp;#*4$^^0N)(W2'ECDE).;OED,:R4$3[[-/&#10;M6,&lt;Q*HJ(&lt;O6%IZL!*B&lt;NG/2(%7D)4\SG&quot;:VP0$7;%)UZOK?&lt;IH&lt;X7H9T)QCB&#10;M&quot;.L/L]DDL\VCI_:]Q7)_L 2AUWDA6Y&amp;07H0/M1&lt;&amp;;DPI* M:09*@V!=K$H+\&#10;M-;I=R$$*+LICQ'0_!X\=YG7H/;7JQW+:BEX)/VQ2'9_A.&amp;]Q1!CC^5&lt;QMS5F&#10;MYU@/9/GJPS]&gt;R&lt;I2+!]&quot;^N1D03 53-=S&amp;_.YZZD-[,[5NGDY5^&gt;6B56SU3(,&#10;M;'FF93?DFE0Y.!T*])27&quot;GR:9J,IG&gt;2@4[O/#%-GV!&gt;@HYIJ0[5,U3(:EFF:&#10;MMF&amp;IIM6&quot;MF&amp;T3#AX]7K]TKRT6VK;;C3;=&gt;D\9U\:%(B&lt;&lt;NR- \&amp;P#+.MFC! &#10;M:V9:G7J]8S0TPVC:ET;[%\/H&amp;,8^WB.K&quot;K\A7.3 4.!,=P+BI^&gt;2PS69'MF*&#10;M34DRXR-R7TF ]POC#$?/D]'ST)GV'2/18RGO#7&gt;WGB?N=L$T#&lt;VR6QHLI&amp;;:&#10;M]L%N@=M&amp;IV/74;W3;-M&amp;!\V]1L&gt;RVS^:UG$VTZL\G\8PW#YAO@GIMWT&gt;!U8;&#10;M*C0--*&quot;9#4NZ*R.=&lt;37%/D9,3GJX'4$&amp;4-J::2B#VV-G.=H99[ET OEN2=%*&#10;M$2F&quot;*3]MV\V?7X90L+TDH[R(N-7!K?HY\B!1%4*OSBG#[11'D(8PS4W/UEJB&#10;M5&amp;VT4R\EE/*C_?G1&lt;9&amp;/DWU,95GH/S5TUCGXTQRRNC [ZBV5LBQB3L0JC=]S&#10;M5^3N%,R@O&amp;#C2*;E&quot;KF&amp;O@^Y351\\GK ',%&amp;&gt;(G@CK%*XQ%&amp;-,&quot;&gt;N&amp;&lt;%;R$J&#10;MP;R# E[IY]X/-[)V8:5NCN%*+Y C!5/6C((H,T#.31$_YRA])9SS5:14NX,2&#10;M/G1#?QB XA;(Q&gt;4&gt;2UF53J=AS/$4!&lt;MR;P6XS,TJ$GEDELFEN/1E&gt;)4NS^HM&#10;MT:6W&quot;X1JX6E6&lt;DL&gt;49Y%37A&quot;RHY&gt;16$GV$D1GCWH_L-;,JO1Q5LF\'?RVQ0=&#10;M(Q)\P]ZAAC_8Z*D2#BU6BHLW[TU7&quot;ED)X!JYKDEOM=QCNW:,)\^&gt;FA)2#U/Y&#10;M+$(N&quot;(.-\!K[^_&gt;I+BW@\1NLHO,O7R&quot;D=81\WN2&gt;O@*&quot;0FY!EC%%^&lt;&gt;F6'4&amp;&#10;MH N@W(_T&gt;XUH$F-RQ0K[]+)%LEXZO80]S%Q*I$)2,%&lt;9@U&gt;XW'RXV?;EF-CM&#10;?=*#\N!Y&gt;OV&amp;08^CYR/^O-J2YF*?XR?X:&lt;O,ONMVD&quot; &#10; &#10;end&#10;</svConfiguration>
<svRestConfiguration type="str">(dp1&#10;S'HTTP Server Per URL'&#10;p2&#10;ccopy_reg&#10;_reconstructor&#10;p3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStatsList&#10;p4&#10;c__builtin__&#10;list&#10;p5&#10;(lp6&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStat&#10;p7&#10;c__builtin__&#10;object&#10;p8&#10;NtRp9&#10;(dp10&#10;S'proxyPropertyList'&#10;p11&#10;NsS'_objectID'&#10;p12&#10;I0&#10;sS'enabled'&#10;p13&#10;I01&#10;sS'filterList'&#10;p14&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixRestFilters&#10;p15&#10;g8&#10;NtRp16&#10;(dp17&#10;S'cardFilters'&#10;p18&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixCardFilterList&#10;p19&#10;g5&#10;(ltRp20&#10;(dp21&#10;g12&#10;I-1&#10;sS'_resourceLocked'&#10;p22&#10;I00&#10;sg11&#10;NsbsS'activityFilters'&#10;p23&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixActivityFilterList&#10;p24&#10;g5&#10;(ltRp25&#10;(dp26&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sS'chassisFilters'&#10;p27&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixChassisFilterList&#10;p28&#10;g5&#10;(ltRp29&#10;(dp30&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sS'portFilters'&#10;p31&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixPortFilterList&#10;p32&#10;g5&#10;(ltRp33&#10;(dp34&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;NsbsbsS'caption'&#10;p35&#10;S'HTTP Requests Received'&#10;p36&#10;sg22&#10;I00&#10;sS'aggregationType'&#10;p37&#10;S'kSum'&#10;p38&#10;sS'statName'&#10;p39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp40&#10;(dp41&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp42&#10;(dp43&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp44&#10;(dp45&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp46&#10;(dp47&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp48&#10;(dp49&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp50&#10;(dp51&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp53&#10;(dp54&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp55&#10;(dp56&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp57&#10;(dp58&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp59&#10;(dp60&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp61&#10;(dp62&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp63&#10;(dp64&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp66&#10;(dp67&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp68&#10;(dp69&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp70&#10;(dp71&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp72&#10;(dp73&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp74&#10;(dp75&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp76&#10;(dp77&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (50x)'&#10;p78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp79&#10;(dp80&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp81&#10;(dp82&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp83&#10;(dp84&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp85&#10;(dp86&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp87&#10;(dp88&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp89&#10;(dp90&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write Error)'&#10;p91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp92&#10;(dp93&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp94&#10;(dp95&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp96&#10;(dp97&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp98&#10;(dp99&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp100&#10;(dp101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp102&#10;(dp103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent'&#10;p104&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g104&#10;sbag3&#10;(g7&#10;g8&#10;NtRp105&#10;(dp106&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp107&#10;(dp108&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp109&#10;(dp110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp111&#10;(dp112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp113&#10;(dp114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp115&#10;(dp116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (1xx)'&#10;p117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp118&#10;(dp119&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp120&#10;(dp121&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp122&#10;(dp123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp124&#10;(dp125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp126&#10;(dp127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp128&#10;(dp129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (2xx)'&#10;p130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp131&#10;(dp132&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp133&#10;(dp134&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp135&#10;(dp136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp137&#10;(dp138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp139&#10;(dp140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp141&#10;(dp142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (3xx)'&#10;p143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp144&#10;(dp145&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp146&#10;(dp147&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp148&#10;(dp149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp150&#10;(dp151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp152&#10;(dp153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp154&#10;(dp155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (4xx)'&#10;p156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp157&#10;(dp158&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp159&#10;(dp160&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp161&#10;(dp162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp163&#10;(dp164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp165&#10;(dp166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp167&#10;(dp168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (5xx)'&#10;p169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp170&#10;(dp171&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp172&#10;(dp173&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp174&#10;(dp175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp176&#10;(dp177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp178&#10;(dp179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp180&#10;(dp181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (Other)'&#10;p182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp183&#10;(dp184&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp185&#10;(dp186&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp187&#10;(dp188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp189&#10;(dp190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp191&#10;(dp192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp193&#10;(dp194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Write Error)'&#10;p195&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g195&#10;sbag3&#10;(g7&#10;g8&#10;NtRp196&#10;(dp197&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp198&#10;(dp199&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp200&#10;(dp201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp202&#10;(dp203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp204&#10;(dp205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp206&#10;(dp207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Aborted)'&#10;p208&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g208&#10;sbag3&#10;(g7&#10;g8&#10;NtRp209&#10;(dp210&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp211&#10;(dp212&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp213&#10;(dp214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp215&#10;(dp216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp217&#10;(dp218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp219&#10;(dp220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Other)'&#10;p221&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g221&#10;sbag3&#10;(g7&#10;g8&#10;NtRp222&#10;(dp223&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp224&#10;(dp225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp226&#10;(dp227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp228&#10;(dp229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp230&#10;(dp231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp232&#10;(dp233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Sent'&#10;p234&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g234&#10;sbag3&#10;(g7&#10;g8&#10;NtRp235&#10;(dp236&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp237&#10;(dp238&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp239&#10;(dp240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp241&#10;(dp242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp243&#10;(dp244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp245&#10;(dp246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp248&#10;(dp249&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp250&#10;(dp251&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp252&#10;(dp253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp254&#10;(dp255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp256&#10;(dp257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp258&#10;(dp259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p260&#10;sg22&#10;I00&#10;sg37&#10;S'kWeightedAverage'&#10;p261&#10;sg39&#10;g260&#10;sbag3&#10;(g7&#10;g8&#10;NtRp262&#10;(dp263&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp264&#10;(dp265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp266&#10;(dp267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp268&#10;(dp269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp270&#10;(dp271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp272&#10;(dp273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p274&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp275&#10;(dp276&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp277&#10;(dp278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp279&#10;(dp280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp281&#10;(dp282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp283&#10;(dp284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp285&#10;(dp286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Received'&#10;p287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp288&#10;(dp289&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp290&#10;(dp291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp292&#10;(dp293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp294&#10;(dp295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp296&#10;(dp297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp298&#10;(dp299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp301&#10;(dp302&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp303&#10;(dp304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp305&#10;(dp306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp307&#10;(dp308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp309&#10;(dp310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp311&#10;(dp312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Received Chunk Size'&#10;p313&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp314&#10;(dp315&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp316&#10;(dp317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp318&#10;(dp319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp320&#10;(dp321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp322&#10;(dp323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp324&#10;(dp325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p326&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp327&#10;(dp328&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp329&#10;(dp330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp331&#10;(dp332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp333&#10;(dp334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp335&#10;(dp336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp337&#10;(dp338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Received'&#10;p339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp340&#10;(dp341&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp342&#10;(dp343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp344&#10;(dp345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp346&#10;(dp347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp348&#10;(dp349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp350&#10;(dp351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Successful'&#10;p352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp353&#10;(dp354&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp355&#10;(dp356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp357&#10;(dp358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp359&#10;(dp360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp361&#10;(dp362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp363&#10;(dp364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Failed'&#10;p365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp366&#10;(dp367&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp368&#10;(dp369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp370&#10;(dp371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp372&#10;(dp373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp374&#10;(dp375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp376&#10;(dp377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Request Received'&#10;p378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp379&#10;(dp380&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp381&#10;(dp382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp383&#10;(dp384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp385&#10;(dp386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp387&#10;(dp388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp389&#10;(dp390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Response Sent'&#10;p391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbatRp392&#10;(dp393&#10;g12&#10;I27&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Server'&#10;p394&#10;g3&#10;(g4&#10;g5&#10;(lp395&#10;g3&#10;(g7&#10;g8&#10;NtRp396&#10;(dp397&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp398&#10;(dp399&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp400&#10;(dp401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp402&#10;(dp403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp404&#10;(dp405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp406&#10;(dp407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g36&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp408&#10;(dp409&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp410&#10;(dp411&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp412&#10;(dp413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp414&#10;(dp415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp416&#10;(dp417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp418&#10;(dp419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp420&#10;(dp421&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp422&#10;(dp423&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp424&#10;(dp425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp426&#10;(dp427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp428&#10;(dp429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp430&#10;(dp431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p432&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g432&#10;sbag3&#10;(g7&#10;g8&#10;NtRp433&#10;(dp434&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp435&#10;(dp436&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp437&#10;(dp438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp439&#10;(dp440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp441&#10;(dp442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp443&#10;(dp444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp445&#10;(dp446&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp447&#10;(dp448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp449&#10;(dp450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp451&#10;(dp452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp453&#10;(dp454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp455&#10;(dp456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp457&#10;(dp458&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp459&#10;(dp460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp461&#10;(dp462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp463&#10;(dp464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp465&#10;(dp466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp467&#10;(dp468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp469&#10;(dp470&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp471&#10;(dp472&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp473&#10;(dp474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp475&#10;(dp476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp477&#10;(dp478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp479&#10;(dp480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p481&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g481&#10;sbag3&#10;(g7&#10;g8&#10;NtRp482&#10;(dp483&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp484&#10;(dp485&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp486&#10;(dp487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp488&#10;(dp489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp490&#10;(dp491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp492&#10;(dp493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p494&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g494&#10;sbag3&#10;(g7&#10;g8&#10;NtRp495&#10;(dp496&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp497&#10;(dp498&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp499&#10;(dp500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp501&#10;(dp502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp503&#10;(dp504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp505&#10;(dp506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p507&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g507&#10;sbag3&#10;(g7&#10;g8&#10;NtRp508&#10;(dp509&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp510&#10;(dp511&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp512&#10;(dp513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp514&#10;(dp515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp516&#10;(dp517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp518&#10;(dp519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp520&#10;(dp521&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp522&#10;(dp523&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp524&#10;(dp525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp526&#10;(dp527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp528&#10;(dp529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp530&#10;(dp531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp532&#10;(dp533&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp534&#10;(dp535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp536&#10;(dp537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp538&#10;(dp539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp540&#10;(dp541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp542&#10;(dp543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp544&#10;(dp545&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp546&#10;(dp547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp548&#10;(dp549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp550&#10;(dp551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp552&#10;(dp553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp554&#10;(dp555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp556&#10;(dp557&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp558&#10;(dp559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp560&#10;(dp561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp562&#10;(dp563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp564&#10;(dp565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp566&#10;(dp567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp568&#10;(dp569&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp570&#10;(dp571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp572&#10;(dp573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp574&#10;(dp575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp576&#10;(dp577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp578&#10;(dp579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp580&#10;(dp581&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp582&#10;(dp583&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp584&#10;(dp585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp586&#10;(dp587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp588&#10;(dp589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp590&#10;(dp591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p592&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g592&#10;sbag3&#10;(g7&#10;g8&#10;NtRp593&#10;(dp594&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp595&#10;(dp596&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp597&#10;(dp598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp599&#10;(dp600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp601&#10;(dp602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp603&#10;(dp604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p605&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g605&#10;sbag3&#10;(g7&#10;g8&#10;NtRp606&#10;(dp607&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp608&#10;(dp609&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp610&#10;(dp611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp612&#10;(dp613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp614&#10;(dp615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp616&#10;(dp617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p618&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g618&#10;sbag3&#10;(g7&#10;g8&#10;NtRp619&#10;(dp620&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp621&#10;(dp622&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp623&#10;(dp624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp625&#10;(dp626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp627&#10;(dp628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp629&#10;(dp630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p631&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g631&#10;sbag3&#10;(g7&#10;g8&#10;NtRp632&#10;(dp633&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp634&#10;(dp635&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp636&#10;(dp637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp638&#10;(dp639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp640&#10;(dp641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp642&#10;(dp643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p644&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g644&#10;sbag3&#10;(g7&#10;g8&#10;NtRp645&#10;(dp646&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp647&#10;(dp648&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp649&#10;(dp650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp651&#10;(dp652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp653&#10;(dp654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp655&#10;(dp656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p657&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g657&#10;sbag3&#10;(g7&#10;g8&#10;NtRp658&#10;(dp659&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp660&#10;(dp661&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp662&#10;(dp663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp664&#10;(dp665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp666&#10;(dp667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp668&#10;(dp669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Matching ServerID'&#10;p670&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g670&#10;sbag3&#10;(g7&#10;g8&#10;NtRp671&#10;(dp672&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp673&#10;(dp674&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp675&#10;(dp676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp677&#10;(dp678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp679&#10;(dp680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp681&#10;(dp682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Non-matching ServerID'&#10;p683&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g683&#10;sbag3&#10;(g7&#10;g8&#10;NtRp684&#10;(dp685&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp686&#10;(dp687&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp688&#10;(dp689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp690&#10;(dp691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp692&#10;(dp693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp694&#10;(dp695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Encoded Responses Sent'&#10;p696&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g696&#10;sbag3&#10;(g7&#10;g8&#10;NtRp697&#10;(dp698&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp699&#10;(dp700&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp701&#10;(dp702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp703&#10;(dp704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp705&#10;(dp706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp707&#10;(dp708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp709&#10;(dp710&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp711&#10;(dp712&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp713&#10;(dp714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp715&#10;(dp716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp717&#10;(dp718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp719&#10;(dp720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Transfer-Encoded Requests Received'&#10;p721&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g721&#10;sbag3&#10;(g7&#10;g8&#10;NtRp722&#10;(dp723&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp724&#10;(dp725&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp726&#10;(dp727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp728&#10;(dp729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp730&#10;(dp731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp732&#10;(dp733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp734&#10;(dp735&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp736&#10;(dp737&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp738&#10;(dp739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp740&#10;(dp741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp742&#10;(dp743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp744&#10;(dp745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp746&#10;(dp747&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp748&#10;(dp749&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp750&#10;(dp751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp752&#10;(dp753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp754&#10;(dp755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp756&#10;(dp757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp758&#10;(dp759&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp760&#10;(dp761&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp762&#10;(dp763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp764&#10;(dp765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp766&#10;(dp767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp768&#10;(dp769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp770&#10;(dp771&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp772&#10;(dp773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp774&#10;(dp775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp776&#10;(dp777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp778&#10;(dp779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp780&#10;(dp781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp782&#10;(dp783&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp784&#10;(dp785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp786&#10;(dp787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp788&#10;(dp789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp790&#10;(dp791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp792&#10;(dp793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp794&#10;(dp795&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp796&#10;(dp797&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp798&#10;(dp799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp800&#10;(dp801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp802&#10;(dp803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp804&#10;(dp805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Sent'&#10;p806&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g806&#10;sbag3&#10;(g7&#10;g8&#10;NtRp807&#10;(dp808&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp809&#10;(dp810&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp811&#10;(dp812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp813&#10;(dp814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp815&#10;(dp816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp817&#10;(dp818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Sent'&#10;p819&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g819&#10;sbag3&#10;(g7&#10;g8&#10;NtRp820&#10;(dp821&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp822&#10;(dp823&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp824&#10;(dp825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp826&#10;(dp827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp828&#10;(dp829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp830&#10;(dp831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Sent'&#10;p832&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g832&#10;sbag3&#10;(g7&#10;g8&#10;NtRp833&#10;(dp834&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp835&#10;(dp836&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp837&#10;(dp838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp839&#10;(dp840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp841&#10;(dp842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp843&#10;(dp844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Sent'&#10;p845&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g845&#10;sbag3&#10;(g7&#10;g8&#10;NtRp846&#10;(dp847&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp848&#10;(dp849&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp850&#10;(dp851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp852&#10;(dp853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp854&#10;(dp855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp856&#10;(dp857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Sent'&#10;p858&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g858&#10;sbag3&#10;(g7&#10;g8&#10;NtRp859&#10;(dp860&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp861&#10;(dp862&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp863&#10;(dp864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp865&#10;(dp866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp867&#10;(dp868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp869&#10;(dp870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Sent'&#10;p871&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g871&#10;sbag3&#10;(g7&#10;g8&#10;NtRp872&#10;(dp873&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp874&#10;(dp875&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp876&#10;(dp877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp878&#10;(dp879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp880&#10;(dp881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp882&#10;(dp883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Sent'&#10;p884&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g884&#10;sbag3&#10;(g7&#10;g8&#10;NtRp885&#10;(dp886&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp887&#10;(dp888&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp889&#10;(dp890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp891&#10;(dp892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp893&#10;(dp894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp895&#10;(dp896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Sent'&#10;p897&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g897&#10;sbag3&#10;(g7&#10;g8&#10;NtRp898&#10;(dp899&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp900&#10;(dp901&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp902&#10;(dp903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp904&#10;(dp905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp906&#10;(dp907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp908&#10;(dp909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Sent'&#10;p910&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g910&#10;sbag3&#10;(g7&#10;g8&#10;NtRp911&#10;(dp912&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp913&#10;(dp914&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp915&#10;(dp916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp917&#10;(dp918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp919&#10;(dp920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp921&#10;(dp922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Sent'&#10;p923&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g923&#10;sbag3&#10;(g7&#10;g8&#10;NtRp924&#10;(dp925&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp926&#10;(dp927&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp928&#10;(dp929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp930&#10;(dp931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp932&#10;(dp933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp934&#10;(dp935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Received'&#10;p936&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g936&#10;sbag3&#10;(g7&#10;g8&#10;NtRp937&#10;(dp938&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp939&#10;(dp940&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp941&#10;(dp942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp943&#10;(dp944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp945&#10;(dp946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp947&#10;(dp948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Received'&#10;p949&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g949&#10;sbag3&#10;(g7&#10;g8&#10;NtRp950&#10;(dp951&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp952&#10;(dp953&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp954&#10;(dp955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp956&#10;(dp957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp958&#10;(dp959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp960&#10;(dp961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Received'&#10;p962&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g962&#10;sbag3&#10;(g7&#10;g8&#10;NtRp963&#10;(dp964&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp965&#10;(dp966&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp967&#10;(dp968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp969&#10;(dp970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp971&#10;(dp972&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp973&#10;(dp974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Received'&#10;p975&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g975&#10;sbag3&#10;(g7&#10;g8&#10;NtRp976&#10;(dp977&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp978&#10;(dp979&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp980&#10;(dp981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp982&#10;(dp983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp984&#10;(dp985&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp986&#10;(dp987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Received'&#10;p988&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g988&#10;sbag3&#10;(g7&#10;g8&#10;NtRp989&#10;(dp990&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp991&#10;(dp992&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp993&#10;(dp994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp995&#10;(dp996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp997&#10;(dp998&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp999&#10;(dp1000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Received'&#10;p1001&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1001&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1002&#10;(dp1003&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1004&#10;(dp1005&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1006&#10;(dp1007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1008&#10;(dp1009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1010&#10;(dp1011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1012&#10;(dp1013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Received'&#10;p1014&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1014&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1015&#10;(dp1016&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1017&#10;(dp1018&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1019&#10;(dp1020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1021&#10;(dp1022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1023&#10;(dp1024&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1025&#10;(dp1026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Received'&#10;p1027&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1027&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1028&#10;(dp1029&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1030&#10;(dp1031&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1032&#10;(dp1033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1034&#10;(dp1035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1036&#10;(dp1037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1038&#10;(dp1039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Received'&#10;p1040&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1040&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1041&#10;(dp1042&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1043&#10;(dp1044&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1045&#10;(dp1046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1047&#10;(dp1048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1049&#10;(dp1050&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1051&#10;(dp1052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Received'&#10;p1053&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1053&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1054&#10;(dp1055&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1056&#10;(dp1057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1058&#10;(dp1059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1060&#10;(dp1061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1062&#10;(dp1063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1064&#10;(dp1065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Client'&#10;p1066&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1066&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1067&#10;(dp1068&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1069&#10;(dp1070&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1071&#10;(dp1072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1073&#10;(dp1074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1075&#10;(dp1076&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1077&#10;(dp1078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Server'&#10;p1079&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1079&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1080&#10;(dp1081&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1082&#10;(dp1083&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1084&#10;(dp1085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1086&#10;(dp1087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1088&#10;(dp1089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1090&#10;(dp1091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Client to Server'&#10;p1092&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1092&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1093&#10;(dp1094&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1095&#10;(dp1096&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1097&#10;(dp1098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1099&#10;(dp1100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1101&#10;(dp1102&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1103&#10;(dp1104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Server to Client'&#10;p1105&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1105&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1106&#10;(dp1107&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1108&#10;(dp1109&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1110&#10;(dp1111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1112&#10;(dp1113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1114&#10;(dp1115&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1116&#10;(dp1117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Client to Server'&#10;p1118&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1118&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1119&#10;(dp1120&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1121&#10;(dp1122&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1123&#10;(dp1124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1125&#10;(dp1126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1127&#10;(dp1128&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1129&#10;(dp1130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Server to Client'&#10;p1131&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1131&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1132&#10;(dp1133&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1134&#10;(dp1135&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1136&#10;(dp1137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1138&#10;(dp1139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1140&#10;(dp1141&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1142&#10;(dp1143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Succeeded'&#10;p1144&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1144&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1145&#10;(dp1146&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1147&#10;(dp1148&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1149&#10;(dp1150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1151&#10;(dp1152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1153&#10;(dp1154&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1155&#10;(dp1156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Failed'&#10;p1157&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1157&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1158&#10;(dp1159&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1160&#10;(dp1161&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1162&#10;(dp1163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1164&#10;(dp1165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1166&#10;(dp1167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1168&#10;(dp1169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Protocol Error'&#10;p1170&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1170&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1171&#10;(dp1172&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1173&#10;(dp1174&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1175&#10;(dp1176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1177&#10;(dp1178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1179&#10;(dp1180&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1181&#10;(dp1182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Internal Error'&#10;p1183&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1183&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1184&#10;(dp1185&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1186&#10;(dp1187&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1188&#10;(dp1189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1190&#10;(dp1191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1192&#10;(dp1193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1194&#10;(dp1195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Flow Control Error'&#10;p1196&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1196&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1197&#10;(dp1198&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1199&#10;(dp1200&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1201&#10;(dp1202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1203&#10;(dp1204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1205&#10;(dp1206&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1207&#10;(dp1208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Settings Timeout Error'&#10;p1209&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1209&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1210&#10;(dp1211&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1212&#10;(dp1213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1214&#10;(dp1215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1216&#10;(dp1217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1218&#10;(dp1219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1220&#10;(dp1221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Closed Error'&#10;p1222&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1222&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1223&#10;(dp1224&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1225&#10;(dp1226&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1227&#10;(dp1228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1229&#10;(dp1230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1231&#10;(dp1232&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1233&#10;(dp1234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Frame Size Error'&#10;p1235&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1235&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1236&#10;(dp1237&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1238&#10;(dp1239&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1240&#10;(dp1241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1242&#10;(dp1243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1244&#10;(dp1245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1246&#10;(dp1247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Refused Stream Error'&#10;p1248&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1248&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1249&#10;(dp1250&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1251&#10;(dp1252&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1253&#10;(dp1254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1255&#10;(dp1256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1257&#10;(dp1258&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1259&#10;(dp1260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Cancelled Error'&#10;p1261&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1261&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1262&#10;(dp1263&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1264&#10;(dp1265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1266&#10;(dp1267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1268&#10;(dp1269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1270&#10;(dp1271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1272&#10;(dp1273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Compression Error'&#10;p1274&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1275&#10;(dp1276&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1277&#10;(dp1278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1279&#10;(dp1280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1281&#10;(dp1282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1283&#10;(dp1284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1285&#10;(dp1286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connect Error'&#10;p1287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1288&#10;(dp1289&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1290&#10;(dp1291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1292&#10;(dp1293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1294&#10;(dp1295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1296&#10;(dp1297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1298&#10;(dp1299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Enhance Calm Error'&#10;p1300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1301&#10;(dp1302&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1303&#10;(dp1304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1305&#10;(dp1306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1307&#10;(dp1308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1309&#10;(dp1310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1311&#10;(dp1312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Inadequate Security Error'&#10;p1313&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1314&#10;(dp1315&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1316&#10;(dp1317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1318&#10;(dp1319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1320&#10;(dp1321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1322&#10;(dp1323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1324&#10;(dp1325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HTTP1.1 Required Error'&#10;p1326&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1327&#10;(dp1328&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1329&#10;(dp1330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1331&#10;(dp1332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1333&#10;(dp1334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1335&#10;(dp1336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1337&#10;(dp1338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p1339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1340&#10;(dp1341&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1342&#10;(dp1343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1344&#10;(dp1345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1346&#10;(dp1347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1348&#10;(dp1349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1350&#10;(dp1351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p1352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1353&#10;(dp1354&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1355&#10;(dp1356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1357&#10;(dp1358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1359&#10;(dp1360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1361&#10;(dp1362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1363&#10;(dp1364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p1365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1366&#10;(dp1367&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1368&#10;(dp1369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1370&#10;(dp1371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1372&#10;(dp1373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1374&#10;(dp1375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1376&#10;(dp1377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p1378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1379&#10;(dp1380&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1381&#10;(dp1382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1383&#10;(dp1384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1385&#10;(dp1386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1387&#10;(dp1388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1389&#10;(dp1390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p1391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1392&#10;(dp1393&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1394&#10;(dp1395&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1396&#10;(dp1397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1398&#10;(dp1399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1400&#10;(dp1401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1402&#10;(dp1403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p1404&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1404&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1405&#10;(dp1406&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1407&#10;(dp1408&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1409&#10;(dp1410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1411&#10;(dp1412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1413&#10;(dp1414&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1415&#10;(dp1416&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p1417&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1417&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1418&#10;(dp1419&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1420&#10;(dp1421&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1422&#10;(dp1423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1424&#10;(dp1425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1426&#10;(dp1427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1428&#10;(dp1429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p1430&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1430&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1431&#10;(dp1432&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1433&#10;(dp1434&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1435&#10;(dp1436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1437&#10;(dp1438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1439&#10;(dp1440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1441&#10;(dp1442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p1443&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1443&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1444&#10;(dp1445&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1446&#10;(dp1447&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1448&#10;(dp1449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1450&#10;(dp1451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1452&#10;(dp1453&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1454&#10;(dp1455&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p1456&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1456&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1457&#10;(dp1458&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1459&#10;(dp1460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1461&#10;(dp1462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1463&#10;(dp1464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1465&#10;(dp1466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1467&#10;(dp1468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p1469&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1469&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1470&#10;(dp1471&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1472&#10;(dp1473&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1474&#10;(dp1475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1476&#10;(dp1477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1478&#10;(dp1479&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1480&#10;(dp1481&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p1482&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1482&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1483&#10;(dp1484&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1485&#10;(dp1486&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1487&#10;(dp1488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1489&#10;(dp1490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1491&#10;(dp1492&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1493&#10;(dp1494&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p1495&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1495&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1496&#10;(dp1497&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1498&#10;(dp1499&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1500&#10;(dp1501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1502&#10;(dp1503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1504&#10;(dp1505&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1506&#10;(dp1507&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p1508&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1508&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1509&#10;(dp1510&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1511&#10;(dp1512&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1513&#10;(dp1514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1515&#10;(dp1516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1517&#10;(dp1518&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1519&#10;(dp1520&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p1521&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1521&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1522&#10;(dp1523&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1524&#10;(dp1525&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1526&#10;(dp1527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1528&#10;(dp1529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1530&#10;(dp1531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1532&#10;(dp1533&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p1534&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1534&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1535&#10;(dp1536&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1537&#10;(dp1538&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1539&#10;(dp1540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1541&#10;(dp1542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1543&#10;(dp1544&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1545&#10;(dp1546&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p1547&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1547&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1548&#10;(dp1549&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1550&#10;(dp1551&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1552&#10;(dp1553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1554&#10;(dp1555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1556&#10;(dp1557&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1558&#10;(dp1559&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p1560&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1560&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1561&#10;(dp1562&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1563&#10;(dp1564&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1565&#10;(dp1566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1567&#10;(dp1568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1569&#10;(dp1570&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1571&#10;(dp1572&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p1573&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1573&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1574&#10;(dp1575&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1576&#10;(dp1577&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1578&#10;(dp1579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1580&#10;(dp1581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1582&#10;(dp1583&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1584&#10;(dp1585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p1586&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1586&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1587&#10;(dp1588&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1589&#10;(dp1590&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1591&#10;(dp1592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1593&#10;(dp1594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1595&#10;(dp1596&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1597&#10;(dp1598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p1599&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1599&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1600&#10;(dp1601&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1602&#10;(dp1603&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1604&#10;(dp1605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1606&#10;(dp1607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1608&#10;(dp1609&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1610&#10;(dp1611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p1612&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1612&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1613&#10;(dp1614&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1615&#10;(dp1616&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1617&#10;(dp1618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1619&#10;(dp1620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1621&#10;(dp1622&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1623&#10;(dp1624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p1625&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1625&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1626&#10;(dp1627&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1628&#10;(dp1629&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1630&#10;(dp1631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1632&#10;(dp1633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1634&#10;(dp1635&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1636&#10;(dp1637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p1638&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1638&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1639&#10;(dp1640&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1641&#10;(dp1642&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1643&#10;(dp1644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1645&#10;(dp1646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1647&#10;(dp1648&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1649&#10;(dp1650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p1651&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1651&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1652&#10;(dp1653&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1654&#10;(dp1655&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1656&#10;(dp1657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1658&#10;(dp1659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1660&#10;(dp1661&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1662&#10;(dp1663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p1664&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1664&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1665&#10;(dp1666&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1667&#10;(dp1668&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1669&#10;(dp1670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1671&#10;(dp1672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1673&#10;(dp1674&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1675&#10;(dp1676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p1677&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1677&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1678&#10;(dp1679&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1680&#10;(dp1681&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1682&#10;(dp1683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1684&#10;(dp1685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1686&#10;(dp1687&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1688&#10;(dp1689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p1690&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1690&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1691&#10;(dp1692&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1693&#10;(dp1694&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1695&#10;(dp1696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1697&#10;(dp1698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1699&#10;(dp1700&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1701&#10;(dp1702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p1703&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1703&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1704&#10;(dp1705&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1706&#10;(dp1707&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1708&#10;(dp1709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1710&#10;(dp1711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1712&#10;(dp1713&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1714&#10;(dp1715&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p1716&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1716&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1717&#10;(dp1718&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1719&#10;(dp1720&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1721&#10;(dp1722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1723&#10;(dp1724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1725&#10;(dp1726&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1727&#10;(dp1728&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p1729&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1729&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1730&#10;(dp1731&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1732&#10;(dp1733&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1734&#10;(dp1735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1736&#10;(dp1737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1738&#10;(dp1739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1740&#10;(dp1741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p1742&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1742&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1743&#10;(dp1744&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1745&#10;(dp1746&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1747&#10;(dp1748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1749&#10;(dp1750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1751&#10;(dp1752&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1753&#10;(dp1754&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p1755&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1755&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1756&#10;(dp1757&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1758&#10;(dp1759&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1760&#10;(dp1761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1762&#10;(dp1763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1764&#10;(dp1765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1766&#10;(dp1767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p1768&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1768&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1769&#10;(dp1770&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1771&#10;(dp1772&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1773&#10;(dp1774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1775&#10;(dp1776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1777&#10;(dp1778&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1779&#10;(dp1780&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p1781&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1781&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1782&#10;(dp1783&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1784&#10;(dp1785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1786&#10;(dp1787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1788&#10;(dp1789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1790&#10;(dp1791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1792&#10;(dp1793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p1794&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1794&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1795&#10;(dp1796&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1797&#10;(dp1798&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1799&#10;(dp1800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1801&#10;(dp1802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1803&#10;(dp1804&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1805&#10;(dp1806&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p1807&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1807&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1808&#10;(dp1809&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1810&#10;(dp1811&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1812&#10;(dp1813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1814&#10;(dp1815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1816&#10;(dp1817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1818&#10;(dp1819&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p1820&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1820&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1821&#10;(dp1822&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1823&#10;(dp1824&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1825&#10;(dp1826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1827&#10;(dp1828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1829&#10;(dp1830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1831&#10;(dp1832&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p1833&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1833&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1834&#10;(dp1835&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1836&#10;(dp1837&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1838&#10;(dp1839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1840&#10;(dp1841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1842&#10;(dp1843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1844&#10;(dp1845&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p1846&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1846&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1847&#10;(dp1848&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1849&#10;(dp1850&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1851&#10;(dp1852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1853&#10;(dp1854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1855&#10;(dp1856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1857&#10;(dp1858&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p1859&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1859&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1860&#10;(dp1861&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1862&#10;(dp1863&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1864&#10;(dp1865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1866&#10;(dp1867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1868&#10;(dp1869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1870&#10;(dp1871&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p1872&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1872&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1873&#10;(dp1874&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1875&#10;(dp1876&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1877&#10;(dp1878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1879&#10;(dp1880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1881&#10;(dp1882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1883&#10;(dp1884&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p1885&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1885&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1886&#10;(dp1887&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1888&#10;(dp1889&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1890&#10;(dp1891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1892&#10;(dp1893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1894&#10;(dp1895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1896&#10;(dp1897&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p1898&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1898&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1899&#10;(dp1900&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1901&#10;(dp1902&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1903&#10;(dp1904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1905&#10;(dp1906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1907&#10;(dp1908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1909&#10;(dp1910&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p1911&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1911&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1912&#10;(dp1913&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1914&#10;(dp1915&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1916&#10;(dp1917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1918&#10;(dp1919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1920&#10;(dp1921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1922&#10;(dp1923&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p1924&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1924&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1925&#10;(dp1926&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1927&#10;(dp1928&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1929&#10;(dp1930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1931&#10;(dp1932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1933&#10;(dp1934&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1935&#10;(dp1936&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p1937&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1937&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1938&#10;(dp1939&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1940&#10;(dp1941&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1942&#10;(dp1943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1944&#10;(dp1945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1946&#10;(dp1947&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1948&#10;(dp1949&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p1950&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1950&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1951&#10;(dp1952&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1953&#10;(dp1954&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1955&#10;(dp1956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1957&#10;(dp1958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1959&#10;(dp1960&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1961&#10;(dp1962&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p1963&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1963&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1964&#10;(dp1965&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1966&#10;(dp1967&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1968&#10;(dp1969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1970&#10;(dp1971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1972&#10;(dp1973&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1974&#10;(dp1975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p1976&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1976&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1977&#10;(dp1978&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1979&#10;(dp1980&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1981&#10;(dp1982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1983&#10;(dp1984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1985&#10;(dp1986&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1987&#10;(dp1988&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p1989&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1989&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1990&#10;(dp1991&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1992&#10;(dp1993&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1994&#10;(dp1995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1996&#10;(dp1997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1998&#10;(dp1999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2000&#10;(dp2001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p2002&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2002&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2003&#10;(dp2004&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2005&#10;(dp2006&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2007&#10;(dp2008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2009&#10;(dp2010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2011&#10;(dp2012&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2013&#10;(dp2014&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p2015&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2015&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2016&#10;(dp2017&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2018&#10;(dp2019&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2020&#10;(dp2021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2022&#10;(dp2023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2024&#10;(dp2025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2026&#10;(dp2027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p2028&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2028&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2029&#10;(dp2030&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2031&#10;(dp2032&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2033&#10;(dp2034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2035&#10;(dp2036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2037&#10;(dp2038&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2039&#10;(dp2040&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p2041&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2041&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2042&#10;(dp2043&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2044&#10;(dp2045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2046&#10;(dp2047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2048&#10;(dp2049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2050&#10;(dp2051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2052&#10;(dp2053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p2054&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2054&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2055&#10;(dp2056&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2057&#10;(dp2058&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2059&#10;(dp2060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2061&#10;(dp2062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2063&#10;(dp2064&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2065&#10;(dp2066&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p2067&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2067&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2068&#10;(dp2069&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2070&#10;(dp2071&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2072&#10;(dp2073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2074&#10;(dp2075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2076&#10;(dp2077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2078&#10;(dp2079&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p2080&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2080&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2081&#10;(dp2082&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2083&#10;(dp2084&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2085&#10;(dp2086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2087&#10;(dp2088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2089&#10;(dp2090&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2091&#10;(dp2092&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p2093&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2093&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2094&#10;(dp2095&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2096&#10;(dp2097&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2098&#10;(dp2099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2100&#10;(dp2101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2102&#10;(dp2103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2104&#10;(dp2105&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p2106&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2106&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2107&#10;(dp2108&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2109&#10;(dp2110&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2111&#10;(dp2112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2113&#10;(dp2114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2115&#10;(dp2116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2117&#10;(dp2118&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p2119&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2119&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2120&#10;(dp2121&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2122&#10;(dp2123&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2124&#10;(dp2125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2126&#10;(dp2127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2128&#10;(dp2129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2130&#10;(dp2131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p2132&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2132&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2133&#10;(dp2134&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2135&#10;(dp2136&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2137&#10;(dp2138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2139&#10;(dp2140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2141&#10;(dp2142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2143&#10;(dp2144&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p2145&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2145&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2146&#10;(dp2147&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2148&#10;(dp2149&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2150&#10;(dp2151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2152&#10;(dp2153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2154&#10;(dp2155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2156&#10;(dp2157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p2158&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2158&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2159&#10;(dp2160&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2161&#10;(dp2162&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2163&#10;(dp2164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2165&#10;(dp2166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2167&#10;(dp2168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2169&#10;(dp2170&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p2171&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2171&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2172&#10;(dp2173&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2174&#10;(dp2175&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2176&#10;(dp2177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2178&#10;(dp2179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2180&#10;(dp2181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2182&#10;(dp2183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p2184&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2184&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2185&#10;(dp2186&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2187&#10;(dp2188&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2189&#10;(dp2190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2191&#10;(dp2192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2193&#10;(dp2194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2195&#10;(dp2196&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p2197&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2197&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2198&#10;(dp2199&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2200&#10;(dp2201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2202&#10;(dp2203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2204&#10;(dp2205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2206&#10;(dp2207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2208&#10;(dp2209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p2210&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2210&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2211&#10;(dp2212&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2213&#10;(dp2214&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2215&#10;(dp2216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2217&#10;(dp2218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2219&#10;(dp2220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2221&#10;(dp2222&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p2223&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2223&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2224&#10;(dp2225&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2226&#10;(dp2227&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2228&#10;(dp2229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2230&#10;(dp2231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2232&#10;(dp2233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2234&#10;(dp2235&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p2236&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2236&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2237&#10;(dp2238&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2239&#10;(dp2240&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2241&#10;(dp2242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2243&#10;(dp2244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2245&#10;(dp2246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2247&#10;(dp2248&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p2249&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2249&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2250&#10;(dp2251&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2252&#10;(dp2253&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2254&#10;(dp2255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2256&#10;(dp2257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2258&#10;(dp2259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2260&#10;(dp2261&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p2262&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2262&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2263&#10;(dp2264&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2265&#10;(dp2266&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2267&#10;(dp2268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2269&#10;(dp2270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2271&#10;(dp2272&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2273&#10;(dp2274&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p2275&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2275&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2276&#10;(dp2277&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2278&#10;(dp2279&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2280&#10;(dp2281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2282&#10;(dp2283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2284&#10;(dp2285&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2286&#10;(dp2287&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p2288&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2288&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2289&#10;(dp2290&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2291&#10;(dp2292&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2293&#10;(dp2294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2295&#10;(dp2296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2297&#10;(dp2298&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2299&#10;(dp2300&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p2301&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2301&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2302&#10;(dp2303&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2304&#10;(dp2305&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2306&#10;(dp2307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2308&#10;(dp2309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2310&#10;(dp2311&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2312&#10;(dp2313&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p2314&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2314&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2315&#10;(dp2316&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2317&#10;(dp2318&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2319&#10;(dp2320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2321&#10;(dp2322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2323&#10;(dp2324&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2325&#10;(dp2326&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p2327&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2327&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2328&#10;(dp2329&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2330&#10;(dp2331&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2332&#10;(dp2333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2334&#10;(dp2335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2336&#10;(dp2337&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2338&#10;(dp2339&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p2340&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2340&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2341&#10;(dp2342&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2343&#10;(dp2344&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2345&#10;(dp2346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2347&#10;(dp2348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2349&#10;(dp2350&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2351&#10;(dp2352&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p2353&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2353&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2354&#10;(dp2355&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2356&#10;(dp2357&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2358&#10;(dp2359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2360&#10;(dp2361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2362&#10;(dp2363&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2364&#10;(dp2365&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p2366&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2366&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2367&#10;(dp2368&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2369&#10;(dp2370&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2371&#10;(dp2372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2373&#10;(dp2374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2375&#10;(dp2376&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2377&#10;(dp2378&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p2379&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2379&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2380&#10;(dp2381&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2382&#10;(dp2383&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2384&#10;(dp2385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2386&#10;(dp2387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2388&#10;(dp2389&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2390&#10;(dp2391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p2392&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2392&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2393&#10;(dp2394&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2395&#10;(dp2396&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2397&#10;(dp2398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2399&#10;(dp2400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2401&#10;(dp2402&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2403&#10;(dp2404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p2405&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2405&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2406&#10;(dp2407&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2408&#10;(dp2409&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2410&#10;(dp2411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2412&#10;(dp2413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2414&#10;(dp2415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2416&#10;(dp2417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p2418&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2418&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2419&#10;(dp2420&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2421&#10;(dp2422&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2423&#10;(dp2424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2425&#10;(dp2426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2427&#10;(dp2428&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2429&#10;(dp2430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p2431&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2431&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2432&#10;(dp2433&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2434&#10;(dp2435&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2436&#10;(dp2437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2438&#10;(dp2439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2440&#10;(dp2441&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2442&#10;(dp2443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p2444&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2444&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2445&#10;(dp2446&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2447&#10;(dp2448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2449&#10;(dp2450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2451&#10;(dp2452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2453&#10;(dp2454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2455&#10;(dp2456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p2457&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2457&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2458&#10;(dp2459&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2460&#10;(dp2461&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2462&#10;(dp2463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2464&#10;(dp2465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2466&#10;(dp2467&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2468&#10;(dp2469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p2470&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2470&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2471&#10;(dp2472&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2473&#10;(dp2474&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2475&#10;(dp2476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2477&#10;(dp2478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2479&#10;(dp2480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2481&#10;(dp2482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p2483&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2483&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2484&#10;(dp2485&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2486&#10;(dp2487&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2488&#10;(dp2489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2490&#10;(dp2491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2492&#10;(dp2493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2494&#10;(dp2495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p2496&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2496&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2497&#10;(dp2498&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2499&#10;(dp2500&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2501&#10;(dp2502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2503&#10;(dp2504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2505&#10;(dp2506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2507&#10;(dp2508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p2509&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2509&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2510&#10;(dp2511&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2512&#10;(dp2513&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2514&#10;(dp2515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2516&#10;(dp2517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2518&#10;(dp2519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2520&#10;(dp2521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p2522&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2522&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2523&#10;(dp2524&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2525&#10;(dp2526&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2527&#10;(dp2528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2529&#10;(dp2530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2531&#10;(dp2532&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2533&#10;(dp2534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p2535&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2535&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2536&#10;(dp2537&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2538&#10;(dp2539&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2540&#10;(dp2541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2542&#10;(dp2543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2544&#10;(dp2545&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2546&#10;(dp2547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p2548&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2548&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2549&#10;(dp2550&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2551&#10;(dp2552&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2553&#10;(dp2554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2555&#10;(dp2556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2557&#10;(dp2558&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2559&#10;(dp2560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p2561&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2561&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2562&#10;(dp2563&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2564&#10;(dp2565&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2566&#10;(dp2567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2568&#10;(dp2569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2570&#10;(dp2571&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2572&#10;(dp2573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p2574&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2574&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2575&#10;(dp2576&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2577&#10;(dp2578&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2579&#10;(dp2580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2581&#10;(dp2582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2583&#10;(dp2584&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2585&#10;(dp2586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p2587&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2587&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2588&#10;(dp2589&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2590&#10;(dp2591&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2592&#10;(dp2593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2594&#10;(dp2595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2596&#10;(dp2597&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2598&#10;(dp2599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p2600&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2600&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2601&#10;(dp2602&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2603&#10;(dp2604&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2605&#10;(dp2606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2607&#10;(dp2608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2609&#10;(dp2610&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2611&#10;(dp2612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p2613&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2613&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2614&#10;(dp2615&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2616&#10;(dp2617&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2618&#10;(dp2619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2620&#10;(dp2621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2622&#10;(dp2623&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2624&#10;(dp2625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p2626&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2626&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2627&#10;(dp2628&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2629&#10;(dp2630&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2631&#10;(dp2632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2633&#10;(dp2634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2635&#10;(dp2636&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2637&#10;(dp2638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p2639&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2639&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2640&#10;(dp2641&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2642&#10;(dp2643&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2644&#10;(dp2645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2646&#10;(dp2647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2648&#10;(dp2649&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2650&#10;(dp2651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p2652&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2652&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2653&#10;(dp2654&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2655&#10;(dp2656&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2657&#10;(dp2658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2659&#10;(dp2660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2661&#10;(dp2662&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2663&#10;(dp2664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p2665&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2665&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2666&#10;(dp2667&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2668&#10;(dp2669&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2670&#10;(dp2671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2672&#10;(dp2673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2674&#10;(dp2675&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2676&#10;(dp2677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p2678&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2678&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2679&#10;(dp2680&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2681&#10;(dp2682&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2683&#10;(dp2684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2685&#10;(dp2686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2687&#10;(dp2688&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2689&#10;(dp2690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p2691&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2691&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2692&#10;(dp2693&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2694&#10;(dp2695&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2696&#10;(dp2697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2698&#10;(dp2699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2700&#10;(dp2701&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2702&#10;(dp2703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p2704&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2704&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2705&#10;(dp2706&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2707&#10;(dp2708&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2709&#10;(dp2710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2711&#10;(dp2712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2713&#10;(dp2714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2715&#10;(dp2716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p2717&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2717&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2718&#10;(dp2719&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2720&#10;(dp2721&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2722&#10;(dp2723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2724&#10;(dp2725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2726&#10;(dp2727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2728&#10;(dp2729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p2730&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2730&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2731&#10;(dp2732&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2733&#10;(dp2734&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2735&#10;(dp2736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2737&#10;(dp2738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2739&#10;(dp2740&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2741&#10;(dp2742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p2743&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2743&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2744&#10;(dp2745&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2746&#10;(dp2747&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2748&#10;(dp2749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2750&#10;(dp2751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2752&#10;(dp2753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2754&#10;(dp2755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p2756&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2756&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2757&#10;(dp2758&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2759&#10;(dp2760&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2761&#10;(dp2762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2763&#10;(dp2764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2765&#10;(dp2766&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2767&#10;(dp2768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p2769&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2769&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2770&#10;(dp2771&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2772&#10;(dp2773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2774&#10;(dp2775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2776&#10;(dp2777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2778&#10;(dp2779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2780&#10;(dp2781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p2782&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2782&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2783&#10;(dp2784&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2785&#10;(dp2786&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2787&#10;(dp2788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2789&#10;(dp2790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2791&#10;(dp2792&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2793&#10;(dp2794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p2795&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2795&#10;sbatRp2796&#10;(dp2797&#10;g12&#10;I185&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client Per URL'&#10;p2798&#10;g3&#10;(g4&#10;g5&#10;(lp2799&#10;g3&#10;(g7&#10;g8&#10;NtRp2800&#10;(dp2801&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2802&#10;(dp2803&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2804&#10;(dp2805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2806&#10;(dp2807&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2808&#10;(dp2809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2810&#10;(dp2811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Sent'&#10;p2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2813&#10;(dp2814&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2815&#10;(dp2816&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2817&#10;(dp2818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2819&#10;(dp2820&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2821&#10;(dp2822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2823&#10;(dp2824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2826&#10;(dp2827&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2828&#10;(dp2829&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2830&#10;(dp2831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2832&#10;(dp2833&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2834&#10;(dp2835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2836&#10;(dp2837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (Provisional)'&#10;p2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2839&#10;(dp2840&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2841&#10;(dp2842&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2843&#10;(dp2844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2845&#10;(dp2846&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2847&#10;(dp2848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2849&#10;(dp2850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2852&#10;(dp2853&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2854&#10;(dp2855&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2856&#10;(dp2857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2858&#10;(dp2859&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2860&#10;(dp2861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2862&#10;(dp2863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write)'&#10;p2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2865&#10;(dp2866&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2867&#10;(dp2868&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2869&#10;(dp2870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2871&#10;(dp2872&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2873&#10;(dp2874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2875&#10;(dp2876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Read)'&#10;p2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2878&#10;(dp2879&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2880&#10;(dp2881&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2882&#10;(dp2883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2884&#10;(dp2885&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2886&#10;(dp2887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2888&#10;(dp2889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Bad Header)'&#10;p2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2891&#10;(dp2892&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2893&#10;(dp2894&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2895&#10;(dp2896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2897&#10;(dp2898&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2899&#10;(dp2900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2901&#10;(dp2902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx)'&#10;p2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2904&#10;(dp2905&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2906&#10;(dp2907&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2908&#10;(dp2909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2910&#10;(dp2911&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2912&#10;(dp2913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2914&#10;(dp2915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (400)'&#10;p2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2917&#10;(dp2918&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2919&#10;(dp2920&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2921&#10;(dp2922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2923&#10;(dp2924&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2925&#10;(dp2926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2927&#10;(dp2928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (401)'&#10;p2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2930&#10;(dp2931&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2932&#10;(dp2933&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2934&#10;(dp2935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2936&#10;(dp2937&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2938&#10;(dp2939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2940&#10;(dp2941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (403)'&#10;p2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2943&#10;(dp2944&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2945&#10;(dp2946&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2947&#10;(dp2948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2949&#10;(dp2950&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2951&#10;(dp2952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2953&#10;(dp2954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2956&#10;(dp2957&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2958&#10;(dp2959&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2960&#10;(dp2961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2962&#10;(dp2963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2964&#10;(dp2965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2966&#10;(dp2967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (407)'&#10;p2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2969&#10;(dp2970&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2971&#10;(dp2972&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2973&#10;(dp2974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2975&#10;(dp2976&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2977&#10;(dp2978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2979&#10;(dp2980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (408)'&#10;p2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2982&#10;(dp2983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2984&#10;(dp2985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2986&#10;(dp2987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2988&#10;(dp2989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2990&#10;(dp2991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2992&#10;(dp2993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx other)'&#10;p2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2995&#10;(dp2996&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2997&#10;(dp2998&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2999&#10;(dp3000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3001&#10;(dp3002&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3003&#10;(dp3004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3005&#10;(dp3006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx)'&#10;p3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3008&#10;(dp3009&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3010&#10;(dp3011&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3012&#10;(dp3013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3014&#10;(dp3015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3016&#10;(dp3017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3018&#10;(dp3019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (505)'&#10;p3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3021&#10;(dp3022&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3023&#10;(dp3024&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3025&#10;(dp3026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3027&#10;(dp3028&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3029&#10;(dp3030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3031&#10;(dp3032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx other)'&#10;p3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3034&#10;(dp3035&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3036&#10;(dp3037&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3038&#10;(dp3039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3040&#10;(dp3041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3042&#10;(dp3043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3044&#10;(dp3045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (other)'&#10;p3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3047&#10;(dp3048&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3049&#10;(dp3050&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3051&#10;(dp3052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3053&#10;(dp3054&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3055&#10;(dp3056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3057&#10;(dp3058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Timeout)'&#10;p3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3060&#10;(dp3061&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3062&#10;(dp3063&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3064&#10;(dp3065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3066&#10;(dp3067&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3068&#10;(dp3069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3070&#10;(dp3071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3073&#10;(dp3074&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3075&#10;(dp3076&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3077&#10;(dp3078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3079&#10;(dp3080&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3081&#10;(dp3082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3083&#10;(dp3084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted Before Request'&#10;p3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3086&#10;(dp3087&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3088&#10;(dp3089&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3090&#10;(dp3091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3092&#10;(dp3093&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3094&#10;(dp3095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3096&#10;(dp3097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted After Request'&#10;p3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3099&#10;(dp3100&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3101&#10;(dp3102&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3103&#10;(dp3104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3105&#10;(dp3106&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3107&#10;(dp3108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3109&#10;(dp3110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received With Match'&#10;p3111&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3111&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3112&#10;(dp3113&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3114&#10;(dp3115&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3116&#10;(dp3117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3118&#10;(dp3119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3120&#10;(dp3121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3122&#10;(dp3123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received Without Match'&#10;p3124&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3124&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3125&#10;(dp3126&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3127&#10;(dp3128&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3129&#10;(dp3130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3131&#10;(dp3132&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3133&#10;(dp3134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3135&#10;(dp3136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Intermediate Responses Received (1xx)'&#10;p3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3138&#10;(dp3139&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3140&#10;(dp3141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3142&#10;(dp3143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3144&#10;(dp3145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3146&#10;(dp3147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3148&#10;(dp3149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (2xx)'&#10;p3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3151&#10;(dp3152&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3153&#10;(dp3154&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3155&#10;(dp3156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3157&#10;(dp3158&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3159&#10;(dp3160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3161&#10;(dp3162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (3xx)'&#10;p3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3164&#10;(dp3165&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3166&#10;(dp3167&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3168&#10;(dp3169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3170&#10;(dp3171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3172&#10;(dp3173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3174&#10;(dp3175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (301)'&#10;p3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3177&#10;(dp3178&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3179&#10;(dp3180&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3181&#10;(dp3182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3183&#10;(dp3184&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3185&#10;(dp3186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3187&#10;(dp3188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (302)'&#10;p3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3190&#10;(dp3191&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3192&#10;(dp3193&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3194&#10;(dp3195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3196&#10;(dp3197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3198&#10;(dp3199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3200&#10;(dp3201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (303)'&#10;p3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3203&#10;(dp3204&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3205&#10;(dp3206&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3207&#10;(dp3208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3209&#10;(dp3210&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3211&#10;(dp3212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3213&#10;(dp3214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (307)'&#10;p3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3216&#10;(dp3217&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3218&#10;(dp3219&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3220&#10;(dp3221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3222&#10;(dp3223&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3224&#10;(dp3225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3226&#10;(dp3227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Sent'&#10;p3228&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3228&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3229&#10;(dp3230&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3231&#10;(dp3232&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3233&#10;(dp3234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3235&#10;(dp3236&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3237&#10;(dp3238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3239&#10;(dp3240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Headers Received'&#10;p3241&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3241&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3242&#10;(dp3243&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3244&#10;(dp3245&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3246&#10;(dp3247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3248&#10;(dp3249&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3250&#10;(dp3251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3252&#10;(dp3253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Received'&#10;p3254&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3254&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3255&#10;(dp3256&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3257&#10;(dp3258&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3259&#10;(dp3260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3261&#10;(dp3262&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3263&#10;(dp3264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3265&#10;(dp3266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Successful'&#10;p3267&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3267&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3268&#10;(dp3269&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3270&#10;(dp3271&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3272&#10;(dp3273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3274&#10;(dp3275&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3276&#10;(dp3277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3278&#10;(dp3279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Failed'&#10;p3280&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3280&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3281&#10;(dp3282&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3283&#10;(dp3284&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3285&#10;(dp3286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3287&#10;(dp3288&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3289&#10;(dp3290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3291&#10;(dp3292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p3293&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3293&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3294&#10;(dp3295&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3296&#10;(dp3297&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3298&#10;(dp3299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3300&#10;(dp3301&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3302&#10;(dp3303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3304&#10;(dp3305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p3306&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3306&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3307&#10;(dp3308&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3309&#10;(dp3310&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3311&#10;(dp3312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3313&#10;(dp3314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3315&#10;(dp3316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3317&#10;(dp3318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p3319&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3319&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3320&#10;(dp3321&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3322&#10;(dp3323&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3324&#10;(dp3325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3326&#10;(dp3327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3328&#10;(dp3329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3330&#10;(dp3331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Sent'&#10;p3332&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3332&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3333&#10;(dp3334&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3335&#10;(dp3336&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3337&#10;(dp3338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3339&#10;(dp3340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3341&#10;(dp3342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3343&#10;(dp3344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p3345&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3345&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3346&#10;(dp3347&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3348&#10;(dp3349&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3350&#10;(dp3351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3352&#10;(dp3353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3354&#10;(dp3355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3356&#10;(dp3357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size in Request'&#10;p3358&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3358&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3359&#10;(dp3360&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3361&#10;(dp3362&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3363&#10;(dp3364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3365&#10;(dp3366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3367&#10;(dp3368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3369&#10;(dp3370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p3371&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3371&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3372&#10;(dp3373&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3374&#10;(dp3375&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3376&#10;(dp3377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3378&#10;(dp3379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3380&#10;(dp3381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3382&#10;(dp3383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name1-Value1'&#10;p3384&#10;sg22&#10;I00&#10;sg37&#10;S'kString'&#10;p3385&#10;sg39&#10;g3384&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3386&#10;(dp3387&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3388&#10;(dp3389&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3390&#10;(dp3391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3392&#10;(dp3393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3394&#10;(dp3395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3396&#10;(dp3397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter1'&#10;p3398&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3398&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3399&#10;(dp3400&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3401&#10;(dp3402&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3403&#10;(dp3404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3405&#10;(dp3406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3407&#10;(dp3408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3409&#10;(dp3410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name2-Value2'&#10;p3411&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3411&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3412&#10;(dp3413&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3414&#10;(dp3415&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3416&#10;(dp3417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3418&#10;(dp3419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3420&#10;(dp3421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3422&#10;(dp3423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter2'&#10;p3424&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3424&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3425&#10;(dp3426&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3427&#10;(dp3428&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3429&#10;(dp3430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3431&#10;(dp3432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3433&#10;(dp3434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3435&#10;(dp3436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name3-Value3'&#10;p3437&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3437&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3438&#10;(dp3439&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3440&#10;(dp3441&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3442&#10;(dp3443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3444&#10;(dp3445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3446&#10;(dp3447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3448&#10;(dp3449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter3'&#10;p3450&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3450&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3451&#10;(dp3452&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3453&#10;(dp3454&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3455&#10;(dp3456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3457&#10;(dp3458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3459&#10;(dp3460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3461&#10;(dp3462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name4-Value4'&#10;p3463&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3463&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3464&#10;(dp3465&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3466&#10;(dp3467&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3468&#10;(dp3469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3470&#10;(dp3471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3472&#10;(dp3473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3474&#10;(dp3475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter4'&#10;p3476&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3476&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3477&#10;(dp3478&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3479&#10;(dp3480&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3481&#10;(dp3482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3483&#10;(dp3484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3485&#10;(dp3486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3487&#10;(dp3488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name5-Value5'&#10;p3489&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3489&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3490&#10;(dp3491&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3492&#10;(dp3493&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3494&#10;(dp3495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3496&#10;(dp3497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3498&#10;(dp3499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3500&#10;(dp3501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter5'&#10;p3502&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3502&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3503&#10;(dp3504&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3505&#10;(dp3506&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3507&#10;(dp3508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3509&#10;(dp3510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3511&#10;(dp3512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3513&#10;(dp3514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name6-Value6'&#10;p3515&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3515&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3516&#10;(dp3517&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3518&#10;(dp3519&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3520&#10;(dp3521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3522&#10;(dp3523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3524&#10;(dp3525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3526&#10;(dp3527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter6'&#10;p3528&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3528&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3529&#10;(dp3530&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3531&#10;(dp3532&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3533&#10;(dp3534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3535&#10;(dp3536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3537&#10;(dp3538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3539&#10;(dp3540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name7-Value7'&#10;p3541&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3541&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3542&#10;(dp3543&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3544&#10;(dp3545&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3546&#10;(dp3547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3548&#10;(dp3549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3550&#10;(dp3551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3552&#10;(dp3553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter7'&#10;p3554&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3554&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3555&#10;(dp3556&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3557&#10;(dp3558&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3559&#10;(dp3560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3561&#10;(dp3562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3563&#10;(dp3564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3565&#10;(dp3566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name8-Value8'&#10;p3567&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3567&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3568&#10;(dp3569&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3570&#10;(dp3571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3572&#10;(dp3573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3574&#10;(dp3575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3576&#10;(dp3577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3578&#10;(dp3579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter8'&#10;p3580&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3580&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3581&#10;(dp3582&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3583&#10;(dp3584&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3585&#10;(dp3586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3587&#10;(dp3588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3589&#10;(dp3590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3591&#10;(dp3592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name9-Value9'&#10;p3593&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3593&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3594&#10;(dp3595&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3596&#10;(dp3597&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3598&#10;(dp3599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3600&#10;(dp3601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3602&#10;(dp3603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3604&#10;(dp3605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter9'&#10;p3606&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3606&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3607&#10;(dp3608&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3609&#10;(dp3610&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3611&#10;(dp3612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3613&#10;(dp3614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3615&#10;(dp3616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3617&#10;(dp3618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name10-Value10'&#10;p3619&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3619&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3620&#10;(dp3621&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3622&#10;(dp3623&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3624&#10;(dp3625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3626&#10;(dp3627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3628&#10;(dp3629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3630&#10;(dp3631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter10'&#10;p3632&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3632&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3633&#10;(dp3634&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3635&#10;(dp3636&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3637&#10;(dp3638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3639&#10;(dp3640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3641&#10;(dp3642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3643&#10;(dp3644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Received'&#10;p3645&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3645&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3646&#10;(dp3647&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3648&#10;(dp3649&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3650&#10;(dp3651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3652&#10;(dp3653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3654&#10;(dp3655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3656&#10;(dp3657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Successful'&#10;p3658&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3658&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3659&#10;(dp3660&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3661&#10;(dp3662&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3663&#10;(dp3664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3665&#10;(dp3666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3667&#10;(dp3668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3669&#10;(dp3670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Failed'&#10;p3671&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3671&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3672&#10;(dp3673&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3674&#10;(dp3675&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3676&#10;(dp3677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3678&#10;(dp3679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3680&#10;(dp3681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3682&#10;(dp3683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Received'&#10;p3684&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3684&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3685&#10;(dp3686&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3687&#10;(dp3688&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3689&#10;(dp3690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3691&#10;(dp3692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3693&#10;(dp3694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3695&#10;(dp3696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Successful'&#10;p3697&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3697&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3698&#10;(dp3699&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3700&#10;(dp3701&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3702&#10;(dp3703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3704&#10;(dp3705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3706&#10;(dp3707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3708&#10;(dp3709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Failed'&#10;p3710&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3710&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3711&#10;(dp3712&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3713&#10;(dp3714&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3715&#10;(dp3716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3717&#10;(dp3718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3719&#10;(dp3720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3721&#10;(dp3722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Received'&#10;p3723&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3723&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3724&#10;(dp3725&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3726&#10;(dp3727&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3728&#10;(dp3729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3730&#10;(dp3731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3732&#10;(dp3733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3734&#10;(dp3735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Successful'&#10;p3736&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3736&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3737&#10;(dp3738&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3739&#10;(dp3740&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3741&#10;(dp3742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3743&#10;(dp3744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3745&#10;(dp3746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3747&#10;(dp3748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Failed'&#10;p3749&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3749&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3750&#10;(dp3751&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3752&#10;(dp3753&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3754&#10;(dp3755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3756&#10;(dp3757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3758&#10;(dp3759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3760&#10;(dp3761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Received'&#10;p3762&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3762&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3763&#10;(dp3764&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3765&#10;(dp3766&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3767&#10;(dp3768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3769&#10;(dp3770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3771&#10;(dp3772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3773&#10;(dp3774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Successful'&#10;p3775&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3775&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3776&#10;(dp3777&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3778&#10;(dp3779&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3780&#10;(dp3781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3782&#10;(dp3783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3784&#10;(dp3785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3786&#10;(dp3787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Failed'&#10;p3788&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3788&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3789&#10;(dp3790&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3791&#10;(dp3792&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3793&#10;(dp3794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3795&#10;(dp3796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3797&#10;(dp3798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3799&#10;(dp3800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Average Compression Ratio'&#10;p3801&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3801&#10;sbatRp3802&#10;(dp3803&#10;g12&#10;I76&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client'&#10;p3804&#10;g3&#10;(g4&#10;g5&#10;(lp3805&#10;g3&#10;(g7&#10;g8&#10;NtRp3806&#10;(dp3807&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3808&#10;(dp3809&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3810&#10;(dp3811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3812&#10;(dp3813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3814&#10;(dp3815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3816&#10;(dp3817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Simulated Users'&#10;p3818&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3818&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3819&#10;(dp3820&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3821&#10;(dp3822&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3823&#10;(dp3824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3825&#10;(dp3826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3827&#10;(dp3828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3829&#10;(dp3830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Concurrent Connections'&#10;p3831&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3831&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3832&#10;(dp3833&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3834&#10;(dp3835&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3836&#10;(dp3837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3838&#10;(dp3839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3840&#10;(dp3841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3842&#10;(dp3843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connections'&#10;p3844&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3844&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3845&#10;(dp3846&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3847&#10;(dp3848&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3849&#10;(dp3850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3851&#10;(dp3852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3853&#10;(dp3854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3855&#10;(dp3856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Attempts'&#10;p3857&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3857&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3858&#10;(dp3859&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3860&#10;(dp3861&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3862&#10;(dp3863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3864&#10;(dp3865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3866&#10;(dp3867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3868&#10;(dp3869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Aborts'&#10;p3870&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3870&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3871&#10;(dp3872&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3873&#10;(dp3874&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3875&#10;(dp3876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3877&#10;(dp3878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3879&#10;(dp3880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3881&#10;(dp3882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Aborts'&#10;p3883&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3883&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3884&#10;(dp3885&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3886&#10;(dp3887&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3888&#10;(dp3889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3890&#10;(dp3891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3892&#10;(dp3893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3894&#10;(dp3895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions'&#10;p3896&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3896&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3897&#10;(dp3898&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3899&#10;(dp3900&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3901&#10;(dp3902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3903&#10;(dp3904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3905&#10;(dp3906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3907&#10;(dp3908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes'&#10;p3909&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3909&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3910&#10;(dp3911&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3912&#10;(dp3913&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3914&#10;(dp3915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3916&#10;(dp3917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3918&#10;(dp3919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3920&#10;(dp3921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3922&#10;(dp3923&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3924&#10;(dp3925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3926&#10;(dp3927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3928&#10;(dp3929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3930&#10;(dp3931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3932&#10;(dp3933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3934&#10;(dp3935&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3936&#10;(dp3937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3938&#10;(dp3939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3940&#10;(dp3941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3942&#10;(dp3943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3944&#10;(dp3945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3946&#10;(dp3947&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3948&#10;(dp3949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3950&#10;(dp3951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3952&#10;(dp3953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3954&#10;(dp3955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3956&#10;(dp3957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3958&#10;(dp3959&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3960&#10;(dp3961&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3962&#10;(dp3963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3964&#10;(dp3965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3966&#10;(dp3967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3968&#10;(dp3969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3970&#10;(dp3971&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3972&#10;(dp3973&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3974&#10;(dp3975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3976&#10;(dp3977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3978&#10;(dp3979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3980&#10;(dp3981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3982&#10;(dp3983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3984&#10;(dp3985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3986&#10;(dp3987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3988&#10;(dp3989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3990&#10;(dp3991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3992&#10;(dp3993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3994&#10;(dp3995&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3996&#10;(dp3997&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3998&#10;(dp3999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4000&#10;(dp4001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4002&#10;(dp4003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4004&#10;(dp4005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4006&#10;(dp4007&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4008&#10;(dp4009&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4010&#10;(dp4011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4012&#10;(dp4013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4014&#10;(dp4015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4016&#10;(dp4017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4018&#10;(dp4019&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4020&#10;(dp4021&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4022&#10;(dp4023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4024&#10;(dp4025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4026&#10;(dp4027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4028&#10;(dp4029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4030&#10;(dp4031&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4032&#10;(dp4033&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4034&#10;(dp4035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4036&#10;(dp4037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4038&#10;(dp4039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4040&#10;(dp4041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4042&#10;(dp4043&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4044&#10;(dp4045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4046&#10;(dp4047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4048&#10;(dp4049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4050&#10;(dp4051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4052&#10;(dp4053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4054&#10;(dp4055&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4056&#10;(dp4057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4058&#10;(dp4059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4060&#10;(dp4061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4062&#10;(dp4063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4064&#10;(dp4065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4066&#10;(dp4067&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4068&#10;(dp4069&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4070&#10;(dp4071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4072&#10;(dp4073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4074&#10;(dp4075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4076&#10;(dp4077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4078&#10;(dp4079&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4080&#10;(dp4081&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4082&#10;(dp4083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4084&#10;(dp4085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4086&#10;(dp4087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4088&#10;(dp4089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4090&#10;(dp4091&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4092&#10;(dp4093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4094&#10;(dp4095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4096&#10;(dp4097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4098&#10;(dp4099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4100&#10;(dp4101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4102&#10;(dp4103&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4104&#10;(dp4105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4106&#10;(dp4107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4108&#10;(dp4109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4110&#10;(dp4111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4112&#10;(dp4113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4114&#10;(dp4115&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4116&#10;(dp4117&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4118&#10;(dp4119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4120&#10;(dp4121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4122&#10;(dp4123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4124&#10;(dp4125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4126&#10;(dp4127&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4128&#10;(dp4129&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4130&#10;(dp4131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4132&#10;(dp4133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4134&#10;(dp4135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4136&#10;(dp4137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4138&#10;(dp4139&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4140&#10;(dp4141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4142&#10;(dp4143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4144&#10;(dp4145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4146&#10;(dp4147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4148&#10;(dp4149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4150&#10;(dp4151&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4152&#10;(dp4153&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4154&#10;(dp4155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4156&#10;(dp4157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4158&#10;(dp4159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4160&#10;(dp4161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4162&#10;(dp4163&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4164&#10;(dp4165&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4166&#10;(dp4167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4168&#10;(dp4169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4170&#10;(dp4171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4172&#10;(dp4173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4174&#10;(dp4175&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4176&#10;(dp4177&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4178&#10;(dp4179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4180&#10;(dp4181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4182&#10;(dp4183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4184&#10;(dp4185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4186&#10;(dp4187&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4188&#10;(dp4189&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4190&#10;(dp4191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4192&#10;(dp4193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4194&#10;(dp4195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4196&#10;(dp4197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4198&#10;(dp4199&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4200&#10;(dp4201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4202&#10;(dp4203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4204&#10;(dp4205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4206&#10;(dp4207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4208&#10;(dp4209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4210&#10;(dp4211&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4212&#10;(dp4213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4214&#10;(dp4215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4216&#10;(dp4217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4218&#10;(dp4219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4220&#10;(dp4221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4222&#10;(dp4223&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4224&#10;(dp4225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4226&#10;(dp4227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4228&#10;(dp4229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4230&#10;(dp4231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4232&#10;(dp4233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4234&#10;(dp4235&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4236&#10;(dp4237&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4238&#10;(dp4239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4240&#10;(dp4241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4242&#10;(dp4243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4244&#10;(dp4245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4246&#10;(dp4247&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4248&#10;(dp4249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4250&#10;(dp4251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4252&#10;(dp4253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4254&#10;(dp4255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4256&#10;(dp4257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p4258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4259&#10;(dp4260&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4261&#10;(dp4262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4263&#10;(dp4264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4265&#10;(dp4266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4267&#10;(dp4268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4269&#10;(dp4270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Request Precondition Failed (412)'&#10;p4271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4272&#10;(dp4273&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4274&#10;(dp4275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4276&#10;(dp4277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4278&#10;(dp4279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4280&#10;(dp4281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4282&#10;(dp4283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p4284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4285&#10;(dp4286&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4287&#10;(dp4288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4289&#10;(dp4290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4291&#10;(dp4292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4293&#10;(dp4294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4295&#10;(dp4296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4297&#10;(dp4298&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4299&#10;(dp4300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4301&#10;(dp4302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4303&#10;(dp4304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4305&#10;(dp4306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4307&#10;(dp4308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4309&#10;(dp4310&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4311&#10;(dp4312&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4313&#10;(dp4314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4315&#10;(dp4316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4317&#10;(dp4318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4319&#10;(dp4320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions Active'&#10;p4321&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4321&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4322&#10;(dp4323&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4324&#10;(dp4325&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4326&#10;(dp4327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4328&#10;(dp4329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4330&#10;(dp4331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4332&#10;(dp4333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Users Active'&#10;p4334&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4334&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4335&#10;(dp4336&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4337&#10;(dp4338&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4339&#10;(dp4340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4341&#10;(dp4342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4343&#10;(dp4344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4345&#10;(dp4346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Received'&#10;p4347&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4347&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4348&#10;(dp4349&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4350&#10;(dp4351&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4352&#10;(dp4353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4354&#10;(dp4355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4356&#10;(dp4357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4358&#10;(dp4359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Received'&#10;p4360&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4360&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4361&#10;(dp4362&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4363&#10;(dp4364&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4365&#10;(dp4366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4367&#10;(dp4368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4369&#10;(dp4370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4371&#10;(dp4372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Received'&#10;p4373&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4373&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4374&#10;(dp4375&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4376&#10;(dp4377&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4378&#10;(dp4379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4380&#10;(dp4381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4382&#10;(dp4383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4384&#10;(dp4385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Unrecognized Content-Encoding Received'&#10;p4386&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4386&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4387&#10;(dp4388&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4389&#10;(dp4390&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4391&#10;(dp4392&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4393&#10;(dp4394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4395&#10;(dp4396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4397&#10;(dp4398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Successful'&#10;p4399&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4399&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4400&#10;(dp4401&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4402&#10;(dp4403&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4404&#10;(dp4405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4406&#10;(dp4407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4408&#10;(dp4409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4410&#10;(dp4411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Successful'&#10;p4412&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4412&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4413&#10;(dp4414&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4415&#10;(dp4416&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4417&#10;(dp4418&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4419&#10;(dp4420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4421&#10;(dp4422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4423&#10;(dp4424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Successful'&#10;p4425&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4425&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4426&#10;(dp4427&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4428&#10;(dp4429&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4430&#10;(dp4431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4432&#10;(dp4433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4434&#10;(dp4435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4436&#10;(dp4437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Failed'&#10;p4438&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4438&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4439&#10;(dp4440&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4441&#10;(dp4442&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4443&#10;(dp4444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4445&#10;(dp4446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4447&#10;(dp4448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4449&#10;(dp4450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed'&#10;p4451&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4451&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4452&#10;(dp4453&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4454&#10;(dp4455&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4456&#10;(dp4457&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4458&#10;(dp4459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4460&#10;(dp4461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4462&#10;(dp4463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed'&#10;p4464&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4464&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4465&#10;(dp4466&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4467&#10;(dp4468&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4469&#10;(dp4470&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4471&#10;(dp4472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4473&#10;(dp4474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4475&#10;(dp4476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Data Error'&#10;p4477&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4477&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4478&#10;(dp4479&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4480&#10;(dp4481&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4482&#10;(dp4483&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4484&#10;(dp4485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4486&#10;(dp4487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4488&#10;(dp4489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Decoding Error'&#10;p4490&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4490&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4491&#10;(dp4492&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4493&#10;(dp4494&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4495&#10;(dp4496&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4497&#10;(dp4498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4499&#10;(dp4500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4501&#10;(dp4502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Data Error'&#10;p4503&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4503&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4504&#10;(dp4505&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4506&#10;(dp4507&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4508&#10;(dp4509&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4510&#10;(dp4511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4512&#10;(dp4513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4514&#10;(dp4515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Decoding Error'&#10;p4516&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4516&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4517&#10;(dp4518&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4519&#10;(dp4520&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4521&#10;(dp4522&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4523&#10;(dp4524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4525&#10;(dp4526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4527&#10;(dp4528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Headers Received'&#10;p4529&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4529&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4530&#10;(dp4531&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4532&#10;(dp4533&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4534&#10;(dp4535&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4536&#10;(dp4537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4538&#10;(dp4539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4540&#10;(dp4541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Responses Received'&#10;p4542&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4542&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4543&#10;(dp4544&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4545&#10;(dp4546&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4547&#10;(dp4548&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4549&#10;(dp4550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4551&#10;(dp4552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4553&#10;(dp4554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Successful'&#10;p4555&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4555&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4556&#10;(dp4557&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4558&#10;(dp4559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4560&#10;(dp4561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4562&#10;(dp4563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4564&#10;(dp4565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4566&#10;(dp4567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Failed'&#10;p4568&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4568&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4569&#10;(dp4570&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4571&#10;(dp4572&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4573&#10;(dp4574&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4575&#10;(dp4576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4577&#10;(dp4578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4579&#10;(dp4580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Received'&#10;p4581&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4581&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4582&#10;(dp4583&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4584&#10;(dp4585&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4586&#10;(dp4587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4588&#10;(dp4589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4590&#10;(dp4591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4592&#10;(dp4593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Headers Sent'&#10;p4594&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4594&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4595&#10;(dp4596&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4597&#10;(dp4598&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4599&#10;(dp4600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4601&#10;(dp4602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4603&#10;(dp4604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4605&#10;(dp4606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Sent'&#10;p4607&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4607&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4608&#10;(dp4609&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4610&#10;(dp4611&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4612&#10;(dp4613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4614&#10;(dp4615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4616&#10;(dp4617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4618&#10;(dp4619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Responses Received'&#10;p4620&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4620&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4621&#10;(dp4622&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4623&#10;(dp4624&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4625&#10;(dp4626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4627&#10;(dp4628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4629&#10;(dp4630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4631&#10;(dp4632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Successful'&#10;p4633&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4633&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4634&#10;(dp4635&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4636&#10;(dp4637&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4638&#10;(dp4639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4640&#10;(dp4641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4642&#10;(dp4643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4644&#10;(dp4645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Failed'&#10;p4646&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4646&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4647&#10;(dp4648&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4649&#10;(dp4650&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4651&#10;(dp4652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4653&#10;(dp4654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4655&#10;(dp4656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4657&#10;(dp4658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Responses Received'&#10;p4659&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4659&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4660&#10;(dp4661&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4662&#10;(dp4663&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4664&#10;(dp4665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4666&#10;(dp4667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4668&#10;(dp4669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4670&#10;(dp4671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Successful'&#10;p4672&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4672&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4673&#10;(dp4674&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4675&#10;(dp4676&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4677&#10;(dp4678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4679&#10;(dp4680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4681&#10;(dp4682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4683&#10;(dp4684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Failed'&#10;p4685&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4685&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4686&#10;(dp4687&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4688&#10;(dp4689&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4690&#10;(dp4691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4692&#10;(dp4693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4694&#10;(dp4695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4696&#10;(dp4697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p4698&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4698&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4699&#10;(dp4700&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4701&#10;(dp4702&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4703&#10;(dp4704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4705&#10;(dp4706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4707&#10;(dp4708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4709&#10;(dp4710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p4711&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4711&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4712&#10;(dp4713&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4714&#10;(dp4715&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4716&#10;(dp4717&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4718&#10;(dp4719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4720&#10;(dp4721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4722&#10;(dp4723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p4724&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4724&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4725&#10;(dp4726&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4727&#10;(dp4728&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4729&#10;(dp4730&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4731&#10;(dp4732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4733&#10;(dp4734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4735&#10;(dp4736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p4737&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4737&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4738&#10;(dp4739&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4740&#10;(dp4741&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4742&#10;(dp4743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4744&#10;(dp4745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4746&#10;(dp4747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4748&#10;(dp4749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Decompressed Content Bytes Received'&#10;p4750&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4750&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4751&#10;(dp4752&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4753&#10;(dp4754&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4755&#10;(dp4756&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4757&#10;(dp4758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4759&#10;(dp4760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4761&#10;(dp4762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p4763&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4763&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4764&#10;(dp4765&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4766&#10;(dp4767&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4768&#10;(dp4769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4770&#10;(dp4771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4772&#10;(dp4773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4774&#10;(dp4775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p4776&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4776&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4777&#10;(dp4778&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4779&#10;(dp4780&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4781&#10;(dp4782&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4783&#10;(dp4784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4785&#10;(dp4786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4787&#10;(dp4788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected'&#10;p4789&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4789&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4790&#10;(dp4791&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4792&#10;(dp4793&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4794&#10;(dp4795&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4796&#10;(dp4797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4798&#10;(dp4799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4800&#10;(dp4801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Path Match Failed)'&#10;p4802&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4802&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4803&#10;(dp4804&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4805&#10;(dp4806&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4807&#10;(dp4808&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4809&#10;(dp4810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4811&#10;(dp4812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4813&#10;(dp4814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Domain Match Failed)'&#10;p4815&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4815&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4816&#10;(dp4817&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4818&#10;(dp4819&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4820&#10;(dp4821&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4822&#10;(dp4823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4824&#10;(dp4825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4826&#10;(dp4827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Cookiejar Overflow)'&#10;p4828&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4828&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4829&#10;(dp4830&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4831&#10;(dp4832&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4833&#10;(dp4834&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4835&#10;(dp4836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4837&#10;(dp4838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4839&#10;(dp4840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Probabilistic Reject)'&#10;p4841&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4841&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4842&#10;(dp4843&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4844&#10;(dp4845&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4846&#10;(dp4847&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4848&#10;(dp4849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4850&#10;(dp4851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4852&#10;(dp4853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookie headers Rejected - (Memory Overflow)'&#10;p4854&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4854&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4855&#10;(dp4856&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4857&#10;(dp4858&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4859&#10;(dp4860&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4861&#10;(dp4862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4863&#10;(dp4864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4865&#10;(dp4866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connect Time (us)'&#10;p4867&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4867&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4868&#10;(dp4869&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4870&#10;(dp4871&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4872&#10;(dp4873&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4874&#10;(dp4875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4876&#10;(dp4877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4878&#10;(dp4879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To First Byte (us)'&#10;p4880&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4880&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4881&#10;(dp4882&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4883&#10;(dp4884&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4885&#10;(dp4886&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4887&#10;(dp4888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4889&#10;(dp4890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4891&#10;(dp4892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To Last Byte (us)'&#10;p4893&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4893&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4894&#10;(dp4895&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4896&#10;(dp4897&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4898&#10;(dp4899&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4900&#10;(dp4901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4902&#10;(dp4903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4904&#10;(dp4905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Average (us)'&#10;p4906&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4906&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4907&#10;(dp4908&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4909&#10;(dp4910&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4911&#10;(dp4912&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4913&#10;(dp4914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4915&#10;(dp4916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4917&#10;(dp4918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Minimum (us)'&#10;p4919&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4919&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4920&#10;(dp4921&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4922&#10;(dp4923&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4924&#10;(dp4925&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4926&#10;(dp4927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4928&#10;(dp4929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4930&#10;(dp4931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Maximum (us)'&#10;p4932&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4932&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4933&#10;(dp4934&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4935&#10;(dp4936&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4937&#10;(dp4938&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4939&#10;(dp4940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4941&#10;(dp4942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4943&#10;(dp4944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Failed'&#10;p4945&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4945&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4946&#10;(dp4947&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4948&#10;(dp4949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4950&#10;(dp4951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4952&#10;(dp4953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4954&#10;(dp4955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4956&#10;(dp4957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Succeeded'&#10;p4958&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4958&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4959&#10;(dp4960&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4961&#10;(dp4962&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4963&#10;(dp4964&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4965&#10;(dp4966&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4967&#10;(dp4968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4969&#10;(dp4970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Received'&#10;p4971&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4971&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4972&#10;(dp4973&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4974&#10;(dp4975&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4976&#10;(dp4977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4978&#10;(dp4979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4980&#10;(dp4981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4982&#10;(dp4983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Received'&#10;p4984&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4984&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4985&#10;(dp4986&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4987&#10;(dp4988&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4989&#10;(dp4990&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4991&#10;(dp4992&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4993&#10;(dp4994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4995&#10;(dp4996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Received'&#10;p4997&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4997&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4998&#10;(dp4999&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5000&#10;(dp5001&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5002&#10;(dp5003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5004&#10;(dp5005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5006&#10;(dp5007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5008&#10;(dp5009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Received'&#10;p5010&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5010&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5011&#10;(dp5012&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5013&#10;(dp5014&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5015&#10;(dp5016&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5017&#10;(dp5018&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5019&#10;(dp5020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5021&#10;(dp5022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Received'&#10;p5023&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5023&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5024&#10;(dp5025&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5026&#10;(dp5027&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5028&#10;(dp5029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5030&#10;(dp5031&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5032&#10;(dp5033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5034&#10;(dp5035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Received'&#10;p5036&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5036&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5037&#10;(dp5038&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5039&#10;(dp5040&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5041&#10;(dp5042&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5043&#10;(dp5044&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5045&#10;(dp5046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5047&#10;(dp5048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Received'&#10;p5049&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5049&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5050&#10;(dp5051&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5052&#10;(dp5053&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5054&#10;(dp5055&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5056&#10;(dp5057&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5058&#10;(dp5059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5060&#10;(dp5061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Received'&#10;p5062&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5062&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5063&#10;(dp5064&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5065&#10;(dp5066&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5067&#10;(dp5068&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5069&#10;(dp5070&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5071&#10;(dp5072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5073&#10;(dp5074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Received'&#10;p5075&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5075&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5076&#10;(dp5077&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5078&#10;(dp5079&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5080&#10;(dp5081&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5082&#10;(dp5083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5084&#10;(dp5085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5086&#10;(dp5087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Received'&#10;p5088&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5088&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5089&#10;(dp5090&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5091&#10;(dp5092&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5093&#10;(dp5094&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5095&#10;(dp5096&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5097&#10;(dp5098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5099&#10;(dp5100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Sent'&#10;p5101&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5101&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5102&#10;(dp5103&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5104&#10;(dp5105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5106&#10;(dp5107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5108&#10;(dp5109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5110&#10;(dp5111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5112&#10;(dp5113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Sent'&#10;p5114&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5114&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5115&#10;(dp5116&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5117&#10;(dp5118&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5119&#10;(dp5120&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5121&#10;(dp5122&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5123&#10;(dp5124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5125&#10;(dp5126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Sent'&#10;p5127&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5127&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5128&#10;(dp5129&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5130&#10;(dp5131&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5132&#10;(dp5133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5134&#10;(dp5135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5136&#10;(dp5137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5138&#10;(dp5139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Sent'&#10;p5140&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5140&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5141&#10;(dp5142&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5143&#10;(dp5144&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5145&#10;(dp5146&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5147&#10;(dp5148&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5149&#10;(dp5150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5151&#10;(dp5152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Sent'&#10;p5153&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5153&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5154&#10;(dp5155&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5156&#10;(dp5157&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5158&#10;(dp5159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5160&#10;(dp5161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5162&#10;(dp5163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5164&#10;(dp5165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Sent'&#10;p5166&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5166&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5167&#10;(dp5168&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5169&#10;(dp5170&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5171&#10;(dp5172&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5173&#10;(dp5174&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5175&#10;(dp5176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5177&#10;(dp5178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Sent'&#10;p5179&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5179&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5180&#10;(dp5181&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5182&#10;(dp5183&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5184&#10;(dp5185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5186&#10;(dp5187&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5188&#10;(dp5189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5190&#10;(dp5191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Sent'&#10;p5192&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5192&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5193&#10;(dp5194&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5195&#10;(dp5196&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5197&#10;(dp5198&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5199&#10;(dp5200&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5201&#10;(dp5202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5203&#10;(dp5204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Sent'&#10;p5205&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5205&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5206&#10;(dp5207&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5208&#10;(dp5209&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5210&#10;(dp5211&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5212&#10;(dp5213&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5214&#10;(dp5215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5216&#10;(dp5217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Sent'&#10;p5218&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5218&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5219&#10;(dp5220&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5221&#10;(dp5222&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5223&#10;(dp5224&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5225&#10;(dp5226&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5227&#10;(dp5228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5229&#10;(dp5230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Client'&#10;p5231&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5231&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5232&#10;(dp5233&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5234&#10;(dp5235&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5236&#10;(dp5237&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5238&#10;(dp5239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5240&#10;(dp5241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5242&#10;(dp5243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Server'&#10;p5244&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5244&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5245&#10;(dp5246&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5247&#10;(dp5248&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5249&#10;(dp5250&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5251&#10;(dp5252&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5253&#10;(dp5254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5255&#10;(dp5256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Client to Server)'&#10;p5257&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5257&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5258&#10;(dp5259&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5260&#10;(dp5261&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5262&#10;(dp5263&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5264&#10;(dp5265&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5266&#10;(dp5267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5268&#10;(dp5269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Server to Client)'&#10;p5270&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5270&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5271&#10;(dp5272&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5273&#10;(dp5274&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5275&#10;(dp5276&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5277&#10;(dp5278&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5279&#10;(dp5280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5281&#10;(dp5282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Client to Server)'&#10;p5283&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5283&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5284&#10;(dp5285&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5286&#10;(dp5287&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5288&#10;(dp5289&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5290&#10;(dp5291&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5292&#10;(dp5293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5294&#10;(dp5295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Server to Client)'&#10;p5296&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5296&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5297&#10;(dp5298&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5299&#10;(dp5300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5301&#10;(dp5302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5303&#10;(dp5304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5305&#10;(dp5306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5307&#10;(dp5308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Succeeded'&#10;p5309&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5309&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5310&#10;(dp5311&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5312&#10;(dp5313&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5314&#10;(dp5315&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5316&#10;(dp5317&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5318&#10;(dp5319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5320&#10;(dp5321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Failed'&#10;p5322&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5322&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5323&#10;(dp5324&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5325&#10;(dp5326&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5327&#10;(dp5328&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5329&#10;(dp5330&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5331&#10;(dp5332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5333&#10;(dp5334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Protocol Error'&#10;p5335&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5335&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5336&#10;(dp5337&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5338&#10;(dp5339&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5340&#10;(dp5341&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5342&#10;(dp5343&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5344&#10;(dp5345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5346&#10;(dp5347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Internal Error'&#10;p5348&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5348&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5349&#10;(dp5350&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5351&#10;(dp5352&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5353&#10;(dp5354&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5355&#10;(dp5356&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5357&#10;(dp5358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5359&#10;(dp5360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Flow Control Error'&#10;p5361&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5361&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5362&#10;(dp5363&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5364&#10;(dp5365&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5366&#10;(dp5367&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5368&#10;(dp5369&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5370&#10;(dp5371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5372&#10;(dp5373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Timeout Error'&#10;p5374&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5374&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5375&#10;(dp5376&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5377&#10;(dp5378&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5379&#10;(dp5380&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5381&#10;(dp5382&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5383&#10;(dp5384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5385&#10;(dp5386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Closed Error'&#10;p5387&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5387&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5388&#10;(dp5389&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5390&#10;(dp5391&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5392&#10;(dp5393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5394&#10;(dp5395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5396&#10;(dp5397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5398&#10;(dp5399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Frame Size Error'&#10;p5400&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5400&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5401&#10;(dp5402&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5403&#10;(dp5404&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5405&#10;(dp5406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5407&#10;(dp5408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5409&#10;(dp5410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5411&#10;(dp5412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Refused Stream Error'&#10;p5413&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5413&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5414&#10;(dp5415&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5416&#10;(dp5417&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5418&#10;(dp5419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5420&#10;(dp5421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5422&#10;(dp5423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5424&#10;(dp5425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Cancelled Error'&#10;p5426&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5426&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5427&#10;(dp5428&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5429&#10;(dp5430&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5431&#10;(dp5432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5433&#10;(dp5434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5435&#10;(dp5436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5437&#10;(dp5438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Compression Error'&#10;p5439&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5439&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5440&#10;(dp5441&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5442&#10;(dp5443&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5444&#10;(dp5445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5446&#10;(dp5447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5448&#10;(dp5449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5450&#10;(dp5451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connect Error'&#10;p5452&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5452&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5453&#10;(dp5454&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5455&#10;(dp5456&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5457&#10;(dp5458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5459&#10;(dp5460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5461&#10;(dp5462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5463&#10;(dp5464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Enhance Calm Error'&#10;p5465&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5465&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5466&#10;(dp5467&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5468&#10;(dp5469&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5470&#10;(dp5471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5472&#10;(dp5473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5474&#10;(dp5475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5476&#10;(dp5477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Inadequate Security Error'&#10;p5478&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5478&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5479&#10;(dp5480&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5481&#10;(dp5482&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5483&#10;(dp5484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5485&#10;(dp5486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5487&#10;(dp5488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5489&#10;(dp5490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 HTTP1_1 Required Error'&#10;p5491&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5491&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5492&#10;(dp5493&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5494&#10;(dp5495&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5496&#10;(dp5497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5498&#10;(dp5499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5500&#10;(dp5501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5502&#10;(dp5503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p5504&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5504&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5505&#10;(dp5506&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5507&#10;(dp5508&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5509&#10;(dp5510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5511&#10;(dp5512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5513&#10;(dp5514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5515&#10;(dp5516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p5517&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5517&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5518&#10;(dp5519&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5520&#10;(dp5521&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5522&#10;(dp5523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5524&#10;(dp5525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5526&#10;(dp5527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5528&#10;(dp5529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p5530&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5530&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5531&#10;(dp5532&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5533&#10;(dp5534&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5535&#10;(dp5536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5537&#10;(dp5538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5539&#10;(dp5540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5541&#10;(dp5542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p5543&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5543&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5544&#10;(dp5545&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5546&#10;(dp5547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5548&#10;(dp5549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5550&#10;(dp5551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5552&#10;(dp5553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5554&#10;(dp5555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p5556&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5556&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5557&#10;(dp5558&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5559&#10;(dp5560&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5561&#10;(dp5562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5563&#10;(dp5564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5565&#10;(dp5566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5567&#10;(dp5568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p5569&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5569&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5570&#10;(dp5571&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5572&#10;(dp5573&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5574&#10;(dp5575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5576&#10;(dp5577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5578&#10;(dp5579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5580&#10;(dp5581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p5582&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5582&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5583&#10;(dp5584&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5585&#10;(dp5586&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5587&#10;(dp5588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5589&#10;(dp5590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5591&#10;(dp5592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5593&#10;(dp5594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p5595&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5595&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5596&#10;(dp5597&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5598&#10;(dp5599&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5600&#10;(dp5601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5602&#10;(dp5603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5604&#10;(dp5605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5606&#10;(dp5607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p5608&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5608&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5609&#10;(dp5610&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5611&#10;(dp5612&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5613&#10;(dp5614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5615&#10;(dp5616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5617&#10;(dp5618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5619&#10;(dp5620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p5621&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5621&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5622&#10;(dp5623&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5624&#10;(dp5625&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5626&#10;(dp5627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5628&#10;(dp5629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5630&#10;(dp5631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5632&#10;(dp5633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p5634&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5634&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5635&#10;(dp5636&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5637&#10;(dp5638&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5639&#10;(dp5640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5641&#10;(dp5642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5643&#10;(dp5644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5645&#10;(dp5646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p5647&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5647&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5648&#10;(dp5649&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5650&#10;(dp5651&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5652&#10;(dp5653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5654&#10;(dp5655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5656&#10;(dp5657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5658&#10;(dp5659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p5660&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5660&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5661&#10;(dp5662&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5663&#10;(dp5664&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5665&#10;(dp5666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5667&#10;(dp5668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5669&#10;(dp5670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5671&#10;(dp5672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p5673&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5673&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5674&#10;(dp5675&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5676&#10;(dp5677&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5678&#10;(dp5679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5680&#10;(dp5681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5682&#10;(dp5683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5684&#10;(dp5685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p5686&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5686&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5687&#10;(dp5688&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5689&#10;(dp5690&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5691&#10;(dp5692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5693&#10;(dp5694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5695&#10;(dp5696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5697&#10;(dp5698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p5699&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5699&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5700&#10;(dp5701&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5702&#10;(dp5703&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5704&#10;(dp5705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5706&#10;(dp5707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5708&#10;(dp5709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5710&#10;(dp5711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p5712&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5712&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5713&#10;(dp5714&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5715&#10;(dp5716&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5717&#10;(dp5718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5719&#10;(dp5720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5721&#10;(dp5722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5723&#10;(dp5724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p5725&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5725&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5726&#10;(dp5727&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5728&#10;(dp5729&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5730&#10;(dp5731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5732&#10;(dp5733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5734&#10;(dp5735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5736&#10;(dp5737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p5738&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5738&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5739&#10;(dp5740&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5741&#10;(dp5742&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5743&#10;(dp5744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5745&#10;(dp5746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5747&#10;(dp5748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5749&#10;(dp5750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p5751&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5751&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5752&#10;(dp5753&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5754&#10;(dp5755&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5756&#10;(dp5757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5758&#10;(dp5759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5760&#10;(dp5761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5762&#10;(dp5763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p5764&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5764&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5765&#10;(dp5766&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5767&#10;(dp5768&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5769&#10;(dp5770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5771&#10;(dp5772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5773&#10;(dp5774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5775&#10;(dp5776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p5777&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5777&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5778&#10;(dp5779&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5780&#10;(dp5781&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5782&#10;(dp5783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5784&#10;(dp5785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5786&#10;(dp5787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5788&#10;(dp5789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p5790&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5790&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5791&#10;(dp5792&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5793&#10;(dp5794&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5795&#10;(dp5796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5797&#10;(dp5798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5799&#10;(dp5800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5801&#10;(dp5802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p5803&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5803&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5804&#10;(dp5805&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5806&#10;(dp5807&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5808&#10;(dp5809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5810&#10;(dp5811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5812&#10;(dp5813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5814&#10;(dp5815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p5816&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5816&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5817&#10;(dp5818&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5819&#10;(dp5820&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5821&#10;(dp5822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5823&#10;(dp5824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5825&#10;(dp5826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5827&#10;(dp5828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p5829&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5829&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5830&#10;(dp5831&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5832&#10;(dp5833&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5834&#10;(dp5835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5836&#10;(dp5837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5838&#10;(dp5839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5840&#10;(dp5841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p5842&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5842&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5843&#10;(dp5844&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5845&#10;(dp5846&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5847&#10;(dp5848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5849&#10;(dp5850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5851&#10;(dp5852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5853&#10;(dp5854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p5855&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5855&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5856&#10;(dp5857&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5858&#10;(dp5859&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5860&#10;(dp5861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5862&#10;(dp5863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5864&#10;(dp5865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5866&#10;(dp5867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p5868&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5868&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5869&#10;(dp5870&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5871&#10;(dp5872&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5873&#10;(dp5874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5875&#10;(dp5876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5877&#10;(dp5878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5879&#10;(dp5880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p5881&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5881&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5882&#10;(dp5883&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5884&#10;(dp5885&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5886&#10;(dp5887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5888&#10;(dp5889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5890&#10;(dp5891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5892&#10;(dp5893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p5894&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5894&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5895&#10;(dp5896&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5897&#10;(dp5898&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5899&#10;(dp5900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5901&#10;(dp5902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5903&#10;(dp5904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5905&#10;(dp5906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p5907&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5907&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5908&#10;(dp5909&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5910&#10;(dp5911&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5912&#10;(dp5913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5914&#10;(dp5915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5916&#10;(dp5917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5918&#10;(dp5919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p5920&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5920&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5921&#10;(dp5922&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5923&#10;(dp5924&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5925&#10;(dp5926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5927&#10;(dp5928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5929&#10;(dp5930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5931&#10;(dp5932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p5933&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5933&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5934&#10;(dp5935&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5936&#10;(dp5937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5938&#10;(dp5939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5940&#10;(dp5941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5942&#10;(dp5943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5944&#10;(dp5945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p5946&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5946&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5947&#10;(dp5948&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5949&#10;(dp5950&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5951&#10;(dp5952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5953&#10;(dp5954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5955&#10;(dp5956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5957&#10;(dp5958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p5959&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5959&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5960&#10;(dp5961&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5962&#10;(dp5963&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5964&#10;(dp5965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5966&#10;(dp5967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5968&#10;(dp5969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5970&#10;(dp5971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p5972&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5972&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5973&#10;(dp5974&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5975&#10;(dp5976&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5977&#10;(dp5978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5979&#10;(dp5980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5981&#10;(dp5982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5983&#10;(dp5984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p5985&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5985&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5986&#10;(dp5987&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5988&#10;(dp5989&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5990&#10;(dp5991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5992&#10;(dp5993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5994&#10;(dp5995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5996&#10;(dp5997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p5998&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5998&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5999&#10;(dp6000&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6001&#10;(dp6002&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6003&#10;(dp6004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6005&#10;(dp6006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6007&#10;(dp6008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6009&#10;(dp6010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p6011&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6011&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6012&#10;(dp6013&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6014&#10;(dp6015&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6016&#10;(dp6017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6018&#10;(dp6019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6020&#10;(dp6021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6022&#10;(dp6023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p6024&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6024&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6025&#10;(dp6026&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6027&#10;(dp6028&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6029&#10;(dp6030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6031&#10;(dp6032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6033&#10;(dp6034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6035&#10;(dp6036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p6037&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6037&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6038&#10;(dp6039&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6040&#10;(dp6041&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6042&#10;(dp6043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6044&#10;(dp6045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6046&#10;(dp6047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6048&#10;(dp6049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p6050&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6050&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6051&#10;(dp6052&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6053&#10;(dp6054&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6055&#10;(dp6056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6057&#10;(dp6058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6059&#10;(dp6060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6061&#10;(dp6062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p6063&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6063&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6064&#10;(dp6065&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6066&#10;(dp6067&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6068&#10;(dp6069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6070&#10;(dp6071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6072&#10;(dp6073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6074&#10;(dp6075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p6076&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6076&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6077&#10;(dp6078&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6079&#10;(dp6080&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6081&#10;(dp6082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6083&#10;(dp6084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6085&#10;(dp6086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6087&#10;(dp6088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p6089&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6089&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6090&#10;(dp6091&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6092&#10;(dp6093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6094&#10;(dp6095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6096&#10;(dp6097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6098&#10;(dp6099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6100&#10;(dp6101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p6102&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6102&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6103&#10;(dp6104&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6105&#10;(dp6106&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6107&#10;(dp6108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6109&#10;(dp6110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6111&#10;(dp6112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6113&#10;(dp6114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p6115&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6115&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6116&#10;(dp6117&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6118&#10;(dp6119&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6120&#10;(dp6121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6122&#10;(dp6123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6124&#10;(dp6125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6126&#10;(dp6127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p6128&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6128&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6129&#10;(dp6130&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6131&#10;(dp6132&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6133&#10;(dp6134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6135&#10;(dp6136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6137&#10;(dp6138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6139&#10;(dp6140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p6141&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6141&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6142&#10;(dp6143&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6144&#10;(dp6145&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6146&#10;(dp6147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6148&#10;(dp6149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6150&#10;(dp6151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6152&#10;(dp6153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p6154&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6154&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6155&#10;(dp6156&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6157&#10;(dp6158&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6159&#10;(dp6160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6161&#10;(dp6162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6163&#10;(dp6164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6165&#10;(dp6166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p6167&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6167&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6168&#10;(dp6169&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6170&#10;(dp6171&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6172&#10;(dp6173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6174&#10;(dp6175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6176&#10;(dp6177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6178&#10;(dp6179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p6180&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6180&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6181&#10;(dp6182&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6183&#10;(dp6184&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6185&#10;(dp6186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6187&#10;(dp6188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6189&#10;(dp6190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6191&#10;(dp6192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p6193&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6193&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6194&#10;(dp6195&#10;g11&#10;Nsg12&#10;I186&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6196&#10;(dp6197&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6198&#10;(dp6199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6200&#10;(dp6201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6202&#10;(dp6203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6204&#10;(dp6205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p6206&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6206&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6207&#10;(dp6208&#10;g11&#10;Nsg12&#10;I187&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6209&#10;(dp6210&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6211&#10;(dp6212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6213&#10;(dp6214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6215&#10;(dp6216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6217&#10;(dp6218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p6219&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6219&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6220&#10;(dp6221&#10;g11&#10;Nsg12&#10;I188&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6222&#10;(dp6223&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6224&#10;(dp6225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6226&#10;(dp6227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6228&#10;(dp6229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6230&#10;(dp6231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p6232&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6232&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6233&#10;(dp6234&#10;g11&#10;Nsg12&#10;I189&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6235&#10;(dp6236&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6237&#10;(dp6238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6239&#10;(dp6240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6241&#10;(dp6242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6243&#10;(dp6244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p6245&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6245&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6246&#10;(dp6247&#10;g11&#10;Nsg12&#10;I190&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6248&#10;(dp6249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6250&#10;(dp6251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6252&#10;(dp6253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6254&#10;(dp6255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6256&#10;(dp6257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p6258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6259&#10;(dp6260&#10;g11&#10;Nsg12&#10;I191&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6261&#10;(dp6262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6263&#10;(dp6264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6265&#10;(dp6266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6267&#10;(dp6268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6269&#10;(dp6270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p6271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6272&#10;(dp6273&#10;g11&#10;Nsg12&#10;I192&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6274&#10;(dp6275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6276&#10;(dp6277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6278&#10;(dp6279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6280&#10;(dp6281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6282&#10;(dp6283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p6284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6285&#10;(dp6286&#10;g11&#10;Nsg12&#10;I193&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6287&#10;(dp6288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6289&#10;(dp6290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6291&#10;(dp6292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6293&#10;(dp6294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6295&#10;(dp6296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p6297&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6297&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6298&#10;(dp6299&#10;g11&#10;Nsg12&#10;I194&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6300&#10;(dp6301&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6302&#10;(dp6303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6304&#10;(dp6305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6306&#10;(dp6307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6308&#10;(dp6309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p6310&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6310&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6311&#10;(dp6312&#10;g11&#10;Nsg12&#10;I195&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6313&#10;(dp6314&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6315&#10;(dp6316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6317&#10;(dp6318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6319&#10;(dp6320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6321&#10;(dp6322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p6323&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6323&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6324&#10;(dp6325&#10;g11&#10;Nsg12&#10;I196&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6326&#10;(dp6327&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6328&#10;(dp6329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6330&#10;(dp6331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6332&#10;(dp6333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6334&#10;(dp6335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p6336&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6336&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6337&#10;(dp6338&#10;g11&#10;Nsg12&#10;I197&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6339&#10;(dp6340&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6341&#10;(dp6342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6343&#10;(dp6344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6345&#10;(dp6346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6347&#10;(dp6348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p6349&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6349&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6350&#10;(dp6351&#10;g11&#10;Nsg12&#10;I198&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6352&#10;(dp6353&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6354&#10;(dp6355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6356&#10;(dp6357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6358&#10;(dp6359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6360&#10;(dp6361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p6362&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6362&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6363&#10;(dp6364&#10;g11&#10;Nsg12&#10;I199&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6365&#10;(dp6366&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6367&#10;(dp6368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6369&#10;(dp6370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6371&#10;(dp6372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6373&#10;(dp6374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p6375&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6375&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6376&#10;(dp6377&#10;g11&#10;Nsg12&#10;I200&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6378&#10;(dp6379&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6380&#10;(dp6381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6382&#10;(dp6383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6384&#10;(dp6385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6386&#10;(dp6387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p6388&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6388&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6389&#10;(dp6390&#10;g11&#10;Nsg12&#10;I201&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6391&#10;(dp6392&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6393&#10;(dp6394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6395&#10;(dp6396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6397&#10;(dp6398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6399&#10;(dp6400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p6401&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6401&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6402&#10;(dp6403&#10;g11&#10;Nsg12&#10;I202&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6404&#10;(dp6405&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6406&#10;(dp6407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6408&#10;(dp6409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6410&#10;(dp6411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6412&#10;(dp6413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p6414&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6414&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6415&#10;(dp6416&#10;g11&#10;Nsg12&#10;I203&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6417&#10;(dp6418&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6419&#10;(dp6420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6421&#10;(dp6422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6423&#10;(dp6424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6425&#10;(dp6426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p6427&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6427&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6428&#10;(dp6429&#10;g11&#10;Nsg12&#10;I204&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6430&#10;(dp6431&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6432&#10;(dp6433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6434&#10;(dp6435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6436&#10;(dp6437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6438&#10;(dp6439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p6440&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6440&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6441&#10;(dp6442&#10;g11&#10;Nsg12&#10;I205&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6443&#10;(dp6444&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6445&#10;(dp6446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6447&#10;(dp6448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6449&#10;(dp6450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6451&#10;(dp6452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p6453&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6453&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6454&#10;(dp6455&#10;g11&#10;Nsg12&#10;I206&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6456&#10;(dp6457&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6458&#10;(dp6459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6460&#10;(dp6461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6462&#10;(dp6463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6464&#10;(dp6465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p6466&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6466&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6467&#10;(dp6468&#10;g11&#10;Nsg12&#10;I207&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6469&#10;(dp6470&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6471&#10;(dp6472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6473&#10;(dp6474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6475&#10;(dp6476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6477&#10;(dp6478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p6479&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6479&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6480&#10;(dp6481&#10;g11&#10;Nsg12&#10;I208&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6482&#10;(dp6483&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6484&#10;(dp6485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6486&#10;(dp6487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6488&#10;(dp6489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6490&#10;(dp6491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p6492&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6492&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6493&#10;(dp6494&#10;g11&#10;Nsg12&#10;I209&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6495&#10;(dp6496&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6497&#10;(dp6498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6499&#10;(dp6500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6501&#10;(dp6502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6503&#10;(dp6504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p6505&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6505&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6506&#10;(dp6507&#10;g11&#10;Nsg12&#10;I210&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6508&#10;(dp6509&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6510&#10;(dp6511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6512&#10;(dp6513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6514&#10;(dp6515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6516&#10;(dp6517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p6518&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6518&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6519&#10;(dp6520&#10;g11&#10;Nsg12&#10;I211&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6521&#10;(dp6522&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6523&#10;(dp6524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6525&#10;(dp6526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6527&#10;(dp6528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6529&#10;(dp6530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p6531&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6531&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6532&#10;(dp6533&#10;g11&#10;Nsg12&#10;I212&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6534&#10;(dp6535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6536&#10;(dp6537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6538&#10;(dp6539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6540&#10;(dp6541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6542&#10;(dp6543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p6544&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6544&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6545&#10;(dp6546&#10;g11&#10;Nsg12&#10;I213&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6547&#10;(dp6548&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6549&#10;(dp6550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6551&#10;(dp6552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6553&#10;(dp6554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6555&#10;(dp6556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p6557&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6557&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6558&#10;(dp6559&#10;g11&#10;Nsg12&#10;I214&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6560&#10;(dp6561&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6562&#10;(dp6563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6564&#10;(dp6565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6566&#10;(dp6567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6568&#10;(dp6569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p6570&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6570&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6571&#10;(dp6572&#10;g11&#10;Nsg12&#10;I215&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6573&#10;(dp6574&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6575&#10;(dp6576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6577&#10;(dp6578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6579&#10;(dp6580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6581&#10;(dp6582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p6583&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6583&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6584&#10;(dp6585&#10;g11&#10;Nsg12&#10;I216&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6586&#10;(dp6587&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6588&#10;(dp6589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6590&#10;(dp6591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6592&#10;(dp6593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6594&#10;(dp6595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p6596&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6596&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6597&#10;(dp6598&#10;g11&#10;Nsg12&#10;I217&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6599&#10;(dp6600&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6601&#10;(dp6602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6603&#10;(dp6604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6605&#10;(dp6606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6607&#10;(dp6608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p6609&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6609&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6610&#10;(dp6611&#10;g11&#10;Nsg12&#10;I218&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6612&#10;(dp6613&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6614&#10;(dp6615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6616&#10;(dp6617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6618&#10;(dp6619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6620&#10;(dp6621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p6622&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6622&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6623&#10;(dp6624&#10;g11&#10;Nsg12&#10;I219&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6625&#10;(dp6626&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6627&#10;(dp6628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6629&#10;(dp6630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6631&#10;(dp6632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6633&#10;(dp6634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p6635&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6635&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6636&#10;(dp6637&#10;g11&#10;Nsg12&#10;I220&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6638&#10;(dp6639&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6640&#10;(dp6641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6642&#10;(dp6643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6644&#10;(dp6645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6646&#10;(dp6647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p6648&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6648&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6649&#10;(dp6650&#10;g11&#10;Nsg12&#10;I221&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6651&#10;(dp6652&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6653&#10;(dp6654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6655&#10;(dp6656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6657&#10;(dp6658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6659&#10;(dp6660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p6661&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6661&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6662&#10;(dp6663&#10;g11&#10;Nsg12&#10;I222&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6664&#10;(dp6665&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6666&#10;(dp6667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6668&#10;(dp6669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6670&#10;(dp6671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6672&#10;(dp6673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p6674&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6674&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6675&#10;(dp6676&#10;g11&#10;Nsg12&#10;I223&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6677&#10;(dp6678&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6679&#10;(dp6680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6681&#10;(dp6682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6683&#10;(dp6684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6685&#10;(dp6686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p6687&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6687&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6688&#10;(dp6689&#10;g11&#10;Nsg12&#10;I224&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6690&#10;(dp6691&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6692&#10;(dp6693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6694&#10;(dp6695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6696&#10;(dp6697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6698&#10;(dp6699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p6700&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6700&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6701&#10;(dp6702&#10;g11&#10;Nsg12&#10;I225&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6703&#10;(dp6704&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6705&#10;(dp6706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6707&#10;(dp6708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6709&#10;(dp6710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6711&#10;(dp6712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p6713&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6713&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6714&#10;(dp6715&#10;g11&#10;Nsg12&#10;I226&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6716&#10;(dp6717&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6718&#10;(dp6719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6720&#10;(dp6721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6722&#10;(dp6723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6724&#10;(dp6725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p6726&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6726&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6727&#10;(dp6728&#10;g11&#10;Nsg12&#10;I227&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6729&#10;(dp6730&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6731&#10;(dp6732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6733&#10;(dp6734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6735&#10;(dp6736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6737&#10;(dp6738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p6739&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6739&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6740&#10;(dp6741&#10;g11&#10;Nsg12&#10;I228&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6742&#10;(dp6743&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6744&#10;(dp6745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6746&#10;(dp6747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6748&#10;(dp6749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6750&#10;(dp6751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p6752&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6752&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6753&#10;(dp6754&#10;g11&#10;Nsg12&#10;I229&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6755&#10;(dp6756&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6757&#10;(dp6758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6759&#10;(dp6760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6761&#10;(dp6762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6763&#10;(dp6764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p6765&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6765&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6766&#10;(dp6767&#10;g11&#10;Nsg12&#10;I230&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6768&#10;(dp6769&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6770&#10;(dp6771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6772&#10;(dp6773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6774&#10;(dp6775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6776&#10;(dp6777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p6778&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6778&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6779&#10;(dp6780&#10;g11&#10;Nsg12&#10;I231&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6781&#10;(dp6782&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6783&#10;(dp6784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6785&#10;(dp6786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6787&#10;(dp6788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6789&#10;(dp6790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p6791&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6791&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6792&#10;(dp6793&#10;g11&#10;Nsg12&#10;I232&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6794&#10;(dp6795&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6796&#10;(dp6797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6798&#10;(dp6799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6800&#10;(dp6801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6802&#10;(dp6803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p6804&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6804&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6805&#10;(dp6806&#10;g11&#10;Nsg12&#10;I233&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6807&#10;(dp6808&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6809&#10;(dp6810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6811&#10;(dp6812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6813&#10;(dp6814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6815&#10;(dp6816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p6817&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6817&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6818&#10;(dp6819&#10;g11&#10;Nsg12&#10;I234&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6820&#10;(dp6821&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6822&#10;(dp6823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6824&#10;(dp6825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6826&#10;(dp6827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6828&#10;(dp6829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p6830&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6830&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6831&#10;(dp6832&#10;g11&#10;Nsg12&#10;I235&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6833&#10;(dp6834&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6835&#10;(dp6836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6837&#10;(dp6838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6839&#10;(dp6840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6841&#10;(dp6842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p6843&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6843&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6844&#10;(dp6845&#10;g11&#10;Nsg12&#10;I236&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6846&#10;(dp6847&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6848&#10;(dp6849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6850&#10;(dp6851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6852&#10;(dp6853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6854&#10;(dp6855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p6856&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6856&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6857&#10;(dp6858&#10;g11&#10;Nsg12&#10;I237&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6859&#10;(dp6860&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6861&#10;(dp6862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6863&#10;(dp6864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6865&#10;(dp6866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6867&#10;(dp6868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p6869&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6869&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6870&#10;(dp6871&#10;g11&#10;Nsg12&#10;I238&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6872&#10;(dp6873&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6874&#10;(dp6875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6876&#10;(dp6877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6878&#10;(dp6879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6880&#10;(dp6881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p6882&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6882&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6883&#10;(dp6884&#10;g11&#10;Nsg12&#10;I239&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6885&#10;(dp6886&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6887&#10;(dp6888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6889&#10;(dp6890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6891&#10;(dp6892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6893&#10;(dp6894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p6895&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6895&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6896&#10;(dp6897&#10;g11&#10;Nsg12&#10;I240&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6898&#10;(dp6899&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6900&#10;(dp6901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6902&#10;(dp6903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6904&#10;(dp6905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6906&#10;(dp6907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p6908&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6908&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6909&#10;(dp6910&#10;g11&#10;Nsg12&#10;I241&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6911&#10;(dp6912&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6913&#10;(dp6914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6915&#10;(dp6916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6917&#10;(dp6918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6919&#10;(dp6920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p6921&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6921&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6922&#10;(dp6923&#10;g11&#10;Nsg12&#10;I242&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6924&#10;(dp6925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6926&#10;(dp6927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6928&#10;(dp6929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6930&#10;(dp6931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6932&#10;(dp6933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p6934&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6934&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6935&#10;(dp6936&#10;g11&#10;Nsg12&#10;I243&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6937&#10;(dp6938&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6939&#10;(dp6940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6941&#10;(dp6942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6943&#10;(dp6944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6945&#10;(dp6946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p6947&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6947&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6948&#10;(dp6949&#10;g11&#10;Nsg12&#10;I244&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6950&#10;(dp6951&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6952&#10;(dp6953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6954&#10;(dp6955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6956&#10;(dp6957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6958&#10;(dp6959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p6960&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6960&#10;sbatRp6961&#10;(dp6962&#10;g12&#10;I244&#10;sg22&#10;I00&#10;sg11&#10;Nsbs.</svRestConfiguration>
</statManagerOptions>
<currentUniqueIDForAgent type="int">2</currentUniqueIDForAgent>
diff --git a/samples/vnf_samples/traffic_profiles/ixload/HTTP-Connections_2Ports.rxf b/samples/vnf_samples/traffic_profiles/ixload/HTTP-Connections_2Ports.rxf
new file mode 100644
index 000000000..f1403a38c
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ixload/HTTP-Connections_2Ports.rxf
@@ -0,0 +1,1289 @@
+<?xml version="1.0" ?>
+<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
+ <_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
+ <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;628fdbe1-4254-48b1-8765-a4d5bbafd1ff&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;uplink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;downlink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c284265e-5fc6-4a6a-ad6e-a8c3f465d00b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;payloadAttrTypes type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
+ </_smSessionXml>
+ <_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
+ <xml type="str"></xml>
+ </_composerConfig>
+ <_quickTestConfig ver="[0, [1, [0, [0]]]]" type="ixQuickTestConfig">
+ <xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
+ </_quickTestConfig>
+ <lastApiUniqueId type="int">15481</lastApiUniqueId>
+ <version type="str">8.30.115.152</version>
+ <name type="str">HTTP-Connections_2Ports.rxf</name>
+ <comment type="str"></comment>
+ <path type="str">C:\ixload</path>
+ <last type="str">HTTP-Connections_2Ports.rxf</last>
+ <activeTest type="str">Test1</activeTest>
+ <chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
+ <chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
+ <_apiUniqueId type="int">12991</_apiUniqueId>
+ <chassisMap type="dict"/>
+ <hiddenChassis type="NoneType">None</hiddenChassis>
+ </chassisChain>
+ <AfmPortPacketRewriteConfigList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAfmPortPacketRewriteConfigList" itemtype="ixAfmPortPacketRewriteConfig"/>
+ <networkList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixRepositoryNetworkList" itemtype="ixNullNetwork"/>
+ <dutList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixDutList" itemtype="ixDut"/>
+ <trafficList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTrafficList" itemtype="ixActivityModel"/>
+ <testList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTestList" itemtype="ixTestEnvelope">
+ <item ver="[18, [1, [0, [0]]]]" type="ixTestEnvelope">
+ <name type="str">Test1</name>
+ <comment type="str"></comment>
+ <enableForceOwnership type="bool">False</enableForceOwnership>
+ <enableResetPorts type="bool">False</enableResetPorts>
+ <statsRequired type="int">1</statsRequired>
+ <enableConditionalView type="bool">False</enableConditionalView>
+ <conditionalViewType type="int">0</conditionalViewType>
+ <conditionalViewList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixConditionalViewList" itemtype="ixConditionalView"/>
+ <enableReleaseConfigAfterRun type="int">0</enableReleaseConfigAfterRun>
+ <csvInterval type="int">4</csvInterval>
+ <networkFailureThreshold type="int">0</networkFailureThreshold>
+ <captureViewOptions ver="[1, [1, [0, [0]]]]" oid="8" type="ixViewOptions">
+ <runMode type="int">1</runMode>
+ <collectScheme type="int">0</collectScheme>
+ <allocatedBufferMemoryPercentage type="long">30</allocatedBufferMemoryPercentage>
+ <captureRunAfter type="int">0</captureRunAfter>
+ <captureRunDuration type="int">0</captureRunDuration>
+ <_apiUniqueId type="int">12941</_apiUniqueId>
+ </captureViewOptions>
+ <scenarioList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioList" itemtype="ixScenario">
+ <item ver="[3, [1, [0, [0]]]]" type="ixScenario">
+ <name type="str">TrafficFlow1</name>
+ <columnList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixTrafficColumnList" itemtype="ixTrafficColumn">
+ <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
+ <name type="str">Client</name>
+ <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
+ <item ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
+ <name type="str">HTTP client@uplink_0</name>
+ <column type="NoneType">None</column>
+ <scenarioElementType type="str">netTraffic</scenarioElementType>
+ <enable type="int">1</enable>
+ <role type="str">Client</role>
+ <networkType type="str">ethernet</networkType>
+ <activityFunction type="str">ipTrafficAgent</activityFunction>
+ <activeRole type="str">Client</activeRole>
+ <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
+ <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
+ <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
+ <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
+ <name type="str">HTTP client</name>
+ <role type="str">Client</role>
+ <activityFunction type="str">ipTrafficAgent</activityFunction>
+ <payload type="NoneType">None</payload>
+ <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
+ <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="14" type="HTTP_Client_plugin">
+ <enable type="int">1</enable>
+ <name type="str">newClientActivity1</name>
+ <activityFunction type="str">ipTrafficAgent</activityFunction>
+ <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
+ <activeRole type="NoneType">None</activeRole>
+ <cmdListLoops type="int">0</cmdListLoops>
+ <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
+ <seed type="int">1</seed>
+ <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
+ <_apiUniqueId type="int">12943</_apiUniqueId>
+ </cmdPercentagePool>
+ <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
+ <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
+ <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
+ <name type="str">HTTP server_newServerActivity1</name>
+ <portMapPolicy type="str">portPairs</portMapPolicy>
+ <sameAs type="str"></sameAs>
+ <validPortMapPolicies type="list">
+ <item type="str">portPairs</item>
+ <item type="str">portMesh</item>
+ <item type="str">customMesh</item>
+ </validPortMapPolicies>
+ <inUse type="bool">True</inUse>
+ <customPortMap type="NoneType">None</customPortMap>
+ <sourceCommunity ref="0"/>
+ <destinationCommunity ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
+ <name type="str">HTTP server@downlink_0</name>
+ <column type="NoneType">None</column>
+ <scenarioElementType type="str">netTraffic</scenarioElementType>
+ <enable type="int">1</enable>
+ <role type="str">Server</role>
+ <networkType type="str">ethernet</networkType>
+ <activityFunction type="str">ipTrafficAgent</activityFunction>
+ <activeRole type="str">Server</activeRole>
+ <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
+ <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
+ <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
+ <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
+ <name type="str">HTTP server</name>
+ <role type="str">Server</role>
+ <activityFunction type="str">ipTrafficAgent</activityFunction>
+ <payload type="NoneType">None</payload>
+ <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
+ <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="6" type="HTTP_Server_plugin">
+ <enable type="int">1</enable>
+ <name type="str">newServerActivity1</name>
+ <activityFunction type="str">ipTrafficAgent</activityFunction>
+ <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
+ <activeRole type="NoneType">None</activeRole>
+ <loopValue type="int">1</loopValue>
+ <cmdListLoops type="int">0</cmdListLoops>
+ <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
+ <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
+ <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
+ <flowPercentage type="float">100.0</flowPercentage>
+ <httpPort type="str">80</httpPort>
+ <httpsPort type="str">443</httpsPort>
+ <requestTimeout type="int">300</requestTimeout>
+ <minResponseDelay type="int">0</minResponseDelay>
+ <maxResponseDelay type="int">0</maxResponseDelay>
+ <acceptSslConnections type="int">0</acceptSslConnections>
+ <enablesslRecordSize type="int">0</enablesslRecordSize>
+ <validateCertificate type="int">0</validateCertificate>
+ <sslRecordSize type="str">16384</sslRecordSize>
+ <urlStatsCount type="int">10</urlStatsCount>
+ <rstTimeout type="int">100</rstTimeout>
+ <enableEsm type="int">0</enableEsm>
+ <esm type="int">1460</esm>
+ <enableTos type="bool">False</enableTos>
+ <enableVlanPriority type="int">0</enableVlanPriority>
+ <vlanPriority type="int">0</vlanPriority>
+ <enableIntegrityCheck type="int">0</enableIntegrityCheck>
+ <tos type="int">0</tos>
+ <precedenceTOS type="int">0</precedenceTOS>
+ <delayTOS type="int">0</delayTOS>
+ <throughputTOS type="int">0</throughputTOS>
+ <reliabilityTOS type="int">0</reliabilityTOS>
+ <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
+ <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
+ <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
+ <name type="str">200_OK</name>
+ <description type="str">OK</description>
+ <code type="str">200</code>
+ <mimeType type="str">text/plain</mimeType>
+ <dateMode type="int">2</dateMode>
+ <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
+ <dateIncrementEnable type="bool">False</dateIncrementEnable>
+ <dateIncrementBy type="int">5</dateIncrementBy>
+ <dateIncrementFor type="int">1</dateIncrementFor>
+ <dateZone type="str">GMT</dateZone>
+ <expirationMode type="int">0</expirationMode>
+ <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
+ <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
+ <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
+ <lastModifiedMode type="int">1</lastModifiedMode>
+ <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
+ <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
+ <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
+ <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
+ <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
+ <readOnly type="bool">True</readOnly>
+ <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12972</_apiUniqueId>
+ </item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
+ <name type="str">404_PageNotFound</name>
+ <description type="str">Page not found</description>
+ <code type="str">404</code>
+ <mimeType type="str">text/plain</mimeType>
+ <dateMode type="int">2</dateMode>
+ <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
+ <dateIncrementEnable type="bool">False</dateIncrementEnable>
+ <dateIncrementBy type="int">5</dateIncrementBy>
+ <dateIncrementFor type="int">1</dateIncrementFor>
+ <dateZone type="str">GMT</dateZone>
+ <expirationMode type="int">0</expirationMode>
+ <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
+ <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
+ <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
+ <lastModifiedMode type="int">1</lastModifiedMode>
+ <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
+ <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
+ <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
+ <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
+ <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
+ <readOnly type="bool">True</readOnly>
+ <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
+ <objectID type="int">1</objectID>
+ <_apiUniqueId type="int">12973</_apiUniqueId>
+ </item>
+ </responseHeaderList>
+ <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
+ <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
+ <name type="str">UserCookie</name>
+ <description type="str">Name of User</description>
+ <type type="int">2</type>
+ <mode type="int">3</mode>
+ <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
+ <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
+ <name type="str">firstName</name>
+ <value type="str">Joe</value>
+ <path type="str"></path>
+ <maxAge type="str"></maxAge>
+ <domain type="str"></domain>
+ <other type="str"></other>
+ <objectID type="int">0</objectID>
+ </item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
+ <name type="str">lastName</name>
+ <value type="str">Smith</value>
+ <path type="str"></path>
+ <maxAge type="str"></maxAge>
+ <domain type="str"></domain>
+ <other type="str"></other>
+ <objectID type="int">1</objectID>
+ </item>
+ </cookieContentList>
+ <readOnly type="bool">True</readOnly>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12987</_apiUniqueId>
+ </item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
+ <name type="str">LoginCookie</name>
+ <description type="str">Login name and password</description>
+ <type type="int">2</type>
+ <mode type="int">2</mode>
+ <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
+ <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
+ <name type="str">name</name>
+ <value type="str">joesmith</value>
+ <path type="str"></path>
+ <maxAge type="str"></maxAge>
+ <domain type="str"></domain>
+ <other type="str"></other>
+ <objectID type="int">0</objectID>
+ </item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
+ <name type="str">password</name>
+ <value type="str">foobar</value>
+ <path type="str"></path>
+ <maxAge type="str"></maxAge>
+ <domain type="str"></domain>
+ <other type="str"></other>
+ <objectID type="int">1</objectID>
+ </item>
+ </cookieContentList>
+ <readOnly type="bool">True</readOnly>
+ <objectID type="int">1</objectID>
+ <_apiUniqueId type="int">12988</_apiUniqueId>
+ </item>
+ </cookieList>
+ <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
+ <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
+ <page type="str">/1b.html</page>
+ <response ver="[0, [1, [0, [0]]]]" oid="1" type="ixResponseHeader">
+ <name type="str">200_OK</name>
+ <description type="str">OK</description>
+ <code type="str">200</code>
+ <mimeType type="str">text/plain</mimeType>
+ <dateMode type="int">2</dateMode>
+ <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
+ <dateIncrementEnable type="bool">False</dateIncrementEnable>
+ <dateIncrementBy type="int">5</dateIncrementBy>
+ <dateIncrementFor type="int">1</dateIncrementFor>
+ <dateZone type="str">GMT</dateZone>
+ <expirationMode type="int">0</expirationMode>
+ <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
+ <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
+ <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
+ <lastModifiedMode type="int">1</lastModifiedMode>
+ <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
+ <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
+ <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
+ <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
+ <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
+ <readOnly type="bool">True</readOnly>
+ <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
+ <_apiUniqueId type="int">12984</_apiUniqueId>
+ </response>
+ <payloadType type="str">range</payloadType>
+ <payloadSize type="str">1-1</payloadSize>
+ <payloadFile type="str">&lt;specify file&gt;</payloadFile>
+ <cookie type="NoneType">None</cookie>
+ <customPayloadId type="int">-1</customPayloadId>
+ <Md5Option type="int">3</Md5Option>
+ <chunkSize type="str">512-1024</chunkSize>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12974</_apiUniqueId>
+ </item>
+ <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
+ <page type="str">/4k.html</page>
+ <response ref="1"/>
+ <payloadType type="str">range</payloadType>
+ <payloadSize type="str">4096-4096</payloadSize>
+ <payloadFile type="str">&lt;specify file&gt;</payloadFile>
+ <cookie type="NoneType">None</cookie>
+ <customPayloadId type="int">-1</customPayloadId>
+ <Md5Option type="int">3</Md5Option>
+ <chunkSize type="str">512-1024</chunkSize>
+ <objectID type="int">1</objectID>
+ <_apiUniqueId type="int">12975</_apiUniqueId>
+ </item>
+ <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
+ <page type="str">/8k.html</page>
+ <response ref="1"/>
+ <payloadType type="str">range</payloadType>
+ <payloadSize type="str">8192-8192</payloadSize>
+ <payloadFile type="str">&lt;specify file&gt;</payloadFile>
+ <cookie type="NoneType">None</cookie>
+ <customPayloadId type="int">-1</customPayloadId>
+ <Md5Option type="int">3</Md5Option>
+ <chunkSize type="str">512-1024</chunkSize>
+ <objectID type="int">2</objectID>
+ <_apiUniqueId type="int">12976</_apiUniqueId>
+ </item>
+ <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
+ <page type="str">/16k.html</page>
+ <response ref="1"/>
+ <payloadType type="str">range</payloadType>
+ <payloadSize type="str">16536-16536</payloadSize>
+ <payloadFile type="str">&lt;specify file&gt;</payloadFile>
+ <cookie type="NoneType">None</cookie>
+ <customPayloadId type="int">-1</customPayloadId>
+ <Md5Option type="int">3</Md5Option>
+ <chunkSize type="str">512-1024</chunkSize>
+ <objectID type="int">3</objectID>
+ <_apiUniqueId type="int">12977</_apiUniqueId>
+ </item>
+ <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
+ <page type="str">/32k.html</page>
+ <response ref="1"/>
+ <payloadType type="str">range</payloadType>
+ <payloadSize type="str">32768</payloadSize>
+ <payloadFile type="str">&lt;specify file&gt;</payloadFile>
+ <cookie type="NoneType">None</cookie>
+ <customPayloadId type="int">-1</customPayloadId>
+ <Md5Option type="int">3</Md5Option>
+ <chunkSize type="str">512-1024</chunkSize>
+ <objectID type="int">4</objectID>
+ <_apiUniqueId type="int">12978</_apiUniqueId>
+ </item>
+ <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
+ <page type="str">/64k.html</page>
+ <response ref="1"/>
+ <payloadType type="str">range</payloadType>
+ <payloadSize type="str">65536</payloadSize>
+ <payloadFile type="str">&lt;specify file&gt;</payloadFile>
+ <cookie type="NoneType">None</cookie>
+ <customPayloadId type="int">-1</customPayloadId>
+ <Md5Option type="int">3</Md5Option>
+ <chunkSize type="str">512-1024</chunkSize>
+ <objectID type="int">5</objectID>
+ <_apiUniqueId type="int">12979</_apiUniqueId>
+ </item>
+ <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
+ <page type="str">/128k.html</page>
+ <response ref="1"/>
+ <payloadType type="str">range</payloadType>
+ <payloadSize type="str">131072</payloadSize>
+ <payloadFile type="str">&lt;specify file&gt;</payloadFile>
+ <cookie type="NoneType">None</cookie>
+ <customPayloadId type="int">-1</customPayloadId>
+ <Md5Option type="int">3</Md5Option>
+ <chunkSize type="str">512-1024</chunkSize>
+ <objectID type="int">6</objectID>
+ <_apiUniqueId type="int">12980</_apiUniqueId>
+ </item>
+ <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
+ <page type="str">/256k.html</page>
+ <response ref="1"/>
+ <payloadType type="str">range</payloadType>
+ <payloadSize type="str">262144</payloadSize>
+ <payloadFile type="str">&lt;specify file&gt;</payloadFile>
+ <cookie type="NoneType">None</cookie>
+ <customPayloadId type="int">-1</customPayloadId>
+ <Md5Option type="int">3</Md5Option>
+ <chunkSize type="str">512-1024</chunkSize>
+ <objectID type="int">7</objectID>
+ <_apiUniqueId type="int">12981</_apiUniqueId>
+ </item>
+ <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
+ <page type="str">/512k.html</page>
+ <response ref="1"/>
+ <payloadType type="str">range</payloadType>
+ <payloadSize type="str">524288</payloadSize>
+ <payloadFile type="str">&lt;specify file&gt;</payloadFile>
+ <cookie type="NoneType">None</cookie>
+ <customPayloadId type="int">-1</customPayloadId>
+ <Md5Option type="int">3</Md5Option>
+ <chunkSize type="str">512-1024</chunkSize>
+ <objectID type="int">8</objectID>
+ <_apiUniqueId type="int">12982</_apiUniqueId>
+ </item>
+ <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
+ <page type="str">/1024k.html</page>
+ <response ref="1"/>
+ <payloadType type="str">range</payloadType>
+ <payloadSize type="str">1048576</payloadSize>
+ <payloadFile type="str">&lt;specify file&gt;</payloadFile>
+ <cookie type="NoneType">None</cookie>
+ <customPayloadId type="int">-1</customPayloadId>
+ <Md5Option type="int">3</Md5Option>
+ <chunkSize type="str">512-1024</chunkSize>
+ <objectID type="int">9</objectID>
+ <_apiUniqueId type="int">12983</_apiUniqueId>
+ </item>
+ </webPageList>
+ <ServerCiphers type="str">DEFAULT</ServerCiphers>
+ <privateKeyPassword type="str"></privateKeyPassword>
+ <privateKey type="str"></privateKey>
+ <certificate type="str"></certificate>
+ <caCert type="str"></caCert>
+ <enableDHsupport type="int">0</enableDHsupport>
+ <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
+ <dhParams type="str"></dhParams>
+ <tcpCloseOption type="int">0</tcpCloseOption>
+ <docrootfile type="str"></docrootfile>
+ <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
+ <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
+ <id type="int">0</id>
+ <name type="str">AsciiCustomPayload</name>
+ <payloadPosition type="str">Start With</payloadPosition>
+ <payloadmode type="int">0</payloadmode>
+ <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
+ <hexPayloadValue type="str"></hexPayloadValue>
+ <repeat type="int">0</repeat>
+ <offset type="int">1</offset>
+ <readOnly type="bool">True</readOnly>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12985</_apiUniqueId>
+ </item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
+ <id type="int">1</id>
+ <name type="str">HexCustomPayload</name>
+ <payloadPosition type="str">Start With</payloadPosition>
+ <payloadmode type="int">1</payloadmode>
+ <asciiPayloadValue type="str"></asciiPayloadValue>
+ <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
+ <repeat type="int">0</repeat>
+ <offset type="int">1</offset>
+ <readOnly type="bool">True</readOnly>
+ <objectID type="int">1</objectID>
+ <_apiUniqueId type="int">12986</_apiUniqueId>
+ </item>
+ </customPayloadList>
+ <enableMD5Checksum type="bool">False</enableMD5Checksum>
+ <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
+ <uniqueID type="int">2</uniqueID>
+ <enableChunkEncoding type="bool">False</enableChunkEncoding>
+ <docrootChunkSize type="str">512-1024</docrootChunkSize>
+ <urlPageSize type="int">1024</urlPageSize>
+ <enableChunkedRequest type="bool">False</enableChunkedRequest>
+ <enableNewSslSupport type="bool">False</enableNewSslSupport>
+ <enableHTTP2 type="bool">False</enableHTTP2>
+ <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
+ <disableMacValidation type="int">0</disableMacValidation>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12971</_apiUniqueId>
+ <commandIdCounter type="int">0</commandIdCounter>
+ <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
+ <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
+ <_dict type="list"/>
+ </serializedNetworkSettingsMap>
+ <protocolName type="str">HTTP</protocolName>
+ </networkPluginSettings>
+ </item>
+ </agentList>
+ </traffic>
+ <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
+ <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
+ <name type="str">downlink_0</name>
+ <role type="str">Server</role>
+ <networkType type="str">none</networkType>
+ <aggregation type="int">0</aggregation>
+ <lineSpeed type="str">Default</lineSpeed>
+ <cpuAggregation type="bool">False</cpuAggregation>
+ <chassisChain ref="2"/>
+ <cardType type="str">FLEXAP1040SQ</cardType>
+ <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
+ <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" oid="9" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
+ <comment type="str"></comment>
+ <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
+ <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
+ <_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
+ <name type="str">Network Range IP-R2 in downlink_0 (152.40.40.20+1)</name>
+ <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
+ <name type="str">DistGroup1</name>
+ <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12961</_apiUniqueId>
+ <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
+ <item ref="3"/>
+ </_networkRangeList>
+ <_rangeGroupObjectId type="str">b2c21c73-bfe3-4fbc-9804-b5a8b307d893</_rangeGroupObjectId>
+ <_smPluginObjectId type="str">b85b184d-9bb4-48c2-a029-e633fee7a3c8</_smPluginObjectId>
+ </rangeGroup>
+ <enableStats type="bool">False</enableStats>
+ </item>
+ </networkRangeList>
+ <layerPlugins type="NoneType">None</layerPlugins>
+ <stack type="NoneType">None</stack>
+ <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
+ <item ref="4"/>
+ </rangeGroupList>
+ <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
+ <linkLayerOptions type="int">0</linkLayerOptions>
+ <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
+ <ipSourcePortTo type="int">65535</ipSourcePortTo>
+ <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
+ <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
+ <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
+ <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
+ <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
+ <macMappingMode type="int">0</macMappingMode>
+ <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
+ <gratuitousArp type="bool">True</gratuitousArp>
+ <processGratArp type="bool">False</processGratArp>
+ </arpSettings>
+ <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
+ <enable type="int">0</enable>
+ <cacheTimeout type="int">30000</cacheTimeout>
+ <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
+ <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
+ </dnsParameters>
+ <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
+ <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="5" type="ixTcpParametersFull">
+ <enableCongestionNotification type="bool">False</enableCongestionNotification>
+ <enableTimeStamp type="bool">True</enableTimeStamp>
+ <timeWaitRecycle type="bool">True</timeWaitRecycle>
+ <timeWaitReuse type="bool">False</timeWaitReuse>
+ <enableTxBwLimit type="bool">False</enableTxBwLimit>
+ <txBwLimitUnit type="int">0</txBwLimitUnit>
+ <txBwLimit type="int">1024</txBwLimit>
+ <enableRxBwLimit type="bool">False</enableRxBwLimit>
+ <rxBwLimitUnit type="int">0</rxBwLimitUnit>
+ <rxBwLimit type="int">1024</rxBwLimit>
+ <finTimeout type="int">60</finTimeout>
+ <keepAliveInterval type="int">7200</keepAliveInterval>
+ <keepAliveProbes type="int">75</keepAliveProbes>
+ <keepAliveTime type="int">9</keepAliveTime>
+ <synRetries type="int">5</synRetries>
+ <synAckRetries type="int">5</synAckRetries>
+ <retransmitRetries type="int">15</retransmitRetries>
+ <transmitBuffer type="int">1024</transmitBuffer>
+ <receiveBuffer type="int">1024</receiveBuffer>
+ <tcpSack type="bool">True</tcpSack>
+ <windowScaling type="bool">False</windowScaling>
+ <rtoMin type="int">1000</rtoMin>
+ <rtoMax type="int">120000</rtoMax>
+ </tcpParametersFull>
+ <tcpParametersFull ref="5"/>
+ </tcpParameters>
+ <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
+ <enable type="bool">False</enable>
+ <addDelay type="bool">True</addDelay>
+ <addReorder type="bool">False</addReorder>
+ <addDrop type="bool">False</addDrop>
+ <addDuplicate type="bool">False</addDuplicate>
+ <randomizeSeed type="bool">False</randomizeSeed>
+ <delay type="int">1</delay>
+ <reorder type="int">1</reorder>
+ <reorderLength type="int">1</reorderLength>
+ <sourcePort type="int">0</sourcePort>
+ <destinationPort type="int">0</destinationPort>
+ <drop type="int">1</drop>
+ <duplicate type="int">1</duplicate>
+ <jitter type="int">0</jitter>
+ <gap type="int">1</gap>
+ <destinationIp type="str">any</destinationIp>
+ <typeOfService type="str">any</typeOfService>
+ <protocol type="str">any</protocol>
+ <addFragmentation type="bool">False</addFragmentation>
+ <fragmentationType type="str">FragmentationPercent</fragmentationType>
+ <fragmentPercent type="int">50</fragmentPercent>
+ <mtu type="int">1000</mtu>
+ <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
+ <fragmentSequenceLength type="int">1</fragmentSequenceLength>
+ <_seed type="int">1</_seed>
+ </impairment>
+ <_portGroupId type="str">c4ecfc60-64ac-4dc2-9410-e0f58d84f229</_portGroupId>
+ <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
+ <externalLinks type="dict"/>
+ </_smExternalLinks>
+ <smVersion type="int">1</smVersion>
+ </network>
+ <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
+ <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
+ <agent ref="6"/>
+ <protocolAndType type="str">HTTP Server</protocolAndType>
+ <name type="str">newServerActivity1</name>
+ <enable type="bool">True</enable>
+ <timeline ver="[0, [2, [2, [1, [1, [0, [0]]]]]]]" oid="7" type="ixMatchLongestTimeline"/>
+ <customParameters type="NoneType">None</customParameters>
+ <role type="str">Server</role>
+ <activeRole type="str">Server</activeRole>
+ <objectivePercent type="float">100.0</objectivePercent>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12989</_apiUniqueId>
+ <_objectiveValue type="int">100</_objectiveValue>
+ <timelineScale type="float">1.0</timelineScale>
+ </item>
+ </activityParameters>
+ <timeline ref="7"/>
+ <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
+ <captureViewOptions ref="8"/>
+ <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
+ <filterString type="str"></filterString>
+ </filter>
+ <portList ref="9"/>
+ <enable type="bool">False</enable>
+ <_apiUniqueId type="int">12970</_apiUniqueId>
+ </communityCapture>
+ <payload type="NoneType">None</payload>
+ <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="10" type="ixRangeAgentEndpointWiring">
+ <rangeAgentConnections type="list"/>
+ <_apiUniqueId type="int">12956</_apiUniqueId>
+ <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
+ <_dict type="list">
+ <item type="tuple">
+ <item ref="3"/>
+ <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
+ <range ref="3"/>
+ <agentEndpointConnections type="list"/>
+ <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
+ <_dict type="list">
+ <item type="tuple">
+ <item ref="6"/>
+ <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
+ <agent ref="6"/>
+ <endpoints type="list"/>
+ <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
+ <_dict type="list">
+ <item type="tuple">
+ <item type="str">HTTP Server</item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
+ <endpointName type="str">HTTP Server</endpointName>
+ <isAvailable type="bool">True</isAvailable>
+ </item>
+ </item>
+ </_dict>
+ </endpointsDict>
+ </item>
+ </item>
+ </_dict>
+ </agentConnectionsDict>
+ </item>
+ </item>
+ </_dict>
+ </rangeAgentDict>
+ </activityIpWiring>
+ <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
+ <iterations type="int">1</iterations>
+ <standbyTime type="int">0</standbyTime>
+ <offlineTime type="int">0</offlineTime>
+ <sustainTime type="int">620</sustainTime>
+ <iterationTime type="int">620</iterationTime>
+ <totalTime type="int">620</totalTime>
+ <objectID type="int">1</objectID>
+ <_apiUniqueId type="int">12955</_apiUniqueId>
+ <isVisible type="bool">True</isVisible>
+ <activityIpWiring ref="10"/>
+ <_portOperationModesAllowed type="dict">
+ <item>
+ <key type="int">0</key>
+ <value type="bool">True</value>
+ </item>
+ <item>
+ <key type="int">1</key>
+ <value type="bool">True</value>
+ </item>
+ <item>
+ <key type="int">2</key>
+ <value type="bool">False</value>
+ </item>
+ <item>
+ <key type="int">3</key>
+ <value type="bool">True</value>
+ </item>
+ <item>
+ <key type="int">4</key>
+ <value type="bool">True</value>
+ </item>
+ <item>
+ <key type="int">8</key>
+ <value type="bool">True</value>
+ </item>
+ </_portOperationModesAllowed>
+ <_tcpAccelerationAllowed type="dict">
+ <item>
+ <key type="int">0</key>
+ <value type="bool">True</value>
+ </item>
+ <item>
+ <key type="int">1</key>
+ <value type="bool">False</value>
+ </item>
+ </_tcpAccelerationAllowed>
+ </destinationCommunity>
+ <destinationAgentName type="str">newServerActivity1</destinationAgentName>
+ <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
+ <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
+ <intRange type="str">80</intRange>
+ <objectID type="int">0</objectID>
+ <iStartingValue type="int">80</iStartingValue>
+ <iCount type="int">1</iCount>
+ </item>
+ </portRangeList>
+ <count type="int">1</count>
+ </item>
+ </destinations>
+ <flowPercentage type="float">100.0</flowPercentage>
+ <maxSessions type="int">1</maxSessions>
+ <maxStreams type="int">1</maxStreams>
+ <dontUseUpgrade type="int">0</dontUseUpgrade>
+ <httpVersion type="int">1</httpVersion>
+ <keepAlive type="bool">False</keepAlive>
+ <maxPersistentRequests type="int">0</maxPersistentRequests>
+ <followHttpRedirects type="int">0</followHttpRedirects>
+ <enableCookieSupport type="int">0</enableCookieSupport>
+ <maxPipeline type="int">1</maxPipeline>
+ <urlStatsCount type="int">10</urlStatsCount>
+ <enableHttpProxy type="int">0</enableHttpProxy>
+ <httpProxy type="str">:80</httpProxy>
+ <enableHttpsProxy type="int">0</enableHttpsProxy>
+ <httpsProxy type="str">:443</httpsProxy>
+ <browserEmulation type="int">1</browserEmulation>
+ <browserEmulationName type="str">Custom1</browserEmulationName>
+ <enableSsl type="int">0</enableSsl>
+ <sslVersion type="int">3</sslVersion>
+ <disableMacValidation type="int">0</disableMacValidation>
+ <sslReuseMethod type="int">0</sslReuseMethod>
+ <sequentialSessionReuse type="int">0</sequentialSessionReuse>
+ <enablesslRecordSize type="int">0</enablesslRecordSize>
+ <validateCertificate type="int">0</validateCertificate>
+ <sslRecordSize type="str">16384</sslRecordSize>
+ <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
+ <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
+ <privateKeyPassword type="str"></privateKeyPassword>
+ <privateKey type="str"></privateKey>
+ <certificate type="str"></certificate>
+ <caCert type="str"></caCert>
+ <clientCiphers type="str">DEFAULT</clientCiphers>
+ <enableEsm type="int">0</enableEsm>
+ <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
+ <perHeaderPercentDist type="int">0</perHeaderPercentDist>
+ <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
+ <esm type="int">1460</esm>
+ <enableVlanPriority type="int">0</enableVlanPriority>
+ <vlanPriority type="int">0</vlanPriority>
+ <enableTos type="bool">False</enableTos>
+ <tos type="int">0</tos>
+ <precedenceTOS type="int">0</precedenceTOS>
+ <delayTOS type="int">0</delayTOS>
+ <throughputTOS type="int">0</throughputTOS>
+ <reliabilityTOS type="int">0</reliabilityTOS>
+ <commandTimeout type="int">600</commandTimeout>
+ <commandTimeout_ms type="int">0</commandTimeout_ms>
+ <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
+ <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
+ <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
+ <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
+ <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
+ <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
+ <commandId type="int">-2</commandId>
+ <commandType type="str">START</commandType>
+ <cmdName type="str">Start</cmdName>
+ <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
+ <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
+ <name type="str">Output1</name>
+ <outputType type="int">0</outputType>
+ <destCmdId type="int">1</destCmdId>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12948</_apiUniqueId>
+ <destinationCommandIdx type="int">1</destinationCommandIdx>
+ </item>
+ </outputList>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12945</_apiUniqueId>
+ </item>
+ <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
+ <commandId type="int">1</commandId>
+ <commandType type="str">GET</commandType>
+ <cmdName type="str">Get 1</cmdName>
+ <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
+ <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
+ <name type="str">Output1</name>
+ <outputType type="int">0</outputType>
+ <destCmdId type="int">-3</destCmdId>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12949</_apiUniqueId>
+ <destinationCommandIdx type="int">2</destinationCommandIdx>
+ </item>
+ </outputList>
+ <destination type="str">HTTP server_newServerActivity1:80</destination>
+ <pageObject type="str">/1b.html</pageObject>
+ <abort type="str">None</abort>
+ <arguments type="str"></arguments>
+ <namevalueargs type="str"></namevalueargs>
+ <profile type="int">-1</profile>
+ <enableDi type="int">0</enableDi>
+ <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
+ <sendingChunkSize type="str">None</sendingChunkSize>
+ <sslProfile type="int">-1</sslProfile>
+ <method type="int">-1</method>
+ <useSsl type="bool">False</useSsl>
+ <windowSize type="str">65536</windowSize>
+ <streamIden type="int">3</streamIden>
+ <pingFreq type="int">10</pingFreq>
+ <objectID type="int">1</objectID>
+ <_apiUniqueId type="int">12946</_apiUniqueId>
+ </item>
+ <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
+ <commandId type="int">-3</commandId>
+ <commandType type="str">STOP</commandType>
+ <cmdName type="str">Stop</cmdName>
+ <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
+ <objectID type="int">2</objectID>
+ <_apiUniqueId type="int">12947</_apiUniqueId>
+ </item>
+ </actionList>
+ <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
+ <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
+ <data type="str">Accept: */*</data>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12950</_apiUniqueId>
+ </item>
+ <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
+ <data type="str">Accept-Language: en-us</data>
+ <objectID type="int">1</objectID>
+ <_apiUniqueId type="int">12951</_apiUniqueId>
+ </item>
+ <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
+ <data type="str">Accept-Encoding: gzip, deflate</data>
+ <objectID type="int">2</objectID>
+ <_apiUniqueId type="int">12952</_apiUniqueId>
+ </item>
+ <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
+ <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)</data>
+ <objectID type="int">3</objectID>
+ <_apiUniqueId type="int">12953</_apiUniqueId>
+ </item>
+ </headerList>
+ <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
+ <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
+ <cookieJarSize type="int">10</cookieJarSize>
+ <cookieRejectProbability type="float">0.0</cookieRejectProbability>
+ <ipPreference type="int">2</ipPreference>
+ <tcpCloseOption type="int">0</tcpCloseOption>
+ <piggybackAck type="int">1</piggybackAck>
+ <tcpFastOpen type="int">0</tcpFastOpen>
+ <enableLargeHeader type="int">0</enableLargeHeader>
+ <maxHeaderLen type="int">1024</maxHeaderLen>
+ <useAllIPs type="int">0</useAllIPs>
+ <enableDecompressSupport type="int">0</enableDecompressSupport>
+ <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
+ <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
+ <enableAuth type="int">0</enableAuth>
+ <authProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthProfileList" itemtype="ixAuthProfile"/>
+ <ipMappingList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthIpMapList" itemtype="ixAuthIpMap"/>
+ <uniqueID type="int">1</uniqueID>
+ <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
+ <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
+ <httpsTunnel type="str">0.0.0.0</httpsTunnel>
+ <enableHttpsTunnel type="int">0</enableHttpsTunnel>
+ <exactTransactions type="int">0</exactTransactions>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12942</_apiUniqueId>
+ <uniqueID type="int">1</uniqueID>
+ <commandIdCounter type="int">1</commandIdCounter>
+ <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
+ <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
+ <_dict type="list"/>
+ </serializedNetworkSettingsMap>
+ <protocolName type="str">HTTP</protocolName>
+ </networkPluginSettings>
+ </item>
+ </agentList>
+ </traffic>
+ <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
+ <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
+ <name type="str">uplink_0</name>
+ <role type="str">Client</role>
+ <networkType type="str">none</networkType>
+ <aggregation type="int">0</aggregation>
+ <lineSpeed type="str">Default</lineSpeed>
+ <cpuAggregation type="bool">False</cpuAggregation>
+ <chassisChain ref="2"/>
+ <cardType type="str">FLEXAP1040SQ</cardType>
+ <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
+ <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
+ <comment type="str"></comment>
+ <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
+ <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
+ <_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
+ <name type="str">Network Range IP-R1 in uplink_0 (152.16.100.20+1)</name>
+ <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
+ <name type="str">DistGroup1</name>
+ <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12931</_apiUniqueId>
+ <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
+ <item ref="11"/>
+ </_networkRangeList>
+ <_rangeGroupObjectId type="str">aa33a76b-9c7f-48d9-a537-8d6eeec03662</_rangeGroupObjectId>
+ <_smPluginObjectId type="str">a916ae0f-0731-405d-ad19-eaade6c515f1</_smPluginObjectId>
+ </rangeGroup>
+ <enableStats type="bool">False</enableStats>
+ </item>
+ </networkRangeList>
+ <layerPlugins type="NoneType">None</layerPlugins>
+ <stack type="NoneType">None</stack>
+ <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
+ <item ref="12"/>
+ </rangeGroupList>
+ <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
+ <linkLayerOptions type="int">0</linkLayerOptions>
+ <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
+ <ipSourcePortTo type="int">65535</ipSourcePortTo>
+ <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
+ <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
+ <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
+ <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
+ <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
+ <macMappingMode type="int">0</macMappingMode>
+ <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
+ <gratuitousArp type="bool">True</gratuitousArp>
+ <processGratArp type="bool">False</processGratArp>
+ </arpSettings>
+ <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
+ <enable type="int">0</enable>
+ <cacheTimeout type="int">30000</cacheTimeout>
+ <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
+ <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
+ </dnsParameters>
+ <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
+ <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="13" type="ixTcpParametersFull">
+ <enableCongestionNotification type="bool">False</enableCongestionNotification>
+ <enableTimeStamp type="bool">True</enableTimeStamp>
+ <timeWaitRecycle type="bool">True</timeWaitRecycle>
+ <timeWaitReuse type="bool">False</timeWaitReuse>
+ <enableTxBwLimit type="bool">False</enableTxBwLimit>
+ <txBwLimitUnit type="int">0</txBwLimitUnit>
+ <txBwLimit type="int">1024</txBwLimit>
+ <enableRxBwLimit type="bool">False</enableRxBwLimit>
+ <rxBwLimitUnit type="int">0</rxBwLimitUnit>
+ <rxBwLimit type="int">1024</rxBwLimit>
+ <finTimeout type="int">60</finTimeout>
+ <keepAliveInterval type="int">7200</keepAliveInterval>
+ <keepAliveProbes type="int">75</keepAliveProbes>
+ <keepAliveTime type="int">9</keepAliveTime>
+ <synRetries type="int">5</synRetries>
+ <synAckRetries type="int">5</synAckRetries>
+ <retransmitRetries type="int">15</retransmitRetries>
+ <transmitBuffer type="int">1024</transmitBuffer>
+ <receiveBuffer type="int">1024</receiveBuffer>
+ <tcpSack type="bool">True</tcpSack>
+ <windowScaling type="bool">False</windowScaling>
+ <rtoMin type="int">1000</rtoMin>
+ <rtoMax type="int">120000</rtoMax>
+ </tcpParametersFull>
+ <tcpParametersFull ref="13"/>
+ </tcpParameters>
+ <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
+ <enable type="bool">False</enable>
+ <addDelay type="bool">True</addDelay>
+ <addReorder type="bool">False</addReorder>
+ <addDrop type="bool">False</addDrop>
+ <addDuplicate type="bool">False</addDuplicate>
+ <randomizeSeed type="bool">False</randomizeSeed>
+ <delay type="int">1</delay>
+ <reorder type="int">1</reorder>
+ <reorderLength type="int">1</reorderLength>
+ <sourcePort type="int">0</sourcePort>
+ <destinationPort type="int">0</destinationPort>
+ <drop type="int">1</drop>
+ <duplicate type="int">1</duplicate>
+ <jitter type="int">0</jitter>
+ <gap type="int">1</gap>
+ <destinationIp type="str">any</destinationIp>
+ <typeOfService type="str">any</typeOfService>
+ <protocol type="str">any</protocol>
+ <addFragmentation type="bool">False</addFragmentation>
+ <fragmentationType type="str">FragmentationPercent</fragmentationType>
+ <fragmentPercent type="int">50</fragmentPercent>
+ <mtu type="int">1000</mtu>
+ <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
+ <fragmentSequenceLength type="int">1</fragmentSequenceLength>
+ <_seed type="int">1</_seed>
+ </impairment>
+ <_portGroupId type="str">865be042-32d5-426a-9e75-0908c943801f</_portGroupId>
+ <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
+ <externalLinks type="dict"/>
+ </_smExternalLinks>
+ <smVersion type="int">1</smVersion>
+ </network>
+ <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
+ <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
+ <agent ref="14"/>
+ <protocolAndType type="str">HTTP Client</protocolAndType>
+ <name type="str">newClientActivity1</name>
+ <enable type="bool">True</enable>
+ <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="15" type="ixTimeline">
+ <name type="str">Timeline1</name>
+ <iterationTime type="int">620</iterationTime>
+ <totalTime type="int">620</totalTime>
+ <iterations type="int">1</iterations>
+ <standbyTime type="int">0</standbyTime>
+ <offlineTime type="int">0</offlineTime>
+ <sustainTime type="int">600</sustainTime>
+ <rampUpType type="int">0</rampUpType>
+ <rampUpValue type="int">30000</rampUpValue>
+ <rampUpInterval type="int">1</rampUpInterval>
+ <rampUpTime type="int">0</rampUpTime>
+ <rampDownTime type="int">20</rampDownTime>
+ <rampDownValue type="int">32000</rampDownValue>
+ <timelineType type="int">0</timelineType>
+ <objectID type="int">0</objectID>
+ </timeline>
+ <customParameters type="NoneType">None</customParameters>
+ <role type="str">Client</role>
+ <activeRole type="str">Client</activeRole>
+ <objectivePercent type="float">100.0</objectivePercent>
+ <objectiveType type="str">connectionRate</objectiveType>
+ <objectiveValue type="int">375000</objectiveValue>
+ <userObjectiveType type="str">connectionRate</userObjectiveType>
+ <userObjectiveValue type="long">375000</userObjectiveValue>
+ <constraintType type="str">SimulatedUserConstraint</constraintType>
+ <constraintValue type="int">100</constraintValue>
+ <timerGranularity type="int">100</timerGranularity>
+ <enableConstraint type="bool">False</enableConstraint>
+ <secondaryConstraintType type="str">SimulatedUserConstraint</secondaryConstraintType>
+ <secondaryConstraintValue type="int">100</secondaryConstraintValue>
+ <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
+ <portMapPolicy type="str">portMesh</portMapPolicy>
+ <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
+ <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
+ <userIpMapping type="str">1:1</userIpMapping>
+ <destinationIpMapping type="str">Consecutive</destinationIpMapping>
+ <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12954</_apiUniqueId>
+ <_objectiveValue type="int">375000</_objectiveValue>
+ <timelineScale type="float">1.0</timelineScale>
+ </item>
+ </activityParameters>
+ <timeline ref="15"/>
+ <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
+ <captureViewOptions ref="8"/>
+ <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
+ <filterString type="str"></filterString>
+ </filter>
+ <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
+ <enable type="bool">False</enable>
+ <_apiUniqueId type="int">12940</_apiUniqueId>
+ </communityCapture>
+ <payload type="NoneType">None</payload>
+ <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="16" type="ixRangeAgentEndpointWiring">
+ <rangeAgentConnections type="list"/>
+ <_apiUniqueId type="int">12926</_apiUniqueId>
+ <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
+ <_dict type="list">
+ <item type="tuple">
+ <item ref="11"/>
+ <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
+ <range ref="11"/>
+ <agentEndpointConnections type="list"/>
+ <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
+ <_dict type="list">
+ <item type="tuple">
+ <item ref="14"/>
+ <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
+ <agent ref="14"/>
+ <endpoints type="list"/>
+ <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
+ <_dict type="list">
+ <item type="tuple">
+ <item type="str">HTTP Client</item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
+ <endpointName type="str">HTTP Client</endpointName>
+ <isAvailable type="bool">True</isAvailable>
+ </item>
+ </item>
+ </_dict>
+ </endpointsDict>
+ </item>
+ </item>
+ </_dict>
+ </agentConnectionsDict>
+ </item>
+ </item>
+ </_dict>
+ </rangeAgentDict>
+ </activityIpWiring>
+ <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
+ <iterations type="int">1</iterations>
+ <standbyTime type="int">0</standbyTime>
+ <offlineTime type="int">0</offlineTime>
+ <sustainTime type="int">600</sustainTime>
+ <iterationTime type="int">620</iterationTime>
+ <totalTime type="int">620</totalTime>
+ <portMapPolicy type="str">portPairs</portMapPolicy>
+ <objectiveType type="str">connectionRate</objectiveType>
+ <objectiveValue type="int">375000</objectiveValue>
+ <rampUpType type="int">-1</rampUpType>
+ <rampUpValue type="int">30000</rampUpValue>
+ <rampUpInterval type="int">1</rampUpInterval>
+ <rampUpTime type="int">0</rampUpTime>
+ <rampDownTime type="int">20</rampDownTime>
+ <userObjectiveType type="str">connectionRate</userObjectiveType>
+ <userObjectiveValue type="long">375000</userObjectiveValue>
+ <totalUserObjectiveValue type="long">375000</totalUserObjectiveValue>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12925</_apiUniqueId>
+ <isVisible type="bool">True</isVisible>
+ <activityIpWiring ref="16"/>
+ <_portOperationModesAllowed type="dict">
+ <item>
+ <key type="int">0</key>
+ <value type="bool">True</value>
+ </item>
+ <item>
+ <key type="int">1</key>
+ <value type="bool">True</value>
+ </item>
+ <item>
+ <key type="int">2</key>
+ <value type="bool">False</value>
+ </item>
+ <item>
+ <key type="int">3</key>
+ <value type="bool">True</value>
+ </item>
+ <item>
+ <key type="int">4</key>
+ <value type="bool">True</value>
+ </item>
+ <item>
+ <key type="int">8</key>
+ <value type="bool">True</value>
+ </item>
+ </_portOperationModesAllowed>
+ <_tcpAccelerationAllowed type="dict">
+ <item>
+ <key type="int">0</key>
+ <value type="bool">True</value>
+ </item>
+ <item>
+ <key type="int">1</key>
+ <value type="bool">False</value>
+ </item>
+ </_tcpAccelerationAllowed>
+ </item>
+ </elementList>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12922</_apiUniqueId>
+ </item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
+ <name type="str">DUT</name>
+ <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement"/>
+ <objectID type="int">1</objectID>
+ <_apiUniqueId type="int">12923</_apiUniqueId>
+ </item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
+ <name type="str">Server</name>
+ <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
+ <item ref="17"/>
+ </elementList>
+ <objectID type="int">2</objectID>
+ <_apiUniqueId type="int">12924</_apiUniqueId>
+ </item>
+ </columnList>
+ <links ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityLinkList" itemtype="ixActivityLink"/>
+ <appMixList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixAppMixList" itemtype="ixAppMix"/>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12921</_apiUniqueId>
+ </item>
+ </scenarioList>
+ <currentUniqueIDForAgent type="int">2</currentUniqueIDForAgent>
+ <enableNetworkDiagnostics type="bool">True</enableNetworkDiagnostics>
+ <showNetworkDiagnosticsFromApplyConfig type="bool">False</showNetworkDiagnosticsFromApplyConfig>
+ <showNetworkDiagnosticsAfterRunStops type="bool">False</showNetworkDiagnosticsAfterRunStops>
+ <resetNetworkDiagnosticsAtStartRun type="bool">False</resetNetworkDiagnosticsAtStartRun>
+ <enableNetworkDiagnosticsLogging type="bool">False</enableNetworkDiagnosticsLogging>
+ <enableTcpAdvancedStats type="bool">False</enableTcpAdvancedStats>
+ <enableFrameSizeDistributionStats type="bool">False</enableFrameSizeDistributionStats>
+ <isFrameSizeDistributionViewSupported type="bool">False</isFrameSizeDistributionViewSupported>
+ <statViewThroughputUnits type="str">Kbps</statViewThroughputUnits>
+ <totalUserObjectiveInfoList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixTotalUserObjectiveInfoList" itemtype="ixTotalUserObjectiveInfo"/>
+ <activitiesGroupedByObjective type="bool">False</activitiesGroupedByObjective>
+ <eventHandlerSettings ver="[0, [1, [0, [0]]]]" type="ixEventHandlerSettings">
+ <disabledEventClasses type="str"></disabledEventClasses>
+ <disabledPorts type="str"></disabledPorts>
+ <_apiUniqueId type="int">12990</_apiUniqueId>
+ </eventHandlerSettings>
+ <allowMixedObjectiveTypes type="bool">False</allowMixedObjectiveTypes>
+ <networkProtocolOptions type="NoneType">None</networkProtocolOptions>
+ <seedForRandomBehavior type="int">0</seedForRandomBehavior>
+ <csvThroughputScalingFactor type="int">0</csvThroughputScalingFactor>
+ <reporterThroughputScalingFactor type="int">0</reporterThroughputScalingFactor>
+ <profileDirectory ver="[2, [1, [0, [0]]]]" type="ixProfileDirectory">
+ <categoryList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileCategoryList" itemtype="ixProfileCategory">
+ <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
+ <name type="str">Playlist</name>
+ <categoryId type="str">playlist</categoryId>
+ <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
+ <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.Playlist.ixPropertyMap_PlaylistCategory$ixPropertyMap_PlaylistCategory"/>
+ <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
+ <objectID type="int">0</objectID>
+ </item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
+ <name type="str">Random Data</name>
+ <categoryId type="str">rdge</categoryId>
+ <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
+ <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.RandomData.ixPropertyMap_RandomDataCategory$ixPropertyMap_RandomDataCategory">
+ <startcore type="int">0</startcore>
+ <totalcores type="int">1</totalcores>
+ </pm>
+ <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
+ <objectID type="int">1</objectID>
+ </item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
+ <name type="str">Real File</name>
+ <categoryId type="str">realfile</categoryId>
+ <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
+ <pm type="NoneType">None</pm>
+ <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
+ <objectID type="int">2</objectID>
+ </item>
+ <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
+ <name type="str">Unified File System</name>
+ <categoryId type="str">ufs</categoryId>
+ <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
+ <pm type="NoneType">None</pm>
+ <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
+ <objectID type="int">3</objectID>
+ </item>
+ </categoryList>
+ <_profileMru type="str"></_profileMru>
+ </profileDirectory>
+ <communityList type="NoneType">None</communityList>
+ <autoUpdateAppFlowsToLatest type="bool">True</autoUpdateAppFlowsToLatest>
+ <downgradeAppLibFlowsToLatestValidVersion type="bool">True</downgradeAppLibFlowsToLatestValidVersion>
+ <objectID type="int">0</objectID>
+ <_apiUniqueId type="int">12920</_apiUniqueId>
+ <lastStatViewerConfiguration type="str"></lastStatViewerConfiguration>
+ <statManagerOptions ver="[1, [1, [0, [0]]]]" type="ixStatManagerOptions">
+ <pollingInterval type="int">2</pollingInterval>
+ <allowCsvLogging type="bool">False</allowCsvLogging>
+ <enableDataStore type="bool">False</enableDataStore>
+ <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;MSXC84_2L&gt;.LVTT_K-*X1D)P&amp;R898$!K-I9YK.CK %T:ZQO9+,HYW^&#10;M]U[)QAACDTS[81=9Y]RK*^GHZBK=#]N5KZPQ920,KFNF9M0^W'0=CO@SP1M,&#10;M#U!3:QJ:H=E&amp;LP8$S$3OB#&quot;N?,*[ZQJ*.-D2I+&amp;U%@D+QG'@8BW'^XVB&quot;&quot; P&#10;M[HV?9H.GF:+?=&quot;?3@0/-V]EP_%3\_C+H#V&gt;W=Z.! 'KCQ[OATZ&quot;?#&lt;VRUGL&quot;&#10;M.!G\IGM/\?&lt;8.#MEC?P87]&gt;LFAR(K4?A&lt;DF&quot;Y;[_'OD,2VQ&amp;5MC9!&gt;X=?D5K&#10;M$M(]P\A0QM$JFE#L$AE9BML2'RPI!&quot;.6=;:+\!XS)3:&amp;9?9#Y$UHR+'+&lt;[8S&#10;M&amp;N-&quot;8 _$\W @'+'3&amp; &lt;!FONXCSAR&gt;$CQ*6%R6)U\'/4RZ[,C04#CF$&lt;QSU;R&#10;M,?8YB?SBW&quot;2I[[Q!&gt;T1;(3L&amp;\?5BQL/51]BSUXS3W(]Y3WP\03Q#9/^MCREG&#10;M^U\%-!VPSI:1Z]HKYU%'US&gt;;C;:QM9 N=&lt;LP3/WWQY'CON(54DD FP:+4&lt;NL&#10;MO+&gt;MY*#Z?M0^7B&quot;8DURGXR]).X9[-$Q50#$&amp;M/ ]11X)/](PC@H &quot;?B-U=7%&#10;M3U&gt;O9/5\@@-^'])5[&quot;,'&lt;PYZR?;N[XL?MOTK^._VZN)['/*KY^1P)Q^=Y,?4&#10;M&amp;DGCUQ.VF$#*_&gt;, _GEH_G-H)D&lt;&quot;#L0T#HIQ7/C\ZBCO[$&lt;VDH8&quot;*@D]L$B!&#10;MF&quot;]4LYFT/UPL^54N,G&quot;5CC(,%J&amp;#*4$^^0N)(W2'ECDE).;OED,:R4$3[[-/&#10;M6,&lt;Q*HJ(&lt;O6%IZL!*B&lt;NG/2(%7D)4\SG&quot;:VP0$7;%)UZOK?&lt;IH&lt;X7H9T)QCB&#10;M&quot;.L/L]DDL\VCI_:]Q7)_L 2AUWDA6Y&amp;07H0/M1&lt;&amp;09*6V!=K$H+H-;I=2-&lt;%&#10;MP_+(,-U'[K'#; Z]IU;]6$Y6T2OAATVJWC,&lt;YRV.&quot;&amp;,\_RKFML;L'.N!+%]]&#10;M^,&lt;K65EBY4-(FIPL&quot;*:&quot;Z7IN8SYW/;6!W;E:-R_GZMPRL6JV6H:!+&lt;^T[(9&lt;&#10;MDRH'IT.!BO(&quot;@4_3;#2EDQQT:O&gt;98&gt;H,^P)T5%-MJ):I6D;#,DW3-BS5M%K0&#10;M-HR6&quot;&lt;&gt;M7J]?FI=V2VW;C6:[+IWG[$N# FE3CKUQ(!B68;95$P9HS4RK4Z]W&#10;M&amp;I=:JVW46RW[%\/H&amp;,8^WB.K&quot;K\A7-_ 4. D=P+BIZ&gt;1P^68'M2*34GRX2-R&#10;M7TF ]POC#$?/D]'ST)GV'2/18RGO#7&gt;WGB=N=,$T#&lt;VR6QHLI&amp;;:]L%N@=M&amp;&#10;MIV/74;W3;-M&amp;!\V]1L&gt;RVS^:UG$.TZL\G\8PW#YAO@GIMWWV!E8;ZC(--*&quot;9&#10;M#4NZ*R.=&lt;37%/D9,3GJX'&lt;&amp;Y5]J::2B#VV-G.=H99[DD EEN2=%*$2F&quot;*3]M&#10;MV\V?7X90IKTDH[R(N-7!K?HY\B ]%4*OSBG#[11'D(8PS4W/UEJB0&amp;VT4R\E&#10;ME/*C_?G1&lt;9&amp;/DWU,95GH/S5TUCGXTQQRN3 [ZBV5LBQ=3L0JC=]S0^1N$LR@&#10;MJ&amp;#C2*;E&quot;KF&amp;O@^Y3=1Y\E+ ',%&amp;&gt;(G@CK%*XQ%&amp;-,&quot;&gt;N%T%;R'JO[R# E[I&#10;MY]X/-[)B8:5NCN%*+Y C!5-6BH(H,T#.31$_YRA]&amp;YSS5:14NX/&quot;/71#?QB &#10;MXA;(Q&gt;4&gt;2UF53J=AS/$4!&lt;MR;P6XS,TJ$GEDELFEN/1E&gt;)4NS^HMT:6W&quot;X1J&#10;MX4%6&lt;DL&gt;49Y%)7A&quot;RHY&gt;13DGV$GIG3WC_L,+,JO,Q0LF\'?RVQ0=(Q)\P]ZA&#10;M&lt;C_8Z*D2#BU6BHN7[DU7&quot;ED)X!JYKDEOM=P3NW:,)X^=FA)2#U/Y&amp;$(N&quot;(.-&#10;M\!K[^U&gt;I+BW@R1NLHO/O72&quot;D=81\U.0&gt;O *&quot;0FY!EC%%^2&gt;F6'4&amp;H N@W(_T&#10;M&gt;XUH$F-RQ0K[]+)%LEXZO80]S%Q*I$)2,%&lt;/@U&gt;XW'RXV?;EF-CM=*#\N!Y&gt;&#10;9OV&amp;08^CYR/^O-J2YF*?XR?X&amp;&lt;O,OY+*?^ &#10; &#10;end&#10;</svConfiguration>
+ <svRestConfiguration type="str">(dp1&#10;S'HTTP Server Per URL'&#10;p2&#10;ccopy_reg&#10;_reconstructor&#10;p3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStatsList&#10;p4&#10;c__builtin__&#10;list&#10;p5&#10;(lp6&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStat&#10;p7&#10;c__builtin__&#10;object&#10;p8&#10;NtRp9&#10;(dp10&#10;S'proxyPropertyList'&#10;p11&#10;NsS'_objectID'&#10;p12&#10;I0&#10;sS'enabled'&#10;p13&#10;I01&#10;sS'filterList'&#10;p14&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixRestFilters&#10;p15&#10;g8&#10;NtRp16&#10;(dp17&#10;S'cardFilters'&#10;p18&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixCardFilterList&#10;p19&#10;g5&#10;(ltRp20&#10;(dp21&#10;g12&#10;I-1&#10;sS'_resourceLocked'&#10;p22&#10;I00&#10;sg11&#10;NsbsS'activityFilters'&#10;p23&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixActivityFilterList&#10;p24&#10;g5&#10;(ltRp25&#10;(dp26&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sS'chassisFilters'&#10;p27&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixChassisFilterList&#10;p28&#10;g5&#10;(ltRp29&#10;(dp30&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sS'portFilters'&#10;p31&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixPortFilterList&#10;p32&#10;g5&#10;(ltRp33&#10;(dp34&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;NsbsbsS'caption'&#10;p35&#10;S'HTTP Requests Received'&#10;p36&#10;sg22&#10;I00&#10;sS'aggregationType'&#10;p37&#10;S'kSum'&#10;p38&#10;sS'statName'&#10;p39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp40&#10;(dp41&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp42&#10;(dp43&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp44&#10;(dp45&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp46&#10;(dp47&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp48&#10;(dp49&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp50&#10;(dp51&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp53&#10;(dp54&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp55&#10;(dp56&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp57&#10;(dp58&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp59&#10;(dp60&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp61&#10;(dp62&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp63&#10;(dp64&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp66&#10;(dp67&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp68&#10;(dp69&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp70&#10;(dp71&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp72&#10;(dp73&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp74&#10;(dp75&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp76&#10;(dp77&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (50x)'&#10;p78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp79&#10;(dp80&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp81&#10;(dp82&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp83&#10;(dp84&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp85&#10;(dp86&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp87&#10;(dp88&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp89&#10;(dp90&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write Error)'&#10;p91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp92&#10;(dp93&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp94&#10;(dp95&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp96&#10;(dp97&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp98&#10;(dp99&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp100&#10;(dp101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp102&#10;(dp103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent'&#10;p104&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g104&#10;sbag3&#10;(g7&#10;g8&#10;NtRp105&#10;(dp106&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp107&#10;(dp108&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp109&#10;(dp110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp111&#10;(dp112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp113&#10;(dp114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp115&#10;(dp116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (1xx)'&#10;p117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp118&#10;(dp119&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp120&#10;(dp121&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp122&#10;(dp123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp124&#10;(dp125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp126&#10;(dp127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp128&#10;(dp129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (2xx)'&#10;p130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp131&#10;(dp132&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp133&#10;(dp134&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp135&#10;(dp136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp137&#10;(dp138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp139&#10;(dp140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp141&#10;(dp142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (3xx)'&#10;p143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp144&#10;(dp145&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp146&#10;(dp147&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp148&#10;(dp149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp150&#10;(dp151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp152&#10;(dp153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp154&#10;(dp155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (4xx)'&#10;p156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp157&#10;(dp158&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp159&#10;(dp160&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp161&#10;(dp162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp163&#10;(dp164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp165&#10;(dp166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp167&#10;(dp168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (5xx)'&#10;p169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp170&#10;(dp171&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp172&#10;(dp173&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp174&#10;(dp175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp176&#10;(dp177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp178&#10;(dp179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp180&#10;(dp181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (Other)'&#10;p182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp183&#10;(dp184&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp185&#10;(dp186&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp187&#10;(dp188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp189&#10;(dp190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp191&#10;(dp192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp193&#10;(dp194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Write Error)'&#10;p195&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g195&#10;sbag3&#10;(g7&#10;g8&#10;NtRp196&#10;(dp197&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp198&#10;(dp199&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp200&#10;(dp201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp202&#10;(dp203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp204&#10;(dp205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp206&#10;(dp207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Aborted)'&#10;p208&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g208&#10;sbag3&#10;(g7&#10;g8&#10;NtRp209&#10;(dp210&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp211&#10;(dp212&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp213&#10;(dp214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp215&#10;(dp216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp217&#10;(dp218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp219&#10;(dp220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Other)'&#10;p221&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g221&#10;sbag3&#10;(g7&#10;g8&#10;NtRp222&#10;(dp223&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp224&#10;(dp225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp226&#10;(dp227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp228&#10;(dp229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp230&#10;(dp231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp232&#10;(dp233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Sent'&#10;p234&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g234&#10;sbag3&#10;(g7&#10;g8&#10;NtRp235&#10;(dp236&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp237&#10;(dp238&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp239&#10;(dp240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp241&#10;(dp242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp243&#10;(dp244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp245&#10;(dp246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp248&#10;(dp249&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp250&#10;(dp251&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp252&#10;(dp253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp254&#10;(dp255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp256&#10;(dp257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp258&#10;(dp259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p260&#10;sg22&#10;I00&#10;sg37&#10;S'kWeightedAverage'&#10;p261&#10;sg39&#10;g260&#10;sbag3&#10;(g7&#10;g8&#10;NtRp262&#10;(dp263&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp264&#10;(dp265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp266&#10;(dp267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp268&#10;(dp269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp270&#10;(dp271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp272&#10;(dp273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p274&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp275&#10;(dp276&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp277&#10;(dp278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp279&#10;(dp280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp281&#10;(dp282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp283&#10;(dp284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp285&#10;(dp286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Received'&#10;p287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp288&#10;(dp289&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp290&#10;(dp291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp292&#10;(dp293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp294&#10;(dp295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp296&#10;(dp297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp298&#10;(dp299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp301&#10;(dp302&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp303&#10;(dp304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp305&#10;(dp306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp307&#10;(dp308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp309&#10;(dp310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp311&#10;(dp312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Received Chunk Size'&#10;p313&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp314&#10;(dp315&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp316&#10;(dp317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp318&#10;(dp319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp320&#10;(dp321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp322&#10;(dp323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp324&#10;(dp325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p326&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp327&#10;(dp328&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp329&#10;(dp330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp331&#10;(dp332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp333&#10;(dp334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp335&#10;(dp336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp337&#10;(dp338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Received'&#10;p339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp340&#10;(dp341&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp342&#10;(dp343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp344&#10;(dp345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp346&#10;(dp347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp348&#10;(dp349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp350&#10;(dp351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Successful'&#10;p352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp353&#10;(dp354&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp355&#10;(dp356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp357&#10;(dp358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp359&#10;(dp360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp361&#10;(dp362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp363&#10;(dp364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Failed'&#10;p365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp366&#10;(dp367&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp368&#10;(dp369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp370&#10;(dp371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp372&#10;(dp373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp374&#10;(dp375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp376&#10;(dp377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Request Received'&#10;p378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp379&#10;(dp380&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp381&#10;(dp382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp383&#10;(dp384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp385&#10;(dp386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp387&#10;(dp388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp389&#10;(dp390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Response Sent'&#10;p391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbatRp392&#10;(dp393&#10;g12&#10;I27&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Server'&#10;p394&#10;g3&#10;(g4&#10;g5&#10;(lp395&#10;g3&#10;(g7&#10;g8&#10;NtRp396&#10;(dp397&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp398&#10;(dp399&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp400&#10;(dp401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp402&#10;(dp403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp404&#10;(dp405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp406&#10;(dp407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g36&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp408&#10;(dp409&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp410&#10;(dp411&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp412&#10;(dp413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp414&#10;(dp415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp416&#10;(dp417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp418&#10;(dp419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp420&#10;(dp421&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp422&#10;(dp423&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp424&#10;(dp425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp426&#10;(dp427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp428&#10;(dp429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp430&#10;(dp431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p432&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g432&#10;sbag3&#10;(g7&#10;g8&#10;NtRp433&#10;(dp434&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp435&#10;(dp436&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp437&#10;(dp438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp439&#10;(dp440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp441&#10;(dp442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp443&#10;(dp444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp445&#10;(dp446&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp447&#10;(dp448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp449&#10;(dp450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp451&#10;(dp452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp453&#10;(dp454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp455&#10;(dp456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp457&#10;(dp458&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp459&#10;(dp460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp461&#10;(dp462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp463&#10;(dp464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp465&#10;(dp466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp467&#10;(dp468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp469&#10;(dp470&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp471&#10;(dp472&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp473&#10;(dp474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp475&#10;(dp476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp477&#10;(dp478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp479&#10;(dp480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p481&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g481&#10;sbag3&#10;(g7&#10;g8&#10;NtRp482&#10;(dp483&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp484&#10;(dp485&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp486&#10;(dp487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp488&#10;(dp489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp490&#10;(dp491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp492&#10;(dp493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p494&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g494&#10;sbag3&#10;(g7&#10;g8&#10;NtRp495&#10;(dp496&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp497&#10;(dp498&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp499&#10;(dp500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp501&#10;(dp502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp503&#10;(dp504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp505&#10;(dp506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p507&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g507&#10;sbag3&#10;(g7&#10;g8&#10;NtRp508&#10;(dp509&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp510&#10;(dp511&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp512&#10;(dp513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp514&#10;(dp515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp516&#10;(dp517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp518&#10;(dp519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp520&#10;(dp521&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp522&#10;(dp523&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp524&#10;(dp525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp526&#10;(dp527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp528&#10;(dp529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp530&#10;(dp531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp532&#10;(dp533&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp534&#10;(dp535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp536&#10;(dp537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp538&#10;(dp539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp540&#10;(dp541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp542&#10;(dp543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp544&#10;(dp545&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp546&#10;(dp547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp548&#10;(dp549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp550&#10;(dp551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp552&#10;(dp553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp554&#10;(dp555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp556&#10;(dp557&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp558&#10;(dp559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp560&#10;(dp561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp562&#10;(dp563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp564&#10;(dp565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp566&#10;(dp567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp568&#10;(dp569&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp570&#10;(dp571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp572&#10;(dp573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp574&#10;(dp575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp576&#10;(dp577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp578&#10;(dp579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp580&#10;(dp581&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp582&#10;(dp583&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp584&#10;(dp585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp586&#10;(dp587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp588&#10;(dp589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp590&#10;(dp591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p592&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g592&#10;sbag3&#10;(g7&#10;g8&#10;NtRp593&#10;(dp594&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp595&#10;(dp596&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp597&#10;(dp598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp599&#10;(dp600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp601&#10;(dp602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp603&#10;(dp604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p605&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g605&#10;sbag3&#10;(g7&#10;g8&#10;NtRp606&#10;(dp607&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp608&#10;(dp609&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp610&#10;(dp611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp612&#10;(dp613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp614&#10;(dp615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp616&#10;(dp617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p618&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g618&#10;sbag3&#10;(g7&#10;g8&#10;NtRp619&#10;(dp620&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp621&#10;(dp622&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp623&#10;(dp624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp625&#10;(dp626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp627&#10;(dp628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp629&#10;(dp630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p631&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g631&#10;sbag3&#10;(g7&#10;g8&#10;NtRp632&#10;(dp633&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp634&#10;(dp635&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp636&#10;(dp637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp638&#10;(dp639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp640&#10;(dp641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp642&#10;(dp643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p644&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g644&#10;sbag3&#10;(g7&#10;g8&#10;NtRp645&#10;(dp646&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp647&#10;(dp648&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp649&#10;(dp650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp651&#10;(dp652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp653&#10;(dp654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp655&#10;(dp656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p657&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g657&#10;sbag3&#10;(g7&#10;g8&#10;NtRp658&#10;(dp659&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp660&#10;(dp661&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp662&#10;(dp663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp664&#10;(dp665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp666&#10;(dp667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp668&#10;(dp669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Matching ServerID'&#10;p670&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g670&#10;sbag3&#10;(g7&#10;g8&#10;NtRp671&#10;(dp672&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp673&#10;(dp674&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp675&#10;(dp676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp677&#10;(dp678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp679&#10;(dp680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp681&#10;(dp682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Non-matching ServerID'&#10;p683&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g683&#10;sbag3&#10;(g7&#10;g8&#10;NtRp684&#10;(dp685&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp686&#10;(dp687&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp688&#10;(dp689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp690&#10;(dp691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp692&#10;(dp693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp694&#10;(dp695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Encoded Responses Sent'&#10;p696&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g696&#10;sbag3&#10;(g7&#10;g8&#10;NtRp697&#10;(dp698&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp699&#10;(dp700&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp701&#10;(dp702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp703&#10;(dp704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp705&#10;(dp706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp707&#10;(dp708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp709&#10;(dp710&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp711&#10;(dp712&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp713&#10;(dp714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp715&#10;(dp716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp717&#10;(dp718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp719&#10;(dp720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Transfer-Encoded Requests Received'&#10;p721&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g721&#10;sbag3&#10;(g7&#10;g8&#10;NtRp722&#10;(dp723&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp724&#10;(dp725&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp726&#10;(dp727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp728&#10;(dp729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp730&#10;(dp731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp732&#10;(dp733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp734&#10;(dp735&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp736&#10;(dp737&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp738&#10;(dp739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp740&#10;(dp741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp742&#10;(dp743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp744&#10;(dp745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp746&#10;(dp747&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp748&#10;(dp749&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp750&#10;(dp751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp752&#10;(dp753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp754&#10;(dp755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp756&#10;(dp757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp758&#10;(dp759&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp760&#10;(dp761&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp762&#10;(dp763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp764&#10;(dp765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp766&#10;(dp767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp768&#10;(dp769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp770&#10;(dp771&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp772&#10;(dp773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp774&#10;(dp775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp776&#10;(dp777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp778&#10;(dp779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp780&#10;(dp781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp782&#10;(dp783&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp784&#10;(dp785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp786&#10;(dp787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp788&#10;(dp789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp790&#10;(dp791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp792&#10;(dp793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp794&#10;(dp795&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp796&#10;(dp797&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp798&#10;(dp799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp800&#10;(dp801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp802&#10;(dp803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp804&#10;(dp805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Sent'&#10;p806&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g806&#10;sbag3&#10;(g7&#10;g8&#10;NtRp807&#10;(dp808&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp809&#10;(dp810&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp811&#10;(dp812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp813&#10;(dp814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp815&#10;(dp816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp817&#10;(dp818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Sent'&#10;p819&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g819&#10;sbag3&#10;(g7&#10;g8&#10;NtRp820&#10;(dp821&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp822&#10;(dp823&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp824&#10;(dp825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp826&#10;(dp827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp828&#10;(dp829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp830&#10;(dp831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Sent'&#10;p832&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g832&#10;sbag3&#10;(g7&#10;g8&#10;NtRp833&#10;(dp834&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp835&#10;(dp836&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp837&#10;(dp838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp839&#10;(dp840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp841&#10;(dp842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp843&#10;(dp844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Sent'&#10;p845&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g845&#10;sbag3&#10;(g7&#10;g8&#10;NtRp846&#10;(dp847&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp848&#10;(dp849&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp850&#10;(dp851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp852&#10;(dp853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp854&#10;(dp855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp856&#10;(dp857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Sent'&#10;p858&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g858&#10;sbag3&#10;(g7&#10;g8&#10;NtRp859&#10;(dp860&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp861&#10;(dp862&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp863&#10;(dp864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp865&#10;(dp866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp867&#10;(dp868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp869&#10;(dp870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Sent'&#10;p871&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g871&#10;sbag3&#10;(g7&#10;g8&#10;NtRp872&#10;(dp873&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp874&#10;(dp875&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp876&#10;(dp877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp878&#10;(dp879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp880&#10;(dp881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp882&#10;(dp883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Sent'&#10;p884&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g884&#10;sbag3&#10;(g7&#10;g8&#10;NtRp885&#10;(dp886&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp887&#10;(dp888&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp889&#10;(dp890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp891&#10;(dp892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp893&#10;(dp894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp895&#10;(dp896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Sent'&#10;p897&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g897&#10;sbag3&#10;(g7&#10;g8&#10;NtRp898&#10;(dp899&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp900&#10;(dp901&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp902&#10;(dp903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp904&#10;(dp905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp906&#10;(dp907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp908&#10;(dp909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Sent'&#10;p910&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g910&#10;sbag3&#10;(g7&#10;g8&#10;NtRp911&#10;(dp912&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp913&#10;(dp914&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp915&#10;(dp916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp917&#10;(dp918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp919&#10;(dp920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp921&#10;(dp922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Sent'&#10;p923&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g923&#10;sbag3&#10;(g7&#10;g8&#10;NtRp924&#10;(dp925&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp926&#10;(dp927&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp928&#10;(dp929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp930&#10;(dp931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp932&#10;(dp933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp934&#10;(dp935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Received'&#10;p936&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g936&#10;sbag3&#10;(g7&#10;g8&#10;NtRp937&#10;(dp938&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp939&#10;(dp940&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp941&#10;(dp942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp943&#10;(dp944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp945&#10;(dp946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp947&#10;(dp948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Received'&#10;p949&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g949&#10;sbag3&#10;(g7&#10;g8&#10;NtRp950&#10;(dp951&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp952&#10;(dp953&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp954&#10;(dp955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp956&#10;(dp957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp958&#10;(dp959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp960&#10;(dp961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Received'&#10;p962&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g962&#10;sbag3&#10;(g7&#10;g8&#10;NtRp963&#10;(dp964&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp965&#10;(dp966&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp967&#10;(dp968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp969&#10;(dp970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp971&#10;(dp972&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp973&#10;(dp974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Received'&#10;p975&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g975&#10;sbag3&#10;(g7&#10;g8&#10;NtRp976&#10;(dp977&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp978&#10;(dp979&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp980&#10;(dp981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp982&#10;(dp983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp984&#10;(dp985&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp986&#10;(dp987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Received'&#10;p988&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g988&#10;sbag3&#10;(g7&#10;g8&#10;NtRp989&#10;(dp990&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp991&#10;(dp992&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp993&#10;(dp994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp995&#10;(dp996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp997&#10;(dp998&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp999&#10;(dp1000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Received'&#10;p1001&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1001&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1002&#10;(dp1003&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1004&#10;(dp1005&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1006&#10;(dp1007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1008&#10;(dp1009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1010&#10;(dp1011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1012&#10;(dp1013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Received'&#10;p1014&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1014&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1015&#10;(dp1016&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1017&#10;(dp1018&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1019&#10;(dp1020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1021&#10;(dp1022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1023&#10;(dp1024&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1025&#10;(dp1026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Received'&#10;p1027&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1027&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1028&#10;(dp1029&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1030&#10;(dp1031&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1032&#10;(dp1033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1034&#10;(dp1035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1036&#10;(dp1037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1038&#10;(dp1039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Received'&#10;p1040&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1040&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1041&#10;(dp1042&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1043&#10;(dp1044&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1045&#10;(dp1046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1047&#10;(dp1048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1049&#10;(dp1050&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1051&#10;(dp1052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Received'&#10;p1053&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1053&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1054&#10;(dp1055&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1056&#10;(dp1057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1058&#10;(dp1059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1060&#10;(dp1061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1062&#10;(dp1063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1064&#10;(dp1065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Client'&#10;p1066&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1066&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1067&#10;(dp1068&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1069&#10;(dp1070&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1071&#10;(dp1072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1073&#10;(dp1074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1075&#10;(dp1076&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1077&#10;(dp1078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Server'&#10;p1079&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1079&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1080&#10;(dp1081&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1082&#10;(dp1083&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1084&#10;(dp1085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1086&#10;(dp1087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1088&#10;(dp1089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1090&#10;(dp1091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Client to Server'&#10;p1092&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1092&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1093&#10;(dp1094&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1095&#10;(dp1096&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1097&#10;(dp1098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1099&#10;(dp1100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1101&#10;(dp1102&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1103&#10;(dp1104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Server to Client'&#10;p1105&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1105&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1106&#10;(dp1107&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1108&#10;(dp1109&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1110&#10;(dp1111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1112&#10;(dp1113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1114&#10;(dp1115&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1116&#10;(dp1117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Client to Server'&#10;p1118&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1118&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1119&#10;(dp1120&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1121&#10;(dp1122&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1123&#10;(dp1124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1125&#10;(dp1126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1127&#10;(dp1128&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1129&#10;(dp1130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Server to Client'&#10;p1131&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1131&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1132&#10;(dp1133&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1134&#10;(dp1135&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1136&#10;(dp1137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1138&#10;(dp1139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1140&#10;(dp1141&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1142&#10;(dp1143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Succeeded'&#10;p1144&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1144&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1145&#10;(dp1146&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1147&#10;(dp1148&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1149&#10;(dp1150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1151&#10;(dp1152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1153&#10;(dp1154&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1155&#10;(dp1156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Failed'&#10;p1157&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1157&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1158&#10;(dp1159&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1160&#10;(dp1161&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1162&#10;(dp1163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1164&#10;(dp1165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1166&#10;(dp1167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1168&#10;(dp1169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Protocol Error'&#10;p1170&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1170&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1171&#10;(dp1172&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1173&#10;(dp1174&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1175&#10;(dp1176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1177&#10;(dp1178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1179&#10;(dp1180&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1181&#10;(dp1182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Internal Error'&#10;p1183&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1183&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1184&#10;(dp1185&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1186&#10;(dp1187&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1188&#10;(dp1189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1190&#10;(dp1191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1192&#10;(dp1193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1194&#10;(dp1195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Flow Control Error'&#10;p1196&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1196&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1197&#10;(dp1198&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1199&#10;(dp1200&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1201&#10;(dp1202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1203&#10;(dp1204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1205&#10;(dp1206&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1207&#10;(dp1208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Settings Timeout Error'&#10;p1209&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1209&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1210&#10;(dp1211&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1212&#10;(dp1213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1214&#10;(dp1215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1216&#10;(dp1217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1218&#10;(dp1219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1220&#10;(dp1221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Closed Error'&#10;p1222&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1222&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1223&#10;(dp1224&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1225&#10;(dp1226&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1227&#10;(dp1228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1229&#10;(dp1230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1231&#10;(dp1232&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1233&#10;(dp1234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Frame Size Error'&#10;p1235&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1235&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1236&#10;(dp1237&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1238&#10;(dp1239&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1240&#10;(dp1241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1242&#10;(dp1243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1244&#10;(dp1245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1246&#10;(dp1247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Refused Stream Error'&#10;p1248&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1248&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1249&#10;(dp1250&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1251&#10;(dp1252&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1253&#10;(dp1254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1255&#10;(dp1256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1257&#10;(dp1258&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1259&#10;(dp1260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Cancelled Error'&#10;p1261&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1261&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1262&#10;(dp1263&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1264&#10;(dp1265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1266&#10;(dp1267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1268&#10;(dp1269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1270&#10;(dp1271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1272&#10;(dp1273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Compression Error'&#10;p1274&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1275&#10;(dp1276&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1277&#10;(dp1278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1279&#10;(dp1280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1281&#10;(dp1282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1283&#10;(dp1284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1285&#10;(dp1286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connect Error'&#10;p1287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1288&#10;(dp1289&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1290&#10;(dp1291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1292&#10;(dp1293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1294&#10;(dp1295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1296&#10;(dp1297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1298&#10;(dp1299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Enhance Calm Error'&#10;p1300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1301&#10;(dp1302&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1303&#10;(dp1304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1305&#10;(dp1306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1307&#10;(dp1308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1309&#10;(dp1310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1311&#10;(dp1312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Inadequate Security Error'&#10;p1313&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1314&#10;(dp1315&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1316&#10;(dp1317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1318&#10;(dp1319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1320&#10;(dp1321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1322&#10;(dp1323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1324&#10;(dp1325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HTTP1.1 Required Error'&#10;p1326&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1327&#10;(dp1328&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1329&#10;(dp1330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1331&#10;(dp1332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1333&#10;(dp1334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1335&#10;(dp1336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1337&#10;(dp1338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p1339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1340&#10;(dp1341&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1342&#10;(dp1343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1344&#10;(dp1345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1346&#10;(dp1347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1348&#10;(dp1349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1350&#10;(dp1351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p1352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1353&#10;(dp1354&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1355&#10;(dp1356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1357&#10;(dp1358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1359&#10;(dp1360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1361&#10;(dp1362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1363&#10;(dp1364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p1365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1366&#10;(dp1367&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1368&#10;(dp1369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1370&#10;(dp1371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1372&#10;(dp1373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1374&#10;(dp1375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1376&#10;(dp1377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p1378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1379&#10;(dp1380&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1381&#10;(dp1382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1383&#10;(dp1384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1385&#10;(dp1386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1387&#10;(dp1388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1389&#10;(dp1390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p1391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1392&#10;(dp1393&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1394&#10;(dp1395&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1396&#10;(dp1397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1398&#10;(dp1399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1400&#10;(dp1401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1402&#10;(dp1403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p1404&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1404&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1405&#10;(dp1406&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1407&#10;(dp1408&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1409&#10;(dp1410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1411&#10;(dp1412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1413&#10;(dp1414&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1415&#10;(dp1416&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p1417&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1417&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1418&#10;(dp1419&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1420&#10;(dp1421&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1422&#10;(dp1423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1424&#10;(dp1425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1426&#10;(dp1427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1428&#10;(dp1429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p1430&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1430&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1431&#10;(dp1432&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1433&#10;(dp1434&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1435&#10;(dp1436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1437&#10;(dp1438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1439&#10;(dp1440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1441&#10;(dp1442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p1443&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1443&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1444&#10;(dp1445&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1446&#10;(dp1447&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1448&#10;(dp1449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1450&#10;(dp1451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1452&#10;(dp1453&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1454&#10;(dp1455&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p1456&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1456&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1457&#10;(dp1458&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1459&#10;(dp1460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1461&#10;(dp1462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1463&#10;(dp1464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1465&#10;(dp1466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1467&#10;(dp1468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p1469&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1469&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1470&#10;(dp1471&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1472&#10;(dp1473&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1474&#10;(dp1475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1476&#10;(dp1477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1478&#10;(dp1479&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1480&#10;(dp1481&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p1482&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1482&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1483&#10;(dp1484&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1485&#10;(dp1486&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1487&#10;(dp1488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1489&#10;(dp1490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1491&#10;(dp1492&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1493&#10;(dp1494&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p1495&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1495&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1496&#10;(dp1497&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1498&#10;(dp1499&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1500&#10;(dp1501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1502&#10;(dp1503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1504&#10;(dp1505&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1506&#10;(dp1507&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p1508&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1508&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1509&#10;(dp1510&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1511&#10;(dp1512&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1513&#10;(dp1514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1515&#10;(dp1516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1517&#10;(dp1518&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1519&#10;(dp1520&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p1521&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1521&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1522&#10;(dp1523&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1524&#10;(dp1525&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1526&#10;(dp1527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1528&#10;(dp1529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1530&#10;(dp1531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1532&#10;(dp1533&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p1534&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1534&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1535&#10;(dp1536&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1537&#10;(dp1538&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1539&#10;(dp1540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1541&#10;(dp1542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1543&#10;(dp1544&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1545&#10;(dp1546&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p1547&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1547&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1548&#10;(dp1549&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1550&#10;(dp1551&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1552&#10;(dp1553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1554&#10;(dp1555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1556&#10;(dp1557&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1558&#10;(dp1559&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p1560&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1560&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1561&#10;(dp1562&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1563&#10;(dp1564&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1565&#10;(dp1566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1567&#10;(dp1568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1569&#10;(dp1570&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1571&#10;(dp1572&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p1573&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1573&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1574&#10;(dp1575&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1576&#10;(dp1577&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1578&#10;(dp1579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1580&#10;(dp1581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1582&#10;(dp1583&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1584&#10;(dp1585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p1586&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1586&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1587&#10;(dp1588&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1589&#10;(dp1590&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1591&#10;(dp1592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1593&#10;(dp1594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1595&#10;(dp1596&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1597&#10;(dp1598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p1599&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1599&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1600&#10;(dp1601&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1602&#10;(dp1603&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1604&#10;(dp1605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1606&#10;(dp1607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1608&#10;(dp1609&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1610&#10;(dp1611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p1612&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1612&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1613&#10;(dp1614&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1615&#10;(dp1616&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1617&#10;(dp1618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1619&#10;(dp1620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1621&#10;(dp1622&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1623&#10;(dp1624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p1625&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1625&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1626&#10;(dp1627&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1628&#10;(dp1629&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1630&#10;(dp1631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1632&#10;(dp1633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1634&#10;(dp1635&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1636&#10;(dp1637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p1638&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1638&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1639&#10;(dp1640&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1641&#10;(dp1642&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1643&#10;(dp1644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1645&#10;(dp1646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1647&#10;(dp1648&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1649&#10;(dp1650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p1651&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1651&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1652&#10;(dp1653&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1654&#10;(dp1655&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1656&#10;(dp1657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1658&#10;(dp1659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1660&#10;(dp1661&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1662&#10;(dp1663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p1664&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1664&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1665&#10;(dp1666&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1667&#10;(dp1668&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1669&#10;(dp1670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1671&#10;(dp1672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1673&#10;(dp1674&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1675&#10;(dp1676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p1677&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1677&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1678&#10;(dp1679&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1680&#10;(dp1681&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1682&#10;(dp1683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1684&#10;(dp1685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1686&#10;(dp1687&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1688&#10;(dp1689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p1690&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1690&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1691&#10;(dp1692&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1693&#10;(dp1694&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1695&#10;(dp1696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1697&#10;(dp1698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1699&#10;(dp1700&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1701&#10;(dp1702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p1703&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1703&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1704&#10;(dp1705&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1706&#10;(dp1707&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1708&#10;(dp1709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1710&#10;(dp1711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1712&#10;(dp1713&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1714&#10;(dp1715&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p1716&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1716&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1717&#10;(dp1718&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1719&#10;(dp1720&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1721&#10;(dp1722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1723&#10;(dp1724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1725&#10;(dp1726&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1727&#10;(dp1728&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p1729&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1729&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1730&#10;(dp1731&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1732&#10;(dp1733&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1734&#10;(dp1735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1736&#10;(dp1737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1738&#10;(dp1739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1740&#10;(dp1741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p1742&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1742&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1743&#10;(dp1744&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1745&#10;(dp1746&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1747&#10;(dp1748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1749&#10;(dp1750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1751&#10;(dp1752&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1753&#10;(dp1754&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p1755&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1755&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1756&#10;(dp1757&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1758&#10;(dp1759&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1760&#10;(dp1761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1762&#10;(dp1763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1764&#10;(dp1765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1766&#10;(dp1767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p1768&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1768&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1769&#10;(dp1770&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1771&#10;(dp1772&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1773&#10;(dp1774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1775&#10;(dp1776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1777&#10;(dp1778&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1779&#10;(dp1780&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p1781&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1781&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1782&#10;(dp1783&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1784&#10;(dp1785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1786&#10;(dp1787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1788&#10;(dp1789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1790&#10;(dp1791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1792&#10;(dp1793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p1794&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1794&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1795&#10;(dp1796&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1797&#10;(dp1798&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1799&#10;(dp1800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1801&#10;(dp1802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1803&#10;(dp1804&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1805&#10;(dp1806&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p1807&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1807&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1808&#10;(dp1809&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1810&#10;(dp1811&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1812&#10;(dp1813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1814&#10;(dp1815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1816&#10;(dp1817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1818&#10;(dp1819&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p1820&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1820&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1821&#10;(dp1822&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1823&#10;(dp1824&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1825&#10;(dp1826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1827&#10;(dp1828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1829&#10;(dp1830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1831&#10;(dp1832&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p1833&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1833&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1834&#10;(dp1835&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1836&#10;(dp1837&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1838&#10;(dp1839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1840&#10;(dp1841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1842&#10;(dp1843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1844&#10;(dp1845&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p1846&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1846&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1847&#10;(dp1848&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1849&#10;(dp1850&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1851&#10;(dp1852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1853&#10;(dp1854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1855&#10;(dp1856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1857&#10;(dp1858&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p1859&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1859&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1860&#10;(dp1861&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1862&#10;(dp1863&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1864&#10;(dp1865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1866&#10;(dp1867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1868&#10;(dp1869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1870&#10;(dp1871&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p1872&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1872&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1873&#10;(dp1874&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1875&#10;(dp1876&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1877&#10;(dp1878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1879&#10;(dp1880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1881&#10;(dp1882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1883&#10;(dp1884&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p1885&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1885&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1886&#10;(dp1887&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1888&#10;(dp1889&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1890&#10;(dp1891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1892&#10;(dp1893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1894&#10;(dp1895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1896&#10;(dp1897&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p1898&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1898&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1899&#10;(dp1900&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1901&#10;(dp1902&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1903&#10;(dp1904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1905&#10;(dp1906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1907&#10;(dp1908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1909&#10;(dp1910&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p1911&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1911&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1912&#10;(dp1913&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1914&#10;(dp1915&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1916&#10;(dp1917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1918&#10;(dp1919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1920&#10;(dp1921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1922&#10;(dp1923&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p1924&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1924&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1925&#10;(dp1926&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1927&#10;(dp1928&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1929&#10;(dp1930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1931&#10;(dp1932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1933&#10;(dp1934&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1935&#10;(dp1936&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p1937&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1937&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1938&#10;(dp1939&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1940&#10;(dp1941&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1942&#10;(dp1943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1944&#10;(dp1945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1946&#10;(dp1947&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1948&#10;(dp1949&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p1950&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1950&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1951&#10;(dp1952&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1953&#10;(dp1954&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1955&#10;(dp1956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1957&#10;(dp1958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1959&#10;(dp1960&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1961&#10;(dp1962&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p1963&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1963&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1964&#10;(dp1965&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1966&#10;(dp1967&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1968&#10;(dp1969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1970&#10;(dp1971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1972&#10;(dp1973&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1974&#10;(dp1975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p1976&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1976&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1977&#10;(dp1978&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1979&#10;(dp1980&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1981&#10;(dp1982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1983&#10;(dp1984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1985&#10;(dp1986&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1987&#10;(dp1988&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p1989&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1989&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1990&#10;(dp1991&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1992&#10;(dp1993&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1994&#10;(dp1995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1996&#10;(dp1997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1998&#10;(dp1999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2000&#10;(dp2001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p2002&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2002&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2003&#10;(dp2004&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2005&#10;(dp2006&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2007&#10;(dp2008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2009&#10;(dp2010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2011&#10;(dp2012&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2013&#10;(dp2014&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p2015&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2015&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2016&#10;(dp2017&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2018&#10;(dp2019&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2020&#10;(dp2021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2022&#10;(dp2023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2024&#10;(dp2025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2026&#10;(dp2027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p2028&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2028&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2029&#10;(dp2030&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2031&#10;(dp2032&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2033&#10;(dp2034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2035&#10;(dp2036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2037&#10;(dp2038&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2039&#10;(dp2040&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p2041&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2041&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2042&#10;(dp2043&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2044&#10;(dp2045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2046&#10;(dp2047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2048&#10;(dp2049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2050&#10;(dp2051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2052&#10;(dp2053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p2054&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2054&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2055&#10;(dp2056&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2057&#10;(dp2058&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2059&#10;(dp2060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2061&#10;(dp2062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2063&#10;(dp2064&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2065&#10;(dp2066&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p2067&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2067&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2068&#10;(dp2069&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2070&#10;(dp2071&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2072&#10;(dp2073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2074&#10;(dp2075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2076&#10;(dp2077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2078&#10;(dp2079&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p2080&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2080&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2081&#10;(dp2082&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2083&#10;(dp2084&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2085&#10;(dp2086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2087&#10;(dp2088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2089&#10;(dp2090&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2091&#10;(dp2092&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p2093&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2093&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2094&#10;(dp2095&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2096&#10;(dp2097&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2098&#10;(dp2099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2100&#10;(dp2101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2102&#10;(dp2103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2104&#10;(dp2105&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p2106&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2106&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2107&#10;(dp2108&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2109&#10;(dp2110&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2111&#10;(dp2112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2113&#10;(dp2114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2115&#10;(dp2116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2117&#10;(dp2118&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p2119&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2119&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2120&#10;(dp2121&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2122&#10;(dp2123&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2124&#10;(dp2125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2126&#10;(dp2127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2128&#10;(dp2129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2130&#10;(dp2131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p2132&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2132&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2133&#10;(dp2134&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2135&#10;(dp2136&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2137&#10;(dp2138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2139&#10;(dp2140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2141&#10;(dp2142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2143&#10;(dp2144&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p2145&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2145&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2146&#10;(dp2147&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2148&#10;(dp2149&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2150&#10;(dp2151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2152&#10;(dp2153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2154&#10;(dp2155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2156&#10;(dp2157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p2158&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2158&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2159&#10;(dp2160&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2161&#10;(dp2162&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2163&#10;(dp2164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2165&#10;(dp2166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2167&#10;(dp2168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2169&#10;(dp2170&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p2171&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2171&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2172&#10;(dp2173&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2174&#10;(dp2175&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2176&#10;(dp2177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2178&#10;(dp2179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2180&#10;(dp2181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2182&#10;(dp2183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p2184&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2184&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2185&#10;(dp2186&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2187&#10;(dp2188&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2189&#10;(dp2190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2191&#10;(dp2192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2193&#10;(dp2194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2195&#10;(dp2196&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p2197&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2197&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2198&#10;(dp2199&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2200&#10;(dp2201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2202&#10;(dp2203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2204&#10;(dp2205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2206&#10;(dp2207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2208&#10;(dp2209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p2210&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2210&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2211&#10;(dp2212&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2213&#10;(dp2214&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2215&#10;(dp2216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2217&#10;(dp2218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2219&#10;(dp2220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2221&#10;(dp2222&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p2223&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2223&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2224&#10;(dp2225&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2226&#10;(dp2227&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2228&#10;(dp2229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2230&#10;(dp2231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2232&#10;(dp2233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2234&#10;(dp2235&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p2236&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2236&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2237&#10;(dp2238&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2239&#10;(dp2240&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2241&#10;(dp2242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2243&#10;(dp2244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2245&#10;(dp2246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2247&#10;(dp2248&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p2249&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2249&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2250&#10;(dp2251&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2252&#10;(dp2253&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2254&#10;(dp2255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2256&#10;(dp2257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2258&#10;(dp2259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2260&#10;(dp2261&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p2262&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2262&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2263&#10;(dp2264&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2265&#10;(dp2266&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2267&#10;(dp2268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2269&#10;(dp2270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2271&#10;(dp2272&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2273&#10;(dp2274&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p2275&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2275&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2276&#10;(dp2277&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2278&#10;(dp2279&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2280&#10;(dp2281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2282&#10;(dp2283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2284&#10;(dp2285&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2286&#10;(dp2287&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p2288&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2288&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2289&#10;(dp2290&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2291&#10;(dp2292&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2293&#10;(dp2294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2295&#10;(dp2296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2297&#10;(dp2298&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2299&#10;(dp2300&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p2301&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2301&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2302&#10;(dp2303&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2304&#10;(dp2305&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2306&#10;(dp2307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2308&#10;(dp2309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2310&#10;(dp2311&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2312&#10;(dp2313&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p2314&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2314&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2315&#10;(dp2316&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2317&#10;(dp2318&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2319&#10;(dp2320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2321&#10;(dp2322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2323&#10;(dp2324&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2325&#10;(dp2326&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p2327&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2327&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2328&#10;(dp2329&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2330&#10;(dp2331&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2332&#10;(dp2333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2334&#10;(dp2335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2336&#10;(dp2337&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2338&#10;(dp2339&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p2340&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2340&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2341&#10;(dp2342&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2343&#10;(dp2344&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2345&#10;(dp2346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2347&#10;(dp2348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2349&#10;(dp2350&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2351&#10;(dp2352&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p2353&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2353&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2354&#10;(dp2355&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2356&#10;(dp2357&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2358&#10;(dp2359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2360&#10;(dp2361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2362&#10;(dp2363&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2364&#10;(dp2365&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p2366&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2366&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2367&#10;(dp2368&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2369&#10;(dp2370&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2371&#10;(dp2372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2373&#10;(dp2374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2375&#10;(dp2376&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2377&#10;(dp2378&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p2379&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2379&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2380&#10;(dp2381&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2382&#10;(dp2383&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2384&#10;(dp2385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2386&#10;(dp2387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2388&#10;(dp2389&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2390&#10;(dp2391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p2392&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2392&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2393&#10;(dp2394&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2395&#10;(dp2396&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2397&#10;(dp2398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2399&#10;(dp2400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2401&#10;(dp2402&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2403&#10;(dp2404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p2405&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2405&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2406&#10;(dp2407&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2408&#10;(dp2409&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2410&#10;(dp2411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2412&#10;(dp2413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2414&#10;(dp2415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2416&#10;(dp2417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p2418&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2418&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2419&#10;(dp2420&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2421&#10;(dp2422&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2423&#10;(dp2424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2425&#10;(dp2426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2427&#10;(dp2428&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2429&#10;(dp2430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p2431&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2431&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2432&#10;(dp2433&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2434&#10;(dp2435&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2436&#10;(dp2437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2438&#10;(dp2439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2440&#10;(dp2441&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2442&#10;(dp2443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p2444&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2444&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2445&#10;(dp2446&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2447&#10;(dp2448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2449&#10;(dp2450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2451&#10;(dp2452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2453&#10;(dp2454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2455&#10;(dp2456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p2457&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2457&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2458&#10;(dp2459&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2460&#10;(dp2461&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2462&#10;(dp2463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2464&#10;(dp2465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2466&#10;(dp2467&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2468&#10;(dp2469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p2470&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2470&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2471&#10;(dp2472&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2473&#10;(dp2474&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2475&#10;(dp2476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2477&#10;(dp2478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2479&#10;(dp2480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2481&#10;(dp2482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p2483&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2483&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2484&#10;(dp2485&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2486&#10;(dp2487&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2488&#10;(dp2489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2490&#10;(dp2491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2492&#10;(dp2493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2494&#10;(dp2495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p2496&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2496&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2497&#10;(dp2498&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2499&#10;(dp2500&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2501&#10;(dp2502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2503&#10;(dp2504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2505&#10;(dp2506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2507&#10;(dp2508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p2509&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2509&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2510&#10;(dp2511&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2512&#10;(dp2513&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2514&#10;(dp2515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2516&#10;(dp2517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2518&#10;(dp2519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2520&#10;(dp2521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p2522&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2522&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2523&#10;(dp2524&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2525&#10;(dp2526&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2527&#10;(dp2528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2529&#10;(dp2530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2531&#10;(dp2532&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2533&#10;(dp2534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p2535&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2535&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2536&#10;(dp2537&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2538&#10;(dp2539&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2540&#10;(dp2541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2542&#10;(dp2543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2544&#10;(dp2545&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2546&#10;(dp2547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p2548&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2548&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2549&#10;(dp2550&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2551&#10;(dp2552&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2553&#10;(dp2554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2555&#10;(dp2556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2557&#10;(dp2558&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2559&#10;(dp2560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p2561&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2561&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2562&#10;(dp2563&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2564&#10;(dp2565&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2566&#10;(dp2567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2568&#10;(dp2569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2570&#10;(dp2571&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2572&#10;(dp2573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p2574&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2574&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2575&#10;(dp2576&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2577&#10;(dp2578&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2579&#10;(dp2580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2581&#10;(dp2582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2583&#10;(dp2584&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2585&#10;(dp2586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p2587&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2587&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2588&#10;(dp2589&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2590&#10;(dp2591&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2592&#10;(dp2593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2594&#10;(dp2595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2596&#10;(dp2597&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2598&#10;(dp2599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p2600&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2600&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2601&#10;(dp2602&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2603&#10;(dp2604&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2605&#10;(dp2606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2607&#10;(dp2608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2609&#10;(dp2610&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2611&#10;(dp2612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p2613&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2613&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2614&#10;(dp2615&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2616&#10;(dp2617&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2618&#10;(dp2619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2620&#10;(dp2621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2622&#10;(dp2623&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2624&#10;(dp2625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p2626&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2626&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2627&#10;(dp2628&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2629&#10;(dp2630&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2631&#10;(dp2632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2633&#10;(dp2634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2635&#10;(dp2636&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2637&#10;(dp2638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p2639&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2639&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2640&#10;(dp2641&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2642&#10;(dp2643&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2644&#10;(dp2645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2646&#10;(dp2647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2648&#10;(dp2649&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2650&#10;(dp2651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p2652&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2652&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2653&#10;(dp2654&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2655&#10;(dp2656&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2657&#10;(dp2658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2659&#10;(dp2660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2661&#10;(dp2662&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2663&#10;(dp2664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p2665&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2665&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2666&#10;(dp2667&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2668&#10;(dp2669&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2670&#10;(dp2671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2672&#10;(dp2673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2674&#10;(dp2675&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2676&#10;(dp2677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p2678&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2678&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2679&#10;(dp2680&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2681&#10;(dp2682&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2683&#10;(dp2684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2685&#10;(dp2686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2687&#10;(dp2688&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2689&#10;(dp2690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p2691&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2691&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2692&#10;(dp2693&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2694&#10;(dp2695&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2696&#10;(dp2697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2698&#10;(dp2699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2700&#10;(dp2701&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2702&#10;(dp2703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p2704&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2704&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2705&#10;(dp2706&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2707&#10;(dp2708&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2709&#10;(dp2710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2711&#10;(dp2712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2713&#10;(dp2714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2715&#10;(dp2716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p2717&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2717&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2718&#10;(dp2719&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2720&#10;(dp2721&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2722&#10;(dp2723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2724&#10;(dp2725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2726&#10;(dp2727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2728&#10;(dp2729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p2730&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2730&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2731&#10;(dp2732&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2733&#10;(dp2734&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2735&#10;(dp2736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2737&#10;(dp2738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2739&#10;(dp2740&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2741&#10;(dp2742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p2743&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2743&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2744&#10;(dp2745&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2746&#10;(dp2747&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2748&#10;(dp2749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2750&#10;(dp2751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2752&#10;(dp2753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2754&#10;(dp2755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p2756&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2756&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2757&#10;(dp2758&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2759&#10;(dp2760&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2761&#10;(dp2762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2763&#10;(dp2764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2765&#10;(dp2766&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2767&#10;(dp2768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p2769&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2769&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2770&#10;(dp2771&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2772&#10;(dp2773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2774&#10;(dp2775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2776&#10;(dp2777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2778&#10;(dp2779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2780&#10;(dp2781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p2782&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2782&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2783&#10;(dp2784&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2785&#10;(dp2786&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2787&#10;(dp2788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2789&#10;(dp2790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2791&#10;(dp2792&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2793&#10;(dp2794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p2795&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2795&#10;sbatRp2796&#10;(dp2797&#10;g12&#10;I185&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client Per URL'&#10;p2798&#10;g3&#10;(g4&#10;g5&#10;(lp2799&#10;g3&#10;(g7&#10;g8&#10;NtRp2800&#10;(dp2801&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2802&#10;(dp2803&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2804&#10;(dp2805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2806&#10;(dp2807&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2808&#10;(dp2809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2810&#10;(dp2811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Sent'&#10;p2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2813&#10;(dp2814&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2815&#10;(dp2816&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2817&#10;(dp2818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2819&#10;(dp2820&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2821&#10;(dp2822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2823&#10;(dp2824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2826&#10;(dp2827&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2828&#10;(dp2829&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2830&#10;(dp2831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2832&#10;(dp2833&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2834&#10;(dp2835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2836&#10;(dp2837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (Provisional)'&#10;p2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2839&#10;(dp2840&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2841&#10;(dp2842&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2843&#10;(dp2844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2845&#10;(dp2846&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2847&#10;(dp2848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2849&#10;(dp2850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2852&#10;(dp2853&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2854&#10;(dp2855&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2856&#10;(dp2857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2858&#10;(dp2859&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2860&#10;(dp2861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2862&#10;(dp2863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write)'&#10;p2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2865&#10;(dp2866&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2867&#10;(dp2868&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2869&#10;(dp2870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2871&#10;(dp2872&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2873&#10;(dp2874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2875&#10;(dp2876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Read)'&#10;p2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2878&#10;(dp2879&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2880&#10;(dp2881&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2882&#10;(dp2883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2884&#10;(dp2885&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2886&#10;(dp2887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2888&#10;(dp2889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Bad Header)'&#10;p2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2891&#10;(dp2892&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2893&#10;(dp2894&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2895&#10;(dp2896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2897&#10;(dp2898&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2899&#10;(dp2900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2901&#10;(dp2902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx)'&#10;p2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2904&#10;(dp2905&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2906&#10;(dp2907&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2908&#10;(dp2909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2910&#10;(dp2911&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2912&#10;(dp2913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2914&#10;(dp2915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (400)'&#10;p2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2917&#10;(dp2918&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2919&#10;(dp2920&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2921&#10;(dp2922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2923&#10;(dp2924&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2925&#10;(dp2926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2927&#10;(dp2928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (401)'&#10;p2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2930&#10;(dp2931&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2932&#10;(dp2933&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2934&#10;(dp2935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2936&#10;(dp2937&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2938&#10;(dp2939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2940&#10;(dp2941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (403)'&#10;p2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2943&#10;(dp2944&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2945&#10;(dp2946&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2947&#10;(dp2948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2949&#10;(dp2950&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2951&#10;(dp2952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2953&#10;(dp2954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2956&#10;(dp2957&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2958&#10;(dp2959&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2960&#10;(dp2961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2962&#10;(dp2963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2964&#10;(dp2965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2966&#10;(dp2967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (407)'&#10;p2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2969&#10;(dp2970&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2971&#10;(dp2972&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2973&#10;(dp2974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2975&#10;(dp2976&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2977&#10;(dp2978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2979&#10;(dp2980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (408)'&#10;p2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2982&#10;(dp2983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2984&#10;(dp2985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2986&#10;(dp2987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2988&#10;(dp2989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2990&#10;(dp2991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2992&#10;(dp2993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx other)'&#10;p2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2995&#10;(dp2996&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2997&#10;(dp2998&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2999&#10;(dp3000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3001&#10;(dp3002&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3003&#10;(dp3004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3005&#10;(dp3006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx)'&#10;p3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3008&#10;(dp3009&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3010&#10;(dp3011&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3012&#10;(dp3013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3014&#10;(dp3015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3016&#10;(dp3017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3018&#10;(dp3019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (505)'&#10;p3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3021&#10;(dp3022&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3023&#10;(dp3024&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3025&#10;(dp3026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3027&#10;(dp3028&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3029&#10;(dp3030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3031&#10;(dp3032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx other)'&#10;p3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3034&#10;(dp3035&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3036&#10;(dp3037&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3038&#10;(dp3039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3040&#10;(dp3041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3042&#10;(dp3043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3044&#10;(dp3045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (other)'&#10;p3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3047&#10;(dp3048&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3049&#10;(dp3050&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3051&#10;(dp3052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3053&#10;(dp3054&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3055&#10;(dp3056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3057&#10;(dp3058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Timeout)'&#10;p3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3060&#10;(dp3061&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3062&#10;(dp3063&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3064&#10;(dp3065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3066&#10;(dp3067&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3068&#10;(dp3069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3070&#10;(dp3071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3073&#10;(dp3074&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3075&#10;(dp3076&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3077&#10;(dp3078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3079&#10;(dp3080&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3081&#10;(dp3082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3083&#10;(dp3084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted Before Request'&#10;p3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3086&#10;(dp3087&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3088&#10;(dp3089&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3090&#10;(dp3091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3092&#10;(dp3093&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3094&#10;(dp3095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3096&#10;(dp3097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted After Request'&#10;p3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3099&#10;(dp3100&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3101&#10;(dp3102&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3103&#10;(dp3104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3105&#10;(dp3106&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3107&#10;(dp3108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3109&#10;(dp3110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received With Match'&#10;p3111&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3111&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3112&#10;(dp3113&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3114&#10;(dp3115&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3116&#10;(dp3117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3118&#10;(dp3119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3120&#10;(dp3121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3122&#10;(dp3123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received Without Match'&#10;p3124&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3124&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3125&#10;(dp3126&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3127&#10;(dp3128&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3129&#10;(dp3130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3131&#10;(dp3132&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3133&#10;(dp3134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3135&#10;(dp3136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Intermediate Responses Received (1xx)'&#10;p3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3138&#10;(dp3139&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3140&#10;(dp3141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3142&#10;(dp3143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3144&#10;(dp3145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3146&#10;(dp3147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3148&#10;(dp3149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (2xx)'&#10;p3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3151&#10;(dp3152&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3153&#10;(dp3154&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3155&#10;(dp3156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3157&#10;(dp3158&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3159&#10;(dp3160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3161&#10;(dp3162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (3xx)'&#10;p3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3164&#10;(dp3165&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3166&#10;(dp3167&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3168&#10;(dp3169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3170&#10;(dp3171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3172&#10;(dp3173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3174&#10;(dp3175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (301)'&#10;p3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3177&#10;(dp3178&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3179&#10;(dp3180&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3181&#10;(dp3182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3183&#10;(dp3184&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3185&#10;(dp3186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3187&#10;(dp3188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (302)'&#10;p3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3190&#10;(dp3191&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3192&#10;(dp3193&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3194&#10;(dp3195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3196&#10;(dp3197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3198&#10;(dp3199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3200&#10;(dp3201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (303)'&#10;p3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3203&#10;(dp3204&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3205&#10;(dp3206&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3207&#10;(dp3208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3209&#10;(dp3210&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3211&#10;(dp3212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3213&#10;(dp3214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (307)'&#10;p3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3216&#10;(dp3217&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3218&#10;(dp3219&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3220&#10;(dp3221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3222&#10;(dp3223&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3224&#10;(dp3225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3226&#10;(dp3227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Sent'&#10;p3228&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3228&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3229&#10;(dp3230&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3231&#10;(dp3232&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3233&#10;(dp3234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3235&#10;(dp3236&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3237&#10;(dp3238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3239&#10;(dp3240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Headers Received'&#10;p3241&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3241&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3242&#10;(dp3243&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3244&#10;(dp3245&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3246&#10;(dp3247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3248&#10;(dp3249&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3250&#10;(dp3251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3252&#10;(dp3253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Received'&#10;p3254&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3254&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3255&#10;(dp3256&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3257&#10;(dp3258&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3259&#10;(dp3260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3261&#10;(dp3262&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3263&#10;(dp3264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3265&#10;(dp3266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Successful'&#10;p3267&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3267&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3268&#10;(dp3269&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3270&#10;(dp3271&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3272&#10;(dp3273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3274&#10;(dp3275&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3276&#10;(dp3277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3278&#10;(dp3279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Failed'&#10;p3280&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3280&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3281&#10;(dp3282&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3283&#10;(dp3284&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3285&#10;(dp3286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3287&#10;(dp3288&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3289&#10;(dp3290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3291&#10;(dp3292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p3293&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3293&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3294&#10;(dp3295&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3296&#10;(dp3297&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3298&#10;(dp3299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3300&#10;(dp3301&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3302&#10;(dp3303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3304&#10;(dp3305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p3306&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3306&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3307&#10;(dp3308&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3309&#10;(dp3310&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3311&#10;(dp3312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3313&#10;(dp3314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3315&#10;(dp3316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3317&#10;(dp3318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p3319&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3319&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3320&#10;(dp3321&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3322&#10;(dp3323&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3324&#10;(dp3325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3326&#10;(dp3327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3328&#10;(dp3329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3330&#10;(dp3331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Sent'&#10;p3332&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3332&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3333&#10;(dp3334&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3335&#10;(dp3336&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3337&#10;(dp3338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3339&#10;(dp3340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3341&#10;(dp3342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3343&#10;(dp3344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p3345&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3345&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3346&#10;(dp3347&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3348&#10;(dp3349&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3350&#10;(dp3351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3352&#10;(dp3353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3354&#10;(dp3355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3356&#10;(dp3357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size in Request'&#10;p3358&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3358&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3359&#10;(dp3360&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3361&#10;(dp3362&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3363&#10;(dp3364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3365&#10;(dp3366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3367&#10;(dp3368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3369&#10;(dp3370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p3371&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3371&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3372&#10;(dp3373&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3374&#10;(dp3375&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3376&#10;(dp3377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3378&#10;(dp3379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3380&#10;(dp3381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3382&#10;(dp3383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name1-Value1'&#10;p3384&#10;sg22&#10;I00&#10;sg37&#10;S'kString'&#10;p3385&#10;sg39&#10;g3384&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3386&#10;(dp3387&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3388&#10;(dp3389&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3390&#10;(dp3391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3392&#10;(dp3393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3394&#10;(dp3395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3396&#10;(dp3397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter1'&#10;p3398&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3398&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3399&#10;(dp3400&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3401&#10;(dp3402&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3403&#10;(dp3404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3405&#10;(dp3406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3407&#10;(dp3408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3409&#10;(dp3410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name2-Value2'&#10;p3411&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3411&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3412&#10;(dp3413&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3414&#10;(dp3415&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3416&#10;(dp3417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3418&#10;(dp3419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3420&#10;(dp3421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3422&#10;(dp3423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter2'&#10;p3424&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3424&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3425&#10;(dp3426&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3427&#10;(dp3428&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3429&#10;(dp3430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3431&#10;(dp3432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3433&#10;(dp3434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3435&#10;(dp3436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name3-Value3'&#10;p3437&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3437&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3438&#10;(dp3439&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3440&#10;(dp3441&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3442&#10;(dp3443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3444&#10;(dp3445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3446&#10;(dp3447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3448&#10;(dp3449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter3'&#10;p3450&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3450&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3451&#10;(dp3452&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3453&#10;(dp3454&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3455&#10;(dp3456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3457&#10;(dp3458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3459&#10;(dp3460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3461&#10;(dp3462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name4-Value4'&#10;p3463&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3463&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3464&#10;(dp3465&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3466&#10;(dp3467&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3468&#10;(dp3469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3470&#10;(dp3471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3472&#10;(dp3473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3474&#10;(dp3475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter4'&#10;p3476&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3476&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3477&#10;(dp3478&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3479&#10;(dp3480&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3481&#10;(dp3482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3483&#10;(dp3484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3485&#10;(dp3486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3487&#10;(dp3488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name5-Value5'&#10;p3489&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3489&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3490&#10;(dp3491&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3492&#10;(dp3493&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3494&#10;(dp3495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3496&#10;(dp3497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3498&#10;(dp3499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3500&#10;(dp3501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter5'&#10;p3502&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3502&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3503&#10;(dp3504&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3505&#10;(dp3506&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3507&#10;(dp3508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3509&#10;(dp3510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3511&#10;(dp3512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3513&#10;(dp3514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name6-Value6'&#10;p3515&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3515&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3516&#10;(dp3517&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3518&#10;(dp3519&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3520&#10;(dp3521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3522&#10;(dp3523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3524&#10;(dp3525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3526&#10;(dp3527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter6'&#10;p3528&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3528&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3529&#10;(dp3530&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3531&#10;(dp3532&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3533&#10;(dp3534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3535&#10;(dp3536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3537&#10;(dp3538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3539&#10;(dp3540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name7-Value7'&#10;p3541&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3541&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3542&#10;(dp3543&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3544&#10;(dp3545&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3546&#10;(dp3547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3548&#10;(dp3549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3550&#10;(dp3551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3552&#10;(dp3553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter7'&#10;p3554&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3554&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3555&#10;(dp3556&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3557&#10;(dp3558&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3559&#10;(dp3560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3561&#10;(dp3562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3563&#10;(dp3564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3565&#10;(dp3566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name8-Value8'&#10;p3567&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3567&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3568&#10;(dp3569&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3570&#10;(dp3571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3572&#10;(dp3573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3574&#10;(dp3575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3576&#10;(dp3577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3578&#10;(dp3579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter8'&#10;p3580&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3580&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3581&#10;(dp3582&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3583&#10;(dp3584&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3585&#10;(dp3586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3587&#10;(dp3588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3589&#10;(dp3590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3591&#10;(dp3592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name9-Value9'&#10;p3593&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3593&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3594&#10;(dp3595&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3596&#10;(dp3597&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3598&#10;(dp3599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3600&#10;(dp3601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3602&#10;(dp3603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3604&#10;(dp3605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter9'&#10;p3606&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3606&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3607&#10;(dp3608&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3609&#10;(dp3610&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3611&#10;(dp3612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3613&#10;(dp3614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3615&#10;(dp3616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3617&#10;(dp3618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name10-Value10'&#10;p3619&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3619&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3620&#10;(dp3621&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3622&#10;(dp3623&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3624&#10;(dp3625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3626&#10;(dp3627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3628&#10;(dp3629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3630&#10;(dp3631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter10'&#10;p3632&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3632&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3633&#10;(dp3634&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3635&#10;(dp3636&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3637&#10;(dp3638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3639&#10;(dp3640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3641&#10;(dp3642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3643&#10;(dp3644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Received'&#10;p3645&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3645&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3646&#10;(dp3647&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3648&#10;(dp3649&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3650&#10;(dp3651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3652&#10;(dp3653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3654&#10;(dp3655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3656&#10;(dp3657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Successful'&#10;p3658&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3658&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3659&#10;(dp3660&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3661&#10;(dp3662&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3663&#10;(dp3664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3665&#10;(dp3666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3667&#10;(dp3668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3669&#10;(dp3670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Failed'&#10;p3671&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3671&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3672&#10;(dp3673&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3674&#10;(dp3675&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3676&#10;(dp3677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3678&#10;(dp3679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3680&#10;(dp3681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3682&#10;(dp3683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Received'&#10;p3684&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3684&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3685&#10;(dp3686&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3687&#10;(dp3688&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3689&#10;(dp3690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3691&#10;(dp3692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3693&#10;(dp3694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3695&#10;(dp3696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Successful'&#10;p3697&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3697&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3698&#10;(dp3699&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3700&#10;(dp3701&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3702&#10;(dp3703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3704&#10;(dp3705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3706&#10;(dp3707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3708&#10;(dp3709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Failed'&#10;p3710&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3710&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3711&#10;(dp3712&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3713&#10;(dp3714&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3715&#10;(dp3716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3717&#10;(dp3718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3719&#10;(dp3720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3721&#10;(dp3722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Received'&#10;p3723&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3723&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3724&#10;(dp3725&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3726&#10;(dp3727&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3728&#10;(dp3729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3730&#10;(dp3731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3732&#10;(dp3733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3734&#10;(dp3735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Successful'&#10;p3736&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3736&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3737&#10;(dp3738&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3739&#10;(dp3740&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3741&#10;(dp3742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3743&#10;(dp3744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3745&#10;(dp3746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3747&#10;(dp3748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Failed'&#10;p3749&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3749&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3750&#10;(dp3751&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3752&#10;(dp3753&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3754&#10;(dp3755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3756&#10;(dp3757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3758&#10;(dp3759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3760&#10;(dp3761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Received'&#10;p3762&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3762&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3763&#10;(dp3764&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3765&#10;(dp3766&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3767&#10;(dp3768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3769&#10;(dp3770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3771&#10;(dp3772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3773&#10;(dp3774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Successful'&#10;p3775&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3775&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3776&#10;(dp3777&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3778&#10;(dp3779&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3780&#10;(dp3781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3782&#10;(dp3783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3784&#10;(dp3785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3786&#10;(dp3787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Failed'&#10;p3788&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3788&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3789&#10;(dp3790&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3791&#10;(dp3792&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3793&#10;(dp3794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3795&#10;(dp3796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3797&#10;(dp3798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3799&#10;(dp3800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Average Compression Ratio'&#10;p3801&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3801&#10;sbatRp3802&#10;(dp3803&#10;g12&#10;I76&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client'&#10;p3804&#10;g3&#10;(g4&#10;g5&#10;(lp3805&#10;g3&#10;(g7&#10;g8&#10;NtRp3806&#10;(dp3807&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3808&#10;(dp3809&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3810&#10;(dp3811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3812&#10;(dp3813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3814&#10;(dp3815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3816&#10;(dp3817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Simulated Users'&#10;p3818&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3818&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3819&#10;(dp3820&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3821&#10;(dp3822&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3823&#10;(dp3824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3825&#10;(dp3826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3827&#10;(dp3828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3829&#10;(dp3830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Concurrent Connections'&#10;p3831&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3831&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3832&#10;(dp3833&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3834&#10;(dp3835&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3836&#10;(dp3837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3838&#10;(dp3839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3840&#10;(dp3841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3842&#10;(dp3843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connections'&#10;p3844&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3844&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3845&#10;(dp3846&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3847&#10;(dp3848&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3849&#10;(dp3850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3851&#10;(dp3852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3853&#10;(dp3854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3855&#10;(dp3856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Attempts'&#10;p3857&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3857&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3858&#10;(dp3859&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3860&#10;(dp3861&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3862&#10;(dp3863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3864&#10;(dp3865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3866&#10;(dp3867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3868&#10;(dp3869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Aborts'&#10;p3870&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3870&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3871&#10;(dp3872&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3873&#10;(dp3874&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3875&#10;(dp3876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3877&#10;(dp3878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3879&#10;(dp3880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3881&#10;(dp3882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Aborts'&#10;p3883&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3883&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3884&#10;(dp3885&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3886&#10;(dp3887&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3888&#10;(dp3889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3890&#10;(dp3891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3892&#10;(dp3893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3894&#10;(dp3895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions'&#10;p3896&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3896&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3897&#10;(dp3898&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3899&#10;(dp3900&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3901&#10;(dp3902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3903&#10;(dp3904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3905&#10;(dp3906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3907&#10;(dp3908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes'&#10;p3909&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3909&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3910&#10;(dp3911&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3912&#10;(dp3913&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3914&#10;(dp3915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3916&#10;(dp3917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3918&#10;(dp3919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3920&#10;(dp3921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3922&#10;(dp3923&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3924&#10;(dp3925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3926&#10;(dp3927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3928&#10;(dp3929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3930&#10;(dp3931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3932&#10;(dp3933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3934&#10;(dp3935&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3936&#10;(dp3937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3938&#10;(dp3939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3940&#10;(dp3941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3942&#10;(dp3943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3944&#10;(dp3945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3946&#10;(dp3947&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3948&#10;(dp3949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3950&#10;(dp3951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3952&#10;(dp3953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3954&#10;(dp3955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3956&#10;(dp3957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3958&#10;(dp3959&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3960&#10;(dp3961&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3962&#10;(dp3963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3964&#10;(dp3965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3966&#10;(dp3967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3968&#10;(dp3969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3970&#10;(dp3971&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3972&#10;(dp3973&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3974&#10;(dp3975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3976&#10;(dp3977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3978&#10;(dp3979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3980&#10;(dp3981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3982&#10;(dp3983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3984&#10;(dp3985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3986&#10;(dp3987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3988&#10;(dp3989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3990&#10;(dp3991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3992&#10;(dp3993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3994&#10;(dp3995&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3996&#10;(dp3997&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3998&#10;(dp3999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4000&#10;(dp4001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4002&#10;(dp4003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4004&#10;(dp4005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4006&#10;(dp4007&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4008&#10;(dp4009&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4010&#10;(dp4011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4012&#10;(dp4013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4014&#10;(dp4015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4016&#10;(dp4017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4018&#10;(dp4019&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4020&#10;(dp4021&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4022&#10;(dp4023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4024&#10;(dp4025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4026&#10;(dp4027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4028&#10;(dp4029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4030&#10;(dp4031&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4032&#10;(dp4033&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4034&#10;(dp4035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4036&#10;(dp4037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4038&#10;(dp4039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4040&#10;(dp4041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4042&#10;(dp4043&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4044&#10;(dp4045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4046&#10;(dp4047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4048&#10;(dp4049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4050&#10;(dp4051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4052&#10;(dp4053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4054&#10;(dp4055&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4056&#10;(dp4057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4058&#10;(dp4059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4060&#10;(dp4061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4062&#10;(dp4063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4064&#10;(dp4065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4066&#10;(dp4067&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4068&#10;(dp4069&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4070&#10;(dp4071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4072&#10;(dp4073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4074&#10;(dp4075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4076&#10;(dp4077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4078&#10;(dp4079&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4080&#10;(dp4081&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4082&#10;(dp4083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4084&#10;(dp4085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4086&#10;(dp4087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4088&#10;(dp4089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4090&#10;(dp4091&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4092&#10;(dp4093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4094&#10;(dp4095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4096&#10;(dp4097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4098&#10;(dp4099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4100&#10;(dp4101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4102&#10;(dp4103&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4104&#10;(dp4105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4106&#10;(dp4107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4108&#10;(dp4109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4110&#10;(dp4111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4112&#10;(dp4113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4114&#10;(dp4115&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4116&#10;(dp4117&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4118&#10;(dp4119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4120&#10;(dp4121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4122&#10;(dp4123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4124&#10;(dp4125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4126&#10;(dp4127&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4128&#10;(dp4129&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4130&#10;(dp4131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4132&#10;(dp4133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4134&#10;(dp4135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4136&#10;(dp4137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4138&#10;(dp4139&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4140&#10;(dp4141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4142&#10;(dp4143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4144&#10;(dp4145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4146&#10;(dp4147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4148&#10;(dp4149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4150&#10;(dp4151&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4152&#10;(dp4153&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4154&#10;(dp4155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4156&#10;(dp4157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4158&#10;(dp4159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4160&#10;(dp4161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4162&#10;(dp4163&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4164&#10;(dp4165&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4166&#10;(dp4167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4168&#10;(dp4169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4170&#10;(dp4171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4172&#10;(dp4173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4174&#10;(dp4175&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4176&#10;(dp4177&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4178&#10;(dp4179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4180&#10;(dp4181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4182&#10;(dp4183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4184&#10;(dp4185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4186&#10;(dp4187&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4188&#10;(dp4189&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4190&#10;(dp4191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4192&#10;(dp4193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4194&#10;(dp4195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4196&#10;(dp4197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4198&#10;(dp4199&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4200&#10;(dp4201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4202&#10;(dp4203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4204&#10;(dp4205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4206&#10;(dp4207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4208&#10;(dp4209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4210&#10;(dp4211&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4212&#10;(dp4213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4214&#10;(dp4215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4216&#10;(dp4217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4218&#10;(dp4219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4220&#10;(dp4221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4222&#10;(dp4223&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4224&#10;(dp4225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4226&#10;(dp4227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4228&#10;(dp4229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4230&#10;(dp4231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4232&#10;(dp4233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4234&#10;(dp4235&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4236&#10;(dp4237&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4238&#10;(dp4239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4240&#10;(dp4241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4242&#10;(dp4243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4244&#10;(dp4245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4246&#10;(dp4247&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4248&#10;(dp4249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4250&#10;(dp4251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4252&#10;(dp4253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4254&#10;(dp4255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4256&#10;(dp4257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p4258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4259&#10;(dp4260&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4261&#10;(dp4262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4263&#10;(dp4264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4265&#10;(dp4266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4267&#10;(dp4268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4269&#10;(dp4270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Request Precondition Failed (412)'&#10;p4271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4272&#10;(dp4273&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4274&#10;(dp4275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4276&#10;(dp4277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4278&#10;(dp4279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4280&#10;(dp4281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4282&#10;(dp4283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p4284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4285&#10;(dp4286&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4287&#10;(dp4288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4289&#10;(dp4290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4291&#10;(dp4292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4293&#10;(dp4294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4295&#10;(dp4296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4297&#10;(dp4298&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4299&#10;(dp4300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4301&#10;(dp4302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4303&#10;(dp4304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4305&#10;(dp4306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4307&#10;(dp4308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4309&#10;(dp4310&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4311&#10;(dp4312&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4313&#10;(dp4314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4315&#10;(dp4316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4317&#10;(dp4318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4319&#10;(dp4320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions Active'&#10;p4321&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4321&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4322&#10;(dp4323&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4324&#10;(dp4325&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4326&#10;(dp4327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4328&#10;(dp4329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4330&#10;(dp4331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4332&#10;(dp4333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Users Active'&#10;p4334&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4334&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4335&#10;(dp4336&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4337&#10;(dp4338&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4339&#10;(dp4340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4341&#10;(dp4342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4343&#10;(dp4344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4345&#10;(dp4346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Received'&#10;p4347&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4347&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4348&#10;(dp4349&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4350&#10;(dp4351&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4352&#10;(dp4353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4354&#10;(dp4355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4356&#10;(dp4357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4358&#10;(dp4359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Received'&#10;p4360&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4360&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4361&#10;(dp4362&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4363&#10;(dp4364&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4365&#10;(dp4366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4367&#10;(dp4368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4369&#10;(dp4370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4371&#10;(dp4372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Received'&#10;p4373&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4373&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4374&#10;(dp4375&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4376&#10;(dp4377&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4378&#10;(dp4379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4380&#10;(dp4381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4382&#10;(dp4383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4384&#10;(dp4385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Unrecognized Content-Encoding Received'&#10;p4386&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4386&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4387&#10;(dp4388&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4389&#10;(dp4390&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4391&#10;(dp4392&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4393&#10;(dp4394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4395&#10;(dp4396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4397&#10;(dp4398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Successful'&#10;p4399&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4399&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4400&#10;(dp4401&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4402&#10;(dp4403&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4404&#10;(dp4405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4406&#10;(dp4407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4408&#10;(dp4409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4410&#10;(dp4411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Successful'&#10;p4412&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4412&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4413&#10;(dp4414&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4415&#10;(dp4416&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4417&#10;(dp4418&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4419&#10;(dp4420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4421&#10;(dp4422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4423&#10;(dp4424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Successful'&#10;p4425&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4425&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4426&#10;(dp4427&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4428&#10;(dp4429&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4430&#10;(dp4431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4432&#10;(dp4433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4434&#10;(dp4435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4436&#10;(dp4437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Failed'&#10;p4438&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4438&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4439&#10;(dp4440&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4441&#10;(dp4442&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4443&#10;(dp4444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4445&#10;(dp4446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4447&#10;(dp4448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4449&#10;(dp4450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed'&#10;p4451&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4451&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4452&#10;(dp4453&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4454&#10;(dp4455&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4456&#10;(dp4457&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4458&#10;(dp4459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4460&#10;(dp4461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4462&#10;(dp4463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed'&#10;p4464&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4464&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4465&#10;(dp4466&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4467&#10;(dp4468&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4469&#10;(dp4470&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4471&#10;(dp4472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4473&#10;(dp4474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4475&#10;(dp4476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Data Error'&#10;p4477&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4477&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4478&#10;(dp4479&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4480&#10;(dp4481&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4482&#10;(dp4483&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4484&#10;(dp4485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4486&#10;(dp4487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4488&#10;(dp4489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Decoding Error'&#10;p4490&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4490&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4491&#10;(dp4492&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4493&#10;(dp4494&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4495&#10;(dp4496&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4497&#10;(dp4498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4499&#10;(dp4500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4501&#10;(dp4502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Data Error'&#10;p4503&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4503&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4504&#10;(dp4505&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4506&#10;(dp4507&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4508&#10;(dp4509&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4510&#10;(dp4511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4512&#10;(dp4513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4514&#10;(dp4515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Decoding Error'&#10;p4516&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4516&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4517&#10;(dp4518&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4519&#10;(dp4520&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4521&#10;(dp4522&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4523&#10;(dp4524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4525&#10;(dp4526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4527&#10;(dp4528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Headers Received'&#10;p4529&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4529&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4530&#10;(dp4531&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4532&#10;(dp4533&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4534&#10;(dp4535&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4536&#10;(dp4537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4538&#10;(dp4539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4540&#10;(dp4541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Responses Received'&#10;p4542&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4542&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4543&#10;(dp4544&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4545&#10;(dp4546&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4547&#10;(dp4548&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4549&#10;(dp4550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4551&#10;(dp4552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4553&#10;(dp4554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Successful'&#10;p4555&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4555&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4556&#10;(dp4557&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4558&#10;(dp4559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4560&#10;(dp4561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4562&#10;(dp4563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4564&#10;(dp4565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4566&#10;(dp4567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Failed'&#10;p4568&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4568&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4569&#10;(dp4570&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4571&#10;(dp4572&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4573&#10;(dp4574&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4575&#10;(dp4576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4577&#10;(dp4578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4579&#10;(dp4580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Received'&#10;p4581&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4581&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4582&#10;(dp4583&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4584&#10;(dp4585&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4586&#10;(dp4587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4588&#10;(dp4589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4590&#10;(dp4591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4592&#10;(dp4593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Headers Sent'&#10;p4594&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4594&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4595&#10;(dp4596&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4597&#10;(dp4598&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4599&#10;(dp4600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4601&#10;(dp4602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4603&#10;(dp4604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4605&#10;(dp4606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Sent'&#10;p4607&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4607&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4608&#10;(dp4609&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4610&#10;(dp4611&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4612&#10;(dp4613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4614&#10;(dp4615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4616&#10;(dp4617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4618&#10;(dp4619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Responses Received'&#10;p4620&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4620&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4621&#10;(dp4622&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4623&#10;(dp4624&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4625&#10;(dp4626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4627&#10;(dp4628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4629&#10;(dp4630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4631&#10;(dp4632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Successful'&#10;p4633&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4633&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4634&#10;(dp4635&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4636&#10;(dp4637&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4638&#10;(dp4639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4640&#10;(dp4641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4642&#10;(dp4643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4644&#10;(dp4645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Failed'&#10;p4646&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4646&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4647&#10;(dp4648&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4649&#10;(dp4650&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4651&#10;(dp4652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4653&#10;(dp4654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4655&#10;(dp4656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4657&#10;(dp4658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Responses Received'&#10;p4659&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4659&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4660&#10;(dp4661&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4662&#10;(dp4663&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4664&#10;(dp4665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4666&#10;(dp4667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4668&#10;(dp4669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4670&#10;(dp4671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Successful'&#10;p4672&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4672&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4673&#10;(dp4674&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4675&#10;(dp4676&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4677&#10;(dp4678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4679&#10;(dp4680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4681&#10;(dp4682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4683&#10;(dp4684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Failed'&#10;p4685&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4685&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4686&#10;(dp4687&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4688&#10;(dp4689&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4690&#10;(dp4691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4692&#10;(dp4693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4694&#10;(dp4695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4696&#10;(dp4697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p4698&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4698&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4699&#10;(dp4700&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4701&#10;(dp4702&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4703&#10;(dp4704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4705&#10;(dp4706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4707&#10;(dp4708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4709&#10;(dp4710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p4711&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4711&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4712&#10;(dp4713&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4714&#10;(dp4715&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4716&#10;(dp4717&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4718&#10;(dp4719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4720&#10;(dp4721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4722&#10;(dp4723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p4724&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4724&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4725&#10;(dp4726&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4727&#10;(dp4728&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4729&#10;(dp4730&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4731&#10;(dp4732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4733&#10;(dp4734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4735&#10;(dp4736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p4737&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4737&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4738&#10;(dp4739&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4740&#10;(dp4741&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4742&#10;(dp4743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4744&#10;(dp4745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4746&#10;(dp4747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4748&#10;(dp4749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Decompressed Content Bytes Received'&#10;p4750&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4750&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4751&#10;(dp4752&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4753&#10;(dp4754&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4755&#10;(dp4756&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4757&#10;(dp4758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4759&#10;(dp4760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4761&#10;(dp4762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p4763&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4763&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4764&#10;(dp4765&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4766&#10;(dp4767&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4768&#10;(dp4769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4770&#10;(dp4771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4772&#10;(dp4773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4774&#10;(dp4775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p4776&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4776&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4777&#10;(dp4778&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4779&#10;(dp4780&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4781&#10;(dp4782&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4783&#10;(dp4784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4785&#10;(dp4786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4787&#10;(dp4788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected'&#10;p4789&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4789&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4790&#10;(dp4791&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4792&#10;(dp4793&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4794&#10;(dp4795&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4796&#10;(dp4797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4798&#10;(dp4799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4800&#10;(dp4801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Path Match Failed)'&#10;p4802&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4802&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4803&#10;(dp4804&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4805&#10;(dp4806&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4807&#10;(dp4808&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4809&#10;(dp4810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4811&#10;(dp4812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4813&#10;(dp4814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Domain Match Failed)'&#10;p4815&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4815&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4816&#10;(dp4817&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4818&#10;(dp4819&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4820&#10;(dp4821&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4822&#10;(dp4823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4824&#10;(dp4825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4826&#10;(dp4827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Cookiejar Overflow)'&#10;p4828&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4828&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4829&#10;(dp4830&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4831&#10;(dp4832&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4833&#10;(dp4834&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4835&#10;(dp4836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4837&#10;(dp4838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4839&#10;(dp4840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Probabilistic Reject)'&#10;p4841&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4841&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4842&#10;(dp4843&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4844&#10;(dp4845&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4846&#10;(dp4847&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4848&#10;(dp4849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4850&#10;(dp4851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4852&#10;(dp4853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookie headers Rejected - (Memory Overflow)'&#10;p4854&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4854&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4855&#10;(dp4856&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4857&#10;(dp4858&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4859&#10;(dp4860&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4861&#10;(dp4862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4863&#10;(dp4864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4865&#10;(dp4866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connect Time (us)'&#10;p4867&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4867&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4868&#10;(dp4869&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4870&#10;(dp4871&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4872&#10;(dp4873&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4874&#10;(dp4875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4876&#10;(dp4877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4878&#10;(dp4879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To First Byte (us)'&#10;p4880&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4880&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4881&#10;(dp4882&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4883&#10;(dp4884&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4885&#10;(dp4886&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4887&#10;(dp4888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4889&#10;(dp4890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4891&#10;(dp4892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To Last Byte (us)'&#10;p4893&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4893&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4894&#10;(dp4895&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4896&#10;(dp4897&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4898&#10;(dp4899&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4900&#10;(dp4901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4902&#10;(dp4903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4904&#10;(dp4905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Average (us)'&#10;p4906&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4906&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4907&#10;(dp4908&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4909&#10;(dp4910&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4911&#10;(dp4912&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4913&#10;(dp4914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4915&#10;(dp4916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4917&#10;(dp4918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Minimum (us)'&#10;p4919&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4919&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4920&#10;(dp4921&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4922&#10;(dp4923&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4924&#10;(dp4925&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4926&#10;(dp4927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4928&#10;(dp4929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4930&#10;(dp4931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Maximum (us)'&#10;p4932&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4932&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4933&#10;(dp4934&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4935&#10;(dp4936&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4937&#10;(dp4938&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4939&#10;(dp4940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4941&#10;(dp4942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4943&#10;(dp4944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Failed'&#10;p4945&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4945&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4946&#10;(dp4947&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4948&#10;(dp4949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4950&#10;(dp4951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4952&#10;(dp4953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4954&#10;(dp4955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4956&#10;(dp4957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Succeeded'&#10;p4958&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4958&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4959&#10;(dp4960&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4961&#10;(dp4962&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4963&#10;(dp4964&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4965&#10;(dp4966&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4967&#10;(dp4968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4969&#10;(dp4970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Received'&#10;p4971&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4971&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4972&#10;(dp4973&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4974&#10;(dp4975&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4976&#10;(dp4977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4978&#10;(dp4979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4980&#10;(dp4981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4982&#10;(dp4983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Received'&#10;p4984&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4984&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4985&#10;(dp4986&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4987&#10;(dp4988&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4989&#10;(dp4990&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4991&#10;(dp4992&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4993&#10;(dp4994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4995&#10;(dp4996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Received'&#10;p4997&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4997&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4998&#10;(dp4999&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5000&#10;(dp5001&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5002&#10;(dp5003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5004&#10;(dp5005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5006&#10;(dp5007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5008&#10;(dp5009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Received'&#10;p5010&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5010&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5011&#10;(dp5012&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5013&#10;(dp5014&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5015&#10;(dp5016&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5017&#10;(dp5018&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5019&#10;(dp5020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5021&#10;(dp5022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Received'&#10;p5023&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5023&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5024&#10;(dp5025&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5026&#10;(dp5027&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5028&#10;(dp5029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5030&#10;(dp5031&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5032&#10;(dp5033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5034&#10;(dp5035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Received'&#10;p5036&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5036&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5037&#10;(dp5038&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5039&#10;(dp5040&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5041&#10;(dp5042&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5043&#10;(dp5044&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5045&#10;(dp5046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5047&#10;(dp5048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Received'&#10;p5049&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5049&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5050&#10;(dp5051&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5052&#10;(dp5053&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5054&#10;(dp5055&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5056&#10;(dp5057&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5058&#10;(dp5059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5060&#10;(dp5061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Received'&#10;p5062&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5062&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5063&#10;(dp5064&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5065&#10;(dp5066&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5067&#10;(dp5068&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5069&#10;(dp5070&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5071&#10;(dp5072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5073&#10;(dp5074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Received'&#10;p5075&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5075&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5076&#10;(dp5077&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5078&#10;(dp5079&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5080&#10;(dp5081&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5082&#10;(dp5083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5084&#10;(dp5085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5086&#10;(dp5087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Received'&#10;p5088&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5088&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5089&#10;(dp5090&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5091&#10;(dp5092&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5093&#10;(dp5094&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5095&#10;(dp5096&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5097&#10;(dp5098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5099&#10;(dp5100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Sent'&#10;p5101&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5101&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5102&#10;(dp5103&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5104&#10;(dp5105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5106&#10;(dp5107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5108&#10;(dp5109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5110&#10;(dp5111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5112&#10;(dp5113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Sent'&#10;p5114&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5114&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5115&#10;(dp5116&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5117&#10;(dp5118&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5119&#10;(dp5120&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5121&#10;(dp5122&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5123&#10;(dp5124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5125&#10;(dp5126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Sent'&#10;p5127&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5127&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5128&#10;(dp5129&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5130&#10;(dp5131&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5132&#10;(dp5133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5134&#10;(dp5135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5136&#10;(dp5137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5138&#10;(dp5139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Sent'&#10;p5140&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5140&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5141&#10;(dp5142&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5143&#10;(dp5144&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5145&#10;(dp5146&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5147&#10;(dp5148&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5149&#10;(dp5150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5151&#10;(dp5152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Sent'&#10;p5153&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5153&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5154&#10;(dp5155&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5156&#10;(dp5157&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5158&#10;(dp5159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5160&#10;(dp5161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5162&#10;(dp5163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5164&#10;(dp5165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Sent'&#10;p5166&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5166&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5167&#10;(dp5168&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5169&#10;(dp5170&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5171&#10;(dp5172&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5173&#10;(dp5174&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5175&#10;(dp5176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5177&#10;(dp5178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Sent'&#10;p5179&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5179&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5180&#10;(dp5181&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5182&#10;(dp5183&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5184&#10;(dp5185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5186&#10;(dp5187&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5188&#10;(dp5189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5190&#10;(dp5191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Sent'&#10;p5192&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5192&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5193&#10;(dp5194&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5195&#10;(dp5196&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5197&#10;(dp5198&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5199&#10;(dp5200&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5201&#10;(dp5202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5203&#10;(dp5204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Sent'&#10;p5205&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5205&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5206&#10;(dp5207&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5208&#10;(dp5209&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5210&#10;(dp5211&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5212&#10;(dp5213&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5214&#10;(dp5215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5216&#10;(dp5217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Sent'&#10;p5218&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5218&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5219&#10;(dp5220&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5221&#10;(dp5222&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5223&#10;(dp5224&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5225&#10;(dp5226&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5227&#10;(dp5228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5229&#10;(dp5230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Client'&#10;p5231&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5231&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5232&#10;(dp5233&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5234&#10;(dp5235&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5236&#10;(dp5237&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5238&#10;(dp5239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5240&#10;(dp5241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5242&#10;(dp5243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Server'&#10;p5244&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5244&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5245&#10;(dp5246&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5247&#10;(dp5248&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5249&#10;(dp5250&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5251&#10;(dp5252&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5253&#10;(dp5254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5255&#10;(dp5256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Client to Server)'&#10;p5257&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5257&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5258&#10;(dp5259&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5260&#10;(dp5261&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5262&#10;(dp5263&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5264&#10;(dp5265&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5266&#10;(dp5267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5268&#10;(dp5269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Server to Client)'&#10;p5270&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5270&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5271&#10;(dp5272&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5273&#10;(dp5274&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5275&#10;(dp5276&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5277&#10;(dp5278&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5279&#10;(dp5280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5281&#10;(dp5282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Client to Server)'&#10;p5283&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5283&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5284&#10;(dp5285&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5286&#10;(dp5287&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5288&#10;(dp5289&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5290&#10;(dp5291&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5292&#10;(dp5293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5294&#10;(dp5295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Server to Client)'&#10;p5296&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5296&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5297&#10;(dp5298&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5299&#10;(dp5300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5301&#10;(dp5302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5303&#10;(dp5304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5305&#10;(dp5306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5307&#10;(dp5308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Succeeded'&#10;p5309&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5309&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5310&#10;(dp5311&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5312&#10;(dp5313&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5314&#10;(dp5315&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5316&#10;(dp5317&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5318&#10;(dp5319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5320&#10;(dp5321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Failed'&#10;p5322&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5322&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5323&#10;(dp5324&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5325&#10;(dp5326&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5327&#10;(dp5328&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5329&#10;(dp5330&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5331&#10;(dp5332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5333&#10;(dp5334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Protocol Error'&#10;p5335&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5335&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5336&#10;(dp5337&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5338&#10;(dp5339&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5340&#10;(dp5341&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5342&#10;(dp5343&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5344&#10;(dp5345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5346&#10;(dp5347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Internal Error'&#10;p5348&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5348&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5349&#10;(dp5350&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5351&#10;(dp5352&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5353&#10;(dp5354&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5355&#10;(dp5356&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5357&#10;(dp5358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5359&#10;(dp5360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Flow Control Error'&#10;p5361&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5361&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5362&#10;(dp5363&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5364&#10;(dp5365&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5366&#10;(dp5367&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5368&#10;(dp5369&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5370&#10;(dp5371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5372&#10;(dp5373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Timeout Error'&#10;p5374&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5374&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5375&#10;(dp5376&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5377&#10;(dp5378&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5379&#10;(dp5380&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5381&#10;(dp5382&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5383&#10;(dp5384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5385&#10;(dp5386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Closed Error'&#10;p5387&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5387&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5388&#10;(dp5389&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5390&#10;(dp5391&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5392&#10;(dp5393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5394&#10;(dp5395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5396&#10;(dp5397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5398&#10;(dp5399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Frame Size Error'&#10;p5400&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5400&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5401&#10;(dp5402&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5403&#10;(dp5404&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5405&#10;(dp5406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5407&#10;(dp5408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5409&#10;(dp5410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5411&#10;(dp5412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Refused Stream Error'&#10;p5413&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5413&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5414&#10;(dp5415&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5416&#10;(dp5417&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5418&#10;(dp5419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5420&#10;(dp5421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5422&#10;(dp5423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5424&#10;(dp5425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Cancelled Error'&#10;p5426&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5426&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5427&#10;(dp5428&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5429&#10;(dp5430&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5431&#10;(dp5432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5433&#10;(dp5434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5435&#10;(dp5436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5437&#10;(dp5438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Compression Error'&#10;p5439&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5439&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5440&#10;(dp5441&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5442&#10;(dp5443&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5444&#10;(dp5445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5446&#10;(dp5447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5448&#10;(dp5449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5450&#10;(dp5451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connect Error'&#10;p5452&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5452&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5453&#10;(dp5454&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5455&#10;(dp5456&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5457&#10;(dp5458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5459&#10;(dp5460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5461&#10;(dp5462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5463&#10;(dp5464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Enhance Calm Error'&#10;p5465&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5465&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5466&#10;(dp5467&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5468&#10;(dp5469&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5470&#10;(dp5471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5472&#10;(dp5473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5474&#10;(dp5475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5476&#10;(dp5477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Inadequate Security Error'&#10;p5478&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5478&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5479&#10;(dp5480&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5481&#10;(dp5482&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5483&#10;(dp5484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5485&#10;(dp5486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5487&#10;(dp5488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5489&#10;(dp5490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 HTTP1_1 Required Error'&#10;p5491&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5491&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5492&#10;(dp5493&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5494&#10;(dp5495&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5496&#10;(dp5497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5498&#10;(dp5499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5500&#10;(dp5501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5502&#10;(dp5503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p5504&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5504&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5505&#10;(dp5506&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5507&#10;(dp5508&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5509&#10;(dp5510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5511&#10;(dp5512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5513&#10;(dp5514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5515&#10;(dp5516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p5517&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5517&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5518&#10;(dp5519&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5520&#10;(dp5521&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5522&#10;(dp5523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5524&#10;(dp5525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5526&#10;(dp5527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5528&#10;(dp5529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p5530&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5530&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5531&#10;(dp5532&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5533&#10;(dp5534&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5535&#10;(dp5536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5537&#10;(dp5538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5539&#10;(dp5540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5541&#10;(dp5542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p5543&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5543&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5544&#10;(dp5545&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5546&#10;(dp5547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5548&#10;(dp5549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5550&#10;(dp5551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5552&#10;(dp5553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5554&#10;(dp5555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p5556&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5556&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5557&#10;(dp5558&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5559&#10;(dp5560&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5561&#10;(dp5562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5563&#10;(dp5564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5565&#10;(dp5566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5567&#10;(dp5568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p5569&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5569&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5570&#10;(dp5571&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5572&#10;(dp5573&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5574&#10;(dp5575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5576&#10;(dp5577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5578&#10;(dp5579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5580&#10;(dp5581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p5582&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5582&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5583&#10;(dp5584&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5585&#10;(dp5586&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5587&#10;(dp5588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5589&#10;(dp5590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5591&#10;(dp5592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5593&#10;(dp5594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p5595&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5595&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5596&#10;(dp5597&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5598&#10;(dp5599&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5600&#10;(dp5601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5602&#10;(dp5603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5604&#10;(dp5605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5606&#10;(dp5607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p5608&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5608&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5609&#10;(dp5610&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5611&#10;(dp5612&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5613&#10;(dp5614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5615&#10;(dp5616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5617&#10;(dp5618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5619&#10;(dp5620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p5621&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5621&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5622&#10;(dp5623&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5624&#10;(dp5625&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5626&#10;(dp5627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5628&#10;(dp5629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5630&#10;(dp5631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5632&#10;(dp5633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p5634&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5634&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5635&#10;(dp5636&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5637&#10;(dp5638&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5639&#10;(dp5640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5641&#10;(dp5642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5643&#10;(dp5644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5645&#10;(dp5646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p5647&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5647&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5648&#10;(dp5649&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5650&#10;(dp5651&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5652&#10;(dp5653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5654&#10;(dp5655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5656&#10;(dp5657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5658&#10;(dp5659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p5660&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5660&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5661&#10;(dp5662&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5663&#10;(dp5664&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5665&#10;(dp5666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5667&#10;(dp5668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5669&#10;(dp5670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5671&#10;(dp5672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p5673&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5673&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5674&#10;(dp5675&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5676&#10;(dp5677&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5678&#10;(dp5679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5680&#10;(dp5681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5682&#10;(dp5683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5684&#10;(dp5685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p5686&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5686&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5687&#10;(dp5688&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5689&#10;(dp5690&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5691&#10;(dp5692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5693&#10;(dp5694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5695&#10;(dp5696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5697&#10;(dp5698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p5699&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5699&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5700&#10;(dp5701&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5702&#10;(dp5703&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5704&#10;(dp5705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5706&#10;(dp5707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5708&#10;(dp5709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5710&#10;(dp5711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p5712&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5712&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5713&#10;(dp5714&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5715&#10;(dp5716&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5717&#10;(dp5718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5719&#10;(dp5720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5721&#10;(dp5722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5723&#10;(dp5724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p5725&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5725&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5726&#10;(dp5727&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5728&#10;(dp5729&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5730&#10;(dp5731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5732&#10;(dp5733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5734&#10;(dp5735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5736&#10;(dp5737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p5738&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5738&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5739&#10;(dp5740&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5741&#10;(dp5742&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5743&#10;(dp5744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5745&#10;(dp5746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5747&#10;(dp5748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5749&#10;(dp5750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p5751&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5751&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5752&#10;(dp5753&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5754&#10;(dp5755&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5756&#10;(dp5757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5758&#10;(dp5759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5760&#10;(dp5761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5762&#10;(dp5763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p5764&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5764&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5765&#10;(dp5766&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5767&#10;(dp5768&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5769&#10;(dp5770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5771&#10;(dp5772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5773&#10;(dp5774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5775&#10;(dp5776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p5777&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5777&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5778&#10;(dp5779&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5780&#10;(dp5781&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5782&#10;(dp5783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5784&#10;(dp5785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5786&#10;(dp5787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5788&#10;(dp5789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p5790&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5790&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5791&#10;(dp5792&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5793&#10;(dp5794&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5795&#10;(dp5796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5797&#10;(dp5798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5799&#10;(dp5800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5801&#10;(dp5802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p5803&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5803&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5804&#10;(dp5805&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5806&#10;(dp5807&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5808&#10;(dp5809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5810&#10;(dp5811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5812&#10;(dp5813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5814&#10;(dp5815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p5816&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5816&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5817&#10;(dp5818&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5819&#10;(dp5820&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5821&#10;(dp5822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5823&#10;(dp5824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5825&#10;(dp5826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5827&#10;(dp5828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p5829&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5829&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5830&#10;(dp5831&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5832&#10;(dp5833&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5834&#10;(dp5835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5836&#10;(dp5837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5838&#10;(dp5839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5840&#10;(dp5841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p5842&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5842&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5843&#10;(dp5844&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5845&#10;(dp5846&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5847&#10;(dp5848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5849&#10;(dp5850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5851&#10;(dp5852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5853&#10;(dp5854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p5855&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5855&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5856&#10;(dp5857&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5858&#10;(dp5859&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5860&#10;(dp5861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5862&#10;(dp5863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5864&#10;(dp5865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5866&#10;(dp5867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p5868&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5868&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5869&#10;(dp5870&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5871&#10;(dp5872&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5873&#10;(dp5874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5875&#10;(dp5876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5877&#10;(dp5878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5879&#10;(dp5880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p5881&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5881&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5882&#10;(dp5883&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5884&#10;(dp5885&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5886&#10;(dp5887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5888&#10;(dp5889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5890&#10;(dp5891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5892&#10;(dp5893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p5894&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5894&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5895&#10;(dp5896&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5897&#10;(dp5898&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5899&#10;(dp5900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5901&#10;(dp5902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5903&#10;(dp5904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5905&#10;(dp5906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p5907&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5907&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5908&#10;(dp5909&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5910&#10;(dp5911&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5912&#10;(dp5913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5914&#10;(dp5915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5916&#10;(dp5917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5918&#10;(dp5919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p5920&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5920&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5921&#10;(dp5922&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5923&#10;(dp5924&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5925&#10;(dp5926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5927&#10;(dp5928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5929&#10;(dp5930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5931&#10;(dp5932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p5933&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5933&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5934&#10;(dp5935&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5936&#10;(dp5937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5938&#10;(dp5939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5940&#10;(dp5941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5942&#10;(dp5943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5944&#10;(dp5945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p5946&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5946&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5947&#10;(dp5948&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5949&#10;(dp5950&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5951&#10;(dp5952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5953&#10;(dp5954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5955&#10;(dp5956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5957&#10;(dp5958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p5959&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5959&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5960&#10;(dp5961&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5962&#10;(dp5963&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5964&#10;(dp5965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5966&#10;(dp5967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5968&#10;(dp5969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5970&#10;(dp5971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p5972&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5972&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5973&#10;(dp5974&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5975&#10;(dp5976&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5977&#10;(dp5978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5979&#10;(dp5980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5981&#10;(dp5982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5983&#10;(dp5984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p5985&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5985&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5986&#10;(dp5987&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5988&#10;(dp5989&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5990&#10;(dp5991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5992&#10;(dp5993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5994&#10;(dp5995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5996&#10;(dp5997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p5998&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5998&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5999&#10;(dp6000&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6001&#10;(dp6002&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6003&#10;(dp6004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6005&#10;(dp6006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6007&#10;(dp6008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6009&#10;(dp6010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p6011&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6011&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6012&#10;(dp6013&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6014&#10;(dp6015&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6016&#10;(dp6017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6018&#10;(dp6019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6020&#10;(dp6021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6022&#10;(dp6023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p6024&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6024&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6025&#10;(dp6026&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6027&#10;(dp6028&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6029&#10;(dp6030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6031&#10;(dp6032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6033&#10;(dp6034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6035&#10;(dp6036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p6037&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6037&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6038&#10;(dp6039&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6040&#10;(dp6041&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6042&#10;(dp6043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6044&#10;(dp6045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6046&#10;(dp6047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6048&#10;(dp6049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p6050&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6050&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6051&#10;(dp6052&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6053&#10;(dp6054&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6055&#10;(dp6056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6057&#10;(dp6058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6059&#10;(dp6060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6061&#10;(dp6062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p6063&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6063&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6064&#10;(dp6065&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6066&#10;(dp6067&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6068&#10;(dp6069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6070&#10;(dp6071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6072&#10;(dp6073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6074&#10;(dp6075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p6076&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6076&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6077&#10;(dp6078&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6079&#10;(dp6080&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6081&#10;(dp6082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6083&#10;(dp6084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6085&#10;(dp6086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6087&#10;(dp6088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p6089&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6089&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6090&#10;(dp6091&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6092&#10;(dp6093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6094&#10;(dp6095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6096&#10;(dp6097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6098&#10;(dp6099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6100&#10;(dp6101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p6102&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6102&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6103&#10;(dp6104&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6105&#10;(dp6106&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6107&#10;(dp6108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6109&#10;(dp6110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6111&#10;(dp6112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6113&#10;(dp6114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p6115&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6115&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6116&#10;(dp6117&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6118&#10;(dp6119&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6120&#10;(dp6121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6122&#10;(dp6123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6124&#10;(dp6125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6126&#10;(dp6127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p6128&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6128&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6129&#10;(dp6130&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6131&#10;(dp6132&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6133&#10;(dp6134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6135&#10;(dp6136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6137&#10;(dp6138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6139&#10;(dp6140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p6141&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6141&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6142&#10;(dp6143&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6144&#10;(dp6145&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6146&#10;(dp6147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6148&#10;(dp6149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6150&#10;(dp6151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6152&#10;(dp6153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p6154&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6154&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6155&#10;(dp6156&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6157&#10;(dp6158&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6159&#10;(dp6160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6161&#10;(dp6162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6163&#10;(dp6164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6165&#10;(dp6166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p6167&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6167&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6168&#10;(dp6169&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6170&#10;(dp6171&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6172&#10;(dp6173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6174&#10;(dp6175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6176&#10;(dp6177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6178&#10;(dp6179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p6180&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6180&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6181&#10;(dp6182&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6183&#10;(dp6184&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6185&#10;(dp6186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6187&#10;(dp6188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6189&#10;(dp6190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6191&#10;(dp6192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p6193&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6193&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6194&#10;(dp6195&#10;g11&#10;Nsg12&#10;I186&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6196&#10;(dp6197&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6198&#10;(dp6199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6200&#10;(dp6201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6202&#10;(dp6203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6204&#10;(dp6205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p6206&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6206&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6207&#10;(dp6208&#10;g11&#10;Nsg12&#10;I187&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6209&#10;(dp6210&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6211&#10;(dp6212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6213&#10;(dp6214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6215&#10;(dp6216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6217&#10;(dp6218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p6219&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6219&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6220&#10;(dp6221&#10;g11&#10;Nsg12&#10;I188&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6222&#10;(dp6223&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6224&#10;(dp6225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6226&#10;(dp6227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6228&#10;(dp6229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6230&#10;(dp6231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p6232&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6232&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6233&#10;(dp6234&#10;g11&#10;Nsg12&#10;I189&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6235&#10;(dp6236&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6237&#10;(dp6238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6239&#10;(dp6240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6241&#10;(dp6242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6243&#10;(dp6244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p6245&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6245&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6246&#10;(dp6247&#10;g11&#10;Nsg12&#10;I190&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6248&#10;(dp6249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6250&#10;(dp6251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6252&#10;(dp6253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6254&#10;(dp6255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6256&#10;(dp6257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p6258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6259&#10;(dp6260&#10;g11&#10;Nsg12&#10;I191&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6261&#10;(dp6262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6263&#10;(dp6264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6265&#10;(dp6266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6267&#10;(dp6268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6269&#10;(dp6270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p6271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6272&#10;(dp6273&#10;g11&#10;Nsg12&#10;I192&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6274&#10;(dp6275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6276&#10;(dp6277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6278&#10;(dp6279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6280&#10;(dp6281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6282&#10;(dp6283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p6284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6285&#10;(dp6286&#10;g11&#10;Nsg12&#10;I193&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6287&#10;(dp6288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6289&#10;(dp6290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6291&#10;(dp6292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6293&#10;(dp6294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6295&#10;(dp6296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p6297&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6297&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6298&#10;(dp6299&#10;g11&#10;Nsg12&#10;I194&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6300&#10;(dp6301&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6302&#10;(dp6303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6304&#10;(dp6305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6306&#10;(dp6307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6308&#10;(dp6309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p6310&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6310&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6311&#10;(dp6312&#10;g11&#10;Nsg12&#10;I195&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6313&#10;(dp6314&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6315&#10;(dp6316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6317&#10;(dp6318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6319&#10;(dp6320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6321&#10;(dp6322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p6323&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6323&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6324&#10;(dp6325&#10;g11&#10;Nsg12&#10;I196&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6326&#10;(dp6327&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6328&#10;(dp6329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6330&#10;(dp6331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6332&#10;(dp6333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6334&#10;(dp6335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p6336&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6336&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6337&#10;(dp6338&#10;g11&#10;Nsg12&#10;I197&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6339&#10;(dp6340&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6341&#10;(dp6342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6343&#10;(dp6344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6345&#10;(dp6346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6347&#10;(dp6348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p6349&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6349&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6350&#10;(dp6351&#10;g11&#10;Nsg12&#10;I198&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6352&#10;(dp6353&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6354&#10;(dp6355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6356&#10;(dp6357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6358&#10;(dp6359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6360&#10;(dp6361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p6362&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6362&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6363&#10;(dp6364&#10;g11&#10;Nsg12&#10;I199&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6365&#10;(dp6366&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6367&#10;(dp6368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6369&#10;(dp6370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6371&#10;(dp6372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6373&#10;(dp6374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p6375&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6375&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6376&#10;(dp6377&#10;g11&#10;Nsg12&#10;I200&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6378&#10;(dp6379&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6380&#10;(dp6381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6382&#10;(dp6383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6384&#10;(dp6385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6386&#10;(dp6387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p6388&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6388&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6389&#10;(dp6390&#10;g11&#10;Nsg12&#10;I201&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6391&#10;(dp6392&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6393&#10;(dp6394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6395&#10;(dp6396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6397&#10;(dp6398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6399&#10;(dp6400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p6401&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6401&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6402&#10;(dp6403&#10;g11&#10;Nsg12&#10;I202&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6404&#10;(dp6405&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6406&#10;(dp6407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6408&#10;(dp6409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6410&#10;(dp6411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6412&#10;(dp6413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p6414&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6414&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6415&#10;(dp6416&#10;g11&#10;Nsg12&#10;I203&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6417&#10;(dp6418&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6419&#10;(dp6420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6421&#10;(dp6422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6423&#10;(dp6424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6425&#10;(dp6426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p6427&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6427&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6428&#10;(dp6429&#10;g11&#10;Nsg12&#10;I204&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6430&#10;(dp6431&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6432&#10;(dp6433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6434&#10;(dp6435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6436&#10;(dp6437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6438&#10;(dp6439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p6440&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6440&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6441&#10;(dp6442&#10;g11&#10;Nsg12&#10;I205&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6443&#10;(dp6444&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6445&#10;(dp6446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6447&#10;(dp6448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6449&#10;(dp6450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6451&#10;(dp6452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p6453&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6453&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6454&#10;(dp6455&#10;g11&#10;Nsg12&#10;I206&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6456&#10;(dp6457&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6458&#10;(dp6459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6460&#10;(dp6461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6462&#10;(dp6463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6464&#10;(dp6465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p6466&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6466&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6467&#10;(dp6468&#10;g11&#10;Nsg12&#10;I207&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6469&#10;(dp6470&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6471&#10;(dp6472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6473&#10;(dp6474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6475&#10;(dp6476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6477&#10;(dp6478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p6479&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6479&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6480&#10;(dp6481&#10;g11&#10;Nsg12&#10;I208&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6482&#10;(dp6483&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6484&#10;(dp6485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6486&#10;(dp6487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6488&#10;(dp6489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6490&#10;(dp6491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p6492&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6492&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6493&#10;(dp6494&#10;g11&#10;Nsg12&#10;I209&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6495&#10;(dp6496&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6497&#10;(dp6498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6499&#10;(dp6500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6501&#10;(dp6502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6503&#10;(dp6504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p6505&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6505&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6506&#10;(dp6507&#10;g11&#10;Nsg12&#10;I210&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6508&#10;(dp6509&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6510&#10;(dp6511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6512&#10;(dp6513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6514&#10;(dp6515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6516&#10;(dp6517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p6518&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6518&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6519&#10;(dp6520&#10;g11&#10;Nsg12&#10;I211&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6521&#10;(dp6522&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6523&#10;(dp6524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6525&#10;(dp6526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6527&#10;(dp6528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6529&#10;(dp6530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p6531&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6531&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6532&#10;(dp6533&#10;g11&#10;Nsg12&#10;I212&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6534&#10;(dp6535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6536&#10;(dp6537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6538&#10;(dp6539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6540&#10;(dp6541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6542&#10;(dp6543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p6544&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6544&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6545&#10;(dp6546&#10;g11&#10;Nsg12&#10;I213&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6547&#10;(dp6548&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6549&#10;(dp6550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6551&#10;(dp6552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6553&#10;(dp6554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6555&#10;(dp6556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p6557&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6557&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6558&#10;(dp6559&#10;g11&#10;Nsg12&#10;I214&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6560&#10;(dp6561&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6562&#10;(dp6563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6564&#10;(dp6565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6566&#10;(dp6567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6568&#10;(dp6569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p6570&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6570&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6571&#10;(dp6572&#10;g11&#10;Nsg12&#10;I215&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6573&#10;(dp6574&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6575&#10;(dp6576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6577&#10;(dp6578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6579&#10;(dp6580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6581&#10;(dp6582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p6583&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6583&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6584&#10;(dp6585&#10;g11&#10;Nsg12&#10;I216&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6586&#10;(dp6587&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6588&#10;(dp6589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6590&#10;(dp6591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6592&#10;(dp6593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6594&#10;(dp6595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p6596&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6596&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6597&#10;(dp6598&#10;g11&#10;Nsg12&#10;I217&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6599&#10;(dp6600&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6601&#10;(dp6602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6603&#10;(dp6604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6605&#10;(dp6606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6607&#10;(dp6608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p6609&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6609&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6610&#10;(dp6611&#10;g11&#10;Nsg12&#10;I218&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6612&#10;(dp6613&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6614&#10;(dp6615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6616&#10;(dp6617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6618&#10;(dp6619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6620&#10;(dp6621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p6622&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6622&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6623&#10;(dp6624&#10;g11&#10;Nsg12&#10;I219&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6625&#10;(dp6626&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6627&#10;(dp6628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6629&#10;(dp6630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6631&#10;(dp6632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6633&#10;(dp6634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p6635&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6635&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6636&#10;(dp6637&#10;g11&#10;Nsg12&#10;I220&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6638&#10;(dp6639&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6640&#10;(dp6641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6642&#10;(dp6643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6644&#10;(dp6645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6646&#10;(dp6647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p6648&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6648&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6649&#10;(dp6650&#10;g11&#10;Nsg12&#10;I221&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6651&#10;(dp6652&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6653&#10;(dp6654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6655&#10;(dp6656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6657&#10;(dp6658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6659&#10;(dp6660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p6661&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6661&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6662&#10;(dp6663&#10;g11&#10;Nsg12&#10;I222&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6664&#10;(dp6665&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6666&#10;(dp6667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6668&#10;(dp6669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6670&#10;(dp6671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6672&#10;(dp6673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p6674&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6674&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6675&#10;(dp6676&#10;g11&#10;Nsg12&#10;I223&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6677&#10;(dp6678&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6679&#10;(dp6680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6681&#10;(dp6682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6683&#10;(dp6684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6685&#10;(dp6686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p6687&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6687&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6688&#10;(dp6689&#10;g11&#10;Nsg12&#10;I224&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6690&#10;(dp6691&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6692&#10;(dp6693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6694&#10;(dp6695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6696&#10;(dp6697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6698&#10;(dp6699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p6700&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6700&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6701&#10;(dp6702&#10;g11&#10;Nsg12&#10;I225&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6703&#10;(dp6704&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6705&#10;(dp6706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6707&#10;(dp6708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6709&#10;(dp6710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6711&#10;(dp6712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p6713&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6713&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6714&#10;(dp6715&#10;g11&#10;Nsg12&#10;I226&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6716&#10;(dp6717&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6718&#10;(dp6719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6720&#10;(dp6721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6722&#10;(dp6723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6724&#10;(dp6725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p6726&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6726&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6727&#10;(dp6728&#10;g11&#10;Nsg12&#10;I227&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6729&#10;(dp6730&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6731&#10;(dp6732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6733&#10;(dp6734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6735&#10;(dp6736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6737&#10;(dp6738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p6739&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6739&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6740&#10;(dp6741&#10;g11&#10;Nsg12&#10;I228&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6742&#10;(dp6743&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6744&#10;(dp6745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6746&#10;(dp6747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6748&#10;(dp6749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6750&#10;(dp6751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p6752&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6752&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6753&#10;(dp6754&#10;g11&#10;Nsg12&#10;I229&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6755&#10;(dp6756&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6757&#10;(dp6758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6759&#10;(dp6760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6761&#10;(dp6762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6763&#10;(dp6764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p6765&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6765&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6766&#10;(dp6767&#10;g11&#10;Nsg12&#10;I230&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6768&#10;(dp6769&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6770&#10;(dp6771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6772&#10;(dp6773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6774&#10;(dp6775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6776&#10;(dp6777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p6778&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6778&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6779&#10;(dp6780&#10;g11&#10;Nsg12&#10;I231&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6781&#10;(dp6782&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6783&#10;(dp6784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6785&#10;(dp6786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6787&#10;(dp6788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6789&#10;(dp6790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p6791&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6791&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6792&#10;(dp6793&#10;g11&#10;Nsg12&#10;I232&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6794&#10;(dp6795&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6796&#10;(dp6797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6798&#10;(dp6799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6800&#10;(dp6801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6802&#10;(dp6803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p6804&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6804&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6805&#10;(dp6806&#10;g11&#10;Nsg12&#10;I233&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6807&#10;(dp6808&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6809&#10;(dp6810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6811&#10;(dp6812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6813&#10;(dp6814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6815&#10;(dp6816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p6817&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6817&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6818&#10;(dp6819&#10;g11&#10;Nsg12&#10;I234&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6820&#10;(dp6821&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6822&#10;(dp6823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6824&#10;(dp6825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6826&#10;(dp6827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6828&#10;(dp6829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p6830&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6830&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6831&#10;(dp6832&#10;g11&#10;Nsg12&#10;I235&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6833&#10;(dp6834&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6835&#10;(dp6836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6837&#10;(dp6838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6839&#10;(dp6840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6841&#10;(dp6842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p6843&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6843&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6844&#10;(dp6845&#10;g11&#10;Nsg12&#10;I236&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6846&#10;(dp6847&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6848&#10;(dp6849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6850&#10;(dp6851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6852&#10;(dp6853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6854&#10;(dp6855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p6856&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6856&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6857&#10;(dp6858&#10;g11&#10;Nsg12&#10;I237&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6859&#10;(dp6860&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6861&#10;(dp6862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6863&#10;(dp6864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6865&#10;(dp6866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6867&#10;(dp6868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p6869&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6869&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6870&#10;(dp6871&#10;g11&#10;Nsg12&#10;I238&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6872&#10;(dp6873&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6874&#10;(dp6875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6876&#10;(dp6877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6878&#10;(dp6879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6880&#10;(dp6881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p6882&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6882&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6883&#10;(dp6884&#10;g11&#10;Nsg12&#10;I239&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6885&#10;(dp6886&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6887&#10;(dp6888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6889&#10;(dp6890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6891&#10;(dp6892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6893&#10;(dp6894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p6895&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6895&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6896&#10;(dp6897&#10;g11&#10;Nsg12&#10;I240&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6898&#10;(dp6899&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6900&#10;(dp6901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6902&#10;(dp6903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6904&#10;(dp6905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6906&#10;(dp6907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p6908&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6908&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6909&#10;(dp6910&#10;g11&#10;Nsg12&#10;I241&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6911&#10;(dp6912&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6913&#10;(dp6914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6915&#10;(dp6916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6917&#10;(dp6918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6919&#10;(dp6920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p6921&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6921&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6922&#10;(dp6923&#10;g11&#10;Nsg12&#10;I242&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6924&#10;(dp6925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6926&#10;(dp6927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6928&#10;(dp6929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6930&#10;(dp6931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6932&#10;(dp6933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p6934&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6934&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6935&#10;(dp6936&#10;g11&#10;Nsg12&#10;I243&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6937&#10;(dp6938&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6939&#10;(dp6940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6941&#10;(dp6942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6943&#10;(dp6944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6945&#10;(dp6946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p6947&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6947&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6948&#10;(dp6949&#10;g11&#10;Nsg12&#10;I244&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6950&#10;(dp6951&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6952&#10;(dp6953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6954&#10;(dp6955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6956&#10;(dp6957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6958&#10;(dp6959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p6960&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6960&#10;sbatRp6961&#10;(dp6962&#10;g12&#10;I244&#10;sg22&#10;I00&#10;sg11&#10;Nsbs.</svRestConfiguration>
+ </statManagerOptions>
+ <currentUniqueIDForAgent type="int">2</currentUniqueIDForAgent>
+ <_scenarioElementFactory ver="[0, [1, [0, [0]]]]" type="ixScenarioElementFactory">
+ <singletonDict type="dict"/>
+ <referenceCountDict type="dict">
+ <item>
+ <key type="str">qovCoprocessor</key>
+ <value type="int">0</value>
+ </item>
+ <item>
+ <key type="str">Impairment</key>
+ <value type="int">0</value>
+ </item>
+ <item>
+ <key type="str">asrCoprocessor</key>
+ <value type="int">0</value>
+ </item>
+ </referenceCountDict>
+ </_scenarioElementFactory>
+ </item>
+ </testList>
+</root>
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-1B.rxf b/samples/vnf_samples/traffic_profiles/ixload/HTTP-SimulatedUsers_2Ports.rxf
index cc0847398..72bb21cd6 100644
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-1B.rxf
+++ b/samples/vnf_samples/traffic_profiles/ixload/HTTP-SimulatedUsers_2Ports.rxf
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>
<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
<_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;04a56313-c07c-4fae-acc5-e29a816e1311&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c284265e-5fc6-4a6a-ad6e-a8c3f465d00b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
+ <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;628fdbe1-4254-48b1-8765-a4d5bbafd1ff&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;uplink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:0A:00:02:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;10.0.2.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;10.0.2.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;downlink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:0A:00:03:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;10.0.3.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;10.0.3.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3b7f72db-e223-46ac-b71d-75e47f78e682&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;payloadAttrTypes type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
</_smSessionXml>
<_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
<xml type="str"></xml>
@@ -10,11 +10,11 @@
<xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
</_quickTestConfig>
<lastApiUniqueId type="int">15481</lastApiUniqueId>
- <version type="str">8.20.0.273</version>
- <name type="str">HTTP-vFW_IPv4_2Ports-CC-1B.rxf</name>
+ <version type="str">8.30.115.152</version>
+ <name type="str">HTTP-SimulatedUsers_2Ports.rxf</name>
<comment type="str"></comment>
- <path type="str">F:\IXIA-TESTS</path>
- <last type="str">HTTP-vFW_IPv4_2Ports-CC-1B.rxf</last>
+ <path type="str">C:\ixload</path>
+ <last type="str">HTTP-SimulatedUsers_2Ports.rxf</last>
<activeTest type="str">Test1</activeTest>
<chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
<chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
@@ -54,8 +54,8 @@
<item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
<name type="str">Client</name>
<elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
+ <item ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
+ <name type="str">HTTP client@uplink_0</name>
<column type="NoneType">None</column>
<scenarioElementType type="str">netTraffic</scenarioElementType>
<enable type="int">1</enable>
@@ -98,8 +98,8 @@
<inUse type="bool">True</inUse>
<customPortMap type="NoneType">None</customPortMap>
<sourceCommunity ref="0"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
+ <destinationCommunity ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
+ <name type="str">HTTP server@downlink_0</name>
<column type="NoneType">None</column>
<scenarioElementType type="str">netTraffic</scenarioElementType>
<enable type="int">1</enable>
@@ -484,7 +484,7 @@
</traffic>
<network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
<resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
+ <name type="str">downlink_0</name>
<role type="str">Server</role>
<networkType type="str">none</networkType>
<aggregation type="int">0</aggregation>
@@ -498,7 +498,7 @@
<networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
<item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
<_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (152.40.40.20+1)</name>
+ <name type="str">Network Range IP-R2 in downlink_0 (10.0.3.20+1)</name>
<rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
<name type="str">DistGroup1</name>
<ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
@@ -668,9 +668,9 @@
<iterations type="int">1</iterations>
<standbyTime type="int">0</standbyTime>
<offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
+ <sustainTime type="int">83</sustainTime>
+ <iterationTime type="int">83</iterationTime>
+ <totalTime type="int">83</totalTime>
<objectID type="int">1</objectID>
<_apiUniqueId type="int">12955</_apiUniqueId>
<isVisible type="bool">True</isVisible>
@@ -743,6 +743,7 @@
<browserEmulationName type="str">Custom1</browserEmulationName>
<enableSsl type="int">0</enableSsl>
<sslVersion type="int">3</sslVersion>
+ <disableMacValidation type="int">0</disableMacValidation>
<sslReuseMethod type="int">0</sslReuseMethod>
<sequentialSessionReuse type="int">0</sequentialSessionReuse>
<enablesslRecordSize type="int">0</enablesslRecordSize>
@@ -862,12 +863,16 @@
<ipPreference type="int">2</ipPreference>
<tcpCloseOption type="int">0</tcpCloseOption>
<piggybackAck type="int">1</piggybackAck>
+ <tcpFastOpen type="int">0</tcpFastOpen>
<enableLargeHeader type="int">0</enableLargeHeader>
<maxHeaderLen type="int">1024</maxHeaderLen>
<useAllIPs type="int">0</useAllIPs>
<enableDecompressSupport type="int">0</enableDecompressSupport>
<enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
<enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
+ <enableAuth type="int">0</enableAuth>
+ <authProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthProfileList" itemtype="ixAuthProfile"/>
+ <ipMappingList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthIpMapList" itemtype="ixAuthIpMap"/>
<uniqueID type="int">1</uniqueID>
<disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
<methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
@@ -889,7 +894,7 @@
</traffic>
<network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
<resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
+ <name type="str">uplink_0</name>
<role type="str">Client</role>
<networkType type="str">none</networkType>
<aggregation type="int">0</aggregation>
@@ -903,7 +908,7 @@
<networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
<item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
<_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (152.16.100.20+1)</name>
+ <name type="str">Network Range IP-R1 in uplink_0 (10.0.2.20+1)</name>
<rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
<name type="str">DistGroup1</name>
<ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
@@ -1012,16 +1017,16 @@
<enable type="bool">True</enable>
<timeline ver="[2, [1, [1, [0, [0]]]]]" oid="15" type="ixTimeline">
<name type="str">Timeline1</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
+ <iterationTime type="int">83</iterationTime>
+ <totalTime type="int">83</totalTime>
<iterations type="int">1</iterations>
<standbyTime type="int">0</standbyTime>
<offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
+ <sustainTime type="int">60</sustainTime>
<rampUpType type="int">0</rampUpType>
<rampUpValue type="int">30000</rampUpValue>
<rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
+ <rampUpTime type="int">3</rampUpTime>
<rampDownTime type="int">20</rampDownTime>
<rampDownValue type="int">32000</rampDownValue>
<timelineType type="int">0</timelineType>
@@ -1031,15 +1036,15 @@
<role type="str">Client</role>
<activeRole type="str">Client</activeRole>
<objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
+ <objectiveType type="str">simulatedUsers</objectiveType>
+ <objectiveValue type="int">64000</objectiveValue>
+ <userObjectiveType type="str">simulatedUsers</userObjectiveType>
+ <userObjectiveValue type="long">64000</userObjectiveValue>
+ <constraintType type="str">ConnectionRateConstraint</constraintType>
<constraintValue type="int">100</constraintValue>
<timerGranularity type="int">100</timerGranularity>
<enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
+ <secondaryConstraintType type="str">SimulatedUserConstraint</secondaryConstraintType>
<secondaryConstraintValue type="int">100</secondaryConstraintValue>
<secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
<portMapPolicy type="str">portMesh</portMapPolicy>
@@ -1050,7 +1055,7 @@
<playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
<objectID type="int">0</objectID>
<_apiUniqueId type="int">12954</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
+ <_objectiveValue type="int">64000</_objectiveValue>
<timelineScale type="float">1.0</timelineScale>
</item>
</activityParameters>
@@ -1106,20 +1111,20 @@
<iterations type="int">1</iterations>
<standbyTime type="int">0</standbyTime>
<offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
+ <sustainTime type="int">60</sustainTime>
+ <iterationTime type="int">83</iterationTime>
+ <totalTime type="int">83</totalTime>
<portMapPolicy type="str">portPairs</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
+ <objectiveType type="str">simulatedUsers</objectiveType>
+ <objectiveValue type="int">64000</objectiveValue>
+ <rampUpType type="int">0</rampUpType>
<rampUpValue type="int">30000</rampUpValue>
<rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
+ <rampUpTime type="int">3</rampUpTime>
<rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
+ <userObjectiveType type="str">simulatedUsers</userObjectiveType>
+ <userObjectiveValue type="long">64000</userObjectiveValue>
+ <totalUserObjectiveValue type="long">64000</totalUserObjectiveValue>
<objectID type="int">0</objectID>
<_apiUniqueId type="int">12925</_apiUniqueId>
<isVisible type="bool">True</isVisible>
@@ -1258,7 +1263,7 @@
<pollingInterval type="int">2</pollingInterval>
<allowCsvLogging type="bool">False</allowCsvLogging>
<enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;EOXC@8_BL1*U6[TN9P(-!2VA'EF$9# 1'FD+:KRB2&amp;&gt;B&lt;DC.UPS&amp;K_&#10;M^]K.00@)K78_M''\/.]AY[']FLZ'_=I7MHA0' 9W-: 9M0_W'8=!]@6C'2)'&#10;MJ*DU#&lt;W0S%:SQ@F(BMX1IDSYA YW-;AA&gt;(^A1K?:1EA0A@(7:3G&gt;5P(W'.+&amp;&#10;MO&lt;EX/AC/%?V^,YT-'-[LSNW)N/C^,NC;\^[#:&quot;&quot; WN3IP1X/^EEHFK7&gt;D\!9&#10;M\/O.D* ?$&gt;&lt;&lt;E&quot;WT(W17,VLR$-V.PM4*!ZNT?PA]BB0VQVOD' +W ;W&quot;+0Y)&#10;MRC RE#*XWDP)&lt;K',+,'K$A^L&quot;$]&amp;3.O\L$$I!B0VX=/LA]&quot;;DI AE^5LYR1&quot;&#10;MA&lt;0&gt;L&gt;&gt;A0#BBYSD. KCP41\RZ+&quot;0H'/&quot;]#@[^3P:9=87(_&amp;$)A';1&quot;R;R:?(&#10;M9WCC%\&lt;F27WG#=H3W O949Y?+Z(L7'_DW^PUXS33F$/LHRED&amp;2+[NSXBC*9/&#10;MA6LZH.T]Q7&gt;U5\8V;5W?[7;:KJZ%9*6;A@'T;T\CQWU%:ZCB@'\T/AFUS,I[&#10;MVTH&amp;U=.H?;2$?$QRGD[?).T4[I$P40%!B*.%]QGT&lt;/B1A-&amp;F .&quot; W9L=73PZ&#10;M&gt;B6KYV,4L&amp;%(UI$/'&lt;08UTOV[?Z^^F7?O^7_NK=7/Z*0W7Z)%W?\THX?0+/B&#10;MQN]G;#&amp; A/O'$?SSV/SGV(R7!%\0LR@HYG'EL]N3?2&gt;-;,0-A:LD]+A% D1L&#10;MJ8)FW/YPM6*WN&lt;RXJR2*'2Q#!Q$,??P3BB7T %&lt;Y)&lt;3F[Y9#DLE1$^^SCUFG&#10;M.2J*R'+]PI+9X&quot;K'+E_I&amp;UKDQ4PQGC%&lt;(X&amp;*-A&quot;=&gt;KZWW*8'&amp;5J%Y&quot; 88@GK&#10;MC_/Y-+/-H^?VO&gt;4J75B&quot;,&amp;P_V]_LKCH?.'/G6?A1M\.O+_9TVW@QIR%7O=KK&#10;MJ&gt;!!(_NEC%&quot;P+T\0D70 'CT.ZMA[;M6/Y)@5O1)^W&quot;4BOL!QWN*(-&quot;:+O\3.&#10;MNT7T$NL1KUY]_L&lt;J6=G^RFR^=S*\Q(@(INNYUF+A&gt;JJ%W(7: #&lt;+=6$&quot;I()6&#10;MRS&quot;0Z0&amp;S;LDYJ7)P'HJ+*:\3_@J U91.&lt;M&quot;YW6&gt;*B&amp;/W!&gt;BH0+54$Z@MTZHW&#10;M+*M15YN&amp;&quot;9H\F6O5,EMFO64V#+5N-&amp;]NFBWI.F==FA+7-V'(FP2&quot;81J@I0*@&#10;M&amp;JTYJ+&gt;M1AM86M,TK&amp;M@JL9UVS#2;$^L*OR&amp;_ SG#(4OYW: _61),GY&quot;)JNU&#10;MXI/$F^(3=%]Q@-)IZ8^=CZH0&gt;:S?,LH;GKJ&gt;)TYTP03-&amp;\VT&amp;II9-S1@WAP-&#10;MVVUPNEGI52[.@]G[,6*[D'Q/MVG.NM;,N JK2V=EE N.9LA'D,JQV?L1KS&gt;4&#10;M:PT8RJ![ZBQ'N^ L7&gt;N]]C/?S%8$KA6Q!5#EU_UU\[=GFU=CSW&amp;49Y&amp;U6HQ2&#10;MO5?8^QG:\$T&amp;D=RPZEI+C!RT$B\EE/(E^_G)&lt;:$O1P.,1'&quot;%_G-#9YN#/RWX&#10;M5BW,3GI+12HKDS,92N/W' &quot;Y@P)17C/0R4:&lt;9!4&quot;Z86^S_&lt;L4&lt;9)12,&amp;^0?P&#10;M8IF=8I7&amp;(P1)@#QQ&gt; K&gt;4I1W&gt;0&lt;%O-+/T ]WLB&quot;AI6Y.X4HO?.\33%D(&quot;J)&lt;&#10;MVSDW1?R2HZ3TO^2K2*EVQ^ORT U].^&quot;*6T(7E7LL954ZG8410S,8K,J]%&gt; R&#10;M-^N-V#WFF5R*4U^&amp;5^GRHMYB77J'0*B6W[=*3K\3RA=1Z)V1LJ574:T)=EQ9&#10;M9[&gt;T_W!!S IO&lt;4$)_(-\!Z)CA(/OR#L6YD&lt;;/5'&quot;L45+&lt;7&amp;1O&gt;]((2L!/R7N&#10;M:M);+7&gt;#KIWB\5VFIH3$0T3&gt;=:#+A4%':(O\]-*I2PM^HPW6F\O764Y(Z@-Y&#10;M9\G=9P74&quot;X,E7D4$YF^08M8I!UT.RN^1O&amp;\AB7.,#T]AGQRC4-9!Y\&gt;KAZA+&#10;ML%1( N;*7&gt;Z5'VD^/\_2,DM\[210/JZ'MF\8Y!AZ/O/_JPUI+L8I'ME/'/?_&#10;% D1BE1\ &#10; &#10;end&#10;</svConfiguration>
+ <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;MSXC84_2L&gt;.LVTT_HAFU&lt;(R4X&quot;9,,L&quot;0QFT\XTG1UA&quot;Z)=8WMEF4&lt;[&#10;M_&gt;^]DHTQQB:9]L,NLLZY5U?2T=55NA^V*T]9$Q;1P+^N(&lt;VH?;CIVASS9THV&#10;MA!V@IM8T-$.SC&amp;8-&quot;&quot;02O2,:&lt;&gt;43V5W7&lt;,CIEF(M6FNAL(@X\1VBY7B_,1P&quot;&#10;M!,:]\=-L\#13])ON9#JPH7D[&amp;XZ?BM]?!OWA[/9N-!! ;_QX-WP:]+.AHZSU&#10;MG@!.!K_IWC/R/0;.3EEC+R;7-;,F!XK6HV&quot;YI/YRWW^/O8A(;$97Q-[YSAUY&#10;MQ6L:L#W#R-&quot;(XU4X8&lt;2A,K(4MR0^6#((1BSK;!&gt;2/88D-H9E]@+L3EC B&lt;-S&#10;MMC,6DT)@#]1UB2\&lt;1:&lt;Q#GP\]T@?&lt;VSS@)%3PN2P.ODXZF769T&gt;&quot;@,8Q#V.&gt;&#10;MK&gt;1C['$:&gt;L6Y25+??H/VB+=&quot;=A'$UXLC'JP^PIZ]9ISF?LQ[ZI$)YADB^V\]&#10;MPGBT_U5 TW[4V4;TNO;*&gt;=C1]&lt;UFHVTL+6!+W30,I/_^.+*=5[+&quot;*O5ATV Q&#10;M:IF5^[:5'%3?C]HG&quot;PQSDNMT_&quot;5IQW&quot;/!:D*&amp;&quot;&amp; %KZGV*7!1Q;$80&amp;@/K\Q&#10;MN[KXZ&gt;J5K)Y'B&lt;_O [:*/6P3SD$OV=[]??'#MG\%_]U&gt;77R/ W[UG!SNY*.3&#10;M_&quot;&quot;MD31^/6&amp;+&quot;:3&lt;/P[@GX?F/X=F&lt;B3@0$QCOQC'A&lt;&gt;OCO+.?F0C:2B@DL %&#10;MBQ2(^4)%S:3]X6+)KW*1@:MTE*&amp;_&quot;&amp;S&quot;*/;H7U@&lt;H3N\S&quot;DA,7^W'-)(#IIX&#10;MGWW&quot;.HY14424JR\\70U0.77@I(=1D9&lt;PQ7R&gt;\(H(5+21Z-3SO&gt;4V/&lt;S),F [&#10;MP1!'6'^8S2:9;1X]M&gt;\MEON#)0B]S@O=BH3T(GRH-A5RXL3]',&amp;.?3$G &gt;A&gt;&#10;M8]N%]%ZP+0^.L'WP;G28T*'WU*H?R_DJ&gt;B7\L$D%?(9CO\4188SG7T7679/H&#10;M'.N!+E\]^,&lt;K65ENY4/(FYPN*&amp;&amp;&quot;Z;A.8SYW7+5!G+E:1Y=S=6XBHJ)6RS&quot;(&#10;MZ2+3:L@UJ7)P.A0(*:\1^$2HT91.&lt;M&quot;IG=A!&gt;]@7H*TBM:&amp;:2#6-AHD0L@Q3&#10;M168+VH;10G#BZO7Z);JT6FK;:C3;=&gt;D\9U\:%*B;@5#&amp;OF&quot;8!FJK&quot; 9HS9#9&#10;M:1B=1ETS+BUPAWXQC(YA[.,]LJKP&amp;\ -#@P%#G/'IUYZ(#G&lt;C^E9K=B4)&quot;4^&#10;M8N&gt;5^F2_,/9P]#P9/0_M:=\V$CV6\MYP=^NZXE(73&amp;1HIM728&quot;$U9%D'NP5I&#10;M&amp;YV.5&lt;?U3K-M&amp;1T\=QL=TVK_B,SC-*97&gt;3Z-8;A](GP3L&amp;_[! ZL-I1F&amp;FA &#10;M0PU3NBLCG7$U)1[!D9ST&lt;#N&quot;HZ^T-60H@]MC9SG:&amp;6&gt;Y/ *);LGP2A$I(E)^&#10;MVK:;/[\,H5)[249Y$7&amp;K@UOU&lt;^A&quot;ABF$7IU3AMLI&quot;2$-$9:;GJ6U1(W::*=&gt;&#10;M2BCE1_OSH^U@CR3[F,JRT']J:*]S\*&lt;YI'-A=M1;*F59O9R(51J_YY+(728D&#10;M@KHB&amp;H?BMJN02B_P/,AMHM23]P+A&amp;#;&quot;301WC%4:CPAF/G'%!2MX&quot;U$&quot;YAT4&#10;M\$H_]UZPD45+5.KF&amp;*[T CE2,&amp;6Q*(@R ^3&lt;%/%SCM+GP3E?14JU.ZC= R?P&#10;MACXH;H$=4NZQE%7I=!K$G$RQORSW5H#+W*Q&quot;D4=FF5R*2U^&amp;5^GRK-X27;H[&#10;M7Z@6WF0EM^01Y5D4@R&gt;D[.A55'2&quot;G53?V4ON/SPBL^)&lt;/&amp;)\;R&gt;_D&gt;@84?\;&#10;M&lt;0_%^\%&amp;3Y5P:$6EN'CLWG2ED!4?KI'KFO16R[VR:\=X\MZI*0%S&quot;9/O(&gt;R &#10;M,*(161-O_S#5I06\&gt;OU5&gt;/[)&quot;X2TCI#OFMR;5T&quot;]P%_09&lt;QP_I4I5CT&quot;T %0&#10;M[D?ZO&lt;8LB3&amp;Y8H5]&gt;MEB62^=7L(NB1Q&amp;I4)2,%&lt;2@U&gt;XW#RXV?;EF-CM=*#\&#10;&lt;N&quot;Y9OV&amp;08^CYR/^O-J2YF*?XR?X,&lt;O,O!I2A( &#10; &#10;end&#10;</svConfiguration>
<svRestConfiguration type="str">(dp1&#10;S'HTTP Server Per URL'&#10;p2&#10;ccopy_reg&#10;_reconstructor&#10;p3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStatsList&#10;p4&#10;c__builtin__&#10;list&#10;p5&#10;(lp6&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStat&#10;p7&#10;c__builtin__&#10;object&#10;p8&#10;NtRp9&#10;(dp10&#10;S'proxyPropertyList'&#10;p11&#10;NsS'_objectID'&#10;p12&#10;I0&#10;sS'enabled'&#10;p13&#10;I01&#10;sS'filterList'&#10;p14&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixRestFilters&#10;p15&#10;g8&#10;NtRp16&#10;(dp17&#10;S'cardFilters'&#10;p18&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixCardFilterList&#10;p19&#10;g5&#10;(ltRp20&#10;(dp21&#10;g12&#10;I-1&#10;sS'_resourceLocked'&#10;p22&#10;I00&#10;sg11&#10;NsbsS'activityFilters'&#10;p23&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixActivityFilterList&#10;p24&#10;g5&#10;(ltRp25&#10;(dp26&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sS'chassisFilters'&#10;p27&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixChassisFilterList&#10;p28&#10;g5&#10;(ltRp29&#10;(dp30&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sS'portFilters'&#10;p31&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixPortFilterList&#10;p32&#10;g5&#10;(ltRp33&#10;(dp34&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;NsbsbsS'caption'&#10;p35&#10;S'HTTP Requests Received'&#10;p36&#10;sg22&#10;I00&#10;sS'aggregationType'&#10;p37&#10;S'kSum'&#10;p38&#10;sS'statName'&#10;p39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp40&#10;(dp41&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp42&#10;(dp43&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp44&#10;(dp45&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp46&#10;(dp47&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp48&#10;(dp49&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp50&#10;(dp51&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp53&#10;(dp54&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp55&#10;(dp56&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp57&#10;(dp58&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp59&#10;(dp60&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp61&#10;(dp62&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp63&#10;(dp64&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp66&#10;(dp67&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp68&#10;(dp69&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp70&#10;(dp71&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp72&#10;(dp73&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp74&#10;(dp75&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp76&#10;(dp77&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (50x)'&#10;p78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp79&#10;(dp80&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp81&#10;(dp82&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp83&#10;(dp84&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp85&#10;(dp86&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp87&#10;(dp88&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp89&#10;(dp90&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write Error)'&#10;p91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp92&#10;(dp93&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp94&#10;(dp95&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp96&#10;(dp97&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp98&#10;(dp99&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp100&#10;(dp101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp102&#10;(dp103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent'&#10;p104&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g104&#10;sbag3&#10;(g7&#10;g8&#10;NtRp105&#10;(dp106&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp107&#10;(dp108&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp109&#10;(dp110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp111&#10;(dp112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp113&#10;(dp114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp115&#10;(dp116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (1xx)'&#10;p117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp118&#10;(dp119&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp120&#10;(dp121&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp122&#10;(dp123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp124&#10;(dp125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp126&#10;(dp127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp128&#10;(dp129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (2xx)'&#10;p130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp131&#10;(dp132&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp133&#10;(dp134&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp135&#10;(dp136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp137&#10;(dp138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp139&#10;(dp140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp141&#10;(dp142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (3xx)'&#10;p143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp144&#10;(dp145&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp146&#10;(dp147&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp148&#10;(dp149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp150&#10;(dp151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp152&#10;(dp153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp154&#10;(dp155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (4xx)'&#10;p156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp157&#10;(dp158&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp159&#10;(dp160&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp161&#10;(dp162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp163&#10;(dp164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp165&#10;(dp166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp167&#10;(dp168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (5xx)'&#10;p169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp170&#10;(dp171&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp172&#10;(dp173&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp174&#10;(dp175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp176&#10;(dp177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp178&#10;(dp179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp180&#10;(dp181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (Other)'&#10;p182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp183&#10;(dp184&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp185&#10;(dp186&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp187&#10;(dp188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp189&#10;(dp190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp191&#10;(dp192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp193&#10;(dp194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Write Error)'&#10;p195&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g195&#10;sbag3&#10;(g7&#10;g8&#10;NtRp196&#10;(dp197&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp198&#10;(dp199&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp200&#10;(dp201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp202&#10;(dp203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp204&#10;(dp205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp206&#10;(dp207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Aborted)'&#10;p208&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g208&#10;sbag3&#10;(g7&#10;g8&#10;NtRp209&#10;(dp210&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp211&#10;(dp212&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp213&#10;(dp214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp215&#10;(dp216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp217&#10;(dp218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp219&#10;(dp220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Other)'&#10;p221&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g221&#10;sbag3&#10;(g7&#10;g8&#10;NtRp222&#10;(dp223&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp224&#10;(dp225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp226&#10;(dp227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp228&#10;(dp229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp230&#10;(dp231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp232&#10;(dp233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Sent'&#10;p234&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g234&#10;sbag3&#10;(g7&#10;g8&#10;NtRp235&#10;(dp236&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp237&#10;(dp238&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp239&#10;(dp240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp241&#10;(dp242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp243&#10;(dp244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp245&#10;(dp246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp248&#10;(dp249&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp250&#10;(dp251&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp252&#10;(dp253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp254&#10;(dp255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp256&#10;(dp257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp258&#10;(dp259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p260&#10;sg22&#10;I00&#10;sg37&#10;S'kWeightedAverage'&#10;p261&#10;sg39&#10;g260&#10;sbag3&#10;(g7&#10;g8&#10;NtRp262&#10;(dp263&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp264&#10;(dp265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp266&#10;(dp267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp268&#10;(dp269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp270&#10;(dp271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp272&#10;(dp273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p274&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp275&#10;(dp276&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp277&#10;(dp278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp279&#10;(dp280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp281&#10;(dp282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp283&#10;(dp284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp285&#10;(dp286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Received'&#10;p287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp288&#10;(dp289&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp290&#10;(dp291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp292&#10;(dp293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp294&#10;(dp295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp296&#10;(dp297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp298&#10;(dp299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp301&#10;(dp302&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp303&#10;(dp304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp305&#10;(dp306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp307&#10;(dp308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp309&#10;(dp310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp311&#10;(dp312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Received Chunk Size'&#10;p313&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp314&#10;(dp315&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp316&#10;(dp317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp318&#10;(dp319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp320&#10;(dp321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp322&#10;(dp323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp324&#10;(dp325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p326&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp327&#10;(dp328&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp329&#10;(dp330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp331&#10;(dp332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp333&#10;(dp334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp335&#10;(dp336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp337&#10;(dp338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Received'&#10;p339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp340&#10;(dp341&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp342&#10;(dp343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp344&#10;(dp345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp346&#10;(dp347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp348&#10;(dp349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp350&#10;(dp351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Successful'&#10;p352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp353&#10;(dp354&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp355&#10;(dp356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp357&#10;(dp358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp359&#10;(dp360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp361&#10;(dp362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp363&#10;(dp364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Failed'&#10;p365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp366&#10;(dp367&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp368&#10;(dp369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp370&#10;(dp371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp372&#10;(dp373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp374&#10;(dp375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp376&#10;(dp377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Request Received'&#10;p378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp379&#10;(dp380&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp381&#10;(dp382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp383&#10;(dp384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp385&#10;(dp386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp387&#10;(dp388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp389&#10;(dp390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Response Sent'&#10;p391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbatRp392&#10;(dp393&#10;g12&#10;I27&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Server'&#10;p394&#10;g3&#10;(g4&#10;g5&#10;(lp395&#10;g3&#10;(g7&#10;g8&#10;NtRp396&#10;(dp397&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp398&#10;(dp399&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp400&#10;(dp401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp402&#10;(dp403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp404&#10;(dp405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp406&#10;(dp407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g36&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp408&#10;(dp409&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp410&#10;(dp411&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp412&#10;(dp413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp414&#10;(dp415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp416&#10;(dp417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp418&#10;(dp419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp420&#10;(dp421&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp422&#10;(dp423&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp424&#10;(dp425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp426&#10;(dp427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp428&#10;(dp429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp430&#10;(dp431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p432&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g432&#10;sbag3&#10;(g7&#10;g8&#10;NtRp433&#10;(dp434&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp435&#10;(dp436&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp437&#10;(dp438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp439&#10;(dp440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp441&#10;(dp442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp443&#10;(dp444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp445&#10;(dp446&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp447&#10;(dp448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp449&#10;(dp450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp451&#10;(dp452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp453&#10;(dp454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp455&#10;(dp456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp457&#10;(dp458&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp459&#10;(dp460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp461&#10;(dp462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp463&#10;(dp464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp465&#10;(dp466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp467&#10;(dp468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp469&#10;(dp470&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp471&#10;(dp472&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp473&#10;(dp474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp475&#10;(dp476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp477&#10;(dp478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp479&#10;(dp480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p481&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g481&#10;sbag3&#10;(g7&#10;g8&#10;NtRp482&#10;(dp483&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp484&#10;(dp485&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp486&#10;(dp487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp488&#10;(dp489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp490&#10;(dp491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp492&#10;(dp493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p494&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g494&#10;sbag3&#10;(g7&#10;g8&#10;NtRp495&#10;(dp496&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp497&#10;(dp498&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp499&#10;(dp500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp501&#10;(dp502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp503&#10;(dp504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp505&#10;(dp506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p507&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g507&#10;sbag3&#10;(g7&#10;g8&#10;NtRp508&#10;(dp509&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp510&#10;(dp511&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp512&#10;(dp513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp514&#10;(dp515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp516&#10;(dp517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp518&#10;(dp519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp520&#10;(dp521&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp522&#10;(dp523&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp524&#10;(dp525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp526&#10;(dp527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp528&#10;(dp529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp530&#10;(dp531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp532&#10;(dp533&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp534&#10;(dp535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp536&#10;(dp537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp538&#10;(dp539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp540&#10;(dp541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp542&#10;(dp543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp544&#10;(dp545&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp546&#10;(dp547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp548&#10;(dp549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp550&#10;(dp551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp552&#10;(dp553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp554&#10;(dp555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp556&#10;(dp557&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp558&#10;(dp559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp560&#10;(dp561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp562&#10;(dp563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp564&#10;(dp565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp566&#10;(dp567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp568&#10;(dp569&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp570&#10;(dp571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp572&#10;(dp573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp574&#10;(dp575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp576&#10;(dp577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp578&#10;(dp579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp580&#10;(dp581&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp582&#10;(dp583&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp584&#10;(dp585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp586&#10;(dp587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp588&#10;(dp589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp590&#10;(dp591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p592&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g592&#10;sbag3&#10;(g7&#10;g8&#10;NtRp593&#10;(dp594&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp595&#10;(dp596&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp597&#10;(dp598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp599&#10;(dp600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp601&#10;(dp602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp603&#10;(dp604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p605&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g605&#10;sbag3&#10;(g7&#10;g8&#10;NtRp606&#10;(dp607&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp608&#10;(dp609&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp610&#10;(dp611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp612&#10;(dp613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp614&#10;(dp615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp616&#10;(dp617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p618&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g618&#10;sbag3&#10;(g7&#10;g8&#10;NtRp619&#10;(dp620&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp621&#10;(dp622&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp623&#10;(dp624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp625&#10;(dp626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp627&#10;(dp628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp629&#10;(dp630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p631&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g631&#10;sbag3&#10;(g7&#10;g8&#10;NtRp632&#10;(dp633&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp634&#10;(dp635&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp636&#10;(dp637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp638&#10;(dp639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp640&#10;(dp641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp642&#10;(dp643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p644&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g644&#10;sbag3&#10;(g7&#10;g8&#10;NtRp645&#10;(dp646&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp647&#10;(dp648&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp649&#10;(dp650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp651&#10;(dp652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp653&#10;(dp654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp655&#10;(dp656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p657&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g657&#10;sbag3&#10;(g7&#10;g8&#10;NtRp658&#10;(dp659&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp660&#10;(dp661&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp662&#10;(dp663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp664&#10;(dp665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp666&#10;(dp667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp668&#10;(dp669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Matching ServerID'&#10;p670&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g670&#10;sbag3&#10;(g7&#10;g8&#10;NtRp671&#10;(dp672&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp673&#10;(dp674&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp675&#10;(dp676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp677&#10;(dp678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp679&#10;(dp680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp681&#10;(dp682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Non-matching ServerID'&#10;p683&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g683&#10;sbag3&#10;(g7&#10;g8&#10;NtRp684&#10;(dp685&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp686&#10;(dp687&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp688&#10;(dp689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp690&#10;(dp691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp692&#10;(dp693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp694&#10;(dp695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Encoded Responses Sent'&#10;p696&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g696&#10;sbag3&#10;(g7&#10;g8&#10;NtRp697&#10;(dp698&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp699&#10;(dp700&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp701&#10;(dp702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp703&#10;(dp704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp705&#10;(dp706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp707&#10;(dp708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp709&#10;(dp710&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp711&#10;(dp712&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp713&#10;(dp714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp715&#10;(dp716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp717&#10;(dp718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp719&#10;(dp720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Transfer-Encoded Requests Received'&#10;p721&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g721&#10;sbag3&#10;(g7&#10;g8&#10;NtRp722&#10;(dp723&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp724&#10;(dp725&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp726&#10;(dp727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp728&#10;(dp729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp730&#10;(dp731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp732&#10;(dp733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp734&#10;(dp735&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp736&#10;(dp737&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp738&#10;(dp739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp740&#10;(dp741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp742&#10;(dp743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp744&#10;(dp745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp746&#10;(dp747&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp748&#10;(dp749&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp750&#10;(dp751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp752&#10;(dp753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp754&#10;(dp755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp756&#10;(dp757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp758&#10;(dp759&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp760&#10;(dp761&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp762&#10;(dp763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp764&#10;(dp765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp766&#10;(dp767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp768&#10;(dp769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp770&#10;(dp771&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp772&#10;(dp773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp774&#10;(dp775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp776&#10;(dp777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp778&#10;(dp779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp780&#10;(dp781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp782&#10;(dp783&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp784&#10;(dp785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp786&#10;(dp787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp788&#10;(dp789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp790&#10;(dp791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp792&#10;(dp793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp794&#10;(dp795&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp796&#10;(dp797&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp798&#10;(dp799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp800&#10;(dp801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp802&#10;(dp803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp804&#10;(dp805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Sent'&#10;p806&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g806&#10;sbag3&#10;(g7&#10;g8&#10;NtRp807&#10;(dp808&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp809&#10;(dp810&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp811&#10;(dp812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp813&#10;(dp814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp815&#10;(dp816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp817&#10;(dp818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Sent'&#10;p819&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g819&#10;sbag3&#10;(g7&#10;g8&#10;NtRp820&#10;(dp821&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp822&#10;(dp823&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp824&#10;(dp825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp826&#10;(dp827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp828&#10;(dp829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp830&#10;(dp831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Sent'&#10;p832&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g832&#10;sbag3&#10;(g7&#10;g8&#10;NtRp833&#10;(dp834&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp835&#10;(dp836&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp837&#10;(dp838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp839&#10;(dp840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp841&#10;(dp842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp843&#10;(dp844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Sent'&#10;p845&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g845&#10;sbag3&#10;(g7&#10;g8&#10;NtRp846&#10;(dp847&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp848&#10;(dp849&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp850&#10;(dp851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp852&#10;(dp853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp854&#10;(dp855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp856&#10;(dp857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Sent'&#10;p858&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g858&#10;sbag3&#10;(g7&#10;g8&#10;NtRp859&#10;(dp860&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp861&#10;(dp862&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp863&#10;(dp864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp865&#10;(dp866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp867&#10;(dp868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp869&#10;(dp870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Sent'&#10;p871&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g871&#10;sbag3&#10;(g7&#10;g8&#10;NtRp872&#10;(dp873&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp874&#10;(dp875&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp876&#10;(dp877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp878&#10;(dp879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp880&#10;(dp881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp882&#10;(dp883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Sent'&#10;p884&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g884&#10;sbag3&#10;(g7&#10;g8&#10;NtRp885&#10;(dp886&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp887&#10;(dp888&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp889&#10;(dp890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp891&#10;(dp892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp893&#10;(dp894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp895&#10;(dp896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Sent'&#10;p897&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g897&#10;sbag3&#10;(g7&#10;g8&#10;NtRp898&#10;(dp899&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp900&#10;(dp901&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp902&#10;(dp903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp904&#10;(dp905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp906&#10;(dp907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp908&#10;(dp909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Sent'&#10;p910&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g910&#10;sbag3&#10;(g7&#10;g8&#10;NtRp911&#10;(dp912&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp913&#10;(dp914&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp915&#10;(dp916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp917&#10;(dp918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp919&#10;(dp920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp921&#10;(dp922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Sent'&#10;p923&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g923&#10;sbag3&#10;(g7&#10;g8&#10;NtRp924&#10;(dp925&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp926&#10;(dp927&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp928&#10;(dp929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp930&#10;(dp931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp932&#10;(dp933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp934&#10;(dp935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Received'&#10;p936&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g936&#10;sbag3&#10;(g7&#10;g8&#10;NtRp937&#10;(dp938&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp939&#10;(dp940&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp941&#10;(dp942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp943&#10;(dp944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp945&#10;(dp946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp947&#10;(dp948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Received'&#10;p949&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g949&#10;sbag3&#10;(g7&#10;g8&#10;NtRp950&#10;(dp951&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp952&#10;(dp953&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp954&#10;(dp955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp956&#10;(dp957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp958&#10;(dp959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp960&#10;(dp961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Received'&#10;p962&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g962&#10;sbag3&#10;(g7&#10;g8&#10;NtRp963&#10;(dp964&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp965&#10;(dp966&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp967&#10;(dp968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp969&#10;(dp970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp971&#10;(dp972&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp973&#10;(dp974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Received'&#10;p975&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g975&#10;sbag3&#10;(g7&#10;g8&#10;NtRp976&#10;(dp977&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp978&#10;(dp979&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp980&#10;(dp981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp982&#10;(dp983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp984&#10;(dp985&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp986&#10;(dp987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Received'&#10;p988&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g988&#10;sbag3&#10;(g7&#10;g8&#10;NtRp989&#10;(dp990&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp991&#10;(dp992&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp993&#10;(dp994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp995&#10;(dp996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp997&#10;(dp998&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp999&#10;(dp1000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Received'&#10;p1001&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1001&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1002&#10;(dp1003&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1004&#10;(dp1005&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1006&#10;(dp1007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1008&#10;(dp1009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1010&#10;(dp1011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1012&#10;(dp1013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Received'&#10;p1014&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1014&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1015&#10;(dp1016&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1017&#10;(dp1018&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1019&#10;(dp1020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1021&#10;(dp1022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1023&#10;(dp1024&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1025&#10;(dp1026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Received'&#10;p1027&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1027&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1028&#10;(dp1029&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1030&#10;(dp1031&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1032&#10;(dp1033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1034&#10;(dp1035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1036&#10;(dp1037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1038&#10;(dp1039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Received'&#10;p1040&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1040&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1041&#10;(dp1042&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1043&#10;(dp1044&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1045&#10;(dp1046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1047&#10;(dp1048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1049&#10;(dp1050&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1051&#10;(dp1052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Received'&#10;p1053&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1053&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1054&#10;(dp1055&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1056&#10;(dp1057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1058&#10;(dp1059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1060&#10;(dp1061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1062&#10;(dp1063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1064&#10;(dp1065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Client'&#10;p1066&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1066&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1067&#10;(dp1068&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1069&#10;(dp1070&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1071&#10;(dp1072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1073&#10;(dp1074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1075&#10;(dp1076&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1077&#10;(dp1078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Server'&#10;p1079&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1079&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1080&#10;(dp1081&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1082&#10;(dp1083&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1084&#10;(dp1085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1086&#10;(dp1087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1088&#10;(dp1089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1090&#10;(dp1091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Client to Server'&#10;p1092&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1092&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1093&#10;(dp1094&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1095&#10;(dp1096&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1097&#10;(dp1098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1099&#10;(dp1100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1101&#10;(dp1102&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1103&#10;(dp1104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Server to Client'&#10;p1105&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1105&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1106&#10;(dp1107&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1108&#10;(dp1109&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1110&#10;(dp1111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1112&#10;(dp1113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1114&#10;(dp1115&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1116&#10;(dp1117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Client to Server'&#10;p1118&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1118&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1119&#10;(dp1120&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1121&#10;(dp1122&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1123&#10;(dp1124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1125&#10;(dp1126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1127&#10;(dp1128&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1129&#10;(dp1130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Server to Client'&#10;p1131&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1131&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1132&#10;(dp1133&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1134&#10;(dp1135&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1136&#10;(dp1137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1138&#10;(dp1139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1140&#10;(dp1141&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1142&#10;(dp1143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Succeeded'&#10;p1144&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1144&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1145&#10;(dp1146&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1147&#10;(dp1148&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1149&#10;(dp1150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1151&#10;(dp1152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1153&#10;(dp1154&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1155&#10;(dp1156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Failed'&#10;p1157&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1157&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1158&#10;(dp1159&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1160&#10;(dp1161&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1162&#10;(dp1163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1164&#10;(dp1165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1166&#10;(dp1167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1168&#10;(dp1169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Protocol Error'&#10;p1170&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1170&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1171&#10;(dp1172&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1173&#10;(dp1174&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1175&#10;(dp1176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1177&#10;(dp1178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1179&#10;(dp1180&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1181&#10;(dp1182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Internal Error'&#10;p1183&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1183&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1184&#10;(dp1185&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1186&#10;(dp1187&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1188&#10;(dp1189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1190&#10;(dp1191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1192&#10;(dp1193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1194&#10;(dp1195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Flow Control Error'&#10;p1196&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1196&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1197&#10;(dp1198&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1199&#10;(dp1200&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1201&#10;(dp1202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1203&#10;(dp1204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1205&#10;(dp1206&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1207&#10;(dp1208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Settings Timeout Error'&#10;p1209&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1209&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1210&#10;(dp1211&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1212&#10;(dp1213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1214&#10;(dp1215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1216&#10;(dp1217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1218&#10;(dp1219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1220&#10;(dp1221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Closed Error'&#10;p1222&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1222&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1223&#10;(dp1224&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1225&#10;(dp1226&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1227&#10;(dp1228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1229&#10;(dp1230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1231&#10;(dp1232&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1233&#10;(dp1234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Frame Size Error'&#10;p1235&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1235&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1236&#10;(dp1237&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1238&#10;(dp1239&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1240&#10;(dp1241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1242&#10;(dp1243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1244&#10;(dp1245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1246&#10;(dp1247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Refused Stream Error'&#10;p1248&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1248&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1249&#10;(dp1250&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1251&#10;(dp1252&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1253&#10;(dp1254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1255&#10;(dp1256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1257&#10;(dp1258&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1259&#10;(dp1260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Cancelled Error'&#10;p1261&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1261&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1262&#10;(dp1263&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1264&#10;(dp1265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1266&#10;(dp1267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1268&#10;(dp1269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1270&#10;(dp1271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1272&#10;(dp1273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Compression Error'&#10;p1274&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1275&#10;(dp1276&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1277&#10;(dp1278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1279&#10;(dp1280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1281&#10;(dp1282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1283&#10;(dp1284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1285&#10;(dp1286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connect Error'&#10;p1287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1288&#10;(dp1289&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1290&#10;(dp1291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1292&#10;(dp1293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1294&#10;(dp1295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1296&#10;(dp1297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1298&#10;(dp1299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Enhance Calm Error'&#10;p1300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1301&#10;(dp1302&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1303&#10;(dp1304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1305&#10;(dp1306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1307&#10;(dp1308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1309&#10;(dp1310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1311&#10;(dp1312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Inadequate Security Error'&#10;p1313&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1314&#10;(dp1315&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1316&#10;(dp1317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1318&#10;(dp1319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1320&#10;(dp1321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1322&#10;(dp1323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1324&#10;(dp1325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HTTP1.1 Required Error'&#10;p1326&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1327&#10;(dp1328&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1329&#10;(dp1330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1331&#10;(dp1332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1333&#10;(dp1334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1335&#10;(dp1336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1337&#10;(dp1338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p1339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1340&#10;(dp1341&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1342&#10;(dp1343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1344&#10;(dp1345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1346&#10;(dp1347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1348&#10;(dp1349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1350&#10;(dp1351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p1352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1353&#10;(dp1354&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1355&#10;(dp1356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1357&#10;(dp1358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1359&#10;(dp1360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1361&#10;(dp1362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1363&#10;(dp1364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p1365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1366&#10;(dp1367&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1368&#10;(dp1369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1370&#10;(dp1371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1372&#10;(dp1373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1374&#10;(dp1375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1376&#10;(dp1377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p1378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1379&#10;(dp1380&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1381&#10;(dp1382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1383&#10;(dp1384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1385&#10;(dp1386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1387&#10;(dp1388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1389&#10;(dp1390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p1391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1392&#10;(dp1393&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1394&#10;(dp1395&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1396&#10;(dp1397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1398&#10;(dp1399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1400&#10;(dp1401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1402&#10;(dp1403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p1404&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1404&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1405&#10;(dp1406&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1407&#10;(dp1408&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1409&#10;(dp1410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1411&#10;(dp1412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1413&#10;(dp1414&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1415&#10;(dp1416&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p1417&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1417&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1418&#10;(dp1419&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1420&#10;(dp1421&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1422&#10;(dp1423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1424&#10;(dp1425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1426&#10;(dp1427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1428&#10;(dp1429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p1430&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1430&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1431&#10;(dp1432&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1433&#10;(dp1434&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1435&#10;(dp1436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1437&#10;(dp1438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1439&#10;(dp1440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1441&#10;(dp1442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p1443&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1443&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1444&#10;(dp1445&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1446&#10;(dp1447&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1448&#10;(dp1449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1450&#10;(dp1451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1452&#10;(dp1453&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1454&#10;(dp1455&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p1456&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1456&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1457&#10;(dp1458&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1459&#10;(dp1460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1461&#10;(dp1462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1463&#10;(dp1464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1465&#10;(dp1466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1467&#10;(dp1468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p1469&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1469&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1470&#10;(dp1471&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1472&#10;(dp1473&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1474&#10;(dp1475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1476&#10;(dp1477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1478&#10;(dp1479&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1480&#10;(dp1481&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p1482&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1482&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1483&#10;(dp1484&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1485&#10;(dp1486&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1487&#10;(dp1488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1489&#10;(dp1490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1491&#10;(dp1492&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1493&#10;(dp1494&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p1495&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1495&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1496&#10;(dp1497&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1498&#10;(dp1499&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1500&#10;(dp1501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1502&#10;(dp1503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1504&#10;(dp1505&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1506&#10;(dp1507&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p1508&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1508&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1509&#10;(dp1510&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1511&#10;(dp1512&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1513&#10;(dp1514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1515&#10;(dp1516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1517&#10;(dp1518&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1519&#10;(dp1520&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p1521&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1521&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1522&#10;(dp1523&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1524&#10;(dp1525&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1526&#10;(dp1527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1528&#10;(dp1529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1530&#10;(dp1531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1532&#10;(dp1533&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p1534&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1534&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1535&#10;(dp1536&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1537&#10;(dp1538&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1539&#10;(dp1540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1541&#10;(dp1542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1543&#10;(dp1544&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1545&#10;(dp1546&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p1547&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1547&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1548&#10;(dp1549&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1550&#10;(dp1551&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1552&#10;(dp1553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1554&#10;(dp1555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1556&#10;(dp1557&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1558&#10;(dp1559&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p1560&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1560&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1561&#10;(dp1562&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1563&#10;(dp1564&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1565&#10;(dp1566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1567&#10;(dp1568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1569&#10;(dp1570&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1571&#10;(dp1572&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p1573&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1573&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1574&#10;(dp1575&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1576&#10;(dp1577&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1578&#10;(dp1579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1580&#10;(dp1581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1582&#10;(dp1583&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1584&#10;(dp1585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p1586&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1586&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1587&#10;(dp1588&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1589&#10;(dp1590&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1591&#10;(dp1592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1593&#10;(dp1594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1595&#10;(dp1596&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1597&#10;(dp1598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p1599&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1599&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1600&#10;(dp1601&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1602&#10;(dp1603&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1604&#10;(dp1605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1606&#10;(dp1607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1608&#10;(dp1609&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1610&#10;(dp1611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p1612&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1612&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1613&#10;(dp1614&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1615&#10;(dp1616&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1617&#10;(dp1618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1619&#10;(dp1620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1621&#10;(dp1622&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1623&#10;(dp1624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p1625&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1625&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1626&#10;(dp1627&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1628&#10;(dp1629&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1630&#10;(dp1631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1632&#10;(dp1633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1634&#10;(dp1635&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1636&#10;(dp1637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p1638&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1638&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1639&#10;(dp1640&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1641&#10;(dp1642&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1643&#10;(dp1644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1645&#10;(dp1646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1647&#10;(dp1648&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1649&#10;(dp1650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p1651&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1651&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1652&#10;(dp1653&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1654&#10;(dp1655&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1656&#10;(dp1657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1658&#10;(dp1659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1660&#10;(dp1661&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1662&#10;(dp1663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p1664&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1664&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1665&#10;(dp1666&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1667&#10;(dp1668&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1669&#10;(dp1670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1671&#10;(dp1672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1673&#10;(dp1674&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1675&#10;(dp1676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p1677&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1677&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1678&#10;(dp1679&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1680&#10;(dp1681&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1682&#10;(dp1683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1684&#10;(dp1685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1686&#10;(dp1687&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1688&#10;(dp1689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p1690&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1690&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1691&#10;(dp1692&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1693&#10;(dp1694&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1695&#10;(dp1696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1697&#10;(dp1698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1699&#10;(dp1700&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1701&#10;(dp1702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p1703&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1703&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1704&#10;(dp1705&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1706&#10;(dp1707&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1708&#10;(dp1709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1710&#10;(dp1711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1712&#10;(dp1713&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1714&#10;(dp1715&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p1716&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1716&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1717&#10;(dp1718&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1719&#10;(dp1720&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1721&#10;(dp1722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1723&#10;(dp1724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1725&#10;(dp1726&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1727&#10;(dp1728&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p1729&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1729&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1730&#10;(dp1731&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1732&#10;(dp1733&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1734&#10;(dp1735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1736&#10;(dp1737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1738&#10;(dp1739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1740&#10;(dp1741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p1742&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1742&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1743&#10;(dp1744&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1745&#10;(dp1746&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1747&#10;(dp1748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1749&#10;(dp1750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1751&#10;(dp1752&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1753&#10;(dp1754&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p1755&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1755&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1756&#10;(dp1757&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1758&#10;(dp1759&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1760&#10;(dp1761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1762&#10;(dp1763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1764&#10;(dp1765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1766&#10;(dp1767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p1768&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1768&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1769&#10;(dp1770&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1771&#10;(dp1772&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1773&#10;(dp1774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1775&#10;(dp1776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1777&#10;(dp1778&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1779&#10;(dp1780&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p1781&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1781&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1782&#10;(dp1783&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1784&#10;(dp1785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1786&#10;(dp1787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1788&#10;(dp1789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1790&#10;(dp1791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1792&#10;(dp1793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p1794&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1794&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1795&#10;(dp1796&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1797&#10;(dp1798&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1799&#10;(dp1800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1801&#10;(dp1802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1803&#10;(dp1804&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1805&#10;(dp1806&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p1807&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1807&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1808&#10;(dp1809&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1810&#10;(dp1811&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1812&#10;(dp1813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1814&#10;(dp1815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1816&#10;(dp1817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1818&#10;(dp1819&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p1820&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1820&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1821&#10;(dp1822&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1823&#10;(dp1824&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1825&#10;(dp1826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1827&#10;(dp1828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1829&#10;(dp1830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1831&#10;(dp1832&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p1833&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1833&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1834&#10;(dp1835&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1836&#10;(dp1837&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1838&#10;(dp1839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1840&#10;(dp1841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1842&#10;(dp1843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1844&#10;(dp1845&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p1846&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1846&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1847&#10;(dp1848&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1849&#10;(dp1850&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1851&#10;(dp1852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1853&#10;(dp1854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1855&#10;(dp1856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1857&#10;(dp1858&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p1859&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1859&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1860&#10;(dp1861&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1862&#10;(dp1863&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1864&#10;(dp1865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1866&#10;(dp1867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1868&#10;(dp1869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1870&#10;(dp1871&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p1872&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1872&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1873&#10;(dp1874&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1875&#10;(dp1876&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1877&#10;(dp1878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1879&#10;(dp1880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1881&#10;(dp1882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1883&#10;(dp1884&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p1885&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1885&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1886&#10;(dp1887&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1888&#10;(dp1889&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1890&#10;(dp1891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1892&#10;(dp1893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1894&#10;(dp1895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1896&#10;(dp1897&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p1898&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1898&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1899&#10;(dp1900&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1901&#10;(dp1902&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1903&#10;(dp1904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1905&#10;(dp1906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1907&#10;(dp1908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1909&#10;(dp1910&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p1911&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1911&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1912&#10;(dp1913&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1914&#10;(dp1915&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1916&#10;(dp1917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1918&#10;(dp1919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1920&#10;(dp1921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1922&#10;(dp1923&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p1924&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1924&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1925&#10;(dp1926&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1927&#10;(dp1928&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1929&#10;(dp1930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1931&#10;(dp1932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1933&#10;(dp1934&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1935&#10;(dp1936&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p1937&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1937&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1938&#10;(dp1939&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1940&#10;(dp1941&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1942&#10;(dp1943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1944&#10;(dp1945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1946&#10;(dp1947&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1948&#10;(dp1949&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p1950&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1950&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1951&#10;(dp1952&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1953&#10;(dp1954&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1955&#10;(dp1956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1957&#10;(dp1958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1959&#10;(dp1960&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1961&#10;(dp1962&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p1963&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1963&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1964&#10;(dp1965&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1966&#10;(dp1967&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1968&#10;(dp1969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1970&#10;(dp1971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1972&#10;(dp1973&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1974&#10;(dp1975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p1976&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1976&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1977&#10;(dp1978&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1979&#10;(dp1980&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1981&#10;(dp1982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1983&#10;(dp1984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1985&#10;(dp1986&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1987&#10;(dp1988&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p1989&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1989&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1990&#10;(dp1991&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1992&#10;(dp1993&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1994&#10;(dp1995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1996&#10;(dp1997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1998&#10;(dp1999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2000&#10;(dp2001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p2002&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2002&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2003&#10;(dp2004&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2005&#10;(dp2006&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2007&#10;(dp2008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2009&#10;(dp2010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2011&#10;(dp2012&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2013&#10;(dp2014&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p2015&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2015&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2016&#10;(dp2017&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2018&#10;(dp2019&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2020&#10;(dp2021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2022&#10;(dp2023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2024&#10;(dp2025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2026&#10;(dp2027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p2028&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2028&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2029&#10;(dp2030&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2031&#10;(dp2032&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2033&#10;(dp2034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2035&#10;(dp2036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2037&#10;(dp2038&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2039&#10;(dp2040&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p2041&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2041&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2042&#10;(dp2043&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2044&#10;(dp2045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2046&#10;(dp2047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2048&#10;(dp2049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2050&#10;(dp2051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2052&#10;(dp2053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p2054&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2054&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2055&#10;(dp2056&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2057&#10;(dp2058&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2059&#10;(dp2060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2061&#10;(dp2062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2063&#10;(dp2064&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2065&#10;(dp2066&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p2067&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2067&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2068&#10;(dp2069&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2070&#10;(dp2071&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2072&#10;(dp2073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2074&#10;(dp2075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2076&#10;(dp2077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2078&#10;(dp2079&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p2080&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2080&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2081&#10;(dp2082&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2083&#10;(dp2084&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2085&#10;(dp2086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2087&#10;(dp2088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2089&#10;(dp2090&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2091&#10;(dp2092&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p2093&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2093&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2094&#10;(dp2095&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2096&#10;(dp2097&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2098&#10;(dp2099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2100&#10;(dp2101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2102&#10;(dp2103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2104&#10;(dp2105&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p2106&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2106&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2107&#10;(dp2108&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2109&#10;(dp2110&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2111&#10;(dp2112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2113&#10;(dp2114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2115&#10;(dp2116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2117&#10;(dp2118&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p2119&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2119&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2120&#10;(dp2121&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2122&#10;(dp2123&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2124&#10;(dp2125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2126&#10;(dp2127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2128&#10;(dp2129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2130&#10;(dp2131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p2132&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2132&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2133&#10;(dp2134&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2135&#10;(dp2136&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2137&#10;(dp2138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2139&#10;(dp2140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2141&#10;(dp2142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2143&#10;(dp2144&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p2145&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2145&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2146&#10;(dp2147&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2148&#10;(dp2149&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2150&#10;(dp2151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2152&#10;(dp2153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2154&#10;(dp2155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2156&#10;(dp2157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p2158&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2158&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2159&#10;(dp2160&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2161&#10;(dp2162&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2163&#10;(dp2164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2165&#10;(dp2166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2167&#10;(dp2168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2169&#10;(dp2170&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p2171&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2171&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2172&#10;(dp2173&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2174&#10;(dp2175&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2176&#10;(dp2177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2178&#10;(dp2179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2180&#10;(dp2181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2182&#10;(dp2183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p2184&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2184&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2185&#10;(dp2186&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2187&#10;(dp2188&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2189&#10;(dp2190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2191&#10;(dp2192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2193&#10;(dp2194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2195&#10;(dp2196&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p2197&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2197&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2198&#10;(dp2199&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2200&#10;(dp2201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2202&#10;(dp2203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2204&#10;(dp2205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2206&#10;(dp2207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2208&#10;(dp2209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p2210&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2210&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2211&#10;(dp2212&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2213&#10;(dp2214&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2215&#10;(dp2216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2217&#10;(dp2218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2219&#10;(dp2220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2221&#10;(dp2222&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p2223&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2223&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2224&#10;(dp2225&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2226&#10;(dp2227&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2228&#10;(dp2229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2230&#10;(dp2231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2232&#10;(dp2233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2234&#10;(dp2235&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p2236&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2236&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2237&#10;(dp2238&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2239&#10;(dp2240&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2241&#10;(dp2242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2243&#10;(dp2244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2245&#10;(dp2246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2247&#10;(dp2248&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p2249&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2249&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2250&#10;(dp2251&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2252&#10;(dp2253&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2254&#10;(dp2255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2256&#10;(dp2257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2258&#10;(dp2259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2260&#10;(dp2261&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p2262&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2262&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2263&#10;(dp2264&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2265&#10;(dp2266&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2267&#10;(dp2268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2269&#10;(dp2270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2271&#10;(dp2272&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2273&#10;(dp2274&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p2275&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2275&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2276&#10;(dp2277&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2278&#10;(dp2279&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2280&#10;(dp2281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2282&#10;(dp2283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2284&#10;(dp2285&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2286&#10;(dp2287&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p2288&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2288&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2289&#10;(dp2290&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2291&#10;(dp2292&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2293&#10;(dp2294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2295&#10;(dp2296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2297&#10;(dp2298&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2299&#10;(dp2300&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p2301&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2301&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2302&#10;(dp2303&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2304&#10;(dp2305&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2306&#10;(dp2307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2308&#10;(dp2309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2310&#10;(dp2311&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2312&#10;(dp2313&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p2314&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2314&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2315&#10;(dp2316&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2317&#10;(dp2318&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2319&#10;(dp2320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2321&#10;(dp2322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2323&#10;(dp2324&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2325&#10;(dp2326&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p2327&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2327&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2328&#10;(dp2329&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2330&#10;(dp2331&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2332&#10;(dp2333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2334&#10;(dp2335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2336&#10;(dp2337&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2338&#10;(dp2339&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p2340&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2340&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2341&#10;(dp2342&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2343&#10;(dp2344&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2345&#10;(dp2346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2347&#10;(dp2348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2349&#10;(dp2350&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2351&#10;(dp2352&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p2353&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2353&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2354&#10;(dp2355&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2356&#10;(dp2357&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2358&#10;(dp2359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2360&#10;(dp2361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2362&#10;(dp2363&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2364&#10;(dp2365&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p2366&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2366&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2367&#10;(dp2368&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2369&#10;(dp2370&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2371&#10;(dp2372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2373&#10;(dp2374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2375&#10;(dp2376&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2377&#10;(dp2378&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p2379&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2379&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2380&#10;(dp2381&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2382&#10;(dp2383&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2384&#10;(dp2385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2386&#10;(dp2387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2388&#10;(dp2389&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2390&#10;(dp2391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p2392&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2392&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2393&#10;(dp2394&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2395&#10;(dp2396&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2397&#10;(dp2398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2399&#10;(dp2400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2401&#10;(dp2402&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2403&#10;(dp2404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p2405&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2405&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2406&#10;(dp2407&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2408&#10;(dp2409&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2410&#10;(dp2411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2412&#10;(dp2413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2414&#10;(dp2415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2416&#10;(dp2417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p2418&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2418&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2419&#10;(dp2420&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2421&#10;(dp2422&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2423&#10;(dp2424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2425&#10;(dp2426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2427&#10;(dp2428&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2429&#10;(dp2430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p2431&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2431&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2432&#10;(dp2433&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2434&#10;(dp2435&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2436&#10;(dp2437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2438&#10;(dp2439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2440&#10;(dp2441&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2442&#10;(dp2443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p2444&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2444&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2445&#10;(dp2446&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2447&#10;(dp2448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2449&#10;(dp2450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2451&#10;(dp2452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2453&#10;(dp2454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2455&#10;(dp2456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p2457&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2457&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2458&#10;(dp2459&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2460&#10;(dp2461&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2462&#10;(dp2463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2464&#10;(dp2465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2466&#10;(dp2467&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2468&#10;(dp2469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p2470&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2470&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2471&#10;(dp2472&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2473&#10;(dp2474&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2475&#10;(dp2476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2477&#10;(dp2478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2479&#10;(dp2480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2481&#10;(dp2482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p2483&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2483&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2484&#10;(dp2485&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2486&#10;(dp2487&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2488&#10;(dp2489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2490&#10;(dp2491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2492&#10;(dp2493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2494&#10;(dp2495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p2496&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2496&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2497&#10;(dp2498&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2499&#10;(dp2500&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2501&#10;(dp2502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2503&#10;(dp2504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2505&#10;(dp2506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2507&#10;(dp2508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p2509&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2509&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2510&#10;(dp2511&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2512&#10;(dp2513&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2514&#10;(dp2515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2516&#10;(dp2517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2518&#10;(dp2519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2520&#10;(dp2521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p2522&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2522&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2523&#10;(dp2524&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2525&#10;(dp2526&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2527&#10;(dp2528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2529&#10;(dp2530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2531&#10;(dp2532&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2533&#10;(dp2534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p2535&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2535&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2536&#10;(dp2537&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2538&#10;(dp2539&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2540&#10;(dp2541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2542&#10;(dp2543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2544&#10;(dp2545&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2546&#10;(dp2547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p2548&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2548&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2549&#10;(dp2550&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2551&#10;(dp2552&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2553&#10;(dp2554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2555&#10;(dp2556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2557&#10;(dp2558&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2559&#10;(dp2560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p2561&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2561&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2562&#10;(dp2563&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2564&#10;(dp2565&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2566&#10;(dp2567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2568&#10;(dp2569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2570&#10;(dp2571&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2572&#10;(dp2573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p2574&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2574&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2575&#10;(dp2576&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2577&#10;(dp2578&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2579&#10;(dp2580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2581&#10;(dp2582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2583&#10;(dp2584&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2585&#10;(dp2586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p2587&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2587&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2588&#10;(dp2589&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2590&#10;(dp2591&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2592&#10;(dp2593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2594&#10;(dp2595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2596&#10;(dp2597&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2598&#10;(dp2599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p2600&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2600&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2601&#10;(dp2602&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2603&#10;(dp2604&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2605&#10;(dp2606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2607&#10;(dp2608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2609&#10;(dp2610&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2611&#10;(dp2612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p2613&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2613&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2614&#10;(dp2615&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2616&#10;(dp2617&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2618&#10;(dp2619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2620&#10;(dp2621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2622&#10;(dp2623&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2624&#10;(dp2625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p2626&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2626&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2627&#10;(dp2628&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2629&#10;(dp2630&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2631&#10;(dp2632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2633&#10;(dp2634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2635&#10;(dp2636&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2637&#10;(dp2638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p2639&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2639&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2640&#10;(dp2641&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2642&#10;(dp2643&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2644&#10;(dp2645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2646&#10;(dp2647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2648&#10;(dp2649&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2650&#10;(dp2651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p2652&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2652&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2653&#10;(dp2654&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2655&#10;(dp2656&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2657&#10;(dp2658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2659&#10;(dp2660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2661&#10;(dp2662&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2663&#10;(dp2664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p2665&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2665&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2666&#10;(dp2667&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2668&#10;(dp2669&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2670&#10;(dp2671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2672&#10;(dp2673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2674&#10;(dp2675&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2676&#10;(dp2677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p2678&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2678&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2679&#10;(dp2680&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2681&#10;(dp2682&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2683&#10;(dp2684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2685&#10;(dp2686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2687&#10;(dp2688&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2689&#10;(dp2690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p2691&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2691&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2692&#10;(dp2693&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2694&#10;(dp2695&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2696&#10;(dp2697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2698&#10;(dp2699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2700&#10;(dp2701&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2702&#10;(dp2703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p2704&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2704&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2705&#10;(dp2706&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2707&#10;(dp2708&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2709&#10;(dp2710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2711&#10;(dp2712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2713&#10;(dp2714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2715&#10;(dp2716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p2717&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2717&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2718&#10;(dp2719&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2720&#10;(dp2721&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2722&#10;(dp2723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2724&#10;(dp2725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2726&#10;(dp2727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2728&#10;(dp2729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p2730&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2730&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2731&#10;(dp2732&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2733&#10;(dp2734&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2735&#10;(dp2736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2737&#10;(dp2738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2739&#10;(dp2740&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2741&#10;(dp2742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p2743&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2743&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2744&#10;(dp2745&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2746&#10;(dp2747&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2748&#10;(dp2749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2750&#10;(dp2751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2752&#10;(dp2753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2754&#10;(dp2755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p2756&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2756&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2757&#10;(dp2758&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2759&#10;(dp2760&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2761&#10;(dp2762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2763&#10;(dp2764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2765&#10;(dp2766&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2767&#10;(dp2768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p2769&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2769&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2770&#10;(dp2771&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2772&#10;(dp2773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2774&#10;(dp2775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2776&#10;(dp2777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2778&#10;(dp2779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2780&#10;(dp2781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p2782&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2782&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2783&#10;(dp2784&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2785&#10;(dp2786&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2787&#10;(dp2788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2789&#10;(dp2790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2791&#10;(dp2792&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2793&#10;(dp2794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p2795&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2795&#10;sbatRp2796&#10;(dp2797&#10;g12&#10;I185&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client Per URL'&#10;p2798&#10;g3&#10;(g4&#10;g5&#10;(lp2799&#10;g3&#10;(g7&#10;g8&#10;NtRp2800&#10;(dp2801&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2802&#10;(dp2803&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2804&#10;(dp2805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2806&#10;(dp2807&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2808&#10;(dp2809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2810&#10;(dp2811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Sent'&#10;p2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2813&#10;(dp2814&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2815&#10;(dp2816&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2817&#10;(dp2818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2819&#10;(dp2820&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2821&#10;(dp2822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2823&#10;(dp2824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2826&#10;(dp2827&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2828&#10;(dp2829&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2830&#10;(dp2831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2832&#10;(dp2833&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2834&#10;(dp2835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2836&#10;(dp2837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (Provisional)'&#10;p2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2839&#10;(dp2840&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2841&#10;(dp2842&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2843&#10;(dp2844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2845&#10;(dp2846&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2847&#10;(dp2848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2849&#10;(dp2850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2852&#10;(dp2853&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2854&#10;(dp2855&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2856&#10;(dp2857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2858&#10;(dp2859&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2860&#10;(dp2861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2862&#10;(dp2863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write)'&#10;p2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2865&#10;(dp2866&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2867&#10;(dp2868&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2869&#10;(dp2870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2871&#10;(dp2872&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2873&#10;(dp2874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2875&#10;(dp2876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Read)'&#10;p2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2878&#10;(dp2879&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2880&#10;(dp2881&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2882&#10;(dp2883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2884&#10;(dp2885&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2886&#10;(dp2887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2888&#10;(dp2889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Bad Header)'&#10;p2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2891&#10;(dp2892&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2893&#10;(dp2894&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2895&#10;(dp2896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2897&#10;(dp2898&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2899&#10;(dp2900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2901&#10;(dp2902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx)'&#10;p2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2904&#10;(dp2905&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2906&#10;(dp2907&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2908&#10;(dp2909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2910&#10;(dp2911&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2912&#10;(dp2913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2914&#10;(dp2915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (400)'&#10;p2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2917&#10;(dp2918&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2919&#10;(dp2920&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2921&#10;(dp2922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2923&#10;(dp2924&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2925&#10;(dp2926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2927&#10;(dp2928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (401)'&#10;p2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2930&#10;(dp2931&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2932&#10;(dp2933&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2934&#10;(dp2935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2936&#10;(dp2937&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2938&#10;(dp2939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2940&#10;(dp2941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (403)'&#10;p2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2943&#10;(dp2944&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2945&#10;(dp2946&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2947&#10;(dp2948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2949&#10;(dp2950&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2951&#10;(dp2952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2953&#10;(dp2954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2956&#10;(dp2957&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2958&#10;(dp2959&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2960&#10;(dp2961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2962&#10;(dp2963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2964&#10;(dp2965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2966&#10;(dp2967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (407)'&#10;p2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2969&#10;(dp2970&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2971&#10;(dp2972&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2973&#10;(dp2974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2975&#10;(dp2976&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2977&#10;(dp2978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2979&#10;(dp2980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (408)'&#10;p2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2982&#10;(dp2983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2984&#10;(dp2985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2986&#10;(dp2987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2988&#10;(dp2989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2990&#10;(dp2991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2992&#10;(dp2993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx other)'&#10;p2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2995&#10;(dp2996&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2997&#10;(dp2998&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2999&#10;(dp3000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3001&#10;(dp3002&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3003&#10;(dp3004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3005&#10;(dp3006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx)'&#10;p3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3008&#10;(dp3009&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3010&#10;(dp3011&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3012&#10;(dp3013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3014&#10;(dp3015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3016&#10;(dp3017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3018&#10;(dp3019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (505)'&#10;p3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3021&#10;(dp3022&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3023&#10;(dp3024&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3025&#10;(dp3026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3027&#10;(dp3028&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3029&#10;(dp3030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3031&#10;(dp3032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx other)'&#10;p3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3034&#10;(dp3035&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3036&#10;(dp3037&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3038&#10;(dp3039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3040&#10;(dp3041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3042&#10;(dp3043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3044&#10;(dp3045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (other)'&#10;p3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3047&#10;(dp3048&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3049&#10;(dp3050&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3051&#10;(dp3052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3053&#10;(dp3054&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3055&#10;(dp3056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3057&#10;(dp3058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Timeout)'&#10;p3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3060&#10;(dp3061&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3062&#10;(dp3063&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3064&#10;(dp3065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3066&#10;(dp3067&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3068&#10;(dp3069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3070&#10;(dp3071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3073&#10;(dp3074&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3075&#10;(dp3076&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3077&#10;(dp3078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3079&#10;(dp3080&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3081&#10;(dp3082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3083&#10;(dp3084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted Before Request'&#10;p3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3086&#10;(dp3087&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3088&#10;(dp3089&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3090&#10;(dp3091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3092&#10;(dp3093&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3094&#10;(dp3095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3096&#10;(dp3097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted After Request'&#10;p3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3099&#10;(dp3100&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3101&#10;(dp3102&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3103&#10;(dp3104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3105&#10;(dp3106&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3107&#10;(dp3108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3109&#10;(dp3110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received With Match'&#10;p3111&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3111&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3112&#10;(dp3113&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3114&#10;(dp3115&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3116&#10;(dp3117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3118&#10;(dp3119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3120&#10;(dp3121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3122&#10;(dp3123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received Without Match'&#10;p3124&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3124&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3125&#10;(dp3126&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3127&#10;(dp3128&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3129&#10;(dp3130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3131&#10;(dp3132&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3133&#10;(dp3134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3135&#10;(dp3136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Intermediate Responses Received (1xx)'&#10;p3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3138&#10;(dp3139&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3140&#10;(dp3141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3142&#10;(dp3143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3144&#10;(dp3145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3146&#10;(dp3147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3148&#10;(dp3149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (2xx)'&#10;p3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3151&#10;(dp3152&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3153&#10;(dp3154&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3155&#10;(dp3156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3157&#10;(dp3158&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3159&#10;(dp3160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3161&#10;(dp3162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (3xx)'&#10;p3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3164&#10;(dp3165&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3166&#10;(dp3167&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3168&#10;(dp3169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3170&#10;(dp3171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3172&#10;(dp3173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3174&#10;(dp3175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (301)'&#10;p3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3177&#10;(dp3178&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3179&#10;(dp3180&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3181&#10;(dp3182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3183&#10;(dp3184&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3185&#10;(dp3186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3187&#10;(dp3188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (302)'&#10;p3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3190&#10;(dp3191&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3192&#10;(dp3193&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3194&#10;(dp3195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3196&#10;(dp3197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3198&#10;(dp3199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3200&#10;(dp3201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (303)'&#10;p3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3203&#10;(dp3204&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3205&#10;(dp3206&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3207&#10;(dp3208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3209&#10;(dp3210&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3211&#10;(dp3212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3213&#10;(dp3214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (307)'&#10;p3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3216&#10;(dp3217&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3218&#10;(dp3219&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3220&#10;(dp3221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3222&#10;(dp3223&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3224&#10;(dp3225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3226&#10;(dp3227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Sent'&#10;p3228&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3228&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3229&#10;(dp3230&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3231&#10;(dp3232&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3233&#10;(dp3234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3235&#10;(dp3236&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3237&#10;(dp3238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3239&#10;(dp3240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Headers Received'&#10;p3241&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3241&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3242&#10;(dp3243&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3244&#10;(dp3245&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3246&#10;(dp3247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3248&#10;(dp3249&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3250&#10;(dp3251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3252&#10;(dp3253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Received'&#10;p3254&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3254&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3255&#10;(dp3256&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3257&#10;(dp3258&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3259&#10;(dp3260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3261&#10;(dp3262&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3263&#10;(dp3264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3265&#10;(dp3266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Successful'&#10;p3267&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3267&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3268&#10;(dp3269&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3270&#10;(dp3271&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3272&#10;(dp3273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3274&#10;(dp3275&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3276&#10;(dp3277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3278&#10;(dp3279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Failed'&#10;p3280&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3280&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3281&#10;(dp3282&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3283&#10;(dp3284&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3285&#10;(dp3286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3287&#10;(dp3288&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3289&#10;(dp3290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3291&#10;(dp3292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p3293&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3293&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3294&#10;(dp3295&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3296&#10;(dp3297&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3298&#10;(dp3299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3300&#10;(dp3301&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3302&#10;(dp3303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3304&#10;(dp3305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p3306&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3306&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3307&#10;(dp3308&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3309&#10;(dp3310&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3311&#10;(dp3312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3313&#10;(dp3314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3315&#10;(dp3316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3317&#10;(dp3318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p3319&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3319&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3320&#10;(dp3321&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3322&#10;(dp3323&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3324&#10;(dp3325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3326&#10;(dp3327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3328&#10;(dp3329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3330&#10;(dp3331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Sent'&#10;p3332&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3332&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3333&#10;(dp3334&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3335&#10;(dp3336&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3337&#10;(dp3338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3339&#10;(dp3340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3341&#10;(dp3342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3343&#10;(dp3344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p3345&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3345&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3346&#10;(dp3347&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3348&#10;(dp3349&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3350&#10;(dp3351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3352&#10;(dp3353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3354&#10;(dp3355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3356&#10;(dp3357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size in Request'&#10;p3358&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3358&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3359&#10;(dp3360&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3361&#10;(dp3362&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3363&#10;(dp3364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3365&#10;(dp3366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3367&#10;(dp3368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3369&#10;(dp3370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p3371&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3371&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3372&#10;(dp3373&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3374&#10;(dp3375&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3376&#10;(dp3377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3378&#10;(dp3379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3380&#10;(dp3381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3382&#10;(dp3383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name1-Value1'&#10;p3384&#10;sg22&#10;I00&#10;sg37&#10;S'kString'&#10;p3385&#10;sg39&#10;g3384&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3386&#10;(dp3387&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3388&#10;(dp3389&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3390&#10;(dp3391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3392&#10;(dp3393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3394&#10;(dp3395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3396&#10;(dp3397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter1'&#10;p3398&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3398&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3399&#10;(dp3400&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3401&#10;(dp3402&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3403&#10;(dp3404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3405&#10;(dp3406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3407&#10;(dp3408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3409&#10;(dp3410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name2-Value2'&#10;p3411&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3411&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3412&#10;(dp3413&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3414&#10;(dp3415&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3416&#10;(dp3417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3418&#10;(dp3419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3420&#10;(dp3421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3422&#10;(dp3423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter2'&#10;p3424&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3424&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3425&#10;(dp3426&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3427&#10;(dp3428&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3429&#10;(dp3430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3431&#10;(dp3432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3433&#10;(dp3434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3435&#10;(dp3436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name3-Value3'&#10;p3437&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3437&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3438&#10;(dp3439&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3440&#10;(dp3441&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3442&#10;(dp3443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3444&#10;(dp3445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3446&#10;(dp3447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3448&#10;(dp3449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter3'&#10;p3450&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3450&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3451&#10;(dp3452&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3453&#10;(dp3454&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3455&#10;(dp3456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3457&#10;(dp3458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3459&#10;(dp3460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3461&#10;(dp3462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name4-Value4'&#10;p3463&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3463&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3464&#10;(dp3465&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3466&#10;(dp3467&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3468&#10;(dp3469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3470&#10;(dp3471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3472&#10;(dp3473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3474&#10;(dp3475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter4'&#10;p3476&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3476&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3477&#10;(dp3478&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3479&#10;(dp3480&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3481&#10;(dp3482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3483&#10;(dp3484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3485&#10;(dp3486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3487&#10;(dp3488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name5-Value5'&#10;p3489&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3489&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3490&#10;(dp3491&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3492&#10;(dp3493&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3494&#10;(dp3495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3496&#10;(dp3497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3498&#10;(dp3499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3500&#10;(dp3501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter5'&#10;p3502&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3502&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3503&#10;(dp3504&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3505&#10;(dp3506&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3507&#10;(dp3508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3509&#10;(dp3510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3511&#10;(dp3512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3513&#10;(dp3514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name6-Value6'&#10;p3515&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3515&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3516&#10;(dp3517&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3518&#10;(dp3519&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3520&#10;(dp3521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3522&#10;(dp3523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3524&#10;(dp3525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3526&#10;(dp3527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter6'&#10;p3528&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3528&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3529&#10;(dp3530&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3531&#10;(dp3532&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3533&#10;(dp3534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3535&#10;(dp3536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3537&#10;(dp3538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3539&#10;(dp3540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name7-Value7'&#10;p3541&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3541&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3542&#10;(dp3543&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3544&#10;(dp3545&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3546&#10;(dp3547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3548&#10;(dp3549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3550&#10;(dp3551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3552&#10;(dp3553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter7'&#10;p3554&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3554&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3555&#10;(dp3556&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3557&#10;(dp3558&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3559&#10;(dp3560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3561&#10;(dp3562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3563&#10;(dp3564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3565&#10;(dp3566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name8-Value8'&#10;p3567&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3567&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3568&#10;(dp3569&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3570&#10;(dp3571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3572&#10;(dp3573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3574&#10;(dp3575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3576&#10;(dp3577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3578&#10;(dp3579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter8'&#10;p3580&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3580&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3581&#10;(dp3582&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3583&#10;(dp3584&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3585&#10;(dp3586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3587&#10;(dp3588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3589&#10;(dp3590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3591&#10;(dp3592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name9-Value9'&#10;p3593&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3593&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3594&#10;(dp3595&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3596&#10;(dp3597&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3598&#10;(dp3599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3600&#10;(dp3601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3602&#10;(dp3603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3604&#10;(dp3605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter9'&#10;p3606&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3606&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3607&#10;(dp3608&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3609&#10;(dp3610&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3611&#10;(dp3612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3613&#10;(dp3614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3615&#10;(dp3616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3617&#10;(dp3618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name10-Value10'&#10;p3619&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3619&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3620&#10;(dp3621&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3622&#10;(dp3623&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3624&#10;(dp3625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3626&#10;(dp3627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3628&#10;(dp3629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3630&#10;(dp3631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter10'&#10;p3632&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3632&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3633&#10;(dp3634&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3635&#10;(dp3636&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3637&#10;(dp3638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3639&#10;(dp3640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3641&#10;(dp3642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3643&#10;(dp3644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Received'&#10;p3645&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3645&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3646&#10;(dp3647&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3648&#10;(dp3649&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3650&#10;(dp3651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3652&#10;(dp3653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3654&#10;(dp3655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3656&#10;(dp3657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Successful'&#10;p3658&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3658&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3659&#10;(dp3660&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3661&#10;(dp3662&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3663&#10;(dp3664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3665&#10;(dp3666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3667&#10;(dp3668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3669&#10;(dp3670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Failed'&#10;p3671&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3671&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3672&#10;(dp3673&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3674&#10;(dp3675&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3676&#10;(dp3677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3678&#10;(dp3679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3680&#10;(dp3681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3682&#10;(dp3683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Received'&#10;p3684&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3684&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3685&#10;(dp3686&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3687&#10;(dp3688&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3689&#10;(dp3690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3691&#10;(dp3692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3693&#10;(dp3694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3695&#10;(dp3696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Successful'&#10;p3697&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3697&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3698&#10;(dp3699&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3700&#10;(dp3701&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3702&#10;(dp3703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3704&#10;(dp3705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3706&#10;(dp3707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3708&#10;(dp3709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Failed'&#10;p3710&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3710&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3711&#10;(dp3712&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3713&#10;(dp3714&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3715&#10;(dp3716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3717&#10;(dp3718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3719&#10;(dp3720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3721&#10;(dp3722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Received'&#10;p3723&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3723&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3724&#10;(dp3725&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3726&#10;(dp3727&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3728&#10;(dp3729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3730&#10;(dp3731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3732&#10;(dp3733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3734&#10;(dp3735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Successful'&#10;p3736&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3736&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3737&#10;(dp3738&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3739&#10;(dp3740&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3741&#10;(dp3742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3743&#10;(dp3744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3745&#10;(dp3746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3747&#10;(dp3748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Failed'&#10;p3749&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3749&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3750&#10;(dp3751&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3752&#10;(dp3753&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3754&#10;(dp3755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3756&#10;(dp3757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3758&#10;(dp3759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3760&#10;(dp3761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Received'&#10;p3762&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3762&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3763&#10;(dp3764&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3765&#10;(dp3766&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3767&#10;(dp3768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3769&#10;(dp3770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3771&#10;(dp3772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3773&#10;(dp3774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Successful'&#10;p3775&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3775&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3776&#10;(dp3777&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3778&#10;(dp3779&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3780&#10;(dp3781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3782&#10;(dp3783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3784&#10;(dp3785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3786&#10;(dp3787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Failed'&#10;p3788&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3788&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3789&#10;(dp3790&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3791&#10;(dp3792&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3793&#10;(dp3794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3795&#10;(dp3796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3797&#10;(dp3798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3799&#10;(dp3800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Average Compression Ratio'&#10;p3801&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3801&#10;sbatRp3802&#10;(dp3803&#10;g12&#10;I76&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client'&#10;p3804&#10;g3&#10;(g4&#10;g5&#10;(lp3805&#10;g3&#10;(g7&#10;g8&#10;NtRp3806&#10;(dp3807&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3808&#10;(dp3809&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3810&#10;(dp3811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3812&#10;(dp3813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3814&#10;(dp3815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3816&#10;(dp3817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Simulated Users'&#10;p3818&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3818&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3819&#10;(dp3820&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3821&#10;(dp3822&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3823&#10;(dp3824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3825&#10;(dp3826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3827&#10;(dp3828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3829&#10;(dp3830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Concurrent Connections'&#10;p3831&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3831&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3832&#10;(dp3833&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3834&#10;(dp3835&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3836&#10;(dp3837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3838&#10;(dp3839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3840&#10;(dp3841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3842&#10;(dp3843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connections'&#10;p3844&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3844&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3845&#10;(dp3846&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3847&#10;(dp3848&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3849&#10;(dp3850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3851&#10;(dp3852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3853&#10;(dp3854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3855&#10;(dp3856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Attempts'&#10;p3857&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3857&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3858&#10;(dp3859&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3860&#10;(dp3861&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3862&#10;(dp3863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3864&#10;(dp3865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3866&#10;(dp3867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3868&#10;(dp3869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Aborts'&#10;p3870&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3870&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3871&#10;(dp3872&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3873&#10;(dp3874&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3875&#10;(dp3876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3877&#10;(dp3878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3879&#10;(dp3880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3881&#10;(dp3882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Aborts'&#10;p3883&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3883&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3884&#10;(dp3885&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3886&#10;(dp3887&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3888&#10;(dp3889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3890&#10;(dp3891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3892&#10;(dp3893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3894&#10;(dp3895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions'&#10;p3896&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3896&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3897&#10;(dp3898&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3899&#10;(dp3900&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3901&#10;(dp3902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3903&#10;(dp3904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3905&#10;(dp3906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3907&#10;(dp3908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes'&#10;p3909&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3909&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3910&#10;(dp3911&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3912&#10;(dp3913&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3914&#10;(dp3915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3916&#10;(dp3917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3918&#10;(dp3919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3920&#10;(dp3921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3922&#10;(dp3923&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3924&#10;(dp3925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3926&#10;(dp3927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3928&#10;(dp3929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3930&#10;(dp3931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3932&#10;(dp3933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3934&#10;(dp3935&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3936&#10;(dp3937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3938&#10;(dp3939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3940&#10;(dp3941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3942&#10;(dp3943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3944&#10;(dp3945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3946&#10;(dp3947&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3948&#10;(dp3949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3950&#10;(dp3951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3952&#10;(dp3953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3954&#10;(dp3955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3956&#10;(dp3957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3958&#10;(dp3959&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3960&#10;(dp3961&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3962&#10;(dp3963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3964&#10;(dp3965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3966&#10;(dp3967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3968&#10;(dp3969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3970&#10;(dp3971&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3972&#10;(dp3973&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3974&#10;(dp3975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3976&#10;(dp3977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3978&#10;(dp3979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3980&#10;(dp3981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3982&#10;(dp3983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3984&#10;(dp3985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3986&#10;(dp3987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3988&#10;(dp3989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3990&#10;(dp3991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3992&#10;(dp3993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3994&#10;(dp3995&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3996&#10;(dp3997&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3998&#10;(dp3999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4000&#10;(dp4001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4002&#10;(dp4003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4004&#10;(dp4005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4006&#10;(dp4007&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4008&#10;(dp4009&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4010&#10;(dp4011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4012&#10;(dp4013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4014&#10;(dp4015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4016&#10;(dp4017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4018&#10;(dp4019&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4020&#10;(dp4021&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4022&#10;(dp4023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4024&#10;(dp4025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4026&#10;(dp4027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4028&#10;(dp4029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4030&#10;(dp4031&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4032&#10;(dp4033&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4034&#10;(dp4035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4036&#10;(dp4037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4038&#10;(dp4039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4040&#10;(dp4041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4042&#10;(dp4043&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4044&#10;(dp4045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4046&#10;(dp4047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4048&#10;(dp4049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4050&#10;(dp4051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4052&#10;(dp4053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4054&#10;(dp4055&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4056&#10;(dp4057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4058&#10;(dp4059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4060&#10;(dp4061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4062&#10;(dp4063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4064&#10;(dp4065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4066&#10;(dp4067&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4068&#10;(dp4069&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4070&#10;(dp4071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4072&#10;(dp4073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4074&#10;(dp4075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4076&#10;(dp4077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4078&#10;(dp4079&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4080&#10;(dp4081&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4082&#10;(dp4083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4084&#10;(dp4085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4086&#10;(dp4087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4088&#10;(dp4089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4090&#10;(dp4091&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4092&#10;(dp4093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4094&#10;(dp4095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4096&#10;(dp4097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4098&#10;(dp4099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4100&#10;(dp4101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4102&#10;(dp4103&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4104&#10;(dp4105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4106&#10;(dp4107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4108&#10;(dp4109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4110&#10;(dp4111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4112&#10;(dp4113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4114&#10;(dp4115&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4116&#10;(dp4117&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4118&#10;(dp4119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4120&#10;(dp4121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4122&#10;(dp4123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4124&#10;(dp4125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4126&#10;(dp4127&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4128&#10;(dp4129&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4130&#10;(dp4131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4132&#10;(dp4133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4134&#10;(dp4135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4136&#10;(dp4137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4138&#10;(dp4139&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4140&#10;(dp4141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4142&#10;(dp4143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4144&#10;(dp4145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4146&#10;(dp4147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4148&#10;(dp4149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4150&#10;(dp4151&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4152&#10;(dp4153&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4154&#10;(dp4155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4156&#10;(dp4157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4158&#10;(dp4159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4160&#10;(dp4161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4162&#10;(dp4163&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4164&#10;(dp4165&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4166&#10;(dp4167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4168&#10;(dp4169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4170&#10;(dp4171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4172&#10;(dp4173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4174&#10;(dp4175&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4176&#10;(dp4177&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4178&#10;(dp4179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4180&#10;(dp4181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4182&#10;(dp4183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4184&#10;(dp4185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4186&#10;(dp4187&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4188&#10;(dp4189&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4190&#10;(dp4191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4192&#10;(dp4193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4194&#10;(dp4195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4196&#10;(dp4197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4198&#10;(dp4199&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4200&#10;(dp4201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4202&#10;(dp4203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4204&#10;(dp4205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4206&#10;(dp4207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4208&#10;(dp4209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4210&#10;(dp4211&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4212&#10;(dp4213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4214&#10;(dp4215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4216&#10;(dp4217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4218&#10;(dp4219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4220&#10;(dp4221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4222&#10;(dp4223&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4224&#10;(dp4225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4226&#10;(dp4227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4228&#10;(dp4229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4230&#10;(dp4231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4232&#10;(dp4233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4234&#10;(dp4235&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4236&#10;(dp4237&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4238&#10;(dp4239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4240&#10;(dp4241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4242&#10;(dp4243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4244&#10;(dp4245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4246&#10;(dp4247&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4248&#10;(dp4249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4250&#10;(dp4251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4252&#10;(dp4253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4254&#10;(dp4255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4256&#10;(dp4257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p4258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4259&#10;(dp4260&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4261&#10;(dp4262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4263&#10;(dp4264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4265&#10;(dp4266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4267&#10;(dp4268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4269&#10;(dp4270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Request Precondition Failed (412)'&#10;p4271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4272&#10;(dp4273&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4274&#10;(dp4275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4276&#10;(dp4277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4278&#10;(dp4279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4280&#10;(dp4281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4282&#10;(dp4283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p4284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4285&#10;(dp4286&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4287&#10;(dp4288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4289&#10;(dp4290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4291&#10;(dp4292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4293&#10;(dp4294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4295&#10;(dp4296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4297&#10;(dp4298&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4299&#10;(dp4300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4301&#10;(dp4302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4303&#10;(dp4304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4305&#10;(dp4306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4307&#10;(dp4308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4309&#10;(dp4310&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4311&#10;(dp4312&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4313&#10;(dp4314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4315&#10;(dp4316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4317&#10;(dp4318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4319&#10;(dp4320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions Active'&#10;p4321&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4321&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4322&#10;(dp4323&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4324&#10;(dp4325&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4326&#10;(dp4327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4328&#10;(dp4329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4330&#10;(dp4331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4332&#10;(dp4333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Users Active'&#10;p4334&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4334&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4335&#10;(dp4336&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4337&#10;(dp4338&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4339&#10;(dp4340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4341&#10;(dp4342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4343&#10;(dp4344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4345&#10;(dp4346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Received'&#10;p4347&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4347&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4348&#10;(dp4349&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4350&#10;(dp4351&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4352&#10;(dp4353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4354&#10;(dp4355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4356&#10;(dp4357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4358&#10;(dp4359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Received'&#10;p4360&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4360&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4361&#10;(dp4362&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4363&#10;(dp4364&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4365&#10;(dp4366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4367&#10;(dp4368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4369&#10;(dp4370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4371&#10;(dp4372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Received'&#10;p4373&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4373&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4374&#10;(dp4375&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4376&#10;(dp4377&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4378&#10;(dp4379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4380&#10;(dp4381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4382&#10;(dp4383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4384&#10;(dp4385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Unrecognized Content-Encoding Received'&#10;p4386&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4386&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4387&#10;(dp4388&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4389&#10;(dp4390&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4391&#10;(dp4392&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4393&#10;(dp4394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4395&#10;(dp4396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4397&#10;(dp4398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Successful'&#10;p4399&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4399&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4400&#10;(dp4401&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4402&#10;(dp4403&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4404&#10;(dp4405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4406&#10;(dp4407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4408&#10;(dp4409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4410&#10;(dp4411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Successful'&#10;p4412&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4412&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4413&#10;(dp4414&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4415&#10;(dp4416&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4417&#10;(dp4418&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4419&#10;(dp4420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4421&#10;(dp4422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4423&#10;(dp4424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Successful'&#10;p4425&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4425&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4426&#10;(dp4427&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4428&#10;(dp4429&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4430&#10;(dp4431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4432&#10;(dp4433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4434&#10;(dp4435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4436&#10;(dp4437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Failed'&#10;p4438&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4438&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4439&#10;(dp4440&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4441&#10;(dp4442&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4443&#10;(dp4444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4445&#10;(dp4446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4447&#10;(dp4448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4449&#10;(dp4450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed'&#10;p4451&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4451&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4452&#10;(dp4453&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4454&#10;(dp4455&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4456&#10;(dp4457&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4458&#10;(dp4459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4460&#10;(dp4461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4462&#10;(dp4463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed'&#10;p4464&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4464&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4465&#10;(dp4466&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4467&#10;(dp4468&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4469&#10;(dp4470&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4471&#10;(dp4472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4473&#10;(dp4474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4475&#10;(dp4476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Data Error'&#10;p4477&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4477&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4478&#10;(dp4479&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4480&#10;(dp4481&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4482&#10;(dp4483&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4484&#10;(dp4485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4486&#10;(dp4487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4488&#10;(dp4489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Decoding Error'&#10;p4490&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4490&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4491&#10;(dp4492&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4493&#10;(dp4494&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4495&#10;(dp4496&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4497&#10;(dp4498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4499&#10;(dp4500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4501&#10;(dp4502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Data Error'&#10;p4503&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4503&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4504&#10;(dp4505&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4506&#10;(dp4507&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4508&#10;(dp4509&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4510&#10;(dp4511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4512&#10;(dp4513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4514&#10;(dp4515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Decoding Error'&#10;p4516&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4516&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4517&#10;(dp4518&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4519&#10;(dp4520&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4521&#10;(dp4522&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4523&#10;(dp4524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4525&#10;(dp4526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4527&#10;(dp4528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Headers Received'&#10;p4529&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4529&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4530&#10;(dp4531&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4532&#10;(dp4533&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4534&#10;(dp4535&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4536&#10;(dp4537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4538&#10;(dp4539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4540&#10;(dp4541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Responses Received'&#10;p4542&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4542&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4543&#10;(dp4544&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4545&#10;(dp4546&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4547&#10;(dp4548&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4549&#10;(dp4550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4551&#10;(dp4552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4553&#10;(dp4554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Successful'&#10;p4555&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4555&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4556&#10;(dp4557&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4558&#10;(dp4559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4560&#10;(dp4561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4562&#10;(dp4563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4564&#10;(dp4565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4566&#10;(dp4567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Failed'&#10;p4568&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4568&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4569&#10;(dp4570&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4571&#10;(dp4572&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4573&#10;(dp4574&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4575&#10;(dp4576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4577&#10;(dp4578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4579&#10;(dp4580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Received'&#10;p4581&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4581&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4582&#10;(dp4583&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4584&#10;(dp4585&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4586&#10;(dp4587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4588&#10;(dp4589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4590&#10;(dp4591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4592&#10;(dp4593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Headers Sent'&#10;p4594&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4594&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4595&#10;(dp4596&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4597&#10;(dp4598&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4599&#10;(dp4600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4601&#10;(dp4602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4603&#10;(dp4604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4605&#10;(dp4606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Sent'&#10;p4607&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4607&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4608&#10;(dp4609&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4610&#10;(dp4611&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4612&#10;(dp4613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4614&#10;(dp4615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4616&#10;(dp4617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4618&#10;(dp4619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Responses Received'&#10;p4620&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4620&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4621&#10;(dp4622&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4623&#10;(dp4624&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4625&#10;(dp4626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4627&#10;(dp4628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4629&#10;(dp4630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4631&#10;(dp4632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Successful'&#10;p4633&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4633&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4634&#10;(dp4635&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4636&#10;(dp4637&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4638&#10;(dp4639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4640&#10;(dp4641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4642&#10;(dp4643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4644&#10;(dp4645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Failed'&#10;p4646&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4646&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4647&#10;(dp4648&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4649&#10;(dp4650&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4651&#10;(dp4652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4653&#10;(dp4654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4655&#10;(dp4656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4657&#10;(dp4658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Responses Received'&#10;p4659&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4659&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4660&#10;(dp4661&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4662&#10;(dp4663&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4664&#10;(dp4665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4666&#10;(dp4667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4668&#10;(dp4669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4670&#10;(dp4671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Successful'&#10;p4672&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4672&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4673&#10;(dp4674&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4675&#10;(dp4676&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4677&#10;(dp4678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4679&#10;(dp4680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4681&#10;(dp4682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4683&#10;(dp4684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Failed'&#10;p4685&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4685&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4686&#10;(dp4687&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4688&#10;(dp4689&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4690&#10;(dp4691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4692&#10;(dp4693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4694&#10;(dp4695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4696&#10;(dp4697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p4698&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4698&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4699&#10;(dp4700&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4701&#10;(dp4702&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4703&#10;(dp4704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4705&#10;(dp4706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4707&#10;(dp4708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4709&#10;(dp4710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p4711&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4711&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4712&#10;(dp4713&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4714&#10;(dp4715&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4716&#10;(dp4717&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4718&#10;(dp4719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4720&#10;(dp4721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4722&#10;(dp4723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p4724&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4724&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4725&#10;(dp4726&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4727&#10;(dp4728&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4729&#10;(dp4730&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4731&#10;(dp4732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4733&#10;(dp4734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4735&#10;(dp4736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p4737&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4737&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4738&#10;(dp4739&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4740&#10;(dp4741&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4742&#10;(dp4743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4744&#10;(dp4745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4746&#10;(dp4747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4748&#10;(dp4749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Decompressed Content Bytes Received'&#10;p4750&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4750&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4751&#10;(dp4752&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4753&#10;(dp4754&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4755&#10;(dp4756&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4757&#10;(dp4758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4759&#10;(dp4760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4761&#10;(dp4762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p4763&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4763&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4764&#10;(dp4765&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4766&#10;(dp4767&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4768&#10;(dp4769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4770&#10;(dp4771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4772&#10;(dp4773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4774&#10;(dp4775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p4776&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4776&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4777&#10;(dp4778&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4779&#10;(dp4780&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4781&#10;(dp4782&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4783&#10;(dp4784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4785&#10;(dp4786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4787&#10;(dp4788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected'&#10;p4789&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4789&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4790&#10;(dp4791&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4792&#10;(dp4793&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4794&#10;(dp4795&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4796&#10;(dp4797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4798&#10;(dp4799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4800&#10;(dp4801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Path Match Failed)'&#10;p4802&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4802&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4803&#10;(dp4804&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4805&#10;(dp4806&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4807&#10;(dp4808&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4809&#10;(dp4810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4811&#10;(dp4812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4813&#10;(dp4814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Domain Match Failed)'&#10;p4815&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4815&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4816&#10;(dp4817&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4818&#10;(dp4819&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4820&#10;(dp4821&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4822&#10;(dp4823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4824&#10;(dp4825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4826&#10;(dp4827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Cookiejar Overflow)'&#10;p4828&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4828&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4829&#10;(dp4830&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4831&#10;(dp4832&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4833&#10;(dp4834&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4835&#10;(dp4836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4837&#10;(dp4838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4839&#10;(dp4840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Probabilistic Reject)'&#10;p4841&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4841&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4842&#10;(dp4843&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4844&#10;(dp4845&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4846&#10;(dp4847&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4848&#10;(dp4849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4850&#10;(dp4851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4852&#10;(dp4853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookie headers Rejected - (Memory Overflow)'&#10;p4854&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4854&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4855&#10;(dp4856&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4857&#10;(dp4858&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4859&#10;(dp4860&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4861&#10;(dp4862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4863&#10;(dp4864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4865&#10;(dp4866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connect Time (us)'&#10;p4867&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4867&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4868&#10;(dp4869&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4870&#10;(dp4871&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4872&#10;(dp4873&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4874&#10;(dp4875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4876&#10;(dp4877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4878&#10;(dp4879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To First Byte (us)'&#10;p4880&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4880&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4881&#10;(dp4882&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4883&#10;(dp4884&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4885&#10;(dp4886&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4887&#10;(dp4888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4889&#10;(dp4890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4891&#10;(dp4892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To Last Byte (us)'&#10;p4893&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4893&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4894&#10;(dp4895&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4896&#10;(dp4897&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4898&#10;(dp4899&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4900&#10;(dp4901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4902&#10;(dp4903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4904&#10;(dp4905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Average (us)'&#10;p4906&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4906&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4907&#10;(dp4908&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4909&#10;(dp4910&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4911&#10;(dp4912&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4913&#10;(dp4914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4915&#10;(dp4916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4917&#10;(dp4918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Minimum (us)'&#10;p4919&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4919&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4920&#10;(dp4921&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4922&#10;(dp4923&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4924&#10;(dp4925&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4926&#10;(dp4927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4928&#10;(dp4929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4930&#10;(dp4931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Maximum (us)'&#10;p4932&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4932&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4933&#10;(dp4934&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4935&#10;(dp4936&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4937&#10;(dp4938&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4939&#10;(dp4940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4941&#10;(dp4942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4943&#10;(dp4944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Failed'&#10;p4945&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4945&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4946&#10;(dp4947&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4948&#10;(dp4949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4950&#10;(dp4951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4952&#10;(dp4953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4954&#10;(dp4955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4956&#10;(dp4957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Succeeded'&#10;p4958&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4958&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4959&#10;(dp4960&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4961&#10;(dp4962&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4963&#10;(dp4964&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4965&#10;(dp4966&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4967&#10;(dp4968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4969&#10;(dp4970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Received'&#10;p4971&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4971&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4972&#10;(dp4973&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4974&#10;(dp4975&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4976&#10;(dp4977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4978&#10;(dp4979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4980&#10;(dp4981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4982&#10;(dp4983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Received'&#10;p4984&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4984&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4985&#10;(dp4986&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4987&#10;(dp4988&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4989&#10;(dp4990&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4991&#10;(dp4992&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4993&#10;(dp4994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4995&#10;(dp4996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Received'&#10;p4997&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4997&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4998&#10;(dp4999&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5000&#10;(dp5001&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5002&#10;(dp5003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5004&#10;(dp5005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5006&#10;(dp5007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5008&#10;(dp5009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Received'&#10;p5010&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5010&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5011&#10;(dp5012&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5013&#10;(dp5014&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5015&#10;(dp5016&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5017&#10;(dp5018&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5019&#10;(dp5020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5021&#10;(dp5022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Received'&#10;p5023&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5023&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5024&#10;(dp5025&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5026&#10;(dp5027&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5028&#10;(dp5029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5030&#10;(dp5031&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5032&#10;(dp5033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5034&#10;(dp5035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Received'&#10;p5036&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5036&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5037&#10;(dp5038&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5039&#10;(dp5040&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5041&#10;(dp5042&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5043&#10;(dp5044&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5045&#10;(dp5046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5047&#10;(dp5048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Received'&#10;p5049&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5049&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5050&#10;(dp5051&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5052&#10;(dp5053&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5054&#10;(dp5055&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5056&#10;(dp5057&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5058&#10;(dp5059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5060&#10;(dp5061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Received'&#10;p5062&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5062&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5063&#10;(dp5064&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5065&#10;(dp5066&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5067&#10;(dp5068&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5069&#10;(dp5070&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5071&#10;(dp5072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5073&#10;(dp5074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Received'&#10;p5075&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5075&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5076&#10;(dp5077&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5078&#10;(dp5079&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5080&#10;(dp5081&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5082&#10;(dp5083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5084&#10;(dp5085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5086&#10;(dp5087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Received'&#10;p5088&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5088&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5089&#10;(dp5090&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5091&#10;(dp5092&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5093&#10;(dp5094&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5095&#10;(dp5096&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5097&#10;(dp5098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5099&#10;(dp5100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Sent'&#10;p5101&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5101&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5102&#10;(dp5103&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5104&#10;(dp5105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5106&#10;(dp5107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5108&#10;(dp5109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5110&#10;(dp5111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5112&#10;(dp5113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Sent'&#10;p5114&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5114&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5115&#10;(dp5116&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5117&#10;(dp5118&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5119&#10;(dp5120&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5121&#10;(dp5122&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5123&#10;(dp5124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5125&#10;(dp5126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Sent'&#10;p5127&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5127&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5128&#10;(dp5129&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5130&#10;(dp5131&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5132&#10;(dp5133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5134&#10;(dp5135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5136&#10;(dp5137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5138&#10;(dp5139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Sent'&#10;p5140&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5140&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5141&#10;(dp5142&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5143&#10;(dp5144&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5145&#10;(dp5146&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5147&#10;(dp5148&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5149&#10;(dp5150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5151&#10;(dp5152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Sent'&#10;p5153&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5153&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5154&#10;(dp5155&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5156&#10;(dp5157&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5158&#10;(dp5159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5160&#10;(dp5161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5162&#10;(dp5163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5164&#10;(dp5165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Sent'&#10;p5166&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5166&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5167&#10;(dp5168&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5169&#10;(dp5170&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5171&#10;(dp5172&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5173&#10;(dp5174&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5175&#10;(dp5176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5177&#10;(dp5178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Sent'&#10;p5179&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5179&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5180&#10;(dp5181&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5182&#10;(dp5183&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5184&#10;(dp5185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5186&#10;(dp5187&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5188&#10;(dp5189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5190&#10;(dp5191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Sent'&#10;p5192&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5192&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5193&#10;(dp5194&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5195&#10;(dp5196&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5197&#10;(dp5198&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5199&#10;(dp5200&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5201&#10;(dp5202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5203&#10;(dp5204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Sent'&#10;p5205&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5205&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5206&#10;(dp5207&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5208&#10;(dp5209&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5210&#10;(dp5211&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5212&#10;(dp5213&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5214&#10;(dp5215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5216&#10;(dp5217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Sent'&#10;p5218&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5218&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5219&#10;(dp5220&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5221&#10;(dp5222&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5223&#10;(dp5224&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5225&#10;(dp5226&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5227&#10;(dp5228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5229&#10;(dp5230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Client'&#10;p5231&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5231&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5232&#10;(dp5233&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5234&#10;(dp5235&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5236&#10;(dp5237&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5238&#10;(dp5239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5240&#10;(dp5241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5242&#10;(dp5243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Server'&#10;p5244&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5244&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5245&#10;(dp5246&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5247&#10;(dp5248&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5249&#10;(dp5250&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5251&#10;(dp5252&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5253&#10;(dp5254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5255&#10;(dp5256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Client to Server)'&#10;p5257&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5257&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5258&#10;(dp5259&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5260&#10;(dp5261&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5262&#10;(dp5263&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5264&#10;(dp5265&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5266&#10;(dp5267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5268&#10;(dp5269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Server to Client)'&#10;p5270&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5270&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5271&#10;(dp5272&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5273&#10;(dp5274&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5275&#10;(dp5276&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5277&#10;(dp5278&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5279&#10;(dp5280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5281&#10;(dp5282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Client to Server)'&#10;p5283&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5283&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5284&#10;(dp5285&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5286&#10;(dp5287&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5288&#10;(dp5289&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5290&#10;(dp5291&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5292&#10;(dp5293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5294&#10;(dp5295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Server to Client)'&#10;p5296&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5296&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5297&#10;(dp5298&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5299&#10;(dp5300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5301&#10;(dp5302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5303&#10;(dp5304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5305&#10;(dp5306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5307&#10;(dp5308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Succeeded'&#10;p5309&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5309&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5310&#10;(dp5311&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5312&#10;(dp5313&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5314&#10;(dp5315&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5316&#10;(dp5317&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5318&#10;(dp5319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5320&#10;(dp5321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Failed'&#10;p5322&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5322&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5323&#10;(dp5324&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5325&#10;(dp5326&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5327&#10;(dp5328&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5329&#10;(dp5330&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5331&#10;(dp5332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5333&#10;(dp5334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Protocol Error'&#10;p5335&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5335&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5336&#10;(dp5337&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5338&#10;(dp5339&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5340&#10;(dp5341&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5342&#10;(dp5343&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5344&#10;(dp5345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5346&#10;(dp5347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Internal Error'&#10;p5348&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5348&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5349&#10;(dp5350&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5351&#10;(dp5352&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5353&#10;(dp5354&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5355&#10;(dp5356&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5357&#10;(dp5358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5359&#10;(dp5360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Flow Control Error'&#10;p5361&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5361&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5362&#10;(dp5363&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5364&#10;(dp5365&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5366&#10;(dp5367&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5368&#10;(dp5369&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5370&#10;(dp5371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5372&#10;(dp5373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Timeout Error'&#10;p5374&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5374&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5375&#10;(dp5376&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5377&#10;(dp5378&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5379&#10;(dp5380&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5381&#10;(dp5382&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5383&#10;(dp5384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5385&#10;(dp5386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Closed Error'&#10;p5387&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5387&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5388&#10;(dp5389&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5390&#10;(dp5391&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5392&#10;(dp5393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5394&#10;(dp5395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5396&#10;(dp5397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5398&#10;(dp5399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Frame Size Error'&#10;p5400&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5400&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5401&#10;(dp5402&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5403&#10;(dp5404&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5405&#10;(dp5406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5407&#10;(dp5408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5409&#10;(dp5410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5411&#10;(dp5412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Refused Stream Error'&#10;p5413&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5413&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5414&#10;(dp5415&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5416&#10;(dp5417&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5418&#10;(dp5419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5420&#10;(dp5421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5422&#10;(dp5423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5424&#10;(dp5425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Cancelled Error'&#10;p5426&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5426&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5427&#10;(dp5428&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5429&#10;(dp5430&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5431&#10;(dp5432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5433&#10;(dp5434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5435&#10;(dp5436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5437&#10;(dp5438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Compression Error'&#10;p5439&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5439&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5440&#10;(dp5441&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5442&#10;(dp5443&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5444&#10;(dp5445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5446&#10;(dp5447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5448&#10;(dp5449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5450&#10;(dp5451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connect Error'&#10;p5452&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5452&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5453&#10;(dp5454&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5455&#10;(dp5456&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5457&#10;(dp5458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5459&#10;(dp5460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5461&#10;(dp5462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5463&#10;(dp5464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Enhance Calm Error'&#10;p5465&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5465&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5466&#10;(dp5467&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5468&#10;(dp5469&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5470&#10;(dp5471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5472&#10;(dp5473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5474&#10;(dp5475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5476&#10;(dp5477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Inadequate Security Error'&#10;p5478&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5478&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5479&#10;(dp5480&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5481&#10;(dp5482&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5483&#10;(dp5484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5485&#10;(dp5486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5487&#10;(dp5488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5489&#10;(dp5490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 HTTP1_1 Required Error'&#10;p5491&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5491&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5492&#10;(dp5493&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5494&#10;(dp5495&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5496&#10;(dp5497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5498&#10;(dp5499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5500&#10;(dp5501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5502&#10;(dp5503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p5504&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5504&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5505&#10;(dp5506&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5507&#10;(dp5508&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5509&#10;(dp5510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5511&#10;(dp5512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5513&#10;(dp5514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5515&#10;(dp5516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p5517&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5517&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5518&#10;(dp5519&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5520&#10;(dp5521&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5522&#10;(dp5523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5524&#10;(dp5525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5526&#10;(dp5527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5528&#10;(dp5529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p5530&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5530&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5531&#10;(dp5532&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5533&#10;(dp5534&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5535&#10;(dp5536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5537&#10;(dp5538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5539&#10;(dp5540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5541&#10;(dp5542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p5543&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5543&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5544&#10;(dp5545&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5546&#10;(dp5547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5548&#10;(dp5549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5550&#10;(dp5551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5552&#10;(dp5553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5554&#10;(dp5555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p5556&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5556&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5557&#10;(dp5558&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5559&#10;(dp5560&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5561&#10;(dp5562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5563&#10;(dp5564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5565&#10;(dp5566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5567&#10;(dp5568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p5569&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5569&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5570&#10;(dp5571&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5572&#10;(dp5573&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5574&#10;(dp5575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5576&#10;(dp5577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5578&#10;(dp5579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5580&#10;(dp5581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p5582&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5582&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5583&#10;(dp5584&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5585&#10;(dp5586&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5587&#10;(dp5588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5589&#10;(dp5590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5591&#10;(dp5592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5593&#10;(dp5594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p5595&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5595&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5596&#10;(dp5597&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5598&#10;(dp5599&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5600&#10;(dp5601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5602&#10;(dp5603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5604&#10;(dp5605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5606&#10;(dp5607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p5608&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5608&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5609&#10;(dp5610&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5611&#10;(dp5612&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5613&#10;(dp5614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5615&#10;(dp5616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5617&#10;(dp5618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5619&#10;(dp5620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p5621&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5621&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5622&#10;(dp5623&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5624&#10;(dp5625&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5626&#10;(dp5627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5628&#10;(dp5629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5630&#10;(dp5631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5632&#10;(dp5633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p5634&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5634&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5635&#10;(dp5636&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5637&#10;(dp5638&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5639&#10;(dp5640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5641&#10;(dp5642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5643&#10;(dp5644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5645&#10;(dp5646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p5647&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5647&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5648&#10;(dp5649&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5650&#10;(dp5651&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5652&#10;(dp5653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5654&#10;(dp5655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5656&#10;(dp5657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5658&#10;(dp5659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p5660&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5660&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5661&#10;(dp5662&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5663&#10;(dp5664&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5665&#10;(dp5666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5667&#10;(dp5668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5669&#10;(dp5670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5671&#10;(dp5672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p5673&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5673&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5674&#10;(dp5675&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5676&#10;(dp5677&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5678&#10;(dp5679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5680&#10;(dp5681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5682&#10;(dp5683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5684&#10;(dp5685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p5686&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5686&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5687&#10;(dp5688&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5689&#10;(dp5690&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5691&#10;(dp5692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5693&#10;(dp5694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5695&#10;(dp5696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5697&#10;(dp5698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p5699&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5699&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5700&#10;(dp5701&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5702&#10;(dp5703&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5704&#10;(dp5705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5706&#10;(dp5707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5708&#10;(dp5709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5710&#10;(dp5711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p5712&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5712&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5713&#10;(dp5714&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5715&#10;(dp5716&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5717&#10;(dp5718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5719&#10;(dp5720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5721&#10;(dp5722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5723&#10;(dp5724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p5725&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5725&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5726&#10;(dp5727&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5728&#10;(dp5729&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5730&#10;(dp5731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5732&#10;(dp5733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5734&#10;(dp5735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5736&#10;(dp5737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p5738&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5738&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5739&#10;(dp5740&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5741&#10;(dp5742&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5743&#10;(dp5744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5745&#10;(dp5746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5747&#10;(dp5748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5749&#10;(dp5750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p5751&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5751&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5752&#10;(dp5753&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5754&#10;(dp5755&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5756&#10;(dp5757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5758&#10;(dp5759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5760&#10;(dp5761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5762&#10;(dp5763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p5764&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5764&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5765&#10;(dp5766&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5767&#10;(dp5768&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5769&#10;(dp5770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5771&#10;(dp5772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5773&#10;(dp5774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5775&#10;(dp5776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p5777&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5777&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5778&#10;(dp5779&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5780&#10;(dp5781&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5782&#10;(dp5783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5784&#10;(dp5785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5786&#10;(dp5787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5788&#10;(dp5789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p5790&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5790&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5791&#10;(dp5792&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5793&#10;(dp5794&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5795&#10;(dp5796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5797&#10;(dp5798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5799&#10;(dp5800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5801&#10;(dp5802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p5803&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5803&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5804&#10;(dp5805&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5806&#10;(dp5807&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5808&#10;(dp5809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5810&#10;(dp5811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5812&#10;(dp5813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5814&#10;(dp5815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p5816&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5816&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5817&#10;(dp5818&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5819&#10;(dp5820&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5821&#10;(dp5822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5823&#10;(dp5824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5825&#10;(dp5826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5827&#10;(dp5828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p5829&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5829&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5830&#10;(dp5831&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5832&#10;(dp5833&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5834&#10;(dp5835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5836&#10;(dp5837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5838&#10;(dp5839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5840&#10;(dp5841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p5842&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5842&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5843&#10;(dp5844&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5845&#10;(dp5846&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5847&#10;(dp5848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5849&#10;(dp5850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5851&#10;(dp5852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5853&#10;(dp5854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p5855&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5855&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5856&#10;(dp5857&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5858&#10;(dp5859&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5860&#10;(dp5861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5862&#10;(dp5863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5864&#10;(dp5865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5866&#10;(dp5867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p5868&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5868&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5869&#10;(dp5870&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5871&#10;(dp5872&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5873&#10;(dp5874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5875&#10;(dp5876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5877&#10;(dp5878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5879&#10;(dp5880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p5881&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5881&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5882&#10;(dp5883&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5884&#10;(dp5885&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5886&#10;(dp5887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5888&#10;(dp5889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5890&#10;(dp5891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5892&#10;(dp5893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p5894&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5894&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5895&#10;(dp5896&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5897&#10;(dp5898&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5899&#10;(dp5900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5901&#10;(dp5902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5903&#10;(dp5904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5905&#10;(dp5906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p5907&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5907&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5908&#10;(dp5909&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5910&#10;(dp5911&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5912&#10;(dp5913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5914&#10;(dp5915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5916&#10;(dp5917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5918&#10;(dp5919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p5920&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5920&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5921&#10;(dp5922&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5923&#10;(dp5924&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5925&#10;(dp5926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5927&#10;(dp5928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5929&#10;(dp5930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5931&#10;(dp5932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p5933&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5933&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5934&#10;(dp5935&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5936&#10;(dp5937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5938&#10;(dp5939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5940&#10;(dp5941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5942&#10;(dp5943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5944&#10;(dp5945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p5946&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5946&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5947&#10;(dp5948&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5949&#10;(dp5950&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5951&#10;(dp5952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5953&#10;(dp5954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5955&#10;(dp5956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5957&#10;(dp5958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p5959&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5959&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5960&#10;(dp5961&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5962&#10;(dp5963&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5964&#10;(dp5965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5966&#10;(dp5967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5968&#10;(dp5969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5970&#10;(dp5971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p5972&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5972&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5973&#10;(dp5974&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5975&#10;(dp5976&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5977&#10;(dp5978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5979&#10;(dp5980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5981&#10;(dp5982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5983&#10;(dp5984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p5985&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5985&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5986&#10;(dp5987&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5988&#10;(dp5989&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5990&#10;(dp5991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5992&#10;(dp5993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5994&#10;(dp5995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5996&#10;(dp5997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p5998&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5998&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5999&#10;(dp6000&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6001&#10;(dp6002&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6003&#10;(dp6004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6005&#10;(dp6006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6007&#10;(dp6008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6009&#10;(dp6010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p6011&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6011&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6012&#10;(dp6013&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6014&#10;(dp6015&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6016&#10;(dp6017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6018&#10;(dp6019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6020&#10;(dp6021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6022&#10;(dp6023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p6024&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6024&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6025&#10;(dp6026&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6027&#10;(dp6028&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6029&#10;(dp6030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6031&#10;(dp6032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6033&#10;(dp6034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6035&#10;(dp6036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p6037&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6037&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6038&#10;(dp6039&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6040&#10;(dp6041&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6042&#10;(dp6043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6044&#10;(dp6045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6046&#10;(dp6047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6048&#10;(dp6049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p6050&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6050&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6051&#10;(dp6052&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6053&#10;(dp6054&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6055&#10;(dp6056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6057&#10;(dp6058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6059&#10;(dp6060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6061&#10;(dp6062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p6063&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6063&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6064&#10;(dp6065&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6066&#10;(dp6067&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6068&#10;(dp6069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6070&#10;(dp6071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6072&#10;(dp6073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6074&#10;(dp6075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p6076&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6076&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6077&#10;(dp6078&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6079&#10;(dp6080&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6081&#10;(dp6082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6083&#10;(dp6084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6085&#10;(dp6086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6087&#10;(dp6088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p6089&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6089&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6090&#10;(dp6091&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6092&#10;(dp6093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6094&#10;(dp6095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6096&#10;(dp6097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6098&#10;(dp6099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6100&#10;(dp6101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p6102&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6102&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6103&#10;(dp6104&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6105&#10;(dp6106&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6107&#10;(dp6108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6109&#10;(dp6110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6111&#10;(dp6112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6113&#10;(dp6114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p6115&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6115&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6116&#10;(dp6117&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6118&#10;(dp6119&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6120&#10;(dp6121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6122&#10;(dp6123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6124&#10;(dp6125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6126&#10;(dp6127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p6128&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6128&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6129&#10;(dp6130&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6131&#10;(dp6132&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6133&#10;(dp6134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6135&#10;(dp6136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6137&#10;(dp6138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6139&#10;(dp6140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p6141&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6141&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6142&#10;(dp6143&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6144&#10;(dp6145&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6146&#10;(dp6147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6148&#10;(dp6149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6150&#10;(dp6151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6152&#10;(dp6153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p6154&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6154&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6155&#10;(dp6156&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6157&#10;(dp6158&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6159&#10;(dp6160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6161&#10;(dp6162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6163&#10;(dp6164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6165&#10;(dp6166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p6167&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6167&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6168&#10;(dp6169&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6170&#10;(dp6171&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6172&#10;(dp6173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6174&#10;(dp6175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6176&#10;(dp6177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6178&#10;(dp6179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p6180&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6180&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6181&#10;(dp6182&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6183&#10;(dp6184&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6185&#10;(dp6186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6187&#10;(dp6188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6189&#10;(dp6190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6191&#10;(dp6192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p6193&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6193&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6194&#10;(dp6195&#10;g11&#10;Nsg12&#10;I186&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6196&#10;(dp6197&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6198&#10;(dp6199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6200&#10;(dp6201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6202&#10;(dp6203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6204&#10;(dp6205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p6206&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6206&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6207&#10;(dp6208&#10;g11&#10;Nsg12&#10;I187&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6209&#10;(dp6210&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6211&#10;(dp6212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6213&#10;(dp6214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6215&#10;(dp6216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6217&#10;(dp6218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p6219&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6219&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6220&#10;(dp6221&#10;g11&#10;Nsg12&#10;I188&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6222&#10;(dp6223&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6224&#10;(dp6225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6226&#10;(dp6227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6228&#10;(dp6229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6230&#10;(dp6231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p6232&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6232&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6233&#10;(dp6234&#10;g11&#10;Nsg12&#10;I189&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6235&#10;(dp6236&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6237&#10;(dp6238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6239&#10;(dp6240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6241&#10;(dp6242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6243&#10;(dp6244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p6245&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6245&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6246&#10;(dp6247&#10;g11&#10;Nsg12&#10;I190&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6248&#10;(dp6249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6250&#10;(dp6251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6252&#10;(dp6253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6254&#10;(dp6255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6256&#10;(dp6257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p6258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6259&#10;(dp6260&#10;g11&#10;Nsg12&#10;I191&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6261&#10;(dp6262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6263&#10;(dp6264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6265&#10;(dp6266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6267&#10;(dp6268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6269&#10;(dp6270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p6271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6272&#10;(dp6273&#10;g11&#10;Nsg12&#10;I192&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6274&#10;(dp6275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6276&#10;(dp6277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6278&#10;(dp6279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6280&#10;(dp6281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6282&#10;(dp6283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p6284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6285&#10;(dp6286&#10;g11&#10;Nsg12&#10;I193&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6287&#10;(dp6288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6289&#10;(dp6290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6291&#10;(dp6292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6293&#10;(dp6294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6295&#10;(dp6296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p6297&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6297&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6298&#10;(dp6299&#10;g11&#10;Nsg12&#10;I194&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6300&#10;(dp6301&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6302&#10;(dp6303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6304&#10;(dp6305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6306&#10;(dp6307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6308&#10;(dp6309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p6310&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6310&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6311&#10;(dp6312&#10;g11&#10;Nsg12&#10;I195&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6313&#10;(dp6314&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6315&#10;(dp6316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6317&#10;(dp6318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6319&#10;(dp6320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6321&#10;(dp6322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p6323&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6323&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6324&#10;(dp6325&#10;g11&#10;Nsg12&#10;I196&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6326&#10;(dp6327&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6328&#10;(dp6329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6330&#10;(dp6331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6332&#10;(dp6333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6334&#10;(dp6335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p6336&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6336&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6337&#10;(dp6338&#10;g11&#10;Nsg12&#10;I197&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6339&#10;(dp6340&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6341&#10;(dp6342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6343&#10;(dp6344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6345&#10;(dp6346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6347&#10;(dp6348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p6349&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6349&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6350&#10;(dp6351&#10;g11&#10;Nsg12&#10;I198&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6352&#10;(dp6353&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6354&#10;(dp6355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6356&#10;(dp6357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6358&#10;(dp6359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6360&#10;(dp6361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p6362&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6362&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6363&#10;(dp6364&#10;g11&#10;Nsg12&#10;I199&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6365&#10;(dp6366&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6367&#10;(dp6368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6369&#10;(dp6370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6371&#10;(dp6372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6373&#10;(dp6374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p6375&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6375&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6376&#10;(dp6377&#10;g11&#10;Nsg12&#10;I200&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6378&#10;(dp6379&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6380&#10;(dp6381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6382&#10;(dp6383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6384&#10;(dp6385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6386&#10;(dp6387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p6388&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6388&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6389&#10;(dp6390&#10;g11&#10;Nsg12&#10;I201&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6391&#10;(dp6392&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6393&#10;(dp6394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6395&#10;(dp6396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6397&#10;(dp6398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6399&#10;(dp6400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p6401&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6401&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6402&#10;(dp6403&#10;g11&#10;Nsg12&#10;I202&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6404&#10;(dp6405&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6406&#10;(dp6407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6408&#10;(dp6409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6410&#10;(dp6411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6412&#10;(dp6413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p6414&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6414&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6415&#10;(dp6416&#10;g11&#10;Nsg12&#10;I203&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6417&#10;(dp6418&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6419&#10;(dp6420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6421&#10;(dp6422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6423&#10;(dp6424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6425&#10;(dp6426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p6427&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6427&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6428&#10;(dp6429&#10;g11&#10;Nsg12&#10;I204&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6430&#10;(dp6431&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6432&#10;(dp6433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6434&#10;(dp6435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6436&#10;(dp6437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6438&#10;(dp6439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p6440&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6440&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6441&#10;(dp6442&#10;g11&#10;Nsg12&#10;I205&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6443&#10;(dp6444&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6445&#10;(dp6446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6447&#10;(dp6448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6449&#10;(dp6450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6451&#10;(dp6452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p6453&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6453&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6454&#10;(dp6455&#10;g11&#10;Nsg12&#10;I206&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6456&#10;(dp6457&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6458&#10;(dp6459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6460&#10;(dp6461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6462&#10;(dp6463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6464&#10;(dp6465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p6466&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6466&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6467&#10;(dp6468&#10;g11&#10;Nsg12&#10;I207&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6469&#10;(dp6470&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6471&#10;(dp6472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6473&#10;(dp6474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6475&#10;(dp6476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6477&#10;(dp6478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p6479&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6479&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6480&#10;(dp6481&#10;g11&#10;Nsg12&#10;I208&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6482&#10;(dp6483&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6484&#10;(dp6485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6486&#10;(dp6487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6488&#10;(dp6489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6490&#10;(dp6491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p6492&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6492&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6493&#10;(dp6494&#10;g11&#10;Nsg12&#10;I209&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6495&#10;(dp6496&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6497&#10;(dp6498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6499&#10;(dp6500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6501&#10;(dp6502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6503&#10;(dp6504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p6505&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6505&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6506&#10;(dp6507&#10;g11&#10;Nsg12&#10;I210&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6508&#10;(dp6509&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6510&#10;(dp6511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6512&#10;(dp6513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6514&#10;(dp6515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6516&#10;(dp6517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p6518&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6518&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6519&#10;(dp6520&#10;g11&#10;Nsg12&#10;I211&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6521&#10;(dp6522&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6523&#10;(dp6524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6525&#10;(dp6526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6527&#10;(dp6528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6529&#10;(dp6530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p6531&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6531&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6532&#10;(dp6533&#10;g11&#10;Nsg12&#10;I212&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6534&#10;(dp6535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6536&#10;(dp6537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6538&#10;(dp6539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6540&#10;(dp6541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6542&#10;(dp6543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p6544&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6544&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6545&#10;(dp6546&#10;g11&#10;Nsg12&#10;I213&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6547&#10;(dp6548&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6549&#10;(dp6550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6551&#10;(dp6552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6553&#10;(dp6554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6555&#10;(dp6556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p6557&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6557&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6558&#10;(dp6559&#10;g11&#10;Nsg12&#10;I214&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6560&#10;(dp6561&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6562&#10;(dp6563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6564&#10;(dp6565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6566&#10;(dp6567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6568&#10;(dp6569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p6570&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6570&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6571&#10;(dp6572&#10;g11&#10;Nsg12&#10;I215&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6573&#10;(dp6574&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6575&#10;(dp6576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6577&#10;(dp6578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6579&#10;(dp6580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6581&#10;(dp6582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p6583&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6583&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6584&#10;(dp6585&#10;g11&#10;Nsg12&#10;I216&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6586&#10;(dp6587&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6588&#10;(dp6589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6590&#10;(dp6591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6592&#10;(dp6593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6594&#10;(dp6595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p6596&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6596&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6597&#10;(dp6598&#10;g11&#10;Nsg12&#10;I217&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6599&#10;(dp6600&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6601&#10;(dp6602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6603&#10;(dp6604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6605&#10;(dp6606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6607&#10;(dp6608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p6609&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6609&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6610&#10;(dp6611&#10;g11&#10;Nsg12&#10;I218&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6612&#10;(dp6613&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6614&#10;(dp6615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6616&#10;(dp6617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6618&#10;(dp6619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6620&#10;(dp6621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p6622&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6622&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6623&#10;(dp6624&#10;g11&#10;Nsg12&#10;I219&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6625&#10;(dp6626&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6627&#10;(dp6628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6629&#10;(dp6630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6631&#10;(dp6632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6633&#10;(dp6634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p6635&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6635&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6636&#10;(dp6637&#10;g11&#10;Nsg12&#10;I220&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6638&#10;(dp6639&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6640&#10;(dp6641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6642&#10;(dp6643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6644&#10;(dp6645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6646&#10;(dp6647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p6648&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6648&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6649&#10;(dp6650&#10;g11&#10;Nsg12&#10;I221&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6651&#10;(dp6652&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6653&#10;(dp6654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6655&#10;(dp6656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6657&#10;(dp6658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6659&#10;(dp6660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p6661&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6661&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6662&#10;(dp6663&#10;g11&#10;Nsg12&#10;I222&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6664&#10;(dp6665&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6666&#10;(dp6667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6668&#10;(dp6669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6670&#10;(dp6671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6672&#10;(dp6673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p6674&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6674&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6675&#10;(dp6676&#10;g11&#10;Nsg12&#10;I223&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6677&#10;(dp6678&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6679&#10;(dp6680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6681&#10;(dp6682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6683&#10;(dp6684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6685&#10;(dp6686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p6687&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6687&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6688&#10;(dp6689&#10;g11&#10;Nsg12&#10;I224&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6690&#10;(dp6691&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6692&#10;(dp6693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6694&#10;(dp6695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6696&#10;(dp6697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6698&#10;(dp6699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p6700&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6700&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6701&#10;(dp6702&#10;g11&#10;Nsg12&#10;I225&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6703&#10;(dp6704&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6705&#10;(dp6706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6707&#10;(dp6708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6709&#10;(dp6710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6711&#10;(dp6712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p6713&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6713&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6714&#10;(dp6715&#10;g11&#10;Nsg12&#10;I226&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6716&#10;(dp6717&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6718&#10;(dp6719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6720&#10;(dp6721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6722&#10;(dp6723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6724&#10;(dp6725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p6726&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6726&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6727&#10;(dp6728&#10;g11&#10;Nsg12&#10;I227&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6729&#10;(dp6730&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6731&#10;(dp6732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6733&#10;(dp6734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6735&#10;(dp6736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6737&#10;(dp6738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p6739&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6739&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6740&#10;(dp6741&#10;g11&#10;Nsg12&#10;I228&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6742&#10;(dp6743&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6744&#10;(dp6745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6746&#10;(dp6747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6748&#10;(dp6749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6750&#10;(dp6751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p6752&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6752&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6753&#10;(dp6754&#10;g11&#10;Nsg12&#10;I229&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6755&#10;(dp6756&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6757&#10;(dp6758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6759&#10;(dp6760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6761&#10;(dp6762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6763&#10;(dp6764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p6765&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6765&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6766&#10;(dp6767&#10;g11&#10;Nsg12&#10;I230&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6768&#10;(dp6769&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6770&#10;(dp6771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6772&#10;(dp6773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6774&#10;(dp6775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6776&#10;(dp6777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p6778&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6778&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6779&#10;(dp6780&#10;g11&#10;Nsg12&#10;I231&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6781&#10;(dp6782&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6783&#10;(dp6784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6785&#10;(dp6786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6787&#10;(dp6788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6789&#10;(dp6790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p6791&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6791&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6792&#10;(dp6793&#10;g11&#10;Nsg12&#10;I232&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6794&#10;(dp6795&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6796&#10;(dp6797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6798&#10;(dp6799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6800&#10;(dp6801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6802&#10;(dp6803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p6804&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6804&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6805&#10;(dp6806&#10;g11&#10;Nsg12&#10;I233&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6807&#10;(dp6808&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6809&#10;(dp6810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6811&#10;(dp6812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6813&#10;(dp6814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6815&#10;(dp6816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p6817&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6817&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6818&#10;(dp6819&#10;g11&#10;Nsg12&#10;I234&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6820&#10;(dp6821&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6822&#10;(dp6823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6824&#10;(dp6825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6826&#10;(dp6827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6828&#10;(dp6829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p6830&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6830&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6831&#10;(dp6832&#10;g11&#10;Nsg12&#10;I235&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6833&#10;(dp6834&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6835&#10;(dp6836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6837&#10;(dp6838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6839&#10;(dp6840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6841&#10;(dp6842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p6843&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6843&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6844&#10;(dp6845&#10;g11&#10;Nsg12&#10;I236&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6846&#10;(dp6847&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6848&#10;(dp6849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6850&#10;(dp6851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6852&#10;(dp6853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6854&#10;(dp6855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p6856&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6856&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6857&#10;(dp6858&#10;g11&#10;Nsg12&#10;I237&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6859&#10;(dp6860&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6861&#10;(dp6862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6863&#10;(dp6864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6865&#10;(dp6866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6867&#10;(dp6868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p6869&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6869&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6870&#10;(dp6871&#10;g11&#10;Nsg12&#10;I238&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6872&#10;(dp6873&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6874&#10;(dp6875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6876&#10;(dp6877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6878&#10;(dp6879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6880&#10;(dp6881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p6882&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6882&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6883&#10;(dp6884&#10;g11&#10;Nsg12&#10;I239&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6885&#10;(dp6886&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6887&#10;(dp6888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6889&#10;(dp6890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6891&#10;(dp6892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6893&#10;(dp6894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p6895&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6895&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6896&#10;(dp6897&#10;g11&#10;Nsg12&#10;I240&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6898&#10;(dp6899&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6900&#10;(dp6901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6902&#10;(dp6903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6904&#10;(dp6905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6906&#10;(dp6907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p6908&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6908&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6909&#10;(dp6910&#10;g11&#10;Nsg12&#10;I241&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6911&#10;(dp6912&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6913&#10;(dp6914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6915&#10;(dp6916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6917&#10;(dp6918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6919&#10;(dp6920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p6921&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6921&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6922&#10;(dp6923&#10;g11&#10;Nsg12&#10;I242&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6924&#10;(dp6925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6926&#10;(dp6927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6928&#10;(dp6929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6930&#10;(dp6931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6932&#10;(dp6933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p6934&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6934&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6935&#10;(dp6936&#10;g11&#10;Nsg12&#10;I243&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6937&#10;(dp6938&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6939&#10;(dp6940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6941&#10;(dp6942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6943&#10;(dp6944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6945&#10;(dp6946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p6947&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6947&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6948&#10;(dp6949&#10;g11&#10;Nsg12&#10;I244&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6950&#10;(dp6951&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6952&#10;(dp6953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6954&#10;(dp6955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6956&#10;(dp6957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6958&#10;(dp6959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p6960&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6960&#10;sbatRp6961&#10;(dp6962&#10;g12&#10;I244&#10;sg22&#10;I00&#10;sg11&#10;Nsbs.</svRestConfiguration>
</statManagerOptions>
<currentUniqueIDForAgent type="int">2</currentUniqueIDForAgent>
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-4K.rxf b/samples/vnf_samples/traffic_profiles/ixload/HTTP-Throughput_2Ports.rxf
index 2ec85b5af..ef7b30526 100644
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-4K.rxf
+++ b/samples/vnf_samples/traffic_profiles/ixload/HTTP-Throughput_2Ports.rxf
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>
<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
<_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;04a56313-c07c-4fae-acc5-e29a816e1311&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c284265e-5fc6-4a6a-ad6e-a8c3f465d00b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
+ <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;628fdbe1-4254-48b1-8765-a4d5bbafd1ff&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;uplink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;downlink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c284265e-5fc6-4a6a-ad6e-a8c3f465d00b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;payloadAttrTypes type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
</_smSessionXml>
<_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
<xml type="str"></xml>
@@ -10,11 +10,11 @@
<xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
</_quickTestConfig>
<lastApiUniqueId type="int">15481</lastApiUniqueId>
- <version type="str">8.20.0.273</version>
- <name type="str">HTTP-vFW_IPv4_2Ports-CC-4K.rxf</name>
+ <version type="str">8.30.115.152</version>
+ <name type="str">HTTP-Throughput_2Ports.rxf</name>
<comment type="str"></comment>
- <path type="str">F:\IXIA-TESTS</path>
- <last type="str">HTTP-vFW_IPv4_2Ports-CC-1B.rxf</last>
+ <path type="str">C:\ixload</path>
+ <last type="str">HTTP-Throughput_2Ports.rxf</last>
<activeTest type="str">Test1</activeTest>
<chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
<chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
@@ -54,8 +54,8 @@
<item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
<name type="str">Client</name>
<elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
+ <item ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
+ <name type="str">HTTP client@uplink_0</name>
<column type="NoneType">None</column>
<scenarioElementType type="str">netTraffic</scenarioElementType>
<enable type="int">1</enable>
@@ -98,8 +98,8 @@
<inUse type="bool">True</inUse>
<customPortMap type="NoneType">None</customPortMap>
<sourceCommunity ref="0"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
+ <destinationCommunity ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
+ <name type="str">HTTP server@downlink_0</name>
<column type="NoneType">None</column>
<scenarioElementType type="str">netTraffic</scenarioElementType>
<enable type="int">1</enable>
@@ -484,7 +484,7 @@
</traffic>
<network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
<resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
+ <name type="str">downlink_0</name>
<role type="str">Server</role>
<networkType type="str">none</networkType>
<aggregation type="int">0</aggregation>
@@ -498,7 +498,7 @@
<networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
<item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
<_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (152.40.40.20+1)</name>
+ <name type="str">Network Range IP-R2 in downlink_0 (152.40.40.20+1)</name>
<rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
<name type="str">DistGroup1</name>
<ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
@@ -743,6 +743,7 @@
<browserEmulationName type="str">Custom1</browserEmulationName>
<enableSsl type="int">0</enableSsl>
<sslVersion type="int">3</sslVersion>
+ <disableMacValidation type="int">0</disableMacValidation>
<sslReuseMethod type="int">0</sslReuseMethod>
<sequentialSessionReuse type="int">0</sequentialSessionReuse>
<enablesslRecordSize type="int">0</enablesslRecordSize>
@@ -807,7 +808,7 @@
</item>
</outputList>
<destination type="str">HTTP server_newServerActivity1:80</destination>
- <pageObject type="str">/4k.html</pageObject>
+ <pageObject type="str">/1b.html</pageObject>
<abort type="str">None</abort>
<arguments type="str"></arguments>
<namevalueargs type="str"></namevalueargs>
@@ -862,12 +863,16 @@
<ipPreference type="int">2</ipPreference>
<tcpCloseOption type="int">0</tcpCloseOption>
<piggybackAck type="int">1</piggybackAck>
+ <tcpFastOpen type="int">0</tcpFastOpen>
<enableLargeHeader type="int">0</enableLargeHeader>
<maxHeaderLen type="int">1024</maxHeaderLen>
<useAllIPs type="int">0</useAllIPs>
<enableDecompressSupport type="int">0</enableDecompressSupport>
<enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
<enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
+ <enableAuth type="int">0</enableAuth>
+ <authProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthProfileList" itemtype="ixAuthProfile"/>
+ <ipMappingList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthIpMapList" itemtype="ixAuthIpMap"/>
<uniqueID type="int">1</uniqueID>
<disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
<methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
@@ -889,7 +894,7 @@
</traffic>
<network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
<resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
+ <name type="str">uplink_0</name>
<role type="str">Client</role>
<networkType type="str">none</networkType>
<aggregation type="int">0</aggregation>
@@ -903,7 +908,7 @@
<networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
<item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
<_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (152.16.100.20+1)</name>
+ <name type="str">Network Range IP-R1 in uplink_0 (152.16.100.20+1)</name>
<rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
<name type="str">DistGroup1</name>
<ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
@@ -1031,15 +1036,15 @@
<role type="str">Client</role>
<activeRole type="str">Client</activeRole>
<objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
+ <objectiveType type="str">throughputKBps</objectiveType>
+ <objectiveValue type="int">1250000</objectiveValue>
+ <userObjectiveType type="str">throughputMbps</userObjectiveType>
+ <userObjectiveValue type="long">10000</userObjectiveValue>
+ <constraintType type="str">SimulatedUserConstraint</constraintType>
<constraintValue type="int">100</constraintValue>
<timerGranularity type="int">100</timerGranularity>
<enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
+ <secondaryConstraintType type="str">SimulatedUserConstraint</secondaryConstraintType>
<secondaryConstraintValue type="int">100</secondaryConstraintValue>
<secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
<portMapPolicy type="str">portMesh</portMapPolicy>
@@ -1050,7 +1055,7 @@
<playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
<objectID type="int">0</objectID>
<_apiUniqueId type="int">12954</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
+ <_objectiveValue type="int">1250000</_objectiveValue>
<timelineScale type="float">1.0</timelineScale>
</item>
</activityParameters>
@@ -1110,16 +1115,16 @@
<iterationTime type="int">620</iterationTime>
<totalTime type="int">620</totalTime>
<portMapPolicy type="str">portPairs</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
+ <objectiveType type="str">n/a</objectiveType>
+ <objectiveValue type="int">1250000</objectiveValue>
<rampUpType type="int">-1</rampUpType>
<rampUpValue type="int">30000</rampUpValue>
<rampUpInterval type="int">1</rampUpInterval>
<rampUpTime type="int">0</rampUpTime>
<rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
+ <userObjectiveType type="str">throughputMbps</userObjectiveType>
+ <userObjectiveValue type="long">10000</userObjectiveValue>
+ <totalUserObjectiveValue type="long">10000</totalUserObjectiveValue>
<objectID type="int">0</objectID>
<_apiUniqueId type="int">12925</_apiUniqueId>
<isVisible type="bool">True</isVisible>
@@ -1258,7 +1263,7 @@
<pollingInterval type="int">2</pollingInterval>
<allowCsvLogging type="bool">False</allowCsvLogging>
<enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;EOXC@8_BL1*U6[TN9P(-!2VA'EF$9# 1'FD+:KRB2&amp;&gt;B&lt;DC.UPS&amp;K_&#10;M^]K.00@)K78_M''\/.]AY[']FLZ'_=I7MHA0' 9W-: 9M0_W'8=!]@6C'2)'&#10;MJ*DU#&lt;W0S%:SQ@F(BMX1IDSYA YW-;AA&gt;(^A1K?:1EA0A@(7:3G&gt;5P(W'.+&amp;&#10;MO&lt;EX/AC/%?V^,YT-'-[LSNW)N/C^,NC;\^[#:&quot;&quot; WN3IP1X/^EEHFK7&gt;D\!9&#10;M\/O.D* ?$&gt;&lt;&lt;E&quot;WT(W17,VLR$-V.PM4*!ZNT?PA]BB0VQVOD' +W ;W&quot;+0Y)&#10;MRC RE#*XWDP)&lt;K',+,'K$A^L&quot;$]&amp;3.O\L$$I!B0VX=/LA]&quot;;DI AE^5LYR1&quot;&#10;MA&lt;0&gt;L&gt;&gt;A0#BBYSD. KCP41\RZ+&quot;0H'/&quot;]#@[^3P:9=87(_&amp;$)A';1&quot;R;R:?(&#10;M9WCC%\&lt;F27WG#=H3W O949Y?+Z(L7'_DW^PUXS33F$/LHRED&amp;2+[NSXBC*9/&#10;MA6LZH.T]Q7&gt;U5\8V;5W?[7;:KJZ%9*6;A@'T;T\CQWU%:ZCB@'\T/AFUS,I[&#10;MVTH&amp;U=.H?;2$?$QRGD[?).T4[I$P40%!B*.%]QGT&lt;/B1A-&amp;F .&quot; W9L=73PZ&#10;M&gt;B6KYV,4L&amp;%(UI$/'&lt;08UTOV[?Z^^F7?O^7_NK=7/Z*0W7Z)%W?\THX?0+/B&#10;MQN]G;#&amp; A/O'$?SSV/SGV(R7!%\0LR@HYG'EL]N3?2&gt;-;,0-A:LD]+A% D1L&#10;MJ8)FW/YPM6*WN&lt;RXJR2*'2Q#!Q$,??P3BB7T %&lt;Y)&lt;3F[Y9#DLE1$^^SCUFG&#10;M.2J*R'+]PI+9X&quot;K'+E_I&amp;UKDQ4PQGC%&lt;(X&amp;*-A&quot;=&gt;KZWW*8'&amp;5J%Y&quot; 88@GK&#10;MC_/Y-+/-H^?VO&gt;4J75B&quot;,&amp;P_V]_LKCH?.'/G6?A1M\.O+_9TVW@QIR%7O=KK&#10;MJ&gt;!!(_NEC%&quot;P+T\0D70 'CT.ZMA[;M6/Y)@5O1)^W&quot;4BOL!QWN*(-&quot;:+O\3.&#10;MNT7T$NL1KUY]_L&lt;J6=G^RFR^=S*\Q(@(INNYUF+A&gt;JJ%W(7: #&lt;+=6$&quot;I()6&#10;MRS&quot;0Z0&amp;S;LDYJ7)P'HJ+*:\3_@J U91.&lt;M&quot;YW6&gt;*B&amp;/W!&gt;BH0+54$Z@MTZHW&#10;M+*M15YN&amp;&quot;9H\F6O5,EMFO64V#+5N-&amp;]NFBWI.F==FA+7-V'(FP2&quot;81J@I0*@&#10;M&amp;JTYJ+&gt;M1AM86M,TK&amp;M@JL9UVS#2;$^L*OR&amp;_ SG#(4OYW: _61),GY&quot;)JNU&#10;MXI/$F^(3=%]Q@-)IZ8^=CZH0&gt;:S?,LH;GKJ&gt;)TYTP03-&amp;\VT&amp;II9-S1@WAP-&#10;MVVUPNEGI52[.@]G[,6*[D'Q/MVG.NM;,N JK2V=EE N.9LA'D,JQV?L1KS&gt;4&#10;M:PT8RJ![ZBQ'N^ L7&gt;N]]C/?S%8$KA6Q!5#EU_UU\[=GFU=CSW&amp;49Y&amp;U6HQ2&#10;MO5?8^QG:\$T&amp;D=RPZEI+C!RT$B\EE/(E^_G)&lt;:$O1P.,1'&quot;%_G-#9YN#/RWX&#10;M5BW,3GI+12HKDS,92N/W' &quot;Y@P)17C/0R4:&lt;9!4&quot;Z86^S_&lt;L4&lt;9)12,&amp;^0?P&#10;M8IF=8I7&amp;(P1)@#QQ&gt; K&gt;4I1W&gt;0&lt;%O-+/T ]WLB&quot;AI6Y.X4HO?.\33%D(&quot;J)&lt;&#10;MVSDW1?R2HZ3TO^2K2*EVQ^ORT U].^&quot;*6T(7E7LL954ZG8410S,8K,J]%&gt; R&#10;M-^N-V#WFF5R*4U^&amp;5^GRHMYB77J'0*B6W[=*3K\3RA=1Z)V1LJ574:T)=EQ9&#10;M9[&gt;T_W!!S IO&lt;4$)_(-\!Z)CA(/OR#L6YD&lt;;/5'&quot;L45+&lt;7&amp;1O&gt;]((2L!/R7N&#10;M:M);+7&gt;#KIWB\5VFIH3$0T3&gt;=:#+A4%':(O\]-*I2PM^HPW6F\O764Y(Z@-Y&#10;M9\G=9P74&quot;X,E7D4$YF^08M8I!UT.RN^1O&amp;\AB7.,#T]AGQRC4-9!Y\&gt;KAZA+&#10;ML%1( N;*7&gt;Z5'VD^/\_2,DM\[210/JZ'MF\8Y!AZ/O/_JPUI+L8I'ME/'/?_&#10;% D1BE1\ &#10; &#10;end&#10;</svConfiguration>
+ <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;MSXC84_2L&gt;.LVTT_HAFU?(8R&lt;!LF&amp;6! :S:6&gt;:SHZP!6C7V%Y9YM%.&#10;M_WNO9&amp;.,L4FF_;&quot;+K'/NU95T='65ZP_;E:&gt;L&quot;8MHX-_4D&amp;;4/MQ&gt;VQSS%THV&#10;MA!V@IM8T-$.SC&amp;8-&quot;&quot;02O4,:&lt;&gt;43V=W4&lt;,CIEF(M6FNAL(@X\1VBY7B_,1P&quot;&#10;M!,;=T?.T_SQ5]-OK\:1O0_-N.A@]%[^_]'N#Z=W]L&quot;^ [NCI?O#&lt;[V5#1UGK&#10;M/0&amp;&lt;#'Y[_&lt;#(]Q@X.V6-O9C&lt;U,R:'&quot;A:#X/%@OJ+??\#]B(BL2E=$7OG._=D&#10;MB=&lt;T8'N&amp;D:$1QZMPS(A#960I;DF\OV 0C%C6Z2XD&gt;PQ); 3+[ 78';. $X?G&#10;M;*&lt;L)H7 'JGK$E\XBDYC[/MXYI$&gt;YMCF 2.GA/%A=?)QU,NLSXX$ 8UB'L8\&#10;M6\FGV.,T](ISDZ2&gt;_0;M&quot;6^%[&quot;*(KQM'/%A]A#U;9ISF?LP'ZI$QYADB^^\\&#10;MPGBT_U5 TW[4V4;TIK;D/.SH^F:ST3:6%K&quot;%;AH&amp;TG]_&amp;MK.DJRP2GW8-%B,&#10;M6F;EOFTE!]7WH_;(',.&lt;Y#H=?TG:,=QE0:H&quot;1@B@A&gt;\)=FGPD05Q6 &quot;HSV_-&#10;M:UW\7.N5K*Y'B&lt;\? K:*/6P3SD$OV=[]??'#MG&lt;%_]U=77R/ W[UDASNY*.3&#10;M_&quot;&quot;MD31^/6&amp;+&quot;:3&lt;/P[@GX?F/X=F&lt;B3@0$QBOQC'A&lt;&gt;OCO+.?F0C:2B@DL %&#10;MBQ2(^5Q%S:3]X6+!KW*1@:MTE($_#VS&quot;*/;H7U@&lt;H7N\R&quot;DA,7^W'-)(#IIX&#10;MGWW&quot;.HY14424JR\\70U0.77@I(=1D9&lt;PQ7R&gt;\8H(5+21Z-3SO&gt;4V7&lt;S)(F [&#10;MP1!'6'^&lt;3L&gt;9;1X]M&gt;_.%_N#)0C=SBO=BH3T*GRHTR5(;;&amp;$8_S%' &gt;@&gt;8UM&#10;MY])SP:X\,,+V@;O183*'WE.K7BSGJNB5\.,F%&gt;\9COT61X0QFGT5&amp;7=-HG.L&#10;M1[I8&gt;O&quot;/5[*RO,H'D#,YG5/&quot;!--QG&lt;9LYKAJ@S@SM8XN9^K,1$1%K99A$--%&#10;MIM60:U+EX'0H$%%&gt;'_&quot;)4*,IG&gt;2@4[O/$6'VH&quot;= 6T5J0S61:AH-$R%D&amp;::*&#10;MS!:T#:.%X+35Z_5+=&amp;FUU+;5:+;KTGG.OC0H4#;CQ!WY@F$:J*TB&amp;* U16:G&#10;MWNR8+:UMU9%9O_S%,#J&amp;L8_WR*K&quot;;P&quot;W-S 4.,@=GWKI8&gt;1P-Z;GM&amp;)3DG3X&#10;MA)TE]&lt;E^8&gt;S!\&amp;4\?!G8DYYM)'HLY;WA[LYUQ84NF,C03*NEP4)JR+(.=G/2&#10;M-CH=JX[KG6;;,CIXYC8ZIM7^$9G'*4RO\GP:PV#[3/@F8-_VR1M8;2C+--&quot; &#10;MAAJF=%=&amp;.N-J0CR&quot;(SGIP78(QUYI:\A0^G?'SG*T,\YR.022W(+AE2)21*3\&#10;MM&amp;TW?WX=0)7VFHSR*N)6^W?JY]&quot;%[%0(O3JG#+83$D(:(BPW/4MKB?JTT4Z]&#10;ME%#*C_;G)]O!'DGV,95EH?_4T%[GX$\S2.7&quot;[*BW5,JR&lt;CD1JS1^SP61NTA(&#10;M!#5%- K%35&lt;AE6[@&gt;9#;1)DG[P3&quot;,6R$FPCN&amp;*LT'A+,?.**RU7PYJ+\RSLH&#10;MX)5^'KQ@(PN6J-3-,5SI!7*D8,I&quot;41!E!LBY*&gt;+G'*5/@W.^BI1J=U&quot;W!T[@&#10;M#7Q0W!P[I-QC*:O2Z22(.9E@?U'NK0&quot;7N5F%(H],,[D4E[X,K]+E6;TENG1W&#10;MOE MO,=*;LDCRHLH!$](V=&amp;KJ.8$.ZF\LU?&lt;?WA 9H6Y&gt;,#XWDY^(]$QI/XW&#10;MXAX*]X.-GBKAT(I*&lt;?'0O;V60E9\N$9N:M);+??&quot;KAWCR5NGI@3,)4R^A; #&#10;MPHB&amp;9$V\_:-4EQ;PXO57X?GG+A#2.D*^:7+O70%U W].%S'#^1&gt;F6/4(0 = &#10;MN1_I]QJS),;DBA7VZ66+9;UT&gt;@F[)'(8E0I)P5PY#%[A&lt;O/@9MN78V*WTX'R&#10;&lt;X[ID_89!CJ'G(_^_VI#F8I[B)_L3R.V_9+6?IP &#10; &#10;end&#10;</svConfiguration>
<svRestConfiguration type="str">(dp1&#10;S'HTTP Server Per URL'&#10;p2&#10;ccopy_reg&#10;_reconstructor&#10;p3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStatsList&#10;p4&#10;c__builtin__&#10;list&#10;p5&#10;(lp6&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStat&#10;p7&#10;c__builtin__&#10;object&#10;p8&#10;NtRp9&#10;(dp10&#10;S'proxyPropertyList'&#10;p11&#10;NsS'_objectID'&#10;p12&#10;I0&#10;sS'enabled'&#10;p13&#10;I01&#10;sS'filterList'&#10;p14&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixRestFilters&#10;p15&#10;g8&#10;NtRp16&#10;(dp17&#10;S'cardFilters'&#10;p18&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixCardFilterList&#10;p19&#10;g5&#10;(ltRp20&#10;(dp21&#10;g12&#10;I-1&#10;sS'_resourceLocked'&#10;p22&#10;I00&#10;sg11&#10;NsbsS'activityFilters'&#10;p23&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixActivityFilterList&#10;p24&#10;g5&#10;(ltRp25&#10;(dp26&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sS'chassisFilters'&#10;p27&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixChassisFilterList&#10;p28&#10;g5&#10;(ltRp29&#10;(dp30&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sS'portFilters'&#10;p31&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixPortFilterList&#10;p32&#10;g5&#10;(ltRp33&#10;(dp34&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;NsbsbsS'caption'&#10;p35&#10;S'HTTP Requests Received'&#10;p36&#10;sg22&#10;I00&#10;sS'aggregationType'&#10;p37&#10;S'kSum'&#10;p38&#10;sS'statName'&#10;p39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp40&#10;(dp41&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp42&#10;(dp43&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp44&#10;(dp45&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp46&#10;(dp47&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp48&#10;(dp49&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp50&#10;(dp51&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp53&#10;(dp54&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp55&#10;(dp56&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp57&#10;(dp58&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp59&#10;(dp60&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp61&#10;(dp62&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp63&#10;(dp64&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp66&#10;(dp67&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp68&#10;(dp69&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp70&#10;(dp71&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp72&#10;(dp73&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp74&#10;(dp75&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp76&#10;(dp77&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (50x)'&#10;p78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp79&#10;(dp80&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp81&#10;(dp82&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp83&#10;(dp84&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp85&#10;(dp86&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp87&#10;(dp88&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp89&#10;(dp90&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write Error)'&#10;p91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp92&#10;(dp93&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp94&#10;(dp95&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp96&#10;(dp97&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp98&#10;(dp99&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp100&#10;(dp101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp102&#10;(dp103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent'&#10;p104&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g104&#10;sbag3&#10;(g7&#10;g8&#10;NtRp105&#10;(dp106&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp107&#10;(dp108&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp109&#10;(dp110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp111&#10;(dp112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp113&#10;(dp114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp115&#10;(dp116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (1xx)'&#10;p117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp118&#10;(dp119&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp120&#10;(dp121&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp122&#10;(dp123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp124&#10;(dp125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp126&#10;(dp127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp128&#10;(dp129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (2xx)'&#10;p130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp131&#10;(dp132&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp133&#10;(dp134&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp135&#10;(dp136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp137&#10;(dp138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp139&#10;(dp140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp141&#10;(dp142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (3xx)'&#10;p143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp144&#10;(dp145&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp146&#10;(dp147&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp148&#10;(dp149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp150&#10;(dp151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp152&#10;(dp153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp154&#10;(dp155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (4xx)'&#10;p156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp157&#10;(dp158&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp159&#10;(dp160&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp161&#10;(dp162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp163&#10;(dp164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp165&#10;(dp166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp167&#10;(dp168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (5xx)'&#10;p169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp170&#10;(dp171&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp172&#10;(dp173&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp174&#10;(dp175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp176&#10;(dp177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp178&#10;(dp179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp180&#10;(dp181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (Other)'&#10;p182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp183&#10;(dp184&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp185&#10;(dp186&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp187&#10;(dp188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp189&#10;(dp190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp191&#10;(dp192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp193&#10;(dp194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Write Error)'&#10;p195&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g195&#10;sbag3&#10;(g7&#10;g8&#10;NtRp196&#10;(dp197&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp198&#10;(dp199&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp200&#10;(dp201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp202&#10;(dp203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp204&#10;(dp205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp206&#10;(dp207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Aborted)'&#10;p208&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g208&#10;sbag3&#10;(g7&#10;g8&#10;NtRp209&#10;(dp210&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp211&#10;(dp212&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp213&#10;(dp214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp215&#10;(dp216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp217&#10;(dp218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp219&#10;(dp220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Other)'&#10;p221&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g221&#10;sbag3&#10;(g7&#10;g8&#10;NtRp222&#10;(dp223&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp224&#10;(dp225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp226&#10;(dp227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp228&#10;(dp229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp230&#10;(dp231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp232&#10;(dp233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Sent'&#10;p234&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g234&#10;sbag3&#10;(g7&#10;g8&#10;NtRp235&#10;(dp236&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp237&#10;(dp238&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp239&#10;(dp240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp241&#10;(dp242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp243&#10;(dp244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp245&#10;(dp246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp248&#10;(dp249&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp250&#10;(dp251&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp252&#10;(dp253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp254&#10;(dp255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp256&#10;(dp257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp258&#10;(dp259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p260&#10;sg22&#10;I00&#10;sg37&#10;S'kWeightedAverage'&#10;p261&#10;sg39&#10;g260&#10;sbag3&#10;(g7&#10;g8&#10;NtRp262&#10;(dp263&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp264&#10;(dp265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp266&#10;(dp267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp268&#10;(dp269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp270&#10;(dp271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp272&#10;(dp273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p274&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp275&#10;(dp276&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp277&#10;(dp278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp279&#10;(dp280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp281&#10;(dp282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp283&#10;(dp284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp285&#10;(dp286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Received'&#10;p287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp288&#10;(dp289&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp290&#10;(dp291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp292&#10;(dp293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp294&#10;(dp295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp296&#10;(dp297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp298&#10;(dp299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp301&#10;(dp302&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp303&#10;(dp304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp305&#10;(dp306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp307&#10;(dp308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp309&#10;(dp310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp311&#10;(dp312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Received Chunk Size'&#10;p313&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp314&#10;(dp315&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp316&#10;(dp317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp318&#10;(dp319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp320&#10;(dp321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp322&#10;(dp323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp324&#10;(dp325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p326&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp327&#10;(dp328&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp329&#10;(dp330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp331&#10;(dp332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp333&#10;(dp334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp335&#10;(dp336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp337&#10;(dp338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Received'&#10;p339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp340&#10;(dp341&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp342&#10;(dp343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp344&#10;(dp345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp346&#10;(dp347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp348&#10;(dp349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp350&#10;(dp351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Successful'&#10;p352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp353&#10;(dp354&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp355&#10;(dp356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp357&#10;(dp358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp359&#10;(dp360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp361&#10;(dp362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp363&#10;(dp364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Failed'&#10;p365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp366&#10;(dp367&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp368&#10;(dp369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp370&#10;(dp371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp372&#10;(dp373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp374&#10;(dp375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp376&#10;(dp377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Request Received'&#10;p378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp379&#10;(dp380&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp381&#10;(dp382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp383&#10;(dp384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp385&#10;(dp386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp387&#10;(dp388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp389&#10;(dp390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Response Sent'&#10;p391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbatRp392&#10;(dp393&#10;g12&#10;I27&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Server'&#10;p394&#10;g3&#10;(g4&#10;g5&#10;(lp395&#10;g3&#10;(g7&#10;g8&#10;NtRp396&#10;(dp397&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp398&#10;(dp399&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp400&#10;(dp401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp402&#10;(dp403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp404&#10;(dp405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp406&#10;(dp407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g36&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp408&#10;(dp409&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp410&#10;(dp411&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp412&#10;(dp413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp414&#10;(dp415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp416&#10;(dp417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp418&#10;(dp419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp420&#10;(dp421&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp422&#10;(dp423&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp424&#10;(dp425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp426&#10;(dp427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp428&#10;(dp429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp430&#10;(dp431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p432&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g432&#10;sbag3&#10;(g7&#10;g8&#10;NtRp433&#10;(dp434&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp435&#10;(dp436&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp437&#10;(dp438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp439&#10;(dp440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp441&#10;(dp442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp443&#10;(dp444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp445&#10;(dp446&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp447&#10;(dp448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp449&#10;(dp450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp451&#10;(dp452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp453&#10;(dp454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp455&#10;(dp456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp457&#10;(dp458&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp459&#10;(dp460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp461&#10;(dp462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp463&#10;(dp464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp465&#10;(dp466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp467&#10;(dp468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp469&#10;(dp470&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp471&#10;(dp472&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp473&#10;(dp474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp475&#10;(dp476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp477&#10;(dp478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp479&#10;(dp480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p481&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g481&#10;sbag3&#10;(g7&#10;g8&#10;NtRp482&#10;(dp483&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp484&#10;(dp485&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp486&#10;(dp487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp488&#10;(dp489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp490&#10;(dp491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp492&#10;(dp493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p494&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g494&#10;sbag3&#10;(g7&#10;g8&#10;NtRp495&#10;(dp496&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp497&#10;(dp498&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp499&#10;(dp500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp501&#10;(dp502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp503&#10;(dp504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp505&#10;(dp506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p507&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g507&#10;sbag3&#10;(g7&#10;g8&#10;NtRp508&#10;(dp509&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp510&#10;(dp511&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp512&#10;(dp513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp514&#10;(dp515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp516&#10;(dp517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp518&#10;(dp519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp520&#10;(dp521&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp522&#10;(dp523&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp524&#10;(dp525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp526&#10;(dp527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp528&#10;(dp529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp530&#10;(dp531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp532&#10;(dp533&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp534&#10;(dp535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp536&#10;(dp537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp538&#10;(dp539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp540&#10;(dp541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp542&#10;(dp543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp544&#10;(dp545&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp546&#10;(dp547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp548&#10;(dp549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp550&#10;(dp551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp552&#10;(dp553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp554&#10;(dp555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp556&#10;(dp557&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp558&#10;(dp559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp560&#10;(dp561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp562&#10;(dp563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp564&#10;(dp565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp566&#10;(dp567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp568&#10;(dp569&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp570&#10;(dp571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp572&#10;(dp573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp574&#10;(dp575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp576&#10;(dp577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp578&#10;(dp579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp580&#10;(dp581&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp582&#10;(dp583&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp584&#10;(dp585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp586&#10;(dp587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp588&#10;(dp589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp590&#10;(dp591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p592&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g592&#10;sbag3&#10;(g7&#10;g8&#10;NtRp593&#10;(dp594&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp595&#10;(dp596&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp597&#10;(dp598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp599&#10;(dp600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp601&#10;(dp602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp603&#10;(dp604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p605&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g605&#10;sbag3&#10;(g7&#10;g8&#10;NtRp606&#10;(dp607&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp608&#10;(dp609&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp610&#10;(dp611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp612&#10;(dp613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp614&#10;(dp615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp616&#10;(dp617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p618&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g618&#10;sbag3&#10;(g7&#10;g8&#10;NtRp619&#10;(dp620&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp621&#10;(dp622&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp623&#10;(dp624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp625&#10;(dp626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp627&#10;(dp628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp629&#10;(dp630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p631&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g631&#10;sbag3&#10;(g7&#10;g8&#10;NtRp632&#10;(dp633&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp634&#10;(dp635&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp636&#10;(dp637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp638&#10;(dp639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp640&#10;(dp641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp642&#10;(dp643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p644&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g644&#10;sbag3&#10;(g7&#10;g8&#10;NtRp645&#10;(dp646&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp647&#10;(dp648&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp649&#10;(dp650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp651&#10;(dp652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp653&#10;(dp654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp655&#10;(dp656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p657&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g657&#10;sbag3&#10;(g7&#10;g8&#10;NtRp658&#10;(dp659&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp660&#10;(dp661&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp662&#10;(dp663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp664&#10;(dp665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp666&#10;(dp667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp668&#10;(dp669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Matching ServerID'&#10;p670&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g670&#10;sbag3&#10;(g7&#10;g8&#10;NtRp671&#10;(dp672&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp673&#10;(dp674&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp675&#10;(dp676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp677&#10;(dp678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp679&#10;(dp680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp681&#10;(dp682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Non-matching ServerID'&#10;p683&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g683&#10;sbag3&#10;(g7&#10;g8&#10;NtRp684&#10;(dp685&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp686&#10;(dp687&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp688&#10;(dp689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp690&#10;(dp691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp692&#10;(dp693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp694&#10;(dp695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Encoded Responses Sent'&#10;p696&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g696&#10;sbag3&#10;(g7&#10;g8&#10;NtRp697&#10;(dp698&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp699&#10;(dp700&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp701&#10;(dp702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp703&#10;(dp704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp705&#10;(dp706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp707&#10;(dp708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp709&#10;(dp710&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp711&#10;(dp712&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp713&#10;(dp714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp715&#10;(dp716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp717&#10;(dp718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp719&#10;(dp720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Transfer-Encoded Requests Received'&#10;p721&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g721&#10;sbag3&#10;(g7&#10;g8&#10;NtRp722&#10;(dp723&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp724&#10;(dp725&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp726&#10;(dp727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp728&#10;(dp729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp730&#10;(dp731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp732&#10;(dp733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp734&#10;(dp735&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp736&#10;(dp737&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp738&#10;(dp739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp740&#10;(dp741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp742&#10;(dp743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp744&#10;(dp745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp746&#10;(dp747&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp748&#10;(dp749&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp750&#10;(dp751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp752&#10;(dp753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp754&#10;(dp755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp756&#10;(dp757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp758&#10;(dp759&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp760&#10;(dp761&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp762&#10;(dp763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp764&#10;(dp765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp766&#10;(dp767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp768&#10;(dp769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp770&#10;(dp771&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp772&#10;(dp773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp774&#10;(dp775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp776&#10;(dp777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp778&#10;(dp779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp780&#10;(dp781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp782&#10;(dp783&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp784&#10;(dp785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp786&#10;(dp787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp788&#10;(dp789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp790&#10;(dp791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp792&#10;(dp793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp794&#10;(dp795&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp796&#10;(dp797&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp798&#10;(dp799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp800&#10;(dp801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp802&#10;(dp803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp804&#10;(dp805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Sent'&#10;p806&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g806&#10;sbag3&#10;(g7&#10;g8&#10;NtRp807&#10;(dp808&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp809&#10;(dp810&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp811&#10;(dp812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp813&#10;(dp814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp815&#10;(dp816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp817&#10;(dp818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Sent'&#10;p819&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g819&#10;sbag3&#10;(g7&#10;g8&#10;NtRp820&#10;(dp821&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp822&#10;(dp823&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp824&#10;(dp825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp826&#10;(dp827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp828&#10;(dp829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp830&#10;(dp831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Sent'&#10;p832&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g832&#10;sbag3&#10;(g7&#10;g8&#10;NtRp833&#10;(dp834&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp835&#10;(dp836&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp837&#10;(dp838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp839&#10;(dp840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp841&#10;(dp842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp843&#10;(dp844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Sent'&#10;p845&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g845&#10;sbag3&#10;(g7&#10;g8&#10;NtRp846&#10;(dp847&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp848&#10;(dp849&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp850&#10;(dp851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp852&#10;(dp853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp854&#10;(dp855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp856&#10;(dp857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Sent'&#10;p858&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g858&#10;sbag3&#10;(g7&#10;g8&#10;NtRp859&#10;(dp860&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp861&#10;(dp862&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp863&#10;(dp864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp865&#10;(dp866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp867&#10;(dp868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp869&#10;(dp870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Sent'&#10;p871&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g871&#10;sbag3&#10;(g7&#10;g8&#10;NtRp872&#10;(dp873&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp874&#10;(dp875&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp876&#10;(dp877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp878&#10;(dp879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp880&#10;(dp881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp882&#10;(dp883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Sent'&#10;p884&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g884&#10;sbag3&#10;(g7&#10;g8&#10;NtRp885&#10;(dp886&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp887&#10;(dp888&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp889&#10;(dp890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp891&#10;(dp892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp893&#10;(dp894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp895&#10;(dp896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Sent'&#10;p897&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g897&#10;sbag3&#10;(g7&#10;g8&#10;NtRp898&#10;(dp899&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp900&#10;(dp901&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp902&#10;(dp903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp904&#10;(dp905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp906&#10;(dp907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp908&#10;(dp909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Sent'&#10;p910&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g910&#10;sbag3&#10;(g7&#10;g8&#10;NtRp911&#10;(dp912&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp913&#10;(dp914&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp915&#10;(dp916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp917&#10;(dp918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp919&#10;(dp920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp921&#10;(dp922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Sent'&#10;p923&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g923&#10;sbag3&#10;(g7&#10;g8&#10;NtRp924&#10;(dp925&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp926&#10;(dp927&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp928&#10;(dp929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp930&#10;(dp931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp932&#10;(dp933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp934&#10;(dp935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Received'&#10;p936&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g936&#10;sbag3&#10;(g7&#10;g8&#10;NtRp937&#10;(dp938&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp939&#10;(dp940&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp941&#10;(dp942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp943&#10;(dp944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp945&#10;(dp946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp947&#10;(dp948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Received'&#10;p949&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g949&#10;sbag3&#10;(g7&#10;g8&#10;NtRp950&#10;(dp951&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp952&#10;(dp953&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp954&#10;(dp955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp956&#10;(dp957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp958&#10;(dp959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp960&#10;(dp961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Received'&#10;p962&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g962&#10;sbag3&#10;(g7&#10;g8&#10;NtRp963&#10;(dp964&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp965&#10;(dp966&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp967&#10;(dp968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp969&#10;(dp970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp971&#10;(dp972&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp973&#10;(dp974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Received'&#10;p975&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g975&#10;sbag3&#10;(g7&#10;g8&#10;NtRp976&#10;(dp977&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp978&#10;(dp979&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp980&#10;(dp981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp982&#10;(dp983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp984&#10;(dp985&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp986&#10;(dp987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Received'&#10;p988&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g988&#10;sbag3&#10;(g7&#10;g8&#10;NtRp989&#10;(dp990&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp991&#10;(dp992&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp993&#10;(dp994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp995&#10;(dp996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp997&#10;(dp998&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp999&#10;(dp1000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Received'&#10;p1001&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1001&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1002&#10;(dp1003&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1004&#10;(dp1005&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1006&#10;(dp1007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1008&#10;(dp1009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1010&#10;(dp1011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1012&#10;(dp1013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Received'&#10;p1014&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1014&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1015&#10;(dp1016&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1017&#10;(dp1018&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1019&#10;(dp1020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1021&#10;(dp1022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1023&#10;(dp1024&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1025&#10;(dp1026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Received'&#10;p1027&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1027&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1028&#10;(dp1029&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1030&#10;(dp1031&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1032&#10;(dp1033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1034&#10;(dp1035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1036&#10;(dp1037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1038&#10;(dp1039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Received'&#10;p1040&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1040&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1041&#10;(dp1042&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1043&#10;(dp1044&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1045&#10;(dp1046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1047&#10;(dp1048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1049&#10;(dp1050&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1051&#10;(dp1052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Received'&#10;p1053&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1053&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1054&#10;(dp1055&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1056&#10;(dp1057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1058&#10;(dp1059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1060&#10;(dp1061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1062&#10;(dp1063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1064&#10;(dp1065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Client'&#10;p1066&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1066&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1067&#10;(dp1068&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1069&#10;(dp1070&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1071&#10;(dp1072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1073&#10;(dp1074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1075&#10;(dp1076&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1077&#10;(dp1078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Server'&#10;p1079&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1079&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1080&#10;(dp1081&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1082&#10;(dp1083&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1084&#10;(dp1085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1086&#10;(dp1087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1088&#10;(dp1089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1090&#10;(dp1091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Client to Server'&#10;p1092&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1092&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1093&#10;(dp1094&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1095&#10;(dp1096&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1097&#10;(dp1098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1099&#10;(dp1100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1101&#10;(dp1102&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1103&#10;(dp1104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Server to Client'&#10;p1105&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1105&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1106&#10;(dp1107&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1108&#10;(dp1109&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1110&#10;(dp1111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1112&#10;(dp1113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1114&#10;(dp1115&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1116&#10;(dp1117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Client to Server'&#10;p1118&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1118&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1119&#10;(dp1120&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1121&#10;(dp1122&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1123&#10;(dp1124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1125&#10;(dp1126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1127&#10;(dp1128&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1129&#10;(dp1130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Server to Client'&#10;p1131&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1131&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1132&#10;(dp1133&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1134&#10;(dp1135&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1136&#10;(dp1137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1138&#10;(dp1139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1140&#10;(dp1141&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1142&#10;(dp1143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Succeeded'&#10;p1144&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1144&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1145&#10;(dp1146&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1147&#10;(dp1148&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1149&#10;(dp1150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1151&#10;(dp1152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1153&#10;(dp1154&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1155&#10;(dp1156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Failed'&#10;p1157&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1157&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1158&#10;(dp1159&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1160&#10;(dp1161&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1162&#10;(dp1163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1164&#10;(dp1165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1166&#10;(dp1167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1168&#10;(dp1169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Protocol Error'&#10;p1170&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1170&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1171&#10;(dp1172&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1173&#10;(dp1174&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1175&#10;(dp1176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1177&#10;(dp1178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1179&#10;(dp1180&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1181&#10;(dp1182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Internal Error'&#10;p1183&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1183&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1184&#10;(dp1185&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1186&#10;(dp1187&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1188&#10;(dp1189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1190&#10;(dp1191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1192&#10;(dp1193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1194&#10;(dp1195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Flow Control Error'&#10;p1196&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1196&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1197&#10;(dp1198&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1199&#10;(dp1200&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1201&#10;(dp1202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1203&#10;(dp1204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1205&#10;(dp1206&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1207&#10;(dp1208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Settings Timeout Error'&#10;p1209&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1209&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1210&#10;(dp1211&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1212&#10;(dp1213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1214&#10;(dp1215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1216&#10;(dp1217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1218&#10;(dp1219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1220&#10;(dp1221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Closed Error'&#10;p1222&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1222&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1223&#10;(dp1224&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1225&#10;(dp1226&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1227&#10;(dp1228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1229&#10;(dp1230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1231&#10;(dp1232&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1233&#10;(dp1234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Frame Size Error'&#10;p1235&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1235&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1236&#10;(dp1237&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1238&#10;(dp1239&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1240&#10;(dp1241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1242&#10;(dp1243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1244&#10;(dp1245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1246&#10;(dp1247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Refused Stream Error'&#10;p1248&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1248&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1249&#10;(dp1250&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1251&#10;(dp1252&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1253&#10;(dp1254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1255&#10;(dp1256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1257&#10;(dp1258&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1259&#10;(dp1260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Cancelled Error'&#10;p1261&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1261&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1262&#10;(dp1263&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1264&#10;(dp1265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1266&#10;(dp1267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1268&#10;(dp1269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1270&#10;(dp1271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1272&#10;(dp1273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Compression Error'&#10;p1274&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1275&#10;(dp1276&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1277&#10;(dp1278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1279&#10;(dp1280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1281&#10;(dp1282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1283&#10;(dp1284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1285&#10;(dp1286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connect Error'&#10;p1287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1288&#10;(dp1289&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1290&#10;(dp1291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1292&#10;(dp1293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1294&#10;(dp1295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1296&#10;(dp1297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1298&#10;(dp1299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Enhance Calm Error'&#10;p1300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1301&#10;(dp1302&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1303&#10;(dp1304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1305&#10;(dp1306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1307&#10;(dp1308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1309&#10;(dp1310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1311&#10;(dp1312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Inadequate Security Error'&#10;p1313&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1314&#10;(dp1315&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1316&#10;(dp1317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1318&#10;(dp1319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1320&#10;(dp1321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1322&#10;(dp1323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1324&#10;(dp1325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HTTP1.1 Required Error'&#10;p1326&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1327&#10;(dp1328&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1329&#10;(dp1330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1331&#10;(dp1332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1333&#10;(dp1334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1335&#10;(dp1336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1337&#10;(dp1338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p1339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1340&#10;(dp1341&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1342&#10;(dp1343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1344&#10;(dp1345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1346&#10;(dp1347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1348&#10;(dp1349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1350&#10;(dp1351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p1352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1353&#10;(dp1354&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1355&#10;(dp1356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1357&#10;(dp1358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1359&#10;(dp1360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1361&#10;(dp1362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1363&#10;(dp1364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p1365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1366&#10;(dp1367&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1368&#10;(dp1369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1370&#10;(dp1371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1372&#10;(dp1373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1374&#10;(dp1375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1376&#10;(dp1377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p1378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1379&#10;(dp1380&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1381&#10;(dp1382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1383&#10;(dp1384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1385&#10;(dp1386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1387&#10;(dp1388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1389&#10;(dp1390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p1391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1392&#10;(dp1393&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1394&#10;(dp1395&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1396&#10;(dp1397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1398&#10;(dp1399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1400&#10;(dp1401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1402&#10;(dp1403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p1404&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1404&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1405&#10;(dp1406&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1407&#10;(dp1408&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1409&#10;(dp1410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1411&#10;(dp1412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1413&#10;(dp1414&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1415&#10;(dp1416&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p1417&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1417&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1418&#10;(dp1419&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1420&#10;(dp1421&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1422&#10;(dp1423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1424&#10;(dp1425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1426&#10;(dp1427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1428&#10;(dp1429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p1430&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1430&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1431&#10;(dp1432&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1433&#10;(dp1434&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1435&#10;(dp1436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1437&#10;(dp1438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1439&#10;(dp1440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1441&#10;(dp1442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p1443&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1443&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1444&#10;(dp1445&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1446&#10;(dp1447&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1448&#10;(dp1449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1450&#10;(dp1451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1452&#10;(dp1453&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1454&#10;(dp1455&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p1456&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1456&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1457&#10;(dp1458&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1459&#10;(dp1460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1461&#10;(dp1462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1463&#10;(dp1464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1465&#10;(dp1466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1467&#10;(dp1468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p1469&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1469&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1470&#10;(dp1471&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1472&#10;(dp1473&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1474&#10;(dp1475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1476&#10;(dp1477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1478&#10;(dp1479&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1480&#10;(dp1481&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p1482&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1482&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1483&#10;(dp1484&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1485&#10;(dp1486&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1487&#10;(dp1488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1489&#10;(dp1490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1491&#10;(dp1492&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1493&#10;(dp1494&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p1495&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1495&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1496&#10;(dp1497&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1498&#10;(dp1499&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1500&#10;(dp1501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1502&#10;(dp1503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1504&#10;(dp1505&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1506&#10;(dp1507&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p1508&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1508&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1509&#10;(dp1510&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1511&#10;(dp1512&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1513&#10;(dp1514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1515&#10;(dp1516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1517&#10;(dp1518&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1519&#10;(dp1520&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p1521&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1521&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1522&#10;(dp1523&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1524&#10;(dp1525&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1526&#10;(dp1527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1528&#10;(dp1529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1530&#10;(dp1531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1532&#10;(dp1533&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p1534&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1534&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1535&#10;(dp1536&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1537&#10;(dp1538&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1539&#10;(dp1540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1541&#10;(dp1542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1543&#10;(dp1544&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1545&#10;(dp1546&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p1547&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1547&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1548&#10;(dp1549&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1550&#10;(dp1551&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1552&#10;(dp1553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1554&#10;(dp1555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1556&#10;(dp1557&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1558&#10;(dp1559&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p1560&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1560&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1561&#10;(dp1562&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1563&#10;(dp1564&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1565&#10;(dp1566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1567&#10;(dp1568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1569&#10;(dp1570&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1571&#10;(dp1572&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p1573&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1573&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1574&#10;(dp1575&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1576&#10;(dp1577&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1578&#10;(dp1579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1580&#10;(dp1581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1582&#10;(dp1583&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1584&#10;(dp1585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p1586&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1586&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1587&#10;(dp1588&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1589&#10;(dp1590&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1591&#10;(dp1592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1593&#10;(dp1594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1595&#10;(dp1596&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1597&#10;(dp1598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p1599&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1599&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1600&#10;(dp1601&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1602&#10;(dp1603&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1604&#10;(dp1605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1606&#10;(dp1607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1608&#10;(dp1609&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1610&#10;(dp1611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p1612&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1612&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1613&#10;(dp1614&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1615&#10;(dp1616&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1617&#10;(dp1618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1619&#10;(dp1620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1621&#10;(dp1622&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1623&#10;(dp1624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p1625&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1625&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1626&#10;(dp1627&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1628&#10;(dp1629&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1630&#10;(dp1631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1632&#10;(dp1633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1634&#10;(dp1635&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1636&#10;(dp1637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p1638&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1638&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1639&#10;(dp1640&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1641&#10;(dp1642&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1643&#10;(dp1644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1645&#10;(dp1646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1647&#10;(dp1648&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1649&#10;(dp1650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p1651&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1651&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1652&#10;(dp1653&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1654&#10;(dp1655&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1656&#10;(dp1657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1658&#10;(dp1659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1660&#10;(dp1661&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1662&#10;(dp1663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p1664&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1664&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1665&#10;(dp1666&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1667&#10;(dp1668&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1669&#10;(dp1670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1671&#10;(dp1672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1673&#10;(dp1674&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1675&#10;(dp1676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p1677&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1677&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1678&#10;(dp1679&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1680&#10;(dp1681&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1682&#10;(dp1683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1684&#10;(dp1685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1686&#10;(dp1687&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1688&#10;(dp1689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p1690&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1690&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1691&#10;(dp1692&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1693&#10;(dp1694&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1695&#10;(dp1696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1697&#10;(dp1698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1699&#10;(dp1700&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1701&#10;(dp1702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p1703&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1703&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1704&#10;(dp1705&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1706&#10;(dp1707&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1708&#10;(dp1709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1710&#10;(dp1711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1712&#10;(dp1713&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1714&#10;(dp1715&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p1716&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1716&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1717&#10;(dp1718&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1719&#10;(dp1720&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1721&#10;(dp1722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1723&#10;(dp1724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1725&#10;(dp1726&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1727&#10;(dp1728&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p1729&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1729&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1730&#10;(dp1731&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1732&#10;(dp1733&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1734&#10;(dp1735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1736&#10;(dp1737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1738&#10;(dp1739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1740&#10;(dp1741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p1742&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1742&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1743&#10;(dp1744&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1745&#10;(dp1746&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1747&#10;(dp1748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1749&#10;(dp1750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1751&#10;(dp1752&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1753&#10;(dp1754&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p1755&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1755&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1756&#10;(dp1757&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1758&#10;(dp1759&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1760&#10;(dp1761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1762&#10;(dp1763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1764&#10;(dp1765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1766&#10;(dp1767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p1768&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1768&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1769&#10;(dp1770&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1771&#10;(dp1772&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1773&#10;(dp1774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1775&#10;(dp1776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1777&#10;(dp1778&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1779&#10;(dp1780&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p1781&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1781&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1782&#10;(dp1783&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1784&#10;(dp1785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1786&#10;(dp1787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1788&#10;(dp1789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1790&#10;(dp1791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1792&#10;(dp1793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p1794&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1794&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1795&#10;(dp1796&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1797&#10;(dp1798&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1799&#10;(dp1800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1801&#10;(dp1802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1803&#10;(dp1804&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1805&#10;(dp1806&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p1807&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1807&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1808&#10;(dp1809&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1810&#10;(dp1811&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1812&#10;(dp1813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1814&#10;(dp1815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1816&#10;(dp1817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1818&#10;(dp1819&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p1820&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1820&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1821&#10;(dp1822&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1823&#10;(dp1824&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1825&#10;(dp1826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1827&#10;(dp1828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1829&#10;(dp1830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1831&#10;(dp1832&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p1833&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1833&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1834&#10;(dp1835&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1836&#10;(dp1837&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1838&#10;(dp1839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1840&#10;(dp1841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1842&#10;(dp1843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1844&#10;(dp1845&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p1846&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1846&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1847&#10;(dp1848&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1849&#10;(dp1850&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1851&#10;(dp1852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1853&#10;(dp1854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1855&#10;(dp1856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1857&#10;(dp1858&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p1859&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1859&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1860&#10;(dp1861&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1862&#10;(dp1863&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1864&#10;(dp1865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1866&#10;(dp1867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1868&#10;(dp1869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1870&#10;(dp1871&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p1872&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1872&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1873&#10;(dp1874&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1875&#10;(dp1876&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1877&#10;(dp1878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1879&#10;(dp1880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1881&#10;(dp1882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1883&#10;(dp1884&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p1885&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1885&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1886&#10;(dp1887&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1888&#10;(dp1889&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1890&#10;(dp1891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1892&#10;(dp1893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1894&#10;(dp1895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1896&#10;(dp1897&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p1898&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1898&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1899&#10;(dp1900&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1901&#10;(dp1902&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1903&#10;(dp1904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1905&#10;(dp1906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1907&#10;(dp1908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1909&#10;(dp1910&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p1911&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1911&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1912&#10;(dp1913&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1914&#10;(dp1915&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1916&#10;(dp1917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1918&#10;(dp1919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1920&#10;(dp1921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1922&#10;(dp1923&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p1924&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1924&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1925&#10;(dp1926&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1927&#10;(dp1928&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1929&#10;(dp1930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1931&#10;(dp1932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1933&#10;(dp1934&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1935&#10;(dp1936&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p1937&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1937&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1938&#10;(dp1939&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1940&#10;(dp1941&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1942&#10;(dp1943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1944&#10;(dp1945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1946&#10;(dp1947&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1948&#10;(dp1949&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p1950&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1950&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1951&#10;(dp1952&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1953&#10;(dp1954&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1955&#10;(dp1956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1957&#10;(dp1958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1959&#10;(dp1960&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1961&#10;(dp1962&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p1963&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1963&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1964&#10;(dp1965&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1966&#10;(dp1967&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1968&#10;(dp1969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1970&#10;(dp1971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1972&#10;(dp1973&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1974&#10;(dp1975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p1976&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1976&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1977&#10;(dp1978&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1979&#10;(dp1980&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1981&#10;(dp1982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1983&#10;(dp1984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1985&#10;(dp1986&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1987&#10;(dp1988&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p1989&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1989&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1990&#10;(dp1991&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1992&#10;(dp1993&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1994&#10;(dp1995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1996&#10;(dp1997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1998&#10;(dp1999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2000&#10;(dp2001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p2002&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2002&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2003&#10;(dp2004&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2005&#10;(dp2006&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2007&#10;(dp2008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2009&#10;(dp2010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2011&#10;(dp2012&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2013&#10;(dp2014&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p2015&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2015&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2016&#10;(dp2017&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2018&#10;(dp2019&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2020&#10;(dp2021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2022&#10;(dp2023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2024&#10;(dp2025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2026&#10;(dp2027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p2028&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2028&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2029&#10;(dp2030&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2031&#10;(dp2032&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2033&#10;(dp2034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2035&#10;(dp2036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2037&#10;(dp2038&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2039&#10;(dp2040&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p2041&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2041&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2042&#10;(dp2043&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2044&#10;(dp2045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2046&#10;(dp2047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2048&#10;(dp2049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2050&#10;(dp2051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2052&#10;(dp2053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p2054&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2054&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2055&#10;(dp2056&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2057&#10;(dp2058&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2059&#10;(dp2060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2061&#10;(dp2062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2063&#10;(dp2064&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2065&#10;(dp2066&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p2067&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2067&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2068&#10;(dp2069&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2070&#10;(dp2071&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2072&#10;(dp2073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2074&#10;(dp2075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2076&#10;(dp2077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2078&#10;(dp2079&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p2080&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2080&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2081&#10;(dp2082&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2083&#10;(dp2084&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2085&#10;(dp2086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2087&#10;(dp2088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2089&#10;(dp2090&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2091&#10;(dp2092&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p2093&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2093&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2094&#10;(dp2095&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2096&#10;(dp2097&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2098&#10;(dp2099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2100&#10;(dp2101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2102&#10;(dp2103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2104&#10;(dp2105&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p2106&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2106&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2107&#10;(dp2108&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2109&#10;(dp2110&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2111&#10;(dp2112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2113&#10;(dp2114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2115&#10;(dp2116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2117&#10;(dp2118&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p2119&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2119&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2120&#10;(dp2121&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2122&#10;(dp2123&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2124&#10;(dp2125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2126&#10;(dp2127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2128&#10;(dp2129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2130&#10;(dp2131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p2132&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2132&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2133&#10;(dp2134&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2135&#10;(dp2136&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2137&#10;(dp2138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2139&#10;(dp2140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2141&#10;(dp2142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2143&#10;(dp2144&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p2145&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2145&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2146&#10;(dp2147&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2148&#10;(dp2149&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2150&#10;(dp2151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2152&#10;(dp2153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2154&#10;(dp2155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2156&#10;(dp2157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p2158&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2158&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2159&#10;(dp2160&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2161&#10;(dp2162&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2163&#10;(dp2164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2165&#10;(dp2166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2167&#10;(dp2168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2169&#10;(dp2170&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p2171&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2171&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2172&#10;(dp2173&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2174&#10;(dp2175&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2176&#10;(dp2177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2178&#10;(dp2179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2180&#10;(dp2181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2182&#10;(dp2183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p2184&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2184&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2185&#10;(dp2186&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2187&#10;(dp2188&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2189&#10;(dp2190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2191&#10;(dp2192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2193&#10;(dp2194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2195&#10;(dp2196&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p2197&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2197&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2198&#10;(dp2199&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2200&#10;(dp2201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2202&#10;(dp2203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2204&#10;(dp2205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2206&#10;(dp2207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2208&#10;(dp2209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p2210&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2210&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2211&#10;(dp2212&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2213&#10;(dp2214&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2215&#10;(dp2216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2217&#10;(dp2218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2219&#10;(dp2220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2221&#10;(dp2222&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p2223&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2223&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2224&#10;(dp2225&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2226&#10;(dp2227&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2228&#10;(dp2229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2230&#10;(dp2231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2232&#10;(dp2233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2234&#10;(dp2235&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p2236&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2236&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2237&#10;(dp2238&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2239&#10;(dp2240&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2241&#10;(dp2242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2243&#10;(dp2244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2245&#10;(dp2246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2247&#10;(dp2248&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p2249&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2249&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2250&#10;(dp2251&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2252&#10;(dp2253&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2254&#10;(dp2255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2256&#10;(dp2257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2258&#10;(dp2259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2260&#10;(dp2261&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p2262&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2262&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2263&#10;(dp2264&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2265&#10;(dp2266&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2267&#10;(dp2268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2269&#10;(dp2270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2271&#10;(dp2272&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2273&#10;(dp2274&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p2275&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2275&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2276&#10;(dp2277&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2278&#10;(dp2279&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2280&#10;(dp2281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2282&#10;(dp2283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2284&#10;(dp2285&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2286&#10;(dp2287&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p2288&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2288&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2289&#10;(dp2290&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2291&#10;(dp2292&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2293&#10;(dp2294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2295&#10;(dp2296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2297&#10;(dp2298&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2299&#10;(dp2300&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p2301&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2301&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2302&#10;(dp2303&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2304&#10;(dp2305&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2306&#10;(dp2307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2308&#10;(dp2309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2310&#10;(dp2311&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2312&#10;(dp2313&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p2314&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2314&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2315&#10;(dp2316&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2317&#10;(dp2318&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2319&#10;(dp2320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2321&#10;(dp2322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2323&#10;(dp2324&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2325&#10;(dp2326&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p2327&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2327&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2328&#10;(dp2329&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2330&#10;(dp2331&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2332&#10;(dp2333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2334&#10;(dp2335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2336&#10;(dp2337&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2338&#10;(dp2339&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p2340&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2340&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2341&#10;(dp2342&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2343&#10;(dp2344&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2345&#10;(dp2346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2347&#10;(dp2348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2349&#10;(dp2350&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2351&#10;(dp2352&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p2353&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2353&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2354&#10;(dp2355&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2356&#10;(dp2357&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2358&#10;(dp2359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2360&#10;(dp2361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2362&#10;(dp2363&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2364&#10;(dp2365&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p2366&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2366&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2367&#10;(dp2368&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2369&#10;(dp2370&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2371&#10;(dp2372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2373&#10;(dp2374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2375&#10;(dp2376&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2377&#10;(dp2378&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p2379&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2379&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2380&#10;(dp2381&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2382&#10;(dp2383&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2384&#10;(dp2385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2386&#10;(dp2387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2388&#10;(dp2389&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2390&#10;(dp2391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p2392&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2392&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2393&#10;(dp2394&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2395&#10;(dp2396&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2397&#10;(dp2398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2399&#10;(dp2400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2401&#10;(dp2402&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2403&#10;(dp2404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p2405&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2405&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2406&#10;(dp2407&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2408&#10;(dp2409&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2410&#10;(dp2411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2412&#10;(dp2413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2414&#10;(dp2415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2416&#10;(dp2417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p2418&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2418&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2419&#10;(dp2420&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2421&#10;(dp2422&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2423&#10;(dp2424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2425&#10;(dp2426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2427&#10;(dp2428&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2429&#10;(dp2430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p2431&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2431&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2432&#10;(dp2433&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2434&#10;(dp2435&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2436&#10;(dp2437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2438&#10;(dp2439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2440&#10;(dp2441&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2442&#10;(dp2443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p2444&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2444&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2445&#10;(dp2446&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2447&#10;(dp2448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2449&#10;(dp2450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2451&#10;(dp2452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2453&#10;(dp2454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2455&#10;(dp2456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p2457&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2457&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2458&#10;(dp2459&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2460&#10;(dp2461&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2462&#10;(dp2463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2464&#10;(dp2465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2466&#10;(dp2467&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2468&#10;(dp2469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p2470&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2470&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2471&#10;(dp2472&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2473&#10;(dp2474&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2475&#10;(dp2476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2477&#10;(dp2478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2479&#10;(dp2480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2481&#10;(dp2482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p2483&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2483&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2484&#10;(dp2485&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2486&#10;(dp2487&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2488&#10;(dp2489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2490&#10;(dp2491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2492&#10;(dp2493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2494&#10;(dp2495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p2496&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2496&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2497&#10;(dp2498&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2499&#10;(dp2500&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2501&#10;(dp2502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2503&#10;(dp2504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2505&#10;(dp2506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2507&#10;(dp2508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p2509&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2509&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2510&#10;(dp2511&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2512&#10;(dp2513&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2514&#10;(dp2515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2516&#10;(dp2517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2518&#10;(dp2519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2520&#10;(dp2521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p2522&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2522&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2523&#10;(dp2524&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2525&#10;(dp2526&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2527&#10;(dp2528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2529&#10;(dp2530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2531&#10;(dp2532&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2533&#10;(dp2534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p2535&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2535&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2536&#10;(dp2537&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2538&#10;(dp2539&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2540&#10;(dp2541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2542&#10;(dp2543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2544&#10;(dp2545&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2546&#10;(dp2547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p2548&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2548&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2549&#10;(dp2550&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2551&#10;(dp2552&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2553&#10;(dp2554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2555&#10;(dp2556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2557&#10;(dp2558&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2559&#10;(dp2560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p2561&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2561&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2562&#10;(dp2563&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2564&#10;(dp2565&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2566&#10;(dp2567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2568&#10;(dp2569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2570&#10;(dp2571&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2572&#10;(dp2573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p2574&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2574&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2575&#10;(dp2576&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2577&#10;(dp2578&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2579&#10;(dp2580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2581&#10;(dp2582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2583&#10;(dp2584&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2585&#10;(dp2586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p2587&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2587&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2588&#10;(dp2589&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2590&#10;(dp2591&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2592&#10;(dp2593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2594&#10;(dp2595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2596&#10;(dp2597&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2598&#10;(dp2599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p2600&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2600&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2601&#10;(dp2602&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2603&#10;(dp2604&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2605&#10;(dp2606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2607&#10;(dp2608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2609&#10;(dp2610&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2611&#10;(dp2612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p2613&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2613&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2614&#10;(dp2615&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2616&#10;(dp2617&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2618&#10;(dp2619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2620&#10;(dp2621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2622&#10;(dp2623&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2624&#10;(dp2625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p2626&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2626&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2627&#10;(dp2628&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2629&#10;(dp2630&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2631&#10;(dp2632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2633&#10;(dp2634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2635&#10;(dp2636&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2637&#10;(dp2638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p2639&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2639&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2640&#10;(dp2641&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2642&#10;(dp2643&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2644&#10;(dp2645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2646&#10;(dp2647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2648&#10;(dp2649&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2650&#10;(dp2651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p2652&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2652&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2653&#10;(dp2654&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2655&#10;(dp2656&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2657&#10;(dp2658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2659&#10;(dp2660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2661&#10;(dp2662&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2663&#10;(dp2664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p2665&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2665&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2666&#10;(dp2667&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2668&#10;(dp2669&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2670&#10;(dp2671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2672&#10;(dp2673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2674&#10;(dp2675&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2676&#10;(dp2677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p2678&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2678&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2679&#10;(dp2680&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2681&#10;(dp2682&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2683&#10;(dp2684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2685&#10;(dp2686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2687&#10;(dp2688&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2689&#10;(dp2690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p2691&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2691&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2692&#10;(dp2693&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2694&#10;(dp2695&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2696&#10;(dp2697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2698&#10;(dp2699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2700&#10;(dp2701&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2702&#10;(dp2703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p2704&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2704&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2705&#10;(dp2706&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2707&#10;(dp2708&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2709&#10;(dp2710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2711&#10;(dp2712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2713&#10;(dp2714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2715&#10;(dp2716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p2717&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2717&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2718&#10;(dp2719&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2720&#10;(dp2721&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2722&#10;(dp2723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2724&#10;(dp2725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2726&#10;(dp2727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2728&#10;(dp2729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p2730&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2730&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2731&#10;(dp2732&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2733&#10;(dp2734&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2735&#10;(dp2736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2737&#10;(dp2738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2739&#10;(dp2740&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2741&#10;(dp2742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p2743&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2743&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2744&#10;(dp2745&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2746&#10;(dp2747&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2748&#10;(dp2749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2750&#10;(dp2751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2752&#10;(dp2753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2754&#10;(dp2755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p2756&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2756&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2757&#10;(dp2758&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2759&#10;(dp2760&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2761&#10;(dp2762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2763&#10;(dp2764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2765&#10;(dp2766&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2767&#10;(dp2768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p2769&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2769&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2770&#10;(dp2771&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2772&#10;(dp2773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2774&#10;(dp2775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2776&#10;(dp2777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2778&#10;(dp2779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2780&#10;(dp2781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p2782&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2782&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2783&#10;(dp2784&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2785&#10;(dp2786&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2787&#10;(dp2788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2789&#10;(dp2790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2791&#10;(dp2792&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2793&#10;(dp2794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p2795&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2795&#10;sbatRp2796&#10;(dp2797&#10;g12&#10;I185&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client Per URL'&#10;p2798&#10;g3&#10;(g4&#10;g5&#10;(lp2799&#10;g3&#10;(g7&#10;g8&#10;NtRp2800&#10;(dp2801&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2802&#10;(dp2803&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2804&#10;(dp2805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2806&#10;(dp2807&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2808&#10;(dp2809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2810&#10;(dp2811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Sent'&#10;p2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2813&#10;(dp2814&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2815&#10;(dp2816&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2817&#10;(dp2818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2819&#10;(dp2820&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2821&#10;(dp2822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2823&#10;(dp2824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2826&#10;(dp2827&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2828&#10;(dp2829&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2830&#10;(dp2831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2832&#10;(dp2833&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2834&#10;(dp2835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2836&#10;(dp2837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (Provisional)'&#10;p2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2839&#10;(dp2840&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2841&#10;(dp2842&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2843&#10;(dp2844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2845&#10;(dp2846&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2847&#10;(dp2848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2849&#10;(dp2850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2852&#10;(dp2853&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2854&#10;(dp2855&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2856&#10;(dp2857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2858&#10;(dp2859&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2860&#10;(dp2861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2862&#10;(dp2863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write)'&#10;p2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2865&#10;(dp2866&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2867&#10;(dp2868&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2869&#10;(dp2870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2871&#10;(dp2872&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2873&#10;(dp2874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2875&#10;(dp2876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Read)'&#10;p2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2878&#10;(dp2879&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2880&#10;(dp2881&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2882&#10;(dp2883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2884&#10;(dp2885&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2886&#10;(dp2887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2888&#10;(dp2889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Bad Header)'&#10;p2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2891&#10;(dp2892&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2893&#10;(dp2894&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2895&#10;(dp2896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2897&#10;(dp2898&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2899&#10;(dp2900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2901&#10;(dp2902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx)'&#10;p2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2904&#10;(dp2905&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2906&#10;(dp2907&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2908&#10;(dp2909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2910&#10;(dp2911&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2912&#10;(dp2913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2914&#10;(dp2915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (400)'&#10;p2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2917&#10;(dp2918&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2919&#10;(dp2920&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2921&#10;(dp2922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2923&#10;(dp2924&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2925&#10;(dp2926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2927&#10;(dp2928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (401)'&#10;p2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2930&#10;(dp2931&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2932&#10;(dp2933&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2934&#10;(dp2935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2936&#10;(dp2937&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2938&#10;(dp2939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2940&#10;(dp2941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (403)'&#10;p2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2943&#10;(dp2944&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2945&#10;(dp2946&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2947&#10;(dp2948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2949&#10;(dp2950&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2951&#10;(dp2952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2953&#10;(dp2954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2956&#10;(dp2957&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2958&#10;(dp2959&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2960&#10;(dp2961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2962&#10;(dp2963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2964&#10;(dp2965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2966&#10;(dp2967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (407)'&#10;p2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2969&#10;(dp2970&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2971&#10;(dp2972&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2973&#10;(dp2974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2975&#10;(dp2976&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2977&#10;(dp2978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2979&#10;(dp2980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (408)'&#10;p2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2982&#10;(dp2983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2984&#10;(dp2985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2986&#10;(dp2987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2988&#10;(dp2989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2990&#10;(dp2991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2992&#10;(dp2993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx other)'&#10;p2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2995&#10;(dp2996&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2997&#10;(dp2998&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2999&#10;(dp3000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3001&#10;(dp3002&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3003&#10;(dp3004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3005&#10;(dp3006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx)'&#10;p3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3008&#10;(dp3009&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3010&#10;(dp3011&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3012&#10;(dp3013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3014&#10;(dp3015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3016&#10;(dp3017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3018&#10;(dp3019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (505)'&#10;p3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3021&#10;(dp3022&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3023&#10;(dp3024&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3025&#10;(dp3026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3027&#10;(dp3028&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3029&#10;(dp3030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3031&#10;(dp3032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx other)'&#10;p3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3034&#10;(dp3035&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3036&#10;(dp3037&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3038&#10;(dp3039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3040&#10;(dp3041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3042&#10;(dp3043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3044&#10;(dp3045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (other)'&#10;p3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3047&#10;(dp3048&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3049&#10;(dp3050&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3051&#10;(dp3052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3053&#10;(dp3054&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3055&#10;(dp3056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3057&#10;(dp3058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Timeout)'&#10;p3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3060&#10;(dp3061&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3062&#10;(dp3063&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3064&#10;(dp3065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3066&#10;(dp3067&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3068&#10;(dp3069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3070&#10;(dp3071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3073&#10;(dp3074&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3075&#10;(dp3076&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3077&#10;(dp3078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3079&#10;(dp3080&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3081&#10;(dp3082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3083&#10;(dp3084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted Before Request'&#10;p3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3086&#10;(dp3087&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3088&#10;(dp3089&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3090&#10;(dp3091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3092&#10;(dp3093&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3094&#10;(dp3095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3096&#10;(dp3097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted After Request'&#10;p3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3099&#10;(dp3100&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3101&#10;(dp3102&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3103&#10;(dp3104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3105&#10;(dp3106&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3107&#10;(dp3108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3109&#10;(dp3110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received With Match'&#10;p3111&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3111&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3112&#10;(dp3113&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3114&#10;(dp3115&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3116&#10;(dp3117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3118&#10;(dp3119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3120&#10;(dp3121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3122&#10;(dp3123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received Without Match'&#10;p3124&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3124&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3125&#10;(dp3126&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3127&#10;(dp3128&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3129&#10;(dp3130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3131&#10;(dp3132&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3133&#10;(dp3134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3135&#10;(dp3136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Intermediate Responses Received (1xx)'&#10;p3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3138&#10;(dp3139&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3140&#10;(dp3141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3142&#10;(dp3143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3144&#10;(dp3145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3146&#10;(dp3147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3148&#10;(dp3149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (2xx)'&#10;p3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3151&#10;(dp3152&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3153&#10;(dp3154&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3155&#10;(dp3156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3157&#10;(dp3158&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3159&#10;(dp3160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3161&#10;(dp3162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (3xx)'&#10;p3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3164&#10;(dp3165&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3166&#10;(dp3167&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3168&#10;(dp3169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3170&#10;(dp3171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3172&#10;(dp3173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3174&#10;(dp3175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (301)'&#10;p3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3177&#10;(dp3178&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3179&#10;(dp3180&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3181&#10;(dp3182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3183&#10;(dp3184&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3185&#10;(dp3186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3187&#10;(dp3188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (302)'&#10;p3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3190&#10;(dp3191&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3192&#10;(dp3193&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3194&#10;(dp3195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3196&#10;(dp3197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3198&#10;(dp3199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3200&#10;(dp3201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (303)'&#10;p3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3203&#10;(dp3204&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3205&#10;(dp3206&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3207&#10;(dp3208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3209&#10;(dp3210&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3211&#10;(dp3212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3213&#10;(dp3214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (307)'&#10;p3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3216&#10;(dp3217&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3218&#10;(dp3219&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3220&#10;(dp3221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3222&#10;(dp3223&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3224&#10;(dp3225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3226&#10;(dp3227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Sent'&#10;p3228&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3228&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3229&#10;(dp3230&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3231&#10;(dp3232&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3233&#10;(dp3234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3235&#10;(dp3236&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3237&#10;(dp3238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3239&#10;(dp3240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Headers Received'&#10;p3241&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3241&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3242&#10;(dp3243&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3244&#10;(dp3245&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3246&#10;(dp3247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3248&#10;(dp3249&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3250&#10;(dp3251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3252&#10;(dp3253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Received'&#10;p3254&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3254&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3255&#10;(dp3256&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3257&#10;(dp3258&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3259&#10;(dp3260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3261&#10;(dp3262&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3263&#10;(dp3264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3265&#10;(dp3266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Successful'&#10;p3267&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3267&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3268&#10;(dp3269&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3270&#10;(dp3271&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3272&#10;(dp3273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3274&#10;(dp3275&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3276&#10;(dp3277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3278&#10;(dp3279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Failed'&#10;p3280&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3280&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3281&#10;(dp3282&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3283&#10;(dp3284&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3285&#10;(dp3286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3287&#10;(dp3288&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3289&#10;(dp3290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3291&#10;(dp3292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p3293&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3293&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3294&#10;(dp3295&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3296&#10;(dp3297&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3298&#10;(dp3299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3300&#10;(dp3301&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3302&#10;(dp3303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3304&#10;(dp3305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p3306&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3306&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3307&#10;(dp3308&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3309&#10;(dp3310&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3311&#10;(dp3312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3313&#10;(dp3314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3315&#10;(dp3316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3317&#10;(dp3318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p3319&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3319&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3320&#10;(dp3321&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3322&#10;(dp3323&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3324&#10;(dp3325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3326&#10;(dp3327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3328&#10;(dp3329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3330&#10;(dp3331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Sent'&#10;p3332&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3332&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3333&#10;(dp3334&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3335&#10;(dp3336&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3337&#10;(dp3338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3339&#10;(dp3340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3341&#10;(dp3342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3343&#10;(dp3344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p3345&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3345&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3346&#10;(dp3347&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3348&#10;(dp3349&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3350&#10;(dp3351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3352&#10;(dp3353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3354&#10;(dp3355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3356&#10;(dp3357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size in Request'&#10;p3358&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3358&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3359&#10;(dp3360&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3361&#10;(dp3362&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3363&#10;(dp3364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3365&#10;(dp3366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3367&#10;(dp3368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3369&#10;(dp3370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p3371&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3371&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3372&#10;(dp3373&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3374&#10;(dp3375&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3376&#10;(dp3377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3378&#10;(dp3379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3380&#10;(dp3381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3382&#10;(dp3383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name1-Value1'&#10;p3384&#10;sg22&#10;I00&#10;sg37&#10;S'kString'&#10;p3385&#10;sg39&#10;g3384&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3386&#10;(dp3387&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3388&#10;(dp3389&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3390&#10;(dp3391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3392&#10;(dp3393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3394&#10;(dp3395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3396&#10;(dp3397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter1'&#10;p3398&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3398&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3399&#10;(dp3400&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3401&#10;(dp3402&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3403&#10;(dp3404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3405&#10;(dp3406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3407&#10;(dp3408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3409&#10;(dp3410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name2-Value2'&#10;p3411&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3411&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3412&#10;(dp3413&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3414&#10;(dp3415&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3416&#10;(dp3417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3418&#10;(dp3419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3420&#10;(dp3421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3422&#10;(dp3423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter2'&#10;p3424&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3424&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3425&#10;(dp3426&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3427&#10;(dp3428&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3429&#10;(dp3430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3431&#10;(dp3432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3433&#10;(dp3434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3435&#10;(dp3436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name3-Value3'&#10;p3437&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3437&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3438&#10;(dp3439&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3440&#10;(dp3441&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3442&#10;(dp3443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3444&#10;(dp3445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3446&#10;(dp3447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3448&#10;(dp3449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter3'&#10;p3450&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3450&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3451&#10;(dp3452&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3453&#10;(dp3454&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3455&#10;(dp3456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3457&#10;(dp3458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3459&#10;(dp3460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3461&#10;(dp3462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name4-Value4'&#10;p3463&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3463&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3464&#10;(dp3465&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3466&#10;(dp3467&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3468&#10;(dp3469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3470&#10;(dp3471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3472&#10;(dp3473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3474&#10;(dp3475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter4'&#10;p3476&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3476&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3477&#10;(dp3478&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3479&#10;(dp3480&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3481&#10;(dp3482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3483&#10;(dp3484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3485&#10;(dp3486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3487&#10;(dp3488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name5-Value5'&#10;p3489&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3489&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3490&#10;(dp3491&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3492&#10;(dp3493&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3494&#10;(dp3495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3496&#10;(dp3497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3498&#10;(dp3499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3500&#10;(dp3501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter5'&#10;p3502&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3502&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3503&#10;(dp3504&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3505&#10;(dp3506&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3507&#10;(dp3508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3509&#10;(dp3510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3511&#10;(dp3512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3513&#10;(dp3514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name6-Value6'&#10;p3515&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3515&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3516&#10;(dp3517&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3518&#10;(dp3519&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3520&#10;(dp3521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3522&#10;(dp3523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3524&#10;(dp3525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3526&#10;(dp3527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter6'&#10;p3528&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3528&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3529&#10;(dp3530&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3531&#10;(dp3532&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3533&#10;(dp3534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3535&#10;(dp3536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3537&#10;(dp3538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3539&#10;(dp3540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name7-Value7'&#10;p3541&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3541&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3542&#10;(dp3543&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3544&#10;(dp3545&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3546&#10;(dp3547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3548&#10;(dp3549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3550&#10;(dp3551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3552&#10;(dp3553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter7'&#10;p3554&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3554&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3555&#10;(dp3556&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3557&#10;(dp3558&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3559&#10;(dp3560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3561&#10;(dp3562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3563&#10;(dp3564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3565&#10;(dp3566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name8-Value8'&#10;p3567&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3567&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3568&#10;(dp3569&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3570&#10;(dp3571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3572&#10;(dp3573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3574&#10;(dp3575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3576&#10;(dp3577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3578&#10;(dp3579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter8'&#10;p3580&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3580&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3581&#10;(dp3582&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3583&#10;(dp3584&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3585&#10;(dp3586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3587&#10;(dp3588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3589&#10;(dp3590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3591&#10;(dp3592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name9-Value9'&#10;p3593&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3593&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3594&#10;(dp3595&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3596&#10;(dp3597&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3598&#10;(dp3599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3600&#10;(dp3601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3602&#10;(dp3603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3604&#10;(dp3605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter9'&#10;p3606&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3606&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3607&#10;(dp3608&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3609&#10;(dp3610&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3611&#10;(dp3612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3613&#10;(dp3614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3615&#10;(dp3616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3617&#10;(dp3618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name10-Value10'&#10;p3619&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3619&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3620&#10;(dp3621&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3622&#10;(dp3623&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3624&#10;(dp3625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3626&#10;(dp3627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3628&#10;(dp3629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3630&#10;(dp3631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter10'&#10;p3632&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3632&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3633&#10;(dp3634&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3635&#10;(dp3636&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3637&#10;(dp3638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3639&#10;(dp3640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3641&#10;(dp3642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3643&#10;(dp3644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Received'&#10;p3645&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3645&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3646&#10;(dp3647&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3648&#10;(dp3649&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3650&#10;(dp3651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3652&#10;(dp3653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3654&#10;(dp3655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3656&#10;(dp3657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Successful'&#10;p3658&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3658&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3659&#10;(dp3660&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3661&#10;(dp3662&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3663&#10;(dp3664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3665&#10;(dp3666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3667&#10;(dp3668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3669&#10;(dp3670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Failed'&#10;p3671&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3671&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3672&#10;(dp3673&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3674&#10;(dp3675&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3676&#10;(dp3677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3678&#10;(dp3679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3680&#10;(dp3681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3682&#10;(dp3683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Received'&#10;p3684&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3684&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3685&#10;(dp3686&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3687&#10;(dp3688&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3689&#10;(dp3690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3691&#10;(dp3692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3693&#10;(dp3694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3695&#10;(dp3696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Successful'&#10;p3697&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3697&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3698&#10;(dp3699&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3700&#10;(dp3701&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3702&#10;(dp3703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3704&#10;(dp3705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3706&#10;(dp3707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3708&#10;(dp3709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Failed'&#10;p3710&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3710&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3711&#10;(dp3712&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3713&#10;(dp3714&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3715&#10;(dp3716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3717&#10;(dp3718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3719&#10;(dp3720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3721&#10;(dp3722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Received'&#10;p3723&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3723&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3724&#10;(dp3725&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3726&#10;(dp3727&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3728&#10;(dp3729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3730&#10;(dp3731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3732&#10;(dp3733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3734&#10;(dp3735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Successful'&#10;p3736&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3736&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3737&#10;(dp3738&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3739&#10;(dp3740&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3741&#10;(dp3742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3743&#10;(dp3744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3745&#10;(dp3746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3747&#10;(dp3748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Failed'&#10;p3749&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3749&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3750&#10;(dp3751&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3752&#10;(dp3753&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3754&#10;(dp3755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3756&#10;(dp3757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3758&#10;(dp3759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3760&#10;(dp3761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Received'&#10;p3762&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3762&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3763&#10;(dp3764&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3765&#10;(dp3766&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3767&#10;(dp3768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3769&#10;(dp3770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3771&#10;(dp3772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3773&#10;(dp3774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Successful'&#10;p3775&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3775&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3776&#10;(dp3777&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3778&#10;(dp3779&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3780&#10;(dp3781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3782&#10;(dp3783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3784&#10;(dp3785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3786&#10;(dp3787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Failed'&#10;p3788&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3788&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3789&#10;(dp3790&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3791&#10;(dp3792&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3793&#10;(dp3794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3795&#10;(dp3796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3797&#10;(dp3798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3799&#10;(dp3800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Average Compression Ratio'&#10;p3801&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3801&#10;sbatRp3802&#10;(dp3803&#10;g12&#10;I76&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client'&#10;p3804&#10;g3&#10;(g4&#10;g5&#10;(lp3805&#10;g3&#10;(g7&#10;g8&#10;NtRp3806&#10;(dp3807&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3808&#10;(dp3809&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3810&#10;(dp3811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3812&#10;(dp3813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3814&#10;(dp3815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3816&#10;(dp3817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Simulated Users'&#10;p3818&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3818&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3819&#10;(dp3820&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3821&#10;(dp3822&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3823&#10;(dp3824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3825&#10;(dp3826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3827&#10;(dp3828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3829&#10;(dp3830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Concurrent Connections'&#10;p3831&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3831&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3832&#10;(dp3833&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3834&#10;(dp3835&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3836&#10;(dp3837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3838&#10;(dp3839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3840&#10;(dp3841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3842&#10;(dp3843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connections'&#10;p3844&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3844&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3845&#10;(dp3846&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3847&#10;(dp3848&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3849&#10;(dp3850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3851&#10;(dp3852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3853&#10;(dp3854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3855&#10;(dp3856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Attempts'&#10;p3857&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3857&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3858&#10;(dp3859&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3860&#10;(dp3861&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3862&#10;(dp3863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3864&#10;(dp3865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3866&#10;(dp3867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3868&#10;(dp3869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Aborts'&#10;p3870&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3870&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3871&#10;(dp3872&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3873&#10;(dp3874&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3875&#10;(dp3876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3877&#10;(dp3878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3879&#10;(dp3880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3881&#10;(dp3882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Aborts'&#10;p3883&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3883&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3884&#10;(dp3885&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3886&#10;(dp3887&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3888&#10;(dp3889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3890&#10;(dp3891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3892&#10;(dp3893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3894&#10;(dp3895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions'&#10;p3896&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3896&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3897&#10;(dp3898&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3899&#10;(dp3900&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3901&#10;(dp3902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3903&#10;(dp3904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3905&#10;(dp3906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3907&#10;(dp3908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes'&#10;p3909&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3909&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3910&#10;(dp3911&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3912&#10;(dp3913&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3914&#10;(dp3915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3916&#10;(dp3917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3918&#10;(dp3919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3920&#10;(dp3921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3922&#10;(dp3923&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3924&#10;(dp3925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3926&#10;(dp3927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3928&#10;(dp3929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3930&#10;(dp3931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3932&#10;(dp3933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3934&#10;(dp3935&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3936&#10;(dp3937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3938&#10;(dp3939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3940&#10;(dp3941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3942&#10;(dp3943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3944&#10;(dp3945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3946&#10;(dp3947&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3948&#10;(dp3949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3950&#10;(dp3951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3952&#10;(dp3953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3954&#10;(dp3955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3956&#10;(dp3957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3958&#10;(dp3959&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3960&#10;(dp3961&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3962&#10;(dp3963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3964&#10;(dp3965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3966&#10;(dp3967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3968&#10;(dp3969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3970&#10;(dp3971&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3972&#10;(dp3973&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3974&#10;(dp3975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3976&#10;(dp3977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3978&#10;(dp3979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3980&#10;(dp3981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3982&#10;(dp3983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3984&#10;(dp3985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3986&#10;(dp3987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3988&#10;(dp3989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3990&#10;(dp3991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3992&#10;(dp3993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3994&#10;(dp3995&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3996&#10;(dp3997&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3998&#10;(dp3999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4000&#10;(dp4001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4002&#10;(dp4003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4004&#10;(dp4005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4006&#10;(dp4007&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4008&#10;(dp4009&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4010&#10;(dp4011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4012&#10;(dp4013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4014&#10;(dp4015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4016&#10;(dp4017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4018&#10;(dp4019&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4020&#10;(dp4021&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4022&#10;(dp4023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4024&#10;(dp4025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4026&#10;(dp4027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4028&#10;(dp4029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4030&#10;(dp4031&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4032&#10;(dp4033&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4034&#10;(dp4035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4036&#10;(dp4037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4038&#10;(dp4039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4040&#10;(dp4041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4042&#10;(dp4043&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4044&#10;(dp4045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4046&#10;(dp4047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4048&#10;(dp4049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4050&#10;(dp4051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4052&#10;(dp4053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4054&#10;(dp4055&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4056&#10;(dp4057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4058&#10;(dp4059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4060&#10;(dp4061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4062&#10;(dp4063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4064&#10;(dp4065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4066&#10;(dp4067&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4068&#10;(dp4069&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4070&#10;(dp4071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4072&#10;(dp4073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4074&#10;(dp4075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4076&#10;(dp4077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4078&#10;(dp4079&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4080&#10;(dp4081&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4082&#10;(dp4083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4084&#10;(dp4085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4086&#10;(dp4087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4088&#10;(dp4089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4090&#10;(dp4091&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4092&#10;(dp4093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4094&#10;(dp4095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4096&#10;(dp4097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4098&#10;(dp4099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4100&#10;(dp4101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4102&#10;(dp4103&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4104&#10;(dp4105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4106&#10;(dp4107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4108&#10;(dp4109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4110&#10;(dp4111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4112&#10;(dp4113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4114&#10;(dp4115&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4116&#10;(dp4117&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4118&#10;(dp4119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4120&#10;(dp4121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4122&#10;(dp4123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4124&#10;(dp4125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4126&#10;(dp4127&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4128&#10;(dp4129&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4130&#10;(dp4131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4132&#10;(dp4133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4134&#10;(dp4135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4136&#10;(dp4137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4138&#10;(dp4139&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4140&#10;(dp4141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4142&#10;(dp4143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4144&#10;(dp4145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4146&#10;(dp4147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4148&#10;(dp4149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4150&#10;(dp4151&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4152&#10;(dp4153&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4154&#10;(dp4155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4156&#10;(dp4157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4158&#10;(dp4159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4160&#10;(dp4161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4162&#10;(dp4163&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4164&#10;(dp4165&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4166&#10;(dp4167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4168&#10;(dp4169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4170&#10;(dp4171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4172&#10;(dp4173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4174&#10;(dp4175&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4176&#10;(dp4177&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4178&#10;(dp4179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4180&#10;(dp4181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4182&#10;(dp4183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4184&#10;(dp4185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4186&#10;(dp4187&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4188&#10;(dp4189&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4190&#10;(dp4191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4192&#10;(dp4193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4194&#10;(dp4195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4196&#10;(dp4197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4198&#10;(dp4199&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4200&#10;(dp4201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4202&#10;(dp4203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4204&#10;(dp4205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4206&#10;(dp4207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4208&#10;(dp4209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4210&#10;(dp4211&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4212&#10;(dp4213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4214&#10;(dp4215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4216&#10;(dp4217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4218&#10;(dp4219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4220&#10;(dp4221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4222&#10;(dp4223&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4224&#10;(dp4225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4226&#10;(dp4227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4228&#10;(dp4229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4230&#10;(dp4231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4232&#10;(dp4233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4234&#10;(dp4235&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4236&#10;(dp4237&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4238&#10;(dp4239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4240&#10;(dp4241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4242&#10;(dp4243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4244&#10;(dp4245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4246&#10;(dp4247&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4248&#10;(dp4249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4250&#10;(dp4251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4252&#10;(dp4253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4254&#10;(dp4255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4256&#10;(dp4257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p4258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4259&#10;(dp4260&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4261&#10;(dp4262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4263&#10;(dp4264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4265&#10;(dp4266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4267&#10;(dp4268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4269&#10;(dp4270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Request Precondition Failed (412)'&#10;p4271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4272&#10;(dp4273&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4274&#10;(dp4275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4276&#10;(dp4277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4278&#10;(dp4279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4280&#10;(dp4281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4282&#10;(dp4283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p4284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4285&#10;(dp4286&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4287&#10;(dp4288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4289&#10;(dp4290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4291&#10;(dp4292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4293&#10;(dp4294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4295&#10;(dp4296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4297&#10;(dp4298&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4299&#10;(dp4300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4301&#10;(dp4302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4303&#10;(dp4304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4305&#10;(dp4306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4307&#10;(dp4308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4309&#10;(dp4310&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4311&#10;(dp4312&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4313&#10;(dp4314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4315&#10;(dp4316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4317&#10;(dp4318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4319&#10;(dp4320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions Active'&#10;p4321&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4321&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4322&#10;(dp4323&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4324&#10;(dp4325&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4326&#10;(dp4327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4328&#10;(dp4329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4330&#10;(dp4331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4332&#10;(dp4333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Users Active'&#10;p4334&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4334&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4335&#10;(dp4336&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4337&#10;(dp4338&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4339&#10;(dp4340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4341&#10;(dp4342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4343&#10;(dp4344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4345&#10;(dp4346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Received'&#10;p4347&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4347&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4348&#10;(dp4349&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4350&#10;(dp4351&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4352&#10;(dp4353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4354&#10;(dp4355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4356&#10;(dp4357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4358&#10;(dp4359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Received'&#10;p4360&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4360&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4361&#10;(dp4362&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4363&#10;(dp4364&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4365&#10;(dp4366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4367&#10;(dp4368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4369&#10;(dp4370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4371&#10;(dp4372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Received'&#10;p4373&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4373&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4374&#10;(dp4375&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4376&#10;(dp4377&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4378&#10;(dp4379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4380&#10;(dp4381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4382&#10;(dp4383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4384&#10;(dp4385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Unrecognized Content-Encoding Received'&#10;p4386&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4386&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4387&#10;(dp4388&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4389&#10;(dp4390&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4391&#10;(dp4392&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4393&#10;(dp4394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4395&#10;(dp4396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4397&#10;(dp4398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Successful'&#10;p4399&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4399&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4400&#10;(dp4401&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4402&#10;(dp4403&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4404&#10;(dp4405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4406&#10;(dp4407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4408&#10;(dp4409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4410&#10;(dp4411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Successful'&#10;p4412&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4412&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4413&#10;(dp4414&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4415&#10;(dp4416&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4417&#10;(dp4418&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4419&#10;(dp4420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4421&#10;(dp4422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4423&#10;(dp4424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Successful'&#10;p4425&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4425&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4426&#10;(dp4427&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4428&#10;(dp4429&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4430&#10;(dp4431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4432&#10;(dp4433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4434&#10;(dp4435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4436&#10;(dp4437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Failed'&#10;p4438&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4438&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4439&#10;(dp4440&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4441&#10;(dp4442&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4443&#10;(dp4444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4445&#10;(dp4446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4447&#10;(dp4448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4449&#10;(dp4450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed'&#10;p4451&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4451&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4452&#10;(dp4453&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4454&#10;(dp4455&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4456&#10;(dp4457&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4458&#10;(dp4459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4460&#10;(dp4461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4462&#10;(dp4463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed'&#10;p4464&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4464&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4465&#10;(dp4466&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4467&#10;(dp4468&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4469&#10;(dp4470&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4471&#10;(dp4472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4473&#10;(dp4474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4475&#10;(dp4476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Data Error'&#10;p4477&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4477&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4478&#10;(dp4479&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4480&#10;(dp4481&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4482&#10;(dp4483&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4484&#10;(dp4485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4486&#10;(dp4487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4488&#10;(dp4489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Decoding Error'&#10;p4490&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4490&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4491&#10;(dp4492&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4493&#10;(dp4494&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4495&#10;(dp4496&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4497&#10;(dp4498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4499&#10;(dp4500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4501&#10;(dp4502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Data Error'&#10;p4503&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4503&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4504&#10;(dp4505&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4506&#10;(dp4507&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4508&#10;(dp4509&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4510&#10;(dp4511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4512&#10;(dp4513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4514&#10;(dp4515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Decoding Error'&#10;p4516&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4516&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4517&#10;(dp4518&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4519&#10;(dp4520&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4521&#10;(dp4522&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4523&#10;(dp4524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4525&#10;(dp4526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4527&#10;(dp4528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Headers Received'&#10;p4529&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4529&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4530&#10;(dp4531&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4532&#10;(dp4533&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4534&#10;(dp4535&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4536&#10;(dp4537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4538&#10;(dp4539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4540&#10;(dp4541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Responses Received'&#10;p4542&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4542&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4543&#10;(dp4544&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4545&#10;(dp4546&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4547&#10;(dp4548&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4549&#10;(dp4550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4551&#10;(dp4552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4553&#10;(dp4554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Successful'&#10;p4555&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4555&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4556&#10;(dp4557&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4558&#10;(dp4559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4560&#10;(dp4561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4562&#10;(dp4563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4564&#10;(dp4565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4566&#10;(dp4567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Failed'&#10;p4568&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4568&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4569&#10;(dp4570&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4571&#10;(dp4572&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4573&#10;(dp4574&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4575&#10;(dp4576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4577&#10;(dp4578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4579&#10;(dp4580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Received'&#10;p4581&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4581&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4582&#10;(dp4583&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4584&#10;(dp4585&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4586&#10;(dp4587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4588&#10;(dp4589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4590&#10;(dp4591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4592&#10;(dp4593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Headers Sent'&#10;p4594&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4594&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4595&#10;(dp4596&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4597&#10;(dp4598&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4599&#10;(dp4600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4601&#10;(dp4602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4603&#10;(dp4604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4605&#10;(dp4606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Sent'&#10;p4607&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4607&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4608&#10;(dp4609&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4610&#10;(dp4611&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4612&#10;(dp4613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4614&#10;(dp4615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4616&#10;(dp4617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4618&#10;(dp4619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Responses Received'&#10;p4620&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4620&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4621&#10;(dp4622&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4623&#10;(dp4624&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4625&#10;(dp4626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4627&#10;(dp4628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4629&#10;(dp4630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4631&#10;(dp4632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Successful'&#10;p4633&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4633&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4634&#10;(dp4635&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4636&#10;(dp4637&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4638&#10;(dp4639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4640&#10;(dp4641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4642&#10;(dp4643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4644&#10;(dp4645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Failed'&#10;p4646&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4646&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4647&#10;(dp4648&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4649&#10;(dp4650&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4651&#10;(dp4652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4653&#10;(dp4654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4655&#10;(dp4656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4657&#10;(dp4658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Responses Received'&#10;p4659&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4659&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4660&#10;(dp4661&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4662&#10;(dp4663&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4664&#10;(dp4665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4666&#10;(dp4667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4668&#10;(dp4669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4670&#10;(dp4671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Successful'&#10;p4672&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4672&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4673&#10;(dp4674&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4675&#10;(dp4676&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4677&#10;(dp4678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4679&#10;(dp4680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4681&#10;(dp4682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4683&#10;(dp4684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Failed'&#10;p4685&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4685&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4686&#10;(dp4687&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4688&#10;(dp4689&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4690&#10;(dp4691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4692&#10;(dp4693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4694&#10;(dp4695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4696&#10;(dp4697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p4698&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4698&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4699&#10;(dp4700&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4701&#10;(dp4702&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4703&#10;(dp4704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4705&#10;(dp4706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4707&#10;(dp4708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4709&#10;(dp4710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p4711&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4711&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4712&#10;(dp4713&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4714&#10;(dp4715&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4716&#10;(dp4717&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4718&#10;(dp4719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4720&#10;(dp4721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4722&#10;(dp4723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p4724&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4724&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4725&#10;(dp4726&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4727&#10;(dp4728&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4729&#10;(dp4730&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4731&#10;(dp4732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4733&#10;(dp4734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4735&#10;(dp4736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p4737&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4737&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4738&#10;(dp4739&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4740&#10;(dp4741&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4742&#10;(dp4743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4744&#10;(dp4745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4746&#10;(dp4747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4748&#10;(dp4749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Decompressed Content Bytes Received'&#10;p4750&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4750&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4751&#10;(dp4752&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4753&#10;(dp4754&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4755&#10;(dp4756&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4757&#10;(dp4758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4759&#10;(dp4760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4761&#10;(dp4762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p4763&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4763&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4764&#10;(dp4765&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4766&#10;(dp4767&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4768&#10;(dp4769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4770&#10;(dp4771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4772&#10;(dp4773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4774&#10;(dp4775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p4776&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4776&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4777&#10;(dp4778&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4779&#10;(dp4780&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4781&#10;(dp4782&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4783&#10;(dp4784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4785&#10;(dp4786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4787&#10;(dp4788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected'&#10;p4789&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4789&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4790&#10;(dp4791&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4792&#10;(dp4793&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4794&#10;(dp4795&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4796&#10;(dp4797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4798&#10;(dp4799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4800&#10;(dp4801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Path Match Failed)'&#10;p4802&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4802&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4803&#10;(dp4804&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4805&#10;(dp4806&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4807&#10;(dp4808&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4809&#10;(dp4810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4811&#10;(dp4812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4813&#10;(dp4814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Domain Match Failed)'&#10;p4815&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4815&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4816&#10;(dp4817&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4818&#10;(dp4819&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4820&#10;(dp4821&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4822&#10;(dp4823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4824&#10;(dp4825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4826&#10;(dp4827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Cookiejar Overflow)'&#10;p4828&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4828&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4829&#10;(dp4830&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4831&#10;(dp4832&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4833&#10;(dp4834&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4835&#10;(dp4836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4837&#10;(dp4838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4839&#10;(dp4840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Probabilistic Reject)'&#10;p4841&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4841&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4842&#10;(dp4843&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4844&#10;(dp4845&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4846&#10;(dp4847&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4848&#10;(dp4849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4850&#10;(dp4851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4852&#10;(dp4853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookie headers Rejected - (Memory Overflow)'&#10;p4854&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4854&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4855&#10;(dp4856&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4857&#10;(dp4858&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4859&#10;(dp4860&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4861&#10;(dp4862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4863&#10;(dp4864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4865&#10;(dp4866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connect Time (us)'&#10;p4867&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4867&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4868&#10;(dp4869&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4870&#10;(dp4871&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4872&#10;(dp4873&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4874&#10;(dp4875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4876&#10;(dp4877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4878&#10;(dp4879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To First Byte (us)'&#10;p4880&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4880&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4881&#10;(dp4882&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4883&#10;(dp4884&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4885&#10;(dp4886&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4887&#10;(dp4888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4889&#10;(dp4890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4891&#10;(dp4892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To Last Byte (us)'&#10;p4893&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4893&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4894&#10;(dp4895&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4896&#10;(dp4897&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4898&#10;(dp4899&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4900&#10;(dp4901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4902&#10;(dp4903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4904&#10;(dp4905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Average (us)'&#10;p4906&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4906&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4907&#10;(dp4908&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4909&#10;(dp4910&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4911&#10;(dp4912&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4913&#10;(dp4914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4915&#10;(dp4916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4917&#10;(dp4918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Minimum (us)'&#10;p4919&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4919&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4920&#10;(dp4921&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4922&#10;(dp4923&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4924&#10;(dp4925&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4926&#10;(dp4927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4928&#10;(dp4929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4930&#10;(dp4931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Maximum (us)'&#10;p4932&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4932&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4933&#10;(dp4934&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4935&#10;(dp4936&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4937&#10;(dp4938&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4939&#10;(dp4940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4941&#10;(dp4942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4943&#10;(dp4944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Failed'&#10;p4945&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4945&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4946&#10;(dp4947&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4948&#10;(dp4949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4950&#10;(dp4951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4952&#10;(dp4953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4954&#10;(dp4955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4956&#10;(dp4957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Succeeded'&#10;p4958&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4958&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4959&#10;(dp4960&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4961&#10;(dp4962&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4963&#10;(dp4964&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4965&#10;(dp4966&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4967&#10;(dp4968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4969&#10;(dp4970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Received'&#10;p4971&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4971&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4972&#10;(dp4973&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4974&#10;(dp4975&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4976&#10;(dp4977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4978&#10;(dp4979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4980&#10;(dp4981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4982&#10;(dp4983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Received'&#10;p4984&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4984&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4985&#10;(dp4986&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4987&#10;(dp4988&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4989&#10;(dp4990&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4991&#10;(dp4992&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4993&#10;(dp4994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4995&#10;(dp4996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Received'&#10;p4997&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4997&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4998&#10;(dp4999&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5000&#10;(dp5001&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5002&#10;(dp5003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5004&#10;(dp5005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5006&#10;(dp5007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5008&#10;(dp5009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Received'&#10;p5010&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5010&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5011&#10;(dp5012&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5013&#10;(dp5014&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5015&#10;(dp5016&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5017&#10;(dp5018&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5019&#10;(dp5020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5021&#10;(dp5022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Received'&#10;p5023&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5023&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5024&#10;(dp5025&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5026&#10;(dp5027&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5028&#10;(dp5029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5030&#10;(dp5031&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5032&#10;(dp5033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5034&#10;(dp5035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Received'&#10;p5036&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5036&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5037&#10;(dp5038&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5039&#10;(dp5040&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5041&#10;(dp5042&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5043&#10;(dp5044&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5045&#10;(dp5046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5047&#10;(dp5048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Received'&#10;p5049&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5049&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5050&#10;(dp5051&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5052&#10;(dp5053&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5054&#10;(dp5055&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5056&#10;(dp5057&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5058&#10;(dp5059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5060&#10;(dp5061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Received'&#10;p5062&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5062&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5063&#10;(dp5064&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5065&#10;(dp5066&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5067&#10;(dp5068&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5069&#10;(dp5070&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5071&#10;(dp5072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5073&#10;(dp5074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Received'&#10;p5075&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5075&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5076&#10;(dp5077&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5078&#10;(dp5079&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5080&#10;(dp5081&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5082&#10;(dp5083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5084&#10;(dp5085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5086&#10;(dp5087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Received'&#10;p5088&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5088&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5089&#10;(dp5090&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5091&#10;(dp5092&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5093&#10;(dp5094&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5095&#10;(dp5096&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5097&#10;(dp5098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5099&#10;(dp5100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Sent'&#10;p5101&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5101&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5102&#10;(dp5103&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5104&#10;(dp5105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5106&#10;(dp5107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5108&#10;(dp5109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5110&#10;(dp5111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5112&#10;(dp5113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Sent'&#10;p5114&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5114&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5115&#10;(dp5116&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5117&#10;(dp5118&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5119&#10;(dp5120&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5121&#10;(dp5122&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5123&#10;(dp5124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5125&#10;(dp5126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Sent'&#10;p5127&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5127&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5128&#10;(dp5129&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5130&#10;(dp5131&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5132&#10;(dp5133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5134&#10;(dp5135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5136&#10;(dp5137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5138&#10;(dp5139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Sent'&#10;p5140&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5140&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5141&#10;(dp5142&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5143&#10;(dp5144&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5145&#10;(dp5146&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5147&#10;(dp5148&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5149&#10;(dp5150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5151&#10;(dp5152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Sent'&#10;p5153&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5153&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5154&#10;(dp5155&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5156&#10;(dp5157&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5158&#10;(dp5159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5160&#10;(dp5161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5162&#10;(dp5163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5164&#10;(dp5165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Sent'&#10;p5166&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5166&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5167&#10;(dp5168&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5169&#10;(dp5170&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5171&#10;(dp5172&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5173&#10;(dp5174&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5175&#10;(dp5176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5177&#10;(dp5178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Sent'&#10;p5179&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5179&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5180&#10;(dp5181&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5182&#10;(dp5183&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5184&#10;(dp5185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5186&#10;(dp5187&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5188&#10;(dp5189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5190&#10;(dp5191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Sent'&#10;p5192&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5192&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5193&#10;(dp5194&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5195&#10;(dp5196&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5197&#10;(dp5198&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5199&#10;(dp5200&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5201&#10;(dp5202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5203&#10;(dp5204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Sent'&#10;p5205&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5205&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5206&#10;(dp5207&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5208&#10;(dp5209&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5210&#10;(dp5211&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5212&#10;(dp5213&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5214&#10;(dp5215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5216&#10;(dp5217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Sent'&#10;p5218&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5218&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5219&#10;(dp5220&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5221&#10;(dp5222&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5223&#10;(dp5224&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5225&#10;(dp5226&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5227&#10;(dp5228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5229&#10;(dp5230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Client'&#10;p5231&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5231&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5232&#10;(dp5233&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5234&#10;(dp5235&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5236&#10;(dp5237&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5238&#10;(dp5239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5240&#10;(dp5241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5242&#10;(dp5243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Server'&#10;p5244&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5244&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5245&#10;(dp5246&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5247&#10;(dp5248&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5249&#10;(dp5250&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5251&#10;(dp5252&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5253&#10;(dp5254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5255&#10;(dp5256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Client to Server)'&#10;p5257&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5257&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5258&#10;(dp5259&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5260&#10;(dp5261&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5262&#10;(dp5263&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5264&#10;(dp5265&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5266&#10;(dp5267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5268&#10;(dp5269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Server to Client)'&#10;p5270&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5270&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5271&#10;(dp5272&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5273&#10;(dp5274&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5275&#10;(dp5276&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5277&#10;(dp5278&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5279&#10;(dp5280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5281&#10;(dp5282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Client to Server)'&#10;p5283&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5283&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5284&#10;(dp5285&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5286&#10;(dp5287&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5288&#10;(dp5289&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5290&#10;(dp5291&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5292&#10;(dp5293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5294&#10;(dp5295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Server to Client)'&#10;p5296&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5296&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5297&#10;(dp5298&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5299&#10;(dp5300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5301&#10;(dp5302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5303&#10;(dp5304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5305&#10;(dp5306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5307&#10;(dp5308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Succeeded'&#10;p5309&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5309&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5310&#10;(dp5311&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5312&#10;(dp5313&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5314&#10;(dp5315&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5316&#10;(dp5317&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5318&#10;(dp5319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5320&#10;(dp5321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Failed'&#10;p5322&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5322&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5323&#10;(dp5324&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5325&#10;(dp5326&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5327&#10;(dp5328&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5329&#10;(dp5330&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5331&#10;(dp5332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5333&#10;(dp5334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Protocol Error'&#10;p5335&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5335&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5336&#10;(dp5337&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5338&#10;(dp5339&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5340&#10;(dp5341&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5342&#10;(dp5343&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5344&#10;(dp5345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5346&#10;(dp5347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Internal Error'&#10;p5348&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5348&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5349&#10;(dp5350&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5351&#10;(dp5352&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5353&#10;(dp5354&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5355&#10;(dp5356&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5357&#10;(dp5358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5359&#10;(dp5360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Flow Control Error'&#10;p5361&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5361&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5362&#10;(dp5363&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5364&#10;(dp5365&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5366&#10;(dp5367&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5368&#10;(dp5369&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5370&#10;(dp5371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5372&#10;(dp5373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Timeout Error'&#10;p5374&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5374&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5375&#10;(dp5376&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5377&#10;(dp5378&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5379&#10;(dp5380&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5381&#10;(dp5382&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5383&#10;(dp5384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5385&#10;(dp5386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Closed Error'&#10;p5387&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5387&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5388&#10;(dp5389&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5390&#10;(dp5391&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5392&#10;(dp5393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5394&#10;(dp5395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5396&#10;(dp5397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5398&#10;(dp5399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Frame Size Error'&#10;p5400&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5400&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5401&#10;(dp5402&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5403&#10;(dp5404&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5405&#10;(dp5406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5407&#10;(dp5408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5409&#10;(dp5410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5411&#10;(dp5412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Refused Stream Error'&#10;p5413&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5413&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5414&#10;(dp5415&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5416&#10;(dp5417&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5418&#10;(dp5419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5420&#10;(dp5421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5422&#10;(dp5423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5424&#10;(dp5425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Cancelled Error'&#10;p5426&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5426&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5427&#10;(dp5428&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5429&#10;(dp5430&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5431&#10;(dp5432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5433&#10;(dp5434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5435&#10;(dp5436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5437&#10;(dp5438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Compression Error'&#10;p5439&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5439&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5440&#10;(dp5441&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5442&#10;(dp5443&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5444&#10;(dp5445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5446&#10;(dp5447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5448&#10;(dp5449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5450&#10;(dp5451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connect Error'&#10;p5452&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5452&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5453&#10;(dp5454&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5455&#10;(dp5456&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5457&#10;(dp5458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5459&#10;(dp5460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5461&#10;(dp5462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5463&#10;(dp5464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Enhance Calm Error'&#10;p5465&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5465&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5466&#10;(dp5467&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5468&#10;(dp5469&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5470&#10;(dp5471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5472&#10;(dp5473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5474&#10;(dp5475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5476&#10;(dp5477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Inadequate Security Error'&#10;p5478&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5478&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5479&#10;(dp5480&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5481&#10;(dp5482&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5483&#10;(dp5484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5485&#10;(dp5486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5487&#10;(dp5488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5489&#10;(dp5490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 HTTP1_1 Required Error'&#10;p5491&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5491&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5492&#10;(dp5493&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5494&#10;(dp5495&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5496&#10;(dp5497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5498&#10;(dp5499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5500&#10;(dp5501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5502&#10;(dp5503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p5504&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5504&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5505&#10;(dp5506&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5507&#10;(dp5508&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5509&#10;(dp5510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5511&#10;(dp5512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5513&#10;(dp5514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5515&#10;(dp5516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p5517&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5517&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5518&#10;(dp5519&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5520&#10;(dp5521&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5522&#10;(dp5523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5524&#10;(dp5525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5526&#10;(dp5527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5528&#10;(dp5529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p5530&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5530&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5531&#10;(dp5532&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5533&#10;(dp5534&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5535&#10;(dp5536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5537&#10;(dp5538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5539&#10;(dp5540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5541&#10;(dp5542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p5543&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5543&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5544&#10;(dp5545&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5546&#10;(dp5547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5548&#10;(dp5549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5550&#10;(dp5551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5552&#10;(dp5553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5554&#10;(dp5555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p5556&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5556&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5557&#10;(dp5558&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5559&#10;(dp5560&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5561&#10;(dp5562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5563&#10;(dp5564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5565&#10;(dp5566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5567&#10;(dp5568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p5569&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5569&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5570&#10;(dp5571&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5572&#10;(dp5573&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5574&#10;(dp5575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5576&#10;(dp5577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5578&#10;(dp5579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5580&#10;(dp5581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p5582&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5582&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5583&#10;(dp5584&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5585&#10;(dp5586&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5587&#10;(dp5588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5589&#10;(dp5590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5591&#10;(dp5592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5593&#10;(dp5594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p5595&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5595&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5596&#10;(dp5597&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5598&#10;(dp5599&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5600&#10;(dp5601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5602&#10;(dp5603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5604&#10;(dp5605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5606&#10;(dp5607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p5608&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5608&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5609&#10;(dp5610&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5611&#10;(dp5612&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5613&#10;(dp5614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5615&#10;(dp5616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5617&#10;(dp5618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5619&#10;(dp5620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p5621&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5621&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5622&#10;(dp5623&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5624&#10;(dp5625&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5626&#10;(dp5627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5628&#10;(dp5629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5630&#10;(dp5631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5632&#10;(dp5633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p5634&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5634&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5635&#10;(dp5636&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5637&#10;(dp5638&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5639&#10;(dp5640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5641&#10;(dp5642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5643&#10;(dp5644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5645&#10;(dp5646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p5647&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5647&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5648&#10;(dp5649&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5650&#10;(dp5651&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5652&#10;(dp5653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5654&#10;(dp5655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5656&#10;(dp5657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5658&#10;(dp5659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p5660&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5660&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5661&#10;(dp5662&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5663&#10;(dp5664&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5665&#10;(dp5666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5667&#10;(dp5668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5669&#10;(dp5670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5671&#10;(dp5672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p5673&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5673&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5674&#10;(dp5675&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5676&#10;(dp5677&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5678&#10;(dp5679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5680&#10;(dp5681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5682&#10;(dp5683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5684&#10;(dp5685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p5686&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5686&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5687&#10;(dp5688&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5689&#10;(dp5690&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5691&#10;(dp5692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5693&#10;(dp5694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5695&#10;(dp5696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5697&#10;(dp5698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p5699&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5699&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5700&#10;(dp5701&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5702&#10;(dp5703&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5704&#10;(dp5705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5706&#10;(dp5707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5708&#10;(dp5709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5710&#10;(dp5711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p5712&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5712&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5713&#10;(dp5714&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5715&#10;(dp5716&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5717&#10;(dp5718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5719&#10;(dp5720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5721&#10;(dp5722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5723&#10;(dp5724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p5725&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5725&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5726&#10;(dp5727&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5728&#10;(dp5729&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5730&#10;(dp5731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5732&#10;(dp5733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5734&#10;(dp5735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5736&#10;(dp5737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p5738&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5738&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5739&#10;(dp5740&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5741&#10;(dp5742&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5743&#10;(dp5744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5745&#10;(dp5746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5747&#10;(dp5748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5749&#10;(dp5750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p5751&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5751&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5752&#10;(dp5753&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5754&#10;(dp5755&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5756&#10;(dp5757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5758&#10;(dp5759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5760&#10;(dp5761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5762&#10;(dp5763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p5764&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5764&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5765&#10;(dp5766&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5767&#10;(dp5768&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5769&#10;(dp5770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5771&#10;(dp5772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5773&#10;(dp5774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5775&#10;(dp5776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p5777&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5777&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5778&#10;(dp5779&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5780&#10;(dp5781&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5782&#10;(dp5783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5784&#10;(dp5785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5786&#10;(dp5787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5788&#10;(dp5789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p5790&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5790&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5791&#10;(dp5792&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5793&#10;(dp5794&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5795&#10;(dp5796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5797&#10;(dp5798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5799&#10;(dp5800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5801&#10;(dp5802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p5803&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5803&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5804&#10;(dp5805&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5806&#10;(dp5807&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5808&#10;(dp5809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5810&#10;(dp5811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5812&#10;(dp5813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5814&#10;(dp5815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p5816&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5816&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5817&#10;(dp5818&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5819&#10;(dp5820&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5821&#10;(dp5822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5823&#10;(dp5824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5825&#10;(dp5826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5827&#10;(dp5828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p5829&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5829&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5830&#10;(dp5831&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5832&#10;(dp5833&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5834&#10;(dp5835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5836&#10;(dp5837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5838&#10;(dp5839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5840&#10;(dp5841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p5842&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5842&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5843&#10;(dp5844&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5845&#10;(dp5846&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5847&#10;(dp5848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5849&#10;(dp5850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5851&#10;(dp5852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5853&#10;(dp5854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p5855&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5855&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5856&#10;(dp5857&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5858&#10;(dp5859&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5860&#10;(dp5861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5862&#10;(dp5863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5864&#10;(dp5865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5866&#10;(dp5867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p5868&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5868&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5869&#10;(dp5870&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5871&#10;(dp5872&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5873&#10;(dp5874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5875&#10;(dp5876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5877&#10;(dp5878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5879&#10;(dp5880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p5881&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5881&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5882&#10;(dp5883&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5884&#10;(dp5885&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5886&#10;(dp5887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5888&#10;(dp5889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5890&#10;(dp5891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5892&#10;(dp5893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p5894&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5894&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5895&#10;(dp5896&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5897&#10;(dp5898&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5899&#10;(dp5900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5901&#10;(dp5902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5903&#10;(dp5904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5905&#10;(dp5906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p5907&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5907&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5908&#10;(dp5909&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5910&#10;(dp5911&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5912&#10;(dp5913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5914&#10;(dp5915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5916&#10;(dp5917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5918&#10;(dp5919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p5920&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5920&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5921&#10;(dp5922&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5923&#10;(dp5924&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5925&#10;(dp5926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5927&#10;(dp5928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5929&#10;(dp5930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5931&#10;(dp5932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p5933&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5933&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5934&#10;(dp5935&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5936&#10;(dp5937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5938&#10;(dp5939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5940&#10;(dp5941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5942&#10;(dp5943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5944&#10;(dp5945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p5946&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5946&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5947&#10;(dp5948&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5949&#10;(dp5950&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5951&#10;(dp5952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5953&#10;(dp5954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5955&#10;(dp5956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5957&#10;(dp5958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p5959&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5959&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5960&#10;(dp5961&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5962&#10;(dp5963&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5964&#10;(dp5965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5966&#10;(dp5967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5968&#10;(dp5969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5970&#10;(dp5971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p5972&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5972&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5973&#10;(dp5974&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5975&#10;(dp5976&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5977&#10;(dp5978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5979&#10;(dp5980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5981&#10;(dp5982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5983&#10;(dp5984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p5985&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5985&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5986&#10;(dp5987&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5988&#10;(dp5989&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5990&#10;(dp5991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5992&#10;(dp5993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5994&#10;(dp5995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5996&#10;(dp5997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p5998&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5998&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5999&#10;(dp6000&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6001&#10;(dp6002&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6003&#10;(dp6004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6005&#10;(dp6006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6007&#10;(dp6008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6009&#10;(dp6010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p6011&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6011&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6012&#10;(dp6013&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6014&#10;(dp6015&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6016&#10;(dp6017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6018&#10;(dp6019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6020&#10;(dp6021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6022&#10;(dp6023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p6024&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6024&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6025&#10;(dp6026&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6027&#10;(dp6028&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6029&#10;(dp6030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6031&#10;(dp6032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6033&#10;(dp6034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6035&#10;(dp6036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p6037&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6037&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6038&#10;(dp6039&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6040&#10;(dp6041&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6042&#10;(dp6043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6044&#10;(dp6045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6046&#10;(dp6047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6048&#10;(dp6049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p6050&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6050&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6051&#10;(dp6052&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6053&#10;(dp6054&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6055&#10;(dp6056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6057&#10;(dp6058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6059&#10;(dp6060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6061&#10;(dp6062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p6063&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6063&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6064&#10;(dp6065&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6066&#10;(dp6067&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6068&#10;(dp6069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6070&#10;(dp6071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6072&#10;(dp6073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6074&#10;(dp6075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p6076&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6076&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6077&#10;(dp6078&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6079&#10;(dp6080&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6081&#10;(dp6082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6083&#10;(dp6084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6085&#10;(dp6086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6087&#10;(dp6088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p6089&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6089&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6090&#10;(dp6091&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6092&#10;(dp6093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6094&#10;(dp6095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6096&#10;(dp6097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6098&#10;(dp6099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6100&#10;(dp6101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p6102&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6102&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6103&#10;(dp6104&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6105&#10;(dp6106&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6107&#10;(dp6108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6109&#10;(dp6110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6111&#10;(dp6112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6113&#10;(dp6114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p6115&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6115&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6116&#10;(dp6117&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6118&#10;(dp6119&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6120&#10;(dp6121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6122&#10;(dp6123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6124&#10;(dp6125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6126&#10;(dp6127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p6128&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6128&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6129&#10;(dp6130&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6131&#10;(dp6132&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6133&#10;(dp6134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6135&#10;(dp6136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6137&#10;(dp6138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6139&#10;(dp6140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p6141&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6141&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6142&#10;(dp6143&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6144&#10;(dp6145&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6146&#10;(dp6147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6148&#10;(dp6149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6150&#10;(dp6151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6152&#10;(dp6153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p6154&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6154&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6155&#10;(dp6156&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6157&#10;(dp6158&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6159&#10;(dp6160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6161&#10;(dp6162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6163&#10;(dp6164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6165&#10;(dp6166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p6167&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6167&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6168&#10;(dp6169&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6170&#10;(dp6171&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6172&#10;(dp6173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6174&#10;(dp6175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6176&#10;(dp6177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6178&#10;(dp6179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p6180&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6180&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6181&#10;(dp6182&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6183&#10;(dp6184&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6185&#10;(dp6186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6187&#10;(dp6188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6189&#10;(dp6190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6191&#10;(dp6192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p6193&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6193&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6194&#10;(dp6195&#10;g11&#10;Nsg12&#10;I186&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6196&#10;(dp6197&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6198&#10;(dp6199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6200&#10;(dp6201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6202&#10;(dp6203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6204&#10;(dp6205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p6206&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6206&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6207&#10;(dp6208&#10;g11&#10;Nsg12&#10;I187&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6209&#10;(dp6210&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6211&#10;(dp6212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6213&#10;(dp6214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6215&#10;(dp6216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6217&#10;(dp6218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p6219&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6219&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6220&#10;(dp6221&#10;g11&#10;Nsg12&#10;I188&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6222&#10;(dp6223&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6224&#10;(dp6225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6226&#10;(dp6227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6228&#10;(dp6229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6230&#10;(dp6231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p6232&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6232&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6233&#10;(dp6234&#10;g11&#10;Nsg12&#10;I189&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6235&#10;(dp6236&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6237&#10;(dp6238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6239&#10;(dp6240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6241&#10;(dp6242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6243&#10;(dp6244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p6245&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6245&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6246&#10;(dp6247&#10;g11&#10;Nsg12&#10;I190&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6248&#10;(dp6249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6250&#10;(dp6251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6252&#10;(dp6253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6254&#10;(dp6255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6256&#10;(dp6257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p6258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6259&#10;(dp6260&#10;g11&#10;Nsg12&#10;I191&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6261&#10;(dp6262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6263&#10;(dp6264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6265&#10;(dp6266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6267&#10;(dp6268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6269&#10;(dp6270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p6271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6272&#10;(dp6273&#10;g11&#10;Nsg12&#10;I192&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6274&#10;(dp6275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6276&#10;(dp6277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6278&#10;(dp6279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6280&#10;(dp6281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6282&#10;(dp6283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p6284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6285&#10;(dp6286&#10;g11&#10;Nsg12&#10;I193&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6287&#10;(dp6288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6289&#10;(dp6290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6291&#10;(dp6292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6293&#10;(dp6294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6295&#10;(dp6296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p6297&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6297&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6298&#10;(dp6299&#10;g11&#10;Nsg12&#10;I194&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6300&#10;(dp6301&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6302&#10;(dp6303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6304&#10;(dp6305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6306&#10;(dp6307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6308&#10;(dp6309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p6310&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6310&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6311&#10;(dp6312&#10;g11&#10;Nsg12&#10;I195&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6313&#10;(dp6314&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6315&#10;(dp6316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6317&#10;(dp6318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6319&#10;(dp6320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6321&#10;(dp6322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p6323&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6323&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6324&#10;(dp6325&#10;g11&#10;Nsg12&#10;I196&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6326&#10;(dp6327&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6328&#10;(dp6329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6330&#10;(dp6331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6332&#10;(dp6333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6334&#10;(dp6335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p6336&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6336&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6337&#10;(dp6338&#10;g11&#10;Nsg12&#10;I197&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6339&#10;(dp6340&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6341&#10;(dp6342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6343&#10;(dp6344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6345&#10;(dp6346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6347&#10;(dp6348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p6349&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6349&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6350&#10;(dp6351&#10;g11&#10;Nsg12&#10;I198&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6352&#10;(dp6353&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6354&#10;(dp6355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6356&#10;(dp6357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6358&#10;(dp6359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6360&#10;(dp6361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p6362&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6362&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6363&#10;(dp6364&#10;g11&#10;Nsg12&#10;I199&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6365&#10;(dp6366&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6367&#10;(dp6368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6369&#10;(dp6370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6371&#10;(dp6372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6373&#10;(dp6374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p6375&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6375&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6376&#10;(dp6377&#10;g11&#10;Nsg12&#10;I200&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6378&#10;(dp6379&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6380&#10;(dp6381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6382&#10;(dp6383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6384&#10;(dp6385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6386&#10;(dp6387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p6388&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6388&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6389&#10;(dp6390&#10;g11&#10;Nsg12&#10;I201&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6391&#10;(dp6392&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6393&#10;(dp6394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6395&#10;(dp6396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6397&#10;(dp6398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6399&#10;(dp6400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p6401&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6401&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6402&#10;(dp6403&#10;g11&#10;Nsg12&#10;I202&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6404&#10;(dp6405&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6406&#10;(dp6407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6408&#10;(dp6409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6410&#10;(dp6411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6412&#10;(dp6413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p6414&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6414&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6415&#10;(dp6416&#10;g11&#10;Nsg12&#10;I203&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6417&#10;(dp6418&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6419&#10;(dp6420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6421&#10;(dp6422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6423&#10;(dp6424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6425&#10;(dp6426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p6427&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6427&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6428&#10;(dp6429&#10;g11&#10;Nsg12&#10;I204&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6430&#10;(dp6431&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6432&#10;(dp6433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6434&#10;(dp6435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6436&#10;(dp6437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6438&#10;(dp6439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p6440&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6440&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6441&#10;(dp6442&#10;g11&#10;Nsg12&#10;I205&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6443&#10;(dp6444&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6445&#10;(dp6446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6447&#10;(dp6448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6449&#10;(dp6450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6451&#10;(dp6452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p6453&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6453&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6454&#10;(dp6455&#10;g11&#10;Nsg12&#10;I206&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6456&#10;(dp6457&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6458&#10;(dp6459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6460&#10;(dp6461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6462&#10;(dp6463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6464&#10;(dp6465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p6466&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6466&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6467&#10;(dp6468&#10;g11&#10;Nsg12&#10;I207&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6469&#10;(dp6470&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6471&#10;(dp6472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6473&#10;(dp6474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6475&#10;(dp6476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6477&#10;(dp6478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p6479&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6479&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6480&#10;(dp6481&#10;g11&#10;Nsg12&#10;I208&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6482&#10;(dp6483&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6484&#10;(dp6485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6486&#10;(dp6487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6488&#10;(dp6489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6490&#10;(dp6491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p6492&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6492&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6493&#10;(dp6494&#10;g11&#10;Nsg12&#10;I209&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6495&#10;(dp6496&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6497&#10;(dp6498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6499&#10;(dp6500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6501&#10;(dp6502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6503&#10;(dp6504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p6505&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6505&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6506&#10;(dp6507&#10;g11&#10;Nsg12&#10;I210&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6508&#10;(dp6509&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6510&#10;(dp6511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6512&#10;(dp6513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6514&#10;(dp6515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6516&#10;(dp6517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p6518&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6518&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6519&#10;(dp6520&#10;g11&#10;Nsg12&#10;I211&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6521&#10;(dp6522&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6523&#10;(dp6524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6525&#10;(dp6526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6527&#10;(dp6528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6529&#10;(dp6530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p6531&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6531&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6532&#10;(dp6533&#10;g11&#10;Nsg12&#10;I212&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6534&#10;(dp6535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6536&#10;(dp6537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6538&#10;(dp6539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6540&#10;(dp6541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6542&#10;(dp6543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p6544&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6544&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6545&#10;(dp6546&#10;g11&#10;Nsg12&#10;I213&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6547&#10;(dp6548&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6549&#10;(dp6550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6551&#10;(dp6552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6553&#10;(dp6554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6555&#10;(dp6556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p6557&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6557&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6558&#10;(dp6559&#10;g11&#10;Nsg12&#10;I214&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6560&#10;(dp6561&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6562&#10;(dp6563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6564&#10;(dp6565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6566&#10;(dp6567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6568&#10;(dp6569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p6570&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6570&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6571&#10;(dp6572&#10;g11&#10;Nsg12&#10;I215&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6573&#10;(dp6574&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6575&#10;(dp6576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6577&#10;(dp6578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6579&#10;(dp6580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6581&#10;(dp6582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p6583&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6583&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6584&#10;(dp6585&#10;g11&#10;Nsg12&#10;I216&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6586&#10;(dp6587&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6588&#10;(dp6589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6590&#10;(dp6591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6592&#10;(dp6593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6594&#10;(dp6595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p6596&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6596&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6597&#10;(dp6598&#10;g11&#10;Nsg12&#10;I217&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6599&#10;(dp6600&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6601&#10;(dp6602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6603&#10;(dp6604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6605&#10;(dp6606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6607&#10;(dp6608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p6609&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6609&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6610&#10;(dp6611&#10;g11&#10;Nsg12&#10;I218&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6612&#10;(dp6613&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6614&#10;(dp6615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6616&#10;(dp6617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6618&#10;(dp6619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6620&#10;(dp6621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p6622&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6622&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6623&#10;(dp6624&#10;g11&#10;Nsg12&#10;I219&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6625&#10;(dp6626&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6627&#10;(dp6628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6629&#10;(dp6630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6631&#10;(dp6632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6633&#10;(dp6634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p6635&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6635&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6636&#10;(dp6637&#10;g11&#10;Nsg12&#10;I220&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6638&#10;(dp6639&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6640&#10;(dp6641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6642&#10;(dp6643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6644&#10;(dp6645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6646&#10;(dp6647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p6648&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6648&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6649&#10;(dp6650&#10;g11&#10;Nsg12&#10;I221&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6651&#10;(dp6652&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6653&#10;(dp6654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6655&#10;(dp6656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6657&#10;(dp6658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6659&#10;(dp6660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p6661&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6661&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6662&#10;(dp6663&#10;g11&#10;Nsg12&#10;I222&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6664&#10;(dp6665&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6666&#10;(dp6667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6668&#10;(dp6669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6670&#10;(dp6671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6672&#10;(dp6673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p6674&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6674&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6675&#10;(dp6676&#10;g11&#10;Nsg12&#10;I223&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6677&#10;(dp6678&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6679&#10;(dp6680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6681&#10;(dp6682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6683&#10;(dp6684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6685&#10;(dp6686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p6687&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6687&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6688&#10;(dp6689&#10;g11&#10;Nsg12&#10;I224&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6690&#10;(dp6691&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6692&#10;(dp6693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6694&#10;(dp6695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6696&#10;(dp6697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6698&#10;(dp6699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p6700&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6700&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6701&#10;(dp6702&#10;g11&#10;Nsg12&#10;I225&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6703&#10;(dp6704&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6705&#10;(dp6706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6707&#10;(dp6708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6709&#10;(dp6710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6711&#10;(dp6712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p6713&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6713&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6714&#10;(dp6715&#10;g11&#10;Nsg12&#10;I226&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6716&#10;(dp6717&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6718&#10;(dp6719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6720&#10;(dp6721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6722&#10;(dp6723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6724&#10;(dp6725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p6726&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6726&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6727&#10;(dp6728&#10;g11&#10;Nsg12&#10;I227&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6729&#10;(dp6730&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6731&#10;(dp6732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6733&#10;(dp6734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6735&#10;(dp6736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6737&#10;(dp6738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p6739&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6739&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6740&#10;(dp6741&#10;g11&#10;Nsg12&#10;I228&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6742&#10;(dp6743&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6744&#10;(dp6745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6746&#10;(dp6747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6748&#10;(dp6749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6750&#10;(dp6751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p6752&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6752&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6753&#10;(dp6754&#10;g11&#10;Nsg12&#10;I229&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6755&#10;(dp6756&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6757&#10;(dp6758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6759&#10;(dp6760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6761&#10;(dp6762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6763&#10;(dp6764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p6765&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6765&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6766&#10;(dp6767&#10;g11&#10;Nsg12&#10;I230&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6768&#10;(dp6769&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6770&#10;(dp6771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6772&#10;(dp6773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6774&#10;(dp6775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6776&#10;(dp6777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p6778&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6778&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6779&#10;(dp6780&#10;g11&#10;Nsg12&#10;I231&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6781&#10;(dp6782&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6783&#10;(dp6784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6785&#10;(dp6786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6787&#10;(dp6788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6789&#10;(dp6790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p6791&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6791&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6792&#10;(dp6793&#10;g11&#10;Nsg12&#10;I232&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6794&#10;(dp6795&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6796&#10;(dp6797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6798&#10;(dp6799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6800&#10;(dp6801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6802&#10;(dp6803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p6804&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6804&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6805&#10;(dp6806&#10;g11&#10;Nsg12&#10;I233&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6807&#10;(dp6808&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6809&#10;(dp6810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6811&#10;(dp6812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6813&#10;(dp6814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6815&#10;(dp6816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p6817&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6817&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6818&#10;(dp6819&#10;g11&#10;Nsg12&#10;I234&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6820&#10;(dp6821&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6822&#10;(dp6823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6824&#10;(dp6825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6826&#10;(dp6827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6828&#10;(dp6829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p6830&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6830&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6831&#10;(dp6832&#10;g11&#10;Nsg12&#10;I235&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6833&#10;(dp6834&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6835&#10;(dp6836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6837&#10;(dp6838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6839&#10;(dp6840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6841&#10;(dp6842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p6843&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6843&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6844&#10;(dp6845&#10;g11&#10;Nsg12&#10;I236&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6846&#10;(dp6847&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6848&#10;(dp6849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6850&#10;(dp6851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6852&#10;(dp6853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6854&#10;(dp6855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p6856&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6856&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6857&#10;(dp6858&#10;g11&#10;Nsg12&#10;I237&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6859&#10;(dp6860&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6861&#10;(dp6862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6863&#10;(dp6864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6865&#10;(dp6866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6867&#10;(dp6868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p6869&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6869&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6870&#10;(dp6871&#10;g11&#10;Nsg12&#10;I238&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6872&#10;(dp6873&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6874&#10;(dp6875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6876&#10;(dp6877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6878&#10;(dp6879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6880&#10;(dp6881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p6882&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6882&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6883&#10;(dp6884&#10;g11&#10;Nsg12&#10;I239&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6885&#10;(dp6886&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6887&#10;(dp6888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6889&#10;(dp6890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6891&#10;(dp6892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6893&#10;(dp6894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p6895&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6895&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6896&#10;(dp6897&#10;g11&#10;Nsg12&#10;I240&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6898&#10;(dp6899&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6900&#10;(dp6901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6902&#10;(dp6903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6904&#10;(dp6905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6906&#10;(dp6907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p6908&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6908&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6909&#10;(dp6910&#10;g11&#10;Nsg12&#10;I241&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6911&#10;(dp6912&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6913&#10;(dp6914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6915&#10;(dp6916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6917&#10;(dp6918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6919&#10;(dp6920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p6921&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6921&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6922&#10;(dp6923&#10;g11&#10;Nsg12&#10;I242&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6924&#10;(dp6925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6926&#10;(dp6927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6928&#10;(dp6929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6930&#10;(dp6931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6932&#10;(dp6933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p6934&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6934&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6935&#10;(dp6936&#10;g11&#10;Nsg12&#10;I243&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6937&#10;(dp6938&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6939&#10;(dp6940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6941&#10;(dp6942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6943&#10;(dp6944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6945&#10;(dp6946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p6947&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6947&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6948&#10;(dp6949&#10;g11&#10;Nsg12&#10;I244&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6950&#10;(dp6951&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6952&#10;(dp6953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6954&#10;(dp6955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6956&#10;(dp6957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6958&#10;(dp6959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p6960&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6960&#10;sbatRp6961&#10;(dp6962&#10;g12&#10;I244&#10;sg22&#10;I00&#10;sg11&#10;Nsbs.</svRestConfiguration>
</statManagerOptions>
<currentUniqueIDForAgent type="int">2</currentUniqueIDForAgent>
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-256K.rxf b/samples/vnf_samples/traffic_profiles/ixload/HTTP-Transactions_2Ports.rxf
index b74e39ca2..d440d91fe 100644
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-256K.rxf
+++ b/samples/vnf_samples/traffic_profiles/ixload/HTTP-Transactions_2Ports.rxf
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>
<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
<_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;04a56313-c07c-4fae-acc5-e29a816e1311&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c284265e-5fc6-4a6a-ad6e-a8c3f465d00b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
+ <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;628fdbe1-4254-48b1-8765-a4d5bbafd1ff&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;uplink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;downlink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c284265e-5fc6-4a6a-ad6e-a8c3f465d00b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;payloadAttrTypes type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
</_smSessionXml>
<_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
<xml type="str"></xml>
@@ -10,11 +10,11 @@
<xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
</_quickTestConfig>
<lastApiUniqueId type="int">15481</lastApiUniqueId>
- <version type="str">8.20.0.273</version>
- <name type="str">HTTP-vFW_IPv4_2Ports-CC-256K.rxf</name>
+ <version type="str">8.30.115.152</version>
+ <name type="str">HTTP-Transactions_2Ports.rxf</name>
<comment type="str"></comment>
- <path type="str">F:\IXIA-TESTS</path>
- <last type="str">HTTP-vFW_IPv4_2Ports-CC-64K.rxf</last>
+ <path type="str">C:\ixload</path>
+ <last type="str">HTTP-Transactions_2Ports.rxf</last>
<activeTest type="str">Test1</activeTest>
<chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
<chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
@@ -54,8 +54,8 @@
<item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
<name type="str">Client</name>
<elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
+ <item ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
+ <name type="str">HTTP client@uplink_0</name>
<column type="NoneType">None</column>
<scenarioElementType type="str">netTraffic</scenarioElementType>
<enable type="int">1</enable>
@@ -98,8 +98,8 @@
<inUse type="bool">True</inUse>
<customPortMap type="NoneType">None</customPortMap>
<sourceCommunity ref="0"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
+ <destinationCommunity ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
+ <name type="str">HTTP server@downlink_0</name>
<column type="NoneType">None</column>
<scenarioElementType type="str">netTraffic</scenarioElementType>
<enable type="int">1</enable>
@@ -484,7 +484,7 @@
</traffic>
<network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
<resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
+ <name type="str">downlink_0</name>
<role type="str">Server</role>
<networkType type="str">none</networkType>
<aggregation type="int">0</aggregation>
@@ -498,7 +498,7 @@
<networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
<item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
<_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (152.40.40.20+1)</name>
+ <name type="str">Network Range IP-R2 in downlink_0 (152.40.40.20+1)</name>
<rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
<name type="str">DistGroup1</name>
<ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
@@ -743,6 +743,7 @@
<browserEmulationName type="str">Custom1</browserEmulationName>
<enableSsl type="int">0</enableSsl>
<sslVersion type="int">3</sslVersion>
+ <disableMacValidation type="int">0</disableMacValidation>
<sslReuseMethod type="int">0</sslReuseMethod>
<sequentialSessionReuse type="int">0</sequentialSessionReuse>
<enablesslRecordSize type="int">0</enablesslRecordSize>
@@ -807,7 +808,7 @@
</item>
</outputList>
<destination type="str">HTTP server_newServerActivity1:80</destination>
- <pageObject type="str">/256k.html</pageObject>
+ <pageObject type="str">/1b.html</pageObject>
<abort type="str">None</abort>
<arguments type="str"></arguments>
<namevalueargs type="str"></namevalueargs>
@@ -862,12 +863,16 @@
<ipPreference type="int">2</ipPreference>
<tcpCloseOption type="int">0</tcpCloseOption>
<piggybackAck type="int">1</piggybackAck>
+ <tcpFastOpen type="int">0</tcpFastOpen>
<enableLargeHeader type="int">0</enableLargeHeader>
<maxHeaderLen type="int">1024</maxHeaderLen>
<useAllIPs type="int">0</useAllIPs>
<enableDecompressSupport type="int">0</enableDecompressSupport>
<enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
<enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
+ <enableAuth type="int">0</enableAuth>
+ <authProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthProfileList" itemtype="ixAuthProfile"/>
+ <ipMappingList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthIpMapList" itemtype="ixAuthIpMap"/>
<uniqueID type="int">1</uniqueID>
<disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
<methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
@@ -889,7 +894,7 @@
</traffic>
<network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
<resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
+ <name type="str">uplink_0</name>
<role type="str">Client</role>
<networkType type="str">none</networkType>
<aggregation type="int">0</aggregation>
@@ -903,7 +908,7 @@
<networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
<item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
<_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (152.16.100.20+1)</name>
+ <name type="str">Network Range IP-R1 in uplink_0 (152.16.100.20+1)</name>
<rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
<name type="str">DistGroup1</name>
<ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
@@ -1031,15 +1036,15 @@
<role type="str">Client</role>
<activeRole type="str">Client</activeRole>
<objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
+ <objectiveType type="str">transactionRate</objectiveType>
+ <objectiveValue type="int">500000</objectiveValue>
+ <userObjectiveType type="str">transactionRate</userObjectiveType>
+ <userObjectiveValue type="long">500000</userObjectiveValue>
+ <constraintType type="str">SimulatedUserConstraint</constraintType>
<constraintValue type="int">100</constraintValue>
<timerGranularity type="int">100</timerGranularity>
<enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
+ <secondaryConstraintType type="str">SimulatedUserConstraint</secondaryConstraintType>
<secondaryConstraintValue type="int">100</secondaryConstraintValue>
<secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
<portMapPolicy type="str">portMesh</portMapPolicy>
@@ -1050,7 +1055,7 @@
<playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
<objectID type="int">0</objectID>
<_apiUniqueId type="int">12954</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
+ <_objectiveValue type="int">500000</_objectiveValue>
<timelineScale type="float">1.0</timelineScale>
</item>
</activityParameters>
@@ -1110,16 +1115,16 @@
<iterationTime type="int">620</iterationTime>
<totalTime type="int">620</totalTime>
<portMapPolicy type="str">portPairs</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
+ <objectiveType type="str">transactionRate</objectiveType>
+ <objectiveValue type="int">500000</objectiveValue>
<rampUpType type="int">-1</rampUpType>
<rampUpValue type="int">30000</rampUpValue>
<rampUpInterval type="int">1</rampUpInterval>
<rampUpTime type="int">0</rampUpTime>
<rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
+ <userObjectiveType type="str">transactionRate</userObjectiveType>
+ <userObjectiveValue type="long">500000</userObjectiveValue>
+ <totalUserObjectiveValue type="long">500000</totalUserObjectiveValue>
<objectID type="int">0</objectID>
<_apiUniqueId type="int">12925</_apiUniqueId>
<isVisible type="bool">True</isVisible>
@@ -1258,7 +1263,7 @@
<pollingInterval type="int">2</pollingInterval>
<allowCsvLogging type="bool">False</allowCsvLogging>
<enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;EOXC@8_BL1*U6[TN9P(-!2VA'EF$9# 1'FD+:KRB2&amp;&gt;B&lt;DC.UPS&amp;K_&#10;M^]K.00@)K78_M''\/.]AY[']FLZ'_=I7MHA0' 9W-: 9M0_W'8=!]@6C'2)'&#10;MJ*DU#&lt;W0S%:SQ@F(BMX1IDSYA YW-;AA&gt;(^A1K?:1EA0A@(7:3G&gt;5P(W'.+&amp;&#10;MO&lt;EX/AC/%?V^,YT-'-[LSNW)N/C^,NC;\^[#:&quot;&quot; WN3IP1X/^EEHFK7&gt;D\!9&#10;M\/O.D* ?$&gt;&lt;&lt;E&quot;WT(W17,VLR$-V.PM4*!ZNT?PA]BB0VQVOD' +W ;W&quot;+0Y)&#10;MRC RE#*XWDP)&lt;K',+,'K$A^L&quot;$]&amp;3.O\L$$I!B0VX=/LA]&quot;;DI AE^5LYR1&quot;&#10;MA&lt;0&gt;L&gt;&gt;A0#BBYSD. KCP41\RZ+&quot;0H'/&quot;]#@[^3P:9=87(_&amp;$)A';1&quot;R;R:?(&#10;M9WCC%\&lt;F27WG#=H3W O949Y?+Z(L7'_DW^PUXS33F$/LHRED&amp;2+[NSXBC*9/&#10;MA6LZH.T]Q7&gt;U5\8V;5W?[7;:KJZ%9*6;A@'T;T\CQWU%:ZCB@'\T/AFUS,I[&#10;MVTH&amp;U=.H?;2$?$QRGD[?).T4[I$P40%!B*.%]QGT&lt;/B1A-&amp;F .&quot; W9L=73PZ&#10;M&gt;B6KYV,4L&amp;%(UI$/'&lt;08UTOV[?Z^^F7?O^7_NK=7/Z*0W7Z)%W?\THX?0+/B&#10;MQN]G;#&amp; A/O'$?SSV/SGV(R7!%\0LR@HYG'EL]N3?2&gt;-;,0-A:LD]+A% D1L&#10;MJ8)FW/YPM6*WN&lt;RXJR2*'2Q#!Q$,??P3BB7T %&lt;Y)&lt;3F[Y9#DLE1$^^SCUFG&#10;M.2J*R'+]PI+9X&quot;K'+E_I&amp;UKDQ4PQGC%&lt;(X&amp;*-A&quot;=&gt;KZWW*8'&amp;5J%Y&quot; 88@GK&#10;MC_/Y-+/-H^?VO&gt;4J75B&quot;,&amp;P_V]_LKCH?.'/G6?A1M\.O+_9TVW@QIR%7O=KK&#10;MJ&gt;!!(_NEC%&quot;P+T\0D70 'CT.ZMA[;M6/Y)@5O1)^W&quot;4BOL!QWN*(-&quot;:+O\3.&#10;MNT7T$NL1KUY]_L&lt;J6=G^RFR^=S*\Q(@(INNYUF+A&gt;JJ%W(7: #&lt;+=6$&quot;I()6&#10;MRS&quot;0Z0&amp;S;LDYJ7)P'HJ+*:\3_@J U91.&lt;M&quot;YW6&gt;*B&amp;/W!&gt;BH0+54$Z@MTZHW&#10;M+*M15YN&amp;&quot;9H\F6O5,EMFO64V#+5N-&amp;]NFBWI.F==FA+7-V'(FP2&quot;81J@I0*@&#10;M&amp;JTYJ+&gt;M1AM86M,TK&amp;M@JL9UVS#2;$^L*OR&amp;_ SG#(4OYW: _61),GY&quot;)JNU&#10;MXI/$F^(3=%]Q@-)IZ8^=CZH0&gt;:S?,LH;GKJ&gt;)TYTP03-&amp;\VT&amp;II9-S1@WAP-&#10;MVVUPNEGI52[.@]G[,6*[D'Q/MVG.NM;,N JK2V=EE N.9LA'D,JQV?L1KS&gt;4&#10;M:PT8RJ![ZBQ'N^ L7&gt;N]]C/?S%8$KA6Q!5#EU_UU\[=GFU=CSW&amp;49Y&amp;U6HQ2&#10;MO5?8^QG:\$T&amp;D=RPZEI+C!RT$B\EE/(E^_G)&lt;:$O1P.,1'&quot;%_G-#9YN#/RWX&#10;M5BW,3GI+12HKDS,92N/W' &quot;Y@P)17C/0R4:&lt;9!4&quot;Z86^S_&lt;L4&lt;9)12,&amp;^0?P&#10;M8IF=8I7&amp;(P1)@#QQ&gt; K&gt;4I1W&gt;0&lt;%O-+/T ]WLB&quot;AI6Y.X4HO?.\33%D(&quot;J)&lt;&#10;MVSDW1?R2HZ3TO^2K2*EVQ^ORT U].^&quot;*6T(7E7LL954ZG8410S,8K,J]%&gt; R&#10;M-^N-V#WFF5R*4U^&amp;5^GRHMYB77J'0*B6W[=*3K\3RA=1Z)V1LJ574:T)=EQ9&#10;M9[&gt;T_W!!S IO&lt;4$)_(-\!Z)CA(/OR#L6YD&lt;;/5'&quot;L45+&lt;7&amp;1O&gt;]((2L!/R7N&#10;M:M);+7&gt;#KIWB\5VFIH3$0T3&gt;=:#+A4%':(O\]-*I2PM^HPW6F\O764Y(Z@-Y&#10;M9\G=9P74&quot;X,E7D4$YF^08M8I!UT.RN^1O&amp;\AB7.,#T]AGQRC4-9!Y\&gt;KAZA+&#10;ML%1( N;*7&gt;Z5'VD^/\_2,DM\[210/JZ'MF\8Y!AZ/O/_JPUI+L8I'ME/'/?_&#10;% D1BE1\ &#10; &#10;end&#10;</svConfiguration>
+ <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;MSXC84_2L&gt;.LVTT_HAFU&lt;(R4X&quot;9,,L&quot;0QFT\XTG1UA&quot;^)=8WLEF4&lt;[&#10;M_&gt;^]DHTQQB:9]L,NLLZY5U?2T=55NA^V*U]9$\J\,+BN(&lt;VH?;CIVASS9X]L&#10;M&quot;#U 3:UI:(9F&amp;&lt;T:$ @3O2./&lt;&gt;43V5W7&lt;,2]K8&lt;UMM8B8&lt;$X&quot;1RBY7B_41P!&#10;M!,:]\=-L\#13])ON9#JPH7D[&amp;XZ?BM]?!OWA[/9N-!! ;_QX-WP:]+.A6=9Z&#10;M3P G@]]T[RGY'@-GIZRQ'Y/KFEF3 ['U*%PNO6&quot;Y[[_'/B,2FWDK8N\&quot;YXZ\&#10;MXK47TCW#R%#&amp;\2J:4.)X,K(4MR0^6%((1BSK;!&gt;1/88D-H9E]D/L3FC(B&lt;-S&#10;MMC,:DT)@#Y[KDD X8J&lt;Q#@(\]TD?&lt;VSSD))3PN2P.ODXZF769T&gt;&quot;@,8QCV*&gt;&#10;MK&gt;1C[',O\HMSDZ2^_0;M$6^%[!C$UXL9#U&lt;?8&lt;]&gt;,TYS/^:]YY,)YADB^V]]&#10;M0CG;_RJ@Z8!UMLR[KKUR'G5T?;/9:!M+&quot;^E2-PT#Z;\_CFSGE:RPZ@6P:; 8&#10;MM&lt;S*?=M*#JKO1^V3!88YR74Z_I*T8[A'PU0%E!! &quot;]]3['KA1QK&amp;40'P GYC&#10;M=G7QT]4K63W?(P&amp;_#^DJ]K%-. &gt;]9'OW]\4/V_X5_'=[=?$]#OG5&lt;W*XDX].&#10;M\H.T1M+X]80M)I!R_SB ?QZ:_QR:R9&amp; S&amp;-@V(&lt;%SZ_.LH[^Y&amp;-I*&amp; 2D(7&#10;M+%(@Y@L5-9/VAXLEO\I%!J[248;!(K0)];#O_87%$;K#RYP2$O-WRR&amp;-Y*&quot;)&#10;M]]DGK.,8%45$N?K&quot;T]4 E7L.G/2(%7D)4\SG&quot;:^(0$4;B4X]WUMNT\.&lt;+$.Z&#10;M$PQQA/6'V6R2V&gt;;14_O&gt;8KD_6(+0Z[QX6Y&amp;07H0/=49QP+#,2^R+.0E!]1K=&#10;M+J3O@F5Y:(3N0W?983J'WE.K?BQGJ^B5\,,FE&gt;\9COT61X0QGG\5.7=-V#G6&#10;M@[=\]&gt;$?KV1EF94/(6MR;^$1*IB.ZS3F&lt;\=5&amp;\29JW5T.5?G)B(J:K4,@Y@N&#10;M,JV&amp;7),J!Z=#@8SR&quot;H%/A!I-Z20'G=I]9H3:P[X ;16I#=5$JFDT3(2099@J&#10;M,EO0-HP6@O-6K]&lt;OT:754MM6H]FN2^&lt;Y^]*@0-N4$W&lt;&lt;&quot;(9IH+:*8(#6#)F=&#10;M&gt;JO3J&amp;NHWFQ&lt;6HU?#*-C&amp;/MXCZPJ_(9P?P-#@:/&lt;&quot;3P_/8X&lt;;L?TI%9L2I(0&#10;M'['SZ@5DOS#V&lt;/0\&amp;3T/[6G?-A(]EO+&gt;&lt;'?KNN)*%TQD:*;5TF A-619![L%&#10;M:1N=CE7']4ZS;1D=/'&lt;;'=-J_XC,XR2F5WD^C6&amp;X?2)\$])O^_0-K#849AIH&#10;M0$,-4[HK(YUQ-24^P4Q.&gt;K@=P&lt;%7VAHRE,'ML;,&lt;[8RS7!:!-+&gt;D&gt;*6(%,&amp;4&#10;MG[;MYL\O0ZC37I)17D3&lt;ZN!6_1RYD)\*H5?GE.%V2B)(0X3FIF=I+5&amp;A-MJI&#10;MEQ)*^='^_&amp;@[V&quot;?)/J:R+/2?&amp;MKK'/QI#LE&lt;F!WUEDI9UBXG8I7&amp;[[DB&lt;E&lt;)&#10;M85!5L'$DTW*%7$/?A]PF&quot;CUY*Q&quot;.82/&lt;1'#'6*7QB&amp; :$%=&lt;KX*W$ 5@WD$!&#10;MK_1S[X&lt;;6;*P4C?'&lt;*47R)&amp;&quot;*4M%0909(.&gt;FB)]SE#X.SODJ4JK=0&gt;4&gt;.J$_&#10;M#$!Q&quot;^R0&lt;H^EK$JGTS#F9(J#9;FW ESF9A6)/#++Y%)&lt;^C*\2I=G]9;HTMT%&#10;M0K7P(BNY)8\HSZ(4/&quot;%E1Z^BGA/LI/;.WG'_X0F9E&gt;;B&quot;1/X._F-1,?(&quot;[X1&#10;M]U&quot;Z'VST5 F'%BO%Q5/WIBN%K 1PC5S7I+=:[HU=.\:3UTY-&quot;:E+J'P-80&gt;$&#10;MP49D3?S]LU27%O#F#5;1^0&lt;O$-(Z0KYJ&lt;B]&gt; ?7&quot;8.$M8XKS;TRQZ@Q !T&quot;Y&#10;M'^GW&amp;M,DQN2*%?;I98MEO71Z&quot;;N$.=23&quot;DG!7$$,7N%R\^%FVY=C8K?3@?+C&#10;;NF3]AD&amp;.H&gt;&lt;C_[_:D.9BGN(G^R/(S;_B7J!I&#10; &#10;end&#10;</svConfiguration>
<svRestConfiguration type="str">(dp1&#10;S'HTTP Server Per URL'&#10;p2&#10;ccopy_reg&#10;_reconstructor&#10;p3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStatsList&#10;p4&#10;c__builtin__&#10;list&#10;p5&#10;(lp6&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStat&#10;p7&#10;c__builtin__&#10;object&#10;p8&#10;NtRp9&#10;(dp10&#10;S'proxyPropertyList'&#10;p11&#10;NsS'_objectID'&#10;p12&#10;I0&#10;sS'enabled'&#10;p13&#10;I01&#10;sS'filterList'&#10;p14&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixRestFilters&#10;p15&#10;g8&#10;NtRp16&#10;(dp17&#10;S'cardFilters'&#10;p18&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixCardFilterList&#10;p19&#10;g5&#10;(ltRp20&#10;(dp21&#10;g12&#10;I-1&#10;sS'_resourceLocked'&#10;p22&#10;I00&#10;sg11&#10;NsbsS'activityFilters'&#10;p23&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixActivityFilterList&#10;p24&#10;g5&#10;(ltRp25&#10;(dp26&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sS'chassisFilters'&#10;p27&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixChassisFilterList&#10;p28&#10;g5&#10;(ltRp29&#10;(dp30&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sS'portFilters'&#10;p31&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixPortFilterList&#10;p32&#10;g5&#10;(ltRp33&#10;(dp34&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;NsbsbsS'caption'&#10;p35&#10;S'HTTP Requests Received'&#10;p36&#10;sg22&#10;I00&#10;sS'aggregationType'&#10;p37&#10;S'kSum'&#10;p38&#10;sS'statName'&#10;p39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp40&#10;(dp41&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp42&#10;(dp43&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp44&#10;(dp45&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp46&#10;(dp47&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp48&#10;(dp49&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp50&#10;(dp51&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp53&#10;(dp54&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp55&#10;(dp56&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp57&#10;(dp58&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp59&#10;(dp60&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp61&#10;(dp62&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp63&#10;(dp64&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp66&#10;(dp67&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp68&#10;(dp69&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp70&#10;(dp71&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp72&#10;(dp73&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp74&#10;(dp75&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp76&#10;(dp77&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (50x)'&#10;p78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp79&#10;(dp80&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp81&#10;(dp82&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp83&#10;(dp84&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp85&#10;(dp86&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp87&#10;(dp88&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp89&#10;(dp90&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write Error)'&#10;p91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp92&#10;(dp93&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp94&#10;(dp95&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp96&#10;(dp97&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp98&#10;(dp99&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp100&#10;(dp101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp102&#10;(dp103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent'&#10;p104&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g104&#10;sbag3&#10;(g7&#10;g8&#10;NtRp105&#10;(dp106&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp107&#10;(dp108&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp109&#10;(dp110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp111&#10;(dp112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp113&#10;(dp114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp115&#10;(dp116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (1xx)'&#10;p117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp118&#10;(dp119&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp120&#10;(dp121&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp122&#10;(dp123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp124&#10;(dp125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp126&#10;(dp127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp128&#10;(dp129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (2xx)'&#10;p130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp131&#10;(dp132&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp133&#10;(dp134&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp135&#10;(dp136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp137&#10;(dp138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp139&#10;(dp140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp141&#10;(dp142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (3xx)'&#10;p143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp144&#10;(dp145&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp146&#10;(dp147&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp148&#10;(dp149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp150&#10;(dp151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp152&#10;(dp153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp154&#10;(dp155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (4xx)'&#10;p156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp157&#10;(dp158&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp159&#10;(dp160&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp161&#10;(dp162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp163&#10;(dp164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp165&#10;(dp166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp167&#10;(dp168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (5xx)'&#10;p169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp170&#10;(dp171&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp172&#10;(dp173&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp174&#10;(dp175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp176&#10;(dp177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp178&#10;(dp179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp180&#10;(dp181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (Other)'&#10;p182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp183&#10;(dp184&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp185&#10;(dp186&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp187&#10;(dp188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp189&#10;(dp190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp191&#10;(dp192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp193&#10;(dp194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Write Error)'&#10;p195&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g195&#10;sbag3&#10;(g7&#10;g8&#10;NtRp196&#10;(dp197&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp198&#10;(dp199&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp200&#10;(dp201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp202&#10;(dp203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp204&#10;(dp205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp206&#10;(dp207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Aborted)'&#10;p208&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g208&#10;sbag3&#10;(g7&#10;g8&#10;NtRp209&#10;(dp210&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp211&#10;(dp212&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp213&#10;(dp214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp215&#10;(dp216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp217&#10;(dp218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp219&#10;(dp220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Other)'&#10;p221&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g221&#10;sbag3&#10;(g7&#10;g8&#10;NtRp222&#10;(dp223&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp224&#10;(dp225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp226&#10;(dp227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp228&#10;(dp229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp230&#10;(dp231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp232&#10;(dp233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Sent'&#10;p234&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g234&#10;sbag3&#10;(g7&#10;g8&#10;NtRp235&#10;(dp236&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp237&#10;(dp238&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp239&#10;(dp240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp241&#10;(dp242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp243&#10;(dp244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp245&#10;(dp246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp248&#10;(dp249&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp250&#10;(dp251&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp252&#10;(dp253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp254&#10;(dp255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp256&#10;(dp257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp258&#10;(dp259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p260&#10;sg22&#10;I00&#10;sg37&#10;S'kWeightedAverage'&#10;p261&#10;sg39&#10;g260&#10;sbag3&#10;(g7&#10;g8&#10;NtRp262&#10;(dp263&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp264&#10;(dp265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp266&#10;(dp267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp268&#10;(dp269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp270&#10;(dp271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp272&#10;(dp273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p274&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp275&#10;(dp276&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp277&#10;(dp278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp279&#10;(dp280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp281&#10;(dp282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp283&#10;(dp284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp285&#10;(dp286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Received'&#10;p287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp288&#10;(dp289&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp290&#10;(dp291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp292&#10;(dp293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp294&#10;(dp295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp296&#10;(dp297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp298&#10;(dp299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp301&#10;(dp302&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp303&#10;(dp304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp305&#10;(dp306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp307&#10;(dp308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp309&#10;(dp310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp311&#10;(dp312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Received Chunk Size'&#10;p313&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp314&#10;(dp315&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp316&#10;(dp317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp318&#10;(dp319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp320&#10;(dp321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp322&#10;(dp323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp324&#10;(dp325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p326&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp327&#10;(dp328&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp329&#10;(dp330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp331&#10;(dp332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp333&#10;(dp334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp335&#10;(dp336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp337&#10;(dp338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Received'&#10;p339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp340&#10;(dp341&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp342&#10;(dp343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp344&#10;(dp345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp346&#10;(dp347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp348&#10;(dp349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp350&#10;(dp351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Successful'&#10;p352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp353&#10;(dp354&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp355&#10;(dp356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp357&#10;(dp358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp359&#10;(dp360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp361&#10;(dp362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp363&#10;(dp364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Failed'&#10;p365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp366&#10;(dp367&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp368&#10;(dp369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp370&#10;(dp371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp372&#10;(dp373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp374&#10;(dp375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp376&#10;(dp377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Request Received'&#10;p378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp379&#10;(dp380&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp381&#10;(dp382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp383&#10;(dp384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp385&#10;(dp386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp387&#10;(dp388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp389&#10;(dp390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Response Sent'&#10;p391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbatRp392&#10;(dp393&#10;g12&#10;I27&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Server'&#10;p394&#10;g3&#10;(g4&#10;g5&#10;(lp395&#10;g3&#10;(g7&#10;g8&#10;NtRp396&#10;(dp397&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp398&#10;(dp399&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp400&#10;(dp401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp402&#10;(dp403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp404&#10;(dp405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp406&#10;(dp407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g36&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp408&#10;(dp409&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp410&#10;(dp411&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp412&#10;(dp413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp414&#10;(dp415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp416&#10;(dp417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp418&#10;(dp419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp420&#10;(dp421&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp422&#10;(dp423&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp424&#10;(dp425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp426&#10;(dp427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp428&#10;(dp429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp430&#10;(dp431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p432&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g432&#10;sbag3&#10;(g7&#10;g8&#10;NtRp433&#10;(dp434&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp435&#10;(dp436&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp437&#10;(dp438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp439&#10;(dp440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp441&#10;(dp442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp443&#10;(dp444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp445&#10;(dp446&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp447&#10;(dp448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp449&#10;(dp450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp451&#10;(dp452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp453&#10;(dp454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp455&#10;(dp456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp457&#10;(dp458&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp459&#10;(dp460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp461&#10;(dp462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp463&#10;(dp464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp465&#10;(dp466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp467&#10;(dp468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp469&#10;(dp470&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp471&#10;(dp472&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp473&#10;(dp474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp475&#10;(dp476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp477&#10;(dp478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp479&#10;(dp480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p481&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g481&#10;sbag3&#10;(g7&#10;g8&#10;NtRp482&#10;(dp483&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp484&#10;(dp485&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp486&#10;(dp487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp488&#10;(dp489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp490&#10;(dp491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp492&#10;(dp493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p494&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g494&#10;sbag3&#10;(g7&#10;g8&#10;NtRp495&#10;(dp496&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp497&#10;(dp498&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp499&#10;(dp500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp501&#10;(dp502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp503&#10;(dp504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp505&#10;(dp506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p507&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g507&#10;sbag3&#10;(g7&#10;g8&#10;NtRp508&#10;(dp509&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp510&#10;(dp511&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp512&#10;(dp513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp514&#10;(dp515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp516&#10;(dp517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp518&#10;(dp519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp520&#10;(dp521&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp522&#10;(dp523&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp524&#10;(dp525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp526&#10;(dp527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp528&#10;(dp529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp530&#10;(dp531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp532&#10;(dp533&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp534&#10;(dp535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp536&#10;(dp537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp538&#10;(dp539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp540&#10;(dp541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp542&#10;(dp543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp544&#10;(dp545&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp546&#10;(dp547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp548&#10;(dp549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp550&#10;(dp551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp552&#10;(dp553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp554&#10;(dp555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp556&#10;(dp557&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp558&#10;(dp559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp560&#10;(dp561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp562&#10;(dp563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp564&#10;(dp565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp566&#10;(dp567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp568&#10;(dp569&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp570&#10;(dp571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp572&#10;(dp573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp574&#10;(dp575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp576&#10;(dp577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp578&#10;(dp579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp580&#10;(dp581&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp582&#10;(dp583&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp584&#10;(dp585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp586&#10;(dp587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp588&#10;(dp589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp590&#10;(dp591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p592&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g592&#10;sbag3&#10;(g7&#10;g8&#10;NtRp593&#10;(dp594&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp595&#10;(dp596&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp597&#10;(dp598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp599&#10;(dp600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp601&#10;(dp602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp603&#10;(dp604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p605&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g605&#10;sbag3&#10;(g7&#10;g8&#10;NtRp606&#10;(dp607&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp608&#10;(dp609&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp610&#10;(dp611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp612&#10;(dp613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp614&#10;(dp615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp616&#10;(dp617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p618&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g618&#10;sbag3&#10;(g7&#10;g8&#10;NtRp619&#10;(dp620&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp621&#10;(dp622&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp623&#10;(dp624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp625&#10;(dp626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp627&#10;(dp628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp629&#10;(dp630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p631&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g631&#10;sbag3&#10;(g7&#10;g8&#10;NtRp632&#10;(dp633&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp634&#10;(dp635&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp636&#10;(dp637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp638&#10;(dp639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp640&#10;(dp641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp642&#10;(dp643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p644&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g644&#10;sbag3&#10;(g7&#10;g8&#10;NtRp645&#10;(dp646&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp647&#10;(dp648&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp649&#10;(dp650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp651&#10;(dp652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp653&#10;(dp654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp655&#10;(dp656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p657&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g657&#10;sbag3&#10;(g7&#10;g8&#10;NtRp658&#10;(dp659&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp660&#10;(dp661&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp662&#10;(dp663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp664&#10;(dp665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp666&#10;(dp667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp668&#10;(dp669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Matching ServerID'&#10;p670&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g670&#10;sbag3&#10;(g7&#10;g8&#10;NtRp671&#10;(dp672&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp673&#10;(dp674&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp675&#10;(dp676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp677&#10;(dp678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp679&#10;(dp680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp681&#10;(dp682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Non-matching ServerID'&#10;p683&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g683&#10;sbag3&#10;(g7&#10;g8&#10;NtRp684&#10;(dp685&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp686&#10;(dp687&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp688&#10;(dp689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp690&#10;(dp691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp692&#10;(dp693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp694&#10;(dp695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Encoded Responses Sent'&#10;p696&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g696&#10;sbag3&#10;(g7&#10;g8&#10;NtRp697&#10;(dp698&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp699&#10;(dp700&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp701&#10;(dp702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp703&#10;(dp704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp705&#10;(dp706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp707&#10;(dp708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp709&#10;(dp710&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp711&#10;(dp712&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp713&#10;(dp714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp715&#10;(dp716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp717&#10;(dp718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp719&#10;(dp720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Transfer-Encoded Requests Received'&#10;p721&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g721&#10;sbag3&#10;(g7&#10;g8&#10;NtRp722&#10;(dp723&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp724&#10;(dp725&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp726&#10;(dp727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp728&#10;(dp729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp730&#10;(dp731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp732&#10;(dp733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp734&#10;(dp735&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp736&#10;(dp737&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp738&#10;(dp739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp740&#10;(dp741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp742&#10;(dp743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp744&#10;(dp745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp746&#10;(dp747&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp748&#10;(dp749&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp750&#10;(dp751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp752&#10;(dp753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp754&#10;(dp755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp756&#10;(dp757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp758&#10;(dp759&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp760&#10;(dp761&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp762&#10;(dp763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp764&#10;(dp765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp766&#10;(dp767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp768&#10;(dp769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp770&#10;(dp771&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp772&#10;(dp773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp774&#10;(dp775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp776&#10;(dp777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp778&#10;(dp779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp780&#10;(dp781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp782&#10;(dp783&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp784&#10;(dp785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp786&#10;(dp787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp788&#10;(dp789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp790&#10;(dp791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp792&#10;(dp793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp794&#10;(dp795&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp796&#10;(dp797&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp798&#10;(dp799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp800&#10;(dp801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp802&#10;(dp803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp804&#10;(dp805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Sent'&#10;p806&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g806&#10;sbag3&#10;(g7&#10;g8&#10;NtRp807&#10;(dp808&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp809&#10;(dp810&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp811&#10;(dp812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp813&#10;(dp814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp815&#10;(dp816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp817&#10;(dp818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Sent'&#10;p819&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g819&#10;sbag3&#10;(g7&#10;g8&#10;NtRp820&#10;(dp821&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp822&#10;(dp823&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp824&#10;(dp825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp826&#10;(dp827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp828&#10;(dp829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp830&#10;(dp831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Sent'&#10;p832&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g832&#10;sbag3&#10;(g7&#10;g8&#10;NtRp833&#10;(dp834&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp835&#10;(dp836&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp837&#10;(dp838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp839&#10;(dp840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp841&#10;(dp842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp843&#10;(dp844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Sent'&#10;p845&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g845&#10;sbag3&#10;(g7&#10;g8&#10;NtRp846&#10;(dp847&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp848&#10;(dp849&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp850&#10;(dp851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp852&#10;(dp853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp854&#10;(dp855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp856&#10;(dp857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Sent'&#10;p858&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g858&#10;sbag3&#10;(g7&#10;g8&#10;NtRp859&#10;(dp860&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp861&#10;(dp862&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp863&#10;(dp864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp865&#10;(dp866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp867&#10;(dp868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp869&#10;(dp870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Sent'&#10;p871&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g871&#10;sbag3&#10;(g7&#10;g8&#10;NtRp872&#10;(dp873&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp874&#10;(dp875&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp876&#10;(dp877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp878&#10;(dp879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp880&#10;(dp881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp882&#10;(dp883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Sent'&#10;p884&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g884&#10;sbag3&#10;(g7&#10;g8&#10;NtRp885&#10;(dp886&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp887&#10;(dp888&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp889&#10;(dp890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp891&#10;(dp892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp893&#10;(dp894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp895&#10;(dp896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Sent'&#10;p897&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g897&#10;sbag3&#10;(g7&#10;g8&#10;NtRp898&#10;(dp899&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp900&#10;(dp901&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp902&#10;(dp903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp904&#10;(dp905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp906&#10;(dp907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp908&#10;(dp909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Sent'&#10;p910&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g910&#10;sbag3&#10;(g7&#10;g8&#10;NtRp911&#10;(dp912&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp913&#10;(dp914&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp915&#10;(dp916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp917&#10;(dp918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp919&#10;(dp920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp921&#10;(dp922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Sent'&#10;p923&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g923&#10;sbag3&#10;(g7&#10;g8&#10;NtRp924&#10;(dp925&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp926&#10;(dp927&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp928&#10;(dp929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp930&#10;(dp931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp932&#10;(dp933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp934&#10;(dp935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Received'&#10;p936&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g936&#10;sbag3&#10;(g7&#10;g8&#10;NtRp937&#10;(dp938&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp939&#10;(dp940&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp941&#10;(dp942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp943&#10;(dp944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp945&#10;(dp946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp947&#10;(dp948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Received'&#10;p949&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g949&#10;sbag3&#10;(g7&#10;g8&#10;NtRp950&#10;(dp951&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp952&#10;(dp953&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp954&#10;(dp955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp956&#10;(dp957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp958&#10;(dp959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp960&#10;(dp961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Received'&#10;p962&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g962&#10;sbag3&#10;(g7&#10;g8&#10;NtRp963&#10;(dp964&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp965&#10;(dp966&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp967&#10;(dp968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp969&#10;(dp970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp971&#10;(dp972&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp973&#10;(dp974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Received'&#10;p975&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g975&#10;sbag3&#10;(g7&#10;g8&#10;NtRp976&#10;(dp977&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp978&#10;(dp979&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp980&#10;(dp981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp982&#10;(dp983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp984&#10;(dp985&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp986&#10;(dp987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Received'&#10;p988&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g988&#10;sbag3&#10;(g7&#10;g8&#10;NtRp989&#10;(dp990&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp991&#10;(dp992&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp993&#10;(dp994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp995&#10;(dp996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp997&#10;(dp998&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp999&#10;(dp1000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Received'&#10;p1001&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1001&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1002&#10;(dp1003&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1004&#10;(dp1005&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1006&#10;(dp1007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1008&#10;(dp1009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1010&#10;(dp1011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1012&#10;(dp1013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Received'&#10;p1014&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1014&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1015&#10;(dp1016&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1017&#10;(dp1018&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1019&#10;(dp1020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1021&#10;(dp1022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1023&#10;(dp1024&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1025&#10;(dp1026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Received'&#10;p1027&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1027&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1028&#10;(dp1029&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1030&#10;(dp1031&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1032&#10;(dp1033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1034&#10;(dp1035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1036&#10;(dp1037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1038&#10;(dp1039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Received'&#10;p1040&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1040&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1041&#10;(dp1042&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1043&#10;(dp1044&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1045&#10;(dp1046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1047&#10;(dp1048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1049&#10;(dp1050&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1051&#10;(dp1052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Received'&#10;p1053&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1053&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1054&#10;(dp1055&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1056&#10;(dp1057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1058&#10;(dp1059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1060&#10;(dp1061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1062&#10;(dp1063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1064&#10;(dp1065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Client'&#10;p1066&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1066&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1067&#10;(dp1068&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1069&#10;(dp1070&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1071&#10;(dp1072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1073&#10;(dp1074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1075&#10;(dp1076&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1077&#10;(dp1078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Server'&#10;p1079&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1079&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1080&#10;(dp1081&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1082&#10;(dp1083&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1084&#10;(dp1085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1086&#10;(dp1087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1088&#10;(dp1089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1090&#10;(dp1091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Client to Server'&#10;p1092&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1092&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1093&#10;(dp1094&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1095&#10;(dp1096&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1097&#10;(dp1098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1099&#10;(dp1100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1101&#10;(dp1102&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1103&#10;(dp1104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Server to Client'&#10;p1105&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1105&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1106&#10;(dp1107&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1108&#10;(dp1109&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1110&#10;(dp1111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1112&#10;(dp1113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1114&#10;(dp1115&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1116&#10;(dp1117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Client to Server'&#10;p1118&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1118&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1119&#10;(dp1120&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1121&#10;(dp1122&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1123&#10;(dp1124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1125&#10;(dp1126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1127&#10;(dp1128&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1129&#10;(dp1130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Server to Client'&#10;p1131&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1131&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1132&#10;(dp1133&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1134&#10;(dp1135&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1136&#10;(dp1137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1138&#10;(dp1139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1140&#10;(dp1141&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1142&#10;(dp1143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Succeeded'&#10;p1144&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1144&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1145&#10;(dp1146&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1147&#10;(dp1148&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1149&#10;(dp1150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1151&#10;(dp1152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1153&#10;(dp1154&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1155&#10;(dp1156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Failed'&#10;p1157&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1157&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1158&#10;(dp1159&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1160&#10;(dp1161&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1162&#10;(dp1163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1164&#10;(dp1165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1166&#10;(dp1167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1168&#10;(dp1169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Protocol Error'&#10;p1170&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1170&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1171&#10;(dp1172&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1173&#10;(dp1174&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1175&#10;(dp1176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1177&#10;(dp1178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1179&#10;(dp1180&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1181&#10;(dp1182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Internal Error'&#10;p1183&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1183&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1184&#10;(dp1185&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1186&#10;(dp1187&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1188&#10;(dp1189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1190&#10;(dp1191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1192&#10;(dp1193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1194&#10;(dp1195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Flow Control Error'&#10;p1196&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1196&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1197&#10;(dp1198&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1199&#10;(dp1200&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1201&#10;(dp1202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1203&#10;(dp1204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1205&#10;(dp1206&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1207&#10;(dp1208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Settings Timeout Error'&#10;p1209&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1209&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1210&#10;(dp1211&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1212&#10;(dp1213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1214&#10;(dp1215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1216&#10;(dp1217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1218&#10;(dp1219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1220&#10;(dp1221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Closed Error'&#10;p1222&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1222&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1223&#10;(dp1224&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1225&#10;(dp1226&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1227&#10;(dp1228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1229&#10;(dp1230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1231&#10;(dp1232&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1233&#10;(dp1234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Frame Size Error'&#10;p1235&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1235&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1236&#10;(dp1237&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1238&#10;(dp1239&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1240&#10;(dp1241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1242&#10;(dp1243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1244&#10;(dp1245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1246&#10;(dp1247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Refused Stream Error'&#10;p1248&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1248&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1249&#10;(dp1250&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1251&#10;(dp1252&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1253&#10;(dp1254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1255&#10;(dp1256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1257&#10;(dp1258&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1259&#10;(dp1260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Cancelled Error'&#10;p1261&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1261&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1262&#10;(dp1263&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1264&#10;(dp1265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1266&#10;(dp1267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1268&#10;(dp1269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1270&#10;(dp1271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1272&#10;(dp1273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Compression Error'&#10;p1274&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1275&#10;(dp1276&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1277&#10;(dp1278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1279&#10;(dp1280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1281&#10;(dp1282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1283&#10;(dp1284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1285&#10;(dp1286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connect Error'&#10;p1287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1288&#10;(dp1289&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1290&#10;(dp1291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1292&#10;(dp1293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1294&#10;(dp1295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1296&#10;(dp1297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1298&#10;(dp1299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Enhance Calm Error'&#10;p1300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1301&#10;(dp1302&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1303&#10;(dp1304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1305&#10;(dp1306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1307&#10;(dp1308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1309&#10;(dp1310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1311&#10;(dp1312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Inadequate Security Error'&#10;p1313&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1314&#10;(dp1315&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1316&#10;(dp1317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1318&#10;(dp1319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1320&#10;(dp1321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1322&#10;(dp1323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1324&#10;(dp1325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HTTP1.1 Required Error'&#10;p1326&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1327&#10;(dp1328&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1329&#10;(dp1330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1331&#10;(dp1332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1333&#10;(dp1334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1335&#10;(dp1336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1337&#10;(dp1338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p1339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1340&#10;(dp1341&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1342&#10;(dp1343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1344&#10;(dp1345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1346&#10;(dp1347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1348&#10;(dp1349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1350&#10;(dp1351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p1352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1353&#10;(dp1354&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1355&#10;(dp1356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1357&#10;(dp1358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1359&#10;(dp1360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1361&#10;(dp1362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1363&#10;(dp1364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p1365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1366&#10;(dp1367&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1368&#10;(dp1369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1370&#10;(dp1371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1372&#10;(dp1373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1374&#10;(dp1375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1376&#10;(dp1377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p1378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1379&#10;(dp1380&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1381&#10;(dp1382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1383&#10;(dp1384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1385&#10;(dp1386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1387&#10;(dp1388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1389&#10;(dp1390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p1391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1392&#10;(dp1393&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1394&#10;(dp1395&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1396&#10;(dp1397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1398&#10;(dp1399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1400&#10;(dp1401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1402&#10;(dp1403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p1404&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1404&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1405&#10;(dp1406&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1407&#10;(dp1408&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1409&#10;(dp1410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1411&#10;(dp1412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1413&#10;(dp1414&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1415&#10;(dp1416&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p1417&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1417&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1418&#10;(dp1419&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1420&#10;(dp1421&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1422&#10;(dp1423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1424&#10;(dp1425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1426&#10;(dp1427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1428&#10;(dp1429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p1430&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1430&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1431&#10;(dp1432&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1433&#10;(dp1434&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1435&#10;(dp1436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1437&#10;(dp1438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1439&#10;(dp1440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1441&#10;(dp1442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p1443&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1443&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1444&#10;(dp1445&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1446&#10;(dp1447&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1448&#10;(dp1449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1450&#10;(dp1451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1452&#10;(dp1453&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1454&#10;(dp1455&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p1456&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1456&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1457&#10;(dp1458&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1459&#10;(dp1460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1461&#10;(dp1462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1463&#10;(dp1464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1465&#10;(dp1466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1467&#10;(dp1468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p1469&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1469&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1470&#10;(dp1471&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1472&#10;(dp1473&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1474&#10;(dp1475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1476&#10;(dp1477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1478&#10;(dp1479&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1480&#10;(dp1481&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p1482&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1482&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1483&#10;(dp1484&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1485&#10;(dp1486&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1487&#10;(dp1488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1489&#10;(dp1490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1491&#10;(dp1492&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1493&#10;(dp1494&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p1495&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1495&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1496&#10;(dp1497&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1498&#10;(dp1499&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1500&#10;(dp1501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1502&#10;(dp1503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1504&#10;(dp1505&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1506&#10;(dp1507&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p1508&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1508&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1509&#10;(dp1510&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1511&#10;(dp1512&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1513&#10;(dp1514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1515&#10;(dp1516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1517&#10;(dp1518&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1519&#10;(dp1520&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p1521&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1521&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1522&#10;(dp1523&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1524&#10;(dp1525&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1526&#10;(dp1527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1528&#10;(dp1529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1530&#10;(dp1531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1532&#10;(dp1533&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p1534&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1534&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1535&#10;(dp1536&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1537&#10;(dp1538&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1539&#10;(dp1540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1541&#10;(dp1542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1543&#10;(dp1544&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1545&#10;(dp1546&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p1547&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1547&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1548&#10;(dp1549&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1550&#10;(dp1551&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1552&#10;(dp1553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1554&#10;(dp1555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1556&#10;(dp1557&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1558&#10;(dp1559&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p1560&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1560&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1561&#10;(dp1562&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1563&#10;(dp1564&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1565&#10;(dp1566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1567&#10;(dp1568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1569&#10;(dp1570&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1571&#10;(dp1572&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p1573&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1573&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1574&#10;(dp1575&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1576&#10;(dp1577&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1578&#10;(dp1579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1580&#10;(dp1581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1582&#10;(dp1583&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1584&#10;(dp1585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p1586&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1586&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1587&#10;(dp1588&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1589&#10;(dp1590&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1591&#10;(dp1592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1593&#10;(dp1594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1595&#10;(dp1596&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1597&#10;(dp1598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p1599&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1599&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1600&#10;(dp1601&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1602&#10;(dp1603&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1604&#10;(dp1605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1606&#10;(dp1607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1608&#10;(dp1609&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1610&#10;(dp1611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p1612&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1612&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1613&#10;(dp1614&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1615&#10;(dp1616&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1617&#10;(dp1618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1619&#10;(dp1620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1621&#10;(dp1622&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1623&#10;(dp1624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p1625&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1625&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1626&#10;(dp1627&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1628&#10;(dp1629&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1630&#10;(dp1631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1632&#10;(dp1633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1634&#10;(dp1635&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1636&#10;(dp1637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p1638&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1638&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1639&#10;(dp1640&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1641&#10;(dp1642&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1643&#10;(dp1644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1645&#10;(dp1646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1647&#10;(dp1648&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1649&#10;(dp1650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p1651&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1651&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1652&#10;(dp1653&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1654&#10;(dp1655&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1656&#10;(dp1657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1658&#10;(dp1659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1660&#10;(dp1661&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1662&#10;(dp1663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p1664&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1664&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1665&#10;(dp1666&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1667&#10;(dp1668&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1669&#10;(dp1670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1671&#10;(dp1672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1673&#10;(dp1674&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1675&#10;(dp1676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p1677&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1677&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1678&#10;(dp1679&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1680&#10;(dp1681&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1682&#10;(dp1683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1684&#10;(dp1685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1686&#10;(dp1687&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1688&#10;(dp1689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p1690&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1690&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1691&#10;(dp1692&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1693&#10;(dp1694&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1695&#10;(dp1696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1697&#10;(dp1698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1699&#10;(dp1700&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1701&#10;(dp1702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p1703&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1703&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1704&#10;(dp1705&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1706&#10;(dp1707&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1708&#10;(dp1709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1710&#10;(dp1711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1712&#10;(dp1713&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1714&#10;(dp1715&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p1716&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1716&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1717&#10;(dp1718&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1719&#10;(dp1720&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1721&#10;(dp1722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1723&#10;(dp1724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1725&#10;(dp1726&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1727&#10;(dp1728&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p1729&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1729&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1730&#10;(dp1731&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1732&#10;(dp1733&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1734&#10;(dp1735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1736&#10;(dp1737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1738&#10;(dp1739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1740&#10;(dp1741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p1742&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1742&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1743&#10;(dp1744&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1745&#10;(dp1746&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1747&#10;(dp1748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1749&#10;(dp1750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1751&#10;(dp1752&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1753&#10;(dp1754&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p1755&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1755&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1756&#10;(dp1757&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1758&#10;(dp1759&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1760&#10;(dp1761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1762&#10;(dp1763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1764&#10;(dp1765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1766&#10;(dp1767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p1768&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1768&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1769&#10;(dp1770&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1771&#10;(dp1772&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1773&#10;(dp1774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1775&#10;(dp1776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1777&#10;(dp1778&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1779&#10;(dp1780&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p1781&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1781&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1782&#10;(dp1783&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1784&#10;(dp1785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1786&#10;(dp1787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1788&#10;(dp1789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1790&#10;(dp1791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1792&#10;(dp1793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p1794&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1794&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1795&#10;(dp1796&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1797&#10;(dp1798&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1799&#10;(dp1800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1801&#10;(dp1802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1803&#10;(dp1804&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1805&#10;(dp1806&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p1807&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1807&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1808&#10;(dp1809&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1810&#10;(dp1811&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1812&#10;(dp1813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1814&#10;(dp1815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1816&#10;(dp1817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1818&#10;(dp1819&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p1820&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1820&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1821&#10;(dp1822&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1823&#10;(dp1824&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1825&#10;(dp1826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1827&#10;(dp1828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1829&#10;(dp1830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1831&#10;(dp1832&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p1833&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1833&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1834&#10;(dp1835&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1836&#10;(dp1837&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1838&#10;(dp1839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1840&#10;(dp1841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1842&#10;(dp1843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1844&#10;(dp1845&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p1846&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1846&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1847&#10;(dp1848&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1849&#10;(dp1850&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1851&#10;(dp1852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1853&#10;(dp1854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1855&#10;(dp1856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1857&#10;(dp1858&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p1859&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1859&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1860&#10;(dp1861&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1862&#10;(dp1863&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1864&#10;(dp1865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1866&#10;(dp1867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1868&#10;(dp1869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1870&#10;(dp1871&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p1872&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1872&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1873&#10;(dp1874&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1875&#10;(dp1876&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1877&#10;(dp1878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1879&#10;(dp1880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1881&#10;(dp1882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1883&#10;(dp1884&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p1885&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1885&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1886&#10;(dp1887&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1888&#10;(dp1889&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1890&#10;(dp1891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1892&#10;(dp1893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1894&#10;(dp1895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1896&#10;(dp1897&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p1898&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1898&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1899&#10;(dp1900&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1901&#10;(dp1902&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1903&#10;(dp1904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1905&#10;(dp1906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1907&#10;(dp1908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1909&#10;(dp1910&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p1911&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1911&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1912&#10;(dp1913&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1914&#10;(dp1915&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1916&#10;(dp1917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1918&#10;(dp1919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1920&#10;(dp1921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1922&#10;(dp1923&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p1924&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1924&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1925&#10;(dp1926&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1927&#10;(dp1928&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1929&#10;(dp1930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1931&#10;(dp1932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1933&#10;(dp1934&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1935&#10;(dp1936&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p1937&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1937&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1938&#10;(dp1939&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1940&#10;(dp1941&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1942&#10;(dp1943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1944&#10;(dp1945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1946&#10;(dp1947&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1948&#10;(dp1949&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p1950&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1950&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1951&#10;(dp1952&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1953&#10;(dp1954&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1955&#10;(dp1956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1957&#10;(dp1958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1959&#10;(dp1960&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1961&#10;(dp1962&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p1963&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1963&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1964&#10;(dp1965&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1966&#10;(dp1967&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1968&#10;(dp1969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1970&#10;(dp1971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1972&#10;(dp1973&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1974&#10;(dp1975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p1976&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1976&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1977&#10;(dp1978&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1979&#10;(dp1980&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1981&#10;(dp1982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1983&#10;(dp1984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1985&#10;(dp1986&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1987&#10;(dp1988&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p1989&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1989&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1990&#10;(dp1991&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1992&#10;(dp1993&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1994&#10;(dp1995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1996&#10;(dp1997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1998&#10;(dp1999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2000&#10;(dp2001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p2002&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2002&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2003&#10;(dp2004&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2005&#10;(dp2006&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2007&#10;(dp2008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2009&#10;(dp2010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2011&#10;(dp2012&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2013&#10;(dp2014&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p2015&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2015&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2016&#10;(dp2017&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2018&#10;(dp2019&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2020&#10;(dp2021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2022&#10;(dp2023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2024&#10;(dp2025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2026&#10;(dp2027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p2028&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2028&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2029&#10;(dp2030&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2031&#10;(dp2032&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2033&#10;(dp2034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2035&#10;(dp2036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2037&#10;(dp2038&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2039&#10;(dp2040&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p2041&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2041&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2042&#10;(dp2043&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2044&#10;(dp2045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2046&#10;(dp2047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2048&#10;(dp2049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2050&#10;(dp2051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2052&#10;(dp2053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p2054&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2054&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2055&#10;(dp2056&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2057&#10;(dp2058&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2059&#10;(dp2060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2061&#10;(dp2062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2063&#10;(dp2064&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2065&#10;(dp2066&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p2067&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2067&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2068&#10;(dp2069&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2070&#10;(dp2071&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2072&#10;(dp2073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2074&#10;(dp2075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2076&#10;(dp2077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2078&#10;(dp2079&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p2080&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2080&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2081&#10;(dp2082&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2083&#10;(dp2084&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2085&#10;(dp2086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2087&#10;(dp2088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2089&#10;(dp2090&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2091&#10;(dp2092&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p2093&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2093&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2094&#10;(dp2095&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2096&#10;(dp2097&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2098&#10;(dp2099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2100&#10;(dp2101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2102&#10;(dp2103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2104&#10;(dp2105&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p2106&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2106&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2107&#10;(dp2108&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2109&#10;(dp2110&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2111&#10;(dp2112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2113&#10;(dp2114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2115&#10;(dp2116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2117&#10;(dp2118&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p2119&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2119&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2120&#10;(dp2121&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2122&#10;(dp2123&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2124&#10;(dp2125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2126&#10;(dp2127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2128&#10;(dp2129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2130&#10;(dp2131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p2132&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2132&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2133&#10;(dp2134&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2135&#10;(dp2136&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2137&#10;(dp2138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2139&#10;(dp2140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2141&#10;(dp2142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2143&#10;(dp2144&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p2145&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2145&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2146&#10;(dp2147&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2148&#10;(dp2149&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2150&#10;(dp2151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2152&#10;(dp2153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2154&#10;(dp2155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2156&#10;(dp2157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p2158&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2158&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2159&#10;(dp2160&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2161&#10;(dp2162&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2163&#10;(dp2164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2165&#10;(dp2166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2167&#10;(dp2168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2169&#10;(dp2170&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p2171&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2171&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2172&#10;(dp2173&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2174&#10;(dp2175&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2176&#10;(dp2177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2178&#10;(dp2179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2180&#10;(dp2181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2182&#10;(dp2183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p2184&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2184&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2185&#10;(dp2186&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2187&#10;(dp2188&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2189&#10;(dp2190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2191&#10;(dp2192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2193&#10;(dp2194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2195&#10;(dp2196&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p2197&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2197&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2198&#10;(dp2199&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2200&#10;(dp2201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2202&#10;(dp2203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2204&#10;(dp2205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2206&#10;(dp2207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2208&#10;(dp2209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p2210&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2210&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2211&#10;(dp2212&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2213&#10;(dp2214&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2215&#10;(dp2216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2217&#10;(dp2218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2219&#10;(dp2220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2221&#10;(dp2222&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p2223&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2223&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2224&#10;(dp2225&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2226&#10;(dp2227&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2228&#10;(dp2229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2230&#10;(dp2231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2232&#10;(dp2233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2234&#10;(dp2235&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p2236&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2236&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2237&#10;(dp2238&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2239&#10;(dp2240&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2241&#10;(dp2242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2243&#10;(dp2244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2245&#10;(dp2246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2247&#10;(dp2248&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p2249&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2249&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2250&#10;(dp2251&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2252&#10;(dp2253&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2254&#10;(dp2255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2256&#10;(dp2257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2258&#10;(dp2259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2260&#10;(dp2261&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p2262&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2262&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2263&#10;(dp2264&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2265&#10;(dp2266&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2267&#10;(dp2268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2269&#10;(dp2270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2271&#10;(dp2272&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2273&#10;(dp2274&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p2275&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2275&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2276&#10;(dp2277&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2278&#10;(dp2279&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2280&#10;(dp2281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2282&#10;(dp2283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2284&#10;(dp2285&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2286&#10;(dp2287&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p2288&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2288&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2289&#10;(dp2290&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2291&#10;(dp2292&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2293&#10;(dp2294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2295&#10;(dp2296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2297&#10;(dp2298&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2299&#10;(dp2300&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p2301&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2301&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2302&#10;(dp2303&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2304&#10;(dp2305&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2306&#10;(dp2307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2308&#10;(dp2309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2310&#10;(dp2311&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2312&#10;(dp2313&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p2314&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2314&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2315&#10;(dp2316&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2317&#10;(dp2318&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2319&#10;(dp2320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2321&#10;(dp2322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2323&#10;(dp2324&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2325&#10;(dp2326&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p2327&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2327&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2328&#10;(dp2329&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2330&#10;(dp2331&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2332&#10;(dp2333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2334&#10;(dp2335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2336&#10;(dp2337&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2338&#10;(dp2339&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p2340&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2340&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2341&#10;(dp2342&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2343&#10;(dp2344&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2345&#10;(dp2346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2347&#10;(dp2348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2349&#10;(dp2350&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2351&#10;(dp2352&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p2353&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2353&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2354&#10;(dp2355&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2356&#10;(dp2357&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2358&#10;(dp2359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2360&#10;(dp2361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2362&#10;(dp2363&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2364&#10;(dp2365&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p2366&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2366&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2367&#10;(dp2368&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2369&#10;(dp2370&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2371&#10;(dp2372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2373&#10;(dp2374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2375&#10;(dp2376&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2377&#10;(dp2378&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p2379&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2379&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2380&#10;(dp2381&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2382&#10;(dp2383&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2384&#10;(dp2385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2386&#10;(dp2387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2388&#10;(dp2389&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2390&#10;(dp2391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p2392&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2392&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2393&#10;(dp2394&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2395&#10;(dp2396&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2397&#10;(dp2398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2399&#10;(dp2400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2401&#10;(dp2402&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2403&#10;(dp2404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p2405&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2405&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2406&#10;(dp2407&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2408&#10;(dp2409&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2410&#10;(dp2411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2412&#10;(dp2413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2414&#10;(dp2415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2416&#10;(dp2417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p2418&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2418&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2419&#10;(dp2420&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2421&#10;(dp2422&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2423&#10;(dp2424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2425&#10;(dp2426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2427&#10;(dp2428&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2429&#10;(dp2430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p2431&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2431&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2432&#10;(dp2433&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2434&#10;(dp2435&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2436&#10;(dp2437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2438&#10;(dp2439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2440&#10;(dp2441&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2442&#10;(dp2443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p2444&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2444&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2445&#10;(dp2446&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2447&#10;(dp2448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2449&#10;(dp2450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2451&#10;(dp2452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2453&#10;(dp2454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2455&#10;(dp2456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p2457&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2457&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2458&#10;(dp2459&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2460&#10;(dp2461&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2462&#10;(dp2463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2464&#10;(dp2465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2466&#10;(dp2467&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2468&#10;(dp2469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p2470&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2470&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2471&#10;(dp2472&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2473&#10;(dp2474&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2475&#10;(dp2476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2477&#10;(dp2478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2479&#10;(dp2480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2481&#10;(dp2482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p2483&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2483&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2484&#10;(dp2485&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2486&#10;(dp2487&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2488&#10;(dp2489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2490&#10;(dp2491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2492&#10;(dp2493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2494&#10;(dp2495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p2496&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2496&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2497&#10;(dp2498&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2499&#10;(dp2500&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2501&#10;(dp2502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2503&#10;(dp2504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2505&#10;(dp2506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2507&#10;(dp2508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p2509&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2509&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2510&#10;(dp2511&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2512&#10;(dp2513&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2514&#10;(dp2515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2516&#10;(dp2517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2518&#10;(dp2519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2520&#10;(dp2521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p2522&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2522&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2523&#10;(dp2524&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2525&#10;(dp2526&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2527&#10;(dp2528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2529&#10;(dp2530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2531&#10;(dp2532&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2533&#10;(dp2534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p2535&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2535&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2536&#10;(dp2537&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2538&#10;(dp2539&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2540&#10;(dp2541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2542&#10;(dp2543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2544&#10;(dp2545&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2546&#10;(dp2547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p2548&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2548&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2549&#10;(dp2550&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2551&#10;(dp2552&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2553&#10;(dp2554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2555&#10;(dp2556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2557&#10;(dp2558&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2559&#10;(dp2560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p2561&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2561&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2562&#10;(dp2563&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2564&#10;(dp2565&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2566&#10;(dp2567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2568&#10;(dp2569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2570&#10;(dp2571&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2572&#10;(dp2573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p2574&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2574&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2575&#10;(dp2576&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2577&#10;(dp2578&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2579&#10;(dp2580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2581&#10;(dp2582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2583&#10;(dp2584&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2585&#10;(dp2586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p2587&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2587&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2588&#10;(dp2589&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2590&#10;(dp2591&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2592&#10;(dp2593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2594&#10;(dp2595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2596&#10;(dp2597&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2598&#10;(dp2599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p2600&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2600&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2601&#10;(dp2602&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2603&#10;(dp2604&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2605&#10;(dp2606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2607&#10;(dp2608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2609&#10;(dp2610&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2611&#10;(dp2612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p2613&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2613&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2614&#10;(dp2615&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2616&#10;(dp2617&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2618&#10;(dp2619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2620&#10;(dp2621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2622&#10;(dp2623&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2624&#10;(dp2625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p2626&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2626&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2627&#10;(dp2628&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2629&#10;(dp2630&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2631&#10;(dp2632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2633&#10;(dp2634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2635&#10;(dp2636&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2637&#10;(dp2638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p2639&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2639&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2640&#10;(dp2641&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2642&#10;(dp2643&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2644&#10;(dp2645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2646&#10;(dp2647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2648&#10;(dp2649&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2650&#10;(dp2651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p2652&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2652&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2653&#10;(dp2654&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2655&#10;(dp2656&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2657&#10;(dp2658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2659&#10;(dp2660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2661&#10;(dp2662&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2663&#10;(dp2664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p2665&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2665&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2666&#10;(dp2667&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2668&#10;(dp2669&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2670&#10;(dp2671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2672&#10;(dp2673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2674&#10;(dp2675&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2676&#10;(dp2677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p2678&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2678&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2679&#10;(dp2680&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2681&#10;(dp2682&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2683&#10;(dp2684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2685&#10;(dp2686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2687&#10;(dp2688&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2689&#10;(dp2690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p2691&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2691&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2692&#10;(dp2693&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2694&#10;(dp2695&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2696&#10;(dp2697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2698&#10;(dp2699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2700&#10;(dp2701&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2702&#10;(dp2703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p2704&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2704&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2705&#10;(dp2706&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2707&#10;(dp2708&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2709&#10;(dp2710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2711&#10;(dp2712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2713&#10;(dp2714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2715&#10;(dp2716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p2717&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2717&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2718&#10;(dp2719&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2720&#10;(dp2721&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2722&#10;(dp2723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2724&#10;(dp2725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2726&#10;(dp2727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2728&#10;(dp2729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p2730&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2730&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2731&#10;(dp2732&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2733&#10;(dp2734&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2735&#10;(dp2736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2737&#10;(dp2738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2739&#10;(dp2740&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2741&#10;(dp2742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p2743&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2743&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2744&#10;(dp2745&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2746&#10;(dp2747&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2748&#10;(dp2749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2750&#10;(dp2751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2752&#10;(dp2753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2754&#10;(dp2755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p2756&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2756&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2757&#10;(dp2758&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2759&#10;(dp2760&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2761&#10;(dp2762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2763&#10;(dp2764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2765&#10;(dp2766&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2767&#10;(dp2768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p2769&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2769&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2770&#10;(dp2771&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2772&#10;(dp2773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2774&#10;(dp2775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2776&#10;(dp2777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2778&#10;(dp2779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2780&#10;(dp2781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p2782&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2782&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2783&#10;(dp2784&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2785&#10;(dp2786&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2787&#10;(dp2788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2789&#10;(dp2790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2791&#10;(dp2792&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2793&#10;(dp2794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p2795&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2795&#10;sbatRp2796&#10;(dp2797&#10;g12&#10;I185&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client Per URL'&#10;p2798&#10;g3&#10;(g4&#10;g5&#10;(lp2799&#10;g3&#10;(g7&#10;g8&#10;NtRp2800&#10;(dp2801&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2802&#10;(dp2803&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2804&#10;(dp2805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2806&#10;(dp2807&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2808&#10;(dp2809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2810&#10;(dp2811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Sent'&#10;p2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2813&#10;(dp2814&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2815&#10;(dp2816&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2817&#10;(dp2818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2819&#10;(dp2820&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2821&#10;(dp2822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2823&#10;(dp2824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2826&#10;(dp2827&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2828&#10;(dp2829&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2830&#10;(dp2831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2832&#10;(dp2833&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2834&#10;(dp2835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2836&#10;(dp2837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (Provisional)'&#10;p2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2839&#10;(dp2840&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2841&#10;(dp2842&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2843&#10;(dp2844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2845&#10;(dp2846&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2847&#10;(dp2848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2849&#10;(dp2850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2852&#10;(dp2853&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2854&#10;(dp2855&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2856&#10;(dp2857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2858&#10;(dp2859&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2860&#10;(dp2861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2862&#10;(dp2863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write)'&#10;p2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2865&#10;(dp2866&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2867&#10;(dp2868&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2869&#10;(dp2870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2871&#10;(dp2872&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2873&#10;(dp2874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2875&#10;(dp2876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Read)'&#10;p2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2878&#10;(dp2879&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2880&#10;(dp2881&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2882&#10;(dp2883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2884&#10;(dp2885&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2886&#10;(dp2887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2888&#10;(dp2889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Bad Header)'&#10;p2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2891&#10;(dp2892&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2893&#10;(dp2894&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2895&#10;(dp2896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2897&#10;(dp2898&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2899&#10;(dp2900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2901&#10;(dp2902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx)'&#10;p2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2904&#10;(dp2905&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2906&#10;(dp2907&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2908&#10;(dp2909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2910&#10;(dp2911&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2912&#10;(dp2913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2914&#10;(dp2915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (400)'&#10;p2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2917&#10;(dp2918&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2919&#10;(dp2920&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2921&#10;(dp2922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2923&#10;(dp2924&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2925&#10;(dp2926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2927&#10;(dp2928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (401)'&#10;p2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2930&#10;(dp2931&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2932&#10;(dp2933&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2934&#10;(dp2935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2936&#10;(dp2937&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2938&#10;(dp2939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2940&#10;(dp2941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (403)'&#10;p2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2943&#10;(dp2944&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2945&#10;(dp2946&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2947&#10;(dp2948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2949&#10;(dp2950&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2951&#10;(dp2952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2953&#10;(dp2954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2956&#10;(dp2957&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2958&#10;(dp2959&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2960&#10;(dp2961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2962&#10;(dp2963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2964&#10;(dp2965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2966&#10;(dp2967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (407)'&#10;p2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2969&#10;(dp2970&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2971&#10;(dp2972&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2973&#10;(dp2974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2975&#10;(dp2976&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2977&#10;(dp2978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2979&#10;(dp2980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (408)'&#10;p2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2982&#10;(dp2983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2984&#10;(dp2985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2986&#10;(dp2987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2988&#10;(dp2989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2990&#10;(dp2991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2992&#10;(dp2993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx other)'&#10;p2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2995&#10;(dp2996&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2997&#10;(dp2998&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2999&#10;(dp3000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3001&#10;(dp3002&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3003&#10;(dp3004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3005&#10;(dp3006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx)'&#10;p3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3008&#10;(dp3009&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3010&#10;(dp3011&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3012&#10;(dp3013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3014&#10;(dp3015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3016&#10;(dp3017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3018&#10;(dp3019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (505)'&#10;p3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3021&#10;(dp3022&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3023&#10;(dp3024&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3025&#10;(dp3026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3027&#10;(dp3028&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3029&#10;(dp3030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3031&#10;(dp3032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx other)'&#10;p3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3034&#10;(dp3035&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3036&#10;(dp3037&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3038&#10;(dp3039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3040&#10;(dp3041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3042&#10;(dp3043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3044&#10;(dp3045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (other)'&#10;p3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3047&#10;(dp3048&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3049&#10;(dp3050&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3051&#10;(dp3052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3053&#10;(dp3054&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3055&#10;(dp3056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3057&#10;(dp3058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Timeout)'&#10;p3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3060&#10;(dp3061&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3062&#10;(dp3063&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3064&#10;(dp3065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3066&#10;(dp3067&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3068&#10;(dp3069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3070&#10;(dp3071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3073&#10;(dp3074&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3075&#10;(dp3076&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3077&#10;(dp3078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3079&#10;(dp3080&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3081&#10;(dp3082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3083&#10;(dp3084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted Before Request'&#10;p3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3086&#10;(dp3087&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3088&#10;(dp3089&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3090&#10;(dp3091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3092&#10;(dp3093&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3094&#10;(dp3095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3096&#10;(dp3097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted After Request'&#10;p3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3099&#10;(dp3100&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3101&#10;(dp3102&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3103&#10;(dp3104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3105&#10;(dp3106&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3107&#10;(dp3108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3109&#10;(dp3110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received With Match'&#10;p3111&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3111&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3112&#10;(dp3113&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3114&#10;(dp3115&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3116&#10;(dp3117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3118&#10;(dp3119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3120&#10;(dp3121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3122&#10;(dp3123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received Without Match'&#10;p3124&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3124&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3125&#10;(dp3126&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3127&#10;(dp3128&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3129&#10;(dp3130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3131&#10;(dp3132&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3133&#10;(dp3134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3135&#10;(dp3136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Intermediate Responses Received (1xx)'&#10;p3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3138&#10;(dp3139&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3140&#10;(dp3141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3142&#10;(dp3143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3144&#10;(dp3145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3146&#10;(dp3147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3148&#10;(dp3149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (2xx)'&#10;p3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3151&#10;(dp3152&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3153&#10;(dp3154&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3155&#10;(dp3156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3157&#10;(dp3158&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3159&#10;(dp3160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3161&#10;(dp3162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (3xx)'&#10;p3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3164&#10;(dp3165&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3166&#10;(dp3167&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3168&#10;(dp3169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3170&#10;(dp3171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3172&#10;(dp3173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3174&#10;(dp3175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (301)'&#10;p3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3177&#10;(dp3178&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3179&#10;(dp3180&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3181&#10;(dp3182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3183&#10;(dp3184&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3185&#10;(dp3186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3187&#10;(dp3188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (302)'&#10;p3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3190&#10;(dp3191&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3192&#10;(dp3193&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3194&#10;(dp3195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3196&#10;(dp3197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3198&#10;(dp3199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3200&#10;(dp3201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (303)'&#10;p3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3203&#10;(dp3204&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3205&#10;(dp3206&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3207&#10;(dp3208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3209&#10;(dp3210&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3211&#10;(dp3212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3213&#10;(dp3214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (307)'&#10;p3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3216&#10;(dp3217&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3218&#10;(dp3219&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3220&#10;(dp3221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3222&#10;(dp3223&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3224&#10;(dp3225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3226&#10;(dp3227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Sent'&#10;p3228&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3228&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3229&#10;(dp3230&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3231&#10;(dp3232&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3233&#10;(dp3234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3235&#10;(dp3236&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3237&#10;(dp3238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3239&#10;(dp3240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Headers Received'&#10;p3241&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3241&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3242&#10;(dp3243&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3244&#10;(dp3245&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3246&#10;(dp3247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3248&#10;(dp3249&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3250&#10;(dp3251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3252&#10;(dp3253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Received'&#10;p3254&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3254&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3255&#10;(dp3256&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3257&#10;(dp3258&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3259&#10;(dp3260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3261&#10;(dp3262&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3263&#10;(dp3264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3265&#10;(dp3266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Successful'&#10;p3267&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3267&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3268&#10;(dp3269&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3270&#10;(dp3271&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3272&#10;(dp3273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3274&#10;(dp3275&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3276&#10;(dp3277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3278&#10;(dp3279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Failed'&#10;p3280&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3280&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3281&#10;(dp3282&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3283&#10;(dp3284&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3285&#10;(dp3286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3287&#10;(dp3288&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3289&#10;(dp3290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3291&#10;(dp3292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p3293&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3293&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3294&#10;(dp3295&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3296&#10;(dp3297&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3298&#10;(dp3299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3300&#10;(dp3301&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3302&#10;(dp3303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3304&#10;(dp3305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p3306&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3306&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3307&#10;(dp3308&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3309&#10;(dp3310&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3311&#10;(dp3312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3313&#10;(dp3314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3315&#10;(dp3316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3317&#10;(dp3318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p3319&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3319&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3320&#10;(dp3321&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3322&#10;(dp3323&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3324&#10;(dp3325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3326&#10;(dp3327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3328&#10;(dp3329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3330&#10;(dp3331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Sent'&#10;p3332&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3332&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3333&#10;(dp3334&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3335&#10;(dp3336&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3337&#10;(dp3338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3339&#10;(dp3340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3341&#10;(dp3342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3343&#10;(dp3344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p3345&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3345&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3346&#10;(dp3347&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3348&#10;(dp3349&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3350&#10;(dp3351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3352&#10;(dp3353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3354&#10;(dp3355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3356&#10;(dp3357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size in Request'&#10;p3358&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3358&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3359&#10;(dp3360&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3361&#10;(dp3362&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3363&#10;(dp3364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3365&#10;(dp3366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3367&#10;(dp3368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3369&#10;(dp3370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p3371&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3371&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3372&#10;(dp3373&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3374&#10;(dp3375&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3376&#10;(dp3377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3378&#10;(dp3379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3380&#10;(dp3381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3382&#10;(dp3383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name1-Value1'&#10;p3384&#10;sg22&#10;I00&#10;sg37&#10;S'kString'&#10;p3385&#10;sg39&#10;g3384&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3386&#10;(dp3387&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3388&#10;(dp3389&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3390&#10;(dp3391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3392&#10;(dp3393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3394&#10;(dp3395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3396&#10;(dp3397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter1'&#10;p3398&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3398&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3399&#10;(dp3400&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3401&#10;(dp3402&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3403&#10;(dp3404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3405&#10;(dp3406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3407&#10;(dp3408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3409&#10;(dp3410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name2-Value2'&#10;p3411&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3411&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3412&#10;(dp3413&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3414&#10;(dp3415&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3416&#10;(dp3417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3418&#10;(dp3419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3420&#10;(dp3421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3422&#10;(dp3423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter2'&#10;p3424&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3424&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3425&#10;(dp3426&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3427&#10;(dp3428&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3429&#10;(dp3430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3431&#10;(dp3432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3433&#10;(dp3434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3435&#10;(dp3436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name3-Value3'&#10;p3437&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3437&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3438&#10;(dp3439&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3440&#10;(dp3441&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3442&#10;(dp3443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3444&#10;(dp3445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3446&#10;(dp3447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3448&#10;(dp3449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter3'&#10;p3450&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3450&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3451&#10;(dp3452&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3453&#10;(dp3454&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3455&#10;(dp3456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3457&#10;(dp3458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3459&#10;(dp3460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3461&#10;(dp3462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name4-Value4'&#10;p3463&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3463&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3464&#10;(dp3465&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3466&#10;(dp3467&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3468&#10;(dp3469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3470&#10;(dp3471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3472&#10;(dp3473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3474&#10;(dp3475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter4'&#10;p3476&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3476&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3477&#10;(dp3478&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3479&#10;(dp3480&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3481&#10;(dp3482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3483&#10;(dp3484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3485&#10;(dp3486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3487&#10;(dp3488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name5-Value5'&#10;p3489&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3489&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3490&#10;(dp3491&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3492&#10;(dp3493&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3494&#10;(dp3495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3496&#10;(dp3497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3498&#10;(dp3499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3500&#10;(dp3501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter5'&#10;p3502&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3502&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3503&#10;(dp3504&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3505&#10;(dp3506&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3507&#10;(dp3508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3509&#10;(dp3510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3511&#10;(dp3512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3513&#10;(dp3514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name6-Value6'&#10;p3515&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3515&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3516&#10;(dp3517&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3518&#10;(dp3519&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3520&#10;(dp3521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3522&#10;(dp3523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3524&#10;(dp3525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3526&#10;(dp3527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter6'&#10;p3528&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3528&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3529&#10;(dp3530&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3531&#10;(dp3532&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3533&#10;(dp3534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3535&#10;(dp3536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3537&#10;(dp3538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3539&#10;(dp3540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name7-Value7'&#10;p3541&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3541&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3542&#10;(dp3543&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3544&#10;(dp3545&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3546&#10;(dp3547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3548&#10;(dp3549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3550&#10;(dp3551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3552&#10;(dp3553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter7'&#10;p3554&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3554&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3555&#10;(dp3556&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3557&#10;(dp3558&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3559&#10;(dp3560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3561&#10;(dp3562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3563&#10;(dp3564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3565&#10;(dp3566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name8-Value8'&#10;p3567&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3567&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3568&#10;(dp3569&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3570&#10;(dp3571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3572&#10;(dp3573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3574&#10;(dp3575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3576&#10;(dp3577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3578&#10;(dp3579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter8'&#10;p3580&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3580&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3581&#10;(dp3582&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3583&#10;(dp3584&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3585&#10;(dp3586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3587&#10;(dp3588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3589&#10;(dp3590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3591&#10;(dp3592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name9-Value9'&#10;p3593&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3593&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3594&#10;(dp3595&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3596&#10;(dp3597&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3598&#10;(dp3599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3600&#10;(dp3601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3602&#10;(dp3603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3604&#10;(dp3605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter9'&#10;p3606&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3606&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3607&#10;(dp3608&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3609&#10;(dp3610&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3611&#10;(dp3612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3613&#10;(dp3614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3615&#10;(dp3616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3617&#10;(dp3618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name10-Value10'&#10;p3619&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3619&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3620&#10;(dp3621&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3622&#10;(dp3623&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3624&#10;(dp3625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3626&#10;(dp3627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3628&#10;(dp3629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3630&#10;(dp3631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter10'&#10;p3632&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3632&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3633&#10;(dp3634&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3635&#10;(dp3636&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3637&#10;(dp3638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3639&#10;(dp3640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3641&#10;(dp3642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3643&#10;(dp3644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Received'&#10;p3645&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3645&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3646&#10;(dp3647&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3648&#10;(dp3649&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3650&#10;(dp3651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3652&#10;(dp3653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3654&#10;(dp3655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3656&#10;(dp3657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Successful'&#10;p3658&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3658&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3659&#10;(dp3660&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3661&#10;(dp3662&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3663&#10;(dp3664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3665&#10;(dp3666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3667&#10;(dp3668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3669&#10;(dp3670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Failed'&#10;p3671&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3671&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3672&#10;(dp3673&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3674&#10;(dp3675&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3676&#10;(dp3677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3678&#10;(dp3679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3680&#10;(dp3681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3682&#10;(dp3683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Received'&#10;p3684&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3684&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3685&#10;(dp3686&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3687&#10;(dp3688&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3689&#10;(dp3690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3691&#10;(dp3692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3693&#10;(dp3694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3695&#10;(dp3696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Successful'&#10;p3697&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3697&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3698&#10;(dp3699&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3700&#10;(dp3701&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3702&#10;(dp3703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3704&#10;(dp3705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3706&#10;(dp3707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3708&#10;(dp3709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Failed'&#10;p3710&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3710&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3711&#10;(dp3712&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3713&#10;(dp3714&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3715&#10;(dp3716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3717&#10;(dp3718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3719&#10;(dp3720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3721&#10;(dp3722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Received'&#10;p3723&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3723&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3724&#10;(dp3725&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3726&#10;(dp3727&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3728&#10;(dp3729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3730&#10;(dp3731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3732&#10;(dp3733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3734&#10;(dp3735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Successful'&#10;p3736&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3736&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3737&#10;(dp3738&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3739&#10;(dp3740&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3741&#10;(dp3742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3743&#10;(dp3744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3745&#10;(dp3746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3747&#10;(dp3748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Failed'&#10;p3749&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3749&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3750&#10;(dp3751&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3752&#10;(dp3753&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3754&#10;(dp3755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3756&#10;(dp3757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3758&#10;(dp3759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3760&#10;(dp3761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Received'&#10;p3762&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3762&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3763&#10;(dp3764&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3765&#10;(dp3766&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3767&#10;(dp3768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3769&#10;(dp3770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3771&#10;(dp3772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3773&#10;(dp3774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Successful'&#10;p3775&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3775&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3776&#10;(dp3777&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3778&#10;(dp3779&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3780&#10;(dp3781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3782&#10;(dp3783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3784&#10;(dp3785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3786&#10;(dp3787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Failed'&#10;p3788&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3788&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3789&#10;(dp3790&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3791&#10;(dp3792&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3793&#10;(dp3794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3795&#10;(dp3796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3797&#10;(dp3798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3799&#10;(dp3800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Average Compression Ratio'&#10;p3801&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3801&#10;sbatRp3802&#10;(dp3803&#10;g12&#10;I76&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client'&#10;p3804&#10;g3&#10;(g4&#10;g5&#10;(lp3805&#10;g3&#10;(g7&#10;g8&#10;NtRp3806&#10;(dp3807&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3808&#10;(dp3809&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3810&#10;(dp3811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3812&#10;(dp3813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3814&#10;(dp3815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3816&#10;(dp3817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Simulated Users'&#10;p3818&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3818&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3819&#10;(dp3820&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3821&#10;(dp3822&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3823&#10;(dp3824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3825&#10;(dp3826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3827&#10;(dp3828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3829&#10;(dp3830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Concurrent Connections'&#10;p3831&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3831&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3832&#10;(dp3833&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3834&#10;(dp3835&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3836&#10;(dp3837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3838&#10;(dp3839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3840&#10;(dp3841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3842&#10;(dp3843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connections'&#10;p3844&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3844&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3845&#10;(dp3846&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3847&#10;(dp3848&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3849&#10;(dp3850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3851&#10;(dp3852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3853&#10;(dp3854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3855&#10;(dp3856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Attempts'&#10;p3857&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3857&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3858&#10;(dp3859&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3860&#10;(dp3861&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3862&#10;(dp3863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3864&#10;(dp3865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3866&#10;(dp3867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3868&#10;(dp3869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Aborts'&#10;p3870&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3870&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3871&#10;(dp3872&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3873&#10;(dp3874&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3875&#10;(dp3876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3877&#10;(dp3878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3879&#10;(dp3880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3881&#10;(dp3882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Aborts'&#10;p3883&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3883&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3884&#10;(dp3885&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3886&#10;(dp3887&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3888&#10;(dp3889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3890&#10;(dp3891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3892&#10;(dp3893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3894&#10;(dp3895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions'&#10;p3896&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3896&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3897&#10;(dp3898&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3899&#10;(dp3900&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3901&#10;(dp3902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3903&#10;(dp3904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3905&#10;(dp3906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3907&#10;(dp3908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes'&#10;p3909&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3909&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3910&#10;(dp3911&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3912&#10;(dp3913&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3914&#10;(dp3915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3916&#10;(dp3917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3918&#10;(dp3919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3920&#10;(dp3921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3922&#10;(dp3923&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3924&#10;(dp3925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3926&#10;(dp3927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3928&#10;(dp3929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3930&#10;(dp3931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3932&#10;(dp3933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3934&#10;(dp3935&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3936&#10;(dp3937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3938&#10;(dp3939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3940&#10;(dp3941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3942&#10;(dp3943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3944&#10;(dp3945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3946&#10;(dp3947&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3948&#10;(dp3949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3950&#10;(dp3951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3952&#10;(dp3953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3954&#10;(dp3955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3956&#10;(dp3957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3958&#10;(dp3959&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3960&#10;(dp3961&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3962&#10;(dp3963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3964&#10;(dp3965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3966&#10;(dp3967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3968&#10;(dp3969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3970&#10;(dp3971&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3972&#10;(dp3973&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3974&#10;(dp3975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3976&#10;(dp3977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3978&#10;(dp3979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3980&#10;(dp3981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3982&#10;(dp3983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3984&#10;(dp3985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3986&#10;(dp3987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3988&#10;(dp3989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3990&#10;(dp3991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3992&#10;(dp3993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3994&#10;(dp3995&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3996&#10;(dp3997&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3998&#10;(dp3999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4000&#10;(dp4001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4002&#10;(dp4003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4004&#10;(dp4005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4006&#10;(dp4007&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4008&#10;(dp4009&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4010&#10;(dp4011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4012&#10;(dp4013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4014&#10;(dp4015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4016&#10;(dp4017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4018&#10;(dp4019&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4020&#10;(dp4021&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4022&#10;(dp4023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4024&#10;(dp4025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4026&#10;(dp4027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4028&#10;(dp4029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4030&#10;(dp4031&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4032&#10;(dp4033&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4034&#10;(dp4035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4036&#10;(dp4037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4038&#10;(dp4039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4040&#10;(dp4041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4042&#10;(dp4043&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4044&#10;(dp4045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4046&#10;(dp4047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4048&#10;(dp4049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4050&#10;(dp4051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4052&#10;(dp4053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4054&#10;(dp4055&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4056&#10;(dp4057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4058&#10;(dp4059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4060&#10;(dp4061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4062&#10;(dp4063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4064&#10;(dp4065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4066&#10;(dp4067&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4068&#10;(dp4069&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4070&#10;(dp4071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4072&#10;(dp4073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4074&#10;(dp4075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4076&#10;(dp4077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4078&#10;(dp4079&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4080&#10;(dp4081&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4082&#10;(dp4083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4084&#10;(dp4085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4086&#10;(dp4087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4088&#10;(dp4089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4090&#10;(dp4091&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4092&#10;(dp4093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4094&#10;(dp4095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4096&#10;(dp4097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4098&#10;(dp4099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4100&#10;(dp4101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4102&#10;(dp4103&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4104&#10;(dp4105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4106&#10;(dp4107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4108&#10;(dp4109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4110&#10;(dp4111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4112&#10;(dp4113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4114&#10;(dp4115&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4116&#10;(dp4117&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4118&#10;(dp4119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4120&#10;(dp4121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4122&#10;(dp4123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4124&#10;(dp4125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4126&#10;(dp4127&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4128&#10;(dp4129&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4130&#10;(dp4131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4132&#10;(dp4133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4134&#10;(dp4135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4136&#10;(dp4137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4138&#10;(dp4139&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4140&#10;(dp4141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4142&#10;(dp4143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4144&#10;(dp4145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4146&#10;(dp4147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4148&#10;(dp4149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4150&#10;(dp4151&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4152&#10;(dp4153&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4154&#10;(dp4155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4156&#10;(dp4157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4158&#10;(dp4159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4160&#10;(dp4161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4162&#10;(dp4163&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4164&#10;(dp4165&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4166&#10;(dp4167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4168&#10;(dp4169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4170&#10;(dp4171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4172&#10;(dp4173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4174&#10;(dp4175&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4176&#10;(dp4177&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4178&#10;(dp4179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4180&#10;(dp4181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4182&#10;(dp4183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4184&#10;(dp4185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4186&#10;(dp4187&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4188&#10;(dp4189&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4190&#10;(dp4191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4192&#10;(dp4193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4194&#10;(dp4195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4196&#10;(dp4197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4198&#10;(dp4199&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4200&#10;(dp4201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4202&#10;(dp4203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4204&#10;(dp4205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4206&#10;(dp4207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4208&#10;(dp4209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4210&#10;(dp4211&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4212&#10;(dp4213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4214&#10;(dp4215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4216&#10;(dp4217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4218&#10;(dp4219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4220&#10;(dp4221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4222&#10;(dp4223&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4224&#10;(dp4225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4226&#10;(dp4227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4228&#10;(dp4229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4230&#10;(dp4231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4232&#10;(dp4233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4234&#10;(dp4235&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4236&#10;(dp4237&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4238&#10;(dp4239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4240&#10;(dp4241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4242&#10;(dp4243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4244&#10;(dp4245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4246&#10;(dp4247&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4248&#10;(dp4249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4250&#10;(dp4251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4252&#10;(dp4253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4254&#10;(dp4255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4256&#10;(dp4257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p4258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4259&#10;(dp4260&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4261&#10;(dp4262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4263&#10;(dp4264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4265&#10;(dp4266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4267&#10;(dp4268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4269&#10;(dp4270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Request Precondition Failed (412)'&#10;p4271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4272&#10;(dp4273&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4274&#10;(dp4275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4276&#10;(dp4277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4278&#10;(dp4279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4280&#10;(dp4281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4282&#10;(dp4283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p4284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4285&#10;(dp4286&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4287&#10;(dp4288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4289&#10;(dp4290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4291&#10;(dp4292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4293&#10;(dp4294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4295&#10;(dp4296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4297&#10;(dp4298&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4299&#10;(dp4300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4301&#10;(dp4302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4303&#10;(dp4304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4305&#10;(dp4306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4307&#10;(dp4308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4309&#10;(dp4310&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4311&#10;(dp4312&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4313&#10;(dp4314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4315&#10;(dp4316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4317&#10;(dp4318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4319&#10;(dp4320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions Active'&#10;p4321&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4321&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4322&#10;(dp4323&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4324&#10;(dp4325&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4326&#10;(dp4327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4328&#10;(dp4329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4330&#10;(dp4331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4332&#10;(dp4333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Users Active'&#10;p4334&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4334&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4335&#10;(dp4336&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4337&#10;(dp4338&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4339&#10;(dp4340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4341&#10;(dp4342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4343&#10;(dp4344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4345&#10;(dp4346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Received'&#10;p4347&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4347&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4348&#10;(dp4349&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4350&#10;(dp4351&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4352&#10;(dp4353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4354&#10;(dp4355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4356&#10;(dp4357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4358&#10;(dp4359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Received'&#10;p4360&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4360&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4361&#10;(dp4362&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4363&#10;(dp4364&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4365&#10;(dp4366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4367&#10;(dp4368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4369&#10;(dp4370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4371&#10;(dp4372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Received'&#10;p4373&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4373&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4374&#10;(dp4375&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4376&#10;(dp4377&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4378&#10;(dp4379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4380&#10;(dp4381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4382&#10;(dp4383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4384&#10;(dp4385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Unrecognized Content-Encoding Received'&#10;p4386&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4386&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4387&#10;(dp4388&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4389&#10;(dp4390&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4391&#10;(dp4392&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4393&#10;(dp4394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4395&#10;(dp4396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4397&#10;(dp4398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Successful'&#10;p4399&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4399&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4400&#10;(dp4401&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4402&#10;(dp4403&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4404&#10;(dp4405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4406&#10;(dp4407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4408&#10;(dp4409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4410&#10;(dp4411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Successful'&#10;p4412&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4412&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4413&#10;(dp4414&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4415&#10;(dp4416&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4417&#10;(dp4418&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4419&#10;(dp4420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4421&#10;(dp4422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4423&#10;(dp4424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Successful'&#10;p4425&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4425&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4426&#10;(dp4427&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4428&#10;(dp4429&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4430&#10;(dp4431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4432&#10;(dp4433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4434&#10;(dp4435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4436&#10;(dp4437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Failed'&#10;p4438&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4438&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4439&#10;(dp4440&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4441&#10;(dp4442&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4443&#10;(dp4444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4445&#10;(dp4446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4447&#10;(dp4448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4449&#10;(dp4450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed'&#10;p4451&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4451&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4452&#10;(dp4453&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4454&#10;(dp4455&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4456&#10;(dp4457&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4458&#10;(dp4459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4460&#10;(dp4461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4462&#10;(dp4463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed'&#10;p4464&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4464&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4465&#10;(dp4466&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4467&#10;(dp4468&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4469&#10;(dp4470&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4471&#10;(dp4472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4473&#10;(dp4474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4475&#10;(dp4476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Data Error'&#10;p4477&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4477&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4478&#10;(dp4479&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4480&#10;(dp4481&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4482&#10;(dp4483&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4484&#10;(dp4485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4486&#10;(dp4487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4488&#10;(dp4489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Decoding Error'&#10;p4490&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4490&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4491&#10;(dp4492&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4493&#10;(dp4494&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4495&#10;(dp4496&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4497&#10;(dp4498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4499&#10;(dp4500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4501&#10;(dp4502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Data Error'&#10;p4503&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4503&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4504&#10;(dp4505&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4506&#10;(dp4507&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4508&#10;(dp4509&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4510&#10;(dp4511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4512&#10;(dp4513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4514&#10;(dp4515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Decoding Error'&#10;p4516&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4516&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4517&#10;(dp4518&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4519&#10;(dp4520&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4521&#10;(dp4522&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4523&#10;(dp4524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4525&#10;(dp4526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4527&#10;(dp4528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Headers Received'&#10;p4529&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4529&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4530&#10;(dp4531&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4532&#10;(dp4533&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4534&#10;(dp4535&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4536&#10;(dp4537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4538&#10;(dp4539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4540&#10;(dp4541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Responses Received'&#10;p4542&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4542&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4543&#10;(dp4544&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4545&#10;(dp4546&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4547&#10;(dp4548&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4549&#10;(dp4550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4551&#10;(dp4552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4553&#10;(dp4554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Successful'&#10;p4555&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4555&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4556&#10;(dp4557&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4558&#10;(dp4559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4560&#10;(dp4561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4562&#10;(dp4563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4564&#10;(dp4565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4566&#10;(dp4567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Failed'&#10;p4568&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4568&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4569&#10;(dp4570&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4571&#10;(dp4572&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4573&#10;(dp4574&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4575&#10;(dp4576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4577&#10;(dp4578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4579&#10;(dp4580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Received'&#10;p4581&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4581&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4582&#10;(dp4583&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4584&#10;(dp4585&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4586&#10;(dp4587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4588&#10;(dp4589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4590&#10;(dp4591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4592&#10;(dp4593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Headers Sent'&#10;p4594&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4594&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4595&#10;(dp4596&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4597&#10;(dp4598&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4599&#10;(dp4600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4601&#10;(dp4602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4603&#10;(dp4604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4605&#10;(dp4606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Sent'&#10;p4607&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4607&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4608&#10;(dp4609&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4610&#10;(dp4611&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4612&#10;(dp4613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4614&#10;(dp4615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4616&#10;(dp4617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4618&#10;(dp4619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Responses Received'&#10;p4620&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4620&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4621&#10;(dp4622&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4623&#10;(dp4624&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4625&#10;(dp4626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4627&#10;(dp4628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4629&#10;(dp4630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4631&#10;(dp4632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Successful'&#10;p4633&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4633&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4634&#10;(dp4635&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4636&#10;(dp4637&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4638&#10;(dp4639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4640&#10;(dp4641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4642&#10;(dp4643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4644&#10;(dp4645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Failed'&#10;p4646&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4646&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4647&#10;(dp4648&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4649&#10;(dp4650&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4651&#10;(dp4652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4653&#10;(dp4654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4655&#10;(dp4656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4657&#10;(dp4658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Responses Received'&#10;p4659&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4659&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4660&#10;(dp4661&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4662&#10;(dp4663&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4664&#10;(dp4665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4666&#10;(dp4667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4668&#10;(dp4669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4670&#10;(dp4671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Successful'&#10;p4672&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4672&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4673&#10;(dp4674&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4675&#10;(dp4676&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4677&#10;(dp4678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4679&#10;(dp4680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4681&#10;(dp4682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4683&#10;(dp4684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Failed'&#10;p4685&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4685&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4686&#10;(dp4687&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4688&#10;(dp4689&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4690&#10;(dp4691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4692&#10;(dp4693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4694&#10;(dp4695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4696&#10;(dp4697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p4698&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4698&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4699&#10;(dp4700&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4701&#10;(dp4702&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4703&#10;(dp4704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4705&#10;(dp4706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4707&#10;(dp4708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4709&#10;(dp4710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p4711&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4711&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4712&#10;(dp4713&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4714&#10;(dp4715&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4716&#10;(dp4717&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4718&#10;(dp4719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4720&#10;(dp4721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4722&#10;(dp4723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p4724&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4724&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4725&#10;(dp4726&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4727&#10;(dp4728&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4729&#10;(dp4730&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4731&#10;(dp4732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4733&#10;(dp4734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4735&#10;(dp4736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p4737&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4737&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4738&#10;(dp4739&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4740&#10;(dp4741&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4742&#10;(dp4743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4744&#10;(dp4745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4746&#10;(dp4747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4748&#10;(dp4749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Decompressed Content Bytes Received'&#10;p4750&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4750&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4751&#10;(dp4752&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4753&#10;(dp4754&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4755&#10;(dp4756&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4757&#10;(dp4758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4759&#10;(dp4760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4761&#10;(dp4762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p4763&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4763&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4764&#10;(dp4765&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4766&#10;(dp4767&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4768&#10;(dp4769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4770&#10;(dp4771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4772&#10;(dp4773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4774&#10;(dp4775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p4776&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4776&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4777&#10;(dp4778&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4779&#10;(dp4780&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4781&#10;(dp4782&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4783&#10;(dp4784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4785&#10;(dp4786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4787&#10;(dp4788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected'&#10;p4789&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4789&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4790&#10;(dp4791&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4792&#10;(dp4793&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4794&#10;(dp4795&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4796&#10;(dp4797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4798&#10;(dp4799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4800&#10;(dp4801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Path Match Failed)'&#10;p4802&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4802&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4803&#10;(dp4804&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4805&#10;(dp4806&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4807&#10;(dp4808&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4809&#10;(dp4810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4811&#10;(dp4812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4813&#10;(dp4814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Domain Match Failed)'&#10;p4815&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4815&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4816&#10;(dp4817&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4818&#10;(dp4819&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4820&#10;(dp4821&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4822&#10;(dp4823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4824&#10;(dp4825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4826&#10;(dp4827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Cookiejar Overflow)'&#10;p4828&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4828&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4829&#10;(dp4830&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4831&#10;(dp4832&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4833&#10;(dp4834&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4835&#10;(dp4836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4837&#10;(dp4838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4839&#10;(dp4840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Probabilistic Reject)'&#10;p4841&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4841&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4842&#10;(dp4843&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4844&#10;(dp4845&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4846&#10;(dp4847&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4848&#10;(dp4849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4850&#10;(dp4851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4852&#10;(dp4853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookie headers Rejected - (Memory Overflow)'&#10;p4854&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4854&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4855&#10;(dp4856&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4857&#10;(dp4858&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4859&#10;(dp4860&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4861&#10;(dp4862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4863&#10;(dp4864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4865&#10;(dp4866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connect Time (us)'&#10;p4867&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4867&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4868&#10;(dp4869&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4870&#10;(dp4871&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4872&#10;(dp4873&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4874&#10;(dp4875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4876&#10;(dp4877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4878&#10;(dp4879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To First Byte (us)'&#10;p4880&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4880&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4881&#10;(dp4882&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4883&#10;(dp4884&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4885&#10;(dp4886&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4887&#10;(dp4888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4889&#10;(dp4890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4891&#10;(dp4892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To Last Byte (us)'&#10;p4893&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4893&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4894&#10;(dp4895&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4896&#10;(dp4897&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4898&#10;(dp4899&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4900&#10;(dp4901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4902&#10;(dp4903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4904&#10;(dp4905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Average (us)'&#10;p4906&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4906&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4907&#10;(dp4908&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4909&#10;(dp4910&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4911&#10;(dp4912&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4913&#10;(dp4914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4915&#10;(dp4916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4917&#10;(dp4918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Minimum (us)'&#10;p4919&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4919&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4920&#10;(dp4921&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4922&#10;(dp4923&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4924&#10;(dp4925&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4926&#10;(dp4927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4928&#10;(dp4929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4930&#10;(dp4931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Maximum (us)'&#10;p4932&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4932&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4933&#10;(dp4934&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4935&#10;(dp4936&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4937&#10;(dp4938&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4939&#10;(dp4940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4941&#10;(dp4942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4943&#10;(dp4944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Failed'&#10;p4945&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4945&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4946&#10;(dp4947&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4948&#10;(dp4949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4950&#10;(dp4951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4952&#10;(dp4953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4954&#10;(dp4955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4956&#10;(dp4957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Succeeded'&#10;p4958&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4958&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4959&#10;(dp4960&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4961&#10;(dp4962&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4963&#10;(dp4964&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4965&#10;(dp4966&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4967&#10;(dp4968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4969&#10;(dp4970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Received'&#10;p4971&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4971&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4972&#10;(dp4973&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4974&#10;(dp4975&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4976&#10;(dp4977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4978&#10;(dp4979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4980&#10;(dp4981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4982&#10;(dp4983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Received'&#10;p4984&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4984&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4985&#10;(dp4986&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4987&#10;(dp4988&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4989&#10;(dp4990&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4991&#10;(dp4992&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4993&#10;(dp4994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4995&#10;(dp4996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Received'&#10;p4997&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4997&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4998&#10;(dp4999&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5000&#10;(dp5001&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5002&#10;(dp5003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5004&#10;(dp5005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5006&#10;(dp5007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5008&#10;(dp5009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Received'&#10;p5010&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5010&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5011&#10;(dp5012&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5013&#10;(dp5014&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5015&#10;(dp5016&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5017&#10;(dp5018&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5019&#10;(dp5020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5021&#10;(dp5022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Received'&#10;p5023&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5023&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5024&#10;(dp5025&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5026&#10;(dp5027&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5028&#10;(dp5029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5030&#10;(dp5031&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5032&#10;(dp5033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5034&#10;(dp5035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Received'&#10;p5036&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5036&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5037&#10;(dp5038&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5039&#10;(dp5040&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5041&#10;(dp5042&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5043&#10;(dp5044&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5045&#10;(dp5046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5047&#10;(dp5048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Received'&#10;p5049&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5049&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5050&#10;(dp5051&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5052&#10;(dp5053&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5054&#10;(dp5055&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5056&#10;(dp5057&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5058&#10;(dp5059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5060&#10;(dp5061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Received'&#10;p5062&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5062&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5063&#10;(dp5064&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5065&#10;(dp5066&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5067&#10;(dp5068&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5069&#10;(dp5070&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5071&#10;(dp5072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5073&#10;(dp5074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Received'&#10;p5075&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5075&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5076&#10;(dp5077&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5078&#10;(dp5079&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5080&#10;(dp5081&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5082&#10;(dp5083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5084&#10;(dp5085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5086&#10;(dp5087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Received'&#10;p5088&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5088&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5089&#10;(dp5090&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5091&#10;(dp5092&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5093&#10;(dp5094&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5095&#10;(dp5096&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5097&#10;(dp5098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5099&#10;(dp5100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Sent'&#10;p5101&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5101&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5102&#10;(dp5103&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5104&#10;(dp5105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5106&#10;(dp5107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5108&#10;(dp5109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5110&#10;(dp5111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5112&#10;(dp5113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Sent'&#10;p5114&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5114&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5115&#10;(dp5116&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5117&#10;(dp5118&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5119&#10;(dp5120&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5121&#10;(dp5122&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5123&#10;(dp5124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5125&#10;(dp5126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Sent'&#10;p5127&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5127&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5128&#10;(dp5129&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5130&#10;(dp5131&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5132&#10;(dp5133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5134&#10;(dp5135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5136&#10;(dp5137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5138&#10;(dp5139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Sent'&#10;p5140&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5140&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5141&#10;(dp5142&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5143&#10;(dp5144&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5145&#10;(dp5146&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5147&#10;(dp5148&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5149&#10;(dp5150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5151&#10;(dp5152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Sent'&#10;p5153&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5153&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5154&#10;(dp5155&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5156&#10;(dp5157&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5158&#10;(dp5159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5160&#10;(dp5161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5162&#10;(dp5163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5164&#10;(dp5165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Sent'&#10;p5166&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5166&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5167&#10;(dp5168&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5169&#10;(dp5170&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5171&#10;(dp5172&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5173&#10;(dp5174&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5175&#10;(dp5176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5177&#10;(dp5178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Sent'&#10;p5179&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5179&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5180&#10;(dp5181&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5182&#10;(dp5183&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5184&#10;(dp5185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5186&#10;(dp5187&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5188&#10;(dp5189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5190&#10;(dp5191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Sent'&#10;p5192&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5192&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5193&#10;(dp5194&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5195&#10;(dp5196&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5197&#10;(dp5198&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5199&#10;(dp5200&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5201&#10;(dp5202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5203&#10;(dp5204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Sent'&#10;p5205&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5205&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5206&#10;(dp5207&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5208&#10;(dp5209&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5210&#10;(dp5211&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5212&#10;(dp5213&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5214&#10;(dp5215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5216&#10;(dp5217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Sent'&#10;p5218&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5218&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5219&#10;(dp5220&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5221&#10;(dp5222&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5223&#10;(dp5224&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5225&#10;(dp5226&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5227&#10;(dp5228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5229&#10;(dp5230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Client'&#10;p5231&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5231&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5232&#10;(dp5233&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5234&#10;(dp5235&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5236&#10;(dp5237&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5238&#10;(dp5239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5240&#10;(dp5241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5242&#10;(dp5243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Server'&#10;p5244&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5244&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5245&#10;(dp5246&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5247&#10;(dp5248&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5249&#10;(dp5250&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5251&#10;(dp5252&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5253&#10;(dp5254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5255&#10;(dp5256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Client to Server)'&#10;p5257&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5257&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5258&#10;(dp5259&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5260&#10;(dp5261&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5262&#10;(dp5263&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5264&#10;(dp5265&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5266&#10;(dp5267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5268&#10;(dp5269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Server to Client)'&#10;p5270&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5270&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5271&#10;(dp5272&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5273&#10;(dp5274&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5275&#10;(dp5276&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5277&#10;(dp5278&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5279&#10;(dp5280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5281&#10;(dp5282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Client to Server)'&#10;p5283&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5283&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5284&#10;(dp5285&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5286&#10;(dp5287&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5288&#10;(dp5289&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5290&#10;(dp5291&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5292&#10;(dp5293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5294&#10;(dp5295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Server to Client)'&#10;p5296&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5296&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5297&#10;(dp5298&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5299&#10;(dp5300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5301&#10;(dp5302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5303&#10;(dp5304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5305&#10;(dp5306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5307&#10;(dp5308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Succeeded'&#10;p5309&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5309&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5310&#10;(dp5311&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5312&#10;(dp5313&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5314&#10;(dp5315&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5316&#10;(dp5317&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5318&#10;(dp5319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5320&#10;(dp5321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Failed'&#10;p5322&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5322&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5323&#10;(dp5324&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5325&#10;(dp5326&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5327&#10;(dp5328&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5329&#10;(dp5330&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5331&#10;(dp5332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5333&#10;(dp5334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Protocol Error'&#10;p5335&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5335&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5336&#10;(dp5337&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5338&#10;(dp5339&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5340&#10;(dp5341&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5342&#10;(dp5343&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5344&#10;(dp5345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5346&#10;(dp5347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Internal Error'&#10;p5348&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5348&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5349&#10;(dp5350&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5351&#10;(dp5352&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5353&#10;(dp5354&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5355&#10;(dp5356&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5357&#10;(dp5358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5359&#10;(dp5360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Flow Control Error'&#10;p5361&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5361&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5362&#10;(dp5363&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5364&#10;(dp5365&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5366&#10;(dp5367&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5368&#10;(dp5369&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5370&#10;(dp5371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5372&#10;(dp5373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Timeout Error'&#10;p5374&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5374&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5375&#10;(dp5376&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5377&#10;(dp5378&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5379&#10;(dp5380&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5381&#10;(dp5382&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5383&#10;(dp5384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5385&#10;(dp5386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Closed Error'&#10;p5387&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5387&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5388&#10;(dp5389&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5390&#10;(dp5391&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5392&#10;(dp5393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5394&#10;(dp5395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5396&#10;(dp5397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5398&#10;(dp5399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Frame Size Error'&#10;p5400&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5400&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5401&#10;(dp5402&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5403&#10;(dp5404&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5405&#10;(dp5406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5407&#10;(dp5408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5409&#10;(dp5410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5411&#10;(dp5412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Refused Stream Error'&#10;p5413&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5413&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5414&#10;(dp5415&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5416&#10;(dp5417&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5418&#10;(dp5419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5420&#10;(dp5421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5422&#10;(dp5423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5424&#10;(dp5425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Cancelled Error'&#10;p5426&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5426&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5427&#10;(dp5428&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5429&#10;(dp5430&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5431&#10;(dp5432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5433&#10;(dp5434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5435&#10;(dp5436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5437&#10;(dp5438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Compression Error'&#10;p5439&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5439&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5440&#10;(dp5441&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5442&#10;(dp5443&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5444&#10;(dp5445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5446&#10;(dp5447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5448&#10;(dp5449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5450&#10;(dp5451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connect Error'&#10;p5452&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5452&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5453&#10;(dp5454&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5455&#10;(dp5456&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5457&#10;(dp5458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5459&#10;(dp5460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5461&#10;(dp5462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5463&#10;(dp5464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Enhance Calm Error'&#10;p5465&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5465&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5466&#10;(dp5467&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5468&#10;(dp5469&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5470&#10;(dp5471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5472&#10;(dp5473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5474&#10;(dp5475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5476&#10;(dp5477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Inadequate Security Error'&#10;p5478&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5478&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5479&#10;(dp5480&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5481&#10;(dp5482&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5483&#10;(dp5484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5485&#10;(dp5486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5487&#10;(dp5488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5489&#10;(dp5490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 HTTP1_1 Required Error'&#10;p5491&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5491&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5492&#10;(dp5493&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5494&#10;(dp5495&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5496&#10;(dp5497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5498&#10;(dp5499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5500&#10;(dp5501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5502&#10;(dp5503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p5504&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5504&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5505&#10;(dp5506&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5507&#10;(dp5508&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5509&#10;(dp5510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5511&#10;(dp5512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5513&#10;(dp5514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5515&#10;(dp5516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p5517&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5517&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5518&#10;(dp5519&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5520&#10;(dp5521&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5522&#10;(dp5523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5524&#10;(dp5525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5526&#10;(dp5527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5528&#10;(dp5529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p5530&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5530&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5531&#10;(dp5532&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5533&#10;(dp5534&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5535&#10;(dp5536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5537&#10;(dp5538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5539&#10;(dp5540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5541&#10;(dp5542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p5543&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5543&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5544&#10;(dp5545&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5546&#10;(dp5547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5548&#10;(dp5549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5550&#10;(dp5551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5552&#10;(dp5553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5554&#10;(dp5555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p5556&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5556&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5557&#10;(dp5558&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5559&#10;(dp5560&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5561&#10;(dp5562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5563&#10;(dp5564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5565&#10;(dp5566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5567&#10;(dp5568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p5569&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5569&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5570&#10;(dp5571&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5572&#10;(dp5573&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5574&#10;(dp5575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5576&#10;(dp5577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5578&#10;(dp5579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5580&#10;(dp5581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p5582&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5582&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5583&#10;(dp5584&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5585&#10;(dp5586&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5587&#10;(dp5588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5589&#10;(dp5590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5591&#10;(dp5592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5593&#10;(dp5594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p5595&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5595&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5596&#10;(dp5597&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5598&#10;(dp5599&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5600&#10;(dp5601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5602&#10;(dp5603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5604&#10;(dp5605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5606&#10;(dp5607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p5608&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5608&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5609&#10;(dp5610&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5611&#10;(dp5612&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5613&#10;(dp5614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5615&#10;(dp5616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5617&#10;(dp5618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5619&#10;(dp5620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p5621&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5621&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5622&#10;(dp5623&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5624&#10;(dp5625&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5626&#10;(dp5627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5628&#10;(dp5629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5630&#10;(dp5631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5632&#10;(dp5633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p5634&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5634&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5635&#10;(dp5636&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5637&#10;(dp5638&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5639&#10;(dp5640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5641&#10;(dp5642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5643&#10;(dp5644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5645&#10;(dp5646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p5647&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5647&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5648&#10;(dp5649&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5650&#10;(dp5651&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5652&#10;(dp5653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5654&#10;(dp5655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5656&#10;(dp5657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5658&#10;(dp5659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p5660&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5660&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5661&#10;(dp5662&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5663&#10;(dp5664&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5665&#10;(dp5666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5667&#10;(dp5668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5669&#10;(dp5670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5671&#10;(dp5672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p5673&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5673&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5674&#10;(dp5675&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5676&#10;(dp5677&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5678&#10;(dp5679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5680&#10;(dp5681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5682&#10;(dp5683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5684&#10;(dp5685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p5686&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5686&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5687&#10;(dp5688&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5689&#10;(dp5690&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5691&#10;(dp5692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5693&#10;(dp5694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5695&#10;(dp5696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5697&#10;(dp5698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p5699&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5699&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5700&#10;(dp5701&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5702&#10;(dp5703&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5704&#10;(dp5705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5706&#10;(dp5707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5708&#10;(dp5709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5710&#10;(dp5711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p5712&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5712&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5713&#10;(dp5714&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5715&#10;(dp5716&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5717&#10;(dp5718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5719&#10;(dp5720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5721&#10;(dp5722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5723&#10;(dp5724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p5725&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5725&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5726&#10;(dp5727&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5728&#10;(dp5729&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5730&#10;(dp5731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5732&#10;(dp5733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5734&#10;(dp5735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5736&#10;(dp5737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p5738&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5738&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5739&#10;(dp5740&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5741&#10;(dp5742&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5743&#10;(dp5744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5745&#10;(dp5746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5747&#10;(dp5748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5749&#10;(dp5750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p5751&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5751&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5752&#10;(dp5753&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5754&#10;(dp5755&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5756&#10;(dp5757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5758&#10;(dp5759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5760&#10;(dp5761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5762&#10;(dp5763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p5764&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5764&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5765&#10;(dp5766&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5767&#10;(dp5768&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5769&#10;(dp5770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5771&#10;(dp5772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5773&#10;(dp5774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5775&#10;(dp5776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p5777&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5777&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5778&#10;(dp5779&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5780&#10;(dp5781&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5782&#10;(dp5783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5784&#10;(dp5785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5786&#10;(dp5787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5788&#10;(dp5789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p5790&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5790&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5791&#10;(dp5792&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5793&#10;(dp5794&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5795&#10;(dp5796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5797&#10;(dp5798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5799&#10;(dp5800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5801&#10;(dp5802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p5803&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5803&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5804&#10;(dp5805&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5806&#10;(dp5807&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5808&#10;(dp5809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5810&#10;(dp5811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5812&#10;(dp5813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5814&#10;(dp5815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p5816&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5816&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5817&#10;(dp5818&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5819&#10;(dp5820&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5821&#10;(dp5822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5823&#10;(dp5824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5825&#10;(dp5826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5827&#10;(dp5828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p5829&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5829&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5830&#10;(dp5831&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5832&#10;(dp5833&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5834&#10;(dp5835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5836&#10;(dp5837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5838&#10;(dp5839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5840&#10;(dp5841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p5842&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5842&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5843&#10;(dp5844&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5845&#10;(dp5846&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5847&#10;(dp5848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5849&#10;(dp5850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5851&#10;(dp5852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5853&#10;(dp5854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p5855&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5855&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5856&#10;(dp5857&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5858&#10;(dp5859&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5860&#10;(dp5861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5862&#10;(dp5863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5864&#10;(dp5865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5866&#10;(dp5867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p5868&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5868&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5869&#10;(dp5870&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5871&#10;(dp5872&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5873&#10;(dp5874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5875&#10;(dp5876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5877&#10;(dp5878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5879&#10;(dp5880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p5881&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5881&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5882&#10;(dp5883&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5884&#10;(dp5885&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5886&#10;(dp5887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5888&#10;(dp5889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5890&#10;(dp5891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5892&#10;(dp5893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p5894&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5894&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5895&#10;(dp5896&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5897&#10;(dp5898&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5899&#10;(dp5900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5901&#10;(dp5902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5903&#10;(dp5904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5905&#10;(dp5906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p5907&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5907&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5908&#10;(dp5909&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5910&#10;(dp5911&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5912&#10;(dp5913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5914&#10;(dp5915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5916&#10;(dp5917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5918&#10;(dp5919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p5920&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5920&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5921&#10;(dp5922&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5923&#10;(dp5924&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5925&#10;(dp5926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5927&#10;(dp5928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5929&#10;(dp5930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5931&#10;(dp5932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p5933&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5933&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5934&#10;(dp5935&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5936&#10;(dp5937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5938&#10;(dp5939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5940&#10;(dp5941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5942&#10;(dp5943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5944&#10;(dp5945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p5946&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5946&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5947&#10;(dp5948&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5949&#10;(dp5950&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5951&#10;(dp5952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5953&#10;(dp5954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5955&#10;(dp5956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5957&#10;(dp5958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p5959&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5959&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5960&#10;(dp5961&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5962&#10;(dp5963&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5964&#10;(dp5965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5966&#10;(dp5967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5968&#10;(dp5969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5970&#10;(dp5971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p5972&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5972&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5973&#10;(dp5974&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5975&#10;(dp5976&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5977&#10;(dp5978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5979&#10;(dp5980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5981&#10;(dp5982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5983&#10;(dp5984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p5985&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5985&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5986&#10;(dp5987&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5988&#10;(dp5989&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5990&#10;(dp5991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5992&#10;(dp5993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5994&#10;(dp5995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5996&#10;(dp5997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p5998&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5998&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5999&#10;(dp6000&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6001&#10;(dp6002&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6003&#10;(dp6004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6005&#10;(dp6006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6007&#10;(dp6008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6009&#10;(dp6010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p6011&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6011&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6012&#10;(dp6013&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6014&#10;(dp6015&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6016&#10;(dp6017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6018&#10;(dp6019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6020&#10;(dp6021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6022&#10;(dp6023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p6024&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6024&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6025&#10;(dp6026&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6027&#10;(dp6028&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6029&#10;(dp6030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6031&#10;(dp6032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6033&#10;(dp6034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6035&#10;(dp6036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p6037&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6037&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6038&#10;(dp6039&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6040&#10;(dp6041&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6042&#10;(dp6043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6044&#10;(dp6045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6046&#10;(dp6047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6048&#10;(dp6049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p6050&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6050&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6051&#10;(dp6052&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6053&#10;(dp6054&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6055&#10;(dp6056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6057&#10;(dp6058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6059&#10;(dp6060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6061&#10;(dp6062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p6063&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6063&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6064&#10;(dp6065&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6066&#10;(dp6067&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6068&#10;(dp6069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6070&#10;(dp6071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6072&#10;(dp6073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6074&#10;(dp6075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p6076&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6076&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6077&#10;(dp6078&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6079&#10;(dp6080&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6081&#10;(dp6082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6083&#10;(dp6084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6085&#10;(dp6086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6087&#10;(dp6088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p6089&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6089&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6090&#10;(dp6091&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6092&#10;(dp6093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6094&#10;(dp6095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6096&#10;(dp6097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6098&#10;(dp6099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6100&#10;(dp6101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p6102&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6102&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6103&#10;(dp6104&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6105&#10;(dp6106&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6107&#10;(dp6108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6109&#10;(dp6110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6111&#10;(dp6112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6113&#10;(dp6114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p6115&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6115&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6116&#10;(dp6117&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6118&#10;(dp6119&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6120&#10;(dp6121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6122&#10;(dp6123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6124&#10;(dp6125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6126&#10;(dp6127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p6128&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6128&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6129&#10;(dp6130&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6131&#10;(dp6132&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6133&#10;(dp6134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6135&#10;(dp6136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6137&#10;(dp6138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6139&#10;(dp6140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p6141&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6141&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6142&#10;(dp6143&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6144&#10;(dp6145&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6146&#10;(dp6147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6148&#10;(dp6149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6150&#10;(dp6151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6152&#10;(dp6153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p6154&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6154&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6155&#10;(dp6156&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6157&#10;(dp6158&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6159&#10;(dp6160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6161&#10;(dp6162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6163&#10;(dp6164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6165&#10;(dp6166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p6167&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6167&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6168&#10;(dp6169&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6170&#10;(dp6171&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6172&#10;(dp6173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6174&#10;(dp6175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6176&#10;(dp6177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6178&#10;(dp6179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p6180&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6180&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6181&#10;(dp6182&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6183&#10;(dp6184&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6185&#10;(dp6186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6187&#10;(dp6188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6189&#10;(dp6190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6191&#10;(dp6192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p6193&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6193&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6194&#10;(dp6195&#10;g11&#10;Nsg12&#10;I186&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6196&#10;(dp6197&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6198&#10;(dp6199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6200&#10;(dp6201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6202&#10;(dp6203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6204&#10;(dp6205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p6206&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6206&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6207&#10;(dp6208&#10;g11&#10;Nsg12&#10;I187&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6209&#10;(dp6210&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6211&#10;(dp6212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6213&#10;(dp6214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6215&#10;(dp6216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6217&#10;(dp6218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p6219&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6219&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6220&#10;(dp6221&#10;g11&#10;Nsg12&#10;I188&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6222&#10;(dp6223&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6224&#10;(dp6225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6226&#10;(dp6227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6228&#10;(dp6229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6230&#10;(dp6231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p6232&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6232&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6233&#10;(dp6234&#10;g11&#10;Nsg12&#10;I189&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6235&#10;(dp6236&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6237&#10;(dp6238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6239&#10;(dp6240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6241&#10;(dp6242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6243&#10;(dp6244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p6245&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6245&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6246&#10;(dp6247&#10;g11&#10;Nsg12&#10;I190&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6248&#10;(dp6249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6250&#10;(dp6251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6252&#10;(dp6253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6254&#10;(dp6255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6256&#10;(dp6257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p6258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6259&#10;(dp6260&#10;g11&#10;Nsg12&#10;I191&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6261&#10;(dp6262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6263&#10;(dp6264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6265&#10;(dp6266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6267&#10;(dp6268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6269&#10;(dp6270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p6271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6272&#10;(dp6273&#10;g11&#10;Nsg12&#10;I192&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6274&#10;(dp6275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6276&#10;(dp6277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6278&#10;(dp6279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6280&#10;(dp6281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6282&#10;(dp6283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p6284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6285&#10;(dp6286&#10;g11&#10;Nsg12&#10;I193&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6287&#10;(dp6288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6289&#10;(dp6290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6291&#10;(dp6292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6293&#10;(dp6294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6295&#10;(dp6296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p6297&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6297&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6298&#10;(dp6299&#10;g11&#10;Nsg12&#10;I194&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6300&#10;(dp6301&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6302&#10;(dp6303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6304&#10;(dp6305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6306&#10;(dp6307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6308&#10;(dp6309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p6310&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6310&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6311&#10;(dp6312&#10;g11&#10;Nsg12&#10;I195&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6313&#10;(dp6314&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6315&#10;(dp6316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6317&#10;(dp6318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6319&#10;(dp6320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6321&#10;(dp6322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p6323&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6323&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6324&#10;(dp6325&#10;g11&#10;Nsg12&#10;I196&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6326&#10;(dp6327&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6328&#10;(dp6329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6330&#10;(dp6331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6332&#10;(dp6333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6334&#10;(dp6335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p6336&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6336&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6337&#10;(dp6338&#10;g11&#10;Nsg12&#10;I197&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6339&#10;(dp6340&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6341&#10;(dp6342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6343&#10;(dp6344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6345&#10;(dp6346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6347&#10;(dp6348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p6349&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6349&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6350&#10;(dp6351&#10;g11&#10;Nsg12&#10;I198&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6352&#10;(dp6353&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6354&#10;(dp6355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6356&#10;(dp6357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6358&#10;(dp6359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6360&#10;(dp6361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p6362&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6362&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6363&#10;(dp6364&#10;g11&#10;Nsg12&#10;I199&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6365&#10;(dp6366&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6367&#10;(dp6368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6369&#10;(dp6370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6371&#10;(dp6372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6373&#10;(dp6374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p6375&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6375&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6376&#10;(dp6377&#10;g11&#10;Nsg12&#10;I200&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6378&#10;(dp6379&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6380&#10;(dp6381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6382&#10;(dp6383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6384&#10;(dp6385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6386&#10;(dp6387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p6388&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6388&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6389&#10;(dp6390&#10;g11&#10;Nsg12&#10;I201&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6391&#10;(dp6392&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6393&#10;(dp6394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6395&#10;(dp6396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6397&#10;(dp6398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6399&#10;(dp6400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p6401&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6401&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6402&#10;(dp6403&#10;g11&#10;Nsg12&#10;I202&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6404&#10;(dp6405&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6406&#10;(dp6407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6408&#10;(dp6409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6410&#10;(dp6411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6412&#10;(dp6413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p6414&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6414&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6415&#10;(dp6416&#10;g11&#10;Nsg12&#10;I203&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6417&#10;(dp6418&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6419&#10;(dp6420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6421&#10;(dp6422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6423&#10;(dp6424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6425&#10;(dp6426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p6427&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6427&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6428&#10;(dp6429&#10;g11&#10;Nsg12&#10;I204&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6430&#10;(dp6431&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6432&#10;(dp6433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6434&#10;(dp6435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6436&#10;(dp6437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6438&#10;(dp6439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p6440&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6440&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6441&#10;(dp6442&#10;g11&#10;Nsg12&#10;I205&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6443&#10;(dp6444&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6445&#10;(dp6446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6447&#10;(dp6448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6449&#10;(dp6450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6451&#10;(dp6452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p6453&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6453&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6454&#10;(dp6455&#10;g11&#10;Nsg12&#10;I206&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6456&#10;(dp6457&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6458&#10;(dp6459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6460&#10;(dp6461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6462&#10;(dp6463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6464&#10;(dp6465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p6466&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6466&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6467&#10;(dp6468&#10;g11&#10;Nsg12&#10;I207&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6469&#10;(dp6470&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6471&#10;(dp6472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6473&#10;(dp6474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6475&#10;(dp6476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6477&#10;(dp6478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p6479&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6479&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6480&#10;(dp6481&#10;g11&#10;Nsg12&#10;I208&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6482&#10;(dp6483&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6484&#10;(dp6485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6486&#10;(dp6487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6488&#10;(dp6489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6490&#10;(dp6491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p6492&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6492&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6493&#10;(dp6494&#10;g11&#10;Nsg12&#10;I209&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6495&#10;(dp6496&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6497&#10;(dp6498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6499&#10;(dp6500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6501&#10;(dp6502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6503&#10;(dp6504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p6505&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6505&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6506&#10;(dp6507&#10;g11&#10;Nsg12&#10;I210&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6508&#10;(dp6509&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6510&#10;(dp6511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6512&#10;(dp6513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6514&#10;(dp6515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6516&#10;(dp6517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p6518&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6518&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6519&#10;(dp6520&#10;g11&#10;Nsg12&#10;I211&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6521&#10;(dp6522&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6523&#10;(dp6524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6525&#10;(dp6526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6527&#10;(dp6528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6529&#10;(dp6530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p6531&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6531&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6532&#10;(dp6533&#10;g11&#10;Nsg12&#10;I212&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6534&#10;(dp6535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6536&#10;(dp6537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6538&#10;(dp6539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6540&#10;(dp6541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6542&#10;(dp6543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p6544&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6544&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6545&#10;(dp6546&#10;g11&#10;Nsg12&#10;I213&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6547&#10;(dp6548&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6549&#10;(dp6550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6551&#10;(dp6552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6553&#10;(dp6554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6555&#10;(dp6556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p6557&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6557&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6558&#10;(dp6559&#10;g11&#10;Nsg12&#10;I214&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6560&#10;(dp6561&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6562&#10;(dp6563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6564&#10;(dp6565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6566&#10;(dp6567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6568&#10;(dp6569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p6570&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6570&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6571&#10;(dp6572&#10;g11&#10;Nsg12&#10;I215&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6573&#10;(dp6574&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6575&#10;(dp6576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6577&#10;(dp6578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6579&#10;(dp6580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6581&#10;(dp6582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p6583&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6583&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6584&#10;(dp6585&#10;g11&#10;Nsg12&#10;I216&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6586&#10;(dp6587&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6588&#10;(dp6589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6590&#10;(dp6591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6592&#10;(dp6593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6594&#10;(dp6595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p6596&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6596&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6597&#10;(dp6598&#10;g11&#10;Nsg12&#10;I217&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6599&#10;(dp6600&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6601&#10;(dp6602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6603&#10;(dp6604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6605&#10;(dp6606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6607&#10;(dp6608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p6609&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6609&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6610&#10;(dp6611&#10;g11&#10;Nsg12&#10;I218&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6612&#10;(dp6613&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6614&#10;(dp6615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6616&#10;(dp6617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6618&#10;(dp6619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6620&#10;(dp6621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p6622&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6622&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6623&#10;(dp6624&#10;g11&#10;Nsg12&#10;I219&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6625&#10;(dp6626&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6627&#10;(dp6628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6629&#10;(dp6630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6631&#10;(dp6632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6633&#10;(dp6634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p6635&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6635&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6636&#10;(dp6637&#10;g11&#10;Nsg12&#10;I220&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6638&#10;(dp6639&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6640&#10;(dp6641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6642&#10;(dp6643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6644&#10;(dp6645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6646&#10;(dp6647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p6648&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6648&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6649&#10;(dp6650&#10;g11&#10;Nsg12&#10;I221&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6651&#10;(dp6652&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6653&#10;(dp6654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6655&#10;(dp6656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6657&#10;(dp6658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6659&#10;(dp6660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p6661&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6661&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6662&#10;(dp6663&#10;g11&#10;Nsg12&#10;I222&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6664&#10;(dp6665&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6666&#10;(dp6667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6668&#10;(dp6669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6670&#10;(dp6671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6672&#10;(dp6673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p6674&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6674&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6675&#10;(dp6676&#10;g11&#10;Nsg12&#10;I223&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6677&#10;(dp6678&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6679&#10;(dp6680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6681&#10;(dp6682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6683&#10;(dp6684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6685&#10;(dp6686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p6687&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6687&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6688&#10;(dp6689&#10;g11&#10;Nsg12&#10;I224&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6690&#10;(dp6691&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6692&#10;(dp6693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6694&#10;(dp6695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6696&#10;(dp6697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6698&#10;(dp6699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p6700&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6700&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6701&#10;(dp6702&#10;g11&#10;Nsg12&#10;I225&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6703&#10;(dp6704&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6705&#10;(dp6706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6707&#10;(dp6708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6709&#10;(dp6710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6711&#10;(dp6712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p6713&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6713&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6714&#10;(dp6715&#10;g11&#10;Nsg12&#10;I226&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6716&#10;(dp6717&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6718&#10;(dp6719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6720&#10;(dp6721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6722&#10;(dp6723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6724&#10;(dp6725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p6726&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6726&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6727&#10;(dp6728&#10;g11&#10;Nsg12&#10;I227&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6729&#10;(dp6730&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6731&#10;(dp6732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6733&#10;(dp6734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6735&#10;(dp6736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6737&#10;(dp6738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p6739&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6739&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6740&#10;(dp6741&#10;g11&#10;Nsg12&#10;I228&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6742&#10;(dp6743&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6744&#10;(dp6745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6746&#10;(dp6747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6748&#10;(dp6749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6750&#10;(dp6751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p6752&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6752&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6753&#10;(dp6754&#10;g11&#10;Nsg12&#10;I229&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6755&#10;(dp6756&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6757&#10;(dp6758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6759&#10;(dp6760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6761&#10;(dp6762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6763&#10;(dp6764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p6765&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6765&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6766&#10;(dp6767&#10;g11&#10;Nsg12&#10;I230&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6768&#10;(dp6769&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6770&#10;(dp6771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6772&#10;(dp6773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6774&#10;(dp6775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6776&#10;(dp6777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p6778&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6778&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6779&#10;(dp6780&#10;g11&#10;Nsg12&#10;I231&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6781&#10;(dp6782&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6783&#10;(dp6784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6785&#10;(dp6786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6787&#10;(dp6788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6789&#10;(dp6790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p6791&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6791&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6792&#10;(dp6793&#10;g11&#10;Nsg12&#10;I232&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6794&#10;(dp6795&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6796&#10;(dp6797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6798&#10;(dp6799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6800&#10;(dp6801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6802&#10;(dp6803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p6804&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6804&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6805&#10;(dp6806&#10;g11&#10;Nsg12&#10;I233&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6807&#10;(dp6808&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6809&#10;(dp6810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6811&#10;(dp6812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6813&#10;(dp6814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6815&#10;(dp6816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p6817&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6817&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6818&#10;(dp6819&#10;g11&#10;Nsg12&#10;I234&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6820&#10;(dp6821&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6822&#10;(dp6823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6824&#10;(dp6825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6826&#10;(dp6827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6828&#10;(dp6829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p6830&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6830&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6831&#10;(dp6832&#10;g11&#10;Nsg12&#10;I235&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6833&#10;(dp6834&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6835&#10;(dp6836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6837&#10;(dp6838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6839&#10;(dp6840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6841&#10;(dp6842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p6843&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6843&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6844&#10;(dp6845&#10;g11&#10;Nsg12&#10;I236&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6846&#10;(dp6847&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6848&#10;(dp6849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6850&#10;(dp6851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6852&#10;(dp6853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6854&#10;(dp6855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p6856&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6856&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6857&#10;(dp6858&#10;g11&#10;Nsg12&#10;I237&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6859&#10;(dp6860&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6861&#10;(dp6862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6863&#10;(dp6864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6865&#10;(dp6866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6867&#10;(dp6868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p6869&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6869&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6870&#10;(dp6871&#10;g11&#10;Nsg12&#10;I238&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6872&#10;(dp6873&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6874&#10;(dp6875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6876&#10;(dp6877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6878&#10;(dp6879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6880&#10;(dp6881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p6882&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6882&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6883&#10;(dp6884&#10;g11&#10;Nsg12&#10;I239&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6885&#10;(dp6886&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6887&#10;(dp6888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6889&#10;(dp6890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6891&#10;(dp6892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6893&#10;(dp6894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p6895&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6895&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6896&#10;(dp6897&#10;g11&#10;Nsg12&#10;I240&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6898&#10;(dp6899&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6900&#10;(dp6901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6902&#10;(dp6903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6904&#10;(dp6905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6906&#10;(dp6907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p6908&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6908&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6909&#10;(dp6910&#10;g11&#10;Nsg12&#10;I241&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6911&#10;(dp6912&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6913&#10;(dp6914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6915&#10;(dp6916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6917&#10;(dp6918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6919&#10;(dp6920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p6921&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6921&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6922&#10;(dp6923&#10;g11&#10;Nsg12&#10;I242&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6924&#10;(dp6925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6926&#10;(dp6927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6928&#10;(dp6929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6930&#10;(dp6931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6932&#10;(dp6933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p6934&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6934&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6935&#10;(dp6936&#10;g11&#10;Nsg12&#10;I243&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6937&#10;(dp6938&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6939&#10;(dp6940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6941&#10;(dp6942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6943&#10;(dp6944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6945&#10;(dp6946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p6947&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6947&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6948&#10;(dp6949&#10;g11&#10;Nsg12&#10;I244&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6950&#10;(dp6951&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6952&#10;(dp6953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6954&#10;(dp6955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6956&#10;(dp6957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6958&#10;(dp6959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p6960&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6960&#10;sbatRp6961&#10;(dp6962&#10;g12&#10;I244&#10;sg22&#10;I00&#10;sg11&#10;Nsbs.</svRestConfiguration>
</statManagerOptions>
<currentUniqueIDForAgent type="int">2</currentUniqueIDForAgent>
diff --git a/samples/vnf_samples/traffic_profiles/ixload/http_ixload.yaml b/samples/vnf_samples/traffic_profiles/ixload/http_ixload.yaml
new file mode 100644
index 000000000..7b52f7dae
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ixload/http_ixload.yaml
@@ -0,0 +1,56 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or imp
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+schema: "nsb:traffic_profile:0.1"
+
+name: TrafficProfileGenericHTTP
+description: Traffic profile to run HTTP test
+traffic_profile:
+ traffic_type: TrafficProfileGenericHTTP
+
+uplink_0:
+ ip:
+ address: "172.16.50.132" # must be in same subnet with gateway
+ subnet_prefix: 24 # subnet prefix
+ mac: "00:00:00:00:44:33" # port mac addr or auto to generate automatically
+ gateway: <GATEWAY_ADDR> # will be taken from pod file
+
+ http_client:
+ simulated_users: {{ get(simulated_users, 'simulated_users.uplink_0') }}
+ page_object: {{ get(page_object, 'page_object.uplink_0', '/1b.html') }}
+
+downlink_0:
+ ip:
+ address: "172.16.31.132" # must be in same subnet with gateway
+ subnet_prefix: 24 # subnet prefix
+ mac: "00:00:00:00:44:44" # port mac addr or auto to generate automatically
+ gateway: <GATEWAY_ADDR> # will be taken from pod file
+
+uplink_1:
+ ip:
+ address: "12.12.12.32"
+ subnet_prefix: 24
+ mac: "Auto" # port mac addr or auto to generate automatically
+ gateway: <GATEWAY_ADDR>
+
+ http_client:
+ simulated_users: {{ get(simulated_users, 'simulated_users.uplink_1', '65000') }} # number of threads to be run
+ page_object: {{ get(page_object, 'page_object.uplink_1', '/1b.html') }} # http locator to be read
+
+downlink_1:
+ ip:
+ address: "13.13.13.32"
+ subnet_prefix: 24
+ mac: "Auto" # port mac addr or auto to generate automatically
+ gateway: <GATEWAY_ADDR>
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_fb_udp.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_fb_udp.yaml
new file mode 100644
index 000000000..f25239f57
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_fb_udp.yaml
@@ -0,0 +1,79 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+schema: "nsb:traffic_profile:0.1"
+
+name: LandslideProfile
+description: Spirent Landslide traffic profile (Data Message Flow)
+
+traffic_profile:
+ traffic_type: LandslideProfile
+
+dmf_config:
+ dmf:
+ library: test
+ name: Fireball UDP
+ description: "Basic data flow using UDP/IP (Fireball DMF)"
+ keywords: 'UDP '
+ dataProtocol: fb_udp
+ burstCount: 1 # Applies only to Basic UDP DMF, DataProtocol == (udp or fb_udp)
+ clientPort:
+ clientPort: 2002
+ isClientPortRange: 'false'
+ serverPort: 2003
+ connection:
+ initiatingSide: Client
+ disconnectSide: Client
+ underlyingProtocol: none
+ persistentConnection: 'false'
+ protocolId: 0
+ persistentConnection: 'false'
+ transactionRate: 8.0
+ transactions:
+ totalTransactions: 0
+ retries: 0
+ dataResponseTime: 60000
+ packetSize: 64
+ segment:
+ segmentSize: 64000
+ maxSegmentSize: 0
+ size:
+ sizeDistribution: Fixed
+ sizeDeviation: 10
+ interval:
+ intervalDistribution: Fixed
+ intervalDeviation: 10
+ ipHeader:
+ typeOfService: 0
+ timeToLive: 64
+ tcpConnection:
+ force3Way: 'false'
+ fixedRetryTime: 0
+ maxPacketsToForceAck: 0
+ tcp:
+ windowSize: 32768
+ windowScaling: -1
+ disableFinAckWait: 'false'
+ disconnectType: FIN
+ slowStart: 'false'
+ connectOnly: 'false'
+ vtag:
+ VTagMask: '0x0'
+ VTagValue: '0x0'
+ sctpPayloadProtocolId: 0
+ billingIncludeSyn: true
+ billingIncludeSubflow: true
+ billingRecordPerTransaction: 'false'
+ tcpPush: 'false'
+ hostDataExpansionRatio: 1
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_fb_udp_tcp.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_fb_udp_tcp.yaml
new file mode 100644
index 000000000..e613f1769
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_fb_udp_tcp.yaml
@@ -0,0 +1,136 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+schema: "nsb:traffic_profile:0.1"
+
+name: LandslideProfile
+description: Spirent Landslide traffic profile (Data Message Flow)
+
+traffic_profile:
+ traffic_type: LandslideProfile
+
+dmf_config:
+ -
+ dmf:
+ library: test
+ name: Fireball UDP
+ description: "Basic data flow using UDP/IP"
+ keywords: 'UDP '
+ dataProtocol: fb_udp
+ burstCount: 1 # Applies only to Basic UDP DMF, DataProtocol==(udp or fb_udp)
+ clientPort:
+ clientPort: 2012
+ isClientPortRange: 'false'
+ serverPort: 2013
+ connection:
+ initiatingSide: Client
+ disconnectSide: Client
+ underlyingProtocol: none
+ persistentConnection: 'false'
+ protocolId: 0
+ persistentConnection: 'false'
+ transactionRate: 8.0
+ transactions:
+ totalTransactions: 0
+ retries: 0
+ dataResponseTime: 60000
+ packetSize: 64
+ segment:
+ segmentSize: 64000
+ maxSegmentSize: 0
+ size:
+ sizeDistribution: Fixed
+ sizeDeviation: 10
+ interval:
+ intervalDistribution: Fixed
+ intervalDeviation: 10
+ ipHeader:
+ typeOfService: 0
+ timeToLive: 64
+ tcpConnection:
+ force3Way: 'false'
+ fixedRetryTime: 0
+ maxPacketsToForceAck: 0
+ tcp:
+ windowSize: 32768
+ windowScaling: -1
+ disableFinAckWait: 'false'
+ disconnectType: FIN
+ slowStart: 'false'
+ connectOnly: 'false'
+ vtag:
+ VTagMask: '0x0'
+ VTagValue: '0x0'
+ sctpPayloadProtocolId: 0
+ billingIncludeSyn: true
+ billingIncludeSubflow: true
+ billingRecordPerTransaction: 'false'
+ tcpPush: 'false'
+ hostDataExpansionRatio: 1
+ -
+ dmf:
+ library: test
+ name: Fireball TCP
+ description: "Basic data flow using TCP/IP"
+ keywords: 'TCP '
+ dataProtocol: fb_tcp
+ clientPort:
+ clientPort: 2002
+ isClientPortRange: 'false'
+ serverPort: 2003
+ connection:
+ initiatingSide: Client
+ disconnectSide: Client
+ underlyingProtocol: none
+ persistentConnection: 'false'
+ protocolId: 0
+ persistentConnection: 'false'
+ transactionRate: 8.0
+ transactions:
+ totalTransactions: 0
+ retries: 0
+ dataResponseTime: 60000
+ packetSize: 64
+ segment:
+ segmentSize: 64000
+ maxSegmentSize: 0
+ size:
+ sizeDistribution: Fixed
+ sizeDeviation: 10
+ interval:
+ intervalDistribution: Fixed
+ intervalDeviation: 10
+ ipHeader:
+ typeOfService: 0
+ timeToLive: 64
+ tcpConnection:
+ force3Way: 'false'
+ fixedRetryTime: 0
+ maxPacketsToForceAck: 0
+ tcp:
+ windowSize: 32768
+ windowScaling: -1
+ disableFinAckWait: 'false'
+ disconnectType: FIN
+ slowStart: 'false'
+ connectOnly: 'false'
+ vtag:
+ VTagMask: '0x0'
+ VTagValue: '0x0'
+ sctpPayloadProtocolId: 0
+ billingIncludeSyn: true
+ billingIncludeSubflow: true
+ billingRecordPerTransaction: 'false'
+ tcpPush: 'false'
+ hostDataExpansionRatio: 1
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_udp.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_udp.yaml
new file mode 100644
index 000000000..c7fabd182
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_udp.yaml
@@ -0,0 +1,79 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+schema: "nsb:traffic_profile:0.1"
+
+name: LandslideProfile
+description: Spirent Landslide traffic profile (Data Message Flow)
+
+traffic_profile:
+ traffic_type: LandslideProfile
+
+dmf_config:
+ dmf:
+ library: test
+ name: Basic UDP
+ description: "Basic data flow using UDP/IP"
+ keywords: 'UDP '
+ dataProtocol: udp
+ burstCount: 1 # Applies only to Basic UDP DMF, DataProtocol==udp.
+ clientPort:
+ clientPort: 2002
+ isClientPortRange: 'false'
+ serverPort: 2003
+ connection:
+ initiatingSide: Client
+ disconnectSide: Client
+ underlyingProtocol: none
+ persistentConnection: 'false'
+ protocolId: 0
+ persistentConnection: 'false'
+ transactionRate: 8.0
+ transactions:
+ totalTransactions: 0
+ retries: 0
+ dataResponseTime: 60000
+ packetSize: 64
+ segment:
+ segmentSize: 64000
+ maxSegmentSize: 0
+ size:
+ sizeDistribution: Fixed
+ sizeDeviation: 10
+ interval:
+ intervalDistribution: Fixed
+ intervalDeviation: 10
+ ipHeader:
+ typeOfService: 0
+ timeToLive: 64
+ tcpConnection:
+ force3Way: 'false'
+ fixedRetryTime: 0
+ maxPacketsToForceAck: 0
+ tcp:
+ windowSize: 32768
+ windowScaling: -1
+ disableFinAckWait: 'false'
+ disconnectType: FIN
+ slowStart: 'false'
+ connectOnly: 'false'
+ vtag:
+ VTagMask: '0x0'
+ VTagValue: '0x0'
+ sctpPayloadProtocolId: 0
+ billingIncludeSyn: true
+ billingIncludeSubflow: true
+ billingRecordPerTransaction: 'false'
+ tcpPush: 'false'
+ hostDataExpansionRatio: 1
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_udp_tcp.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_udp_tcp.yaml
new file mode 100644
index 000000000..80c0db0d0
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_dmf_udp_tcp.yaml
@@ -0,0 +1,136 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+schema: "nsb:traffic_profile:0.1"
+
+name: LandslideProfile
+description: Spirent Landslide traffic profile (Data Message Flow)
+
+traffic_profile:
+ traffic_type: LandslideProfile
+
+dmf_config:
+ -
+ dmf:
+ library: test
+ name: Basic UDP
+ description: "Basic data flow using UDP/IP"
+ keywords: 'UDP '
+ dataProtocol: udp
+ burstCount: 1 # Applies only to Basic UDP DMF, DataProtocol==(udp or fb_udp)
+ clientPort:
+ clientPort: 2012
+ isClientPortRange: 'false'
+ serverPort: 2013
+ connection:
+ initiatingSide: Client
+ disconnectSide: Client
+ underlyingProtocol: none
+ persistentConnection: 'false'
+ protocolId: 0
+ persistentConnection: 'false'
+ transactionRate: 8.0
+ transactions:
+ totalTransactions: 0
+ retries: 0
+ dataResponseTime: 60000
+ packetSize: 64
+ segment:
+ segmentSize: 64000
+ maxSegmentSize: 0
+ size:
+ sizeDistribution: Fixed
+ sizeDeviation: 10
+ interval:
+ intervalDistribution: Fixed
+ intervalDeviation: 10
+ ipHeader:
+ typeOfService: 0
+ timeToLive: 64
+ tcpConnection:
+ force3Way: 'false'
+ fixedRetryTime: 0
+ maxPacketsToForceAck: 0
+ tcp:
+ windowSize: 32768
+ windowScaling: -1
+ disableFinAckWait: 'false'
+ disconnectType: FIN
+ slowStart: 'false'
+ connectOnly: 'false'
+ vtag:
+ VTagMask: '0x0'
+ VTagValue: '0x0'
+ sctpPayloadProtocolId: 0
+ billingIncludeSyn: 'true'
+ billingIncludeSubflow: 'true'
+ billingRecordPerTransaction: 'false'
+ tcpPush: 'false'
+ hostDataExpansionRatio: 1
+ -
+ dmf:
+ library: test
+ name: Basic TCP
+ description: "Basic data flow using TCP/IP"
+ keywords: 'TCP '
+ dataProtocol: tcp
+ clientPort:
+ clientPort: 2002
+ isClientPortRange: 'false'
+ serverPort: 2003
+ connection:
+ initiatingSide: Client
+ disconnectSide: Client
+ underlyingProtocol: none
+ persistentConnection: 'false'
+ protocolId: 0
+ persistentConnection: 'false'
+ transactionRate: 8.0
+ transactions:
+ totalTransactions: 0
+ retries: 0
+ dataResponseTime: 60000
+ packetSize: 64
+ segment:
+ segmentSize: 64000
+ maxSegmentSize: 0
+ size:
+ sizeDistribution: Fixed
+ sizeDeviation: 10
+ interval:
+ intervalDistribution: Fixed
+ intervalDeviation: 10
+ ipHeader:
+ typeOfService: 0
+ timeToLive: 64
+ tcpConnection:
+ force3Way: 'false'
+ fixedRetryTime: 0
+ maxPacketsToForceAck: 0
+ tcp:
+ windowSize: 32768
+ windowScaling: -1
+ disableFinAckWait: 'false'
+ disconnectType: FIN
+ slowStart: 'false'
+ connectOnly: 'false'
+ vtag:
+ VTagMask: '0x0'
+ VTagValue: '0x0'
+ sctpPayloadProtocolId: 0
+ billingIncludeSyn: 'true'
+ billingIncludeSubflow: 'true'
+ billingRecordPerTransaction: 'false'
+ tcpPush: 'false'
+ hostDataExpansionRatio: 1
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_session_default_bearer.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_default_bearer.yaml
new file mode 100644
index 000000000..a90d8a189
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_default_bearer.yaml
@@ -0,0 +1,147 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+description: 'UE default bearer creation test case'
+name: default_bearer_capacity
+keywords: ''
+duration: 60
+tsGroups:
+- tsId: SGW_NODE_TS_NAME # SGW-Node test server name placeholder
+ testCases:
+ - name: ''
+ type: SGW_Node
+ AssociatedPhys: ''
+ parameters:
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ DedicatedsPerDefaultBearer: '0'
+ DefaultBearers: '1'
+ FireballEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2Version: 13.6.0
+ PgwNodeEn: 'true'
+ S5Protocol: GTPv2
+ Sessions: '100000'
+ SgiPtpTunnelEn: 'false'
+ SgwControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: SGW_CONTROL_IP # SGW-C TestNode IP address placeholder
+ mtu: 1500
+ numLinksOrNodes: 1
+ phy: SGW_CONTROL_PHY
+ SgwUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: SGW_USER_IP # SGW-U TestNode IP address placeholder
+ mtu: 1500
+ numLinksOrNodes: 1
+ phy: SGW_USER_PHY
+ TestType: SGW-NODE
+ TrafficMtu: '1500'
+- tsId: SGW_NODAL_TS_NAME # SGW-Nodal test server name placeholder
+ testCases:
+ - name: ''
+ type: SGW_Nodal
+ parameters:
+ DataTraffic: Continuous
+ DataUserCfgFileEn: 'false'
+ DedicatedsPerDefaultBearer: '0'
+ DefaultBearers: '1'
+ DisconnectRate: '1000.0'
+ Dmf:
+ class: Dmf
+ mainflows:
+ - library: TEST_USER
+ name: Basic UDP
+ instanceGroups:
+ - mainflowIdx: 0
+ mixType: ''
+ rate: 0
+ startPaused: 'false'
+ EnbUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: ENB_USER_IP # eNodeB TestNode IP address placeholder
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: ENB_USER_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanUserPriority: 0
+ vlanTagType: 0
+ FireballEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2Version: 13.6.0
+ MmeControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: MME_CONTROL_IP # MME TestNode IP address placeholder
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: MME_CONTROL_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanUserPriority: 0
+ vlanTagType: 0
+ NetworkHost: Local
+ NetworkHostAddrLocal:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: NET_HOST_IP # NetHost TestNode IP address placeholder
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: NET_HOST_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanUserPriority: 0
+ vlanTagType: 0
+ PgwNodeEn: 'false'
+ PgwUserSutEn: 'false'
+ PgwV4Sut:
+ class: Sut
+ name: PGW_SUT_NAME # PGW TestNode name placeholder
+ S5Protocol: GTPv2
+ Sessions: '100000'
+ SgwSut:
+ class: Sut
+ name: SGW_CONTROL_NAME # SGW-C SUT name placeholder
+ SgwUserSut:
+ class: Sut
+ name: SGW_USER_NAME # SGW-U SUT name placeholder
+ StartRate: '1000.0'
+ TestActivity: Capacity Test
+ TestType: SGW-NODAL
+ TrafficMtu: '1500'
+ TrafficStartType: When All Sessions Established
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_session_default_bearer_multi_dmf.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_default_bearer_multi_dmf.yaml
new file mode 100644
index 000000000..7b1f50160
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_default_bearer_multi_dmf.yaml
@@ -0,0 +1,150 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+description: 'UE default bearer creation test case'
+name: default_bearer_capacity
+keywords: ''
+duration: 60
+tsGroups:
+- tsId: SGW_NODE_TS_NAME # SGW-Node test server name placeholder
+ testCases:
+ - name: ''
+ type: SGW_Node
+ parameters:
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ DedicatedsPerDefaultBearer: '0'
+ DefaultBearers: '1'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2Version: 13.6.0
+ PgwNodeEn: 'true'
+ S5Protocol: GTPv2
+ Sessions: '100000'
+ SgiPtpTunnelEn: 'false'
+ SgwControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: SGW_CONTROL_IP # SGW-C TestNode IP address placeholder
+ mtu: 1500
+ numLinksOrNodes: 1
+ phy: SGW_CONTROL_PHY
+ SgwUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: SGW_USER_IP # SGW-U TestNode IP address placeholder
+ mtu: 1500
+ numLinksOrNodes: 1
+ phy: SGW_USER_PHY
+ TestType: SGW-NODE
+ TrafficMtu: '1500'
+- tsId: SGW_NODAL_TS_NAME # SGW-Nodal test server name placeholder
+ testCases:
+ - name: ''
+ type: SGW_Nodal
+ parameters:
+ DataTraffic: Continuous
+ DataUserCfgFileEn: 'false'
+ DedicatedsPerDefaultBearer: '0'
+ DefaultBearers: '1'
+ DisconnectRate: '1000.0'
+ Dmf:
+ class: Dmf
+ mainflows:
+ - library: test
+ name: Basic UDP
+ - library: test
+ name: Basic TCP
+ instanceGroups:
+ - mainflowIdx: 0
+ mixType: ''
+ rate: 0
+ startPaused: 'false'
+ - mainflowIdx: 1
+ mixType: ''
+ rate: 0
+ startPaused: 'false'
+ EnbUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: ENB_USER_IP # eNodeB TestNode IP address placeholder
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: ENB_USER_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanUserPriority: 0
+ vlanTagType: 0
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2Version: 13.6.0
+ MmeControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: MME_CONTROL_IP # MME TestNode IP address placeholder
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: MME_CONTROL_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanUserPriority: 0
+ vlanTagType: 0
+ NetworkHost: Local
+ NetworkHostAddrLocal:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: NET_HOST_IP # NetHost TestNode IP address placeholder
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: NET_HOST_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanUserPriority: 0
+ vlanTagType: 0
+ PgwNodeEn: 'false'
+ PgwUserSutEn: 'false'
+ PgwV4Sut:
+ class: Sut
+ name: PGW_SUT_NAME # PGW TestNode name placeholder
+ S5Protocol: GTPv2
+ Sessions: '100000'
+ SgwSut:
+ class: Sut
+ name: SGW_CONTROL_NAME # SGW-C SUT name placeholder
+ SgwUserSut:
+ class: Sut
+ name: SGW_USER_NAME # SGW-U SUT name placeholder
+ StartRate: '1000.0'
+ TestActivity: Capacity Test
+ TestType: SGW-NODAL
+ TrafficMtu: '1500'
+ TrafficStartType: When All Sessions Established
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_session_network_dedicated_bearer.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_network_dedicated_bearer.yaml
new file mode 100644
index 000000000..2e79d8d51
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_network_dedicated_bearer.yaml
@@ -0,0 +1,681 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+description: Network initiated dedicated bearer creation test case
+duration: 60
+keywords: ''
+library: test
+name: network_dedicated_bearer_creation
+tsGroups:
+- testCases:
+ - name: ''
+ AssociatedPhys: ''
+ parameters:
+ BillingEn: 'false'
+ DedicatedsPerDefaultBearer: '1'
+ DefaultBearers: '1'
+ FireballEn: 'false'
+ Gtp2AmbrDownlink: '1'
+ Gtp2AmbrUplink: '1'
+ Gtp2ApnNumSpecifiedApns_0: '0'
+ Gtp2ApnRestriction: '0'
+ Gtp2ApnRetries_0: '0'
+ Gtp2ApnSelectMode: '0'
+ Gtp2ApnSpecified_0:
+ array: []
+ class: Array
+ Gtp2ApnTotalApns_0: '1'
+ Gtp2Apn_0: ssenoauth146
+ Gtp2CfgFileEn: 'false'
+ Gtp2Ecgi: '0'
+ Gtp2EcgiSize: '28'
+ Gtp2EchoTimeSec: '0'
+ Gtp2ExtEn: 'false'
+ Gtp2GtpcTunnelEndptId: '1000000'
+ Gtp2GtpuIncludeSeqEn: 'true'
+ Gtp2GtpuTunnelEndptId: '2000000'
+ Gtp2IgnoreRestartCtrEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2IncCgiEn: 'false'
+ Gtp2IncEcgiEn: 'true'
+ Gtp2IncRaiEn: 'false'
+ Gtp2IncSaiEn: 'false'
+ Gtp2IncTaiEn: 'true'
+ Gtp2MacroEnbEn: 'false'
+ Gtp2Mcc: '000'
+ Gtp2Mnc: '000'
+ Gtp2MobGtpuForwardingEndptId: '5000000'
+ Gtp2MsIsdnEn: 'false'
+ Gtp2N3Attempts: '5'
+ Gtp2PagingTimeMs: '0'
+ Gtp2PersistentImsiEn: 'false'
+ Gtp2PiggybackEn_sgw: '0'
+ Gtp2QosArpPreemptCapEn_1: 'false'
+ Gtp2QosArpPreemptVulnEn_1: 'false'
+ Gtp2QosArpValue_1: '1'
+ Gtp2QosClassId_1: '1'
+ Gtp2QosDetail: Summary
+ Gtp2QosGuarDownlink_1: '1'
+ Gtp2QosGuarUplink_1: '1'
+ Gtp2QosMaxDownlink_1: '1'
+ Gtp2QosMaxUplink_1: '1'
+ Gtp2RadioAccessType: '6'
+ Gtp2RestartCnt: '1'
+ Gtp2S5GtpcTunnelEndptId: '3000000'
+ Gtp2S5GtpuTunnelEndptId: '4000000'
+ Gtp2SupportMabrEn: 'false'
+ Gtp2T3Time: '20'
+ Gtp2Tac: '0'
+ Gtp2Version: 15.2.0
+ PgwNodeEn: 'false'
+ PgwNumSutsEn: 'false'
+ PgwSut:
+ class: Sut
+ name: PGW_SUT_NAME
+ PgwUserSutEn: 'false'
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ SeparateS5InterfacesEn: 'false'
+ Sessions: '1'
+ SgwControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: SGW_CONTROL_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: SGW_CONTROL_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ SgwControlAddrErrInj: '0'
+ SgwUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: SGW_USER_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: SGW_USER_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ SgwUserAddrErrInj: '0'
+ SgwUserDualStackEn: 'false'
+ SxaControlNodeAddrXPort: '8805'
+ SxaUserNodeAddrXPort: '8805'
+ TestType: SGW-NODE
+ TrafficMtu: '1400'
+ type: SGW_Node
+ - name: ''
+ parameters:
+ AgwNodeAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: AGW_NODE_NAME
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: AGW_NODE_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ AgwNodeAddrErrInj: '0'
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ BillingEn: 'false'
+ ConnectBearerDelay:
+ array: []
+ class: Array
+ DataTraffic: Disabled
+ DedicatedsPerDefaultBearer: '1'
+ DefaultBearers: '1'
+ DisconnectDedicatedBearerEn: 'false'
+ FireballEn: 'false'
+ ForwardSessionVLanTag: '0'
+ Gtp2AmbrDownlink: '1'
+ Gtp2AmbrUplink: '1'
+ Gtp2ApnNumSpecifiedApns_0: '0'
+ Gtp2ApnRestriction: '0'
+ Gtp2ApnRetries_0: '0'
+ Gtp2ApnSelectMode: '0'
+ Gtp2ApnSpecified_0:
+ array: []
+ class: Array
+ Gtp2ApnTotalApns_0: '1'
+ Gtp2Apn_0: ssenoauth146
+ Gtp2Ecgi: '0'
+ Gtp2EcgiSize: '28'
+ Gtp2EchoTimeSec: '0'
+ Gtp2ExtEn: 'false'
+ Gtp2GtpcTunnelEndptId: '1000000'
+ Gtp2GtpuIncludeSeqEn: 'true'
+ Gtp2GtpuTunnelEndptId: '2000000'
+ Gtp2IgnoreRestartCtrEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2IncCgiEn: 'false'
+ Gtp2IncEcgiEn: 'true'
+ Gtp2IncRaiEn: 'false'
+ Gtp2IncSaiEn: 'false'
+ Gtp2IncTaiEn: 'true'
+ Gtp2MacroEnbEn: 'false'
+ Gtp2Mcc: '000'
+ Gtp2Mnc: '000'
+ Gtp2MsIsdnEn: 'false'
+ Gtp2MultDedsPerMsgEn: 'false'
+ Gtp2PcoAddEn: 'false'
+ Gtp2PcoIpcpEn: 'false'
+ Gtp2PersistentImsiEn: 'false'
+ Gtp2PiggybackEn_pgw: '0'
+ Gtp2QosArpPreemptCapEn_1: 'false'
+ Gtp2QosArpPreemptVulnEn_1: 'false'
+ Gtp2QosArpValue_1: '1'
+ Gtp2QosClassId_1: '1'
+ Gtp2QosDetail: Summary
+ Gtp2QosGuarDownlink_1: '1'
+ Gtp2QosGuarUplink_1: '1'
+ Gtp2QosMaxDownlink_1: '1'
+ Gtp2QosMaxUplink_1: '1'
+ Gtp2RadioAccessType: '6'
+ Gtp2ResponseDelayEn: 'false'
+ Gtp2RestartCnt: '1'
+ Gtp2RouterAdDelay: '1'
+ Gtp2Tac: '0'
+ Gtp2Version: 15.2.0
+ MobilityType: None
+ OverloadCtlEn: 'false'
+ PcrfClnAgwIf: Gx
+ PdnGwAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: PGW_CONTROL_NAME
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: PGW_CONTROL_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ PdnGwAddrErrInj: '0'
+ PdnGwUsrAddrEn: 'false'
+ PgwDualStackEn: 'false'
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ S6bIfEn: 'false'
+ Sessions: '1'
+ SgiNasIfEn: 'false'
+ SgiNodeEn: 'false'
+ SgiPtpTunnelEn: 'false'
+ TestType: PGW-NODE
+ TrafficMtu: '1400'
+ TrafficNumTftsForContext0: '1'
+ TyCcClnAddFailedAvpEn: 'false'
+ TyCcClnApplicationId: '16777238'
+ TyCcClnAvpCfgFileEn: 'false'
+ TyCcClnConfiguration: Primary Server Only
+ TyCcClnDistributionMode: Dedicated
+ TyCcClnDoNotInitiateDprEn: 'false'
+ TyCcClnDprCause: '2'
+ TyCcClnHostAvpEn: 'true'
+ TyCcClnOriginHost: AGW.Spirent.com
+ TyCcClnOriginRealm: Spirent.com
+ TyCcClnProductName: 'Landslide PCRF'
+ TyCcClnRetryTime: '5000'
+ TyCcClnSctp3SackRuleEn: 'false'
+ TyCcClnSctpAckDelay: '100'
+ TyCcClnSctpSackThreshold: '2'
+ TyCcClnSutPort: '3868'
+ TyCcClnSutPrimaryHost: AGWServer.Spirent.com
+ TyCcClnSutPrimaryRealm: Spirent.com
+ TyCcClnSutPrimarySrv:
+ class: Sut
+ name: PCRF_TESTNODE_NAME
+ TyCcClnTcpProtocol: '1'
+ TyCcClnTcpWinSize: '32768'
+ TyCcClnVendorId: '10415'
+ TyCcClnVsa:
+ attrInfos: []
+ class: Vsa
+ isCriteria: 'false'
+ isGeneric: 'false'
+ protocol: '301'
+ TyCcClnWatchDogTime: '30'
+ UeDhcpV4En: 'false'
+ UeInitBearerEn: 'false'
+ type: PGW_Node
+ tsId: SGW_PGW_NODE_TC_NAME
+- testCases:
+ - name: ''
+ parameters:
+ ApnDnsEn: 'false'
+ ApnToPgwMappingEn: 'false'
+ AutoStopControlLayer: 'false'
+ ConnectBearerDelay:
+ array: []
+ class: Array
+ ContinuousWithVerification: 'false'
+ CpCiotEpsOptimizationEn: 'false'
+ CtlBearerToDscpEn: 'false'
+ DataHostCfgFileEn: 'false'
+ DataResumeRate: '3000'
+ DataTraffic: Continuous
+ DataUserCfgFileEn: 'false'
+ DedicatedBearerConnectRateEn: 'false'
+ DedicatedBearerDisconnectRateEn: 'false'
+ DedicatedsPerDefaultBearer: '1'
+ DefaultBearers: '1'
+ DisconnectDedicatedBearerEn: 'false'
+ DisconnectRate: '1000.0'
+ Dmf:
+ class: Dmf
+ instanceGroups:
+ - mainflowIdx: 0
+ mixType: ''
+ rate: 0.0
+ rows:
+ - clientPort: 0
+ context: 0
+ node: 0
+ overridePort: 'false'
+ ratingGroup: 0
+ role: 0
+ serviceId: 0
+ transport: Any
+ mainflows:
+ - library: test
+ name: Basic UDP
+ DualStackEn: 'false'
+ EDrxValueEn: 'false'
+ EirIfEn: 'false'
+ EmergencyAttachWithImeiEn: 'false'
+ EmergencyAttachWoAuthEn: 'false'
+ EmergencyPdnIndexEn: 'false'
+ EnableExternalData: '0'
+ EnbUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: ENB_USER_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: ENB_USER_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ EnbUserAddrErrInj: '0'
+ FireballEn: 'false'
+ Gtp2ActivationDelay: '0'
+ Gtp2AmbrDownlink: '1'
+ Gtp2AmbrUplink: '1'
+ Gtp2ApnNumSpecifiedApns_0: '0'
+ Gtp2ApnNumSpecifiedApns_1: '0'
+ Gtp2ApnRestriction: '0'
+ Gtp2ApnRetries_0: '0'
+ Gtp2ApnRetries_1: '0'
+ Gtp2ApnSelectMode: '0'
+ Gtp2ApnSpecified_0:
+ array: []
+ class: Array
+ Gtp2ApnSpecified_1:
+ array: []
+ class: Array
+ Gtp2ApnTotalApns_0: '1'
+ Gtp2ApnTotalApns_1: '1'
+ Gtp2Apn_0: ssenoauth146
+ Gtp2Apn_1: ssenoauth146
+ Gtp2BearerModEn: 'false'
+ Gtp2CfgFileEn: 'false'
+ Gtp2ChargingChars: '0x0'
+ Gtp2DelayDlPacketNotifReq: '1'
+ Gtp2Ecgi: '0'
+ Gtp2EcgiSize: '28'
+ Gtp2EchoTimeSec: '0'
+ Gtp2EnbUliEn: 'false'
+ Gtp2ExtEn: 'false'
+ Gtp2FwdUplinkDataEcmIdle: 'false'
+ Gtp2GtpcTunnelEndptId: '1000000'
+ Gtp2GtpuIncludeSeqEn: 'true'
+ Gtp2GtpuTunnelEndptId: '2000000'
+ Gtp2IdleEntryTime: '0'
+ Gtp2IgnoreRestartCtrEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2IncCgiEn: 'false'
+ Gtp2IncEcgiEn: 'true'
+ Gtp2IncPcoOpt: none
+ Gtp2IncRaiEn: 'false'
+ Gtp2IncSaiEn: 'false'
+ Gtp2IncTaiEn: 'true'
+ Gtp2MacroEnbEn: 'false'
+ Gtp2MaxWaitTimeEn: 'false'
+ Gtp2Mcc: '000'
+ Gtp2Mnc: '000'
+ Gtp2ModBearerDlDataDelay: '0'
+ Gtp2MsIsdnEn: 'false'
+ Gtp2N3Attempts: '5'
+ Gtp2PagingTimeMs: '0'
+ Gtp2PcoAddEn: 'false'
+ Gtp2PcoIpcpEn: 'false'
+ Gtp2QosArpPreemptCapEn_1: 'false'
+ Gtp2QosArpPreemptVulnEn_1: 'false'
+ Gtp2QosArpValue_1: '1'
+ Gtp2QosClassId_1: '1'
+ Gtp2QosDetail: Summary
+ Gtp2QosGuarDownlink_1: '1'
+ Gtp2QosGuarUplink_1: '1'
+ Gtp2QosMaxDownlink_1: '1'
+ Gtp2QosMaxUplink_1: '1'
+ Gtp2RadioAccessType: '6'
+ Gtp2RejectDedEn: 'false'
+ Gtp2RemoteUeReportTime: '0'
+ Gtp2RestartCnt: '1'
+ Gtp2SupportMabrEn: 'false'
+ Gtp2SwVersionEn: 'false'
+ Gtp2T3Time: '20'
+ Gtp2Tac: '0'
+ Gtp2UeDaySaveTime: '0'
+ Gtp2UeMultPdnConnReqSameApnEn_0: 'false'
+ Gtp2UeTimeZone: '0'
+ Gtp2UliDbCmdCbRspEn: 'true'
+ Gtp2Version: 15.2.0
+ HomeAddrType: '1'
+ HomeAddrTypePerBearerEn: 'false'
+ HssIfEn: 'false'
+ MmeControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: MME_CONTROL_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: MME_CONTROL_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ MmeControlAddrErrInj: '0'
+ MultipathTcpEn: 'false'
+ NetworkHost: Local
+ NetworkHostAddrLocal:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: NET_HOST_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: NET_HOST_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ NetworkHostAddrLocalErrInj: '0'
+ NetworkHostNatedTrafficEn: 'false'
+ PgwNodeEn: 'false'
+ PgwUserSutEn: 'false'
+ PgwV4Sut:
+ class: Sut
+ name: PGW_TESTNODE_NAME
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ SecPgwV4SutEn: 'false'
+ SessionIntervalShape: Fixed
+ SessionRetries: 'true'
+ Sessions: '1'
+ SgwNumSutsEn: 'false'
+ SgwSut:
+ class: Sut
+ name: SGW_CONTROL_NAME
+ SgwUserSut:
+ class: Sut
+ name: SGW_USER_NAME
+ StartRate: '1000.0'
+ T3324PwrSavingValueEn: 'false'
+ T3412ExValueEn: 'false'
+ TestActivity: Capacity Test
+ TestType: SGW-NODAL
+ TrafficDontFragIp: '0'
+ TrafficErrorInject: '0'
+ TrafficHostIdleTimeEnabler: 'false'
+ TrafficMtu: '1400'
+ TrafficStartDelay: '1000'
+ TrafficStartType: When All Sessions Established
+ UeDhcpV4En: 'false'
+ UeInitBearerEn: 'false'
+ UseStaticBearerIp: 'false'
+ type: SGW_Nodal
+ - name: ''
+ parameters:
+ AffinityModeEn: 'false'
+ AgwSrvNode:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: PRIMARY_AGW_NAME
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: PRIMARY_AGW_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ AgwSrvNodeErrInj: '0'
+ CommandMode: 'Off'
+ DiaAvpDataSize: '200'
+ DisconnectRate: '1000.0'
+ HomeAddrType: '1'
+ LteVersion: 9.6.0
+ PcrfProtocol: pcrf_gx_srv
+ RoamingEn: 'false'
+ Sessions: '1'
+ StartingMsIpAddr: 1.0.0.1
+ TestType: PCRF-NODE
+ TyCcDsSrvNumRuleSet: '0'
+ TyCcSrvAddFailedAvpEn: 'false'
+ TyCcSrvApnCaseInsensitiveEn: 'true'
+ TyCcSrvApnMapEn: 'true'
+ TyCcSrvApnProfilesEn: 'false'
+ TyCcSrvApns:
+ array: []
+ class: Array
+ TyCcSrvApplicationId: '16777238'
+ TyCcSrvAuthKey: '505024101215074'
+ TyCcSrvAuthKeyType: IMSI
+ TyCcSrvAvpCfgFileEn: 'false'
+ TyCcSrvCcaIDelayEn: 'false'
+ TyCcSrvCcaTDelayEn: 'false'
+ TyCcSrvCcaUDelayEn: 'false'
+ TyCcSrvChargingAvpEn: 'false'
+ TyCcSrvCopyFilterFromRxEn: 'false'
+ TyCcSrvDoNotInitiateDprEn: 'false'
+ TyCcSrvDprCause: '2'
+ TyCcSrvExcludeFlowDirEn: 'false'
+ TyCcSrvImeiSvKeyEn: 'false'
+ TyCcSrvMobSupportEn: 'false'
+ TyCcSrvNumPeers: '1'
+ TyCcSrvOfflineAvpEn: 'false'
+ TyCcSrvOnlineAvpEn: 'false'
+ TyCcSrvOriginHost: AGWServer.Spirent.com
+ TyCcSrvOriginRealm: Spirent.com
+ TyCcSrvPktFltIdAlwaysEn: 'false'
+ TyCcSrvProductName: 'Landslide PCRF'
+ TyCcSrvRetryTime: '5000'
+ TyCcSrvSctp3SackRuleEn: 'false'
+ TyCcSrvSctpAckDelay: '100'
+ TyCcSrvSctpAckEn: 'true'
+ TyCcSrvSctpHeartbeatInterval: '30'
+ TyCcSrvSctpMaxRetransAssoc: '5'
+ TyCcSrvSctpMultiHomedMultiSrcEn: 'false'
+ TyCcSrvSctpSackThreshold: '2'
+ TyCcSrvSecondaryPcrfEn: 'false'
+ TyCcSrvTcpProtocol: '1'
+ TyCcSrvTcpWinSize: '32768'
+ TyCcSrvVendorId: '10415'
+ TyCcSrvVsaDbList: '30'
+ TyCcSrvWatchDogTime: '30'
+ TyCcV41Vsa:
+ attrInfos: []
+ class: Vsa
+ isCriteria: 'false'
+ isGeneric: 'false'
+ protocol: '603'
+ TyCcV42Vsa:
+ attrInfos: []
+ class: Vsa
+ isCriteria: 'false'
+ isGeneric: 'false'
+ protocol: '603'
+ TyCcV4AvpDataSize1: '200'
+ TyCcV4AvpDataSize2: '0'
+ TyCcV4SrvApn_1: '0'
+ TyCcV4SrvApn_2: '0'
+ TyCcV4SrvCrAction_1_1: Install
+ TyCcV4SrvCrAction_2_1: Install
+ TyCcV4SrvCrActivationTimeEn_1_1: 'false'
+ TyCcV4SrvCrActivationTimeEn_2_1: 'false'
+ TyCcV4SrvCrBearerIdEn_1_1: 'false'
+ TyCcV4SrvCrBearerIdEn_2_1: 'false'
+ TyCcV4SrvCrDeactivationTimeEn_1_1: 'false'
+ TyCcV4SrvCrDeactivationTimeEn_2_1: 'false'
+ TyCcV4SrvCrFilterDestIp_1_1_1_1: any
+ TyCcV4SrvCrFilterDirection_1_1_1_1: '3'
+ TyCcV4SrvCrFilterFlowLabel_1_1_1_1: ''
+ TyCcV4SrvCrFilterId_1_1_1_1: Fltr_V4_1_1_1_1
+ TyCcV4SrvCrFilterSpi_1_1_1_1: ''
+ TyCcV4SrvCrFilterTos_1_1_1_1: ''
+ TyCcV4SrvCrFilter_1_1_1_1: permit in ip from
+ TyCcV4SrvCrIpType_1_1_1_1: '0'
+ TyCcV4SrvCrNumBaseName_1_1: '0'
+ TyCcV4SrvCrNumBaseName_2_1: '0'
+ TyCcV4SrvCrNumFilters_1_1_1: '1'
+ TyCcV4SrvCrNumFilters_2_1_1: '0'
+ TyCcV4SrvCrNumRuleDef_1_1: '1'
+ TyCcV4SrvCrNumRuleDef_2_1: '1'
+ TyCcV4SrvCrNumRuleName_1_1: '1'
+ TyCcV4SrvCrNumRuleName_2_1: '1'
+ TyCcV4SrvCrOverwriteSrcIpEn_1_1_1_1: 'false'
+ TyCcV4SrvCrPolRuleEn_1_1_1: 'true'
+ TyCcV4SrvCrPolRuleEn_2_1_1: 'true'
+ TyCcV4SrvCrQciEn_1_1_1: 'true'
+ TyCcV4SrvCrQciEn_2_1_1: 'true'
+ TyCcV4SrvCrQci_1_1_1: '1'
+ TyCcV4SrvCrQci_2_1_1: '1'
+ TyCcV4SrvCrResourceAllocEn_1_1: 'false'
+ TyCcV4SrvCrResourceAllocEn_2_1: 'false'
+ TyCcV4SrvCrRuleDefAfChargIdEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefAfChargIdEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleDefAppSvcProvIdEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefAppSvcProvIdEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleDefFlowStatusEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefFlowStatusEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleDefMcdNumEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefMcdNumEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleDefMetMethodEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefMetMethodEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleDefName_1_1_1: dedicated_rule_definition
+ TyCcV4SrvCrRuleDefName_2_1_1: default_rule_definition
+ TyCcV4SrvCrRuleDefOfflineAvpEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefOfflineAvpEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleDefOnlineAvpEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefOnlineAvpEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleDefPrecEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefPrecEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleDefRatGrpEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefRatGrpEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleDefSponsorIdEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefSponsorIdEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleDefSrvIDEn_1_1_1: 'false'
+ TyCcV4SrvCrRuleDefSrvIDEn_2_1_1: 'false'
+ TyCcV4SrvCrRuleName_1_1_1: dedicated_charging_rule
+ TyCcV4SrvCrRuleName_2_1_1: default_charging_rule
+ TyCcV4SrvCrUserIpExt_1_1_1_1: ''
+ TyCcV4SrvNumCr_1: '1'
+ TyCcV4SrvNumCr_2: '1'
+ TyCcV4SrvNumRuleSet: '2'
+ TyCcV4SrvPrArpEn_1_1_1: 'false'
+ TyCcV4SrvPrArpEn_2_1_1: 'false'
+ TyCcV4SrvPrBearerIdEn_1_1_1: 'false'
+ TyCcV4SrvPrBearerIdEn_2_1_1: 'false'
+ TyCcV4SrvPrGuaranteedBwEn_1_1_1: 'true'
+ TyCcV4SrvPrGuaranteedBwEn_2_1_1: 'false'
+ TyCcV4SrvPrGuaranteedDownlink_1_1_1: '100'
+ TyCcV4SrvPrGuaranteedUplink_1_1_1: '100'
+ TyCcV4SrvPrIncPacketFilterUsage_1_1_1: 'false'
+ TyCcV4SrvPrIncPacketFilterUsage_2_1_1: 'false'
+ TyCcV4SrvPrMaxBwEn_1_1_1: 'true'
+ TyCcV4SrvPrMaxBwEn_2_1_1: 'false'
+ TyCcV4SrvPrMaxDL_1_1_1: '100'
+ TyCcV4SrvPrMaxUL_1_1_1: '100'
+ TyCcV4SrvPrUseAssignedEn_1_1_1: 'false'
+ TyCcV4SrvPrUseAssignedEn_2_1_1: 'false'
+ TyCcV4SrvRevalidateEn_1: 'false'
+ TyCcV4SrvRevalidateEn_2: 'false'
+ TyCcV4SrvRuleInterval_1: '10'
+ TyCcV4SrvRuleInterval_2: '0'
+ TyCcV6SrvNumRuleSet: '0'
+ TyCcVsa:
+ attrInfos: []
+ class: Vsa
+ isCriteria: 'false'
+ isGeneric: 'false'
+ protocol: '303'
+ type: PCRF_Node
+ tsId: SGW_NODAL_PCRF_NODE_TS_NAME
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_session_network_service_request.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_network_service_request.yaml
new file mode 100644
index 000000000..2589a6b47
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_network_service_request.yaml
@@ -0,0 +1,341 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+description: Network triggered service request
+keywords: ''
+duration: 60
+library: test
+name: network_initiated_service_request
+tsGroups:
+- testCases:
+ - name: ''
+ AssociatedPhys: ''
+ parameters:
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ BillingEn: 'false'
+ DedicatedsPerDefaultBearer: '0'
+ DefaultBearers: '1'
+ FireballEn: 'false'
+ Gtp2AmbrDownlink: '1'
+ Gtp2AmbrUplink: '1'
+ Gtp2ApnNumSpecifiedApns_0: '0'
+ Gtp2ApnRestriction: '0'
+ Gtp2ApnRetries_0: '0'
+ Gtp2ApnSelectMode: '0'
+ Gtp2ApnSpecified_0:
+ array: []
+ class: Array
+ Gtp2ApnTotalApns_0: '1'
+ Gtp2Apn_0: ssenoauth146
+ Gtp2CfgFileEn: 'false'
+ Gtp2Ecgi: '0'
+ Gtp2EcgiSize: '28'
+ Gtp2EchoTimeSec: '0'
+ Gtp2ExtEn: 'false'
+ Gtp2GtpcTunnelEndptId: '1000000'
+ Gtp2GtpuIncludeSeqEn: 'true'
+ Gtp2GtpuTunnelEndptId: '2000000'
+ Gtp2IgnoreRestartCtrEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2IncCgiEn: 'false'
+ Gtp2IncEcgiEn: 'true'
+ Gtp2IncRaiEn: 'false'
+ Gtp2IncSaiEn: 'false'
+ Gtp2IncTaiEn: 'true'
+ Gtp2MacroEnbEn: 'false'
+ Gtp2Mcc: '000'
+ Gtp2Mnc: '000'
+ Gtp2MobGtpuForwardingEndptId: '5000000'
+ Gtp2MsIsdnEn: 'false'
+ Gtp2N3Attempts: '5'
+ Gtp2PagingTimeMs: '0'
+ Gtp2PersistentImsiEn: 'false'
+ Gtp2QosArpPreemptCapEn_1: 'false'
+ Gtp2QosArpPreemptVulnEn_1: 'false'
+ Gtp2QosArpValue_1: '1'
+ Gtp2QosClassId_1: '1'
+ Gtp2QosDetail: Summary
+ Gtp2QosGuarDownlink_1: '1'
+ Gtp2QosGuarUplink_1: '1'
+ Gtp2QosMaxDownlink_1: '1'
+ Gtp2QosMaxUplink_1: '1'
+ Gtp2RadioAccessType: '6'
+ Gtp2ResponseDelayEn: 'false'
+ Gtp2RestartCnt: '1'
+ Gtp2RouterAdDelay: '1'
+ Gtp2S5GtpcTunnelEndptId: '3000000'
+ Gtp2S5GtpuTunnelEndptId: '4000000'
+ Gtp2SupportMabrEn: 'false'
+ Gtp2T3Time: '20'
+ Gtp2Tac: '0'
+ Gtp2Version: 15.2.0
+ PgwNodeEn: 'true'
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ Sessions: '1000'
+ SgiPtpTunnelEn: 'false'
+ SgwControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: SGW_CONTROL_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: SGW_CONTROL_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ SgwControlAddrErrInj: '0'
+ SgwUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: SGW_USER_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: SGW_USER_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ SgwUserAddrErrInj: '0'
+ SgwUserDualStackEn: 'false'
+ TestType: SGW-NODE
+ TrafficMtu: '1400'
+ UeDhcpV4En: 'false'
+ type: SGW_Node
+ tsId: SGW_NODE_TS_NAME
+- testCases:
+ - name: ''
+ parameters:
+ ApnDnsEn: 'false'
+ ApnToPgwMappingEn: 'false'
+ AutoStopControlLayer: 'false'
+ ContinuousWithVerification: 'false'
+ CpCiotEpsOptimizationEn: 'false'
+ CtlBearerToDscpEn: 'false'
+ DataHostCfgFileEn: 'false'
+ DataResumeRate: '3000'
+ DataTraffic: Continuous
+ DataUserCfgFileEn: 'false'
+ DedicatedsPerDefaultBearer: '0'
+ DefaultBearers: '1'
+ DisconnectRate: '1000.0'
+ Dmf:
+ class: Dmf
+ instanceGroups:
+ - mainflowIdx: 0
+ mixType: ''
+ rate: 0.0
+ rows:
+ - clientPort: 0
+ context: 0
+ node: 0
+ overridePort: 'false'
+ ratingGroup: 0
+ role: Server
+ serviceId: 0
+ transport: Any
+ mainflows:
+ - library: test
+ name: Basic UDP
+ DualStackEn: 'false'
+ EDrxValueEn: 'false'
+ EirIfEn: 'false'
+ EmergencyAttachWithImeiEn: 'false'
+ EmergencyAttachWoAuthEn: 'false'
+ EmergencyPdnIndexEn: 'false'
+ EnableExternalData: '0'
+ EnbUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: ENB_USER_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: ENB_USER_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ EnbUserAddrErrInj: '0'
+ FireballEn: 'false'
+ Gtp2ActivationDelay: '0'
+ Gtp2AmbrDownlink: '1'
+ Gtp2AmbrUplink: '1'
+ Gtp2ApnNumSpecifiedApns_0: '0'
+ Gtp2ApnNumSpecifiedApns_1: '0'
+ Gtp2ApnRestriction: '0'
+ Gtp2ApnRetries_0: '0'
+ Gtp2ApnRetries_1: '0'
+ Gtp2ApnSelectMode: '0'
+ Gtp2ApnSpecified_0:
+ array: []
+ class: Array
+ Gtp2ApnSpecified_1:
+ array: []
+ class: Array
+ Gtp2ApnTotalApns_0: '1'
+ Gtp2ApnTotalApns_1: '1'
+ Gtp2Apn_0: ssenoauth146
+ Gtp2Apn_1: ssenoauth146
+ Gtp2BearerModEn: 'false'
+ Gtp2CfgFileEn: 'false'
+ Gtp2ChargingChars: '0x0'
+ Gtp2DelayDlPacketNotifReq: '1'
+ Gtp2Ecgi: '0'
+ Gtp2EcgiSize: '28'
+ Gtp2EchoTimeSec: '0'
+ Gtp2EnbUliEn: 'false'
+ Gtp2ExtEn: 'false'
+ Gtp2FwdUplinkDataEcmIdle: 'false'
+ Gtp2GtpcTunnelEndptId: '1000000'
+ Gtp2GtpuIncludeSeqEn: 'true'
+ Gtp2GtpuTunnelEndptId: '2000000'
+ Gtp2IdleEntryTime: '0'
+ Gtp2IgnoreRestartCtrEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2IncCgiEn: 'false'
+ Gtp2IncEcgiEn: 'true'
+ Gtp2IncPcoOpt: none
+ Gtp2IncRaiEn: 'false'
+ Gtp2IncSaiEn: 'false'
+ Gtp2IncTaiEn: 'true'
+ Gtp2MacroEnbEn: 'false'
+ Gtp2MaxWaitTimeEn: 'false'
+ Gtp2Mcc: '000'
+ Gtp2Mnc: '000'
+ Gtp2ModBearerDlDataDelay: '0'
+ Gtp2MsIsdnEn: 'false'
+ Gtp2N3Attempts: '5'
+ Gtp2PagingTimeMs: '0'
+ Gtp2PcoAddEn: 'false'
+ Gtp2PcoIpcpEn: 'false'
+ Gtp2QosArpPreemptCapEn_1: 'false'
+ Gtp2QosArpPreemptVulnEn_1: 'false'
+ Gtp2QosArpValue_1: '1'
+ Gtp2QosClassId_1: '1'
+ Gtp2QosDetail: Summary
+ Gtp2QosGuarDownlink_1: '1'
+ Gtp2QosGuarUplink_1: '1'
+ Gtp2QosMaxDownlink_1: '1'
+ Gtp2QosMaxUplink_1: '1'
+ Gtp2RadioAccessType: '6'
+ Gtp2RejectDedEn: 'false'
+ Gtp2RemoteUeReportTime: '0'
+ Gtp2RestartCnt: '1'
+ Gtp2SupportMabrEn: 'false'
+ Gtp2SwVersionEn: 'false'
+ Gtp2T3Time: '20'
+ Gtp2Tac: '0'
+ Gtp2UeDaySaveTime: '0'
+ Gtp2UeMultPdnConnReqSameApnEn_0: 'false'
+ Gtp2UeTimeZone: '0'
+ Gtp2UliDbCmdCbRspEn: 'true'
+ Gtp2Version: 15.2.0
+ HomeAddrType: '1'
+ HomeAddrTypePerBearerEn: 'false'
+ HssIfEn: 'false'
+ MmeControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: MME_CONTROL_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: MME_CONTROL_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ MmeControlAddrErrInj: '0'
+ MultipathTcpEn: 'false'
+ NetworkHost: Local
+ NetworkHostAddrLocal:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: NET_HOST_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: NET_HOST_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ NetworkHostAddrLocalErrInj: '0'
+ NetworkHostNatedTrafficEn: 'false'
+ PgwNodeEn: 'false'
+ PgwUserSutEn: 'false'
+ PgwV4Sut:
+ class: Sut
+ name: PGW_SUT_NAME
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ SecPgwV4SutEn: 'false'
+ SessionIntervalShape: Fixed
+ SessionRetries: 'true'
+ Sessions: '1000'
+ SgwNumSutsEn: 'false'
+ SgwSut:
+ class: Sut
+ name: PGW_SUT_NAME
+ SgwUserSut:
+ class: Sut
+ name: SGW_USER_NAME
+ StartRate: '1000.0'
+ T3324PwrSavingValueEn: 'false'
+ T3412ExValueEn: 'false'
+ TestActivity: Capacity Test
+ TestType: SGW-NODAL
+ TrafficDontFragIp: '0'
+ TrafficErrorInject: '0'
+ TrafficHostIdleTimeEnabler: 'false'
+ TrafficMtu: '1400'
+ TrafficStartDelay: '10000'
+ TrafficStartType: When All Sessions Established
+ UeDhcpV4En: 'false'
+ UseStaticBearerIp: 'false'
+ type: SGW_Nodal
+ tsId: SGW_NODAL_TS_NAME
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_session_saegw_relocation.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_saegw_relocation.yaml
new file mode 100644
index 000000000..f6daeee40
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_saegw_relocation.yaml
@@ -0,0 +1,177 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+description: SAEGW throughput with relocation test case
+keywords: ''
+duration: 60
+library: test
+name: saegw_relocation
+tsGroups:
+- testCases:
+ - name: ''
+ type: SGW_Node
+ AssociatedPhys: ''
+ parameters:
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ BillingEn: 'false'
+ DedicatedsPerDefaultBearer: '0'
+ DefaultBearers: '1'
+ FireballEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2Version: 15.2.0
+ PgwNodeEn: 'true'
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ Sessions: '20000'
+ SgiPtpTunnelEn: 'false'
+ SgwControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: SGW_CONTROL_IP
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ phy: SGW_CONTROL_PHY
+ SgwControlAddrErrInj: '0'
+ SgwUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ ip: SGW_USER_IP
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ phy: SGW_USER_PHY
+ SgwUserAddrErrInj: '0'
+ SgwUserDualStackEn: 'false'
+ TestType: SGW-NODE
+ TrafficMtu: '1400'
+ UeDhcpV4En: 'false'
+ tsId: SGW_NODE_TS_NAME
+- testCases:
+ - name: ''
+ type: SGW_Nodal
+ parameters:
+ ApnDnsEn: 'false'
+ ApnToPgwMappingEn: 'false'
+ AutoStopControlLayer: 'false'
+ ContinuousWithVerification: 'false'
+ CtlBearerToDscpEn: 'false'
+ DataHostCfgFileEn: 'false'
+ DataResumeRate: '3000'
+ DataTraffic: Continuous
+ DataUserCfgFileEn: 'false'
+ DedicatedsPerDefaultBearer: '0'
+ DefaultBearers: '1'
+ DisconnectRate: '1000.0'
+ Dmf:
+ class: Dmf
+ instanceGroups:
+ - mainflowIdx: 0
+ mixType: ''
+ rate: 0.0
+ mainflows:
+ - library: test
+ name: Basic UDP
+ DualStackEn: 'false'
+ EnbUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: ENB_USER_IP
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ phy: ENB_USER_PHY
+ FireballEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2Version: 15.2.0
+ HandoffType: '0'
+ HomeAddrType: '1'
+ HomeAddrTypePerBearerEn: 'false'
+ HssIfEn: 'false'
+ MmeControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: MME_CONTROL_IP
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ phy: MME_CONTROL_PHY
+ MmeControlAddrErrInj: '0'
+ MobEnbUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: TARGET_ENB_USER_IP
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ phy: TARGET_ENB_USER_PHY
+ MobEnbUserAddrErrInj: '0'
+ MobilityIntervalShape: Fixed
+ MobilityMode: Single Handoff
+ MobilityRate: '1.0'
+ MobilityTimeMs: '10000'
+ MultipathTcpEn: 'false'
+ NetworkHost: Local
+ NetworkHostAddrLocal:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: NET_HOST_IP
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ phy: NET_HOST_PHY
+ NetworkHostAddrLocalErrInj: '0'
+ NetworkHostNatedTrafficEn: 'false'
+ PgwNodeEn: 'false'
+ PgwUserSutEn: 'false'
+ PgwV4Sut:
+ class: Sut
+ name: PGW_SUT_NAME
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ SecPgwV4SutEn: 'false'
+ SessionIntervalShape: Fixed
+ SessionRetries: 'true'
+ Sessions: '20000'
+ SgwNumSutsEn: 'false'
+ SgwRelocationEn: 'false'
+ SgwSut:
+ class: Sut
+ name: SGW_CONTROL_NAME
+ SgwUserSut:
+ class: Sut
+ name: SGW_USER_NAME
+ StartRate: '1000.0'
+ StartType: When All Sessions Started
+ TestActivity: Intra-MME Mobility
+ TestType: SGW-NODAL
+ TrafficMtu: '1400'
+ TrafficStartDelay: '1000'
+ TrafficStartType: When Session Established
+ tsId: SGW_NODAL_TS_NAME
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_session_ue_dedicated_bearer.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_ue_dedicated_bearer.yaml
new file mode 100644
index 000000000..ace6e0258
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_ue_dedicated_bearer.yaml
@@ -0,0 +1,353 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+description: 'UE initiated dedicated bearer creation test case'
+duration: 60
+keywords: ''
+library: test
+name: capacity_dedicated_bearer_creation
+tsGroups:
+- testCases:
+ - name: ''
+ AssociatedPhys: ''
+ parameters:
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ BillingEn: 'false'
+ DedicatedsPerDefaultBearer: '1'
+ DefaultBearers: '1'
+ FireballEn: 'false'
+ Gtp2AmbrDownlink: '1'
+ Gtp2AmbrUplink: '1'
+ Gtp2ApnNumSpecifiedApns_0: '0'
+ Gtp2ApnRestriction: '0'
+ Gtp2ApnRetries_0: '0'
+ Gtp2ApnSelectMode: '0'
+ Gtp2ApnSpecified_0:
+ array: []
+ class: Array
+ Gtp2ApnTotalApns_0: '1'
+ Gtp2Apn_0: ssenoauth146
+ Gtp2CfgFileEn: 'false'
+ Gtp2Ecgi: '0'
+ Gtp2EcgiSize: '28'
+ Gtp2EchoTimeSec: '0'
+ Gtp2ExtEn: 'false'
+ Gtp2GtpcTunnelEndptId: '1000000'
+ Gtp2GtpuIncludeSeqEn: 'true'
+ Gtp2GtpuTunnelEndptId: '2000000'
+ Gtp2IgnoreRestartCtrEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2IncCgiEn: 'false'
+ Gtp2IncEcgiEn: 'true'
+ Gtp2IncRaiEn: 'false'
+ Gtp2IncSaiEn: 'false'
+ Gtp2IncTaiEn: 'true'
+ Gtp2MacroEnbEn: 'false'
+ Gtp2Mcc: '000'
+ Gtp2Mnc: '000'
+ Gtp2MobGtpuForwardingEndptId: '5000000'
+ Gtp2MsIsdnEn: 'false'
+ Gtp2N3Attempts: '5'
+ Gtp2PagingTimeMs: '0'
+ Gtp2PersistentImsiEn: 'false'
+ Gtp2PiggybackEn_sgw: '0'
+ Gtp2QosArpPreemptCapEn_1: 'false'
+ Gtp2QosArpPreemptVulnEn_1: 'false'
+ Gtp2QosArpValue_1: '1'
+ Gtp2QosClassId_1: '1'
+ Gtp2QosDetail: Summary
+ Gtp2QosGuarDownlink_1: '1'
+ Gtp2QosGuarUplink_1: '1'
+ Gtp2QosMaxDownlink_1: '1'
+ Gtp2QosMaxUplink_1: '1'
+ Gtp2RadioAccessType: '6'
+ Gtp2ResponseDelayEn: 'false'
+ Gtp2RestartCnt: '1'
+ Gtp2RouterAdDelay: '1'
+ Gtp2S5GtpcTunnelEndptId: '3000000'
+ Gtp2S5GtpuTunnelEndptId: '4000000'
+ Gtp2SupportMabrEn: 'false'
+ Gtp2T3Time: '20'
+ Gtp2Tac: '0'
+ Gtp2Version: 15.2.0
+ PgwNodeEn: 'true'
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ Sessions: '1000'
+ SgiPtpTunnelEn: 'false'
+ SgwControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: SGW_CONTROL_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: eth5
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ SgwControlAddrErrInj: '0'
+ SgwUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: SGW_USER_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: eth5
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ SgwUserAddrErrInj: '0'
+ SgwUserDualStackEn: 'false'
+ SxaControlNodeAddrXPort: '8805'
+ SxaUserNodeAddrXPort: '8805'
+ TestType: SGW-NODE
+ TrafficMtu: '1400'
+ TrafficNumTftsForContext0: '1'
+ UeDhcpV4En: 'false'
+ UeInitBearerEn: 'false'
+ type: SGW_Node
+ tsId: SGW_NODE_TS_NAME
+- testCases:
+ - name: ''
+ parameters:
+ ApnDnsEn: 'false'
+ ApnToPgwMappingEn: 'false'
+ AutoStopControlLayer: 'false'
+ ContinuousWithVerification: 'false'
+ CpCiotEpsOptimizationEn: 'false'
+ CtlBearerToDscpEn: 'false'
+ DataHostCfgFileEn: 'false'
+ DataResumeRate: '3000'
+ DataTraffic: Continuous
+ DataUserCfgFileEn: 'false'
+ DedBearerConnectDelay: '0'
+ DedBearerDisconnectDelay: '0'
+ DedicatedBearerConnectRateEn: 'false'
+ DedicatedBearerDisconnectRateEn: 'false'
+ DedicatedsPerDefaultBearer: '1'
+ DefaultBearers: '1'
+ DisconnectDedicatedBearerEn: 'false'
+ DisconnectRate: '1000.0'
+ Dmf:
+ class: Dmf
+ instanceGroups:
+ - mainflowIdx: 0
+ mixType: ''
+ rate: 0.0
+ rows:
+ - clientPort: 0
+ context: 0
+ node: 0
+ overridePort: 'false'
+ ratingGroup: 0
+ role: 0
+ serviceId: 0
+ transport: Any
+ mainflows:
+ - library: test
+ name: Basic UDP
+ DualStackEn: 'false'
+ EDrxValueEn: 'false'
+ EirIfEn: 'false'
+ EmergencyAttachWithImeiEn: 'false'
+ EmergencyAttachWoAuthEn: 'false'
+ EmergencyPdnIndexEn: 'false'
+ EnableExternalData: '0'
+ EnbUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: ENB_USER_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: eth5
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ EnbUserAddrErrInj: '0'
+ FireballEn: 'false'
+ Gtp2ActivationDelay: '0'
+ Gtp2AmbrDownlink: '1'
+ Gtp2AmbrUplink: '1'
+ Gtp2ApnNumSpecifiedApns_0: '0'
+ Gtp2ApnNumSpecifiedApns_1: '0'
+ Gtp2ApnRestriction: '0'
+ Gtp2ApnRetries_0: '0'
+ Gtp2ApnRetries_1: '0'
+ Gtp2ApnSelectMode: '0'
+ Gtp2ApnSpecified_0:
+ array: []
+ class: Array
+ Gtp2ApnSpecified_1:
+ array: []
+ class: Array
+ Gtp2ApnTotalApns_0: '1'
+ Gtp2ApnTotalApns_1: '1'
+ Gtp2Apn_0: ssenoauth146
+ Gtp2Apn_1: ssenoauth146
+ Gtp2BearerModEn: 'false'
+ Gtp2CfgFileEn: 'false'
+ Gtp2ChargingChars: '0x0'
+ Gtp2DelayDlPacketNotifReq: '1'
+ Gtp2Ecgi: '0'
+ Gtp2EcgiSize: '28'
+ Gtp2EchoTimeSec: '0'
+ Gtp2EnbUliEn: 'false'
+ Gtp2ExtEn: 'false'
+ Gtp2FwdUplinkDataEcmIdle: 'false'
+ Gtp2GtpcTunnelEndptId: '1000000'
+ Gtp2GtpuIncludeSeqEn: 'true'
+ Gtp2GtpuTunnelEndptId: '2000000'
+ Gtp2IdleEntryTime: '0'
+ Gtp2IgnoreRestartCtrEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2IncCgiEn: 'false'
+ Gtp2IncEcgiEn: 'true'
+ Gtp2IncPcoOpt: none
+ Gtp2IncRaiEn: 'false'
+ Gtp2IncSaiEn: 'false'
+ Gtp2IncTaiEn: 'true'
+ Gtp2MacroEnbEn: 'false'
+ Gtp2MaxWaitTimeEn: 'false'
+ Gtp2Mcc: '000'
+ Gtp2Mnc: '000'
+ Gtp2ModBearerDlDataDelay: '0'
+ Gtp2MsIsdnEn: 'false'
+ Gtp2N3Attempts: '5'
+ Gtp2PagingTimeMs: '0'
+ Gtp2PcoAddEn: 'false'
+ Gtp2PcoIpcpEn: 'false'
+ Gtp2QosArpPreemptCapEn_1: 'false'
+ Gtp2QosArpPreemptVulnEn_1: 'false'
+ Gtp2QosArpValue_1: '1'
+ Gtp2QosClassId_1: '1'
+ Gtp2QosDetail: Summary
+ Gtp2QosGuarDownlink_1: '1'
+ Gtp2QosGuarUplink_1: '1'
+ Gtp2QosMaxDownlink_1: '1'
+ Gtp2QosMaxUplink_1: '1'
+ Gtp2RadioAccessType: '6'
+ Gtp2RejectDedEn: 'false'
+ Gtp2RemoteUeReportTime: '0'
+ Gtp2RestartCnt: '1'
+ Gtp2SupportMabrEn: 'false'
+ Gtp2SwVersionEn: 'false'
+ Gtp2T3Time: '20'
+ Gtp2Tac: '0'
+ Gtp2UeDaySaveTime: '0'
+ Gtp2UeMultPdnConnReqSameApnEn_0: 'false'
+ Gtp2UeTimeZone: '0'
+ Gtp2UliDbCmdCbRspEn: 'true'
+ Gtp2Version: 15.2.0
+ HomeAddrType: '1'
+ HomeAddrTypePerBearerEn: 'false'
+ HssIfEn: 'false'
+ MmeControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: MME_CONTROL_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: eth5
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ MmeControlAddrErrInj: '0'
+ MultipathTcpEn: 'false'
+ NetworkHost: Local
+ NetworkHostAddrLocal:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: NET_HOST_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: eth5
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ NetworkHostAddrLocalErrInj: '0'
+ NetworkHostNatedTrafficEn: 'false'
+ PgwNodeEn: 'false'
+ PgwUserSutEn: 'false'
+ PgwV4Sut:
+ class: Sut
+ name: PGW_SUT_NAME
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ SecPgwV4SutEn: 'false'
+ SessionIntervalShape: Fixed
+ SessionRetries: 'true'
+ Sessions: '1000'
+ SgwNumSutsEn: 'false'
+ SgwSut:
+ class: Sut
+ name: SGW_CONTROL_NAME
+ SgwUserSut:
+ class: Sut
+ name: SGW_USER_NAME
+ StartRate: '1000.0'
+ T3324PwrSavingValueEn: 'false'
+ T3412ExValueEn: 'false'
+ TestActivity: Capacity Test
+ TestType: SGW-NODAL
+ TrafficDontFragIp: '0'
+ TrafficErrorInject: '0'
+ TrafficHostIdleTimeEnabler: 'false'
+ TrafficMtu: '1400'
+ TrafficNumTftsForContext0: '1'
+ TrafficStartDelay: '1000'
+ TrafficStartType: When All Sessions Established
+ UeDhcpV4En: 'false'
+ UeInitBearerEn: 'true'
+ UseStaticBearerIp: 'false'
+ type: SGW_Nodal
+ tsId: SGW_NODAL_TS_NAME
diff --git a/samples/vnf_samples/traffic_profiles/landslide/landslide_session_ue_service_request.yaml b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_ue_service_request.yaml
new file mode 100644
index 000000000..c4b178558
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/landslide/landslide_session_ue_service_request.yaml
@@ -0,0 +1,378 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+description: ue initiates service request test case
+keywords: ''
+duration: 60
+library: test
+name: ue_initiates_service_request
+tsGroups:
+- testCases:
+ - name: ''
+ AssociatedPhys: ''
+ parameters:
+ BearerAddrPool: 2001::1
+ BearerV4AddrPool: 1.0.0.1
+ BillingEn: 'false'
+ DedicatedsPerDefaultBearer: '1'
+ DefaultBearers: '1'
+ FireballEn: 'false'
+ Gtp2AmbrDownlink: '1'
+ Gtp2AmbrUplink: '1'
+ Gtp2ApnNumSpecifiedApns_0: '0'
+ Gtp2ApnRestriction: '0'
+ Gtp2ApnRetries_0: '0'
+ Gtp2ApnSelectMode: '0'
+ Gtp2ApnSpecified_0:
+ array: []
+ class: Array
+ Gtp2ApnTotalApns_0: '1'
+ Gtp2Apn_0: ssenoauth146
+ Gtp2CfgFileEn: 'false'
+ Gtp2Ecgi: '0'
+ Gtp2EcgiSize: '28'
+ Gtp2EchoTimeSec: '0'
+ Gtp2ExtEn: 'false'
+ Gtp2GtpcTunnelEndptId: '1000000'
+ Gtp2GtpuIncludeSeqEn: 'true'
+ Gtp2GtpuTunnelEndptId: '2000000'
+ Gtp2IgnoreRestartCtrEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2IncCgiEn: 'false'
+ Gtp2IncEcgiEn: 'true'
+ Gtp2IncRaiEn: 'false'
+ Gtp2IncSaiEn: 'false'
+ Gtp2IncTaiEn: 'true'
+ Gtp2MacroEnbEn: 'false'
+ Gtp2Mcc: '000'
+ Gtp2Mnc: '000'
+ Gtp2MobGtpuForwardingEndptId: '5000000'
+ Gtp2MsIsdnEn: 'false'
+ Gtp2N3Attempts: '5'
+ Gtp2PagingTimeMs: '0'
+ Gtp2PersistentImsiEn: 'false'
+ Gtp2QosArpPreemptCapEn_1: 'false'
+ Gtp2QosArpPreemptVulnEn_1: 'false'
+ Gtp2QosArpValue_1: '1'
+ Gtp2QosClassId_1: '1'
+ Gtp2QosDetail: Summary
+ Gtp2QosGuarDownlink_1: '150'
+ Gtp2QosGuarUplink_1: '150'
+ Gtp2QosMaxDownlink_1: '200'
+ Gtp2QosMaxUplink_1: '200'
+ Gtp2RadioAccessType: '6'
+ Gtp2ResponseDelayEn: 'false'
+ Gtp2RestartCnt: '1'
+ Gtp2RouterAdDelay: '1'
+ Gtp2S5GtpcTunnelEndptId: '3000000'
+ Gtp2S5GtpuTunnelEndptId: '4000000'
+ Gtp2SupportMabrEn: 'false'
+ Gtp2T3Time: '20'
+ Gtp2Tac: '0'
+ Gtp2Version: 15.2.0
+ PgwNodeEn: 'true'
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ Sessions: '1'
+ SgiPtpTunnelEn: 'false'
+ SgwControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: SGW_CONTROL_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: SGW_CONTROL_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ SgwControlAddrErrInj: '0'
+ SgwUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: SGW_USER_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: SGW_USER_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ SgwUserAddrErrInj: '0'
+ SgwUserDualStackEn: 'false'
+ TestType: SGW-NODE
+ TrafficMtu: '1400'
+ TrafficNumTftsForContext0: '0'
+ UeDhcpV4En: 'false'
+ UeInitBearerEn: 'true'
+ type: SGW_Node
+ tsId: SGW_NODE_TS_NAME
+- testCases:
+ - name: ''
+ parameters:
+ ApnDnsEn: 'false'
+ ApnToPgwMappingEn: 'false'
+ AutoStopControlLayer: 'false'
+ ContinuousWithVerification: 'false'
+ CpCiotEpsOptimizationEn: 'false'
+ CtlBearerToDscpEn: 'false'
+ DataHostCfgFileEn: 'false'
+ DataResumeRate: '3000'
+ DataTraffic: Continuous
+ DataUserCfgFileEn: 'false'
+ DedBearerConnectDelay: '0'
+ DedBearerDisconnectDelay: '0'
+ DedicatedBearerConnectRateEn: 'false'
+ DedicatedBearerDisconnectRateEn: 'false'
+ DedicatedsPerDefaultBearer: '1'
+ DefaultBearers: '1'
+ DisconnectRate: '1000.0'
+ Dmf:
+ class: Dmf
+ instanceGroups:
+ - mainflowIdx: 0
+ mixType: ''
+ rate: 0.0
+ rows:
+ - clientPort: 0
+ context: 0
+ node: 0
+ overridePort: 'false'
+ ratingGroup: 0
+ role: 0
+ serviceId: 0
+ transport: Any
+ mainflows:
+ - library: test
+ name: Basic UDP
+ DualStackEn: 'false'
+ EDrxValueEn: 'false'
+ EirIfEn: 'false'
+ EmergencyAttachWithImeiEn: 'false'
+ EmergencyAttachWoAuthEn: 'false'
+ EmergencyPdnIndexEn: 'false'
+ EnableExternalData: '0'
+ EnbUserAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: ENB_USER_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: ENB_USER_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ EnbUserAddrErrInj: '0'
+ FireballEn: 'false'
+ Gtp2ActivationDelay: '0'
+ Gtp2AmbrDownlink: '1'
+ Gtp2AmbrUplink: '1'
+ Gtp2ApnNumSpecifiedApns_0: '0'
+ Gtp2ApnNumSpecifiedApns_1: '0'
+ Gtp2ApnRestriction: '0'
+ Gtp2ApnRetries_0: '0'
+ Gtp2ApnRetries_1: '0'
+ Gtp2ApnSelectMode: '0'
+ Gtp2ApnSpecified_0:
+ array: []
+ class: Array
+ Gtp2ApnSpecified_1:
+ array: []
+ class: Array
+ Gtp2ApnTotalApns_0: '1'
+ Gtp2ApnTotalApns_1: '1'
+ Gtp2Apn_0: ssenoauth146
+ Gtp2Apn_1: ssenoauth146
+ Gtp2BearerContinuousMod: 'false'
+ Gtp2BearerDelayTime: '10'
+ Gtp2BearerModEn: 'true'
+ Gtp2BearerModInit: UE
+ Gtp2CfgFileEn: 'false'
+ Gtp2ChargingChars: '0x0'
+ Gtp2DelayDlPacketNotifReq: '1'
+ Gtp2Ecgi: '0'
+ Gtp2EcgiSize: '28'
+ Gtp2EchoTimeSec: '0'
+ Gtp2EnbUliEn: 'false'
+ Gtp2ExtEn: 'false'
+ Gtp2FwdUplinkDataEcmIdle: 'false'
+ Gtp2GtpcTunnelEndptId: '1000000'
+ Gtp2GtpuIncludeSeqEn: 'true'
+ Gtp2GtpuTunnelEndptId: '2000000'
+ Gtp2IdleEntryTime: '0'
+ Gtp2IgnoreRestartCtrEn: 'false'
+ Gtp2Imei: '50502410121507'
+ Gtp2Imsi: '505024101215074'
+ Gtp2IncCgiEn: 'false'
+ Gtp2IncEcgiEn: 'true'
+ Gtp2IncModQos_2: 'true'
+ Gtp2IncPcoOpt: none
+ Gtp2IncRaiEn: 'false'
+ Gtp2IncSaiEn: 'false'
+ Gtp2IncTaiEn: 'true'
+ Gtp2MacroEnbEn: 'false'
+ Gtp2MaxWaitTimeEn: 'false'
+ Gtp2Mcc: '000'
+ Gtp2Mnc: '000'
+ Gtp2ModBearerDlDataDelay: '0'
+ Gtp2MsIsdnEn: 'false'
+ Gtp2N3Attempts: '5'
+ Gtp2PagingTimeMs: '0'
+ Gtp2PcoAddEn: 'false'
+ Gtp2PcoIpcpEn: 'false'
+ Gtp2QosArpPreemptCapEn_1: 'false'
+ Gtp2QosArpPreemptCapEn_2: 'false'
+ Gtp2QosArpPreemptCapEn_2_1: 'false'
+ Gtp2QosArpPreemptCapEn_2_2: 'false'
+ Gtp2QosArpPreemptVulnEn_1: 'false'
+ Gtp2QosArpPreemptVulnEn_2: 'false'
+ Gtp2QosArpPreemptVulnEn_2_1: 'false'
+ Gtp2QosArpPreemptVulnEn_2_2: 'false'
+ Gtp2QosArpValue_1: '1'
+ Gtp2QosArpValue_2: '1'
+ Gtp2QosArpValue_2_1: '1'
+ Gtp2QosArpValue_2_2: '1'
+ Gtp2QosClassId_1: '1'
+ Gtp2QosClassId_2: '1'
+ Gtp2QosClassId_2_1: '1'
+ Gtp2QosClassId_2_2: '5'
+ Gtp2QosDetail: Individual
+ Gtp2QosDetail_2: Individual
+ Gtp2QosGuarDownlink_1: '150'
+ Gtp2QosGuarDownlink_2: '1000'
+ Gtp2QosGuarDownlink_2_1: '150'
+ Gtp2QosGuarUplink_1: '150'
+ Gtp2QosGuarUplink_2: '1000'
+ Gtp2QosGuarUplink_2_1: '150'
+ Gtp2QosMaxDownlink_1: '200'
+ Gtp2QosMaxDownlink_2: '2000'
+ Gtp2QosMaxDownlink_2_1: '250'
+ Gtp2QosMaxUplink_1: '200'
+ Gtp2QosMaxUplink_2: '2000'
+ Gtp2QosMaxUplink_2_1: '250'
+ Gtp2RadioAccessType: '6'
+ Gtp2RejectDedEn: 'false'
+ Gtp2RemoteUeReportTime: '0'
+ Gtp2RestartCnt: '1'
+ Gtp2SupportMabrEn: 'false'
+ Gtp2SwVersionEn: 'false'
+ Gtp2T3Time: '20'
+ Gtp2Tac: '0'
+ Gtp2UeDaySaveTime: '0'
+ Gtp2UeMultPdnConnReqSameApnEn_0: 'false'
+ Gtp2UeTimeZone: '0'
+ Gtp2UliDbCmdCbRspEn: 'true'
+ Gtp2Version: 15.2.0
+ HomeAddrType: '1'
+ HomeAddrTypePerBearerEn: 'false'
+ HssIfEn: 'false'
+ MmeControlAddr:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: MME_CONTROL_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: MME_CONTROL_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ MmeControlAddrErrInj: '0'
+ MultipathTcpEn: 'false'
+ NetworkHost: Local
+ NetworkHostAddrLocal:
+ class: TestNode
+ ethStatsEnabled: 'false'
+ forcedEthInterface: ''
+ innerVlanId: 0
+ ip: NET_HOST_IP
+ mac: ''
+ mtu: 1500
+ nextHop: ''
+ numLinksOrNodes: 1
+ numVlan: 1
+ phy: NET_HOST_PHY
+ uniqueVlanAddr: 'false'
+ vlanDynamic: 0
+ vlanId: 0
+ vlanTagType: 0
+ vlanUserPriority: 0
+ NetworkHostAddrLocalErrInj: '0'
+ NetworkHostNatedTrafficEn: 'false'
+ PgwNodeEn: 'false'
+ PgwUserSutEn: 'false'
+ PgwV4Sut:
+ class: Sut
+ name: PGW_SUT_NAME
+ QciToDscpMarkingsEn: 'false'
+ S5Protocol: GTPv2
+ SecPgwV4SutEn: 'false'
+ SessionIntervalShape: Fixed
+ SessionRetries: 'true'
+ Sessions: '1'
+ SgwNumSutsEn: 'false'
+ SgwSut:
+ class: Sut
+ name: SGW_CONTROL_NAME
+ SgwUserSut:
+ class: Sut
+ name: SGW_USER_NAME
+ StartRate: '1000.0'
+ T3324PwrSavingValueEn: 'false'
+ T3412ExValueEn: 'false'
+ TestActivity: Capacity Test
+ TestType: SGW-NODAL
+ TrafficAutoStartingDestPort: 'false'
+ TrafficAutoStartingDestPort_2: 'false'
+ TrafficDontFragIp: '0'
+ TrafficErrorInject: '0'
+ TrafficHostIdleTimeEnabler: 'false'
+ TrafficMtu: '1400'
+ TrafficNumTftsForContext0: '0'
+ TrafficNumTftsForContext0_2: '0'
+ TrafficOpCodeForContext0_2: '0'
+ TrafficStartDelay: '1000'
+ TrafficStartType: When All Sessions Established
+ UeDhcpV4En: 'false'
+ UeInitBearerEn: 'true'
+ UseStaticBearerIp: 'false'
+ type: SGW_Nodal
+ tsId: SGW_NODAL_TS_NAME
diff --git a/samples/vnf_samples/traffic_profiles/pktgen_throughput.yaml b/samples/vnf_samples/traffic_profiles/pktgen_throughput.yaml
new file mode 100644
index 000000000..e222e1d8c
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/pktgen_throughput.yaml
@@ -0,0 +1,21 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+schema: "nsb:traffic_profile:0.1"
+
+name: pktgen
+description: Traffic profile to run throughput tests
+traffic_profile:
+ traffic_type: PktgenTrafficProfile
+ duration: 15
diff --git a/samples/vnf_samples/traffic_profiles/prox_binsearch.yaml b/samples/vnf_samples/traffic_profiles/prox_binsearch.yaml
index 805250ee3..e1a4f59de 100644
--- a/samples/vnf_samples/traffic_profiles/prox_binsearch.yaml
+++ b/samples/vnf_samples/traffic_profiles/prox_binsearch.yaml
@@ -21,9 +21,9 @@ traffic_profile:
traffic_type: ProxBinSearchProfile
tolerated_loss: 0.001
test_precision: 0.1
-# packet_sizes: [64, 128, 256, 512, 1024, 1280, 1518]
- packet_sizes: [64]
- duration: 10
+ packet_sizes: [64, 128, 256, 512, 1024, 1280, 1518]
+ # packet_sizes: [64]
+ duration: 30
lower_bound: 0.0
upper_bound: 100.0
diff --git a/samples/vnf_samples/traffic_profiles/prox_bng.yaml b/samples/vnf_samples/traffic_profiles/prox_bng.yaml
index 59d10f0b3..6705fb1f7 100644
--- a/samples/vnf_samples/traffic_profiles/prox_bng.yaml
+++ b/samples/vnf_samples/traffic_profiles/prox_bng.yaml
@@ -19,7 +19,7 @@ description: Prox BNG traffic profile
traffic_profile:
traffic_type: ProxBinSearchProfile
- tolerated_loss: 100.0 #0.001
+ tolerated_loss: 5
test_precision: 0.01
# The minimum size of the Ethernet frame for the BNG test is 78 bytes.
packet_sizes: [78]
diff --git a/samples/vnf_samples/traffic_profiles/prox_irq.yaml b/samples/vnf_samples/traffic_profiles/prox_irq.yaml
new file mode 100644
index 000000000..32e27e186
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/prox_irq.yaml
@@ -0,0 +1,22 @@
+# Copyright (c) 2016-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+schema: "nsb:traffic_profile:0.1"
+
+name: prox_irq
+description: Query IRQ Interval
+
+traffic_profile:
+ traffic_type: ProxIrqProfile
+
diff --git a/samples/vnf_samples/traffic_profiles/prox_vpe.yaml b/samples/vnf_samples/traffic_profiles/prox_vpe.yaml
index 7aab8dd3b..c9aec0e44 100644
--- a/samples/vnf_samples/traffic_profiles/prox_vpe.yaml
+++ b/samples/vnf_samples/traffic_profiles/prox_vpe.yaml
@@ -19,11 +19,11 @@ description: Prox vPE traffic profile
traffic_profile:
traffic_type: ProxBinSearchProfile
- tolerated_loss: 100.0 #0.001
- test_precision: 0.01
+ tolerated_loss: 0.001 #0.001
+ test_precision: 0.1
# The minimum size of the Ethernet frame for the vPE test is 68 bytes.
packet_sizes: [68]
- duration: 5
+ duration: 60
lower_bound: 0.0
upper_bound: 100.0
diff --git a/samples/vnf_samples/traffic_profiles/sip.yaml b/samples/vnf_samples/traffic_profiles/sip.yaml
new file mode 100644
index 000000000..492597357
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/sip.yaml
@@ -0,0 +1,25 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+schema: "nsb:traffic_profile:0.1"
+
+# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
+
+name: sip
+description: Traffic profile to run sip
+traffic_profile:
+ traffic_type : SipProfile # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate : 100 # pc of linerate
+ duration: {{ duration }}
+ enable_latency: False
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-64K.rxf b/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-64K.rxf
deleted file mode 100644
index 3600855bf..000000000
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports-CC-64K.rxf
+++ /dev/null
@@ -1,1284 +0,0 @@
-<?xml version="1.0" ?>
-<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
- <_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;04a56313-c07c-4fae-acc5-e29a816e1311&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c284265e-5fc6-4a6a-ad6e-a8c3f465d00b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
- </_smSessionXml>
- <_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
- <xml type="str"></xml>
- </_composerConfig>
- <_quickTestConfig ver="[0, [1, [0, [0]]]]" type="ixQuickTestConfig">
- <xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
- </_quickTestConfig>
- <lastApiUniqueId type="int">15481</lastApiUniqueId>
- <version type="str">8.20.0.273</version>
- <name type="str">HTTP-vFW_IPv4_2Ports-CC-64K.rxf</name>
- <comment type="str"></comment>
- <path type="str">F:\IXIA-TESTS</path>
- <last type="str">HTTP-vFW_IPv4_2Ports-CC-4K.rxf</last>
- <activeTest type="str">Test1</activeTest>
- <chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
- <chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
- <_apiUniqueId type="int">12991</_apiUniqueId>
- <chassisMap type="dict"/>
- <hiddenChassis type="NoneType">None</hiddenChassis>
- </chassisChain>
- <AfmPortPacketRewriteConfigList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAfmPortPacketRewriteConfigList" itemtype="ixAfmPortPacketRewriteConfig"/>
- <networkList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixRepositoryNetworkList" itemtype="ixNullNetwork"/>
- <dutList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixDutList" itemtype="ixDut"/>
- <trafficList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTrafficList" itemtype="ixActivityModel"/>
- <testList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTestList" itemtype="ixTestEnvelope">
- <item ver="[18, [1, [0, [0]]]]" type="ixTestEnvelope">
- <name type="str">Test1</name>
- <comment type="str"></comment>
- <enableForceOwnership type="bool">False</enableForceOwnership>
- <enableResetPorts type="bool">False</enableResetPorts>
- <statsRequired type="int">1</statsRequired>
- <enableConditionalView type="bool">False</enableConditionalView>
- <conditionalViewType type="int">0</conditionalViewType>
- <conditionalViewList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixConditionalViewList" itemtype="ixConditionalView"/>
- <enableReleaseConfigAfterRun type="int">0</enableReleaseConfigAfterRun>
- <csvInterval type="int">4</csvInterval>
- <networkFailureThreshold type="int">0</networkFailureThreshold>
- <captureViewOptions ver="[1, [1, [0, [0]]]]" oid="8" type="ixViewOptions">
- <runMode type="int">1</runMode>
- <collectScheme type="int">0</collectScheme>
- <allocatedBufferMemoryPercentage type="long">30</allocatedBufferMemoryPercentage>
- <captureRunAfter type="int">0</captureRunAfter>
- <captureRunDuration type="int">0</captureRunDuration>
- <_apiUniqueId type="int">12941</_apiUniqueId>
- </captureViewOptions>
- <scenarioList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioList" itemtype="ixScenario">
- <item ver="[3, [1, [0, [0]]]]" type="ixScenario">
- <name type="str">TrafficFlow1</name>
- <columnList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixTrafficColumnList" itemtype="ixTrafficColumn">
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Client</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP client</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="14" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">newClientActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">12943</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">HTTP server_newServerActivity1</name>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="0"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP server</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="6" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">newServerActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="bool">False</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12972</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="str">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12973</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12987</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12988</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="1" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">12984</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12974</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12975</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12976</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12977</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">12978</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">12979</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">12980</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">12981</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">12982</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">12983</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12985</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12986</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">2</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12971</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" oid="9" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
- <_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (152.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="3"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">b2c21c73-bfe3-4fbc-9804-b5a8b307d893</_rangeGroupObjectId>
- <_smPluginObjectId type="str">b85b184d-9bb4-48c2-a029-e633fee7a3c8</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="4"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="5" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="5"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">c4ecfc60-64ac-4dc2-9410-e0f58d84f229</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="6"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">newServerActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[0, [2, [2, [1, [1, [0, [0]]]]]]]" oid="7" type="ixMatchLongestTimeline"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12989</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ref="9"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12970</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="10" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12956</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="3"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="3"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="6"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="6"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12955</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="10"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">newServerActivity1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">1</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">1</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">1</httpVersion>
- <keepAlive type="bool">False</keepAlive>
- <maxPersistentRequests type="int">0</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">:80</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">:443</httpsProxy>
- <browserEmulation type="int">1</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="bool">False</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12948</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12945</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12949</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">HTTP server_newServerActivity1:80</destination>
- <pageObject type="str">/64k.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="bool">False</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12946</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12947</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12950</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12951</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12952</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12953</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">1</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12942</_apiUniqueId>
- <uniqueID type="int">1</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
- <_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (152.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="11"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">aa33a76b-9c7f-48d9-a537-8d6eeec03662</_rangeGroupObjectId>
- <_smPluginObjectId type="str">a916ae0f-0731-405d-ad19-eaade6c515f1</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="12"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="13" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="13"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">865be042-32d5-426a-9e75-0908c943801f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="14"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">newClientActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="15" type="ixTimeline">
- <name type="str">Timeline1</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">30000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">32000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">0</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12954</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="15"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12940</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="16" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12926</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="11"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="11"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="14"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="14"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">30000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12925</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="16"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- </elementList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12922</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">DUT</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12923</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Server</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ref="17"/>
- </elementList>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12924</_apiUniqueId>
- </item>
- </columnList>
- <links ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityLinkList" itemtype="ixActivityLink"/>
- <appMixList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixAppMixList" itemtype="ixAppMix"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12921</_apiUniqueId>
- </item>
- </scenarioList>
- <currentUniqueIDForAgent type="int">2</currentUniqueIDForAgent>
- <enableNetworkDiagnostics type="bool">True</enableNetworkDiagnostics>
- <showNetworkDiagnosticsFromApplyConfig type="bool">False</showNetworkDiagnosticsFromApplyConfig>
- <showNetworkDiagnosticsAfterRunStops type="bool">False</showNetworkDiagnosticsAfterRunStops>
- <resetNetworkDiagnosticsAtStartRun type="bool">False</resetNetworkDiagnosticsAtStartRun>
- <enableNetworkDiagnosticsLogging type="bool">False</enableNetworkDiagnosticsLogging>
- <enableTcpAdvancedStats type="bool">False</enableTcpAdvancedStats>
- <enableFrameSizeDistributionStats type="bool">False</enableFrameSizeDistributionStats>
- <isFrameSizeDistributionViewSupported type="bool">False</isFrameSizeDistributionViewSupported>
- <statViewThroughputUnits type="str">Kbps</statViewThroughputUnits>
- <totalUserObjectiveInfoList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixTotalUserObjectiveInfoList" itemtype="ixTotalUserObjectiveInfo"/>
- <activitiesGroupedByObjective type="bool">False</activitiesGroupedByObjective>
- <eventHandlerSettings ver="[0, [1, [0, [0]]]]" type="ixEventHandlerSettings">
- <disabledEventClasses type="str"></disabledEventClasses>
- <disabledPorts type="str"></disabledPorts>
- <_apiUniqueId type="int">12990</_apiUniqueId>
- </eventHandlerSettings>
- <allowMixedObjectiveTypes type="bool">False</allowMixedObjectiveTypes>
- <networkProtocolOptions type="NoneType">None</networkProtocolOptions>
- <seedForRandomBehavior type="int">0</seedForRandomBehavior>
- <csvThroughputScalingFactor type="int">0</csvThroughputScalingFactor>
- <reporterThroughputScalingFactor type="int">0</reporterThroughputScalingFactor>
- <profileDirectory ver="[2, [1, [0, [0]]]]" type="ixProfileDirectory">
- <categoryList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileCategoryList" itemtype="ixProfileCategory">
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Playlist</name>
- <categoryId type="str">playlist</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.Playlist.ixPropertyMap_PlaylistCategory$ixPropertyMap_PlaylistCategory"/>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Random Data</name>
- <categoryId type="str">rdge</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.RandomData.ixPropertyMap_RandomDataCategory$ixPropertyMap_RandomDataCategory">
- <startcore type="int">0</startcore>
- <totalcores type="int">1</totalcores>
- </pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">1</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Real File</name>
- <categoryId type="str">realfile</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">2</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Unified File System</name>
- <categoryId type="str">ufs</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">3</objectID>
- </item>
- </categoryList>
- <_profileMru type="str"></_profileMru>
- </profileDirectory>
- <communityList type="NoneType">None</communityList>
- <autoUpdateAppFlowsToLatest type="bool">True</autoUpdateAppFlowsToLatest>
- <downgradeAppLibFlowsToLatestValidVersion type="bool">True</downgradeAppLibFlowsToLatestValidVersion>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12920</_apiUniqueId>
- <lastStatViewerConfiguration type="str"></lastStatViewerConfiguration>
- <statManagerOptions ver="[1, [1, [0, [0]]]]" type="ixStatManagerOptions">
- <pollingInterval type="int">2</pollingInterval>
- <allowCsvLogging type="bool">False</allowCsvLogging>
- <enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;EOXC@8_BL1*U6[TN9P(-!2VA'EF$9# 1'FD+:KRB2&amp;&gt;B&lt;DC.UPS&amp;K_&#10;M^]K.00@)K78_M''\/.]AY[']FLZ'_=I7MHA0' 9W-: 9M0_W'8=!]@6C'2)'&#10;MJ*DU#&lt;W0S%:SQ@F(BMX1IDSYA YW-;AA&gt;(^A1K?:1EA0A@(7:3G&gt;5P(W'.+&amp;&#10;MO&lt;EX/AC/%?V^,YT-'-[LSNW)N/C^,NC;\^[#:&quot;&quot; WN3IP1X/^EEHFK7&gt;D\!9&#10;M\/O.D* ?$&gt;&lt;&lt;E&quot;WT(W17,VLR$-V.PM4*!ZNT?PA]BB0VQVOD' +W ;W&quot;+0Y)&#10;MRC RE#*XWDP)&lt;K',+,'K$A^L&quot;$]&amp;3.O\L$$I!B0VX=/LA]&quot;;DI AE^5LYR1&quot;&#10;MA&lt;0&gt;L&gt;&gt;A0#BBYSD. KCP41\RZ+&quot;0H'/&quot;]#@[^3P:9=87(_&amp;$)A';1&quot;R;R:?(&#10;M9WCC%\&lt;F27WG#=H3W O949Y?+Z(L7'_DW^PUXS33F$/LHRED&amp;2+[NSXBC*9/&#10;MA6LZH.T]Q7&gt;U5\8V;5W?[7;:KJZ%9*6;A@'T;T\CQWU%:ZCB@'\T/AFUS,I[&#10;MVTH&amp;U=.H?;2$?$QRGD[?).T4[I$P40%!B*.%]QGT&lt;/B1A-&amp;F .&quot; W9L=73PZ&#10;M&gt;B6KYV,4L&amp;%(UI$/'&lt;08UTOV[?Z^^F7?O^7_NK=7/Z*0W7Z)%W?\THX?0+/B&#10;MQN]G;#&amp; A/O'$?SSV/SGV(R7!%\0LR@HYG'EL]N3?2&gt;-;,0-A:LD]+A% D1L&#10;MJ8)FW/YPM6*WN&lt;RXJR2*'2Q#!Q$,??P3BB7T %&lt;Y)&lt;3F[Y9#DLE1$^^SCUFG&#10;M.2J*R'+]PI+9X&quot;K'+E_I&amp;UKDQ4PQGC%&lt;(X&amp;*-A&quot;=&gt;KZWW*8'&amp;5J%Y&quot; 88@GK&#10;MC_/Y-+/-H^?VO&gt;4J75B&quot;,&amp;P_V]_LKCH?.'/G6?A1M\.O+_9TVW@QIR%7O=KK&#10;MJ&gt;!!(_NEC%&quot;P+T\0D70 'CT.ZMA[;M6/Y)@5O1)^W&quot;4BOL!QWN*(-&quot;:+O\3.&#10;MNT7T$NL1KUY]_L&lt;J6=G^RFR^=S*\Q(@(INNYUF+A&gt;JJ%W(7: #&lt;+=6$&quot;I()6&#10;MRS&quot;0Z0&amp;S;LDYJ7)P'HJ+*:\3_@J U91.&lt;M&quot;YW6&gt;*B&amp;/W!&gt;BH0+54$Z@MTZHW&#10;M+*M15YN&amp;&quot;9H\F6O5,EMFO64V#+5N-&amp;]NFBWI.F==FA+7-V'(FP2&quot;81J@I0*@&#10;M&amp;JTYJ+&gt;M1AM86M,TK&amp;M@JL9UVS#2;$^L*OR&amp;_ SG#(4OYW: _61),GY&quot;)JNU&#10;MXI/$F^(3=%]Q@-)IZ8^=CZH0&gt;:S?,LH;GKJ&gt;)TYTP03-&amp;\VT&amp;II9-S1@WAP-&#10;MVVUPNEGI52[.@]G[,6*[D'Q/MVG.NM;,N JK2V=EE N.9LA'D,JQV?L1KS&gt;4&#10;M:PT8RJ![ZBQ'N^ L7&gt;N]]C/?S%8$KA6Q!5#EU_UU\[=GFU=CSW&amp;49Y&amp;U6HQ2&#10;MO5?8^QG:\$T&amp;D=RPZEI+C!RT$B\EE/(E^_G)&lt;:$O1P.,1'&quot;%_G-#9YN#/RWX&#10;M5BW,3GI+12HKDS,92N/W' &quot;Y@P)17C/0R4:&lt;9!4&quot;Z86^S_&lt;L4&lt;9)12,&amp;^0?P&#10;M8IF=8I7&amp;(P1)@#QQ&gt; K&gt;4I1W&gt;0&lt;%O-+/T ]WLB&quot;AI6Y.X4HO?.\33%D(&quot;J)&lt;&#10;MVSDW1?R2HZ3TO^2K2*EVQ^ORT U].^&quot;*6T(7E7LL954ZG8410S,8K,J]%&gt; R&#10;M-^N-V#WFF5R*4U^&amp;5^GRHMYB77J'0*B6W[=*3K\3RA=1Z)V1LJ574:T)=EQ9&#10;M9[&gt;T_W!!S IO&lt;4$)_(-\!Z)CA(/OR#L6YD&lt;;/5'&quot;L45+&lt;7&amp;1O&gt;]((2L!/R7N&#10;M:M);+7&gt;#KIWB\5VFIH3$0T3&gt;=:#+A4%':(O\]-*I2PM^HPW6F\O764Y(Z@-Y&#10;M9\G=9P74&quot;X,E7D4$YF^08M8I!UT.RN^1O&amp;\AB7.,#T]AGQRC4-9!Y\&gt;KAZA+&#10;ML%1( N;*7&gt;Z5'VD^/\_2,DM\[210/JZ'MF\8Y!AZ/O/_JPUI+L8I'ME/'/?_&#10;% D1BE1\ &#10; &#10;end&#10;</svConfiguration>
- <svRestConfiguration type="str">(dp1&#10;S'HTTP Server Per URL'&#10;p2&#10;ccopy_reg&#10;_reconstructor&#10;p3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStatsList&#10;p4&#10;c__builtin__&#10;list&#10;p5&#10;(lp6&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStat&#10;p7&#10;c__builtin__&#10;object&#10;p8&#10;NtRp9&#10;(dp10&#10;S'proxyPropertyList'&#10;p11&#10;NsS'_objectID'&#10;p12&#10;I0&#10;sS'enabled'&#10;p13&#10;I01&#10;sS'filterList'&#10;p14&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixRestFilters&#10;p15&#10;g8&#10;NtRp16&#10;(dp17&#10;S'cardFilters'&#10;p18&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixCardFilterList&#10;p19&#10;g5&#10;(ltRp20&#10;(dp21&#10;g12&#10;I-1&#10;sS'_resourceLocked'&#10;p22&#10;I00&#10;sg11&#10;NsbsS'activityFilters'&#10;p23&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixActivityFilterList&#10;p24&#10;g5&#10;(ltRp25&#10;(dp26&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sS'chassisFilters'&#10;p27&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixChassisFilterList&#10;p28&#10;g5&#10;(ltRp29&#10;(dp30&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sS'portFilters'&#10;p31&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixPortFilterList&#10;p32&#10;g5&#10;(ltRp33&#10;(dp34&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;NsbsbsS'caption'&#10;p35&#10;S'HTTP Requests Received'&#10;p36&#10;sg22&#10;I00&#10;sS'aggregationType'&#10;p37&#10;S'kSum'&#10;p38&#10;sS'statName'&#10;p39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp40&#10;(dp41&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp42&#10;(dp43&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp44&#10;(dp45&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp46&#10;(dp47&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp48&#10;(dp49&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp50&#10;(dp51&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp53&#10;(dp54&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp55&#10;(dp56&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp57&#10;(dp58&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp59&#10;(dp60&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp61&#10;(dp62&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp63&#10;(dp64&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp66&#10;(dp67&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp68&#10;(dp69&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp70&#10;(dp71&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp72&#10;(dp73&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp74&#10;(dp75&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp76&#10;(dp77&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (50x)'&#10;p78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp79&#10;(dp80&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp81&#10;(dp82&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp83&#10;(dp84&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp85&#10;(dp86&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp87&#10;(dp88&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp89&#10;(dp90&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write Error)'&#10;p91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp92&#10;(dp93&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp94&#10;(dp95&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp96&#10;(dp97&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp98&#10;(dp99&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp100&#10;(dp101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp102&#10;(dp103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent'&#10;p104&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g104&#10;sbag3&#10;(g7&#10;g8&#10;NtRp105&#10;(dp106&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp107&#10;(dp108&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp109&#10;(dp110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp111&#10;(dp112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp113&#10;(dp114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp115&#10;(dp116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (1xx)'&#10;p117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp118&#10;(dp119&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp120&#10;(dp121&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp122&#10;(dp123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp124&#10;(dp125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp126&#10;(dp127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp128&#10;(dp129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (2xx)'&#10;p130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp131&#10;(dp132&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp133&#10;(dp134&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp135&#10;(dp136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp137&#10;(dp138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp139&#10;(dp140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp141&#10;(dp142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (3xx)'&#10;p143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp144&#10;(dp145&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp146&#10;(dp147&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp148&#10;(dp149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp150&#10;(dp151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp152&#10;(dp153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp154&#10;(dp155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (4xx)'&#10;p156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp157&#10;(dp158&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp159&#10;(dp160&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp161&#10;(dp162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp163&#10;(dp164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp165&#10;(dp166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp167&#10;(dp168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (5xx)'&#10;p169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp170&#10;(dp171&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp172&#10;(dp173&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp174&#10;(dp175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp176&#10;(dp177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp178&#10;(dp179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp180&#10;(dp181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (Other)'&#10;p182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp183&#10;(dp184&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp185&#10;(dp186&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp187&#10;(dp188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp189&#10;(dp190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp191&#10;(dp192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp193&#10;(dp194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Write Error)'&#10;p195&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g195&#10;sbag3&#10;(g7&#10;g8&#10;NtRp196&#10;(dp197&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp198&#10;(dp199&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp200&#10;(dp201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp202&#10;(dp203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp204&#10;(dp205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp206&#10;(dp207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Aborted)'&#10;p208&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g208&#10;sbag3&#10;(g7&#10;g8&#10;NtRp209&#10;(dp210&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp211&#10;(dp212&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp213&#10;(dp214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp215&#10;(dp216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp217&#10;(dp218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp219&#10;(dp220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Other)'&#10;p221&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g221&#10;sbag3&#10;(g7&#10;g8&#10;NtRp222&#10;(dp223&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp224&#10;(dp225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp226&#10;(dp227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp228&#10;(dp229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp230&#10;(dp231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp232&#10;(dp233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Sent'&#10;p234&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g234&#10;sbag3&#10;(g7&#10;g8&#10;NtRp235&#10;(dp236&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp237&#10;(dp238&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp239&#10;(dp240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp241&#10;(dp242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp243&#10;(dp244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp245&#10;(dp246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp248&#10;(dp249&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp250&#10;(dp251&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp252&#10;(dp253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp254&#10;(dp255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp256&#10;(dp257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp258&#10;(dp259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p260&#10;sg22&#10;I00&#10;sg37&#10;S'kWeightedAverage'&#10;p261&#10;sg39&#10;g260&#10;sbag3&#10;(g7&#10;g8&#10;NtRp262&#10;(dp263&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp264&#10;(dp265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp266&#10;(dp267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp268&#10;(dp269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp270&#10;(dp271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp272&#10;(dp273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p274&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp275&#10;(dp276&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp277&#10;(dp278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp279&#10;(dp280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp281&#10;(dp282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp283&#10;(dp284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp285&#10;(dp286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Received'&#10;p287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp288&#10;(dp289&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp290&#10;(dp291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp292&#10;(dp293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp294&#10;(dp295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp296&#10;(dp297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp298&#10;(dp299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp301&#10;(dp302&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp303&#10;(dp304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp305&#10;(dp306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp307&#10;(dp308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp309&#10;(dp310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp311&#10;(dp312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Received Chunk Size'&#10;p313&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp314&#10;(dp315&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp316&#10;(dp317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp318&#10;(dp319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp320&#10;(dp321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp322&#10;(dp323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp324&#10;(dp325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p326&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp327&#10;(dp328&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp329&#10;(dp330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp331&#10;(dp332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp333&#10;(dp334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp335&#10;(dp336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp337&#10;(dp338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Received'&#10;p339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp340&#10;(dp341&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp342&#10;(dp343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp344&#10;(dp345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp346&#10;(dp347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp348&#10;(dp349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp350&#10;(dp351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Successful'&#10;p352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp353&#10;(dp354&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp355&#10;(dp356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp357&#10;(dp358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp359&#10;(dp360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp361&#10;(dp362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp363&#10;(dp364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Failed'&#10;p365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp366&#10;(dp367&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp368&#10;(dp369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp370&#10;(dp371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp372&#10;(dp373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp374&#10;(dp375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp376&#10;(dp377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Request Received'&#10;p378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp379&#10;(dp380&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp381&#10;(dp382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp383&#10;(dp384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp385&#10;(dp386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp387&#10;(dp388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp389&#10;(dp390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Response Sent'&#10;p391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbatRp392&#10;(dp393&#10;g12&#10;I27&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Server'&#10;p394&#10;g3&#10;(g4&#10;g5&#10;(lp395&#10;g3&#10;(g7&#10;g8&#10;NtRp396&#10;(dp397&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp398&#10;(dp399&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp400&#10;(dp401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp402&#10;(dp403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp404&#10;(dp405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp406&#10;(dp407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g36&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp408&#10;(dp409&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp410&#10;(dp411&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp412&#10;(dp413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp414&#10;(dp415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp416&#10;(dp417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp418&#10;(dp419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp420&#10;(dp421&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp422&#10;(dp423&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp424&#10;(dp425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp426&#10;(dp427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp428&#10;(dp429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp430&#10;(dp431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p432&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g432&#10;sbag3&#10;(g7&#10;g8&#10;NtRp433&#10;(dp434&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp435&#10;(dp436&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp437&#10;(dp438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp439&#10;(dp440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp441&#10;(dp442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp443&#10;(dp444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp445&#10;(dp446&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp447&#10;(dp448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp449&#10;(dp450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp451&#10;(dp452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp453&#10;(dp454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp455&#10;(dp456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp457&#10;(dp458&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp459&#10;(dp460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp461&#10;(dp462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp463&#10;(dp464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp465&#10;(dp466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp467&#10;(dp468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp469&#10;(dp470&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp471&#10;(dp472&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp473&#10;(dp474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp475&#10;(dp476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp477&#10;(dp478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp479&#10;(dp480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p481&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g481&#10;sbag3&#10;(g7&#10;g8&#10;NtRp482&#10;(dp483&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp484&#10;(dp485&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp486&#10;(dp487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp488&#10;(dp489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp490&#10;(dp491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp492&#10;(dp493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p494&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g494&#10;sbag3&#10;(g7&#10;g8&#10;NtRp495&#10;(dp496&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp497&#10;(dp498&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp499&#10;(dp500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp501&#10;(dp502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp503&#10;(dp504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp505&#10;(dp506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p507&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g507&#10;sbag3&#10;(g7&#10;g8&#10;NtRp508&#10;(dp509&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp510&#10;(dp511&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp512&#10;(dp513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp514&#10;(dp515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp516&#10;(dp517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp518&#10;(dp519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp520&#10;(dp521&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp522&#10;(dp523&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp524&#10;(dp525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp526&#10;(dp527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp528&#10;(dp529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp530&#10;(dp531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp532&#10;(dp533&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp534&#10;(dp535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp536&#10;(dp537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp538&#10;(dp539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp540&#10;(dp541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp542&#10;(dp543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp544&#10;(dp545&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp546&#10;(dp547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp548&#10;(dp549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp550&#10;(dp551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp552&#10;(dp553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp554&#10;(dp555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp556&#10;(dp557&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp558&#10;(dp559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp560&#10;(dp561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp562&#10;(dp563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp564&#10;(dp565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp566&#10;(dp567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp568&#10;(dp569&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp570&#10;(dp571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp572&#10;(dp573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp574&#10;(dp575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp576&#10;(dp577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp578&#10;(dp579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp580&#10;(dp581&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp582&#10;(dp583&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp584&#10;(dp585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp586&#10;(dp587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp588&#10;(dp589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp590&#10;(dp591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p592&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g592&#10;sbag3&#10;(g7&#10;g8&#10;NtRp593&#10;(dp594&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp595&#10;(dp596&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp597&#10;(dp598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp599&#10;(dp600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp601&#10;(dp602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp603&#10;(dp604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p605&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g605&#10;sbag3&#10;(g7&#10;g8&#10;NtRp606&#10;(dp607&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp608&#10;(dp609&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp610&#10;(dp611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp612&#10;(dp613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp614&#10;(dp615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp616&#10;(dp617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p618&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g618&#10;sbag3&#10;(g7&#10;g8&#10;NtRp619&#10;(dp620&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp621&#10;(dp622&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp623&#10;(dp624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp625&#10;(dp626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp627&#10;(dp628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp629&#10;(dp630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p631&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g631&#10;sbag3&#10;(g7&#10;g8&#10;NtRp632&#10;(dp633&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp634&#10;(dp635&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp636&#10;(dp637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp638&#10;(dp639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp640&#10;(dp641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp642&#10;(dp643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p644&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g644&#10;sbag3&#10;(g7&#10;g8&#10;NtRp645&#10;(dp646&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp647&#10;(dp648&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp649&#10;(dp650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp651&#10;(dp652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp653&#10;(dp654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp655&#10;(dp656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p657&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g657&#10;sbag3&#10;(g7&#10;g8&#10;NtRp658&#10;(dp659&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp660&#10;(dp661&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp662&#10;(dp663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp664&#10;(dp665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp666&#10;(dp667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp668&#10;(dp669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Matching ServerID'&#10;p670&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g670&#10;sbag3&#10;(g7&#10;g8&#10;NtRp671&#10;(dp672&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp673&#10;(dp674&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp675&#10;(dp676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp677&#10;(dp678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp679&#10;(dp680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp681&#10;(dp682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Non-matching ServerID'&#10;p683&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g683&#10;sbag3&#10;(g7&#10;g8&#10;NtRp684&#10;(dp685&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp686&#10;(dp687&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp688&#10;(dp689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp690&#10;(dp691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp692&#10;(dp693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp694&#10;(dp695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Encoded Responses Sent'&#10;p696&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g696&#10;sbag3&#10;(g7&#10;g8&#10;NtRp697&#10;(dp698&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp699&#10;(dp700&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp701&#10;(dp702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp703&#10;(dp704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp705&#10;(dp706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp707&#10;(dp708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp709&#10;(dp710&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp711&#10;(dp712&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp713&#10;(dp714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp715&#10;(dp716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp717&#10;(dp718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp719&#10;(dp720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Transfer-Encoded Requests Received'&#10;p721&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g721&#10;sbag3&#10;(g7&#10;g8&#10;NtRp722&#10;(dp723&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp724&#10;(dp725&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp726&#10;(dp727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp728&#10;(dp729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp730&#10;(dp731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp732&#10;(dp733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp734&#10;(dp735&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp736&#10;(dp737&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp738&#10;(dp739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp740&#10;(dp741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp742&#10;(dp743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp744&#10;(dp745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp746&#10;(dp747&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp748&#10;(dp749&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp750&#10;(dp751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp752&#10;(dp753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp754&#10;(dp755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp756&#10;(dp757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp758&#10;(dp759&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp760&#10;(dp761&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp762&#10;(dp763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp764&#10;(dp765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp766&#10;(dp767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp768&#10;(dp769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp770&#10;(dp771&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp772&#10;(dp773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp774&#10;(dp775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp776&#10;(dp777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp778&#10;(dp779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp780&#10;(dp781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp782&#10;(dp783&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp784&#10;(dp785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp786&#10;(dp787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp788&#10;(dp789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp790&#10;(dp791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp792&#10;(dp793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp794&#10;(dp795&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp796&#10;(dp797&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp798&#10;(dp799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp800&#10;(dp801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp802&#10;(dp803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp804&#10;(dp805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Sent'&#10;p806&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g806&#10;sbag3&#10;(g7&#10;g8&#10;NtRp807&#10;(dp808&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp809&#10;(dp810&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp811&#10;(dp812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp813&#10;(dp814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp815&#10;(dp816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp817&#10;(dp818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Sent'&#10;p819&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g819&#10;sbag3&#10;(g7&#10;g8&#10;NtRp820&#10;(dp821&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp822&#10;(dp823&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp824&#10;(dp825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp826&#10;(dp827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp828&#10;(dp829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp830&#10;(dp831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Sent'&#10;p832&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g832&#10;sbag3&#10;(g7&#10;g8&#10;NtRp833&#10;(dp834&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp835&#10;(dp836&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp837&#10;(dp838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp839&#10;(dp840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp841&#10;(dp842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp843&#10;(dp844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Sent'&#10;p845&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g845&#10;sbag3&#10;(g7&#10;g8&#10;NtRp846&#10;(dp847&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp848&#10;(dp849&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp850&#10;(dp851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp852&#10;(dp853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp854&#10;(dp855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp856&#10;(dp857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Sent'&#10;p858&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g858&#10;sbag3&#10;(g7&#10;g8&#10;NtRp859&#10;(dp860&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp861&#10;(dp862&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp863&#10;(dp864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp865&#10;(dp866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp867&#10;(dp868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp869&#10;(dp870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Sent'&#10;p871&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g871&#10;sbag3&#10;(g7&#10;g8&#10;NtRp872&#10;(dp873&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp874&#10;(dp875&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp876&#10;(dp877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp878&#10;(dp879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp880&#10;(dp881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp882&#10;(dp883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Sent'&#10;p884&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g884&#10;sbag3&#10;(g7&#10;g8&#10;NtRp885&#10;(dp886&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp887&#10;(dp888&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp889&#10;(dp890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp891&#10;(dp892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp893&#10;(dp894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp895&#10;(dp896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Sent'&#10;p897&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g897&#10;sbag3&#10;(g7&#10;g8&#10;NtRp898&#10;(dp899&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp900&#10;(dp901&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp902&#10;(dp903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp904&#10;(dp905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp906&#10;(dp907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp908&#10;(dp909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Sent'&#10;p910&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g910&#10;sbag3&#10;(g7&#10;g8&#10;NtRp911&#10;(dp912&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp913&#10;(dp914&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp915&#10;(dp916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp917&#10;(dp918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp919&#10;(dp920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp921&#10;(dp922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Sent'&#10;p923&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g923&#10;sbag3&#10;(g7&#10;g8&#10;NtRp924&#10;(dp925&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp926&#10;(dp927&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp928&#10;(dp929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp930&#10;(dp931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp932&#10;(dp933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp934&#10;(dp935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Received'&#10;p936&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g936&#10;sbag3&#10;(g7&#10;g8&#10;NtRp937&#10;(dp938&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp939&#10;(dp940&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp941&#10;(dp942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp943&#10;(dp944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp945&#10;(dp946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp947&#10;(dp948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Received'&#10;p949&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g949&#10;sbag3&#10;(g7&#10;g8&#10;NtRp950&#10;(dp951&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp952&#10;(dp953&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp954&#10;(dp955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp956&#10;(dp957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp958&#10;(dp959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp960&#10;(dp961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Received'&#10;p962&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g962&#10;sbag3&#10;(g7&#10;g8&#10;NtRp963&#10;(dp964&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp965&#10;(dp966&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp967&#10;(dp968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp969&#10;(dp970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp971&#10;(dp972&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp973&#10;(dp974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Received'&#10;p975&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g975&#10;sbag3&#10;(g7&#10;g8&#10;NtRp976&#10;(dp977&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp978&#10;(dp979&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp980&#10;(dp981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp982&#10;(dp983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp984&#10;(dp985&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp986&#10;(dp987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Received'&#10;p988&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g988&#10;sbag3&#10;(g7&#10;g8&#10;NtRp989&#10;(dp990&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp991&#10;(dp992&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp993&#10;(dp994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp995&#10;(dp996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp997&#10;(dp998&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp999&#10;(dp1000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Received'&#10;p1001&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1001&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1002&#10;(dp1003&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1004&#10;(dp1005&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1006&#10;(dp1007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1008&#10;(dp1009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1010&#10;(dp1011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1012&#10;(dp1013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Received'&#10;p1014&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1014&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1015&#10;(dp1016&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1017&#10;(dp1018&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1019&#10;(dp1020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1021&#10;(dp1022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1023&#10;(dp1024&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1025&#10;(dp1026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Received'&#10;p1027&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1027&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1028&#10;(dp1029&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1030&#10;(dp1031&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1032&#10;(dp1033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1034&#10;(dp1035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1036&#10;(dp1037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1038&#10;(dp1039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Received'&#10;p1040&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1040&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1041&#10;(dp1042&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1043&#10;(dp1044&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1045&#10;(dp1046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1047&#10;(dp1048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1049&#10;(dp1050&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1051&#10;(dp1052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Received'&#10;p1053&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1053&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1054&#10;(dp1055&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1056&#10;(dp1057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1058&#10;(dp1059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1060&#10;(dp1061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1062&#10;(dp1063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1064&#10;(dp1065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Client'&#10;p1066&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1066&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1067&#10;(dp1068&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1069&#10;(dp1070&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1071&#10;(dp1072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1073&#10;(dp1074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1075&#10;(dp1076&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1077&#10;(dp1078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Server'&#10;p1079&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1079&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1080&#10;(dp1081&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1082&#10;(dp1083&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1084&#10;(dp1085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1086&#10;(dp1087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1088&#10;(dp1089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1090&#10;(dp1091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Client to Server'&#10;p1092&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1092&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1093&#10;(dp1094&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1095&#10;(dp1096&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1097&#10;(dp1098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1099&#10;(dp1100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1101&#10;(dp1102&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1103&#10;(dp1104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Server to Client'&#10;p1105&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1105&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1106&#10;(dp1107&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1108&#10;(dp1109&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1110&#10;(dp1111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1112&#10;(dp1113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1114&#10;(dp1115&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1116&#10;(dp1117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Client to Server'&#10;p1118&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1118&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1119&#10;(dp1120&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1121&#10;(dp1122&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1123&#10;(dp1124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1125&#10;(dp1126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1127&#10;(dp1128&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1129&#10;(dp1130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Server to Client'&#10;p1131&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1131&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1132&#10;(dp1133&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1134&#10;(dp1135&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1136&#10;(dp1137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1138&#10;(dp1139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1140&#10;(dp1141&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1142&#10;(dp1143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Succeeded'&#10;p1144&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1144&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1145&#10;(dp1146&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1147&#10;(dp1148&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1149&#10;(dp1150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1151&#10;(dp1152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1153&#10;(dp1154&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1155&#10;(dp1156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Failed'&#10;p1157&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1157&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1158&#10;(dp1159&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1160&#10;(dp1161&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1162&#10;(dp1163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1164&#10;(dp1165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1166&#10;(dp1167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1168&#10;(dp1169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Protocol Error'&#10;p1170&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1170&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1171&#10;(dp1172&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1173&#10;(dp1174&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1175&#10;(dp1176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1177&#10;(dp1178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1179&#10;(dp1180&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1181&#10;(dp1182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Internal Error'&#10;p1183&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1183&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1184&#10;(dp1185&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1186&#10;(dp1187&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1188&#10;(dp1189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1190&#10;(dp1191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1192&#10;(dp1193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1194&#10;(dp1195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Flow Control Error'&#10;p1196&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1196&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1197&#10;(dp1198&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1199&#10;(dp1200&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1201&#10;(dp1202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1203&#10;(dp1204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1205&#10;(dp1206&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1207&#10;(dp1208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Settings Timeout Error'&#10;p1209&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1209&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1210&#10;(dp1211&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1212&#10;(dp1213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1214&#10;(dp1215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1216&#10;(dp1217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1218&#10;(dp1219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1220&#10;(dp1221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Closed Error'&#10;p1222&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1222&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1223&#10;(dp1224&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1225&#10;(dp1226&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1227&#10;(dp1228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1229&#10;(dp1230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1231&#10;(dp1232&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1233&#10;(dp1234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Frame Size Error'&#10;p1235&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1235&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1236&#10;(dp1237&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1238&#10;(dp1239&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1240&#10;(dp1241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1242&#10;(dp1243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1244&#10;(dp1245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1246&#10;(dp1247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Refused Stream Error'&#10;p1248&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1248&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1249&#10;(dp1250&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1251&#10;(dp1252&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1253&#10;(dp1254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1255&#10;(dp1256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1257&#10;(dp1258&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1259&#10;(dp1260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Cancelled Error'&#10;p1261&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1261&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1262&#10;(dp1263&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1264&#10;(dp1265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1266&#10;(dp1267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1268&#10;(dp1269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1270&#10;(dp1271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1272&#10;(dp1273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Compression Error'&#10;p1274&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1275&#10;(dp1276&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1277&#10;(dp1278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1279&#10;(dp1280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1281&#10;(dp1282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1283&#10;(dp1284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1285&#10;(dp1286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connect Error'&#10;p1287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1288&#10;(dp1289&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1290&#10;(dp1291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1292&#10;(dp1293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1294&#10;(dp1295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1296&#10;(dp1297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1298&#10;(dp1299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Enhance Calm Error'&#10;p1300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1301&#10;(dp1302&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1303&#10;(dp1304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1305&#10;(dp1306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1307&#10;(dp1308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1309&#10;(dp1310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1311&#10;(dp1312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Inadequate Security Error'&#10;p1313&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1314&#10;(dp1315&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1316&#10;(dp1317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1318&#10;(dp1319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1320&#10;(dp1321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1322&#10;(dp1323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1324&#10;(dp1325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HTTP1.1 Required Error'&#10;p1326&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1327&#10;(dp1328&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1329&#10;(dp1330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1331&#10;(dp1332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1333&#10;(dp1334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1335&#10;(dp1336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1337&#10;(dp1338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p1339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1340&#10;(dp1341&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1342&#10;(dp1343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1344&#10;(dp1345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1346&#10;(dp1347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1348&#10;(dp1349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1350&#10;(dp1351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p1352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1353&#10;(dp1354&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1355&#10;(dp1356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1357&#10;(dp1358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1359&#10;(dp1360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1361&#10;(dp1362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1363&#10;(dp1364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p1365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1366&#10;(dp1367&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1368&#10;(dp1369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1370&#10;(dp1371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1372&#10;(dp1373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1374&#10;(dp1375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1376&#10;(dp1377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p1378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1379&#10;(dp1380&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1381&#10;(dp1382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1383&#10;(dp1384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1385&#10;(dp1386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1387&#10;(dp1388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1389&#10;(dp1390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p1391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1392&#10;(dp1393&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1394&#10;(dp1395&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1396&#10;(dp1397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1398&#10;(dp1399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1400&#10;(dp1401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1402&#10;(dp1403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p1404&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1404&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1405&#10;(dp1406&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1407&#10;(dp1408&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1409&#10;(dp1410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1411&#10;(dp1412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1413&#10;(dp1414&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1415&#10;(dp1416&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p1417&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1417&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1418&#10;(dp1419&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1420&#10;(dp1421&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1422&#10;(dp1423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1424&#10;(dp1425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1426&#10;(dp1427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1428&#10;(dp1429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p1430&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1430&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1431&#10;(dp1432&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1433&#10;(dp1434&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1435&#10;(dp1436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1437&#10;(dp1438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1439&#10;(dp1440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1441&#10;(dp1442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p1443&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1443&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1444&#10;(dp1445&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1446&#10;(dp1447&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1448&#10;(dp1449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1450&#10;(dp1451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1452&#10;(dp1453&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1454&#10;(dp1455&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p1456&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1456&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1457&#10;(dp1458&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1459&#10;(dp1460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1461&#10;(dp1462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1463&#10;(dp1464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1465&#10;(dp1466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1467&#10;(dp1468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p1469&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1469&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1470&#10;(dp1471&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1472&#10;(dp1473&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1474&#10;(dp1475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1476&#10;(dp1477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1478&#10;(dp1479&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1480&#10;(dp1481&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p1482&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1482&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1483&#10;(dp1484&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1485&#10;(dp1486&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1487&#10;(dp1488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1489&#10;(dp1490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1491&#10;(dp1492&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1493&#10;(dp1494&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p1495&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1495&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1496&#10;(dp1497&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1498&#10;(dp1499&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1500&#10;(dp1501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1502&#10;(dp1503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1504&#10;(dp1505&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1506&#10;(dp1507&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p1508&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1508&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1509&#10;(dp1510&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1511&#10;(dp1512&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1513&#10;(dp1514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1515&#10;(dp1516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1517&#10;(dp1518&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1519&#10;(dp1520&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p1521&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1521&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1522&#10;(dp1523&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1524&#10;(dp1525&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1526&#10;(dp1527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1528&#10;(dp1529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1530&#10;(dp1531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1532&#10;(dp1533&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p1534&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1534&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1535&#10;(dp1536&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1537&#10;(dp1538&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1539&#10;(dp1540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1541&#10;(dp1542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1543&#10;(dp1544&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1545&#10;(dp1546&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p1547&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1547&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1548&#10;(dp1549&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1550&#10;(dp1551&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1552&#10;(dp1553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1554&#10;(dp1555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1556&#10;(dp1557&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1558&#10;(dp1559&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p1560&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1560&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1561&#10;(dp1562&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1563&#10;(dp1564&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1565&#10;(dp1566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1567&#10;(dp1568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1569&#10;(dp1570&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1571&#10;(dp1572&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p1573&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1573&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1574&#10;(dp1575&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1576&#10;(dp1577&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1578&#10;(dp1579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1580&#10;(dp1581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1582&#10;(dp1583&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1584&#10;(dp1585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p1586&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1586&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1587&#10;(dp1588&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1589&#10;(dp1590&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1591&#10;(dp1592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1593&#10;(dp1594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1595&#10;(dp1596&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1597&#10;(dp1598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p1599&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1599&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1600&#10;(dp1601&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1602&#10;(dp1603&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1604&#10;(dp1605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1606&#10;(dp1607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1608&#10;(dp1609&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1610&#10;(dp1611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p1612&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1612&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1613&#10;(dp1614&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1615&#10;(dp1616&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1617&#10;(dp1618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1619&#10;(dp1620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1621&#10;(dp1622&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1623&#10;(dp1624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p1625&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1625&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1626&#10;(dp1627&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1628&#10;(dp1629&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1630&#10;(dp1631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1632&#10;(dp1633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1634&#10;(dp1635&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1636&#10;(dp1637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p1638&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1638&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1639&#10;(dp1640&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1641&#10;(dp1642&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1643&#10;(dp1644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1645&#10;(dp1646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1647&#10;(dp1648&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1649&#10;(dp1650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p1651&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1651&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1652&#10;(dp1653&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1654&#10;(dp1655&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1656&#10;(dp1657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1658&#10;(dp1659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1660&#10;(dp1661&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1662&#10;(dp1663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p1664&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1664&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1665&#10;(dp1666&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1667&#10;(dp1668&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1669&#10;(dp1670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1671&#10;(dp1672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1673&#10;(dp1674&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1675&#10;(dp1676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p1677&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1677&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1678&#10;(dp1679&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1680&#10;(dp1681&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1682&#10;(dp1683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1684&#10;(dp1685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1686&#10;(dp1687&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1688&#10;(dp1689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p1690&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1690&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1691&#10;(dp1692&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1693&#10;(dp1694&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1695&#10;(dp1696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1697&#10;(dp1698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1699&#10;(dp1700&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1701&#10;(dp1702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p1703&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1703&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1704&#10;(dp1705&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1706&#10;(dp1707&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1708&#10;(dp1709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1710&#10;(dp1711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1712&#10;(dp1713&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1714&#10;(dp1715&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p1716&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1716&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1717&#10;(dp1718&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1719&#10;(dp1720&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1721&#10;(dp1722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1723&#10;(dp1724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1725&#10;(dp1726&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1727&#10;(dp1728&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p1729&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1729&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1730&#10;(dp1731&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1732&#10;(dp1733&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1734&#10;(dp1735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1736&#10;(dp1737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1738&#10;(dp1739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1740&#10;(dp1741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p1742&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1742&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1743&#10;(dp1744&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1745&#10;(dp1746&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1747&#10;(dp1748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1749&#10;(dp1750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1751&#10;(dp1752&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1753&#10;(dp1754&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p1755&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1755&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1756&#10;(dp1757&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1758&#10;(dp1759&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1760&#10;(dp1761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1762&#10;(dp1763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1764&#10;(dp1765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1766&#10;(dp1767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p1768&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1768&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1769&#10;(dp1770&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1771&#10;(dp1772&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1773&#10;(dp1774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1775&#10;(dp1776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1777&#10;(dp1778&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1779&#10;(dp1780&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p1781&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1781&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1782&#10;(dp1783&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1784&#10;(dp1785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1786&#10;(dp1787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1788&#10;(dp1789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1790&#10;(dp1791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1792&#10;(dp1793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p1794&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1794&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1795&#10;(dp1796&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1797&#10;(dp1798&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1799&#10;(dp1800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1801&#10;(dp1802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1803&#10;(dp1804&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1805&#10;(dp1806&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p1807&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1807&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1808&#10;(dp1809&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1810&#10;(dp1811&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1812&#10;(dp1813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1814&#10;(dp1815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1816&#10;(dp1817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1818&#10;(dp1819&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p1820&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1820&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1821&#10;(dp1822&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1823&#10;(dp1824&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1825&#10;(dp1826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1827&#10;(dp1828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1829&#10;(dp1830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1831&#10;(dp1832&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p1833&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1833&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1834&#10;(dp1835&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1836&#10;(dp1837&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1838&#10;(dp1839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1840&#10;(dp1841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1842&#10;(dp1843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1844&#10;(dp1845&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p1846&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1846&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1847&#10;(dp1848&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1849&#10;(dp1850&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1851&#10;(dp1852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1853&#10;(dp1854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1855&#10;(dp1856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1857&#10;(dp1858&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p1859&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1859&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1860&#10;(dp1861&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1862&#10;(dp1863&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1864&#10;(dp1865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1866&#10;(dp1867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1868&#10;(dp1869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1870&#10;(dp1871&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p1872&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1872&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1873&#10;(dp1874&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1875&#10;(dp1876&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1877&#10;(dp1878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1879&#10;(dp1880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1881&#10;(dp1882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1883&#10;(dp1884&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p1885&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1885&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1886&#10;(dp1887&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1888&#10;(dp1889&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1890&#10;(dp1891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1892&#10;(dp1893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1894&#10;(dp1895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1896&#10;(dp1897&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p1898&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1898&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1899&#10;(dp1900&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1901&#10;(dp1902&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1903&#10;(dp1904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1905&#10;(dp1906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1907&#10;(dp1908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1909&#10;(dp1910&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p1911&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1911&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1912&#10;(dp1913&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1914&#10;(dp1915&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1916&#10;(dp1917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1918&#10;(dp1919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1920&#10;(dp1921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1922&#10;(dp1923&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p1924&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1924&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1925&#10;(dp1926&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1927&#10;(dp1928&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1929&#10;(dp1930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1931&#10;(dp1932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1933&#10;(dp1934&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1935&#10;(dp1936&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p1937&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1937&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1938&#10;(dp1939&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1940&#10;(dp1941&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1942&#10;(dp1943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1944&#10;(dp1945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1946&#10;(dp1947&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1948&#10;(dp1949&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p1950&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1950&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1951&#10;(dp1952&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1953&#10;(dp1954&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1955&#10;(dp1956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1957&#10;(dp1958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1959&#10;(dp1960&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1961&#10;(dp1962&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p1963&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1963&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1964&#10;(dp1965&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1966&#10;(dp1967&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1968&#10;(dp1969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1970&#10;(dp1971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1972&#10;(dp1973&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1974&#10;(dp1975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p1976&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1976&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1977&#10;(dp1978&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1979&#10;(dp1980&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1981&#10;(dp1982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1983&#10;(dp1984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1985&#10;(dp1986&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1987&#10;(dp1988&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p1989&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1989&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1990&#10;(dp1991&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1992&#10;(dp1993&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1994&#10;(dp1995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1996&#10;(dp1997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1998&#10;(dp1999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2000&#10;(dp2001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p2002&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2002&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2003&#10;(dp2004&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2005&#10;(dp2006&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2007&#10;(dp2008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2009&#10;(dp2010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2011&#10;(dp2012&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2013&#10;(dp2014&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p2015&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2015&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2016&#10;(dp2017&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2018&#10;(dp2019&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2020&#10;(dp2021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2022&#10;(dp2023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2024&#10;(dp2025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2026&#10;(dp2027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p2028&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2028&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2029&#10;(dp2030&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2031&#10;(dp2032&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2033&#10;(dp2034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2035&#10;(dp2036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2037&#10;(dp2038&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2039&#10;(dp2040&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p2041&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2041&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2042&#10;(dp2043&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2044&#10;(dp2045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2046&#10;(dp2047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2048&#10;(dp2049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2050&#10;(dp2051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2052&#10;(dp2053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p2054&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2054&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2055&#10;(dp2056&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2057&#10;(dp2058&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2059&#10;(dp2060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2061&#10;(dp2062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2063&#10;(dp2064&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2065&#10;(dp2066&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p2067&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2067&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2068&#10;(dp2069&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2070&#10;(dp2071&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2072&#10;(dp2073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2074&#10;(dp2075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2076&#10;(dp2077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2078&#10;(dp2079&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p2080&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2080&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2081&#10;(dp2082&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2083&#10;(dp2084&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2085&#10;(dp2086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2087&#10;(dp2088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2089&#10;(dp2090&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2091&#10;(dp2092&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p2093&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2093&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2094&#10;(dp2095&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2096&#10;(dp2097&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2098&#10;(dp2099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2100&#10;(dp2101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2102&#10;(dp2103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2104&#10;(dp2105&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p2106&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2106&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2107&#10;(dp2108&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2109&#10;(dp2110&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2111&#10;(dp2112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2113&#10;(dp2114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2115&#10;(dp2116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2117&#10;(dp2118&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p2119&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2119&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2120&#10;(dp2121&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2122&#10;(dp2123&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2124&#10;(dp2125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2126&#10;(dp2127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2128&#10;(dp2129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2130&#10;(dp2131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p2132&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2132&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2133&#10;(dp2134&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2135&#10;(dp2136&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2137&#10;(dp2138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2139&#10;(dp2140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2141&#10;(dp2142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2143&#10;(dp2144&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p2145&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2145&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2146&#10;(dp2147&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2148&#10;(dp2149&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2150&#10;(dp2151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2152&#10;(dp2153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2154&#10;(dp2155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2156&#10;(dp2157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p2158&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2158&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2159&#10;(dp2160&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2161&#10;(dp2162&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2163&#10;(dp2164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2165&#10;(dp2166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2167&#10;(dp2168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2169&#10;(dp2170&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p2171&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2171&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2172&#10;(dp2173&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2174&#10;(dp2175&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2176&#10;(dp2177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2178&#10;(dp2179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2180&#10;(dp2181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2182&#10;(dp2183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p2184&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2184&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2185&#10;(dp2186&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2187&#10;(dp2188&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2189&#10;(dp2190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2191&#10;(dp2192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2193&#10;(dp2194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2195&#10;(dp2196&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p2197&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2197&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2198&#10;(dp2199&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2200&#10;(dp2201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2202&#10;(dp2203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2204&#10;(dp2205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2206&#10;(dp2207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2208&#10;(dp2209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p2210&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2210&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2211&#10;(dp2212&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2213&#10;(dp2214&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2215&#10;(dp2216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2217&#10;(dp2218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2219&#10;(dp2220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2221&#10;(dp2222&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p2223&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2223&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2224&#10;(dp2225&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2226&#10;(dp2227&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2228&#10;(dp2229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2230&#10;(dp2231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2232&#10;(dp2233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2234&#10;(dp2235&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p2236&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2236&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2237&#10;(dp2238&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2239&#10;(dp2240&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2241&#10;(dp2242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2243&#10;(dp2244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2245&#10;(dp2246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2247&#10;(dp2248&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p2249&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2249&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2250&#10;(dp2251&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2252&#10;(dp2253&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2254&#10;(dp2255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2256&#10;(dp2257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2258&#10;(dp2259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2260&#10;(dp2261&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p2262&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2262&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2263&#10;(dp2264&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2265&#10;(dp2266&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2267&#10;(dp2268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2269&#10;(dp2270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2271&#10;(dp2272&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2273&#10;(dp2274&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p2275&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2275&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2276&#10;(dp2277&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2278&#10;(dp2279&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2280&#10;(dp2281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2282&#10;(dp2283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2284&#10;(dp2285&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2286&#10;(dp2287&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p2288&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2288&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2289&#10;(dp2290&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2291&#10;(dp2292&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2293&#10;(dp2294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2295&#10;(dp2296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2297&#10;(dp2298&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2299&#10;(dp2300&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p2301&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2301&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2302&#10;(dp2303&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2304&#10;(dp2305&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2306&#10;(dp2307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2308&#10;(dp2309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2310&#10;(dp2311&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2312&#10;(dp2313&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p2314&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2314&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2315&#10;(dp2316&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2317&#10;(dp2318&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2319&#10;(dp2320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2321&#10;(dp2322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2323&#10;(dp2324&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2325&#10;(dp2326&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p2327&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2327&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2328&#10;(dp2329&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2330&#10;(dp2331&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2332&#10;(dp2333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2334&#10;(dp2335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2336&#10;(dp2337&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2338&#10;(dp2339&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p2340&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2340&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2341&#10;(dp2342&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2343&#10;(dp2344&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2345&#10;(dp2346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2347&#10;(dp2348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2349&#10;(dp2350&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2351&#10;(dp2352&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p2353&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2353&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2354&#10;(dp2355&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2356&#10;(dp2357&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2358&#10;(dp2359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2360&#10;(dp2361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2362&#10;(dp2363&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2364&#10;(dp2365&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p2366&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2366&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2367&#10;(dp2368&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2369&#10;(dp2370&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2371&#10;(dp2372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2373&#10;(dp2374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2375&#10;(dp2376&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2377&#10;(dp2378&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p2379&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2379&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2380&#10;(dp2381&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2382&#10;(dp2383&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2384&#10;(dp2385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2386&#10;(dp2387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2388&#10;(dp2389&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2390&#10;(dp2391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p2392&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2392&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2393&#10;(dp2394&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2395&#10;(dp2396&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2397&#10;(dp2398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2399&#10;(dp2400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2401&#10;(dp2402&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2403&#10;(dp2404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p2405&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2405&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2406&#10;(dp2407&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2408&#10;(dp2409&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2410&#10;(dp2411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2412&#10;(dp2413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2414&#10;(dp2415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2416&#10;(dp2417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p2418&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2418&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2419&#10;(dp2420&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2421&#10;(dp2422&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2423&#10;(dp2424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2425&#10;(dp2426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2427&#10;(dp2428&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2429&#10;(dp2430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p2431&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2431&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2432&#10;(dp2433&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2434&#10;(dp2435&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2436&#10;(dp2437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2438&#10;(dp2439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2440&#10;(dp2441&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2442&#10;(dp2443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p2444&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2444&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2445&#10;(dp2446&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2447&#10;(dp2448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2449&#10;(dp2450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2451&#10;(dp2452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2453&#10;(dp2454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2455&#10;(dp2456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p2457&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2457&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2458&#10;(dp2459&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2460&#10;(dp2461&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2462&#10;(dp2463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2464&#10;(dp2465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2466&#10;(dp2467&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2468&#10;(dp2469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p2470&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2470&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2471&#10;(dp2472&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2473&#10;(dp2474&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2475&#10;(dp2476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2477&#10;(dp2478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2479&#10;(dp2480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2481&#10;(dp2482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p2483&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2483&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2484&#10;(dp2485&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2486&#10;(dp2487&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2488&#10;(dp2489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2490&#10;(dp2491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2492&#10;(dp2493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2494&#10;(dp2495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p2496&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2496&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2497&#10;(dp2498&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2499&#10;(dp2500&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2501&#10;(dp2502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2503&#10;(dp2504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2505&#10;(dp2506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2507&#10;(dp2508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p2509&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2509&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2510&#10;(dp2511&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2512&#10;(dp2513&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2514&#10;(dp2515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2516&#10;(dp2517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2518&#10;(dp2519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2520&#10;(dp2521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p2522&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2522&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2523&#10;(dp2524&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2525&#10;(dp2526&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2527&#10;(dp2528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2529&#10;(dp2530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2531&#10;(dp2532&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2533&#10;(dp2534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p2535&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2535&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2536&#10;(dp2537&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2538&#10;(dp2539&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2540&#10;(dp2541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2542&#10;(dp2543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2544&#10;(dp2545&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2546&#10;(dp2547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p2548&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2548&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2549&#10;(dp2550&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2551&#10;(dp2552&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2553&#10;(dp2554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2555&#10;(dp2556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2557&#10;(dp2558&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2559&#10;(dp2560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p2561&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2561&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2562&#10;(dp2563&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2564&#10;(dp2565&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2566&#10;(dp2567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2568&#10;(dp2569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2570&#10;(dp2571&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2572&#10;(dp2573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p2574&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2574&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2575&#10;(dp2576&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2577&#10;(dp2578&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2579&#10;(dp2580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2581&#10;(dp2582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2583&#10;(dp2584&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2585&#10;(dp2586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p2587&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2587&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2588&#10;(dp2589&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2590&#10;(dp2591&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2592&#10;(dp2593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2594&#10;(dp2595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2596&#10;(dp2597&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2598&#10;(dp2599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p2600&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2600&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2601&#10;(dp2602&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2603&#10;(dp2604&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2605&#10;(dp2606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2607&#10;(dp2608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2609&#10;(dp2610&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2611&#10;(dp2612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p2613&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2613&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2614&#10;(dp2615&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2616&#10;(dp2617&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2618&#10;(dp2619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2620&#10;(dp2621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2622&#10;(dp2623&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2624&#10;(dp2625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p2626&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2626&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2627&#10;(dp2628&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2629&#10;(dp2630&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2631&#10;(dp2632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2633&#10;(dp2634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2635&#10;(dp2636&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2637&#10;(dp2638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p2639&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2639&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2640&#10;(dp2641&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2642&#10;(dp2643&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2644&#10;(dp2645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2646&#10;(dp2647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2648&#10;(dp2649&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2650&#10;(dp2651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p2652&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2652&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2653&#10;(dp2654&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2655&#10;(dp2656&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2657&#10;(dp2658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2659&#10;(dp2660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2661&#10;(dp2662&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2663&#10;(dp2664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p2665&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2665&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2666&#10;(dp2667&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2668&#10;(dp2669&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2670&#10;(dp2671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2672&#10;(dp2673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2674&#10;(dp2675&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2676&#10;(dp2677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p2678&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2678&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2679&#10;(dp2680&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2681&#10;(dp2682&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2683&#10;(dp2684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2685&#10;(dp2686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2687&#10;(dp2688&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2689&#10;(dp2690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p2691&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2691&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2692&#10;(dp2693&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2694&#10;(dp2695&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2696&#10;(dp2697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2698&#10;(dp2699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2700&#10;(dp2701&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2702&#10;(dp2703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p2704&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2704&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2705&#10;(dp2706&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2707&#10;(dp2708&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2709&#10;(dp2710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2711&#10;(dp2712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2713&#10;(dp2714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2715&#10;(dp2716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p2717&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2717&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2718&#10;(dp2719&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2720&#10;(dp2721&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2722&#10;(dp2723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2724&#10;(dp2725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2726&#10;(dp2727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2728&#10;(dp2729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p2730&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2730&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2731&#10;(dp2732&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2733&#10;(dp2734&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2735&#10;(dp2736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2737&#10;(dp2738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2739&#10;(dp2740&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2741&#10;(dp2742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p2743&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2743&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2744&#10;(dp2745&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2746&#10;(dp2747&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2748&#10;(dp2749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2750&#10;(dp2751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2752&#10;(dp2753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2754&#10;(dp2755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p2756&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2756&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2757&#10;(dp2758&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2759&#10;(dp2760&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2761&#10;(dp2762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2763&#10;(dp2764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2765&#10;(dp2766&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2767&#10;(dp2768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p2769&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2769&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2770&#10;(dp2771&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2772&#10;(dp2773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2774&#10;(dp2775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2776&#10;(dp2777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2778&#10;(dp2779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2780&#10;(dp2781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p2782&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2782&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2783&#10;(dp2784&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2785&#10;(dp2786&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2787&#10;(dp2788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2789&#10;(dp2790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2791&#10;(dp2792&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2793&#10;(dp2794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p2795&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2795&#10;sbatRp2796&#10;(dp2797&#10;g12&#10;I185&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client Per URL'&#10;p2798&#10;g3&#10;(g4&#10;g5&#10;(lp2799&#10;g3&#10;(g7&#10;g8&#10;NtRp2800&#10;(dp2801&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2802&#10;(dp2803&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2804&#10;(dp2805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2806&#10;(dp2807&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2808&#10;(dp2809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2810&#10;(dp2811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Sent'&#10;p2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2813&#10;(dp2814&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2815&#10;(dp2816&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2817&#10;(dp2818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2819&#10;(dp2820&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2821&#10;(dp2822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2823&#10;(dp2824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2826&#10;(dp2827&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2828&#10;(dp2829&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2830&#10;(dp2831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2832&#10;(dp2833&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2834&#10;(dp2835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2836&#10;(dp2837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (Provisional)'&#10;p2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2839&#10;(dp2840&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2841&#10;(dp2842&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2843&#10;(dp2844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2845&#10;(dp2846&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2847&#10;(dp2848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2849&#10;(dp2850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2852&#10;(dp2853&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2854&#10;(dp2855&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2856&#10;(dp2857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2858&#10;(dp2859&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2860&#10;(dp2861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2862&#10;(dp2863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write)'&#10;p2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2865&#10;(dp2866&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2867&#10;(dp2868&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2869&#10;(dp2870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2871&#10;(dp2872&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2873&#10;(dp2874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2875&#10;(dp2876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Read)'&#10;p2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2878&#10;(dp2879&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2880&#10;(dp2881&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2882&#10;(dp2883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2884&#10;(dp2885&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2886&#10;(dp2887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2888&#10;(dp2889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Bad Header)'&#10;p2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2891&#10;(dp2892&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2893&#10;(dp2894&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2895&#10;(dp2896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2897&#10;(dp2898&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2899&#10;(dp2900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2901&#10;(dp2902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx)'&#10;p2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2904&#10;(dp2905&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2906&#10;(dp2907&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2908&#10;(dp2909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2910&#10;(dp2911&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2912&#10;(dp2913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2914&#10;(dp2915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (400)'&#10;p2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2917&#10;(dp2918&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2919&#10;(dp2920&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2921&#10;(dp2922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2923&#10;(dp2924&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2925&#10;(dp2926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2927&#10;(dp2928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (401)'&#10;p2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2930&#10;(dp2931&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2932&#10;(dp2933&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2934&#10;(dp2935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2936&#10;(dp2937&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2938&#10;(dp2939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2940&#10;(dp2941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (403)'&#10;p2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2943&#10;(dp2944&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2945&#10;(dp2946&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2947&#10;(dp2948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2949&#10;(dp2950&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2951&#10;(dp2952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2953&#10;(dp2954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2956&#10;(dp2957&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2958&#10;(dp2959&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2960&#10;(dp2961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2962&#10;(dp2963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2964&#10;(dp2965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2966&#10;(dp2967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (407)'&#10;p2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2969&#10;(dp2970&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2971&#10;(dp2972&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2973&#10;(dp2974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2975&#10;(dp2976&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2977&#10;(dp2978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2979&#10;(dp2980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (408)'&#10;p2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2982&#10;(dp2983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2984&#10;(dp2985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2986&#10;(dp2987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2988&#10;(dp2989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2990&#10;(dp2991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2992&#10;(dp2993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx other)'&#10;p2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2995&#10;(dp2996&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2997&#10;(dp2998&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2999&#10;(dp3000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3001&#10;(dp3002&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3003&#10;(dp3004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3005&#10;(dp3006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx)'&#10;p3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3008&#10;(dp3009&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3010&#10;(dp3011&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3012&#10;(dp3013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3014&#10;(dp3015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3016&#10;(dp3017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3018&#10;(dp3019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (505)'&#10;p3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3021&#10;(dp3022&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3023&#10;(dp3024&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3025&#10;(dp3026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3027&#10;(dp3028&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3029&#10;(dp3030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3031&#10;(dp3032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx other)'&#10;p3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3034&#10;(dp3035&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3036&#10;(dp3037&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3038&#10;(dp3039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3040&#10;(dp3041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3042&#10;(dp3043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3044&#10;(dp3045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (other)'&#10;p3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3047&#10;(dp3048&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3049&#10;(dp3050&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3051&#10;(dp3052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3053&#10;(dp3054&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3055&#10;(dp3056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3057&#10;(dp3058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Timeout)'&#10;p3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3060&#10;(dp3061&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3062&#10;(dp3063&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3064&#10;(dp3065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3066&#10;(dp3067&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3068&#10;(dp3069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3070&#10;(dp3071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3073&#10;(dp3074&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3075&#10;(dp3076&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3077&#10;(dp3078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3079&#10;(dp3080&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3081&#10;(dp3082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3083&#10;(dp3084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted Before Request'&#10;p3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3086&#10;(dp3087&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3088&#10;(dp3089&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3090&#10;(dp3091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3092&#10;(dp3093&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3094&#10;(dp3095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3096&#10;(dp3097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted After Request'&#10;p3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3099&#10;(dp3100&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3101&#10;(dp3102&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3103&#10;(dp3104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3105&#10;(dp3106&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3107&#10;(dp3108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3109&#10;(dp3110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received With Match'&#10;p3111&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3111&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3112&#10;(dp3113&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3114&#10;(dp3115&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3116&#10;(dp3117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3118&#10;(dp3119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3120&#10;(dp3121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3122&#10;(dp3123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received Without Match'&#10;p3124&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3124&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3125&#10;(dp3126&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3127&#10;(dp3128&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3129&#10;(dp3130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3131&#10;(dp3132&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3133&#10;(dp3134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3135&#10;(dp3136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Intermediate Responses Received (1xx)'&#10;p3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3138&#10;(dp3139&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3140&#10;(dp3141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3142&#10;(dp3143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3144&#10;(dp3145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3146&#10;(dp3147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3148&#10;(dp3149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (2xx)'&#10;p3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3151&#10;(dp3152&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3153&#10;(dp3154&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3155&#10;(dp3156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3157&#10;(dp3158&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3159&#10;(dp3160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3161&#10;(dp3162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (3xx)'&#10;p3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3164&#10;(dp3165&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3166&#10;(dp3167&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3168&#10;(dp3169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3170&#10;(dp3171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3172&#10;(dp3173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3174&#10;(dp3175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (301)'&#10;p3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3177&#10;(dp3178&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3179&#10;(dp3180&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3181&#10;(dp3182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3183&#10;(dp3184&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3185&#10;(dp3186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3187&#10;(dp3188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (302)'&#10;p3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3190&#10;(dp3191&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3192&#10;(dp3193&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3194&#10;(dp3195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3196&#10;(dp3197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3198&#10;(dp3199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3200&#10;(dp3201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (303)'&#10;p3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3203&#10;(dp3204&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3205&#10;(dp3206&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3207&#10;(dp3208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3209&#10;(dp3210&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3211&#10;(dp3212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3213&#10;(dp3214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (307)'&#10;p3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3216&#10;(dp3217&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3218&#10;(dp3219&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3220&#10;(dp3221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3222&#10;(dp3223&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3224&#10;(dp3225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3226&#10;(dp3227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Sent'&#10;p3228&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3228&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3229&#10;(dp3230&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3231&#10;(dp3232&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3233&#10;(dp3234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3235&#10;(dp3236&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3237&#10;(dp3238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3239&#10;(dp3240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Headers Received'&#10;p3241&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3241&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3242&#10;(dp3243&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3244&#10;(dp3245&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3246&#10;(dp3247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3248&#10;(dp3249&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3250&#10;(dp3251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3252&#10;(dp3253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Received'&#10;p3254&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3254&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3255&#10;(dp3256&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3257&#10;(dp3258&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3259&#10;(dp3260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3261&#10;(dp3262&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3263&#10;(dp3264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3265&#10;(dp3266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Successful'&#10;p3267&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3267&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3268&#10;(dp3269&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3270&#10;(dp3271&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3272&#10;(dp3273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3274&#10;(dp3275&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3276&#10;(dp3277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3278&#10;(dp3279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Failed'&#10;p3280&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3280&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3281&#10;(dp3282&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3283&#10;(dp3284&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3285&#10;(dp3286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3287&#10;(dp3288&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3289&#10;(dp3290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3291&#10;(dp3292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p3293&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3293&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3294&#10;(dp3295&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3296&#10;(dp3297&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3298&#10;(dp3299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3300&#10;(dp3301&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3302&#10;(dp3303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3304&#10;(dp3305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p3306&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3306&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3307&#10;(dp3308&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3309&#10;(dp3310&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3311&#10;(dp3312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3313&#10;(dp3314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3315&#10;(dp3316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3317&#10;(dp3318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p3319&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3319&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3320&#10;(dp3321&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3322&#10;(dp3323&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3324&#10;(dp3325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3326&#10;(dp3327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3328&#10;(dp3329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3330&#10;(dp3331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Sent'&#10;p3332&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3332&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3333&#10;(dp3334&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3335&#10;(dp3336&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3337&#10;(dp3338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3339&#10;(dp3340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3341&#10;(dp3342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3343&#10;(dp3344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p3345&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3345&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3346&#10;(dp3347&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3348&#10;(dp3349&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3350&#10;(dp3351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3352&#10;(dp3353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3354&#10;(dp3355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3356&#10;(dp3357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size in Request'&#10;p3358&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3358&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3359&#10;(dp3360&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3361&#10;(dp3362&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3363&#10;(dp3364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3365&#10;(dp3366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3367&#10;(dp3368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3369&#10;(dp3370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p3371&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3371&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3372&#10;(dp3373&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3374&#10;(dp3375&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3376&#10;(dp3377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3378&#10;(dp3379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3380&#10;(dp3381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3382&#10;(dp3383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name1-Value1'&#10;p3384&#10;sg22&#10;I00&#10;sg37&#10;S'kString'&#10;p3385&#10;sg39&#10;g3384&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3386&#10;(dp3387&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3388&#10;(dp3389&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3390&#10;(dp3391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3392&#10;(dp3393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3394&#10;(dp3395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3396&#10;(dp3397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter1'&#10;p3398&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3398&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3399&#10;(dp3400&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3401&#10;(dp3402&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3403&#10;(dp3404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3405&#10;(dp3406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3407&#10;(dp3408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3409&#10;(dp3410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name2-Value2'&#10;p3411&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3411&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3412&#10;(dp3413&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3414&#10;(dp3415&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3416&#10;(dp3417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3418&#10;(dp3419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3420&#10;(dp3421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3422&#10;(dp3423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter2'&#10;p3424&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3424&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3425&#10;(dp3426&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3427&#10;(dp3428&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3429&#10;(dp3430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3431&#10;(dp3432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3433&#10;(dp3434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3435&#10;(dp3436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name3-Value3'&#10;p3437&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3437&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3438&#10;(dp3439&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3440&#10;(dp3441&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3442&#10;(dp3443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3444&#10;(dp3445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3446&#10;(dp3447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3448&#10;(dp3449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter3'&#10;p3450&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3450&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3451&#10;(dp3452&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3453&#10;(dp3454&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3455&#10;(dp3456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3457&#10;(dp3458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3459&#10;(dp3460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3461&#10;(dp3462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name4-Value4'&#10;p3463&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3463&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3464&#10;(dp3465&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3466&#10;(dp3467&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3468&#10;(dp3469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3470&#10;(dp3471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3472&#10;(dp3473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3474&#10;(dp3475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter4'&#10;p3476&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3476&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3477&#10;(dp3478&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3479&#10;(dp3480&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3481&#10;(dp3482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3483&#10;(dp3484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3485&#10;(dp3486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3487&#10;(dp3488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name5-Value5'&#10;p3489&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3489&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3490&#10;(dp3491&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3492&#10;(dp3493&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3494&#10;(dp3495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3496&#10;(dp3497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3498&#10;(dp3499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3500&#10;(dp3501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter5'&#10;p3502&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3502&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3503&#10;(dp3504&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3505&#10;(dp3506&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3507&#10;(dp3508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3509&#10;(dp3510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3511&#10;(dp3512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3513&#10;(dp3514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name6-Value6'&#10;p3515&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3515&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3516&#10;(dp3517&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3518&#10;(dp3519&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3520&#10;(dp3521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3522&#10;(dp3523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3524&#10;(dp3525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3526&#10;(dp3527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter6'&#10;p3528&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3528&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3529&#10;(dp3530&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3531&#10;(dp3532&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3533&#10;(dp3534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3535&#10;(dp3536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3537&#10;(dp3538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3539&#10;(dp3540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name7-Value7'&#10;p3541&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3541&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3542&#10;(dp3543&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3544&#10;(dp3545&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3546&#10;(dp3547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3548&#10;(dp3549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3550&#10;(dp3551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3552&#10;(dp3553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter7'&#10;p3554&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3554&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3555&#10;(dp3556&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3557&#10;(dp3558&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3559&#10;(dp3560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3561&#10;(dp3562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3563&#10;(dp3564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3565&#10;(dp3566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name8-Value8'&#10;p3567&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3567&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3568&#10;(dp3569&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3570&#10;(dp3571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3572&#10;(dp3573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3574&#10;(dp3575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3576&#10;(dp3577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3578&#10;(dp3579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter8'&#10;p3580&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3580&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3581&#10;(dp3582&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3583&#10;(dp3584&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3585&#10;(dp3586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3587&#10;(dp3588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3589&#10;(dp3590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3591&#10;(dp3592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name9-Value9'&#10;p3593&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3593&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3594&#10;(dp3595&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3596&#10;(dp3597&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3598&#10;(dp3599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3600&#10;(dp3601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3602&#10;(dp3603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3604&#10;(dp3605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter9'&#10;p3606&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3606&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3607&#10;(dp3608&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3609&#10;(dp3610&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3611&#10;(dp3612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3613&#10;(dp3614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3615&#10;(dp3616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3617&#10;(dp3618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name10-Value10'&#10;p3619&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3619&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3620&#10;(dp3621&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3622&#10;(dp3623&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3624&#10;(dp3625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3626&#10;(dp3627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3628&#10;(dp3629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3630&#10;(dp3631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter10'&#10;p3632&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3632&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3633&#10;(dp3634&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3635&#10;(dp3636&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3637&#10;(dp3638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3639&#10;(dp3640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3641&#10;(dp3642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3643&#10;(dp3644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Received'&#10;p3645&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3645&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3646&#10;(dp3647&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3648&#10;(dp3649&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3650&#10;(dp3651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3652&#10;(dp3653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3654&#10;(dp3655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3656&#10;(dp3657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Successful'&#10;p3658&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3658&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3659&#10;(dp3660&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3661&#10;(dp3662&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3663&#10;(dp3664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3665&#10;(dp3666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3667&#10;(dp3668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3669&#10;(dp3670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Failed'&#10;p3671&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3671&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3672&#10;(dp3673&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3674&#10;(dp3675&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3676&#10;(dp3677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3678&#10;(dp3679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3680&#10;(dp3681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3682&#10;(dp3683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Received'&#10;p3684&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3684&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3685&#10;(dp3686&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3687&#10;(dp3688&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3689&#10;(dp3690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3691&#10;(dp3692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3693&#10;(dp3694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3695&#10;(dp3696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Successful'&#10;p3697&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3697&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3698&#10;(dp3699&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3700&#10;(dp3701&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3702&#10;(dp3703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3704&#10;(dp3705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3706&#10;(dp3707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3708&#10;(dp3709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Failed'&#10;p3710&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3710&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3711&#10;(dp3712&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3713&#10;(dp3714&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3715&#10;(dp3716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3717&#10;(dp3718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3719&#10;(dp3720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3721&#10;(dp3722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Received'&#10;p3723&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3723&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3724&#10;(dp3725&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3726&#10;(dp3727&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3728&#10;(dp3729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3730&#10;(dp3731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3732&#10;(dp3733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3734&#10;(dp3735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Successful'&#10;p3736&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3736&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3737&#10;(dp3738&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3739&#10;(dp3740&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3741&#10;(dp3742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3743&#10;(dp3744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3745&#10;(dp3746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3747&#10;(dp3748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Failed'&#10;p3749&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3749&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3750&#10;(dp3751&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3752&#10;(dp3753&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3754&#10;(dp3755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3756&#10;(dp3757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3758&#10;(dp3759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3760&#10;(dp3761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Received'&#10;p3762&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3762&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3763&#10;(dp3764&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3765&#10;(dp3766&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3767&#10;(dp3768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3769&#10;(dp3770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3771&#10;(dp3772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3773&#10;(dp3774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Successful'&#10;p3775&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3775&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3776&#10;(dp3777&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3778&#10;(dp3779&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3780&#10;(dp3781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3782&#10;(dp3783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3784&#10;(dp3785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3786&#10;(dp3787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Failed'&#10;p3788&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3788&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3789&#10;(dp3790&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3791&#10;(dp3792&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3793&#10;(dp3794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3795&#10;(dp3796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3797&#10;(dp3798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3799&#10;(dp3800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Average Compression Ratio'&#10;p3801&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3801&#10;sbatRp3802&#10;(dp3803&#10;g12&#10;I76&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client'&#10;p3804&#10;g3&#10;(g4&#10;g5&#10;(lp3805&#10;g3&#10;(g7&#10;g8&#10;NtRp3806&#10;(dp3807&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3808&#10;(dp3809&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3810&#10;(dp3811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3812&#10;(dp3813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3814&#10;(dp3815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3816&#10;(dp3817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Simulated Users'&#10;p3818&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3818&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3819&#10;(dp3820&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3821&#10;(dp3822&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3823&#10;(dp3824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3825&#10;(dp3826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3827&#10;(dp3828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3829&#10;(dp3830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Concurrent Connections'&#10;p3831&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3831&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3832&#10;(dp3833&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3834&#10;(dp3835&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3836&#10;(dp3837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3838&#10;(dp3839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3840&#10;(dp3841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3842&#10;(dp3843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connections'&#10;p3844&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3844&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3845&#10;(dp3846&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3847&#10;(dp3848&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3849&#10;(dp3850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3851&#10;(dp3852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3853&#10;(dp3854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3855&#10;(dp3856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Attempts'&#10;p3857&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3857&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3858&#10;(dp3859&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3860&#10;(dp3861&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3862&#10;(dp3863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3864&#10;(dp3865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3866&#10;(dp3867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3868&#10;(dp3869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Aborts'&#10;p3870&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3870&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3871&#10;(dp3872&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3873&#10;(dp3874&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3875&#10;(dp3876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3877&#10;(dp3878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3879&#10;(dp3880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3881&#10;(dp3882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Aborts'&#10;p3883&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3883&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3884&#10;(dp3885&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3886&#10;(dp3887&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3888&#10;(dp3889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3890&#10;(dp3891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3892&#10;(dp3893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3894&#10;(dp3895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions'&#10;p3896&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3896&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3897&#10;(dp3898&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3899&#10;(dp3900&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3901&#10;(dp3902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3903&#10;(dp3904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3905&#10;(dp3906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3907&#10;(dp3908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes'&#10;p3909&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3909&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3910&#10;(dp3911&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3912&#10;(dp3913&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3914&#10;(dp3915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3916&#10;(dp3917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3918&#10;(dp3919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3920&#10;(dp3921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3922&#10;(dp3923&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3924&#10;(dp3925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3926&#10;(dp3927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3928&#10;(dp3929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3930&#10;(dp3931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3932&#10;(dp3933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3934&#10;(dp3935&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3936&#10;(dp3937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3938&#10;(dp3939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3940&#10;(dp3941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3942&#10;(dp3943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3944&#10;(dp3945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3946&#10;(dp3947&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3948&#10;(dp3949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3950&#10;(dp3951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3952&#10;(dp3953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3954&#10;(dp3955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3956&#10;(dp3957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3958&#10;(dp3959&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3960&#10;(dp3961&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3962&#10;(dp3963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3964&#10;(dp3965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3966&#10;(dp3967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3968&#10;(dp3969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3970&#10;(dp3971&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3972&#10;(dp3973&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3974&#10;(dp3975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3976&#10;(dp3977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3978&#10;(dp3979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3980&#10;(dp3981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3982&#10;(dp3983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3984&#10;(dp3985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3986&#10;(dp3987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3988&#10;(dp3989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3990&#10;(dp3991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3992&#10;(dp3993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3994&#10;(dp3995&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3996&#10;(dp3997&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3998&#10;(dp3999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4000&#10;(dp4001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4002&#10;(dp4003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4004&#10;(dp4005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4006&#10;(dp4007&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4008&#10;(dp4009&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4010&#10;(dp4011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4012&#10;(dp4013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4014&#10;(dp4015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4016&#10;(dp4017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4018&#10;(dp4019&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4020&#10;(dp4021&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4022&#10;(dp4023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4024&#10;(dp4025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4026&#10;(dp4027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4028&#10;(dp4029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4030&#10;(dp4031&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4032&#10;(dp4033&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4034&#10;(dp4035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4036&#10;(dp4037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4038&#10;(dp4039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4040&#10;(dp4041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4042&#10;(dp4043&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4044&#10;(dp4045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4046&#10;(dp4047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4048&#10;(dp4049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4050&#10;(dp4051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4052&#10;(dp4053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4054&#10;(dp4055&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4056&#10;(dp4057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4058&#10;(dp4059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4060&#10;(dp4061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4062&#10;(dp4063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4064&#10;(dp4065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4066&#10;(dp4067&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4068&#10;(dp4069&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4070&#10;(dp4071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4072&#10;(dp4073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4074&#10;(dp4075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4076&#10;(dp4077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4078&#10;(dp4079&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4080&#10;(dp4081&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4082&#10;(dp4083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4084&#10;(dp4085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4086&#10;(dp4087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4088&#10;(dp4089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4090&#10;(dp4091&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4092&#10;(dp4093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4094&#10;(dp4095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4096&#10;(dp4097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4098&#10;(dp4099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4100&#10;(dp4101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4102&#10;(dp4103&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4104&#10;(dp4105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4106&#10;(dp4107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4108&#10;(dp4109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4110&#10;(dp4111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4112&#10;(dp4113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4114&#10;(dp4115&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4116&#10;(dp4117&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4118&#10;(dp4119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4120&#10;(dp4121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4122&#10;(dp4123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4124&#10;(dp4125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4126&#10;(dp4127&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4128&#10;(dp4129&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4130&#10;(dp4131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4132&#10;(dp4133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4134&#10;(dp4135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4136&#10;(dp4137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4138&#10;(dp4139&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4140&#10;(dp4141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4142&#10;(dp4143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4144&#10;(dp4145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4146&#10;(dp4147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4148&#10;(dp4149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4150&#10;(dp4151&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4152&#10;(dp4153&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4154&#10;(dp4155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4156&#10;(dp4157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4158&#10;(dp4159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4160&#10;(dp4161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4162&#10;(dp4163&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4164&#10;(dp4165&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4166&#10;(dp4167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4168&#10;(dp4169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4170&#10;(dp4171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4172&#10;(dp4173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4174&#10;(dp4175&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4176&#10;(dp4177&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4178&#10;(dp4179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4180&#10;(dp4181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4182&#10;(dp4183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4184&#10;(dp4185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4186&#10;(dp4187&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4188&#10;(dp4189&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4190&#10;(dp4191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4192&#10;(dp4193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4194&#10;(dp4195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4196&#10;(dp4197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4198&#10;(dp4199&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4200&#10;(dp4201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4202&#10;(dp4203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4204&#10;(dp4205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4206&#10;(dp4207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4208&#10;(dp4209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4210&#10;(dp4211&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4212&#10;(dp4213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4214&#10;(dp4215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4216&#10;(dp4217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4218&#10;(dp4219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4220&#10;(dp4221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4222&#10;(dp4223&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4224&#10;(dp4225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4226&#10;(dp4227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4228&#10;(dp4229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4230&#10;(dp4231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4232&#10;(dp4233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4234&#10;(dp4235&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4236&#10;(dp4237&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4238&#10;(dp4239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4240&#10;(dp4241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4242&#10;(dp4243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4244&#10;(dp4245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4246&#10;(dp4247&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4248&#10;(dp4249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4250&#10;(dp4251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4252&#10;(dp4253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4254&#10;(dp4255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4256&#10;(dp4257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p4258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4259&#10;(dp4260&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4261&#10;(dp4262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4263&#10;(dp4264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4265&#10;(dp4266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4267&#10;(dp4268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4269&#10;(dp4270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Request Precondition Failed (412)'&#10;p4271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4272&#10;(dp4273&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4274&#10;(dp4275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4276&#10;(dp4277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4278&#10;(dp4279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4280&#10;(dp4281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4282&#10;(dp4283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p4284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4285&#10;(dp4286&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4287&#10;(dp4288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4289&#10;(dp4290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4291&#10;(dp4292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4293&#10;(dp4294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4295&#10;(dp4296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4297&#10;(dp4298&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4299&#10;(dp4300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4301&#10;(dp4302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4303&#10;(dp4304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4305&#10;(dp4306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4307&#10;(dp4308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4309&#10;(dp4310&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4311&#10;(dp4312&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4313&#10;(dp4314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4315&#10;(dp4316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4317&#10;(dp4318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4319&#10;(dp4320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions Active'&#10;p4321&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4321&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4322&#10;(dp4323&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4324&#10;(dp4325&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4326&#10;(dp4327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4328&#10;(dp4329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4330&#10;(dp4331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4332&#10;(dp4333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Users Active'&#10;p4334&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4334&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4335&#10;(dp4336&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4337&#10;(dp4338&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4339&#10;(dp4340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4341&#10;(dp4342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4343&#10;(dp4344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4345&#10;(dp4346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Received'&#10;p4347&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4347&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4348&#10;(dp4349&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4350&#10;(dp4351&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4352&#10;(dp4353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4354&#10;(dp4355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4356&#10;(dp4357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4358&#10;(dp4359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Received'&#10;p4360&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4360&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4361&#10;(dp4362&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4363&#10;(dp4364&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4365&#10;(dp4366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4367&#10;(dp4368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4369&#10;(dp4370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4371&#10;(dp4372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Received'&#10;p4373&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4373&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4374&#10;(dp4375&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4376&#10;(dp4377&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4378&#10;(dp4379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4380&#10;(dp4381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4382&#10;(dp4383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4384&#10;(dp4385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Unrecognized Content-Encoding Received'&#10;p4386&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4386&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4387&#10;(dp4388&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4389&#10;(dp4390&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4391&#10;(dp4392&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4393&#10;(dp4394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4395&#10;(dp4396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4397&#10;(dp4398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Successful'&#10;p4399&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4399&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4400&#10;(dp4401&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4402&#10;(dp4403&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4404&#10;(dp4405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4406&#10;(dp4407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4408&#10;(dp4409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4410&#10;(dp4411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Successful'&#10;p4412&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4412&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4413&#10;(dp4414&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4415&#10;(dp4416&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4417&#10;(dp4418&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4419&#10;(dp4420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4421&#10;(dp4422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4423&#10;(dp4424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Successful'&#10;p4425&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4425&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4426&#10;(dp4427&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4428&#10;(dp4429&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4430&#10;(dp4431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4432&#10;(dp4433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4434&#10;(dp4435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4436&#10;(dp4437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Failed'&#10;p4438&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4438&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4439&#10;(dp4440&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4441&#10;(dp4442&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4443&#10;(dp4444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4445&#10;(dp4446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4447&#10;(dp4448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4449&#10;(dp4450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed'&#10;p4451&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4451&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4452&#10;(dp4453&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4454&#10;(dp4455&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4456&#10;(dp4457&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4458&#10;(dp4459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4460&#10;(dp4461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4462&#10;(dp4463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed'&#10;p4464&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4464&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4465&#10;(dp4466&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4467&#10;(dp4468&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4469&#10;(dp4470&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4471&#10;(dp4472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4473&#10;(dp4474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4475&#10;(dp4476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Data Error'&#10;p4477&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4477&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4478&#10;(dp4479&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4480&#10;(dp4481&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4482&#10;(dp4483&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4484&#10;(dp4485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4486&#10;(dp4487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4488&#10;(dp4489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Decoding Error'&#10;p4490&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4490&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4491&#10;(dp4492&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4493&#10;(dp4494&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4495&#10;(dp4496&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4497&#10;(dp4498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4499&#10;(dp4500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4501&#10;(dp4502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Data Error'&#10;p4503&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4503&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4504&#10;(dp4505&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4506&#10;(dp4507&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4508&#10;(dp4509&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4510&#10;(dp4511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4512&#10;(dp4513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4514&#10;(dp4515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Decoding Error'&#10;p4516&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4516&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4517&#10;(dp4518&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4519&#10;(dp4520&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4521&#10;(dp4522&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4523&#10;(dp4524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4525&#10;(dp4526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4527&#10;(dp4528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Headers Received'&#10;p4529&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4529&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4530&#10;(dp4531&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4532&#10;(dp4533&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4534&#10;(dp4535&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4536&#10;(dp4537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4538&#10;(dp4539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4540&#10;(dp4541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Responses Received'&#10;p4542&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4542&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4543&#10;(dp4544&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4545&#10;(dp4546&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4547&#10;(dp4548&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4549&#10;(dp4550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4551&#10;(dp4552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4553&#10;(dp4554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Successful'&#10;p4555&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4555&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4556&#10;(dp4557&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4558&#10;(dp4559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4560&#10;(dp4561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4562&#10;(dp4563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4564&#10;(dp4565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4566&#10;(dp4567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Failed'&#10;p4568&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4568&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4569&#10;(dp4570&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4571&#10;(dp4572&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4573&#10;(dp4574&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4575&#10;(dp4576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4577&#10;(dp4578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4579&#10;(dp4580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Received'&#10;p4581&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4581&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4582&#10;(dp4583&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4584&#10;(dp4585&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4586&#10;(dp4587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4588&#10;(dp4589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4590&#10;(dp4591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4592&#10;(dp4593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Headers Sent'&#10;p4594&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4594&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4595&#10;(dp4596&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4597&#10;(dp4598&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4599&#10;(dp4600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4601&#10;(dp4602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4603&#10;(dp4604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4605&#10;(dp4606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Sent'&#10;p4607&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4607&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4608&#10;(dp4609&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4610&#10;(dp4611&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4612&#10;(dp4613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4614&#10;(dp4615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4616&#10;(dp4617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4618&#10;(dp4619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Responses Received'&#10;p4620&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4620&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4621&#10;(dp4622&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4623&#10;(dp4624&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4625&#10;(dp4626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4627&#10;(dp4628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4629&#10;(dp4630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4631&#10;(dp4632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Successful'&#10;p4633&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4633&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4634&#10;(dp4635&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4636&#10;(dp4637&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4638&#10;(dp4639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4640&#10;(dp4641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4642&#10;(dp4643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4644&#10;(dp4645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Failed'&#10;p4646&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4646&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4647&#10;(dp4648&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4649&#10;(dp4650&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4651&#10;(dp4652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4653&#10;(dp4654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4655&#10;(dp4656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4657&#10;(dp4658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Responses Received'&#10;p4659&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4659&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4660&#10;(dp4661&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4662&#10;(dp4663&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4664&#10;(dp4665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4666&#10;(dp4667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4668&#10;(dp4669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4670&#10;(dp4671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Successful'&#10;p4672&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4672&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4673&#10;(dp4674&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4675&#10;(dp4676&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4677&#10;(dp4678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4679&#10;(dp4680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4681&#10;(dp4682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4683&#10;(dp4684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Failed'&#10;p4685&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4685&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4686&#10;(dp4687&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4688&#10;(dp4689&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4690&#10;(dp4691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4692&#10;(dp4693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4694&#10;(dp4695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4696&#10;(dp4697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p4698&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4698&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4699&#10;(dp4700&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4701&#10;(dp4702&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4703&#10;(dp4704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4705&#10;(dp4706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4707&#10;(dp4708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4709&#10;(dp4710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p4711&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4711&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4712&#10;(dp4713&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4714&#10;(dp4715&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4716&#10;(dp4717&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4718&#10;(dp4719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4720&#10;(dp4721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4722&#10;(dp4723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p4724&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4724&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4725&#10;(dp4726&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4727&#10;(dp4728&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4729&#10;(dp4730&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4731&#10;(dp4732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4733&#10;(dp4734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4735&#10;(dp4736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p4737&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4737&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4738&#10;(dp4739&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4740&#10;(dp4741&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4742&#10;(dp4743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4744&#10;(dp4745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4746&#10;(dp4747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4748&#10;(dp4749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Decompressed Content Bytes Received'&#10;p4750&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4750&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4751&#10;(dp4752&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4753&#10;(dp4754&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4755&#10;(dp4756&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4757&#10;(dp4758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4759&#10;(dp4760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4761&#10;(dp4762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p4763&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4763&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4764&#10;(dp4765&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4766&#10;(dp4767&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4768&#10;(dp4769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4770&#10;(dp4771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4772&#10;(dp4773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4774&#10;(dp4775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p4776&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4776&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4777&#10;(dp4778&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4779&#10;(dp4780&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4781&#10;(dp4782&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4783&#10;(dp4784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4785&#10;(dp4786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4787&#10;(dp4788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected'&#10;p4789&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4789&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4790&#10;(dp4791&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4792&#10;(dp4793&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4794&#10;(dp4795&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4796&#10;(dp4797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4798&#10;(dp4799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4800&#10;(dp4801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Path Match Failed)'&#10;p4802&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4802&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4803&#10;(dp4804&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4805&#10;(dp4806&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4807&#10;(dp4808&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4809&#10;(dp4810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4811&#10;(dp4812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4813&#10;(dp4814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Domain Match Failed)'&#10;p4815&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4815&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4816&#10;(dp4817&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4818&#10;(dp4819&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4820&#10;(dp4821&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4822&#10;(dp4823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4824&#10;(dp4825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4826&#10;(dp4827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Cookiejar Overflow)'&#10;p4828&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4828&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4829&#10;(dp4830&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4831&#10;(dp4832&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4833&#10;(dp4834&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4835&#10;(dp4836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4837&#10;(dp4838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4839&#10;(dp4840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Probabilistic Reject)'&#10;p4841&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4841&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4842&#10;(dp4843&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4844&#10;(dp4845&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4846&#10;(dp4847&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4848&#10;(dp4849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4850&#10;(dp4851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4852&#10;(dp4853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookie headers Rejected - (Memory Overflow)'&#10;p4854&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4854&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4855&#10;(dp4856&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4857&#10;(dp4858&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4859&#10;(dp4860&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4861&#10;(dp4862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4863&#10;(dp4864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4865&#10;(dp4866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connect Time (us)'&#10;p4867&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4867&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4868&#10;(dp4869&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4870&#10;(dp4871&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4872&#10;(dp4873&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4874&#10;(dp4875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4876&#10;(dp4877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4878&#10;(dp4879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To First Byte (us)'&#10;p4880&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4880&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4881&#10;(dp4882&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4883&#10;(dp4884&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4885&#10;(dp4886&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4887&#10;(dp4888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4889&#10;(dp4890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4891&#10;(dp4892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To Last Byte (us)'&#10;p4893&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4893&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4894&#10;(dp4895&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4896&#10;(dp4897&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4898&#10;(dp4899&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4900&#10;(dp4901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4902&#10;(dp4903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4904&#10;(dp4905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Average (us)'&#10;p4906&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4906&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4907&#10;(dp4908&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4909&#10;(dp4910&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4911&#10;(dp4912&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4913&#10;(dp4914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4915&#10;(dp4916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4917&#10;(dp4918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Minimum (us)'&#10;p4919&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4919&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4920&#10;(dp4921&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4922&#10;(dp4923&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4924&#10;(dp4925&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4926&#10;(dp4927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4928&#10;(dp4929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4930&#10;(dp4931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Maximum (us)'&#10;p4932&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4932&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4933&#10;(dp4934&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4935&#10;(dp4936&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4937&#10;(dp4938&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4939&#10;(dp4940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4941&#10;(dp4942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4943&#10;(dp4944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Failed'&#10;p4945&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4945&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4946&#10;(dp4947&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4948&#10;(dp4949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4950&#10;(dp4951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4952&#10;(dp4953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4954&#10;(dp4955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4956&#10;(dp4957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Succeeded'&#10;p4958&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4958&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4959&#10;(dp4960&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4961&#10;(dp4962&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4963&#10;(dp4964&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4965&#10;(dp4966&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4967&#10;(dp4968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4969&#10;(dp4970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Received'&#10;p4971&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4971&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4972&#10;(dp4973&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4974&#10;(dp4975&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4976&#10;(dp4977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4978&#10;(dp4979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4980&#10;(dp4981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4982&#10;(dp4983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Received'&#10;p4984&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4984&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4985&#10;(dp4986&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4987&#10;(dp4988&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4989&#10;(dp4990&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4991&#10;(dp4992&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4993&#10;(dp4994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4995&#10;(dp4996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Received'&#10;p4997&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4997&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4998&#10;(dp4999&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5000&#10;(dp5001&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5002&#10;(dp5003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5004&#10;(dp5005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5006&#10;(dp5007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5008&#10;(dp5009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Received'&#10;p5010&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5010&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5011&#10;(dp5012&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5013&#10;(dp5014&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5015&#10;(dp5016&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5017&#10;(dp5018&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5019&#10;(dp5020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5021&#10;(dp5022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Received'&#10;p5023&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5023&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5024&#10;(dp5025&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5026&#10;(dp5027&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5028&#10;(dp5029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5030&#10;(dp5031&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5032&#10;(dp5033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5034&#10;(dp5035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Received'&#10;p5036&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5036&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5037&#10;(dp5038&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5039&#10;(dp5040&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5041&#10;(dp5042&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5043&#10;(dp5044&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5045&#10;(dp5046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5047&#10;(dp5048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Received'&#10;p5049&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5049&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5050&#10;(dp5051&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5052&#10;(dp5053&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5054&#10;(dp5055&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5056&#10;(dp5057&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5058&#10;(dp5059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5060&#10;(dp5061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Received'&#10;p5062&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5062&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5063&#10;(dp5064&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5065&#10;(dp5066&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5067&#10;(dp5068&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5069&#10;(dp5070&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5071&#10;(dp5072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5073&#10;(dp5074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Received'&#10;p5075&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5075&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5076&#10;(dp5077&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5078&#10;(dp5079&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5080&#10;(dp5081&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5082&#10;(dp5083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5084&#10;(dp5085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5086&#10;(dp5087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Received'&#10;p5088&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5088&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5089&#10;(dp5090&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5091&#10;(dp5092&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5093&#10;(dp5094&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5095&#10;(dp5096&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5097&#10;(dp5098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5099&#10;(dp5100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Sent'&#10;p5101&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5101&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5102&#10;(dp5103&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5104&#10;(dp5105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5106&#10;(dp5107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5108&#10;(dp5109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5110&#10;(dp5111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5112&#10;(dp5113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Sent'&#10;p5114&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5114&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5115&#10;(dp5116&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5117&#10;(dp5118&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5119&#10;(dp5120&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5121&#10;(dp5122&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5123&#10;(dp5124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5125&#10;(dp5126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Sent'&#10;p5127&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5127&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5128&#10;(dp5129&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5130&#10;(dp5131&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5132&#10;(dp5133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5134&#10;(dp5135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5136&#10;(dp5137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5138&#10;(dp5139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Sent'&#10;p5140&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5140&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5141&#10;(dp5142&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5143&#10;(dp5144&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5145&#10;(dp5146&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5147&#10;(dp5148&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5149&#10;(dp5150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5151&#10;(dp5152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Sent'&#10;p5153&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5153&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5154&#10;(dp5155&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5156&#10;(dp5157&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5158&#10;(dp5159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5160&#10;(dp5161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5162&#10;(dp5163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5164&#10;(dp5165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Sent'&#10;p5166&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5166&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5167&#10;(dp5168&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5169&#10;(dp5170&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5171&#10;(dp5172&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5173&#10;(dp5174&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5175&#10;(dp5176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5177&#10;(dp5178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Sent'&#10;p5179&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5179&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5180&#10;(dp5181&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5182&#10;(dp5183&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5184&#10;(dp5185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5186&#10;(dp5187&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5188&#10;(dp5189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5190&#10;(dp5191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Sent'&#10;p5192&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5192&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5193&#10;(dp5194&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5195&#10;(dp5196&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5197&#10;(dp5198&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5199&#10;(dp5200&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5201&#10;(dp5202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5203&#10;(dp5204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Sent'&#10;p5205&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5205&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5206&#10;(dp5207&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5208&#10;(dp5209&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5210&#10;(dp5211&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5212&#10;(dp5213&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5214&#10;(dp5215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5216&#10;(dp5217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Sent'&#10;p5218&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5218&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5219&#10;(dp5220&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5221&#10;(dp5222&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5223&#10;(dp5224&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5225&#10;(dp5226&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5227&#10;(dp5228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5229&#10;(dp5230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Client'&#10;p5231&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5231&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5232&#10;(dp5233&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5234&#10;(dp5235&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5236&#10;(dp5237&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5238&#10;(dp5239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5240&#10;(dp5241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5242&#10;(dp5243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Server'&#10;p5244&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5244&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5245&#10;(dp5246&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5247&#10;(dp5248&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5249&#10;(dp5250&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5251&#10;(dp5252&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5253&#10;(dp5254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5255&#10;(dp5256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Client to Server)'&#10;p5257&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5257&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5258&#10;(dp5259&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5260&#10;(dp5261&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5262&#10;(dp5263&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5264&#10;(dp5265&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5266&#10;(dp5267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5268&#10;(dp5269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Server to Client)'&#10;p5270&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5270&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5271&#10;(dp5272&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5273&#10;(dp5274&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5275&#10;(dp5276&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5277&#10;(dp5278&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5279&#10;(dp5280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5281&#10;(dp5282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Client to Server)'&#10;p5283&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5283&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5284&#10;(dp5285&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5286&#10;(dp5287&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5288&#10;(dp5289&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5290&#10;(dp5291&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5292&#10;(dp5293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5294&#10;(dp5295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Server to Client)'&#10;p5296&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5296&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5297&#10;(dp5298&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5299&#10;(dp5300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5301&#10;(dp5302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5303&#10;(dp5304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5305&#10;(dp5306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5307&#10;(dp5308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Succeeded'&#10;p5309&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5309&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5310&#10;(dp5311&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5312&#10;(dp5313&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5314&#10;(dp5315&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5316&#10;(dp5317&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5318&#10;(dp5319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5320&#10;(dp5321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Failed'&#10;p5322&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5322&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5323&#10;(dp5324&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5325&#10;(dp5326&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5327&#10;(dp5328&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5329&#10;(dp5330&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5331&#10;(dp5332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5333&#10;(dp5334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Protocol Error'&#10;p5335&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5335&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5336&#10;(dp5337&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5338&#10;(dp5339&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5340&#10;(dp5341&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5342&#10;(dp5343&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5344&#10;(dp5345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5346&#10;(dp5347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Internal Error'&#10;p5348&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5348&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5349&#10;(dp5350&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5351&#10;(dp5352&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5353&#10;(dp5354&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5355&#10;(dp5356&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5357&#10;(dp5358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5359&#10;(dp5360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Flow Control Error'&#10;p5361&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5361&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5362&#10;(dp5363&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5364&#10;(dp5365&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5366&#10;(dp5367&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5368&#10;(dp5369&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5370&#10;(dp5371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5372&#10;(dp5373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Timeout Error'&#10;p5374&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5374&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5375&#10;(dp5376&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5377&#10;(dp5378&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5379&#10;(dp5380&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5381&#10;(dp5382&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5383&#10;(dp5384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5385&#10;(dp5386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Closed Error'&#10;p5387&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5387&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5388&#10;(dp5389&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5390&#10;(dp5391&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5392&#10;(dp5393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5394&#10;(dp5395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5396&#10;(dp5397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5398&#10;(dp5399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Frame Size Error'&#10;p5400&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5400&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5401&#10;(dp5402&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5403&#10;(dp5404&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5405&#10;(dp5406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5407&#10;(dp5408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5409&#10;(dp5410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5411&#10;(dp5412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Refused Stream Error'&#10;p5413&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5413&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5414&#10;(dp5415&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5416&#10;(dp5417&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5418&#10;(dp5419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5420&#10;(dp5421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5422&#10;(dp5423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5424&#10;(dp5425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Cancelled Error'&#10;p5426&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5426&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5427&#10;(dp5428&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5429&#10;(dp5430&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5431&#10;(dp5432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5433&#10;(dp5434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5435&#10;(dp5436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5437&#10;(dp5438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Compression Error'&#10;p5439&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5439&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5440&#10;(dp5441&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5442&#10;(dp5443&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5444&#10;(dp5445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5446&#10;(dp5447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5448&#10;(dp5449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5450&#10;(dp5451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connect Error'&#10;p5452&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5452&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5453&#10;(dp5454&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5455&#10;(dp5456&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5457&#10;(dp5458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5459&#10;(dp5460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5461&#10;(dp5462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5463&#10;(dp5464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Enhance Calm Error'&#10;p5465&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5465&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5466&#10;(dp5467&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5468&#10;(dp5469&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5470&#10;(dp5471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5472&#10;(dp5473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5474&#10;(dp5475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5476&#10;(dp5477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Inadequate Security Error'&#10;p5478&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5478&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5479&#10;(dp5480&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5481&#10;(dp5482&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5483&#10;(dp5484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5485&#10;(dp5486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5487&#10;(dp5488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5489&#10;(dp5490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 HTTP1_1 Required Error'&#10;p5491&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5491&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5492&#10;(dp5493&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5494&#10;(dp5495&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5496&#10;(dp5497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5498&#10;(dp5499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5500&#10;(dp5501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5502&#10;(dp5503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p5504&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5504&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5505&#10;(dp5506&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5507&#10;(dp5508&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5509&#10;(dp5510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5511&#10;(dp5512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5513&#10;(dp5514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5515&#10;(dp5516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p5517&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5517&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5518&#10;(dp5519&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5520&#10;(dp5521&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5522&#10;(dp5523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5524&#10;(dp5525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5526&#10;(dp5527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5528&#10;(dp5529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p5530&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5530&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5531&#10;(dp5532&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5533&#10;(dp5534&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5535&#10;(dp5536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5537&#10;(dp5538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5539&#10;(dp5540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5541&#10;(dp5542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p5543&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5543&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5544&#10;(dp5545&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5546&#10;(dp5547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5548&#10;(dp5549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5550&#10;(dp5551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5552&#10;(dp5553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5554&#10;(dp5555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p5556&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5556&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5557&#10;(dp5558&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5559&#10;(dp5560&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5561&#10;(dp5562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5563&#10;(dp5564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5565&#10;(dp5566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5567&#10;(dp5568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p5569&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5569&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5570&#10;(dp5571&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5572&#10;(dp5573&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5574&#10;(dp5575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5576&#10;(dp5577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5578&#10;(dp5579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5580&#10;(dp5581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p5582&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5582&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5583&#10;(dp5584&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5585&#10;(dp5586&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5587&#10;(dp5588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5589&#10;(dp5590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5591&#10;(dp5592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5593&#10;(dp5594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p5595&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5595&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5596&#10;(dp5597&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5598&#10;(dp5599&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5600&#10;(dp5601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5602&#10;(dp5603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5604&#10;(dp5605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5606&#10;(dp5607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p5608&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5608&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5609&#10;(dp5610&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5611&#10;(dp5612&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5613&#10;(dp5614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5615&#10;(dp5616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5617&#10;(dp5618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5619&#10;(dp5620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p5621&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5621&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5622&#10;(dp5623&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5624&#10;(dp5625&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5626&#10;(dp5627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5628&#10;(dp5629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5630&#10;(dp5631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5632&#10;(dp5633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p5634&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5634&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5635&#10;(dp5636&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5637&#10;(dp5638&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5639&#10;(dp5640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5641&#10;(dp5642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5643&#10;(dp5644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5645&#10;(dp5646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p5647&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5647&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5648&#10;(dp5649&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5650&#10;(dp5651&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5652&#10;(dp5653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5654&#10;(dp5655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5656&#10;(dp5657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5658&#10;(dp5659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p5660&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5660&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5661&#10;(dp5662&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5663&#10;(dp5664&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5665&#10;(dp5666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5667&#10;(dp5668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5669&#10;(dp5670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5671&#10;(dp5672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p5673&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5673&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5674&#10;(dp5675&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5676&#10;(dp5677&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5678&#10;(dp5679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5680&#10;(dp5681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5682&#10;(dp5683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5684&#10;(dp5685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p5686&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5686&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5687&#10;(dp5688&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5689&#10;(dp5690&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5691&#10;(dp5692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5693&#10;(dp5694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5695&#10;(dp5696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5697&#10;(dp5698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p5699&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5699&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5700&#10;(dp5701&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5702&#10;(dp5703&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5704&#10;(dp5705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5706&#10;(dp5707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5708&#10;(dp5709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5710&#10;(dp5711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p5712&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5712&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5713&#10;(dp5714&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5715&#10;(dp5716&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5717&#10;(dp5718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5719&#10;(dp5720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5721&#10;(dp5722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5723&#10;(dp5724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p5725&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5725&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5726&#10;(dp5727&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5728&#10;(dp5729&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5730&#10;(dp5731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5732&#10;(dp5733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5734&#10;(dp5735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5736&#10;(dp5737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p5738&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5738&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5739&#10;(dp5740&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5741&#10;(dp5742&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5743&#10;(dp5744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5745&#10;(dp5746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5747&#10;(dp5748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5749&#10;(dp5750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p5751&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5751&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5752&#10;(dp5753&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5754&#10;(dp5755&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5756&#10;(dp5757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5758&#10;(dp5759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5760&#10;(dp5761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5762&#10;(dp5763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p5764&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5764&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5765&#10;(dp5766&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5767&#10;(dp5768&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5769&#10;(dp5770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5771&#10;(dp5772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5773&#10;(dp5774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5775&#10;(dp5776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p5777&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5777&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5778&#10;(dp5779&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5780&#10;(dp5781&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5782&#10;(dp5783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5784&#10;(dp5785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5786&#10;(dp5787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5788&#10;(dp5789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p5790&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5790&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5791&#10;(dp5792&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5793&#10;(dp5794&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5795&#10;(dp5796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5797&#10;(dp5798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5799&#10;(dp5800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5801&#10;(dp5802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p5803&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5803&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5804&#10;(dp5805&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5806&#10;(dp5807&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5808&#10;(dp5809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5810&#10;(dp5811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5812&#10;(dp5813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5814&#10;(dp5815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p5816&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5816&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5817&#10;(dp5818&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5819&#10;(dp5820&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5821&#10;(dp5822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5823&#10;(dp5824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5825&#10;(dp5826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5827&#10;(dp5828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p5829&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5829&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5830&#10;(dp5831&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5832&#10;(dp5833&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5834&#10;(dp5835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5836&#10;(dp5837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5838&#10;(dp5839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5840&#10;(dp5841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p5842&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5842&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5843&#10;(dp5844&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5845&#10;(dp5846&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5847&#10;(dp5848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5849&#10;(dp5850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5851&#10;(dp5852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5853&#10;(dp5854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p5855&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5855&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5856&#10;(dp5857&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5858&#10;(dp5859&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5860&#10;(dp5861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5862&#10;(dp5863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5864&#10;(dp5865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5866&#10;(dp5867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p5868&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5868&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5869&#10;(dp5870&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5871&#10;(dp5872&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5873&#10;(dp5874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5875&#10;(dp5876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5877&#10;(dp5878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5879&#10;(dp5880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p5881&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5881&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5882&#10;(dp5883&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5884&#10;(dp5885&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5886&#10;(dp5887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5888&#10;(dp5889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5890&#10;(dp5891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5892&#10;(dp5893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p5894&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5894&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5895&#10;(dp5896&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5897&#10;(dp5898&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5899&#10;(dp5900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5901&#10;(dp5902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5903&#10;(dp5904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5905&#10;(dp5906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p5907&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5907&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5908&#10;(dp5909&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5910&#10;(dp5911&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5912&#10;(dp5913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5914&#10;(dp5915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5916&#10;(dp5917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5918&#10;(dp5919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p5920&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5920&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5921&#10;(dp5922&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5923&#10;(dp5924&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5925&#10;(dp5926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5927&#10;(dp5928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5929&#10;(dp5930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5931&#10;(dp5932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p5933&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5933&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5934&#10;(dp5935&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5936&#10;(dp5937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5938&#10;(dp5939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5940&#10;(dp5941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5942&#10;(dp5943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5944&#10;(dp5945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p5946&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5946&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5947&#10;(dp5948&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5949&#10;(dp5950&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5951&#10;(dp5952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5953&#10;(dp5954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5955&#10;(dp5956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5957&#10;(dp5958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p5959&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5959&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5960&#10;(dp5961&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5962&#10;(dp5963&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5964&#10;(dp5965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5966&#10;(dp5967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5968&#10;(dp5969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5970&#10;(dp5971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p5972&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5972&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5973&#10;(dp5974&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5975&#10;(dp5976&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5977&#10;(dp5978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5979&#10;(dp5980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5981&#10;(dp5982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5983&#10;(dp5984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p5985&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5985&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5986&#10;(dp5987&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5988&#10;(dp5989&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5990&#10;(dp5991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5992&#10;(dp5993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5994&#10;(dp5995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5996&#10;(dp5997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p5998&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5998&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5999&#10;(dp6000&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6001&#10;(dp6002&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6003&#10;(dp6004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6005&#10;(dp6006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6007&#10;(dp6008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6009&#10;(dp6010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p6011&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6011&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6012&#10;(dp6013&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6014&#10;(dp6015&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6016&#10;(dp6017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6018&#10;(dp6019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6020&#10;(dp6021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6022&#10;(dp6023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p6024&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6024&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6025&#10;(dp6026&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6027&#10;(dp6028&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6029&#10;(dp6030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6031&#10;(dp6032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6033&#10;(dp6034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6035&#10;(dp6036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p6037&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6037&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6038&#10;(dp6039&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6040&#10;(dp6041&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6042&#10;(dp6043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6044&#10;(dp6045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6046&#10;(dp6047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6048&#10;(dp6049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p6050&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6050&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6051&#10;(dp6052&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6053&#10;(dp6054&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6055&#10;(dp6056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6057&#10;(dp6058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6059&#10;(dp6060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6061&#10;(dp6062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p6063&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6063&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6064&#10;(dp6065&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6066&#10;(dp6067&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6068&#10;(dp6069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6070&#10;(dp6071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6072&#10;(dp6073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6074&#10;(dp6075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p6076&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6076&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6077&#10;(dp6078&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6079&#10;(dp6080&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6081&#10;(dp6082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6083&#10;(dp6084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6085&#10;(dp6086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6087&#10;(dp6088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p6089&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6089&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6090&#10;(dp6091&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6092&#10;(dp6093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6094&#10;(dp6095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6096&#10;(dp6097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6098&#10;(dp6099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6100&#10;(dp6101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p6102&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6102&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6103&#10;(dp6104&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6105&#10;(dp6106&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6107&#10;(dp6108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6109&#10;(dp6110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6111&#10;(dp6112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6113&#10;(dp6114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p6115&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6115&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6116&#10;(dp6117&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6118&#10;(dp6119&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6120&#10;(dp6121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6122&#10;(dp6123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6124&#10;(dp6125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6126&#10;(dp6127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p6128&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6128&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6129&#10;(dp6130&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6131&#10;(dp6132&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6133&#10;(dp6134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6135&#10;(dp6136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6137&#10;(dp6138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6139&#10;(dp6140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p6141&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6141&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6142&#10;(dp6143&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6144&#10;(dp6145&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6146&#10;(dp6147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6148&#10;(dp6149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6150&#10;(dp6151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6152&#10;(dp6153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p6154&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6154&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6155&#10;(dp6156&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6157&#10;(dp6158&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6159&#10;(dp6160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6161&#10;(dp6162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6163&#10;(dp6164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6165&#10;(dp6166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p6167&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6167&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6168&#10;(dp6169&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6170&#10;(dp6171&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6172&#10;(dp6173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6174&#10;(dp6175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6176&#10;(dp6177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6178&#10;(dp6179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p6180&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6180&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6181&#10;(dp6182&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6183&#10;(dp6184&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6185&#10;(dp6186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6187&#10;(dp6188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6189&#10;(dp6190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6191&#10;(dp6192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p6193&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6193&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6194&#10;(dp6195&#10;g11&#10;Nsg12&#10;I186&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6196&#10;(dp6197&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6198&#10;(dp6199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6200&#10;(dp6201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6202&#10;(dp6203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6204&#10;(dp6205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p6206&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6206&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6207&#10;(dp6208&#10;g11&#10;Nsg12&#10;I187&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6209&#10;(dp6210&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6211&#10;(dp6212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6213&#10;(dp6214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6215&#10;(dp6216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6217&#10;(dp6218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p6219&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6219&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6220&#10;(dp6221&#10;g11&#10;Nsg12&#10;I188&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6222&#10;(dp6223&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6224&#10;(dp6225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6226&#10;(dp6227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6228&#10;(dp6229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6230&#10;(dp6231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p6232&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6232&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6233&#10;(dp6234&#10;g11&#10;Nsg12&#10;I189&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6235&#10;(dp6236&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6237&#10;(dp6238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6239&#10;(dp6240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6241&#10;(dp6242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6243&#10;(dp6244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p6245&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6245&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6246&#10;(dp6247&#10;g11&#10;Nsg12&#10;I190&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6248&#10;(dp6249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6250&#10;(dp6251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6252&#10;(dp6253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6254&#10;(dp6255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6256&#10;(dp6257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p6258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6259&#10;(dp6260&#10;g11&#10;Nsg12&#10;I191&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6261&#10;(dp6262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6263&#10;(dp6264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6265&#10;(dp6266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6267&#10;(dp6268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6269&#10;(dp6270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p6271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6272&#10;(dp6273&#10;g11&#10;Nsg12&#10;I192&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6274&#10;(dp6275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6276&#10;(dp6277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6278&#10;(dp6279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6280&#10;(dp6281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6282&#10;(dp6283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p6284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6285&#10;(dp6286&#10;g11&#10;Nsg12&#10;I193&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6287&#10;(dp6288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6289&#10;(dp6290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6291&#10;(dp6292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6293&#10;(dp6294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6295&#10;(dp6296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p6297&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6297&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6298&#10;(dp6299&#10;g11&#10;Nsg12&#10;I194&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6300&#10;(dp6301&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6302&#10;(dp6303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6304&#10;(dp6305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6306&#10;(dp6307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6308&#10;(dp6309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p6310&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6310&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6311&#10;(dp6312&#10;g11&#10;Nsg12&#10;I195&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6313&#10;(dp6314&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6315&#10;(dp6316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6317&#10;(dp6318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6319&#10;(dp6320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6321&#10;(dp6322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p6323&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6323&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6324&#10;(dp6325&#10;g11&#10;Nsg12&#10;I196&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6326&#10;(dp6327&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6328&#10;(dp6329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6330&#10;(dp6331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6332&#10;(dp6333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6334&#10;(dp6335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p6336&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6336&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6337&#10;(dp6338&#10;g11&#10;Nsg12&#10;I197&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6339&#10;(dp6340&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6341&#10;(dp6342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6343&#10;(dp6344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6345&#10;(dp6346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6347&#10;(dp6348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p6349&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6349&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6350&#10;(dp6351&#10;g11&#10;Nsg12&#10;I198&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6352&#10;(dp6353&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6354&#10;(dp6355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6356&#10;(dp6357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6358&#10;(dp6359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6360&#10;(dp6361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p6362&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6362&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6363&#10;(dp6364&#10;g11&#10;Nsg12&#10;I199&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6365&#10;(dp6366&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6367&#10;(dp6368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6369&#10;(dp6370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6371&#10;(dp6372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6373&#10;(dp6374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p6375&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6375&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6376&#10;(dp6377&#10;g11&#10;Nsg12&#10;I200&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6378&#10;(dp6379&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6380&#10;(dp6381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6382&#10;(dp6383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6384&#10;(dp6385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6386&#10;(dp6387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p6388&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6388&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6389&#10;(dp6390&#10;g11&#10;Nsg12&#10;I201&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6391&#10;(dp6392&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6393&#10;(dp6394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6395&#10;(dp6396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6397&#10;(dp6398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6399&#10;(dp6400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p6401&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6401&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6402&#10;(dp6403&#10;g11&#10;Nsg12&#10;I202&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6404&#10;(dp6405&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6406&#10;(dp6407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6408&#10;(dp6409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6410&#10;(dp6411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6412&#10;(dp6413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p6414&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6414&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6415&#10;(dp6416&#10;g11&#10;Nsg12&#10;I203&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6417&#10;(dp6418&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6419&#10;(dp6420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6421&#10;(dp6422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6423&#10;(dp6424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6425&#10;(dp6426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p6427&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6427&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6428&#10;(dp6429&#10;g11&#10;Nsg12&#10;I204&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6430&#10;(dp6431&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6432&#10;(dp6433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6434&#10;(dp6435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6436&#10;(dp6437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6438&#10;(dp6439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p6440&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6440&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6441&#10;(dp6442&#10;g11&#10;Nsg12&#10;I205&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6443&#10;(dp6444&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6445&#10;(dp6446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6447&#10;(dp6448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6449&#10;(dp6450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6451&#10;(dp6452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p6453&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6453&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6454&#10;(dp6455&#10;g11&#10;Nsg12&#10;I206&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6456&#10;(dp6457&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6458&#10;(dp6459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6460&#10;(dp6461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6462&#10;(dp6463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6464&#10;(dp6465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p6466&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6466&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6467&#10;(dp6468&#10;g11&#10;Nsg12&#10;I207&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6469&#10;(dp6470&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6471&#10;(dp6472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6473&#10;(dp6474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6475&#10;(dp6476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6477&#10;(dp6478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p6479&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6479&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6480&#10;(dp6481&#10;g11&#10;Nsg12&#10;I208&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6482&#10;(dp6483&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6484&#10;(dp6485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6486&#10;(dp6487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6488&#10;(dp6489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6490&#10;(dp6491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p6492&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6492&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6493&#10;(dp6494&#10;g11&#10;Nsg12&#10;I209&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6495&#10;(dp6496&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6497&#10;(dp6498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6499&#10;(dp6500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6501&#10;(dp6502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6503&#10;(dp6504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p6505&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6505&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6506&#10;(dp6507&#10;g11&#10;Nsg12&#10;I210&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6508&#10;(dp6509&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6510&#10;(dp6511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6512&#10;(dp6513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6514&#10;(dp6515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6516&#10;(dp6517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p6518&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6518&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6519&#10;(dp6520&#10;g11&#10;Nsg12&#10;I211&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6521&#10;(dp6522&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6523&#10;(dp6524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6525&#10;(dp6526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6527&#10;(dp6528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6529&#10;(dp6530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p6531&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6531&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6532&#10;(dp6533&#10;g11&#10;Nsg12&#10;I212&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6534&#10;(dp6535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6536&#10;(dp6537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6538&#10;(dp6539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6540&#10;(dp6541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6542&#10;(dp6543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p6544&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6544&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6545&#10;(dp6546&#10;g11&#10;Nsg12&#10;I213&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6547&#10;(dp6548&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6549&#10;(dp6550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6551&#10;(dp6552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6553&#10;(dp6554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6555&#10;(dp6556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p6557&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6557&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6558&#10;(dp6559&#10;g11&#10;Nsg12&#10;I214&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6560&#10;(dp6561&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6562&#10;(dp6563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6564&#10;(dp6565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6566&#10;(dp6567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6568&#10;(dp6569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p6570&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6570&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6571&#10;(dp6572&#10;g11&#10;Nsg12&#10;I215&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6573&#10;(dp6574&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6575&#10;(dp6576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6577&#10;(dp6578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6579&#10;(dp6580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6581&#10;(dp6582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p6583&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6583&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6584&#10;(dp6585&#10;g11&#10;Nsg12&#10;I216&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6586&#10;(dp6587&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6588&#10;(dp6589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6590&#10;(dp6591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6592&#10;(dp6593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6594&#10;(dp6595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p6596&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6596&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6597&#10;(dp6598&#10;g11&#10;Nsg12&#10;I217&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6599&#10;(dp6600&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6601&#10;(dp6602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6603&#10;(dp6604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6605&#10;(dp6606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6607&#10;(dp6608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p6609&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6609&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6610&#10;(dp6611&#10;g11&#10;Nsg12&#10;I218&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6612&#10;(dp6613&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6614&#10;(dp6615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6616&#10;(dp6617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6618&#10;(dp6619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6620&#10;(dp6621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p6622&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6622&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6623&#10;(dp6624&#10;g11&#10;Nsg12&#10;I219&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6625&#10;(dp6626&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6627&#10;(dp6628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6629&#10;(dp6630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6631&#10;(dp6632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6633&#10;(dp6634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p6635&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6635&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6636&#10;(dp6637&#10;g11&#10;Nsg12&#10;I220&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6638&#10;(dp6639&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6640&#10;(dp6641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6642&#10;(dp6643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6644&#10;(dp6645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6646&#10;(dp6647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p6648&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6648&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6649&#10;(dp6650&#10;g11&#10;Nsg12&#10;I221&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6651&#10;(dp6652&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6653&#10;(dp6654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6655&#10;(dp6656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6657&#10;(dp6658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6659&#10;(dp6660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p6661&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6661&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6662&#10;(dp6663&#10;g11&#10;Nsg12&#10;I222&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6664&#10;(dp6665&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6666&#10;(dp6667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6668&#10;(dp6669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6670&#10;(dp6671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6672&#10;(dp6673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p6674&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6674&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6675&#10;(dp6676&#10;g11&#10;Nsg12&#10;I223&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6677&#10;(dp6678&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6679&#10;(dp6680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6681&#10;(dp6682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6683&#10;(dp6684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6685&#10;(dp6686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p6687&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6687&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6688&#10;(dp6689&#10;g11&#10;Nsg12&#10;I224&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6690&#10;(dp6691&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6692&#10;(dp6693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6694&#10;(dp6695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6696&#10;(dp6697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6698&#10;(dp6699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p6700&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6700&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6701&#10;(dp6702&#10;g11&#10;Nsg12&#10;I225&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6703&#10;(dp6704&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6705&#10;(dp6706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6707&#10;(dp6708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6709&#10;(dp6710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6711&#10;(dp6712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p6713&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6713&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6714&#10;(dp6715&#10;g11&#10;Nsg12&#10;I226&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6716&#10;(dp6717&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6718&#10;(dp6719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6720&#10;(dp6721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6722&#10;(dp6723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6724&#10;(dp6725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p6726&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6726&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6727&#10;(dp6728&#10;g11&#10;Nsg12&#10;I227&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6729&#10;(dp6730&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6731&#10;(dp6732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6733&#10;(dp6734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6735&#10;(dp6736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6737&#10;(dp6738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p6739&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6739&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6740&#10;(dp6741&#10;g11&#10;Nsg12&#10;I228&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6742&#10;(dp6743&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6744&#10;(dp6745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6746&#10;(dp6747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6748&#10;(dp6749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6750&#10;(dp6751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p6752&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6752&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6753&#10;(dp6754&#10;g11&#10;Nsg12&#10;I229&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6755&#10;(dp6756&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6757&#10;(dp6758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6759&#10;(dp6760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6761&#10;(dp6762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6763&#10;(dp6764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p6765&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6765&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6766&#10;(dp6767&#10;g11&#10;Nsg12&#10;I230&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6768&#10;(dp6769&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6770&#10;(dp6771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6772&#10;(dp6773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6774&#10;(dp6775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6776&#10;(dp6777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p6778&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6778&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6779&#10;(dp6780&#10;g11&#10;Nsg12&#10;I231&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6781&#10;(dp6782&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6783&#10;(dp6784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6785&#10;(dp6786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6787&#10;(dp6788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6789&#10;(dp6790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p6791&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6791&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6792&#10;(dp6793&#10;g11&#10;Nsg12&#10;I232&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6794&#10;(dp6795&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6796&#10;(dp6797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6798&#10;(dp6799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6800&#10;(dp6801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6802&#10;(dp6803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p6804&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6804&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6805&#10;(dp6806&#10;g11&#10;Nsg12&#10;I233&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6807&#10;(dp6808&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6809&#10;(dp6810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6811&#10;(dp6812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6813&#10;(dp6814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6815&#10;(dp6816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p6817&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6817&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6818&#10;(dp6819&#10;g11&#10;Nsg12&#10;I234&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6820&#10;(dp6821&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6822&#10;(dp6823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6824&#10;(dp6825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6826&#10;(dp6827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6828&#10;(dp6829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p6830&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6830&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6831&#10;(dp6832&#10;g11&#10;Nsg12&#10;I235&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6833&#10;(dp6834&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6835&#10;(dp6836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6837&#10;(dp6838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6839&#10;(dp6840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6841&#10;(dp6842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p6843&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6843&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6844&#10;(dp6845&#10;g11&#10;Nsg12&#10;I236&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6846&#10;(dp6847&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6848&#10;(dp6849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6850&#10;(dp6851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6852&#10;(dp6853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6854&#10;(dp6855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p6856&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6856&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6857&#10;(dp6858&#10;g11&#10;Nsg12&#10;I237&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6859&#10;(dp6860&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6861&#10;(dp6862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6863&#10;(dp6864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6865&#10;(dp6866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6867&#10;(dp6868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p6869&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6869&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6870&#10;(dp6871&#10;g11&#10;Nsg12&#10;I238&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6872&#10;(dp6873&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6874&#10;(dp6875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6876&#10;(dp6877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6878&#10;(dp6879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6880&#10;(dp6881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p6882&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6882&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6883&#10;(dp6884&#10;g11&#10;Nsg12&#10;I239&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6885&#10;(dp6886&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6887&#10;(dp6888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6889&#10;(dp6890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6891&#10;(dp6892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6893&#10;(dp6894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p6895&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6895&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6896&#10;(dp6897&#10;g11&#10;Nsg12&#10;I240&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6898&#10;(dp6899&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6900&#10;(dp6901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6902&#10;(dp6903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6904&#10;(dp6905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6906&#10;(dp6907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p6908&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6908&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6909&#10;(dp6910&#10;g11&#10;Nsg12&#10;I241&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6911&#10;(dp6912&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6913&#10;(dp6914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6915&#10;(dp6916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6917&#10;(dp6918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6919&#10;(dp6920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p6921&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6921&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6922&#10;(dp6923&#10;g11&#10;Nsg12&#10;I242&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6924&#10;(dp6925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6926&#10;(dp6927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6928&#10;(dp6929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6930&#10;(dp6931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6932&#10;(dp6933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p6934&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6934&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6935&#10;(dp6936&#10;g11&#10;Nsg12&#10;I243&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6937&#10;(dp6938&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6939&#10;(dp6940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6941&#10;(dp6942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6943&#10;(dp6944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6945&#10;(dp6946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p6947&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6947&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6948&#10;(dp6949&#10;g11&#10;Nsg12&#10;I244&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6950&#10;(dp6951&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6952&#10;(dp6953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6954&#10;(dp6955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6956&#10;(dp6957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6958&#10;(dp6959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p6960&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6960&#10;sbatRp6961&#10;(dp6962&#10;g12&#10;I244&#10;sg22&#10;I00&#10;sg11&#10;Nsbs.</svRestConfiguration>
- </statManagerOptions>
- <currentUniqueIDForAgent type="int">2</currentUniqueIDForAgent>
- <_scenarioElementFactory ver="[0, [1, [0, [0]]]]" type="ixScenarioElementFactory">
- <singletonDict type="dict"/>
- <referenceCountDict type="dict">
- <item>
- <key type="str">qovCoprocessor</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">Impairment</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">asrCoprocessor</key>
- <value type="int">0</value>
- </item>
- </referenceCountDict>
- </_scenarioElementFactory>
- </item>
- </testList>
-</root>
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports_Concurrency.rxf b/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports_Concurrency.rxf
index f0791fd3b..93b768373 100644
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports_Concurrency.rxf
+++ b/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_2Ports_Concurrency.rxf
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>
<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
<_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;ccbe6b23-38b0-4060-8a29-49ce17c75bb7&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:0A:00:02:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;10.0.2.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;10.0.2.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:0A:00:03:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;10.0.3.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;10.0.3.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3b7f72db-e223-46ac-b71d-75e47f78e682&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;payloadAttrTypes type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
+ <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;72e85c05-6776-493c-9970-832db25a81b7&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;uplink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:0A:00:02:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;10.0.2.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;10.0.2.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;6628a634-d6ea-4f86-94a7-816e8fc2917e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;downlink_0&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:0A:00:03:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;10.0.3.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;10.0.3.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3b7f72db-e223-46ac-b71d-75e47f78e682&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.442&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.80.2&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;payloadAttrTypes type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.442&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
</_smSessionXml>
<_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
<xml type="str"></xml>
@@ -10,11 +10,11 @@
<xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
</_quickTestConfig>
<lastApiUniqueId type="int">15481</lastApiUniqueId>
- <version type="str">8.30.115.50</version>
+ <version type="str">8.30.115.152</version>
<name type="str">HTTP-vFW_IPv4_2Ports_Concurrency.rxf</name>
<comment type="str"></comment>
<path type="str">C:\Results</path>
- <last type="str">HTTP-vFW_IPv4_2Ports.rxf</last>
+ <last type="str">HTTP-vFW_IPv4_2Ports_Concurrency.rxf</last>
<activeTest type="str">Test1</activeTest>
<chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
<chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
@@ -55,7 +55,7 @@
<name type="str">Client</name>
<elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
<item ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
+ <name type="str">HTTP client@uplink_0</name>
<column type="NoneType">None</column>
<scenarioElementType type="str">netTraffic</scenarioElementType>
<enable type="int">1</enable>
@@ -99,7 +99,7 @@
<customPortMap type="NoneType">None</customPortMap>
<sourceCommunity ref="0"/>
<destinationCommunity ver="[1, [24, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
+ <name type="str">HTTP server@downlink_0</name>
<column type="NoneType">None</column>
<scenarioElementType type="str">netTraffic</scenarioElementType>
<enable type="int">1</enable>
@@ -484,7 +484,7 @@
</traffic>
<network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
<resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
+ <name type="str">downlink_0</name>
<role type="str">Server</role>
<networkType type="str">none</networkType>
<aggregation type="int">0</aggregation>
@@ -498,7 +498,7 @@
<networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
<item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
<_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (10.0.3.20+1)</name>
+ <name type="str">Network Range IP-R2 in downlink_0 (10.0.3.20+1)</name>
<rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
<name type="str">DistGroup1</name>
<ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
@@ -863,12 +863,16 @@
<ipPreference type="int">2</ipPreference>
<tcpCloseOption type="int">0</tcpCloseOption>
<piggybackAck type="int">1</piggybackAck>
+ <tcpFastOpen type="int">0</tcpFastOpen>
<enableLargeHeader type="int">0</enableLargeHeader>
<maxHeaderLen type="int">1024</maxHeaderLen>
<useAllIPs type="int">0</useAllIPs>
<enableDecompressSupport type="int">0</enableDecompressSupport>
<enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
<enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
+ <enableAuth type="int">0</enableAuth>
+ <authProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthProfileList" itemtype="ixAuthProfile"/>
+ <ipMappingList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAuthIpMapList" itemtype="ixAuthIpMap"/>
<uniqueID type="int">1</uniqueID>
<disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
<methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
@@ -890,7 +894,7 @@
</traffic>
<network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
<resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
+ <name type="str">uplink_0</name>
<role type="str">Client</role>
<networkType type="str">none</networkType>
<aggregation type="int">0</aggregation>
@@ -904,7 +908,7 @@
<networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
<item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
<_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (10.0.2.20+1)</name>
+ <name type="str">Network Range IP-R1 in uplink_0 (10.0.2.20+1)</name>
<rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
<name type="str">DistGroup1</name>
<ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
@@ -1259,7 +1263,7 @@
<pollingInterval type="int">2</pollingInterval>
<allowCsvLogging type="bool">False</allowCsvLogging>
<enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;UOXD80_BL6U46M5!N_@ ,.R2D!&lt;D%' %W:=54T6(/Q'?&amp;]JW7O+3J&#10;M?^_LVA@#-HG:#W&gt;L]WGF97=G9V?2^KA9&gt;M(*:.0&amp;_G5%4]3*QYO6A!'VU84U&#10;MT#UD*J:JJ(JAZA4D0,1G^V[$I,^PO:Z0D+D;ERC12@FY1,3 MT')\9XH&quot;1%&quot;&#10;MX?9P,.T.IE+UIC4:=R&lt;XO)WVAH/C[Y=NIS&gt;]O&gt;MW.= &gt;/M[U!MU.9CK*1N]Q&#10;MX,3X3&gt;N&gt;PH\8.5MI1;P8KBMZ11B*5OU@L7#]Q6[^GG@1&quot;&amp;SJ+F&amp;R]&gt;T[&gt;&quot;4K&#10;M-Z [AIJA$2/+&lt;$3!=H5G*6X(O+N@Z S?UNDVA!VF&quot;6R(V^P%Q!G1@('-&lt;K)3&#10;M&amp;L.18P^NXX#/%46G/G9],O.@0QB9L(#&quot;*6&amp;TWYV\'[4BZ;.6T*%AS,*893OY&#10;M&amp;'O,#;WCM0E29_(&amp;[9%L&gt;-A%Z%\[CEBP_(1G]IIQS)W-&gt;]&gt;#$6$9(N9O/: L&#10;MVOU*&amp;--^9&amp;TB][KRREAH5:OK]5I9&amp;TI %U5=5;7J;X_]B?T*2R*[/AX:;D8E&#10;MDW+&gt;EA)&amp;JSNK'9@37)/8I\,O03N$VS1(HX &quot;('KT/2:.&amp;WRB01P&gt; :[/;O16&#10;ME?^TJJ6LMN&gt;&quot;S^X#NHP],@'&amp;,%ZRL_O[XJ=-YPK_N[VZ^!$'[.IK&lt;KF3#ROY&#10;MT91Z,OCUA,T7D'+_V(-_[H?_[(?)E&lt; +,8[]8S\N/'9UD'=VEM5D(&amp;&amp;4! Y*&#10;MI$#,YK)F)N./%PMVE?,,5:56&gt;OX\F !UB&gt;?^1?@5NB.+7&quot;0DXN\.A]23?4R\&#10;M3SYA'?HH2=S+Y0M+=P.CW+7QIH?1,2]A\O4,R!(XRL&lt;:GZSF9XMEVH3!(J!;&#10;MSN!7N/HPG8XRV3QZ*M^&gt;+W87BQ/:UO,8(@S:Z)DKD5?W3R^]T:KVHH\&quot;#'F%&#10;M;N9&quot;\9%8L5] =WX[T7XM^]E3J4XLEBI52^&amp;'=1J[9SB3MSC&lt;C&gt;'L&amp;T^X*XC.&#10;ML1[&lt;Q:N'_U@I*TNKK(&lt;ID[ES%RAGVHY=G\UL1ZZ#/9-K6G,FSW0-9.WR4E5!&#10;M=S3=J(L]*5-P:@IC*!\&gt;^*EI=5,HR4&amp;G&lt;E\BH)-&gt;AX,369/KLJ[)!HKJ]5I3&#10;M4^5&amp;K5%OZEKS4C9JAF[6355KRIJJ&amp;D)S3KC0(XQJRL 9^IRAJ]HEBLIZ;:KK&#10;MEF%8AJX8N':S69/5FJ6J.V&lt;/I$KT!OAR(T/&quot;2VSYKI=&gt;1(;O8GI'2TXD286/&#10;MQ'YU?=CMRN_#)WDXF#SU!GAO&amp;TD,%_'&gt;4'?K./PQYTRMJ2N:V5#JIJ+MI305&#10;M)TVE5E,:^\DY-%3+NG2@81FU&gt;L-JVKIMF=I\_@&amp;SVQ%+JQG$,L%$@EUO6CAI&#10;M?-!S!DY=S_ETZGUO,P&quot;V#NCW7&lt;I'5@.+.07/7ZDGYU'$.:-I#!Z02.Q6;]/'&#10;MXD5J*)HJ=6\/E&gt;5H9Y3E$@]FQ@4E2XDGEDCZ&gt;=,P?WGN86GWG%AYYF[+W5OY&#10;M2^A@2M,.K95GHMYF#&quot;$F+Z&quot;YY1G*)2]JT]M32&quot;E.&quot;%\&gt;)S;QQ*KPBJA95LO-&#10;MGPI.5CGX\PSS/Q&lt;[F&quot;V\ Z+&lt;.8ER(?R&gt;5R7W^B0Y?1CRY[$D4MJ!YV%&amp;Y+6A&#10;M&gt;$B $3P()XFW0ZQ4N ^$^N#P%YGSYKQFS&quot;LXPDOUW'O!6E0Y4:&amp;:0[A4&quot;V96&#10;MSA35)2&gt;*U)%3&lt;XR?4Y3V$^=T'5/*U6&amp;Q']B!U_,QXN;$AF*-A:Q2I&gt;,@9C F&#10;M_J)8VQ%&lt;I&amp;89\C0RS&lt;+E&gt;.N+\+*X/!MO25PZ6Y]'+39Q!6_K &gt;4KKQY/2-G5&#10;M*RD!.3LIU[/6[S]TG5DUS[L&gt;W]N*;XU/]%W_.SC[:G\O4TTC83^*&quot;G'&gt;'=^T&#10;M1&quot;!+/KX_UQ6AK9)KRRN'&gt;-(@5:2 .D!% T5L#(RH#ROP=IUL54A@F^POP_,]&#10;M,A+2ZD,T0KDFF4/MP)^[BYB2?%O*=SU&quot;T$90G$?ZO2(T\3%YF[E\^DH3466=&#10;MOMX.1#9U182D8*Z&amp;1JWXMGGXL.V*.'[:J:&amp;\70=6;PCD&amp;-6\Y_\W-H0X7R?_&#10;*R?YN&lt;O,OFQ*L3@ &#10; &#10;end&#10;</svConfiguration>
+ <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6&amp;USXC80_BL&gt;.LVTT_H= R$O-SD@%^9(8#&quot;7ZTS3R0A[(&gt;X9VR?+0-KI&#10;M?^]*-L88FV3:#W?(&gt;IY=K:1'JU4N/VQ7OK0&amp;&amp;GMA&lt;-70%:WQX?K29H0]&gt;K !&#10;MNH=:2DM3-,746@TD0,Q[1U[,I,_P&gt;M4@$?.V'E'BM1)QBYA!X(!2X'VE)$((&#10;MC7OCA]G@82:IUY&gt;3Z&lt;#&amp;YLUL.'XH?S\/^L/9S&lt;?1@ .]\?W'X&lt;.@GP\=YZWW&#10;M!' T^/7E+87O&quot;7)&gt;I37Q$[AJ&amp; TQ4+P&gt;A&lt;NE%RQW_;?$CT%@,V\%]FO@?(07&#10;MLO9&quot;NF-H.1HSLHHF%!Q/1);AIL '2XK!\&amp;6=O4:PPW2!C7&amp;9_9&quot;X$QHR&lt;%C!&#10;M=D83* 5VY[DN!-Q1?!SC(&quot;!S'_J$$9N%%(X)D_WJ%.-H5EF?' D#&amp;B&lt;L2EB^&#10;MDO&gt;)S[S(+\]-D/KV&amp;[1[LN6RBS&amp;^7A*S&lt;/4)]^PEY[1V8]YZ/DP(RQ'1?^,#&#10;M9?'N5T)-!W%W&amp;WM7C1?&amp;HJZJ;C8;96,J(5VJAJ;IZF_W(]MY@161O0 W#1&gt;C&#10;MD5NY;UN)0=7=J'U8$)R36*?#+T$[A'LTS%1 1 M?4^)ZX6?:)A$)&lt; +V+5Q&#10;MJ?*?2[66U?,]&quot;-AM2%&gt;)3VQ@#/62[]W?9S]L^Q?XW\W%V?&lt;D9!&gt;/Z&gt;%./[KI&#10;MCZY8:&gt;/7(S:?0,;]?0_^L6_^LV^F1P(/Q#0)RG&amp;&lt;^&gt;SB(._L1M;2AH0J&quot;5VT&#10;MR(&quot;$+62]E;8_G&quot;W912$R=)6-,@P6H0W4([[W%^%'Z&quot;-9%I20FK];#EDD&gt;TV\&#10;MSSYE'&lt;8H23S*U3/+5@-5[CEXTJ.XS$N9?#X/9 4&lt;Y6V==ZK%WFJ;'F&amp;P#.DK&#10;M9_ CK-[-9I/&lt;MH@&gt;V_&lt;6R]W!XH1&gt;]VD*,8HV?N).Y/7MU^?A9-U\-B8A2OZY&#10;M%P9.0BD_S0K=+L0@)1?5,0+=S&lt;&amp;-]_/:]QY;]1,Q;4FMA&gt;\VF8Y/&lt;.RW.#R,&#10;M\?Q/GGS7$)]BW7G+%Q__L5I6GF+9$-,G\Q8&gt;4,YT7,&gt;:SQU7ML&quot;9RTW]?&quot;[/&#10;M#1UDO=W6-#!&lt;W3 ML29U#HZ'0CT5I8*?NFZUA),&quot;=&amp;SW)09J#_L&lt;M&amp;5=MF1#&#10;MQS&quot;L]GE'-UHMN6U89M.RFJ:L-[5FL],V];;&lt;-*V6EOHNF%?&amp;A!JG#-QQP!F&amp;&#10;MIG=D[5S6M9G&gt;[%I6U]&quot;4\V;3;%FM7S2]JVF[&lt; ^L:OR&amp;&gt;(\C0\(CW0T\/SN6&#10;M#&amp;_)[,36[$F:&amp;.^)\^(%L%L7&gt;SAZG(P&gt;A_:T;VNI'&quot;MY;[B[&lt;5U^M7.FKBF&amp;&#10;MV58,75=TT]S;+:&quot;C=;MFDS2[K8ZI=&lt;G&lt;Q74P.S_JQF$R4^L\'\&lt;PW#X VX3T&#10;MVRZ-(ZN#!9J&quot;$E!TRQ#NJD@G7$W!!Q*+20^W(ZQ(I(ZB:]+@YM!9@7;&quot;62&amp;;&#10;M8+I;4K*2&gt;(:(I9^VG=;/3T.LUY[249YXW/+@1OX2N9BG2J'7IY3A=@H19B2@&#10;MA&gt;F92IM7JE8G\U)!J3[97^YMA_B0[F,FRU+_L:&amp;]+L&quot;?YYC4N=E!;Z6410US&#10;M)%9A_)ZKHG&quot;EI(EZ'/$[KT8JO=#W,;7Q@D_&lt;#L (;H2;&quot;NX0JS4&gt; :$!N/R:&#10;MY;P%+P2+#DIXK9];/]R(TB6N=',(UWK!%,F9HF3D1)$!&quot;F[*^&quot;E'V2/AE*\R&#10;MI=X=5O&quot;A$_K# !6W( Y4&gt;ZQDU3J=A@F#*0F6U=Y*&lt;)6;5&lt;3SR&quot;R72WGIJ_ Z&#10;M79[46ZI+]S7@JL676&lt;4E&gt;4!YY&quot;7A$2D_&gt;C5U'6&gt;G-7C^GOL/3\F\1.=/F&lt;!_&#10;M%=\Z[QAYP3=P]R7\WD;-E+!OQ94X?_)&gt;7PHA2P%&gt;(U&lt;-X:U1&gt;&amp;LW#O'TU=.0&#10;M0NH&quot;%:\BXJ PXA&amp;LP=\]3U5A@6_?8!6=?O@B(2LCQ.NF\/+E$!9P&quot;V^94%)\&#10;M:_)5CQ%T$!3[D7VO&quot;4UC3*]8;I]=MD242\&gt;7L NQ0SVAD PL%,;H%2\W'V^V&#10;D737&amp;=SL;J#BN&quot;^LW# H,M1CY_]6&amp;,.?SY#_Y'T.N_P5*5:-J&#10; &#10;end&#10;</svConfiguration>
<svRestConfiguration type="str">(dp1&#10;S'HTTP Server Per URL'&#10;p2&#10;ccopy_reg&#10;_reconstructor&#10;p3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStatsList&#10;p4&#10;c__builtin__&#10;list&#10;p5&#10;(lp6&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixConfiguredStat&#10;p7&#10;c__builtin__&#10;object&#10;p8&#10;NtRp9&#10;(dp10&#10;S'proxyPropertyList'&#10;p11&#10;NsS'_objectID'&#10;p12&#10;I0&#10;sS'enabled'&#10;p13&#10;I01&#10;sS'filterList'&#10;p14&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixRestFilters&#10;p15&#10;g8&#10;NtRp16&#10;(dp17&#10;S'cardFilters'&#10;p18&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixCardFilterList&#10;p19&#10;g5&#10;(ltRp20&#10;(dp21&#10;g12&#10;I-1&#10;sS'_resourceLocked'&#10;p22&#10;I00&#10;sg11&#10;NsbsS'activityFilters'&#10;p23&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixActivityFilterList&#10;p24&#10;g5&#10;(ltRp25&#10;(dp26&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sS'chassisFilters'&#10;p27&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixChassisFilterList&#10;p28&#10;g5&#10;(ltRp29&#10;(dp30&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sS'portFilters'&#10;p31&#10;g3&#10;(cLib.Rest.ixPersistentStatSource&#10;ixPortFilterList&#10;p32&#10;g5&#10;(ltRp33&#10;(dp34&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;NsbsbsS'caption'&#10;p35&#10;S'HTTP Requests Received'&#10;p36&#10;sg22&#10;I00&#10;sS'aggregationType'&#10;p37&#10;S'kSum'&#10;p38&#10;sS'statName'&#10;p39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp40&#10;(dp41&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp42&#10;(dp43&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp44&#10;(dp45&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp46&#10;(dp47&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp48&#10;(dp49&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp50&#10;(dp51&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp53&#10;(dp54&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp55&#10;(dp56&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp57&#10;(dp58&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp59&#10;(dp60&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp61&#10;(dp62&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp63&#10;(dp64&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp66&#10;(dp67&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp68&#10;(dp69&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp70&#10;(dp71&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp72&#10;(dp73&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp74&#10;(dp75&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp76&#10;(dp77&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (50x)'&#10;p78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp79&#10;(dp80&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp81&#10;(dp82&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp83&#10;(dp84&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp85&#10;(dp86&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp87&#10;(dp88&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp89&#10;(dp90&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write Error)'&#10;p91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp92&#10;(dp93&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp94&#10;(dp95&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp96&#10;(dp97&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp98&#10;(dp99&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp100&#10;(dp101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp102&#10;(dp103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent'&#10;p104&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g104&#10;sbag3&#10;(g7&#10;g8&#10;NtRp105&#10;(dp106&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp107&#10;(dp108&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp109&#10;(dp110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp111&#10;(dp112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp113&#10;(dp114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp115&#10;(dp116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (1xx)'&#10;p117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp118&#10;(dp119&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp120&#10;(dp121&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp122&#10;(dp123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp124&#10;(dp125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp126&#10;(dp127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp128&#10;(dp129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (2xx)'&#10;p130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp131&#10;(dp132&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp133&#10;(dp134&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp135&#10;(dp136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp137&#10;(dp138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp139&#10;(dp140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp141&#10;(dp142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (3xx)'&#10;p143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp144&#10;(dp145&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp146&#10;(dp147&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp148&#10;(dp149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp150&#10;(dp151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp152&#10;(dp153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp154&#10;(dp155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (4xx)'&#10;p156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp157&#10;(dp158&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp159&#10;(dp160&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp161&#10;(dp162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp163&#10;(dp164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp165&#10;(dp166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp167&#10;(dp168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (5xx)'&#10;p169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp170&#10;(dp171&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp172&#10;(dp173&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp174&#10;(dp175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp176&#10;(dp177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp178&#10;(dp179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp180&#10;(dp181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Sent (Other)'&#10;p182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp183&#10;(dp184&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp185&#10;(dp186&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp187&#10;(dp188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp189&#10;(dp190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp191&#10;(dp192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp193&#10;(dp194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Write Error)'&#10;p195&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g195&#10;sbag3&#10;(g7&#10;g8&#10;NtRp196&#10;(dp197&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp198&#10;(dp199&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp200&#10;(dp201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp202&#10;(dp203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp204&#10;(dp205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp206&#10;(dp207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Aborted)'&#10;p208&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g208&#10;sbag3&#10;(g7&#10;g8&#10;NtRp209&#10;(dp210&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp211&#10;(dp212&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp213&#10;(dp214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp215&#10;(dp216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp217&#10;(dp218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp219&#10;(dp220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Failed (Other)'&#10;p221&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g221&#10;sbag3&#10;(g7&#10;g8&#10;NtRp222&#10;(dp223&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp224&#10;(dp225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp226&#10;(dp227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp228&#10;(dp229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp230&#10;(dp231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp232&#10;(dp233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Sent'&#10;p234&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g234&#10;sbag3&#10;(g7&#10;g8&#10;NtRp235&#10;(dp236&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp237&#10;(dp238&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp239&#10;(dp240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp241&#10;(dp242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp243&#10;(dp244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp245&#10;(dp246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp248&#10;(dp249&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp250&#10;(dp251&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp252&#10;(dp253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp254&#10;(dp255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp256&#10;(dp257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp258&#10;(dp259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p260&#10;sg22&#10;I00&#10;sg37&#10;S'kWeightedAverage'&#10;p261&#10;sg39&#10;g260&#10;sbag3&#10;(g7&#10;g8&#10;NtRp262&#10;(dp263&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp264&#10;(dp265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp266&#10;(dp267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp268&#10;(dp269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp270&#10;(dp271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp272&#10;(dp273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p274&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp275&#10;(dp276&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp277&#10;(dp278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp279&#10;(dp280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp281&#10;(dp282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp283&#10;(dp284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp285&#10;(dp286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Received'&#10;p287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp288&#10;(dp289&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp290&#10;(dp291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp292&#10;(dp293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp294&#10;(dp295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp296&#10;(dp297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp298&#10;(dp299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp301&#10;(dp302&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp303&#10;(dp304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp305&#10;(dp306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp307&#10;(dp308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp309&#10;(dp310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp311&#10;(dp312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Received Chunk Size'&#10;p313&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp314&#10;(dp315&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp316&#10;(dp317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp318&#10;(dp319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp320&#10;(dp321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp322&#10;(dp323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp324&#10;(dp325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p326&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp327&#10;(dp328&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp329&#10;(dp330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp331&#10;(dp332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp333&#10;(dp334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp335&#10;(dp336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp337&#10;(dp338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Received'&#10;p339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp340&#10;(dp341&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp342&#10;(dp343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp344&#10;(dp345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp346&#10;(dp347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp348&#10;(dp349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp350&#10;(dp351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Successful'&#10;p352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp353&#10;(dp354&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp355&#10;(dp356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp357&#10;(dp358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp359&#10;(dp360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp361&#10;(dp362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp363&#10;(dp364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Check Failed'&#10;p365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp366&#10;(dp367&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp368&#10;(dp369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp370&#10;(dp371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp372&#10;(dp373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp374&#10;(dp375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp376&#10;(dp377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Request Received'&#10;p378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp379&#10;(dp380&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp381&#10;(dp382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp383&#10;(dp384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp385&#10;(dp386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp387&#10;(dp388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp389&#10;(dp390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP OPTIONS Response Sent'&#10;p391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbatRp392&#10;(dp393&#10;g12&#10;I27&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Server'&#10;p394&#10;g3&#10;(g4&#10;g5&#10;(lp395&#10;g3&#10;(g7&#10;g8&#10;NtRp396&#10;(dp397&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp398&#10;(dp399&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp400&#10;(dp401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp402&#10;(dp403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp404&#10;(dp405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp406&#10;(dp407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g36&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g36&#10;sbag3&#10;(g7&#10;g8&#10;NtRp408&#10;(dp409&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp410&#10;(dp411&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp412&#10;(dp413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp414&#10;(dp415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp416&#10;(dp417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp418&#10;(dp419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g52&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g52&#10;sbag3&#10;(g7&#10;g8&#10;NtRp420&#10;(dp421&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp422&#10;(dp423&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp424&#10;(dp425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp426&#10;(dp427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp428&#10;(dp429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp430&#10;(dp431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p432&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g432&#10;sbag3&#10;(g7&#10;g8&#10;NtRp433&#10;(dp434&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp435&#10;(dp436&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp437&#10;(dp438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp439&#10;(dp440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp441&#10;(dp442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp443&#10;(dp444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g65&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g65&#10;sbag3&#10;(g7&#10;g8&#10;NtRp445&#10;(dp446&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp447&#10;(dp448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp449&#10;(dp450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp451&#10;(dp452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp453&#10;(dp454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp455&#10;(dp456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g78&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g78&#10;sbag3&#10;(g7&#10;g8&#10;NtRp457&#10;(dp458&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp459&#10;(dp460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp461&#10;(dp462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp463&#10;(dp464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp465&#10;(dp466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp467&#10;(dp468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g91&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g91&#10;sbag3&#10;(g7&#10;g8&#10;NtRp469&#10;(dp470&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp471&#10;(dp472&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp473&#10;(dp474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp475&#10;(dp476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp477&#10;(dp478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp479&#10;(dp480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p481&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g481&#10;sbag3&#10;(g7&#10;g8&#10;NtRp482&#10;(dp483&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp484&#10;(dp485&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp486&#10;(dp487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp488&#10;(dp489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp490&#10;(dp491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp492&#10;(dp493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p494&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g494&#10;sbag3&#10;(g7&#10;g8&#10;NtRp495&#10;(dp496&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp497&#10;(dp498&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp499&#10;(dp500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp501&#10;(dp502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp503&#10;(dp504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp505&#10;(dp506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p507&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g507&#10;sbag3&#10;(g7&#10;g8&#10;NtRp508&#10;(dp509&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp510&#10;(dp511&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp512&#10;(dp513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp514&#10;(dp515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp516&#10;(dp517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp518&#10;(dp519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g117&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g117&#10;sbag3&#10;(g7&#10;g8&#10;NtRp520&#10;(dp521&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp522&#10;(dp523&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp524&#10;(dp525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp526&#10;(dp527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp528&#10;(dp529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp530&#10;(dp531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g130&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g130&#10;sbag3&#10;(g7&#10;g8&#10;NtRp532&#10;(dp533&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp534&#10;(dp535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp536&#10;(dp537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp538&#10;(dp539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp540&#10;(dp541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp542&#10;(dp543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g143&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g143&#10;sbag3&#10;(g7&#10;g8&#10;NtRp544&#10;(dp545&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp546&#10;(dp547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp548&#10;(dp549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp550&#10;(dp551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp552&#10;(dp553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp554&#10;(dp555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g156&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g156&#10;sbag3&#10;(g7&#10;g8&#10;NtRp556&#10;(dp557&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp558&#10;(dp559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp560&#10;(dp561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp562&#10;(dp563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp564&#10;(dp565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp566&#10;(dp567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g169&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g169&#10;sbag3&#10;(g7&#10;g8&#10;NtRp568&#10;(dp569&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp570&#10;(dp571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp572&#10;(dp573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp574&#10;(dp575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp576&#10;(dp577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp578&#10;(dp579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g182&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g182&#10;sbag3&#10;(g7&#10;g8&#10;NtRp580&#10;(dp581&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp582&#10;(dp583&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp584&#10;(dp585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp586&#10;(dp587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp588&#10;(dp589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp590&#10;(dp591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p592&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g592&#10;sbag3&#10;(g7&#10;g8&#10;NtRp593&#10;(dp594&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp595&#10;(dp596&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp597&#10;(dp598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp599&#10;(dp600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp601&#10;(dp602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp603&#10;(dp604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p605&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g605&#10;sbag3&#10;(g7&#10;g8&#10;NtRp606&#10;(dp607&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp608&#10;(dp609&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp610&#10;(dp611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp612&#10;(dp613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp614&#10;(dp615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp616&#10;(dp617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p618&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g618&#10;sbag3&#10;(g7&#10;g8&#10;NtRp619&#10;(dp620&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp621&#10;(dp622&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp623&#10;(dp624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp625&#10;(dp626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp627&#10;(dp628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp629&#10;(dp630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p631&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g631&#10;sbag3&#10;(g7&#10;g8&#10;NtRp632&#10;(dp633&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp634&#10;(dp635&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp636&#10;(dp637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp638&#10;(dp639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp640&#10;(dp641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp642&#10;(dp643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p644&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g644&#10;sbag3&#10;(g7&#10;g8&#10;NtRp645&#10;(dp646&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp647&#10;(dp648&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp649&#10;(dp650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp651&#10;(dp652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp653&#10;(dp654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp655&#10;(dp656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p657&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g657&#10;sbag3&#10;(g7&#10;g8&#10;NtRp658&#10;(dp659&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp660&#10;(dp661&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp662&#10;(dp663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp664&#10;(dp665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp666&#10;(dp667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp668&#10;(dp669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Matching ServerID'&#10;p670&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g670&#10;sbag3&#10;(g7&#10;g8&#10;NtRp671&#10;(dp672&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp673&#10;(dp674&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp675&#10;(dp676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp677&#10;(dp678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp679&#10;(dp680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp681&#10;(dp682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received With Non-matching ServerID'&#10;p683&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g683&#10;sbag3&#10;(g7&#10;g8&#10;NtRp684&#10;(dp685&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp686&#10;(dp687&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp688&#10;(dp689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp690&#10;(dp691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp692&#10;(dp693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp694&#10;(dp695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Encoded Responses Sent'&#10;p696&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g696&#10;sbag3&#10;(g7&#10;g8&#10;NtRp697&#10;(dp698&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp699&#10;(dp700&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp701&#10;(dp702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp703&#10;(dp704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp705&#10;(dp706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp707&#10;(dp708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g247&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g247&#10;sbag3&#10;(g7&#10;g8&#10;NtRp709&#10;(dp710&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp711&#10;(dp712&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp713&#10;(dp714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp715&#10;(dp716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp717&#10;(dp718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp719&#10;(dp720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunked Transfer-Encoded Requests Received'&#10;p721&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g721&#10;sbag3&#10;(g7&#10;g8&#10;NtRp722&#10;(dp723&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp724&#10;(dp725&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp726&#10;(dp727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp728&#10;(dp729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp730&#10;(dp731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp732&#10;(dp733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp734&#10;(dp735&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp736&#10;(dp737&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp738&#10;(dp739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp740&#10;(dp741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp742&#10;(dp743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp744&#10;(dp745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp746&#10;(dp747&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp748&#10;(dp749&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp750&#10;(dp751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp752&#10;(dp753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp754&#10;(dp755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp756&#10;(dp757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp758&#10;(dp759&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp760&#10;(dp761&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp762&#10;(dp763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp764&#10;(dp765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp766&#10;(dp767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp768&#10;(dp769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp770&#10;(dp771&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp772&#10;(dp773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp774&#10;(dp775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp776&#10;(dp777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp778&#10;(dp779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp780&#10;(dp781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp782&#10;(dp783&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp784&#10;(dp785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp786&#10;(dp787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp788&#10;(dp789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp790&#10;(dp791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp792&#10;(dp793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp794&#10;(dp795&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp796&#10;(dp797&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp798&#10;(dp799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp800&#10;(dp801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp802&#10;(dp803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp804&#10;(dp805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Sent'&#10;p806&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g806&#10;sbag3&#10;(g7&#10;g8&#10;NtRp807&#10;(dp808&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp809&#10;(dp810&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp811&#10;(dp812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp813&#10;(dp814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp815&#10;(dp816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp817&#10;(dp818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Sent'&#10;p819&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g819&#10;sbag3&#10;(g7&#10;g8&#10;NtRp820&#10;(dp821&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp822&#10;(dp823&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp824&#10;(dp825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp826&#10;(dp827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp828&#10;(dp829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp830&#10;(dp831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Sent'&#10;p832&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g832&#10;sbag3&#10;(g7&#10;g8&#10;NtRp833&#10;(dp834&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp835&#10;(dp836&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp837&#10;(dp838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp839&#10;(dp840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp841&#10;(dp842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp843&#10;(dp844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Sent'&#10;p845&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g845&#10;sbag3&#10;(g7&#10;g8&#10;NtRp846&#10;(dp847&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp848&#10;(dp849&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp850&#10;(dp851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp852&#10;(dp853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp854&#10;(dp855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp856&#10;(dp857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Sent'&#10;p858&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g858&#10;sbag3&#10;(g7&#10;g8&#10;NtRp859&#10;(dp860&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp861&#10;(dp862&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp863&#10;(dp864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp865&#10;(dp866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp867&#10;(dp868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp869&#10;(dp870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Sent'&#10;p871&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g871&#10;sbag3&#10;(g7&#10;g8&#10;NtRp872&#10;(dp873&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp874&#10;(dp875&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp876&#10;(dp877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp878&#10;(dp879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp880&#10;(dp881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp882&#10;(dp883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Sent'&#10;p884&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g884&#10;sbag3&#10;(g7&#10;g8&#10;NtRp885&#10;(dp886&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp887&#10;(dp888&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp889&#10;(dp890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp891&#10;(dp892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp893&#10;(dp894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp895&#10;(dp896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Sent'&#10;p897&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g897&#10;sbag3&#10;(g7&#10;g8&#10;NtRp898&#10;(dp899&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp900&#10;(dp901&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp902&#10;(dp903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp904&#10;(dp905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp906&#10;(dp907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp908&#10;(dp909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Sent'&#10;p910&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g910&#10;sbag3&#10;(g7&#10;g8&#10;NtRp911&#10;(dp912&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp913&#10;(dp914&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp915&#10;(dp916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp917&#10;(dp918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp919&#10;(dp920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp921&#10;(dp922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Sent'&#10;p923&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g923&#10;sbag3&#10;(g7&#10;g8&#10;NtRp924&#10;(dp925&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp926&#10;(dp927&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp928&#10;(dp929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp930&#10;(dp931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp932&#10;(dp933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp934&#10;(dp935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 DATA Frames Received'&#10;p936&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g936&#10;sbag3&#10;(g7&#10;g8&#10;NtRp937&#10;(dp938&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp939&#10;(dp940&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp941&#10;(dp942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp943&#10;(dp944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp945&#10;(dp946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp947&#10;(dp948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HEADER Frames Received'&#10;p949&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g949&#10;sbag3&#10;(g7&#10;g8&#10;NtRp950&#10;(dp951&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp952&#10;(dp953&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp954&#10;(dp955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp956&#10;(dp957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp958&#10;(dp959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp960&#10;(dp961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PRIORITY Frames Received'&#10;p962&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g962&#10;sbag3&#10;(g7&#10;g8&#10;NtRp963&#10;(dp964&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp965&#10;(dp966&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp967&#10;(dp968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp969&#10;(dp970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp971&#10;(dp972&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp973&#10;(dp974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 RESETSTREAM Frames Received'&#10;p975&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g975&#10;sbag3&#10;(g7&#10;g8&#10;NtRp976&#10;(dp977&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp978&#10;(dp979&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp980&#10;(dp981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp982&#10;(dp983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp984&#10;(dp985&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp986&#10;(dp987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 SETTINGS Frames Received'&#10;p988&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g988&#10;sbag3&#10;(g7&#10;g8&#10;NtRp989&#10;(dp990&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp991&#10;(dp992&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp993&#10;(dp994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp995&#10;(dp996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp997&#10;(dp998&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp999&#10;(dp1000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PUSHPROMISE Frames Received'&#10;p1001&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1001&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1002&#10;(dp1003&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1004&#10;(dp1005&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1006&#10;(dp1007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1008&#10;(dp1009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1010&#10;(dp1011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1012&#10;(dp1013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 PING Frames Received'&#10;p1014&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1014&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1015&#10;(dp1016&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1017&#10;(dp1018&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1019&#10;(dp1020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1021&#10;(dp1022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1023&#10;(dp1024&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1025&#10;(dp1026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 GOAWAY Frames Received'&#10;p1027&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1027&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1028&#10;(dp1029&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1030&#10;(dp1031&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1032&#10;(dp1033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1034&#10;(dp1035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1036&#10;(dp1037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1038&#10;(dp1039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 WINDOWUPDATE Frames Received'&#10;p1040&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1040&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1041&#10;(dp1042&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1043&#10;(dp1044&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1045&#10;(dp1046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1047&#10;(dp1048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1049&#10;(dp1050&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1051&#10;(dp1052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 CONTINUATION Frames Received'&#10;p1053&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1053&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1054&#10;(dp1055&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1056&#10;(dp1057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1058&#10;(dp1059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1060&#10;(dp1061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1062&#10;(dp1063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1064&#10;(dp1065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Client'&#10;p1066&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1066&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1067&#10;(dp1068&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1069&#10;(dp1070&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1071&#10;(dp1072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1073&#10;(dp1074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1075&#10;(dp1076&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1077&#10;(dp1078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Initiated by Server'&#10;p1079&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1079&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1080&#10;(dp1081&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1082&#10;(dp1083&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1084&#10;(dp1085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1086&#10;(dp1087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1088&#10;(dp1089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1090&#10;(dp1091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Client to Server'&#10;p1092&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1092&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1093&#10;(dp1094&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1095&#10;(dp1096&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1097&#10;(dp1098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1099&#10;(dp1100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1101&#10;(dp1102&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1103&#10;(dp1104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Succeeded Server to Client'&#10;p1105&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1105&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1106&#10;(dp1107&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1108&#10;(dp1109&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1110&#10;(dp1111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1112&#10;(dp1113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1114&#10;(dp1115&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1116&#10;(dp1117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Client to Server'&#10;p1118&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1118&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1119&#10;(dp1120&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1121&#10;(dp1122&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1123&#10;(dp1124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1125&#10;(dp1126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1127&#10;(dp1128&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1129&#10;(dp1130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Streams Failed Server to Client'&#10;p1131&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1131&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1132&#10;(dp1133&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1134&#10;(dp1135&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1136&#10;(dp1137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1138&#10;(dp1139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1140&#10;(dp1141&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1142&#10;(dp1143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Succeeded'&#10;p1144&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1144&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1145&#10;(dp1146&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1147&#10;(dp1148&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1149&#10;(dp1150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1151&#10;(dp1152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1153&#10;(dp1154&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1155&#10;(dp1156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connection Upgrade Failed'&#10;p1157&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1157&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1158&#10;(dp1159&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1160&#10;(dp1161&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1162&#10;(dp1163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1164&#10;(dp1165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1166&#10;(dp1167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1168&#10;(dp1169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Protocol Error'&#10;p1170&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1170&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1171&#10;(dp1172&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1173&#10;(dp1174&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1175&#10;(dp1176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1177&#10;(dp1178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1179&#10;(dp1180&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1181&#10;(dp1182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Internal Error'&#10;p1183&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1183&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1184&#10;(dp1185&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1186&#10;(dp1187&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1188&#10;(dp1189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1190&#10;(dp1191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1192&#10;(dp1193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1194&#10;(dp1195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Flow Control Error'&#10;p1196&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1196&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1197&#10;(dp1198&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1199&#10;(dp1200&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1201&#10;(dp1202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1203&#10;(dp1204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1205&#10;(dp1206&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1207&#10;(dp1208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Settings Timeout Error'&#10;p1209&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1209&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1210&#10;(dp1211&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1212&#10;(dp1213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1214&#10;(dp1215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1216&#10;(dp1217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1218&#10;(dp1219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1220&#10;(dp1221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Closed Error'&#10;p1222&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1222&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1223&#10;(dp1224&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1225&#10;(dp1226&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1227&#10;(dp1228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1229&#10;(dp1230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1231&#10;(dp1232&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1233&#10;(dp1234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Frame Size Error'&#10;p1235&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1235&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1236&#10;(dp1237&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1238&#10;(dp1239&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1240&#10;(dp1241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1242&#10;(dp1243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1244&#10;(dp1245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1246&#10;(dp1247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Refused Stream Error'&#10;p1248&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1248&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1249&#10;(dp1250&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1251&#10;(dp1252&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1253&#10;(dp1254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1255&#10;(dp1256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1257&#10;(dp1258&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1259&#10;(dp1260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Stream Cancelled Error'&#10;p1261&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1261&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1262&#10;(dp1263&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1264&#10;(dp1265&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1266&#10;(dp1267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1268&#10;(dp1269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1270&#10;(dp1271&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1272&#10;(dp1273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Compression Error'&#10;p1274&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1274&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1275&#10;(dp1276&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1277&#10;(dp1278&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1279&#10;(dp1280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1281&#10;(dp1282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1283&#10;(dp1284&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1285&#10;(dp1286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Connect Error'&#10;p1287&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1287&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1288&#10;(dp1289&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1290&#10;(dp1291&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1292&#10;(dp1293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1294&#10;(dp1295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1296&#10;(dp1297&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1298&#10;(dp1299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Enhance Calm Error'&#10;p1300&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1300&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1301&#10;(dp1302&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1303&#10;(dp1304&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1305&#10;(dp1306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1307&#10;(dp1308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1309&#10;(dp1310&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1311&#10;(dp1312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 Inadequate Security Error'&#10;p1313&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1313&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1314&#10;(dp1315&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1316&#10;(dp1317&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1318&#10;(dp1319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1320&#10;(dp1321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1322&#10;(dp1323&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1324&#10;(dp1325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP2 HTTP1.1 Required Error'&#10;p1326&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1326&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1327&#10;(dp1328&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1329&#10;(dp1330&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1331&#10;(dp1332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1333&#10;(dp1334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1335&#10;(dp1336&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1337&#10;(dp1338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p1339&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1339&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1340&#10;(dp1341&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1342&#10;(dp1343&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1344&#10;(dp1345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1346&#10;(dp1347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1348&#10;(dp1349&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1350&#10;(dp1351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p1352&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1352&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1353&#10;(dp1354&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1355&#10;(dp1356&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1357&#10;(dp1358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1359&#10;(dp1360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1361&#10;(dp1362&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1363&#10;(dp1364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p1365&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1365&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1366&#10;(dp1367&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1368&#10;(dp1369&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1370&#10;(dp1371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1372&#10;(dp1373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1374&#10;(dp1375&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1376&#10;(dp1377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p1378&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1378&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1379&#10;(dp1380&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1381&#10;(dp1382&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1383&#10;(dp1384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1385&#10;(dp1386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1387&#10;(dp1388&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1389&#10;(dp1390&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p1391&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1391&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1392&#10;(dp1393&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1394&#10;(dp1395&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1396&#10;(dp1397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1398&#10;(dp1399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1400&#10;(dp1401&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1402&#10;(dp1403&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p1404&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1404&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1405&#10;(dp1406&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1407&#10;(dp1408&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1409&#10;(dp1410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1411&#10;(dp1412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1413&#10;(dp1414&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1415&#10;(dp1416&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p1417&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1417&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1418&#10;(dp1419&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1420&#10;(dp1421&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1422&#10;(dp1423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1424&#10;(dp1425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1426&#10;(dp1427&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1428&#10;(dp1429&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p1430&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1430&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1431&#10;(dp1432&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1433&#10;(dp1434&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1435&#10;(dp1436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1437&#10;(dp1438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1439&#10;(dp1440&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1441&#10;(dp1442&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p1443&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1443&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1444&#10;(dp1445&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1446&#10;(dp1447&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1448&#10;(dp1449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1450&#10;(dp1451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1452&#10;(dp1453&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1454&#10;(dp1455&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p1456&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1456&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1457&#10;(dp1458&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1459&#10;(dp1460&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1461&#10;(dp1462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1463&#10;(dp1464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1465&#10;(dp1466&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1467&#10;(dp1468&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p1469&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1469&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1470&#10;(dp1471&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1472&#10;(dp1473&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1474&#10;(dp1475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1476&#10;(dp1477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1478&#10;(dp1479&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1480&#10;(dp1481&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p1482&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1482&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1483&#10;(dp1484&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1485&#10;(dp1486&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1487&#10;(dp1488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1489&#10;(dp1490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1491&#10;(dp1492&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1493&#10;(dp1494&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p1495&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1495&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1496&#10;(dp1497&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1498&#10;(dp1499&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1500&#10;(dp1501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1502&#10;(dp1503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1504&#10;(dp1505&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1506&#10;(dp1507&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p1508&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1508&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1509&#10;(dp1510&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1511&#10;(dp1512&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1513&#10;(dp1514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1515&#10;(dp1516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1517&#10;(dp1518&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1519&#10;(dp1520&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p1521&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1521&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1522&#10;(dp1523&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1524&#10;(dp1525&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1526&#10;(dp1527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1528&#10;(dp1529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1530&#10;(dp1531&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1532&#10;(dp1533&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p1534&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1534&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1535&#10;(dp1536&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1537&#10;(dp1538&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1539&#10;(dp1540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1541&#10;(dp1542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1543&#10;(dp1544&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1545&#10;(dp1546&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p1547&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1547&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1548&#10;(dp1549&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1550&#10;(dp1551&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1552&#10;(dp1553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1554&#10;(dp1555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1556&#10;(dp1557&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1558&#10;(dp1559&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p1560&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1560&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1561&#10;(dp1562&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1563&#10;(dp1564&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1565&#10;(dp1566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1567&#10;(dp1568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1569&#10;(dp1570&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1571&#10;(dp1572&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p1573&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1573&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1574&#10;(dp1575&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1576&#10;(dp1577&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1578&#10;(dp1579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1580&#10;(dp1581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1582&#10;(dp1583&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1584&#10;(dp1585&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p1586&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1586&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1587&#10;(dp1588&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1589&#10;(dp1590&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1591&#10;(dp1592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1593&#10;(dp1594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1595&#10;(dp1596&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1597&#10;(dp1598&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p1599&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1599&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1600&#10;(dp1601&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1602&#10;(dp1603&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1604&#10;(dp1605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1606&#10;(dp1607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1608&#10;(dp1609&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1610&#10;(dp1611&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p1612&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1612&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1613&#10;(dp1614&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1615&#10;(dp1616&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1617&#10;(dp1618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1619&#10;(dp1620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1621&#10;(dp1622&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1623&#10;(dp1624&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p1625&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1625&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1626&#10;(dp1627&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1628&#10;(dp1629&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1630&#10;(dp1631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1632&#10;(dp1633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1634&#10;(dp1635&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1636&#10;(dp1637&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p1638&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1638&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1639&#10;(dp1640&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1641&#10;(dp1642&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1643&#10;(dp1644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1645&#10;(dp1646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1647&#10;(dp1648&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1649&#10;(dp1650&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p1651&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1651&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1652&#10;(dp1653&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1654&#10;(dp1655&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1656&#10;(dp1657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1658&#10;(dp1659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1660&#10;(dp1661&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1662&#10;(dp1663&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p1664&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1664&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1665&#10;(dp1666&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1667&#10;(dp1668&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1669&#10;(dp1670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1671&#10;(dp1672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1673&#10;(dp1674&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1675&#10;(dp1676&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p1677&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1677&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1678&#10;(dp1679&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1680&#10;(dp1681&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1682&#10;(dp1683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1684&#10;(dp1685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1686&#10;(dp1687&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1688&#10;(dp1689&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p1690&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1690&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1691&#10;(dp1692&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1693&#10;(dp1694&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1695&#10;(dp1696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1697&#10;(dp1698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1699&#10;(dp1700&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1701&#10;(dp1702&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p1703&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1703&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1704&#10;(dp1705&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1706&#10;(dp1707&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1708&#10;(dp1709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1710&#10;(dp1711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1712&#10;(dp1713&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1714&#10;(dp1715&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p1716&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1716&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1717&#10;(dp1718&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1719&#10;(dp1720&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1721&#10;(dp1722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1723&#10;(dp1724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1725&#10;(dp1726&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1727&#10;(dp1728&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p1729&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1729&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1730&#10;(dp1731&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1732&#10;(dp1733&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1734&#10;(dp1735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1736&#10;(dp1737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1738&#10;(dp1739&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1740&#10;(dp1741&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p1742&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1742&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1743&#10;(dp1744&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1745&#10;(dp1746&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1747&#10;(dp1748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1749&#10;(dp1750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1751&#10;(dp1752&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1753&#10;(dp1754&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p1755&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1755&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1756&#10;(dp1757&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1758&#10;(dp1759&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1760&#10;(dp1761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1762&#10;(dp1763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1764&#10;(dp1765&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1766&#10;(dp1767&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p1768&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1768&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1769&#10;(dp1770&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1771&#10;(dp1772&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1773&#10;(dp1774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1775&#10;(dp1776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1777&#10;(dp1778&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1779&#10;(dp1780&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p1781&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1781&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1782&#10;(dp1783&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1784&#10;(dp1785&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1786&#10;(dp1787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1788&#10;(dp1789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1790&#10;(dp1791&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1792&#10;(dp1793&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p1794&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1794&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1795&#10;(dp1796&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1797&#10;(dp1798&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1799&#10;(dp1800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1801&#10;(dp1802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1803&#10;(dp1804&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1805&#10;(dp1806&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p1807&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1807&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1808&#10;(dp1809&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1810&#10;(dp1811&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1812&#10;(dp1813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1814&#10;(dp1815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1816&#10;(dp1817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1818&#10;(dp1819&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p1820&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1820&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1821&#10;(dp1822&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1823&#10;(dp1824&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1825&#10;(dp1826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1827&#10;(dp1828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1829&#10;(dp1830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1831&#10;(dp1832&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p1833&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1833&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1834&#10;(dp1835&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1836&#10;(dp1837&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1838&#10;(dp1839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1840&#10;(dp1841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1842&#10;(dp1843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1844&#10;(dp1845&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p1846&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1846&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1847&#10;(dp1848&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1849&#10;(dp1850&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1851&#10;(dp1852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1853&#10;(dp1854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1855&#10;(dp1856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1857&#10;(dp1858&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p1859&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1859&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1860&#10;(dp1861&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1862&#10;(dp1863&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1864&#10;(dp1865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1866&#10;(dp1867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1868&#10;(dp1869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1870&#10;(dp1871&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p1872&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1872&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1873&#10;(dp1874&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1875&#10;(dp1876&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1877&#10;(dp1878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1879&#10;(dp1880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1881&#10;(dp1882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1883&#10;(dp1884&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p1885&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1885&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1886&#10;(dp1887&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1888&#10;(dp1889&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1890&#10;(dp1891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1892&#10;(dp1893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1894&#10;(dp1895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1896&#10;(dp1897&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p1898&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1898&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1899&#10;(dp1900&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1901&#10;(dp1902&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1903&#10;(dp1904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1905&#10;(dp1906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1907&#10;(dp1908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1909&#10;(dp1910&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p1911&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1911&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1912&#10;(dp1913&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1914&#10;(dp1915&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1916&#10;(dp1917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1918&#10;(dp1919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1920&#10;(dp1921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1922&#10;(dp1923&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p1924&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1924&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1925&#10;(dp1926&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1927&#10;(dp1928&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1929&#10;(dp1930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1931&#10;(dp1932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1933&#10;(dp1934&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1935&#10;(dp1936&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p1937&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1937&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1938&#10;(dp1939&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1940&#10;(dp1941&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1942&#10;(dp1943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1944&#10;(dp1945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1946&#10;(dp1947&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1948&#10;(dp1949&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p1950&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1950&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1951&#10;(dp1952&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1953&#10;(dp1954&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1955&#10;(dp1956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1957&#10;(dp1958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1959&#10;(dp1960&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1961&#10;(dp1962&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p1963&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1963&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1964&#10;(dp1965&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1966&#10;(dp1967&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1968&#10;(dp1969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1970&#10;(dp1971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1972&#10;(dp1973&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1974&#10;(dp1975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p1976&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1976&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1977&#10;(dp1978&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1979&#10;(dp1980&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1981&#10;(dp1982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1983&#10;(dp1984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1985&#10;(dp1986&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp1987&#10;(dp1988&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p1989&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g1989&#10;sbag3&#10;(g7&#10;g8&#10;NtRp1990&#10;(dp1991&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp1992&#10;(dp1993&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp1994&#10;(dp1995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp1996&#10;(dp1997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp1998&#10;(dp1999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2000&#10;(dp2001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p2002&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2002&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2003&#10;(dp2004&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2005&#10;(dp2006&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2007&#10;(dp2008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2009&#10;(dp2010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2011&#10;(dp2012&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2013&#10;(dp2014&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p2015&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2015&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2016&#10;(dp2017&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2018&#10;(dp2019&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2020&#10;(dp2021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2022&#10;(dp2023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2024&#10;(dp2025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2026&#10;(dp2027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p2028&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2028&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2029&#10;(dp2030&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2031&#10;(dp2032&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2033&#10;(dp2034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2035&#10;(dp2036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2037&#10;(dp2038&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2039&#10;(dp2040&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p2041&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2041&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2042&#10;(dp2043&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2044&#10;(dp2045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2046&#10;(dp2047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2048&#10;(dp2049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2050&#10;(dp2051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2052&#10;(dp2053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p2054&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2054&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2055&#10;(dp2056&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2057&#10;(dp2058&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2059&#10;(dp2060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2061&#10;(dp2062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2063&#10;(dp2064&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2065&#10;(dp2066&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p2067&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2067&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2068&#10;(dp2069&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2070&#10;(dp2071&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2072&#10;(dp2073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2074&#10;(dp2075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2076&#10;(dp2077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2078&#10;(dp2079&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p2080&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2080&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2081&#10;(dp2082&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2083&#10;(dp2084&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2085&#10;(dp2086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2087&#10;(dp2088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2089&#10;(dp2090&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2091&#10;(dp2092&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p2093&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2093&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2094&#10;(dp2095&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2096&#10;(dp2097&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2098&#10;(dp2099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2100&#10;(dp2101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2102&#10;(dp2103&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2104&#10;(dp2105&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p2106&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2106&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2107&#10;(dp2108&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2109&#10;(dp2110&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2111&#10;(dp2112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2113&#10;(dp2114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2115&#10;(dp2116&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2117&#10;(dp2118&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p2119&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2119&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2120&#10;(dp2121&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2122&#10;(dp2123&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2124&#10;(dp2125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2126&#10;(dp2127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2128&#10;(dp2129&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2130&#10;(dp2131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p2132&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2132&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2133&#10;(dp2134&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2135&#10;(dp2136&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2137&#10;(dp2138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2139&#10;(dp2140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2141&#10;(dp2142&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2143&#10;(dp2144&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p2145&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2145&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2146&#10;(dp2147&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2148&#10;(dp2149&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2150&#10;(dp2151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2152&#10;(dp2153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2154&#10;(dp2155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2156&#10;(dp2157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p2158&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2158&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2159&#10;(dp2160&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2161&#10;(dp2162&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2163&#10;(dp2164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2165&#10;(dp2166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2167&#10;(dp2168&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2169&#10;(dp2170&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p2171&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2171&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2172&#10;(dp2173&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2174&#10;(dp2175&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2176&#10;(dp2177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2178&#10;(dp2179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2180&#10;(dp2181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2182&#10;(dp2183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p2184&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2184&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2185&#10;(dp2186&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2187&#10;(dp2188&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2189&#10;(dp2190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2191&#10;(dp2192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2193&#10;(dp2194&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2195&#10;(dp2196&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p2197&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2197&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2198&#10;(dp2199&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2200&#10;(dp2201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2202&#10;(dp2203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2204&#10;(dp2205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2206&#10;(dp2207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2208&#10;(dp2209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p2210&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2210&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2211&#10;(dp2212&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2213&#10;(dp2214&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2215&#10;(dp2216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2217&#10;(dp2218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2219&#10;(dp2220&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2221&#10;(dp2222&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p2223&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2223&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2224&#10;(dp2225&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2226&#10;(dp2227&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2228&#10;(dp2229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2230&#10;(dp2231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2232&#10;(dp2233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2234&#10;(dp2235&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p2236&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2236&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2237&#10;(dp2238&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2239&#10;(dp2240&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2241&#10;(dp2242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2243&#10;(dp2244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2245&#10;(dp2246&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2247&#10;(dp2248&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p2249&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2249&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2250&#10;(dp2251&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2252&#10;(dp2253&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2254&#10;(dp2255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2256&#10;(dp2257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2258&#10;(dp2259&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2260&#10;(dp2261&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p2262&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2262&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2263&#10;(dp2264&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2265&#10;(dp2266&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2267&#10;(dp2268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2269&#10;(dp2270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2271&#10;(dp2272&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2273&#10;(dp2274&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p2275&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2275&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2276&#10;(dp2277&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2278&#10;(dp2279&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2280&#10;(dp2281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2282&#10;(dp2283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2284&#10;(dp2285&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2286&#10;(dp2287&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p2288&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2288&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2289&#10;(dp2290&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2291&#10;(dp2292&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2293&#10;(dp2294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2295&#10;(dp2296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2297&#10;(dp2298&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2299&#10;(dp2300&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p2301&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2301&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2302&#10;(dp2303&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2304&#10;(dp2305&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2306&#10;(dp2307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2308&#10;(dp2309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2310&#10;(dp2311&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2312&#10;(dp2313&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p2314&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2314&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2315&#10;(dp2316&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2317&#10;(dp2318&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2319&#10;(dp2320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2321&#10;(dp2322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2323&#10;(dp2324&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2325&#10;(dp2326&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p2327&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2327&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2328&#10;(dp2329&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2330&#10;(dp2331&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2332&#10;(dp2333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2334&#10;(dp2335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2336&#10;(dp2337&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2338&#10;(dp2339&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p2340&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2340&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2341&#10;(dp2342&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2343&#10;(dp2344&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2345&#10;(dp2346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2347&#10;(dp2348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2349&#10;(dp2350&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2351&#10;(dp2352&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p2353&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2353&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2354&#10;(dp2355&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2356&#10;(dp2357&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2358&#10;(dp2359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2360&#10;(dp2361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2362&#10;(dp2363&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2364&#10;(dp2365&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p2366&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2366&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2367&#10;(dp2368&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2369&#10;(dp2370&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2371&#10;(dp2372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2373&#10;(dp2374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2375&#10;(dp2376&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2377&#10;(dp2378&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p2379&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2379&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2380&#10;(dp2381&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2382&#10;(dp2383&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2384&#10;(dp2385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2386&#10;(dp2387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2388&#10;(dp2389&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2390&#10;(dp2391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p2392&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2392&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2393&#10;(dp2394&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2395&#10;(dp2396&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2397&#10;(dp2398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2399&#10;(dp2400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2401&#10;(dp2402&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2403&#10;(dp2404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p2405&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2405&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2406&#10;(dp2407&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2408&#10;(dp2409&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2410&#10;(dp2411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2412&#10;(dp2413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2414&#10;(dp2415&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2416&#10;(dp2417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p2418&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2418&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2419&#10;(dp2420&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2421&#10;(dp2422&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2423&#10;(dp2424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2425&#10;(dp2426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2427&#10;(dp2428&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2429&#10;(dp2430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p2431&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2431&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2432&#10;(dp2433&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2434&#10;(dp2435&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2436&#10;(dp2437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2438&#10;(dp2439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2440&#10;(dp2441&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2442&#10;(dp2443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p2444&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2444&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2445&#10;(dp2446&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2447&#10;(dp2448&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2449&#10;(dp2450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2451&#10;(dp2452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2453&#10;(dp2454&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2455&#10;(dp2456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p2457&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2457&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2458&#10;(dp2459&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2460&#10;(dp2461&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2462&#10;(dp2463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2464&#10;(dp2465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2466&#10;(dp2467&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2468&#10;(dp2469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p2470&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2470&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2471&#10;(dp2472&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2473&#10;(dp2474&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2475&#10;(dp2476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2477&#10;(dp2478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2479&#10;(dp2480&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2481&#10;(dp2482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p2483&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2483&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2484&#10;(dp2485&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2486&#10;(dp2487&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2488&#10;(dp2489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2490&#10;(dp2491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2492&#10;(dp2493&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2494&#10;(dp2495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p2496&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2496&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2497&#10;(dp2498&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2499&#10;(dp2500&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2501&#10;(dp2502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2503&#10;(dp2504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2505&#10;(dp2506&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2507&#10;(dp2508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p2509&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2509&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2510&#10;(dp2511&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2512&#10;(dp2513&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2514&#10;(dp2515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2516&#10;(dp2517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2518&#10;(dp2519&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2520&#10;(dp2521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p2522&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2522&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2523&#10;(dp2524&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2525&#10;(dp2526&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2527&#10;(dp2528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2529&#10;(dp2530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2531&#10;(dp2532&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2533&#10;(dp2534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p2535&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2535&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2536&#10;(dp2537&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2538&#10;(dp2539&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2540&#10;(dp2541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2542&#10;(dp2543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2544&#10;(dp2545&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2546&#10;(dp2547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p2548&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2548&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2549&#10;(dp2550&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2551&#10;(dp2552&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2553&#10;(dp2554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2555&#10;(dp2556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2557&#10;(dp2558&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2559&#10;(dp2560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p2561&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2561&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2562&#10;(dp2563&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2564&#10;(dp2565&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2566&#10;(dp2567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2568&#10;(dp2569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2570&#10;(dp2571&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2572&#10;(dp2573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p2574&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2574&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2575&#10;(dp2576&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2577&#10;(dp2578&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2579&#10;(dp2580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2581&#10;(dp2582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2583&#10;(dp2584&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2585&#10;(dp2586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p2587&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2587&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2588&#10;(dp2589&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2590&#10;(dp2591&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2592&#10;(dp2593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2594&#10;(dp2595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2596&#10;(dp2597&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2598&#10;(dp2599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p2600&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2600&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2601&#10;(dp2602&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2603&#10;(dp2604&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2605&#10;(dp2606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2607&#10;(dp2608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2609&#10;(dp2610&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2611&#10;(dp2612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p2613&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2613&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2614&#10;(dp2615&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2616&#10;(dp2617&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2618&#10;(dp2619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2620&#10;(dp2621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2622&#10;(dp2623&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2624&#10;(dp2625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p2626&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2626&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2627&#10;(dp2628&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2629&#10;(dp2630&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2631&#10;(dp2632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2633&#10;(dp2634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2635&#10;(dp2636&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2637&#10;(dp2638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p2639&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2639&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2640&#10;(dp2641&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2642&#10;(dp2643&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2644&#10;(dp2645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2646&#10;(dp2647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2648&#10;(dp2649&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2650&#10;(dp2651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p2652&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2652&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2653&#10;(dp2654&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2655&#10;(dp2656&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2657&#10;(dp2658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2659&#10;(dp2660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2661&#10;(dp2662&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2663&#10;(dp2664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p2665&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2665&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2666&#10;(dp2667&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2668&#10;(dp2669&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2670&#10;(dp2671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2672&#10;(dp2673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2674&#10;(dp2675&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2676&#10;(dp2677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p2678&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2678&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2679&#10;(dp2680&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2681&#10;(dp2682&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2683&#10;(dp2684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2685&#10;(dp2686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2687&#10;(dp2688&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2689&#10;(dp2690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p2691&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2691&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2692&#10;(dp2693&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2694&#10;(dp2695&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2696&#10;(dp2697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2698&#10;(dp2699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2700&#10;(dp2701&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2702&#10;(dp2703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p2704&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2704&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2705&#10;(dp2706&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2707&#10;(dp2708&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2709&#10;(dp2710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2711&#10;(dp2712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2713&#10;(dp2714&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2715&#10;(dp2716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p2717&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2717&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2718&#10;(dp2719&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2720&#10;(dp2721&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2722&#10;(dp2723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2724&#10;(dp2725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2726&#10;(dp2727&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2728&#10;(dp2729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p2730&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2730&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2731&#10;(dp2732&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2733&#10;(dp2734&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2735&#10;(dp2736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2737&#10;(dp2738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2739&#10;(dp2740&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2741&#10;(dp2742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p2743&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2743&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2744&#10;(dp2745&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2746&#10;(dp2747&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2748&#10;(dp2749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2750&#10;(dp2751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2752&#10;(dp2753&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2754&#10;(dp2755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p2756&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2756&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2757&#10;(dp2758&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2759&#10;(dp2760&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2761&#10;(dp2762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2763&#10;(dp2764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2765&#10;(dp2766&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2767&#10;(dp2768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p2769&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2769&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2770&#10;(dp2771&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2772&#10;(dp2773&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2774&#10;(dp2775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2776&#10;(dp2777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2778&#10;(dp2779&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2780&#10;(dp2781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p2782&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2782&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2783&#10;(dp2784&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2785&#10;(dp2786&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2787&#10;(dp2788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2789&#10;(dp2790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2791&#10;(dp2792&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2793&#10;(dp2794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p2795&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2795&#10;sbatRp2796&#10;(dp2797&#10;g12&#10;I185&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client Per URL'&#10;p2798&#10;g3&#10;(g4&#10;g5&#10;(lp2799&#10;g3&#10;(g7&#10;g8&#10;NtRp2800&#10;(dp2801&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2802&#10;(dp2803&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2804&#10;(dp2805&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2806&#10;(dp2807&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2808&#10;(dp2809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2810&#10;(dp2811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Sent'&#10;p2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2813&#10;(dp2814&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2815&#10;(dp2816&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2817&#10;(dp2818&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2819&#10;(dp2820&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2821&#10;(dp2822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2823&#10;(dp2824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful'&#10;p2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2826&#10;(dp2827&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2828&#10;(dp2829&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2830&#10;(dp2831&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2832&#10;(dp2833&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2834&#10;(dp2835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2836&#10;(dp2837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (Provisional)'&#10;p2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2839&#10;(dp2840&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2841&#10;(dp2842&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2843&#10;(dp2844&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2845&#10;(dp2846&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2847&#10;(dp2848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2849&#10;(dp2850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed'&#10;p2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2852&#10;(dp2853&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2854&#10;(dp2855&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2856&#10;(dp2857&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2858&#10;(dp2859&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2860&#10;(dp2861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2862&#10;(dp2863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Write)'&#10;p2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2865&#10;(dp2866&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2867&#10;(dp2868&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2869&#10;(dp2870&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2871&#10;(dp2872&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2873&#10;(dp2874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2875&#10;(dp2876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Read)'&#10;p2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2878&#10;(dp2879&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2880&#10;(dp2881&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2882&#10;(dp2883&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2884&#10;(dp2885&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2886&#10;(dp2887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2888&#10;(dp2889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Bad Header)'&#10;p2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2891&#10;(dp2892&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2893&#10;(dp2894&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2895&#10;(dp2896&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2897&#10;(dp2898&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2899&#10;(dp2900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2901&#10;(dp2902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx)'&#10;p2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2904&#10;(dp2905&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2906&#10;(dp2907&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2908&#10;(dp2909&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2910&#10;(dp2911&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2912&#10;(dp2913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2914&#10;(dp2915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (400)'&#10;p2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2917&#10;(dp2918&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2919&#10;(dp2920&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2921&#10;(dp2922&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2923&#10;(dp2924&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2925&#10;(dp2926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2927&#10;(dp2928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (401)'&#10;p2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2930&#10;(dp2931&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2932&#10;(dp2933&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2934&#10;(dp2935&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2936&#10;(dp2937&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2938&#10;(dp2939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2940&#10;(dp2941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (403)'&#10;p2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2943&#10;(dp2944&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2945&#10;(dp2946&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2947&#10;(dp2948&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2949&#10;(dp2950&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2951&#10;(dp2952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2953&#10;(dp2954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (404)'&#10;p2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2956&#10;(dp2957&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2958&#10;(dp2959&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2960&#10;(dp2961&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2962&#10;(dp2963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2964&#10;(dp2965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2966&#10;(dp2967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (407)'&#10;p2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2969&#10;(dp2970&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2971&#10;(dp2972&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2973&#10;(dp2974&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2975&#10;(dp2976&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2977&#10;(dp2978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2979&#10;(dp2980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (408)'&#10;p2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2982&#10;(dp2983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2984&#10;(dp2985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2986&#10;(dp2987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp2988&#10;(dp2989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp2990&#10;(dp2991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp2992&#10;(dp2993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (4xx other)'&#10;p2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp2995&#10;(dp2996&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp2997&#10;(dp2998&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp2999&#10;(dp3000&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3001&#10;(dp3002&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3003&#10;(dp3004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3005&#10;(dp3006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx)'&#10;p3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3008&#10;(dp3009&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3010&#10;(dp3011&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3012&#10;(dp3013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3014&#10;(dp3015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3016&#10;(dp3017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3018&#10;(dp3019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (505)'&#10;p3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3021&#10;(dp3022&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3023&#10;(dp3024&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3025&#10;(dp3026&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3027&#10;(dp3028&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3029&#10;(dp3030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3031&#10;(dp3032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (5xx other)'&#10;p3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3034&#10;(dp3035&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3036&#10;(dp3037&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3038&#10;(dp3039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3040&#10;(dp3041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3042&#10;(dp3043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3044&#10;(dp3045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (other)'&#10;p3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3047&#10;(dp3048&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3049&#10;(dp3050&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3051&#10;(dp3052&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3053&#10;(dp3054&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3055&#10;(dp3056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3057&#10;(dp3058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Timeout)'&#10;p3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3060&#10;(dp3061&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3062&#10;(dp3063&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3064&#10;(dp3065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3066&#10;(dp3067&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3068&#10;(dp3069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3070&#10;(dp3071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Failed (Aborted)'&#10;p3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3073&#10;(dp3074&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3075&#10;(dp3076&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3077&#10;(dp3078&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3079&#10;(dp3080&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3081&#10;(dp3082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3083&#10;(dp3084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted Before Request'&#10;p3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3086&#10;(dp3087&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3088&#10;(dp3089&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3090&#10;(dp3091&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3092&#10;(dp3093&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3094&#10;(dp3095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3096&#10;(dp3097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Aborted After Request'&#10;p3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3099&#10;(dp3100&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3101&#10;(dp3102&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3103&#10;(dp3104&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3105&#10;(dp3106&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3107&#10;(dp3108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3109&#10;(dp3110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received With Match'&#10;p3111&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3111&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3112&#10;(dp3113&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3114&#10;(dp3115&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3116&#10;(dp3117&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3118&#10;(dp3119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3120&#10;(dp3121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3122&#10;(dp3123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Responses Received Without Match'&#10;p3124&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3124&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3125&#10;(dp3126&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3127&#10;(dp3128&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3129&#10;(dp3130&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3131&#10;(dp3132&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3133&#10;(dp3134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3135&#10;(dp3136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Intermediate Responses Received (1xx)'&#10;p3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3138&#10;(dp3139&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3140&#10;(dp3141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3142&#10;(dp3143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3144&#10;(dp3145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3146&#10;(dp3147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3148&#10;(dp3149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (2xx)'&#10;p3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3151&#10;(dp3152&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3153&#10;(dp3154&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3155&#10;(dp3156&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3157&#10;(dp3158&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3159&#10;(dp3160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3161&#10;(dp3162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (3xx)'&#10;p3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3164&#10;(dp3165&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3166&#10;(dp3167&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3168&#10;(dp3169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3170&#10;(dp3171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3172&#10;(dp3173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3174&#10;(dp3175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (301)'&#10;p3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3177&#10;(dp3178&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3179&#10;(dp3180&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3181&#10;(dp3182&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3183&#10;(dp3184&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3185&#10;(dp3186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3187&#10;(dp3188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (302)'&#10;p3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3190&#10;(dp3191&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3192&#10;(dp3193&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3194&#10;(dp3195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3196&#10;(dp3197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3198&#10;(dp3199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3200&#10;(dp3201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (303)'&#10;p3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3203&#10;(dp3204&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3205&#10;(dp3206&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3207&#10;(dp3208&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3209&#10;(dp3210&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3211&#10;(dp3212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3213&#10;(dp3214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Requests Successful (307)'&#10;p3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3216&#10;(dp3217&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3218&#10;(dp3219&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3220&#10;(dp3221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3222&#10;(dp3223&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3224&#10;(dp3225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3226&#10;(dp3227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Requests Sent'&#10;p3228&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3228&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3229&#10;(dp3230&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3231&#10;(dp3232&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3233&#10;(dp3234&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3235&#10;(dp3236&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3237&#10;(dp3238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3239&#10;(dp3240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Headers Received'&#10;p3241&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3241&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3242&#10;(dp3243&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3244&#10;(dp3245&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3246&#10;(dp3247&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3248&#10;(dp3249&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3250&#10;(dp3251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3252&#10;(dp3253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Received'&#10;p3254&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3254&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3255&#10;(dp3256&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3257&#10;(dp3258&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3259&#10;(dp3260&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3261&#10;(dp3262&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3263&#10;(dp3264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3265&#10;(dp3266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Successful'&#10;p3267&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3267&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3268&#10;(dp3269&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3270&#10;(dp3271&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3272&#10;(dp3273&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3274&#10;(dp3275&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3276&#10;(dp3277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3278&#10;(dp3279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Responses Failed'&#10;p3280&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3280&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3281&#10;(dp3282&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3283&#10;(dp3284&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3285&#10;(dp3286&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3287&#10;(dp3288&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3289&#10;(dp3290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3291&#10;(dp3292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Received'&#10;p3293&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3293&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3294&#10;(dp3295&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3296&#10;(dp3297&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3298&#10;(dp3299&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3300&#10;(dp3301&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3302&#10;(dp3303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3304&#10;(dp3305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size'&#10;p3306&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3306&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3307&#10;(dp3308&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3309&#10;(dp3310&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3311&#10;(dp3312&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3313&#10;(dp3314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3315&#10;(dp3316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3317&#10;(dp3318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Response'&#10;p3319&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3319&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3320&#10;(dp3321&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3322&#10;(dp3323&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3324&#10;(dp3325&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3326&#10;(dp3327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3328&#10;(dp3329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3330&#10;(dp3331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Chunk Encoded Requests Sent'&#10;p3332&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3332&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3333&#10;(dp3334&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3335&#10;(dp3336&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3337&#10;(dp3338&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3339&#10;(dp3340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3341&#10;(dp3342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3343&#10;(dp3344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Total Chunks Sent'&#10;p3345&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3345&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3346&#10;(dp3347&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3348&#10;(dp3349&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3350&#10;(dp3351&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3352&#10;(dp3353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3354&#10;(dp3355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3356&#10;(dp3357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunk Size in Request'&#10;p3358&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3358&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3359&#10;(dp3360&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3361&#10;(dp3362&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3363&#10;(dp3364&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3365&#10;(dp3366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3367&#10;(dp3368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3369&#10;(dp3370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Average Chunks per Request'&#10;p3371&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3371&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3372&#10;(dp3373&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3374&#10;(dp3375&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3376&#10;(dp3377&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3378&#10;(dp3379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3380&#10;(dp3381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3382&#10;(dp3383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name1-Value1'&#10;p3384&#10;sg22&#10;I00&#10;sg37&#10;S'kString'&#10;p3385&#10;sg39&#10;g3384&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3386&#10;(dp3387&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3388&#10;(dp3389&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3390&#10;(dp3391&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3392&#10;(dp3393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3394&#10;(dp3395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3396&#10;(dp3397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter1'&#10;p3398&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3398&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3399&#10;(dp3400&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3401&#10;(dp3402&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3403&#10;(dp3404&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3405&#10;(dp3406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3407&#10;(dp3408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3409&#10;(dp3410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name2-Value2'&#10;p3411&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3411&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3412&#10;(dp3413&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3414&#10;(dp3415&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3416&#10;(dp3417&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3418&#10;(dp3419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3420&#10;(dp3421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3422&#10;(dp3423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter2'&#10;p3424&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3424&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3425&#10;(dp3426&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3427&#10;(dp3428&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3429&#10;(dp3430&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3431&#10;(dp3432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3433&#10;(dp3434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3435&#10;(dp3436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name3-Value3'&#10;p3437&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3437&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3438&#10;(dp3439&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3440&#10;(dp3441&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3442&#10;(dp3443&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3444&#10;(dp3445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3446&#10;(dp3447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3448&#10;(dp3449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter3'&#10;p3450&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3450&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3451&#10;(dp3452&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3453&#10;(dp3454&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3455&#10;(dp3456&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3457&#10;(dp3458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3459&#10;(dp3460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3461&#10;(dp3462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name4-Value4'&#10;p3463&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3463&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3464&#10;(dp3465&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3466&#10;(dp3467&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3468&#10;(dp3469&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3470&#10;(dp3471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3472&#10;(dp3473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3474&#10;(dp3475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter4'&#10;p3476&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3476&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3477&#10;(dp3478&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3479&#10;(dp3480&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3481&#10;(dp3482&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3483&#10;(dp3484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3485&#10;(dp3486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3487&#10;(dp3488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name5-Value5'&#10;p3489&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3489&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3490&#10;(dp3491&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3492&#10;(dp3493&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3494&#10;(dp3495&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3496&#10;(dp3497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3498&#10;(dp3499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3500&#10;(dp3501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter5'&#10;p3502&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3502&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3503&#10;(dp3504&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3505&#10;(dp3506&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3507&#10;(dp3508&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3509&#10;(dp3510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3511&#10;(dp3512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3513&#10;(dp3514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name6-Value6'&#10;p3515&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3515&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3516&#10;(dp3517&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3518&#10;(dp3519&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3520&#10;(dp3521&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3522&#10;(dp3523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3524&#10;(dp3525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3526&#10;(dp3527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter6'&#10;p3528&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3528&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3529&#10;(dp3530&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3531&#10;(dp3532&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3533&#10;(dp3534&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3535&#10;(dp3536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3537&#10;(dp3538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3539&#10;(dp3540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name7-Value7'&#10;p3541&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3541&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3542&#10;(dp3543&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3544&#10;(dp3545&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3546&#10;(dp3547&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3548&#10;(dp3549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3550&#10;(dp3551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3552&#10;(dp3553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter7'&#10;p3554&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3554&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3555&#10;(dp3556&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3557&#10;(dp3558&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3559&#10;(dp3560&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3561&#10;(dp3562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3563&#10;(dp3564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3565&#10;(dp3566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name8-Value8'&#10;p3567&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3567&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3568&#10;(dp3569&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3570&#10;(dp3571&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3572&#10;(dp3573&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3574&#10;(dp3575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3576&#10;(dp3577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3578&#10;(dp3579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter8'&#10;p3580&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3580&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3581&#10;(dp3582&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3583&#10;(dp3584&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3585&#10;(dp3586&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3587&#10;(dp3588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3589&#10;(dp3590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3591&#10;(dp3592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name9-Value9'&#10;p3593&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3593&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3594&#10;(dp3595&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3596&#10;(dp3597&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3598&#10;(dp3599&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3600&#10;(dp3601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3602&#10;(dp3603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3604&#10;(dp3605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter9'&#10;p3606&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3606&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3607&#10;(dp3608&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3609&#10;(dp3610&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3611&#10;(dp3612&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3613&#10;(dp3614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3615&#10;(dp3616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3617&#10;(dp3618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Name10-Value10'&#10;p3619&#10;sg22&#10;I00&#10;sg37&#10;g3385&#10;sg39&#10;g3619&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3620&#10;(dp3621&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3622&#10;(dp3623&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3624&#10;(dp3625&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3626&#10;(dp3627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3628&#10;(dp3629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3630&#10;(dp3631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Counter10'&#10;p3632&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3632&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3633&#10;(dp3634&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3635&#10;(dp3636&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3637&#10;(dp3638&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3639&#10;(dp3640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3641&#10;(dp3642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3643&#10;(dp3644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Received'&#10;p3645&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3645&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3646&#10;(dp3647&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3648&#10;(dp3649&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3650&#10;(dp3651&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3652&#10;(dp3653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3654&#10;(dp3655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3656&#10;(dp3657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Successful'&#10;p3658&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3658&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3659&#10;(dp3660&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3661&#10;(dp3662&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3663&#10;(dp3664&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3665&#10;(dp3666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3667&#10;(dp3668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3669&#10;(dp3670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Gzip-Encoded Responses Failed'&#10;p3671&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3671&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3672&#10;(dp3673&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3674&#10;(dp3675&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3676&#10;(dp3677&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3678&#10;(dp3679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3680&#10;(dp3681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3682&#10;(dp3683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Received'&#10;p3684&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3684&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3685&#10;(dp3686&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3687&#10;(dp3688&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3689&#10;(dp3690&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3691&#10;(dp3692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3693&#10;(dp3694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3695&#10;(dp3696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Successful'&#10;p3697&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3697&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3698&#10;(dp3699&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3700&#10;(dp3701&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3702&#10;(dp3703&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3704&#10;(dp3705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3706&#10;(dp3707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3708&#10;(dp3709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Deflate-Encoded Responses Failed'&#10;p3710&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3710&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3711&#10;(dp3712&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3713&#10;(dp3714&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3715&#10;(dp3716&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3717&#10;(dp3718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3719&#10;(dp3720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3721&#10;(dp3722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Received'&#10;p3723&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3723&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3724&#10;(dp3725&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3726&#10;(dp3727&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3728&#10;(dp3729&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3730&#10;(dp3731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3732&#10;(dp3733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3734&#10;(dp3735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Successful'&#10;p3736&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3736&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3737&#10;(dp3738&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3739&#10;(dp3740&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3741&#10;(dp3742&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3743&#10;(dp3744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3745&#10;(dp3746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3747&#10;(dp3748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content-MD5 Responses Failed'&#10;p3749&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3749&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3750&#10;(dp3751&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3752&#10;(dp3753&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3754&#10;(dp3755&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3756&#10;(dp3757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3758&#10;(dp3759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3760&#10;(dp3761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Received'&#10;p3762&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3762&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3763&#10;(dp3764&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3765&#10;(dp3766&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3767&#10;(dp3768&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3769&#10;(dp3770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3771&#10;(dp3772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3773&#10;(dp3774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Successful'&#10;p3775&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3775&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3776&#10;(dp3777&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3778&#10;(dp3779&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3780&#10;(dp3781&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3782&#10;(dp3783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3784&#10;(dp3785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3786&#10;(dp3787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Custom MD5 Responses Failed'&#10;p3788&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3788&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3789&#10;(dp3790&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3791&#10;(dp3792&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3793&#10;(dp3794&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3795&#10;(dp3796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3797&#10;(dp3798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3799&#10;(dp3800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Average Compression Ratio'&#10;p3801&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g3801&#10;sbatRp3802&#10;(dp3803&#10;g12&#10;I76&#10;sg22&#10;I00&#10;sg11&#10;NsbsS'HTTP Client'&#10;p3804&#10;g3&#10;(g4&#10;g5&#10;(lp3805&#10;g3&#10;(g7&#10;g8&#10;NtRp3806&#10;(dp3807&#10;g11&#10;Nsg12&#10;I0&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3808&#10;(dp3809&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3810&#10;(dp3811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3812&#10;(dp3813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3814&#10;(dp3815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3816&#10;(dp3817&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Simulated Users'&#10;p3818&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3818&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3819&#10;(dp3820&#10;g11&#10;Nsg12&#10;I1&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3821&#10;(dp3822&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3823&#10;(dp3824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3825&#10;(dp3826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3827&#10;(dp3828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3829&#10;(dp3830&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Concurrent Connections'&#10;p3831&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3831&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3832&#10;(dp3833&#10;g11&#10;Nsg12&#10;I2&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3834&#10;(dp3835&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3836&#10;(dp3837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3838&#10;(dp3839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3840&#10;(dp3841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3842&#10;(dp3843&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connections'&#10;p3844&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3844&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3845&#10;(dp3846&#10;g11&#10;Nsg12&#10;I3&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3847&#10;(dp3848&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3849&#10;(dp3850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3851&#10;(dp3852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3853&#10;(dp3854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3855&#10;(dp3856&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Attempts'&#10;p3857&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3857&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3858&#10;(dp3859&#10;g11&#10;Nsg12&#10;I4&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3860&#10;(dp3861&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3862&#10;(dp3863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3864&#10;(dp3865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3866&#10;(dp3867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3868&#10;(dp3869&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connection Aborts'&#10;p3870&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3870&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3871&#10;(dp3872&#10;g11&#10;Nsg12&#10;I5&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3873&#10;(dp3874&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3875&#10;(dp3876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3877&#10;(dp3878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3879&#10;(dp3880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3881&#10;(dp3882&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Aborts'&#10;p3883&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3883&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3884&#10;(dp3885&#10;g11&#10;Nsg12&#10;I6&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3886&#10;(dp3887&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3888&#10;(dp3889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3890&#10;(dp3891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3892&#10;(dp3893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3894&#10;(dp3895&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions'&#10;p3896&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3896&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3897&#10;(dp3898&#10;g11&#10;Nsg12&#10;I7&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3899&#10;(dp3900&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3901&#10;(dp3902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3903&#10;(dp3904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3905&#10;(dp3906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3907&#10;(dp3908&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes'&#10;p3909&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3909&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3910&#10;(dp3911&#10;g11&#10;Nsg12&#10;I8&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3912&#10;(dp3913&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3914&#10;(dp3915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3916&#10;(dp3917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3918&#10;(dp3919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3920&#10;(dp3921&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2812&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2812&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3922&#10;(dp3923&#10;g11&#10;Nsg12&#10;I9&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3924&#10;(dp3925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3926&#10;(dp3927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3928&#10;(dp3929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3930&#10;(dp3931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3932&#10;(dp3933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2825&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2825&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3934&#10;(dp3935&#10;g11&#10;Nsg12&#10;I10&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3936&#10;(dp3937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3938&#10;(dp3939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3940&#10;(dp3941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3942&#10;(dp3943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3944&#10;(dp3945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2838&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2838&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3946&#10;(dp3947&#10;g11&#10;Nsg12&#10;I11&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3948&#10;(dp3949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3950&#10;(dp3951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3952&#10;(dp3953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3954&#10;(dp3955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3956&#10;(dp3957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3137&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3137&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3958&#10;(dp3959&#10;g11&#10;Nsg12&#10;I12&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3960&#10;(dp3961&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3962&#10;(dp3963&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3964&#10;(dp3965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3966&#10;(dp3967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3968&#10;(dp3969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3150&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3150&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3970&#10;(dp3971&#10;g11&#10;Nsg12&#10;I13&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3972&#10;(dp3973&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3974&#10;(dp3975&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3976&#10;(dp3977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3978&#10;(dp3979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3980&#10;(dp3981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3163&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3163&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3982&#10;(dp3983&#10;g11&#10;Nsg12&#10;I14&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3984&#10;(dp3985&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3986&#10;(dp3987&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp3988&#10;(dp3989&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp3990&#10;(dp3991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp3992&#10;(dp3993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3176&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3176&#10;sbag3&#10;(g7&#10;g8&#10;NtRp3994&#10;(dp3995&#10;g11&#10;Nsg12&#10;I15&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp3996&#10;(dp3997&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp3998&#10;(dp3999&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4000&#10;(dp4001&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4002&#10;(dp4003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4004&#10;(dp4005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3189&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3189&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4006&#10;(dp4007&#10;g11&#10;Nsg12&#10;I16&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4008&#10;(dp4009&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4010&#10;(dp4011&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4012&#10;(dp4013&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4014&#10;(dp4015&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4016&#10;(dp4017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3202&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3202&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4018&#10;(dp4019&#10;g11&#10;Nsg12&#10;I17&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4020&#10;(dp4021&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4022&#10;(dp4023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4024&#10;(dp4025&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4026&#10;(dp4027&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4028&#10;(dp4029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3215&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3215&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4030&#10;(dp4031&#10;g11&#10;Nsg12&#10;I18&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4032&#10;(dp4033&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4034&#10;(dp4035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4036&#10;(dp4037&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4038&#10;(dp4039&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4040&#10;(dp4041&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2851&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2851&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4042&#10;(dp4043&#10;g11&#10;Nsg12&#10;I19&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4044&#10;(dp4045&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4046&#10;(dp4047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4048&#10;(dp4049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4050&#10;(dp4051&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4052&#10;(dp4053&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2864&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2864&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4054&#10;(dp4055&#10;g11&#10;Nsg12&#10;I20&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4056&#10;(dp4057&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4058&#10;(dp4059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4060&#10;(dp4061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4062&#10;(dp4063&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4064&#10;(dp4065&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2877&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2877&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4066&#10;(dp4067&#10;g11&#10;Nsg12&#10;I21&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4068&#10;(dp4069&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4070&#10;(dp4071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4072&#10;(dp4073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4074&#10;(dp4075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4076&#10;(dp4077&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2890&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2890&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4078&#10;(dp4079&#10;g11&#10;Nsg12&#10;I22&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4080&#10;(dp4081&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4082&#10;(dp4083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4084&#10;(dp4085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4086&#10;(dp4087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4088&#10;(dp4089&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2903&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2903&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4090&#10;(dp4091&#10;g11&#10;Nsg12&#10;I23&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4092&#10;(dp4093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4094&#10;(dp4095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4096&#10;(dp4097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4098&#10;(dp4099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4100&#10;(dp4101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2916&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2916&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4102&#10;(dp4103&#10;g11&#10;Nsg12&#10;I24&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4104&#10;(dp4105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4106&#10;(dp4107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4108&#10;(dp4109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4110&#10;(dp4111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4112&#10;(dp4113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2929&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2929&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4114&#10;(dp4115&#10;g11&#10;Nsg12&#10;I25&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4116&#10;(dp4117&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4118&#10;(dp4119&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4120&#10;(dp4121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4122&#10;(dp4123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4124&#10;(dp4125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2942&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2942&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4126&#10;(dp4127&#10;g11&#10;Nsg12&#10;I26&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4128&#10;(dp4129&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4130&#10;(dp4131&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4132&#10;(dp4133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4134&#10;(dp4135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4136&#10;(dp4137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2955&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2955&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4138&#10;(dp4139&#10;g11&#10;Nsg12&#10;I27&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4140&#10;(dp4141&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4142&#10;(dp4143&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4144&#10;(dp4145&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4146&#10;(dp4147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4148&#10;(dp4149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2968&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2968&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4150&#10;(dp4151&#10;g11&#10;Nsg12&#10;I28&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4152&#10;(dp4153&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4154&#10;(dp4155&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4156&#10;(dp4157&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4158&#10;(dp4159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4160&#10;(dp4161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2981&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2981&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4162&#10;(dp4163&#10;g11&#10;Nsg12&#10;I29&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4164&#10;(dp4165&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4166&#10;(dp4167&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4168&#10;(dp4169&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4170&#10;(dp4171&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4172&#10;(dp4173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g2994&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g2994&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4174&#10;(dp4175&#10;g11&#10;Nsg12&#10;I30&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4176&#10;(dp4177&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4178&#10;(dp4179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4180&#10;(dp4181&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4182&#10;(dp4183&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4184&#10;(dp4185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3007&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3007&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4186&#10;(dp4187&#10;g11&#10;Nsg12&#10;I31&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4188&#10;(dp4189&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4190&#10;(dp4191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4192&#10;(dp4193&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4194&#10;(dp4195&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4196&#10;(dp4197&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3020&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3020&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4198&#10;(dp4199&#10;g11&#10;Nsg12&#10;I32&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4200&#10;(dp4201&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4202&#10;(dp4203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4204&#10;(dp4205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4206&#10;(dp4207&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4208&#10;(dp4209&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3033&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3033&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4210&#10;(dp4211&#10;g11&#10;Nsg12&#10;I33&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4212&#10;(dp4213&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4214&#10;(dp4215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4216&#10;(dp4217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4218&#10;(dp4219&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4220&#10;(dp4221&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3046&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3046&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4222&#10;(dp4223&#10;g11&#10;Nsg12&#10;I34&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4224&#10;(dp4225&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4226&#10;(dp4227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4228&#10;(dp4229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4230&#10;(dp4231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4232&#10;(dp4233&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3059&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3059&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4234&#10;(dp4235&#10;g11&#10;Nsg12&#10;I35&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4236&#10;(dp4237&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4238&#10;(dp4239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4240&#10;(dp4241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4242&#10;(dp4243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4244&#10;(dp4245&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3072&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3072&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4246&#10;(dp4247&#10;g11&#10;Nsg12&#10;I36&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4248&#10;(dp4249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4250&#10;(dp4251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4252&#10;(dp4253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4254&#10;(dp4255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4256&#10;(dp4257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Session Timeouts (408)'&#10;p4258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4259&#10;(dp4260&#10;g11&#10;Nsg12&#10;I37&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4261&#10;(dp4262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4263&#10;(dp4264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4265&#10;(dp4266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4267&#10;(dp4268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4269&#10;(dp4270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Request Precondition Failed (412)'&#10;p4271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4272&#10;(dp4273&#10;g11&#10;Nsg12&#10;I38&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4274&#10;(dp4275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4276&#10;(dp4277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4278&#10;(dp4279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4280&#10;(dp4281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4282&#10;(dp4283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Sessions Rejected (503)'&#10;p4284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4285&#10;(dp4286&#10;g11&#10;Nsg12&#10;I39&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4287&#10;(dp4288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4289&#10;(dp4290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4291&#10;(dp4292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4293&#10;(dp4294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4295&#10;(dp4296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3085&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3085&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4297&#10;(dp4298&#10;g11&#10;Nsg12&#10;I40&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4299&#10;(dp4300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4301&#10;(dp4302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4303&#10;(dp4304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4305&#10;(dp4306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4307&#10;(dp4308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;g3098&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g3098&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4309&#10;(dp4310&#10;g11&#10;Nsg12&#10;I41&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4311&#10;(dp4312&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4313&#10;(dp4314&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4315&#10;(dp4316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4317&#10;(dp4318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4319&#10;(dp4320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Transactions Active'&#10;p4321&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4321&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4322&#10;(dp4323&#10;g11&#10;Nsg12&#10;I42&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4324&#10;(dp4325&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4326&#10;(dp4327&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4328&#10;(dp4329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4330&#10;(dp4331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4332&#10;(dp4333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Users Active'&#10;p4334&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4334&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4335&#10;(dp4336&#10;g11&#10;Nsg12&#10;I43&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4337&#10;(dp4338&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4339&#10;(dp4340&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4341&#10;(dp4342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4343&#10;(dp4344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4345&#10;(dp4346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Received'&#10;p4347&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4347&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4348&#10;(dp4349&#10;g11&#10;Nsg12&#10;I44&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4350&#10;(dp4351&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4352&#10;(dp4353&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4354&#10;(dp4355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4356&#10;(dp4357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4358&#10;(dp4359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Received'&#10;p4360&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4360&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4361&#10;(dp4362&#10;g11&#10;Nsg12&#10;I45&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4363&#10;(dp4364&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4365&#10;(dp4366&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4367&#10;(dp4368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4369&#10;(dp4370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4371&#10;(dp4372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Received'&#10;p4373&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4373&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4374&#10;(dp4375&#10;g11&#10;Nsg12&#10;I46&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4376&#10;(dp4377&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4378&#10;(dp4379&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4380&#10;(dp4381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4382&#10;(dp4383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4384&#10;(dp4385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Unrecognized Content-Encoding Received'&#10;p4386&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4386&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4387&#10;(dp4388&#10;g11&#10;Nsg12&#10;I47&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4389&#10;(dp4390&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4391&#10;(dp4392&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4393&#10;(dp4394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4395&#10;(dp4396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4397&#10;(dp4398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Successful'&#10;p4399&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4399&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4400&#10;(dp4401&#10;g11&#10;Nsg12&#10;I48&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4402&#10;(dp4403&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4404&#10;(dp4405&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4406&#10;(dp4407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4408&#10;(dp4409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4410&#10;(dp4411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Successful'&#10;p4412&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4412&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4413&#10;(dp4414&#10;g11&#10;Nsg12&#10;I49&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4415&#10;(dp4416&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4417&#10;(dp4418&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4419&#10;(dp4420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4421&#10;(dp4422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4423&#10;(dp4424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Successful'&#10;p4425&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4425&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4426&#10;(dp4427&#10;g11&#10;Nsg12&#10;I50&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4428&#10;(dp4429&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4430&#10;(dp4431&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4432&#10;(dp4433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4434&#10;(dp4435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4436&#10;(dp4437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-Encoded Responses Decode Failed'&#10;p4438&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4438&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4439&#10;(dp4440&#10;g11&#10;Nsg12&#10;I51&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4441&#10;(dp4442&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4443&#10;(dp4444&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4445&#10;(dp4446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4447&#10;(dp4448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4449&#10;(dp4450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed'&#10;p4451&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4451&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4452&#10;(dp4453&#10;g11&#10;Nsg12&#10;I52&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4454&#10;(dp4455&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4456&#10;(dp4457&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4458&#10;(dp4459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4460&#10;(dp4461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4462&#10;(dp4463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed'&#10;p4464&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4464&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4465&#10;(dp4466&#10;g11&#10;Nsg12&#10;I53&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4467&#10;(dp4468&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4469&#10;(dp4470&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4471&#10;(dp4472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4473&#10;(dp4474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4475&#10;(dp4476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Data Error'&#10;p4477&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4477&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4478&#10;(dp4479&#10;g11&#10;Nsg12&#10;I54&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4480&#10;(dp4481&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4482&#10;(dp4483&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4484&#10;(dp4485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4486&#10;(dp4487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4488&#10;(dp4489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Gzip Content-Encoding Decode Failed - Decoding Error'&#10;p4490&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4490&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4491&#10;(dp4492&#10;g11&#10;Nsg12&#10;I55&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4493&#10;(dp4494&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4495&#10;(dp4496&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4497&#10;(dp4498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4499&#10;(dp4500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4501&#10;(dp4502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Data Error'&#10;p4503&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4503&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4504&#10;(dp4505&#10;g11&#10;Nsg12&#10;I56&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4506&#10;(dp4507&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4508&#10;(dp4509&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4510&#10;(dp4511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4512&#10;(dp4513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4514&#10;(dp4515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Deflate Content-Encoding Decode Failed - Decoding Error'&#10;p4516&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4516&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4517&#10;(dp4518&#10;g11&#10;Nsg12&#10;I57&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4519&#10;(dp4520&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4521&#10;(dp4522&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4523&#10;(dp4524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4525&#10;(dp4526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4527&#10;(dp4528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Headers Received'&#10;p4529&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4529&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4530&#10;(dp4531&#10;g11&#10;Nsg12&#10;I58&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4532&#10;(dp4533&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4534&#10;(dp4535&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4536&#10;(dp4537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4538&#10;(dp4539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4540&#10;(dp4541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoded Responses Received'&#10;p4542&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4542&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4543&#10;(dp4544&#10;g11&#10;Nsg12&#10;I59&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4545&#10;(dp4546&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4547&#10;(dp4548&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4549&#10;(dp4550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4551&#10;(dp4552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4553&#10;(dp4554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Successful'&#10;p4555&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4555&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4556&#10;(dp4557&#10;g11&#10;Nsg12&#10;I60&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4558&#10;(dp4559&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4560&#10;(dp4561&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4562&#10;(dp4563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4564&#10;(dp4565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4566&#10;(dp4567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Decode Failed'&#10;p4568&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4568&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4569&#10;(dp4570&#10;g11&#10;Nsg12&#10;I61&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4571&#10;(dp4572&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4573&#10;(dp4574&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4575&#10;(dp4576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4577&#10;(dp4578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4579&#10;(dp4580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Received'&#10;p4581&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4581&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4582&#10;(dp4583&#10;g11&#10;Nsg12&#10;I62&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4584&#10;(dp4585&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4586&#10;(dp4587&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4588&#10;(dp4589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4590&#10;(dp4591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4592&#10;(dp4593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Chunked Transfer-Encoding Headers Sent'&#10;p4594&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4594&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4595&#10;(dp4596&#10;g11&#10;Nsg12&#10;I63&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4597&#10;(dp4598&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4599&#10;(dp4600&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4601&#10;(dp4602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4603&#10;(dp4604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4605&#10;(dp4606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Total Chunks Sent'&#10;p4607&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4607&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4608&#10;(dp4609&#10;g11&#10;Nsg12&#10;I64&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4610&#10;(dp4611&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4612&#10;(dp4613&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4614&#10;(dp4615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4616&#10;(dp4617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4618&#10;(dp4619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Responses Received'&#10;p4620&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4620&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4621&#10;(dp4622&#10;g11&#10;Nsg12&#10;I65&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4623&#10;(dp4624&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4625&#10;(dp4626&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4627&#10;(dp4628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4629&#10;(dp4630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4631&#10;(dp4632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Successful'&#10;p4633&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4633&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4634&#10;(dp4635&#10;g11&#10;Nsg12&#10;I66&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4636&#10;(dp4637&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4638&#10;(dp4639&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4640&#10;(dp4641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4642&#10;(dp4643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4644&#10;(dp4645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Content-MD5 Check Failed'&#10;p4646&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4646&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4647&#10;(dp4648&#10;g11&#10;Nsg12&#10;I67&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4649&#10;(dp4650&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4651&#10;(dp4652&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4653&#10;(dp4654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4655&#10;(dp4656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4657&#10;(dp4658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Responses Received'&#10;p4659&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4659&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4660&#10;(dp4661&#10;g11&#10;Nsg12&#10;I68&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4662&#10;(dp4663&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4664&#10;(dp4665&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4666&#10;(dp4667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4668&#10;(dp4669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4670&#10;(dp4671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Successful'&#10;p4672&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4672&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4673&#10;(dp4674&#10;g11&#10;Nsg12&#10;I69&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4675&#10;(dp4676&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4677&#10;(dp4678&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4679&#10;(dp4680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4681&#10;(dp4682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4683&#10;(dp4684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Custom-MD5 Check Failed'&#10;p4685&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4685&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4686&#10;(dp4687&#10;g11&#10;Nsg12&#10;I70&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4688&#10;(dp4689&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4690&#10;(dp4691&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4692&#10;(dp4693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4694&#10;(dp4695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4696&#10;(dp4697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Sent'&#10;p4698&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4698&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4699&#10;(dp4700&#10;g11&#10;Nsg12&#10;I71&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4701&#10;(dp4702&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4703&#10;(dp4704&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4705&#10;(dp4706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4707&#10;(dp4708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4709&#10;(dp4710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Bytes Received'&#10;p4711&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4711&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4712&#10;(dp4713&#10;g11&#10;Nsg12&#10;I72&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4714&#10;(dp4715&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4716&#10;(dp4717&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4718&#10;(dp4719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4720&#10;(dp4721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4722&#10;(dp4723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Sent'&#10;p4724&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4724&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4725&#10;(dp4726&#10;g11&#10;Nsg12&#10;I73&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4727&#10;(dp4728&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4729&#10;(dp4730&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4731&#10;(dp4732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4733&#10;(dp4734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4735&#10;(dp4736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Content Bytes Received'&#10;p4737&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4737&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4738&#10;(dp4739&#10;g11&#10;Nsg12&#10;I74&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4740&#10;(dp4741&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4742&#10;(dp4743&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4744&#10;(dp4745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4746&#10;(dp4747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4748&#10;(dp4749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Decompressed Content Bytes Received'&#10;p4750&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4750&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4751&#10;(dp4752&#10;g11&#10;Nsg12&#10;I75&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4753&#10;(dp4754&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4755&#10;(dp4756&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4757&#10;(dp4758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4759&#10;(dp4760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4761&#10;(dp4762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Received'&#10;p4763&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4763&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4764&#10;(dp4765&#10;g11&#10;Nsg12&#10;I76&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4766&#10;(dp4767&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4768&#10;(dp4769&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4770&#10;(dp4771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4772&#10;(dp4773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4774&#10;(dp4775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Sent'&#10;p4776&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4776&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4777&#10;(dp4778&#10;g11&#10;Nsg12&#10;I77&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4779&#10;(dp4780&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4781&#10;(dp4782&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4783&#10;(dp4784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4785&#10;(dp4786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4787&#10;(dp4788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected'&#10;p4789&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4789&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4790&#10;(dp4791&#10;g11&#10;Nsg12&#10;I78&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4792&#10;(dp4793&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4794&#10;(dp4795&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4796&#10;(dp4797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4798&#10;(dp4799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4800&#10;(dp4801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Path Match Failed)'&#10;p4802&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4802&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4803&#10;(dp4804&#10;g11&#10;Nsg12&#10;I79&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4805&#10;(dp4806&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4807&#10;(dp4808&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4809&#10;(dp4810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4811&#10;(dp4812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4813&#10;(dp4814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Domain Match Failed)'&#10;p4815&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4815&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4816&#10;(dp4817&#10;g11&#10;Nsg12&#10;I80&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4818&#10;(dp4819&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4820&#10;(dp4821&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4822&#10;(dp4823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4824&#10;(dp4825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4826&#10;(dp4827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Cookiejar Overflow)'&#10;p4828&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4828&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4829&#10;(dp4830&#10;g11&#10;Nsg12&#10;I81&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4831&#10;(dp4832&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4833&#10;(dp4834&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4835&#10;(dp4836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4837&#10;(dp4838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4839&#10;(dp4840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookies Rejected - (Probabilistic Reject)'&#10;p4841&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4841&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4842&#10;(dp4843&#10;g11&#10;Nsg12&#10;I82&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4844&#10;(dp4845&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4846&#10;(dp4847&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4848&#10;(dp4849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4850&#10;(dp4851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4852&#10;(dp4853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Cookie headers Rejected - (Memory Overflow)'&#10;p4854&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4854&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4855&#10;(dp4856&#10;g11&#10;Nsg12&#10;I83&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4857&#10;(dp4858&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4859&#10;(dp4860&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4861&#10;(dp4862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4863&#10;(dp4864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4865&#10;(dp4866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Connect Time (us)'&#10;p4867&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4867&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4868&#10;(dp4869&#10;g11&#10;Nsg12&#10;I84&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4870&#10;(dp4871&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4872&#10;(dp4873&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4874&#10;(dp4875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4876&#10;(dp4877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4878&#10;(dp4879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To First Byte (us)'&#10;p4880&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4880&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4881&#10;(dp4882&#10;g11&#10;Nsg12&#10;I85&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4883&#10;(dp4884&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4885&#10;(dp4886&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4887&#10;(dp4888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4889&#10;(dp4890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4891&#10;(dp4892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Time To Last Byte (us)'&#10;p4893&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4893&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4894&#10;(dp4895&#10;g11&#10;Nsg12&#10;I86&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4896&#10;(dp4897&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4898&#10;(dp4899&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4900&#10;(dp4901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4902&#10;(dp4903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4904&#10;(dp4905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Average (us)'&#10;p4906&#10;sg22&#10;I00&#10;sg37&#10;g261&#10;sg39&#10;g4906&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4907&#10;(dp4908&#10;g11&#10;Nsg12&#10;I87&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4909&#10;(dp4910&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4911&#10;(dp4912&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4913&#10;(dp4914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4915&#10;(dp4916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4917&#10;(dp4918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Minimum (us)'&#10;p4919&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4919&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4920&#10;(dp4921&#10;g11&#10;Nsg12&#10;I88&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4922&#10;(dp4923&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4924&#10;(dp4925&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4926&#10;(dp4927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4928&#10;(dp4929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4930&#10;(dp4931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Old Session Abort Delay - Maximum (us)'&#10;p4932&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4932&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4933&#10;(dp4934&#10;g11&#10;Nsg12&#10;I89&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4935&#10;(dp4936&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4937&#10;(dp4938&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4939&#10;(dp4940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4941&#10;(dp4942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4943&#10;(dp4944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Failed'&#10;p4945&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4945&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4946&#10;(dp4947&#10;g11&#10;Nsg12&#10;I90&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4948&#10;(dp4949&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4950&#10;(dp4951&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4952&#10;(dp4953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4954&#10;(dp4955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4956&#10;(dp4957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client Total Data Integrity Check Succeeded'&#10;p4958&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4958&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4959&#10;(dp4960&#10;g11&#10;Nsg12&#10;I91&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4961&#10;(dp4962&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4963&#10;(dp4964&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4965&#10;(dp4966&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4967&#10;(dp4968&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4969&#10;(dp4970&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Received'&#10;p4971&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4971&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4972&#10;(dp4973&#10;g11&#10;Nsg12&#10;I92&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4974&#10;(dp4975&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4976&#10;(dp4977&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4978&#10;(dp4979&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4980&#10;(dp4981&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4982&#10;(dp4983&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Received'&#10;p4984&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4984&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4985&#10;(dp4986&#10;g11&#10;Nsg12&#10;I93&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp4987&#10;(dp4988&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp4989&#10;(dp4990&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp4991&#10;(dp4992&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp4993&#10;(dp4994&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp4995&#10;(dp4996&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Received'&#10;p4997&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g4997&#10;sbag3&#10;(g7&#10;g8&#10;NtRp4998&#10;(dp4999&#10;g11&#10;Nsg12&#10;I94&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5000&#10;(dp5001&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5002&#10;(dp5003&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5004&#10;(dp5005&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5006&#10;(dp5007&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5008&#10;(dp5009&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Received'&#10;p5010&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5010&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5011&#10;(dp5012&#10;g11&#10;Nsg12&#10;I95&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5013&#10;(dp5014&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5015&#10;(dp5016&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5017&#10;(dp5018&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5019&#10;(dp5020&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5021&#10;(dp5022&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Received'&#10;p5023&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5023&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5024&#10;(dp5025&#10;g11&#10;Nsg12&#10;I96&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5026&#10;(dp5027&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5028&#10;(dp5029&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5030&#10;(dp5031&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5032&#10;(dp5033&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5034&#10;(dp5035&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Received'&#10;p5036&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5036&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5037&#10;(dp5038&#10;g11&#10;Nsg12&#10;I97&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5039&#10;(dp5040&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5041&#10;(dp5042&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5043&#10;(dp5044&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5045&#10;(dp5046&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5047&#10;(dp5048&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Received'&#10;p5049&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5049&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5050&#10;(dp5051&#10;g11&#10;Nsg12&#10;I98&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5052&#10;(dp5053&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5054&#10;(dp5055&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5056&#10;(dp5057&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5058&#10;(dp5059&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5060&#10;(dp5061&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Received'&#10;p5062&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5062&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5063&#10;(dp5064&#10;g11&#10;Nsg12&#10;I99&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5065&#10;(dp5066&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5067&#10;(dp5068&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5069&#10;(dp5070&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5071&#10;(dp5072&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5073&#10;(dp5074&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Received'&#10;p5075&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5075&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5076&#10;(dp5077&#10;g11&#10;Nsg12&#10;I100&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5078&#10;(dp5079&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5080&#10;(dp5081&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5082&#10;(dp5083&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5084&#10;(dp5085&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5086&#10;(dp5087&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Received'&#10;p5088&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5088&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5089&#10;(dp5090&#10;g11&#10;Nsg12&#10;I101&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5091&#10;(dp5092&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5093&#10;(dp5094&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5095&#10;(dp5096&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5097&#10;(dp5098&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5099&#10;(dp5100&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Data Frames Sent'&#10;p5101&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5101&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5102&#10;(dp5103&#10;g11&#10;Nsg12&#10;I102&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5104&#10;(dp5105&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5106&#10;(dp5107&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5108&#10;(dp5109&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5110&#10;(dp5111&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5112&#10;(dp5113&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Header Frames Sent'&#10;p5114&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5114&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5115&#10;(dp5116&#10;g11&#10;Nsg12&#10;I103&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5117&#10;(dp5118&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5119&#10;(dp5120&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5121&#10;(dp5122&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5123&#10;(dp5124&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5125&#10;(dp5126&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Priority Frames Sent'&#10;p5127&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5127&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5128&#10;(dp5129&#10;g11&#10;Nsg12&#10;I104&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5130&#10;(dp5131&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5132&#10;(dp5133&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5134&#10;(dp5135&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5136&#10;(dp5137&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5138&#10;(dp5139&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Reset Stream Frames Sent'&#10;p5140&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5140&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5141&#10;(dp5142&#10;g11&#10;Nsg12&#10;I105&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5143&#10;(dp5144&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5145&#10;(dp5146&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5147&#10;(dp5148&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5149&#10;(dp5150&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5151&#10;(dp5152&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Frames Sent'&#10;p5153&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5153&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5154&#10;(dp5155&#10;g11&#10;Nsg12&#10;I106&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5156&#10;(dp5157&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5158&#10;(dp5159&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5160&#10;(dp5161&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5162&#10;(dp5163&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5164&#10;(dp5165&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Push Promise Frames Sent'&#10;p5166&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5166&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5167&#10;(dp5168&#10;g11&#10;Nsg12&#10;I107&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5169&#10;(dp5170&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5171&#10;(dp5172&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5173&#10;(dp5174&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5175&#10;(dp5176&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5177&#10;(dp5178&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Ping Frames Sent'&#10;p5179&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5179&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5180&#10;(dp5181&#10;g11&#10;Nsg12&#10;I108&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5182&#10;(dp5183&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5184&#10;(dp5185&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5186&#10;(dp5187&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5188&#10;(dp5189&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5190&#10;(dp5191&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Go Away Frames Sent'&#10;p5192&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5192&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5193&#10;(dp5194&#10;g11&#10;Nsg12&#10;I109&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5195&#10;(dp5196&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5197&#10;(dp5198&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5199&#10;(dp5200&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5201&#10;(dp5202&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5203&#10;(dp5204&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Window Update Frames Sent'&#10;p5205&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5205&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5206&#10;(dp5207&#10;g11&#10;Nsg12&#10;I110&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5208&#10;(dp5209&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5210&#10;(dp5211&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5212&#10;(dp5213&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5214&#10;(dp5215&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5216&#10;(dp5217&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Continuation Frames Sent'&#10;p5218&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5218&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5219&#10;(dp5220&#10;g11&#10;Nsg12&#10;I111&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5221&#10;(dp5222&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5223&#10;(dp5224&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5225&#10;(dp5226&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5227&#10;(dp5228&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5229&#10;(dp5230&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Client'&#10;p5231&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5231&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5232&#10;(dp5233&#10;g11&#10;Nsg12&#10;I112&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5234&#10;(dp5235&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5236&#10;(dp5237&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5238&#10;(dp5239&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5240&#10;(dp5241&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5242&#10;(dp5243&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Initiated by Server'&#10;p5244&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5244&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5245&#10;(dp5246&#10;g11&#10;Nsg12&#10;I113&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5247&#10;(dp5248&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5249&#10;(dp5250&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5251&#10;(dp5252&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5253&#10;(dp5254&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5255&#10;(dp5256&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Client to Server)'&#10;p5257&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5257&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5258&#10;(dp5259&#10;g11&#10;Nsg12&#10;I114&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5260&#10;(dp5261&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5262&#10;(dp5263&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5264&#10;(dp5265&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5266&#10;(dp5267&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5268&#10;(dp5269&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Succeeded (Server to Client)'&#10;p5270&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5270&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5271&#10;(dp5272&#10;g11&#10;Nsg12&#10;I115&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5273&#10;(dp5274&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5275&#10;(dp5276&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5277&#10;(dp5278&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5279&#10;(dp5280&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5281&#10;(dp5282&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Client to Server)'&#10;p5283&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5283&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5284&#10;(dp5285&#10;g11&#10;Nsg12&#10;I116&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5286&#10;(dp5287&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5288&#10;(dp5289&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5290&#10;(dp5291&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5292&#10;(dp5293&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5294&#10;(dp5295&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Streams Failed (Server to Client)'&#10;p5296&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5296&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5297&#10;(dp5298&#10;g11&#10;Nsg12&#10;I117&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5299&#10;(dp5300&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5301&#10;(dp5302&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5303&#10;(dp5304&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5305&#10;(dp5306&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5307&#10;(dp5308&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Succeeded'&#10;p5309&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5309&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5310&#10;(dp5311&#10;g11&#10;Nsg12&#10;I118&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5312&#10;(dp5313&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5314&#10;(dp5315&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5316&#10;(dp5317&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5318&#10;(dp5319&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5320&#10;(dp5321&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connection Upgrade Failed'&#10;p5322&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5322&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5323&#10;(dp5324&#10;g11&#10;Nsg12&#10;I119&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5325&#10;(dp5326&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5327&#10;(dp5328&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5329&#10;(dp5330&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5331&#10;(dp5332&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5333&#10;(dp5334&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Protocol Error'&#10;p5335&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5335&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5336&#10;(dp5337&#10;g11&#10;Nsg12&#10;I120&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5338&#10;(dp5339&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5340&#10;(dp5341&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5342&#10;(dp5343&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5344&#10;(dp5345&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5346&#10;(dp5347&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Internal Error'&#10;p5348&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5348&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5349&#10;(dp5350&#10;g11&#10;Nsg12&#10;I121&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5351&#10;(dp5352&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5353&#10;(dp5354&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5355&#10;(dp5356&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5357&#10;(dp5358&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5359&#10;(dp5360&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Flow Control Error'&#10;p5361&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5361&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5362&#10;(dp5363&#10;g11&#10;Nsg12&#10;I122&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5364&#10;(dp5365&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5366&#10;(dp5367&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5368&#10;(dp5369&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5370&#10;(dp5371&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5372&#10;(dp5373&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Settings Timeout Error'&#10;p5374&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5374&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5375&#10;(dp5376&#10;g11&#10;Nsg12&#10;I123&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5377&#10;(dp5378&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5379&#10;(dp5380&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5381&#10;(dp5382&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5383&#10;(dp5384&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5385&#10;(dp5386&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Closed Error'&#10;p5387&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5387&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5388&#10;(dp5389&#10;g11&#10;Nsg12&#10;I124&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5390&#10;(dp5391&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5392&#10;(dp5393&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5394&#10;(dp5395&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5396&#10;(dp5397&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5398&#10;(dp5399&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Frame Size Error'&#10;p5400&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5400&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5401&#10;(dp5402&#10;g11&#10;Nsg12&#10;I125&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5403&#10;(dp5404&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5405&#10;(dp5406&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5407&#10;(dp5408&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5409&#10;(dp5410&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5411&#10;(dp5412&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Refused Stream Error'&#10;p5413&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5413&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5414&#10;(dp5415&#10;g11&#10;Nsg12&#10;I126&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5416&#10;(dp5417&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5418&#10;(dp5419&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5420&#10;(dp5421&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5422&#10;(dp5423&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5424&#10;(dp5425&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Stream Cancelled Error'&#10;p5426&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5426&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5427&#10;(dp5428&#10;g11&#10;Nsg12&#10;I127&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5429&#10;(dp5430&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5431&#10;(dp5432&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5433&#10;(dp5434&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5435&#10;(dp5436&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5437&#10;(dp5438&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Compression Error'&#10;p5439&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5439&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5440&#10;(dp5441&#10;g11&#10;Nsg12&#10;I128&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5442&#10;(dp5443&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5444&#10;(dp5445&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5446&#10;(dp5447&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5448&#10;(dp5449&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5450&#10;(dp5451&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Connect Error'&#10;p5452&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5452&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5453&#10;(dp5454&#10;g11&#10;Nsg12&#10;I129&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5455&#10;(dp5456&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5457&#10;(dp5458&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5459&#10;(dp5460&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5461&#10;(dp5462&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5463&#10;(dp5464&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Enhance Calm Error'&#10;p5465&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5465&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5466&#10;(dp5467&#10;g11&#10;Nsg12&#10;I130&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5468&#10;(dp5469&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5470&#10;(dp5471&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5472&#10;(dp5473&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5474&#10;(dp5475&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5476&#10;(dp5477&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 Inadequate Security Error'&#10;p5478&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5478&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5479&#10;(dp5480&#10;g11&#10;Nsg12&#10;I131&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5481&#10;(dp5482&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5483&#10;(dp5484&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5485&#10;(dp5486&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5487&#10;(dp5488&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5489&#10;(dp5490&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'HTTP Client HTTP2.0 HTTP1_1 Required Error'&#10;p5491&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5491&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5492&#10;(dp5493&#10;g11&#10;Nsg12&#10;I132&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5494&#10;(dp5495&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5496&#10;(dp5497&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5498&#10;(dp5499&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5500&#10;(dp5501&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5502&#10;(dp5503&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received'&#10;p5504&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5504&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5505&#10;(dp5506&#10;g11&#10;Nsg12&#10;I133&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5507&#10;(dp5508&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5509&#10;(dp5510&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5511&#10;(dp5512&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5513&#10;(dp5514&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5515&#10;(dp5516&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent'&#10;p5517&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5517&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5518&#10;(dp5519&#10;g11&#10;Nsg12&#10;I134&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5520&#10;(dp5521&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5522&#10;(dp5523&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5524&#10;(dp5525&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5526&#10;(dp5527&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5528&#10;(dp5529&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (close_notify)'&#10;p5530&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5530&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5531&#10;(dp5532&#10;g11&#10;Nsg12&#10;I135&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5533&#10;(dp5534&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5535&#10;(dp5536&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5537&#10;(dp5538&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5539&#10;(dp5540&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5541&#10;(dp5542&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (close_notify)'&#10;p5543&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5543&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5544&#10;(dp5545&#10;g11&#10;Nsg12&#10;I136&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5546&#10;(dp5547&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5548&#10;(dp5549&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5550&#10;(dp5551&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5552&#10;(dp5553&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5554&#10;(dp5555&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unexpected_message)'&#10;p5556&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5556&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5557&#10;(dp5558&#10;g11&#10;Nsg12&#10;I137&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5559&#10;(dp5560&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5561&#10;(dp5562&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5563&#10;(dp5564&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5565&#10;(dp5566&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5567&#10;(dp5568&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unexpected_message)'&#10;p5569&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5569&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5570&#10;(dp5571&#10;g11&#10;Nsg12&#10;I138&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5572&#10;(dp5573&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5574&#10;(dp5575&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5576&#10;(dp5577&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5578&#10;(dp5579&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5580&#10;(dp5581&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_record_mac)'&#10;p5582&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5582&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5583&#10;(dp5584&#10;g11&#10;Nsg12&#10;I139&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5585&#10;(dp5586&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5587&#10;(dp5588&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5589&#10;(dp5590&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5591&#10;(dp5592&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5593&#10;(dp5594&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_record_mac)'&#10;p5595&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5595&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5596&#10;(dp5597&#10;g11&#10;Nsg12&#10;I140&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5598&#10;(dp5599&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5600&#10;(dp5601&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5602&#10;(dp5603&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5604&#10;(dp5605&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5606&#10;(dp5607&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decryption_failed)'&#10;p5608&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5608&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5609&#10;(dp5610&#10;g11&#10;Nsg12&#10;I141&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5611&#10;(dp5612&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5613&#10;(dp5614&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5615&#10;(dp5616&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5617&#10;(dp5618&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5619&#10;(dp5620&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decryption_failed)'&#10;p5621&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5621&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5622&#10;(dp5623&#10;g11&#10;Nsg12&#10;I142&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5624&#10;(dp5625&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5626&#10;(dp5627&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5628&#10;(dp5629&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5630&#10;(dp5631&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5632&#10;(dp5633&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (record_overflow)'&#10;p5634&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5634&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5635&#10;(dp5636&#10;g11&#10;Nsg12&#10;I143&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5637&#10;(dp5638&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5639&#10;(dp5640&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5641&#10;(dp5642&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5643&#10;(dp5644&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5645&#10;(dp5646&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (record_overflow)'&#10;p5647&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5647&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5648&#10;(dp5649&#10;g11&#10;Nsg12&#10;I144&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5650&#10;(dp5651&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5652&#10;(dp5653&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5654&#10;(dp5655&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5656&#10;(dp5657&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5658&#10;(dp5659&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decompression_failure)'&#10;p5660&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5660&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5661&#10;(dp5662&#10;g11&#10;Nsg12&#10;I145&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5663&#10;(dp5664&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5665&#10;(dp5666&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5667&#10;(dp5668&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5669&#10;(dp5670&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5671&#10;(dp5672&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decompression_failure)'&#10;p5673&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5673&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5674&#10;(dp5675&#10;g11&#10;Nsg12&#10;I146&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5676&#10;(dp5677&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5678&#10;(dp5679&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5680&#10;(dp5681&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5682&#10;(dp5683&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5684&#10;(dp5685&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (handshake_failure)'&#10;p5686&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5686&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5687&#10;(dp5688&#10;g11&#10;Nsg12&#10;I147&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5689&#10;(dp5690&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5691&#10;(dp5692&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5693&#10;(dp5694&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5695&#10;(dp5696&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5697&#10;(dp5698&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (handshake_failure)'&#10;p5699&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5699&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5700&#10;(dp5701&#10;g11&#10;Nsg12&#10;I148&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5702&#10;(dp5703&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5704&#10;(dp5705&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5706&#10;(dp5707&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5708&#10;(dp5709&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5710&#10;(dp5711&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_certificate)'&#10;p5712&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5712&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5713&#10;(dp5714&#10;g11&#10;Nsg12&#10;I149&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5715&#10;(dp5716&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5717&#10;(dp5718&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5719&#10;(dp5720&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5721&#10;(dp5722&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5723&#10;(dp5724&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_certificate)'&#10;p5725&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5725&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5726&#10;(dp5727&#10;g11&#10;Nsg12&#10;I150&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5728&#10;(dp5729&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5730&#10;(dp5731&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5732&#10;(dp5733&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5734&#10;(dp5735&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5736&#10;(dp5737&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (bad_certificate)'&#10;p5738&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5738&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5739&#10;(dp5740&#10;g11&#10;Nsg12&#10;I151&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5741&#10;(dp5742&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5743&#10;(dp5744&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5745&#10;(dp5746&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5747&#10;(dp5748&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5749&#10;(dp5750&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (bad_certificate)'&#10;p5751&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5751&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5752&#10;(dp5753&#10;g11&#10;Nsg12&#10;I152&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5754&#10;(dp5755&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5756&#10;(dp5757&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5758&#10;(dp5759&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5760&#10;(dp5761&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5762&#10;(dp5763&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unsupported_certificate)'&#10;p5764&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5764&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5765&#10;(dp5766&#10;g11&#10;Nsg12&#10;I153&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5767&#10;(dp5768&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5769&#10;(dp5770&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5771&#10;(dp5772&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5773&#10;(dp5774&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5775&#10;(dp5776&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unsupported_certificate)'&#10;p5777&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5777&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5778&#10;(dp5779&#10;g11&#10;Nsg12&#10;I154&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5780&#10;(dp5781&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5782&#10;(dp5783&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5784&#10;(dp5785&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5786&#10;(dp5787&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5788&#10;(dp5789&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_revoked)'&#10;p5790&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5790&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5791&#10;(dp5792&#10;g11&#10;Nsg12&#10;I155&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5793&#10;(dp5794&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5795&#10;(dp5796&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5797&#10;(dp5798&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5799&#10;(dp5800&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5801&#10;(dp5802&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_revoked)'&#10;p5803&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5803&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5804&#10;(dp5805&#10;g11&#10;Nsg12&#10;I156&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5806&#10;(dp5807&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5808&#10;(dp5809&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5810&#10;(dp5811&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5812&#10;(dp5813&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5814&#10;(dp5815&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_expired)'&#10;p5816&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5816&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5817&#10;(dp5818&#10;g11&#10;Nsg12&#10;I157&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5819&#10;(dp5820&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5821&#10;(dp5822&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5823&#10;(dp5824&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5825&#10;(dp5826&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5827&#10;(dp5828&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_expired)'&#10;p5829&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5829&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5830&#10;(dp5831&#10;g11&#10;Nsg12&#10;I158&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5832&#10;(dp5833&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5834&#10;(dp5835&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5836&#10;(dp5837&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5838&#10;(dp5839&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5840&#10;(dp5841&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (certificate_unknown)'&#10;p5842&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5842&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5843&#10;(dp5844&#10;g11&#10;Nsg12&#10;I159&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5845&#10;(dp5846&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5847&#10;(dp5848&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5849&#10;(dp5850&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5851&#10;(dp5852&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5853&#10;(dp5854&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (certificate_unknown)'&#10;p5855&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5855&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5856&#10;(dp5857&#10;g11&#10;Nsg12&#10;I160&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5858&#10;(dp5859&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5860&#10;(dp5861&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5862&#10;(dp5863&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5864&#10;(dp5865&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5866&#10;(dp5867&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (illegal_parameter)'&#10;p5868&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5868&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5869&#10;(dp5870&#10;g11&#10;Nsg12&#10;I161&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5871&#10;(dp5872&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5873&#10;(dp5874&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5875&#10;(dp5876&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5877&#10;(dp5878&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5879&#10;(dp5880&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (illegal_parameter)'&#10;p5881&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5881&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5882&#10;(dp5883&#10;g11&#10;Nsg12&#10;I162&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5884&#10;(dp5885&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5886&#10;(dp5887&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5888&#10;(dp5889&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5890&#10;(dp5891&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5892&#10;(dp5893&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unknown_ca)'&#10;p5894&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5894&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5895&#10;(dp5896&#10;g11&#10;Nsg12&#10;I163&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5897&#10;(dp5898&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5899&#10;(dp5900&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5901&#10;(dp5902&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5903&#10;(dp5904&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5905&#10;(dp5906&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (unknown_ca)'&#10;p5907&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5907&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5908&#10;(dp5909&#10;g11&#10;Nsg12&#10;I164&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5910&#10;(dp5911&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5912&#10;(dp5913&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5914&#10;(dp5915&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5916&#10;(dp5917&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5918&#10;(dp5919&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (access_denied)'&#10;p5920&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5920&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5921&#10;(dp5922&#10;g11&#10;Nsg12&#10;I165&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5923&#10;(dp5924&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5925&#10;(dp5926&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5927&#10;(dp5928&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5929&#10;(dp5930&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5931&#10;(dp5932&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (access_denied)'&#10;p5933&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5933&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5934&#10;(dp5935&#10;g11&#10;Nsg12&#10;I166&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5936&#10;(dp5937&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5938&#10;(dp5939&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5940&#10;(dp5941&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5942&#10;(dp5943&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5944&#10;(dp5945&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decode_error)'&#10;p5946&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5946&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5947&#10;(dp5948&#10;g11&#10;Nsg12&#10;I167&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5949&#10;(dp5950&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5951&#10;(dp5952&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5953&#10;(dp5954&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5955&#10;(dp5956&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5957&#10;(dp5958&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decode_error)'&#10;p5959&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5959&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5960&#10;(dp5961&#10;g11&#10;Nsg12&#10;I168&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5962&#10;(dp5963&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5964&#10;(dp5965&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5966&#10;(dp5967&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5968&#10;(dp5969&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5970&#10;(dp5971&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (decrypt_error)'&#10;p5972&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5972&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5973&#10;(dp5974&#10;g11&#10;Nsg12&#10;I169&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5975&#10;(dp5976&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5977&#10;(dp5978&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5979&#10;(dp5980&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5981&#10;(dp5982&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5983&#10;(dp5984&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (decrypt_error)'&#10;p5985&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5985&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5986&#10;(dp5987&#10;g11&#10;Nsg12&#10;I170&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp5988&#10;(dp5989&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp5990&#10;(dp5991&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp5992&#10;(dp5993&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp5994&#10;(dp5995&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp5996&#10;(dp5997&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (export_restriction)'&#10;p5998&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g5998&#10;sbag3&#10;(g7&#10;g8&#10;NtRp5999&#10;(dp6000&#10;g11&#10;Nsg12&#10;I171&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6001&#10;(dp6002&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6003&#10;(dp6004&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6005&#10;(dp6006&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6007&#10;(dp6008&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6009&#10;(dp6010&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (export_restriction)'&#10;p6011&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6011&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6012&#10;(dp6013&#10;g11&#10;Nsg12&#10;I172&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6014&#10;(dp6015&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6016&#10;(dp6017&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6018&#10;(dp6019&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6020&#10;(dp6021&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6022&#10;(dp6023&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (protocol_version)'&#10;p6024&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6024&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6025&#10;(dp6026&#10;g11&#10;Nsg12&#10;I173&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6027&#10;(dp6028&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6029&#10;(dp6030&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6031&#10;(dp6032&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6033&#10;(dp6034&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6035&#10;(dp6036&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (protocol_version)'&#10;p6037&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6037&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6038&#10;(dp6039&#10;g11&#10;Nsg12&#10;I174&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6040&#10;(dp6041&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6042&#10;(dp6043&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6044&#10;(dp6045&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6046&#10;(dp6047&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6048&#10;(dp6049&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (insufficient_security)'&#10;p6050&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6050&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6051&#10;(dp6052&#10;g11&#10;Nsg12&#10;I175&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6053&#10;(dp6054&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6055&#10;(dp6056&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6057&#10;(dp6058&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6059&#10;(dp6060&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6061&#10;(dp6062&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (insufficient_security)'&#10;p6063&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6063&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6064&#10;(dp6065&#10;g11&#10;Nsg12&#10;I176&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6066&#10;(dp6067&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6068&#10;(dp6069&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6070&#10;(dp6071&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6072&#10;(dp6073&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6074&#10;(dp6075&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (internal_error)'&#10;p6076&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6076&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6077&#10;(dp6078&#10;g11&#10;Nsg12&#10;I177&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6079&#10;(dp6080&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6081&#10;(dp6082&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6083&#10;(dp6084&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6085&#10;(dp6086&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6087&#10;(dp6088&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (internal_error)'&#10;p6089&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6089&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6090&#10;(dp6091&#10;g11&#10;Nsg12&#10;I178&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6092&#10;(dp6093&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6094&#10;(dp6095&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6096&#10;(dp6097&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6098&#10;(dp6099&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6100&#10;(dp6101&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (user_canceled)'&#10;p6102&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6102&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6103&#10;(dp6104&#10;g11&#10;Nsg12&#10;I179&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6105&#10;(dp6106&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6107&#10;(dp6108&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6109&#10;(dp6110&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6111&#10;(dp6112&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6113&#10;(dp6114&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (user_canceled)'&#10;p6115&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6115&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6116&#10;(dp6117&#10;g11&#10;Nsg12&#10;I180&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6118&#10;(dp6119&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6120&#10;(dp6121&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6122&#10;(dp6123&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6124&#10;(dp6125&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6126&#10;(dp6127&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (no_renegotiation)'&#10;p6128&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6128&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6129&#10;(dp6130&#10;g11&#10;Nsg12&#10;I181&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6131&#10;(dp6132&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6133&#10;(dp6134&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6135&#10;(dp6136&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6137&#10;(dp6138&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6139&#10;(dp6140&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Sent (no_renegotiation)'&#10;p6141&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6141&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6142&#10;(dp6143&#10;g11&#10;Nsg12&#10;I182&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6144&#10;(dp6145&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6146&#10;(dp6147&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6148&#10;(dp6149&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6150&#10;(dp6151&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6152&#10;(dp6153&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (undefined error)'&#10;p6154&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6154&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6155&#10;(dp6156&#10;g11&#10;Nsg12&#10;I183&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6157&#10;(dp6158&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6159&#10;(dp6160&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6161&#10;(dp6162&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6163&#10;(dp6164&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6165&#10;(dp6166&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (undefined error)'&#10;p6167&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6167&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6168&#10;(dp6169&#10;g11&#10;Nsg12&#10;I184&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6170&#10;(dp6171&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6172&#10;(dp6173&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6174&#10;(dp6175&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6176&#10;(dp6177&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6178&#10;(dp6179&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no cipher)'&#10;p6180&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6180&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6181&#10;(dp6182&#10;g11&#10;Nsg12&#10;I185&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6183&#10;(dp6184&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6185&#10;(dp6186&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6187&#10;(dp6188&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6189&#10;(dp6190&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6191&#10;(dp6192&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no cipher)'&#10;p6193&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6193&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6194&#10;(dp6195&#10;g11&#10;Nsg12&#10;I186&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6196&#10;(dp6197&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6198&#10;(dp6199&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6200&#10;(dp6201&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6202&#10;(dp6203&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6204&#10;(dp6205&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (no certificate)'&#10;p6206&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6206&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6207&#10;(dp6208&#10;g11&#10;Nsg12&#10;I187&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6209&#10;(dp6210&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6211&#10;(dp6212&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6213&#10;(dp6214&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6215&#10;(dp6216&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6217&#10;(dp6218&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (no certificate)'&#10;p6219&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6219&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6220&#10;(dp6221&#10;g11&#10;Nsg12&#10;I188&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6222&#10;(dp6223&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6224&#10;(dp6225&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6226&#10;(dp6227&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6228&#10;(dp6229&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6230&#10;(dp6231&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (bad certificate)'&#10;p6232&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6232&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6233&#10;(dp6234&#10;g11&#10;Nsg12&#10;I189&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6235&#10;(dp6236&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6237&#10;(dp6238&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6239&#10;(dp6240&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6241&#10;(dp6242&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6243&#10;(dp6244&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (bad certificate)'&#10;p6245&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6245&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6246&#10;(dp6247&#10;g11&#10;Nsg12&#10;I190&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6248&#10;(dp6249&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6250&#10;(dp6251&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6252&#10;(dp6253&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6254&#10;(dp6255&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6256&#10;(dp6257&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received (unsupported certificate)'&#10;p6258&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6258&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6259&#10;(dp6260&#10;g11&#10;Nsg12&#10;I191&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6261&#10;(dp6262&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6263&#10;(dp6264&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6265&#10;(dp6266&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6267&#10;(dp6268&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6269&#10;(dp6270&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent (unsupported certificate)'&#10;p6271&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6271&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6272&#10;(dp6273&#10;g11&#10;Nsg12&#10;I192&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6274&#10;(dp6275&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6276&#10;(dp6277&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6278&#10;(dp6279&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6280&#10;(dp6281&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6282&#10;(dp6283&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Received'&#10;p6284&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6284&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6285&#10;(dp6286&#10;g11&#10;Nsg12&#10;I193&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6287&#10;(dp6288&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6289&#10;(dp6290&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6291&#10;(dp6292&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6293&#10;(dp6294&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6295&#10;(dp6296&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Errors Sent'&#10;p6297&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6297&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6298&#10;(dp6299&#10;g11&#10;Nsg12&#10;I194&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6300&#10;(dp6301&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6302&#10;(dp6303&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6304&#10;(dp6305&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6306&#10;(dp6307&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6308&#10;(dp6309&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Sent'&#10;p6310&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6310&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6311&#10;(dp6312&#10;g11&#10;Nsg12&#10;I195&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6313&#10;(dp6314&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6315&#10;(dp6316&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6317&#10;(dp6318&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6319&#10;(dp6320&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6321&#10;(dp6322&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Client Hello Received'&#10;p6323&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6323&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6324&#10;(dp6325&#10;g11&#10;Nsg12&#10;I196&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6326&#10;(dp6327&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6328&#10;(dp6329&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6330&#10;(dp6331&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6332&#10;(dp6333&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6334&#10;(dp6335&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Sent'&#10;p6336&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6336&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6337&#10;(dp6338&#10;g11&#10;Nsg12&#10;I197&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6339&#10;(dp6340&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6341&#10;(dp6342&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6343&#10;(dp6344&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6345&#10;(dp6346&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6347&#10;(dp6348&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Server Hello Received'&#10;p6349&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6349&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6350&#10;(dp6351&#10;g11&#10;Nsg12&#10;I198&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6352&#10;(dp6353&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6354&#10;(dp6355&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6356&#10;(dp6357&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6358&#10;(dp6359&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6360&#10;(dp6361&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Sent'&#10;p6362&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6362&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6363&#10;(dp6364&#10;g11&#10;Nsg12&#10;I199&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6365&#10;(dp6366&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6367&#10;(dp6368&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6369&#10;(dp6370&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6371&#10;(dp6372&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6373&#10;(dp6374&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'Hello Requests Received'&#10;p6375&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6375&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6376&#10;(dp6377&#10;g11&#10;Nsg12&#10;I200&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6378&#10;(dp6379&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6380&#10;(dp6381&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6382&#10;(dp6383&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6384&#10;(dp6385&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6386&#10;(dp6387&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Success'&#10;p6388&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6388&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6389&#10;(dp6390&#10;g11&#10;Nsg12&#10;I201&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6391&#10;(dp6392&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6393&#10;(dp6394&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6395&#10;(dp6396&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6397&#10;(dp6398&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6399&#10;(dp6400&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Session Reuse Failed'&#10;p6401&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6401&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6402&#10;(dp6403&#10;g11&#10;Nsg12&#10;I202&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6404&#10;(dp6405&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6406&#10;(dp6407&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6408&#10;(dp6409&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6410&#10;(dp6411&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6412&#10;(dp6413&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Concurrent Sessions'&#10;p6414&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6414&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6415&#10;(dp6416&#10;g11&#10;Nsg12&#10;I203&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6417&#10;(dp6418&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6419&#10;(dp6420&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6421&#10;(dp6422&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6423&#10;(dp6424&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6425&#10;(dp6426&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Sent'&#10;p6427&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6427&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6428&#10;(dp6429&#10;g11&#10;Nsg12&#10;I204&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6430&#10;(dp6431&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6432&#10;(dp6433&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6434&#10;(dp6435&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6436&#10;(dp6437&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6438&#10;(dp6439&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Bytes Received'&#10;p6440&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6440&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6441&#10;(dp6442&#10;g11&#10;Nsg12&#10;I205&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6443&#10;(dp6444&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6445&#10;(dp6446&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6447&#10;(dp6448&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6449&#10;(dp6450&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6451&#10;(dp6452&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Throughput Bytes'&#10;p6453&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6453&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6454&#10;(dp6455&#10;g11&#10;Nsg12&#10;I206&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6456&#10;(dp6457&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6458&#10;(dp6459&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6460&#10;(dp6461&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6462&#10;(dp6463&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6464&#10;(dp6465&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Application Data Bytes'&#10;p6466&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6466&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6467&#10;(dp6468&#10;g11&#10;Nsg12&#10;I207&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6469&#10;(dp6470&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6471&#10;(dp6472&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6473&#10;(dp6474&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6475&#10;(dp6476&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6477&#10;(dp6478&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Validation Failure'&#10;p6479&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6479&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6480&#10;(dp6481&#10;g11&#10;Nsg12&#10;I208&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6482&#10;(dp6483&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6484&#10;(dp6485&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6486&#10;(dp6487&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6488&#10;(dp6489&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6490&#10;(dp6491&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate Self Signed'&#10;p6492&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6492&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6493&#10;(dp6494&#10;g11&#10;Nsg12&#10;I209&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6495&#10;(dp6496&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6497&#10;(dp6498&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6499&#10;(dp6500&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6501&#10;(dp6502&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6503&#10;(dp6504&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Certificate CA Signed'&#10;p6505&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6505&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6506&#10;(dp6507&#10;g11&#10;Nsg12&#10;I210&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6508&#10;(dp6509&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6510&#10;(dp6511&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6512&#10;(dp6513&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6514&#10;(dp6515&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6516&#10;(dp6517&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Alerts Received (unrecognized name)'&#10;p6518&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6518&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6519&#10;(dp6520&#10;g11&#10;Nsg12&#10;I211&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6521&#10;(dp6522&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6523&#10;(dp6524&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6525&#10;(dp6526&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6527&#10;(dp6528&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6529&#10;(dp6530&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension sent successfully'&#10;p6531&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6531&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6532&#10;(dp6533&#10;g11&#10;Nsg12&#10;I212&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6534&#10;(dp6535&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6536&#10;(dp6537&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6538&#10;(dp6539&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6540&#10;(dp6541&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6542&#10;(dp6543&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL SNI extension mismatch'&#10;p6544&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6544&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6545&#10;(dp6546&#10;g11&#10;Nsg12&#10;I213&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6547&#10;(dp6548&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6549&#10;(dp6550&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6551&#10;(dp6552&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6553&#10;(dp6554&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6555&#10;(dp6556&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse success'&#10;p6557&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6557&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6558&#10;(dp6559&#10;g11&#10;Nsg12&#10;I214&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6560&#10;(dp6561&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6562&#10;(dp6563&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6564&#10;(dp6565&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6566&#10;(dp6567&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6568&#10;(dp6569&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL session ticket reuse failure'&#10;p6570&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6570&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6571&#10;(dp6572&#10;g11&#10;Nsg12&#10;I215&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6573&#10;(dp6574&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6575&#10;(dp6576&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6577&#10;(dp6578&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6579&#10;(dp6580&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6581&#10;(dp6582&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfully'&#10;p6583&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6583&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6584&#10;(dp6585&#10;g11&#10;Nsg12&#10;I216&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6586&#10;(dp6587&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6588&#10;(dp6589&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6590&#10;(dp6591&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6592&#10;(dp6593&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6594&#10;(dp6595&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'SSL Negotiation Finished Successfuly'&#10;p6596&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6596&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6597&#10;(dp6598&#10;g11&#10;Nsg12&#10;I217&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6599&#10;(dp6600&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6601&#10;(dp6602&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6603&#10;(dp6604&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6605&#10;(dp6606&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6607&#10;(dp6608&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Sent'&#10;p6609&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6609&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6610&#10;(dp6611&#10;g11&#10;Nsg12&#10;I218&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6612&#10;(dp6613&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6614&#10;(dp6615&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6616&#10;(dp6617&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6618&#10;(dp6619&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6620&#10;(dp6621&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN_SYN-ACK Received'&#10;p6622&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6622&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6623&#10;(dp6624&#10;g11&#10;Nsg12&#10;I219&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6625&#10;(dp6626&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6627&#10;(dp6628&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6629&#10;(dp6630&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6631&#10;(dp6632&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6633&#10;(dp6634&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN Failed'&#10;p6635&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6635&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6636&#10;(dp6637&#10;g11&#10;Nsg12&#10;I220&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6638&#10;(dp6639&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6640&#10;(dp6641&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6642&#10;(dp6643&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6644&#10;(dp6645&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6646&#10;(dp6647&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP SYN-ACK Sent'&#10;p6648&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6648&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6649&#10;(dp6650&#10;g11&#10;Nsg12&#10;I221&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6651&#10;(dp6652&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6653&#10;(dp6654&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6655&#10;(dp6656&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6657&#10;(dp6658&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6659&#10;(dp6660&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connection Requests Failed'&#10;p6661&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6661&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6662&#10;(dp6663&#10;g11&#10;Nsg12&#10;I222&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6664&#10;(dp6665&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6666&#10;(dp6667&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6668&#10;(dp6669&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6670&#10;(dp6671&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6672&#10;(dp6673&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections Established'&#10;p6674&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6674&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6675&#10;(dp6676&#10;g11&#10;Nsg12&#10;I223&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6677&#10;(dp6678&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6679&#10;(dp6680&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6681&#10;(dp6682&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6683&#10;(dp6684&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6685&#10;(dp6686&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Sent'&#10;p6687&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6687&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6688&#10;(dp6689&#10;g11&#10;Nsg12&#10;I224&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6690&#10;(dp6691&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6692&#10;(dp6693&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6694&#10;(dp6695&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6696&#10;(dp6697&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6698&#10;(dp6699&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN Received'&#10;p6700&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6700&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6701&#10;(dp6702&#10;g11&#10;Nsg12&#10;I225&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6703&#10;(dp6704&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6705&#10;(dp6706&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6707&#10;(dp6708&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6709&#10;(dp6710&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6711&#10;(dp6712&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Sent'&#10;p6713&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6713&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6714&#10;(dp6715&#10;g11&#10;Nsg12&#10;I226&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6716&#10;(dp6717&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6718&#10;(dp6719&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6720&#10;(dp6721&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6722&#10;(dp6723&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6724&#10;(dp6725&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP FIN-ACK Received'&#10;p6726&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6726&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6727&#10;(dp6728&#10;g11&#10;Nsg12&#10;I227&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6729&#10;(dp6730&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6731&#10;(dp6732&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6733&#10;(dp6734&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6735&#10;(dp6736&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6737&#10;(dp6738&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Sent'&#10;p6739&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6739&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6740&#10;(dp6741&#10;g11&#10;Nsg12&#10;I228&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6742&#10;(dp6743&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6744&#10;(dp6745&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6746&#10;(dp6747&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6748&#10;(dp6749&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6750&#10;(dp6751&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Resets Received'&#10;p6752&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6752&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6753&#10;(dp6754&#10;g11&#10;Nsg12&#10;I229&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6755&#10;(dp6756&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6757&#10;(dp6758&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6759&#10;(dp6760&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6761&#10;(dp6762&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6763&#10;(dp6764&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Retries'&#10;p6765&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6765&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6766&#10;(dp6767&#10;g11&#10;Nsg12&#10;I230&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6768&#10;(dp6769&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6770&#10;(dp6771&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6772&#10;(dp6773&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6774&#10;(dp6775&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6776&#10;(dp6777&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Timeouts'&#10;p6778&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6778&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6779&#10;(dp6780&#10;g11&#10;Nsg12&#10;I231&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6781&#10;(dp6782&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6783&#10;(dp6784&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6785&#10;(dp6786&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6787&#10;(dp6788&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6789&#10;(dp6790&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Accept Queue Entries'&#10;p6791&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6791&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6792&#10;(dp6793&#10;g11&#10;Nsg12&#10;I232&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6794&#10;(dp6795&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6796&#10;(dp6797&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6798&#10;(dp6799&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6800&#10;(dp6801&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6802&#10;(dp6803&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Listen Queue Drops'&#10;p6804&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6804&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6805&#10;(dp6806&#10;g11&#10;Nsg12&#10;I233&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6807&#10;(dp6808&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6809&#10;(dp6810&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6811&#10;(dp6812&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6813&#10;(dp6814&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6815&#10;(dp6816&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in ESTABLISHED State'&#10;p6817&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6817&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6818&#10;(dp6819&#10;g11&#10;Nsg12&#10;I234&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6820&#10;(dp6821&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6822&#10;(dp6823&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6824&#10;(dp6825&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6826&#10;(dp6827&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6828&#10;(dp6829&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-SENT State'&#10;p6830&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6830&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6831&#10;(dp6832&#10;g11&#10;Nsg12&#10;I235&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6833&#10;(dp6834&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6835&#10;(dp6836&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6837&#10;(dp6838&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6839&#10;(dp6840&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6841&#10;(dp6842&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in SYN-RECEIVED State'&#10;p6843&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6843&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6844&#10;(dp6845&#10;g11&#10;Nsg12&#10;I236&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6846&#10;(dp6847&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6848&#10;(dp6849&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6850&#10;(dp6851&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6852&#10;(dp6853&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6854&#10;(dp6855&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-1 State'&#10;p6856&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6856&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6857&#10;(dp6858&#10;g11&#10;Nsg12&#10;I237&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6859&#10;(dp6860&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6861&#10;(dp6862&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6863&#10;(dp6864&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6865&#10;(dp6866&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6867&#10;(dp6868&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in FIN-WAIT-2 State'&#10;p6869&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6869&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6870&#10;(dp6871&#10;g11&#10;Nsg12&#10;I238&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6872&#10;(dp6873&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6874&#10;(dp6875&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6876&#10;(dp6877&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6878&#10;(dp6879&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6880&#10;(dp6881&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in TIME-WAIT State'&#10;p6882&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6882&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6883&#10;(dp6884&#10;g11&#10;Nsg12&#10;I239&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6885&#10;(dp6886&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6887&#10;(dp6888&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6889&#10;(dp6890&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6891&#10;(dp6892&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6893&#10;(dp6894&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE STATE'&#10;p6895&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6895&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6896&#10;(dp6897&#10;g11&#10;Nsg12&#10;I240&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6898&#10;(dp6899&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6900&#10;(dp6901&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6902&#10;(dp6903&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6904&#10;(dp6905&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6906&#10;(dp6907&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSE-WAIT State'&#10;p6908&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6908&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6909&#10;(dp6910&#10;g11&#10;Nsg12&#10;I241&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6911&#10;(dp6912&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6913&#10;(dp6914&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6915&#10;(dp6916&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6917&#10;(dp6918&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6919&#10;(dp6920&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LAST-ACK State'&#10;p6921&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6921&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6922&#10;(dp6923&#10;g11&#10;Nsg12&#10;I242&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6924&#10;(dp6925&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6926&#10;(dp6927&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6928&#10;(dp6929&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6930&#10;(dp6931&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6932&#10;(dp6933&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in LISTENING State'&#10;p6934&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6934&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6935&#10;(dp6936&#10;g11&#10;Nsg12&#10;I243&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6937&#10;(dp6938&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6939&#10;(dp6940&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6941&#10;(dp6942&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6943&#10;(dp6944&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6945&#10;(dp6946&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Connections in CLOSING State'&#10;p6947&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6947&#10;sbag3&#10;(g7&#10;g8&#10;NtRp6948&#10;(dp6949&#10;g11&#10;Nsg12&#10;I244&#10;sg13&#10;I01&#10;sg14&#10;g3&#10;(g15&#10;g8&#10;NtRp6950&#10;(dp6951&#10;g18&#10;g3&#10;(g19&#10;g5&#10;(ltRp6952&#10;(dp6953&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg23&#10;g3&#10;(g24&#10;g5&#10;(ltRp6954&#10;(dp6955&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg11&#10;Nsg12&#10;I-1&#10;sg27&#10;g3&#10;(g28&#10;g5&#10;(ltRp6956&#10;(dp6957&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsg22&#10;I00&#10;sg31&#10;g3&#10;(g32&#10;g5&#10;(ltRp6958&#10;(dp6959&#10;g12&#10;I-1&#10;sg22&#10;I00&#10;sg11&#10;Nsbsbsg35&#10;S'TCP Internally Aborted Connections'&#10;p6960&#10;sg22&#10;I00&#10;sg37&#10;g38&#10;sg39&#10;g6960&#10;sbatRp6961&#10;(dp6962&#10;g12&#10;I244&#10;sg22&#10;I00&#10;sg11&#10;Nsbs.</svRestConfiguration>
</statManagerOptions>
<currentUniqueIDForAgent type="int">2</currentUniqueIDForAgent>
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-1024K.rxf b/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-1024K.rxf
deleted file mode 100644
index 9c11026d1..000000000
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-1024K.rxf
+++ /dev/null
@@ -1,2392 +0,0 @@
-<?xml version="1.0" ?>
-<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
- <_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;04a56313-c07c-4fae-acc5-e29a816e1311&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;cac5e27f-ec70-45e3-bc6c-7b0ac9e43449&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;3&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;6c1a9dc4-bc8e-48ad-982f-956b0561e947&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network_1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;af65320b-b937-4835-b8c1-510cc79660ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;0216d80d-55b8-4b3e-a187-6e8536fa5902&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;a645bdf1-8071-4555-b862-9f30729946e7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;6b363dca-4b7b-45f3-a094-50df1f3b6fb7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;0ee36d95-6f82-49e3-aaed-52fada95c460&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;c74e6630-4c22-46a1-bd5a-9a18c361199f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R6&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:C0:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R6&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;410b3e8d-36a6-41b5-821e-9ee93496ea7a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R6&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;192.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;192.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;c74e6630-4c22-46a1-bd5a-9a18c361199f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;f020117b-0c7f-4da8-a1ae-0fca36b0caad&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;a360ad81-4163-41db-b64f-bc1af27777d5&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;5d8e54de-002f-41c6-aac8-aff822bb0f7e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;8a334019-95aa-49f2-80dd-08bd013b6f6c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;45915d75-f382-4032-821f-233d11a38c11&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;10429e22-34bc-4ae5-b85f-3089635b6eb0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;7dad7c5d-84ac-4f54-ab59-fd45367fbb53&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;17371506-2053-47a1-9b65-5422bcd36666&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;HTTPClient1!Traffic2_HTTPServer1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;HTTPClient1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;424d5c6a-3bd8-4c5f-86af-ad84753fa410&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;076f9c54-cda8-4c68-a9c8-f14550cab1ae&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;14&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;16&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;17&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;18&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;669af012-d572-439d-9c70-cfbacea0fe7f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network_1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;9280ae7b-1935-4fb1-8a86-522e739d7d13&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;3158f964-1bf1-4ba7-b2d5-a0f2174b233f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;454249a6-64c1-41d4-b0ff-84b288651087&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;3d790b32-9ee7-4e44-b63f-cfab800dea84&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;c3e18bb9-4bf8-4bfc-a308-6a155469a0ee&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;95df1613-0cfc-45b5-a68e-e06ecd5b6cdf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R8&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:C0:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R8&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;2aa50b07-0df6-4bc2-8fcc-1ebb0f6169b5&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R8&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;192.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;192.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;95df1613-0cfc-45b5-a68e-e06ecd5b6cdf&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;389909e0-120c-4ea7-857f-69e5981ba867&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;82f06e5c-e227-4c7b-9b89-c4495858f1c1&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;19&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;b4947db2-ab64-441c-81df-d6961888df99&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;20&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;76a42df0-2980-40cb-a135-8afd39ffa5a2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;21&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;34244aba-2937-43a8-900b-7821e096b69a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;22&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;2551de11-5f59-49dc-92be-266b8bf8fe90&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;23&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;6d9cab2d-989f-4bad-9595-ffefba7bc84a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-5&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;24&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;dd86f951-1b71-4f94-930e-1f690af65f5a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;2dc65e0c-3a5a-4c59-a3a7-d1cf336fa422&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c648ad96-ef63-4c6d-b77e-586fece09b3b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;dc4d759f-e4ac-4498-9296-92fd26a83bf9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;3b496ea9-e90a-48e5-b01a-adfeb9940e5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;72bbb3e6-5bae-448e-bcda-ba87a76fa477&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7c3ea465-5392-4894-b8a4-0138f48acf8e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;669af012-d572-439d-9c70-cfbacea0fe7f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;6c1a9dc4-bc8e-48ad-982f-956b0561e947&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
- </_smSessionXml>
- <_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
- <xml type="str"></xml>
- </_composerConfig>
- <_quickTestConfig ver="[0, [1, [0, [0]]]]" type="ixQuickTestConfig">
- <xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
- </_quickTestConfig>
- <lastApiUniqueId type="int">15385</lastApiUniqueId>
- <version type="str">8.20.0.273</version>
- <name type="str">HTTP-vFW_IPv4_4Ports-CC-1024K.rxf</name>
- <comment type="str"></comment>
- <path type="str">F:\IXIA-TESTS</path>
- <last type="str">HTTP-vFW_IPv4_4Ports-CC-256K.rxf</last>
- <activeTest type="str">Test1</activeTest>
- <chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
- <chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
- <_apiUniqueId type="int">12991</_apiUniqueId>
- <chassisMap type="dict"/>
- <hiddenChassis type="NoneType">None</hiddenChassis>
- </chassisChain>
- <AfmPortPacketRewriteConfigList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAfmPortPacketRewriteConfigList" itemtype="ixAfmPortPacketRewriteConfig"/>
- <networkList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixRepositoryNetworkList" itemtype="ixNullNetwork"/>
- <dutList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixDutList" itemtype="ixDut"/>
- <trafficList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTrafficList" itemtype="ixActivityModel"/>
- <testList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTestList" itemtype="ixTestEnvelope">
- <item ver="[18, [1, [0, [0]]]]" type="ixTestEnvelope">
- <name type="str">Test1</name>
- <comment type="str"></comment>
- <enableForceOwnership type="bool">False</enableForceOwnership>
- <enableResetPorts type="bool">False</enableResetPorts>
- <statsRequired type="int">1</statsRequired>
- <enableConditionalView type="bool">False</enableConditionalView>
- <conditionalViewType type="int">0</conditionalViewType>
- <conditionalViewList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixConditionalViewList" itemtype="ixConditionalView"/>
- <enableReleaseConfigAfterRun type="int">0</enableReleaseConfigAfterRun>
- <csvInterval type="int">4</csvInterval>
- <networkFailureThreshold type="int">0</networkFailureThreshold>
- <captureViewOptions ver="[1, [1, [0, [0]]]]" oid="8" type="ixViewOptions">
- <runMode type="int">1</runMode>
- <collectScheme type="int">0</collectScheme>
- <allocatedBufferMemoryPercentage type="long">30</allocatedBufferMemoryPercentage>
- <captureRunAfter type="int">0</captureRunAfter>
- <captureRunDuration type="int">0</captureRunDuration>
- <_apiUniqueId type="int">12941</_apiUniqueId>
- </captureViewOptions>
- <scenarioList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioList" itemtype="ixScenario">
- <item ver="[3, [1, [0, [0]]]]" type="ixScenario">
- <name type="str">TrafficFlow1</name>
- <columnList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixTrafficColumnList" itemtype="ixTrafficColumn">
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Client</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP client</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="14" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">newClientActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">12943</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">HTTP server_newServerActivity1</name>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="0"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="30" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP server</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="6" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">newServerActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="bool">False</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12972</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="str">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12973</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12987</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12988</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="1" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">12984</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12974</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12975</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12976</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12977</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">12978</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">12979</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">12980</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">12981</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">12982</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">12983</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12985</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12986</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">2</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12971</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" oid="9" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
- <_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (152.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="3"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">b2c21c73-bfe3-4fbc-9804-b5a8b307d893</_rangeGroupObjectId>
- <_smPluginObjectId type="str">b85b184d-9bb4-48c2-a029-e633fee7a3c8</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="4"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="5" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="5"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">c4ecfc60-64ac-4dc2-9410-e0f58d84f229</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="6"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">newServerActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[0, [2, [2, [1, [1, [0, [0]]]]]]]" oid="7" type="ixMatchLongestTimeline"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12989</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ref="9"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12970</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="10" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12956</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="3"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="3"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="6"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="6"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12955</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="10"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">newServerActivity1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">0</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">1</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">1</httpVersion>
- <keepAlive type="bool">False</keepAlive>
- <maxPersistentRequests type="int">0</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">:80</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">:443</httpsProxy>
- <browserEmulation type="int">1</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="bool">False</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12948</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12945</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12949</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">HTTP server_newServerActivity1:80</destination>
- <pageObject type="str">/1024k.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="bool">False</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12946</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12947</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12950</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12951</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12952</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12953</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">1</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12942</_apiUniqueId>
- <uniqueID type="int">1</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
- <_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (152.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="11"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">aa33a76b-9c7f-48d9-a537-8d6eeec03662</_rangeGroupObjectId>
- <_smPluginObjectId type="str">a916ae0f-0731-405d-ad19-eaade6c515f1</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="12"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="13" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="13"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">865be042-32d5-426a-9e75-0908c943801f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="14"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">newClientActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="15" type="ixTimeline">
- <name type="str">Timeline1</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">20000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">0</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12954</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="15"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12940</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="16" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12926</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="11"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="11"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="14"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="14"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12925</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="16"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">Traffic1@client network_1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">Traffic1</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="27" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">HTTPClient1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">15343</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">Traffic2_HTTPServer1</name>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="17"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="31" type="ixNetTraffic">
- <name type="str">Traffic2@server network_1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">Traffic2</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="22" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">HTTPServer1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="int">0</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15367</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="int">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15368</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15382</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15383</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="18" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">15379</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">1</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15369</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15370</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15371</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">15372</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">15373</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">15374</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">15375</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">15376</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">15377</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">15378</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15380</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15381</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">6</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15366</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network_1</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="19" type="ixNetworkRange">
- <_smRangeObjectId type="str">ba01e944-e779-4a36-b3bd-26d1c3b0ef21</_smRangeObjectId>
- <name type="str">Network Range IP-R8 in server network_1 (192.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="20" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="19"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">389909e0-120c-4ea7-857f-69e5981ba867</_rangeGroupObjectId>
- <_smPluginObjectId type="str">2aa50b07-0df6-4bc2-8fcc-1ebb0f6169b5</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="20"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="21" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="21"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">669af012-d572-439d-9c70-cfbacea0fe7f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="22"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">HTTPServer1</name>
- <enable type="bool">True</enable>
- <timeline ref="7"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15384</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15365</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="23" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15356</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="19"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="19"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="22"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="22"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15355</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="23"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">HTTPServer1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">1</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">3</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">0</httpVersion>
- <keepAlive type="int">0</keepAlive>
- <maxPersistentRequests type="int">1</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">0.0.0.0</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">0.0.0.0</httpsProxy>
- <browserEmulation type="int">3</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="int">0</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15348</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15345</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15349</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">Traffic2_HTTPServer1:80</destination>
- <pageObject type="str">/1024k.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="int">0</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15346</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15347</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15350</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15351</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15352</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">15353</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">4</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15342</_apiUniqueId>
- <uniqueID type="int">4</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network_1</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="24" type="ixNetworkRange">
- <_smRangeObjectId type="str">0304987f-176a-4aea-a3cb-c117279fe0ea</_smRangeObjectId>
- <name type="str">Network Range IP-R6 in client network_1 (192.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="25" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="24"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">f020117b-0c7f-4da8-a1ae-0fca36b0caad</_rangeGroupObjectId>
- <_smPluginObjectId type="str">410b3e8d-36a6-41b5-821e-9ee93496ea7a</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="25"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="26" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="26"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">6c1a9dc4-bc8e-48ad-982f-956b0561e947</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="27"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">HTTPClient1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="28" type="ixTimeline">
- <name type="str">Timeline2</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">20000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">3</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15354</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="28"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15341</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="29" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15332</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="24"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="24"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="27"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="27"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15331</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="29"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- </elementList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12922</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">DUT</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12923</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Server</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ref="30"/>
- <item ref="31"/>
- </elementList>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12924</_apiUniqueId>
- </item>
- </columnList>
- <links ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityLinkList" itemtype="ixActivityLink"/>
- <appMixList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixAppMixList" itemtype="ixAppMix"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12921</_apiUniqueId>
- </item>
- </scenarioList>
- <currentUniqueIDForAgent type="int">6</currentUniqueIDForAgent>
- <enableNetworkDiagnostics type="bool">True</enableNetworkDiagnostics>
- <showNetworkDiagnosticsFromApplyConfig type="bool">False</showNetworkDiagnosticsFromApplyConfig>
- <showNetworkDiagnosticsAfterRunStops type="bool">False</showNetworkDiagnosticsAfterRunStops>
- <resetNetworkDiagnosticsAtStartRun type="bool">False</resetNetworkDiagnosticsAtStartRun>
- <enableNetworkDiagnosticsLogging type="bool">False</enableNetworkDiagnosticsLogging>
- <enableTcpAdvancedStats type="bool">False</enableTcpAdvancedStats>
- <enableFrameSizeDistributionStats type="bool">False</enableFrameSizeDistributionStats>
- <isFrameSizeDistributionViewSupported type="bool">False</isFrameSizeDistributionViewSupported>
- <statViewThroughputUnits type="str">Kbps</statViewThroughputUnits>
- <totalUserObjectiveInfoList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixTotalUserObjectiveInfoList" itemtype="ixTotalUserObjectiveInfo"/>
- <activitiesGroupedByObjective type="bool">False</activitiesGroupedByObjective>
- <eventHandlerSettings ver="[0, [1, [0, [0]]]]" type="ixEventHandlerSettings">
- <disabledEventClasses type="str"></disabledEventClasses>
- <disabledPorts type="str"></disabledPorts>
- <_apiUniqueId type="int">12990</_apiUniqueId>
- </eventHandlerSettings>
- <allowMixedObjectiveTypes type="bool">False</allowMixedObjectiveTypes>
- <networkProtocolOptions type="NoneType">None</networkProtocolOptions>
- <seedForRandomBehavior type="int">0</seedForRandomBehavior>
- <csvThroughputScalingFactor type="int">0</csvThroughputScalingFactor>
- <reporterThroughputScalingFactor type="int">0</reporterThroughputScalingFactor>
- <profileDirectory ver="[2, [1, [0, [0]]]]" type="ixProfileDirectory">
- <categoryList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileCategoryList" itemtype="ixProfileCategory">
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Playlist</name>
- <categoryId type="str">playlist</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.Playlist.ixPropertyMap_PlaylistCategory$ixPropertyMap_PlaylistCategory"/>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Random Data</name>
- <categoryId type="str">rdge</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.RandomData.ixPropertyMap_RandomDataCategory$ixPropertyMap_RandomDataCategory">
- <startcore type="int">0</startcore>
- <totalcores type="int">1</totalcores>
- </pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">1</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Real File</name>
- <categoryId type="str">realfile</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">2</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Unified File System</name>
- <categoryId type="str">ufs</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">3</objectID>
- </item>
- </categoryList>
- <_profileMru type="str"></_profileMru>
- </profileDirectory>
- <communityList type="NoneType">None</communityList>
- <autoUpdateAppFlowsToLatest type="bool">True</autoUpdateAppFlowsToLatest>
- <downgradeAppLibFlowsToLatestValidVersion type="bool">True</downgradeAppLibFlowsToLatestValidVersion>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12920</_apiUniqueId>
- <lastStatViewerConfiguration type="str"></lastStatViewerConfiguration>
- <statManagerOptions ver="[1, [1, [0, [0]]]]" type="ixStatManagerOptions">
- <pollingInterval type="int">2</pollingInterval>
- <allowCsvLogging type="bool">False</allowCsvLogging>
- <enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6(ENXS80_17!!8(6J$Z?&lt;9PL'!\;81W;L+P'T!0!(]&amp;.NK*D)2D?6_3?&#10;M.Z0.R[+D!&quot;V01!3?F^&amp;0&gt;AP.T_NPWWC2%A/J!OYM35&gt;TVH&gt;[GL40^^+B'29'&#10;MJ*6T-$53C':K!@1,&gt;&gt;_$I4SZA ^W-10R=^\BA6Z5D%M0AGT;*SG&gt;5X)&quot;@,!X&#10;M,)LN1].EI-[UYHN1!&lt;W^TIQ-B^_/HZ&amp;Y[-]/1AP8S![OS&gt;EHF U-L]9[ C@;&#10;M_*XW)OA'!)R#M$5&gt;A&amp;]K1DT,1+&gt;38+UV_77:/T8&gt;Q0);NAML'7S['K^BK1N0&#10;ME*%E*&amp;5H$\X)MET168+7!3Y:$PB&amp;+^OR$.(4TP4V@V7V N3,2&lt;&quot;PS7*V2Q+A&#10;M0F /KN-@GSNBYS&amp;.?/3BX2%BR&amp;(!P&gt;&gt;$^7%U\G$TRJPOC@0!S2(61BQ;R&lt;?(&#10;M8V[H%&gt;&lt;F2$/K#=HCVG/948AO$%$6;#[&quot;-WO-.*UTS+'KX3EB&amp;2+Z^QXFC*9/&#10;M&quot;33MT^Z&gt;NK&gt;U5\;&quot;KJKN=CME5U&lt;&quot;LE8-3=/5;X\3RW[%&amp;R2[/GPT6(Q:9N6\&#10;M;24&amp;5=-1AWB%8$YBG4[?!.T4'I @40'!&amp;-#&quot;^P(Y;O&quot;1!%%8 %R?W1D]E3]Z&#10;M:B5KX+G89^. ;&quot;(/69@QT$OV[?Z^^F4_O($__9NK'U' ;K[$FSM^Z&lt;8/76G&amp;&#10;MC=_/V'P&quot;&quot;?&gt;/(_CGL?G/L1EO&quot;=@0B\@OQG'EL9N3O)..K,4-&quot;502.&amp;&quot;1 !%;&#10;MR7HK;G^X6K.;7&amp;3@*AG%]%&gt;!A8F+//&lt;GXEOH'JUS2HC-WRV'))*C)MYG'[-.&#10;M8Y0D'N7FF26K 2IW;=CI(2WR8B:?SQ1M,$=Y6^&gt;=:KZWW&amp;: &amp;%X'Y, 9? NK&#10;M#\OE/+/-H^?V@]4ZW5B&lt;,.X^F=_,OKP&lt;64OKB?N1M^.OS^9\VWANS -0O3P8&#10;MR/J]0O8K,4+!OCQ 3-()./0XJ6/ON=4P$G.6U$KX89&gt;(^ +'&gt;HO#PYB]_,4S&#10;M[Q;32ZP'=_WJP2^K9&amp;7YE9F0.YF[&lt;C'AS&amp;;=KF/=T&gt;6ZIF&amp;Y8;20_(+LCMS2&#10;MM':GLUIU.IVZ6),J!^=#@9CR.H'71D&lt;3/G+(N=EGBHEE#CEHR;K&lt;E U=;AO-&#10;M&gt;J/9;-0A'D-O&amp;?5F1VX:;:/&gt;-AH:A-RZOFZUA&gt;N&lt;=6E$(&amp;_&quot;L#/S.&lt;/0]+:L&#10;MZ[+67NKU;H/_*.V6WKIN-V6MT]6R:$^L*OP&amp;&lt;(0#0X+=W/5=+]F1# [(9+-6&#10;M?)$X)SXB^]7U&lt;;HLPZGU4&gt;8:C^5;1GG#4]]Q^('.F3 AQ6@V%*.N*;IQ?33L&#10;M=O737*56N3@?S-Q/,=L%Y'N:I8'548RX&quot;(NE4D:YX&amp;B!/8RHF)NYGT&quot;Y(744&#10;M79-&amp;_5-G.=H%9^E6'W2?()&gt;M&quot;=I(/ -0Z==]I_7;DPG%V%,\RA./6BZ.4ITJ&#10;MS/T&quot;AY!C,,E-&quot;W3#9ZZW$R\EE/(=^_G1LI$G9J-KB&gt; *_&gt;&gt;&amp;UC8'?WJ!3,W-&#10;M3GI+12H*DS,9&quot;N/WY/_&lt;.8$IE QT%O*#K$(@@\#S(&amp;7Q*DXH&amp;C,$'\&quot;)97:*&#10;M51I/,&quot;(^=OC9R7DK7MWE'13P2C]C+]B)&gt;H26NCF%*[U ZN-,40=RHMC;.3=%&#10;M_)*CI/*_Y*M(J78'97E@!Y[I@^)6R,;E'DM9E4X70&lt;3P OGK&lt;F\%N,S-)N39&#10;M8YG)I;CT97B5+B_J+=:E&lt;_&quot;Y:N&amp;Z57+XG5&quot;^\#KOC)1MO8IBC;/CPCJ[I/V'&#10;M^V%6=_/[B&gt;\=Q+O..R:N_QT[Q[K\:*,F2CBV:&quot;G.[[%W/2%DR8=3XK8FO-5R&#10;M%^C:*1Y?96I20!Q,Q%4'V2 ,.L%;[*5W3E58P(76WX27;[- 2,H#&lt;67)76&lt;Y&#10;M- C\E;N.&quot;,I?(/FJ4P!M ,7W2-ZWB,0QQH&lt;GMT^.423*H//CU&lt;'4)JY02 +F&#10;MJEWP&quot;D&gt;:!^=96F7QKYT,E!_7P=LW#'(,-1_Y_]6&amp;,.?SY(_L/QQW_P)K190H&#10; &#10;end&#10;</svConfiguration>
- <svRestConfiguration type="str"></svRestConfiguration>
- </statManagerOptions>
- <currentUniqueIDForAgent type="int">6</currentUniqueIDForAgent>
- <_scenarioElementFactory ver="[0, [1, [0, [0]]]]" type="ixScenarioElementFactory">
- <singletonDict type="dict"/>
- <referenceCountDict type="dict">
- <item>
- <key type="str">qovCoprocessor</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">Impairment</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">asrCoprocessor</key>
- <value type="int">0</value>
- </item>
- </referenceCountDict>
- </_scenarioElementFactory>
- </item>
- </testList>
-</root>
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-1B.rxf b/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-1B.rxf
deleted file mode 100644
index 8f1fbd8d4..000000000
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-1B.rxf
+++ /dev/null
@@ -1,2392 +0,0 @@
-<?xml version="1.0" ?>
-<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
- <_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;04a56313-c07c-4fae-acc5-e29a816e1311&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;cac5e27f-ec70-45e3-bc6c-7b0ac9e43449&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;3&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;6c1a9dc4-bc8e-48ad-982f-956b0561e947&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network_1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;af65320b-b937-4835-b8c1-510cc79660ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;0216d80d-55b8-4b3e-a187-6e8536fa5902&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;a645bdf1-8071-4555-b862-9f30729946e7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;6b363dca-4b7b-45f3-a094-50df1f3b6fb7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;0ee36d95-6f82-49e3-aaed-52fada95c460&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;c74e6630-4c22-46a1-bd5a-9a18c361199f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R6&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:C0:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R6&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;410b3e8d-36a6-41b5-821e-9ee93496ea7a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R6&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;192.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;192.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;c74e6630-4c22-46a1-bd5a-9a18c361199f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;f020117b-0c7f-4da8-a1ae-0fca36b0caad&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;a360ad81-4163-41db-b64f-bc1af27777d5&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;5d8e54de-002f-41c6-aac8-aff822bb0f7e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;8a334019-95aa-49f2-80dd-08bd013b6f6c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;45915d75-f382-4032-821f-233d11a38c11&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;10429e22-34bc-4ae5-b85f-3089635b6eb0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;7dad7c5d-84ac-4f54-ab59-fd45367fbb53&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;17371506-2053-47a1-9b65-5422bcd36666&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;HTTPClient1!Traffic2_HTTPServer1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;HTTPClient1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;424d5c6a-3bd8-4c5f-86af-ad84753fa410&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;076f9c54-cda8-4c68-a9c8-f14550cab1ae&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;14&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;16&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;17&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;18&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;669af012-d572-439d-9c70-cfbacea0fe7f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network_1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;9280ae7b-1935-4fb1-8a86-522e739d7d13&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;3158f964-1bf1-4ba7-b2d5-a0f2174b233f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;454249a6-64c1-41d4-b0ff-84b288651087&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;3d790b32-9ee7-4e44-b63f-cfab800dea84&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;c3e18bb9-4bf8-4bfc-a308-6a155469a0ee&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;95df1613-0cfc-45b5-a68e-e06ecd5b6cdf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R8&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:C0:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R8&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;2aa50b07-0df6-4bc2-8fcc-1ebb0f6169b5&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R8&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;192.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;192.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;95df1613-0cfc-45b5-a68e-e06ecd5b6cdf&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;389909e0-120c-4ea7-857f-69e5981ba867&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;82f06e5c-e227-4c7b-9b89-c4495858f1c1&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;19&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;b4947db2-ab64-441c-81df-d6961888df99&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;20&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;76a42df0-2980-40cb-a135-8afd39ffa5a2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;21&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;34244aba-2937-43a8-900b-7821e096b69a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;22&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;2551de11-5f59-49dc-92be-266b8bf8fe90&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;23&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;6d9cab2d-989f-4bad-9595-ffefba7bc84a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-5&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;24&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;dd86f951-1b71-4f94-930e-1f690af65f5a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;2dc65e0c-3a5a-4c59-a3a7-d1cf336fa422&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c648ad96-ef63-4c6d-b77e-586fece09b3b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;dc4d759f-e4ac-4498-9296-92fd26a83bf9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;3b496ea9-e90a-48e5-b01a-adfeb9940e5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;72bbb3e6-5bae-448e-bcda-ba87a76fa477&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7c3ea465-5392-4894-b8a4-0138f48acf8e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;669af012-d572-439d-9c70-cfbacea0fe7f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;6c1a9dc4-bc8e-48ad-982f-956b0561e947&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
- </_smSessionXml>
- <_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
- <xml type="str"></xml>
- </_composerConfig>
- <_quickTestConfig ver="[0, [1, [0, [0]]]]" type="ixQuickTestConfig">
- <xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
- </_quickTestConfig>
- <lastApiUniqueId type="int">15385</lastApiUniqueId>
- <version type="str">8.20.0.273</version>
- <name type="str">HTTP-vFW_IPv4_4Ports-CC-1B.rxf</name>
- <comment type="str"></comment>
- <path type="str">F:\IXIA-TESTS</path>
- <last type="str">HTTP-vFW_IPv4_4Ports-CC-4K.rxf</last>
- <activeTest type="str">Test1</activeTest>
- <chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
- <chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
- <_apiUniqueId type="int">12991</_apiUniqueId>
- <chassisMap type="dict"/>
- <hiddenChassis type="NoneType">None</hiddenChassis>
- </chassisChain>
- <AfmPortPacketRewriteConfigList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAfmPortPacketRewriteConfigList" itemtype="ixAfmPortPacketRewriteConfig"/>
- <networkList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixRepositoryNetworkList" itemtype="ixNullNetwork"/>
- <dutList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixDutList" itemtype="ixDut"/>
- <trafficList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTrafficList" itemtype="ixActivityModel"/>
- <testList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTestList" itemtype="ixTestEnvelope">
- <item ver="[18, [1, [0, [0]]]]" type="ixTestEnvelope">
- <name type="str">Test1</name>
- <comment type="str"></comment>
- <enableForceOwnership type="bool">False</enableForceOwnership>
- <enableResetPorts type="bool">False</enableResetPorts>
- <statsRequired type="int">1</statsRequired>
- <enableConditionalView type="bool">False</enableConditionalView>
- <conditionalViewType type="int">0</conditionalViewType>
- <conditionalViewList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixConditionalViewList" itemtype="ixConditionalView"/>
- <enableReleaseConfigAfterRun type="int">0</enableReleaseConfigAfterRun>
- <csvInterval type="int">4</csvInterval>
- <networkFailureThreshold type="int">0</networkFailureThreshold>
- <captureViewOptions ver="[1, [1, [0, [0]]]]" oid="8" type="ixViewOptions">
- <runMode type="int">1</runMode>
- <collectScheme type="int">0</collectScheme>
- <allocatedBufferMemoryPercentage type="long">30</allocatedBufferMemoryPercentage>
- <captureRunAfter type="int">0</captureRunAfter>
- <captureRunDuration type="int">0</captureRunDuration>
- <_apiUniqueId type="int">12941</_apiUniqueId>
- </captureViewOptions>
- <scenarioList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioList" itemtype="ixScenario">
- <item ver="[3, [1, [0, [0]]]]" type="ixScenario">
- <name type="str">TrafficFlow1</name>
- <columnList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixTrafficColumnList" itemtype="ixTrafficColumn">
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Client</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP client</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="14" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">newClientActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">12943</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">HTTP server_newServerActivity1</name>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="0"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="30" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP server</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="6" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">newServerActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="bool">False</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12972</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="str">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12973</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12987</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12988</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="1" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">12984</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12974</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12975</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12976</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12977</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">12978</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">12979</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">12980</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">12981</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">12982</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">12983</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12985</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12986</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">2</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12971</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" oid="9" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
- <_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (152.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="3"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">b2c21c73-bfe3-4fbc-9804-b5a8b307d893</_rangeGroupObjectId>
- <_smPluginObjectId type="str">b85b184d-9bb4-48c2-a029-e633fee7a3c8</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="4"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="5" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="5"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">c4ecfc60-64ac-4dc2-9410-e0f58d84f229</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="6"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">newServerActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[0, [2, [2, [1, [1, [0, [0]]]]]]]" oid="7" type="ixMatchLongestTimeline"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12989</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ref="9"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12970</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="10" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12956</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="3"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="3"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="6"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="6"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12955</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="10"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">newServerActivity1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">0</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">1</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">1</httpVersion>
- <keepAlive type="bool">False</keepAlive>
- <maxPersistentRequests type="int">0</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">:80</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">:443</httpsProxy>
- <browserEmulation type="int">1</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="bool">False</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12948</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12945</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12949</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">HTTP server_newServerActivity1:80</destination>
- <pageObject type="str">/1b.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="bool">False</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12946</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12947</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12950</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12951</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12952</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12953</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">1</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12942</_apiUniqueId>
- <uniqueID type="int">1</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
- <_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (152.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="11"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">aa33a76b-9c7f-48d9-a537-8d6eeec03662</_rangeGroupObjectId>
- <_smPluginObjectId type="str">a916ae0f-0731-405d-ad19-eaade6c515f1</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="12"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="13" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="13"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">865be042-32d5-426a-9e75-0908c943801f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="14"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">newClientActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="15" type="ixTimeline">
- <name type="str">Timeline1</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">20000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">0</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12954</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="15"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12940</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="16" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12926</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="11"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="11"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="14"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="14"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12925</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="16"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">Traffic1@client network_1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">Traffic1</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="27" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">HTTPClient1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">15343</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">Traffic2_HTTPServer1</name>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="17"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="31" type="ixNetTraffic">
- <name type="str">Traffic2@server network_1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">Traffic2</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="22" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">HTTPServer1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="int">0</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15367</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="int">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15368</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15382</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15383</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="18" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">15379</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">1</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15369</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15370</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15371</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">15372</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">15373</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">15374</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">15375</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">15376</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">15377</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">15378</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15380</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15381</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">6</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15366</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network_1</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="19" type="ixNetworkRange">
- <_smRangeObjectId type="str">ba01e944-e779-4a36-b3bd-26d1c3b0ef21</_smRangeObjectId>
- <name type="str">Network Range IP-R8 in server network_1 (192.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="20" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="19"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">389909e0-120c-4ea7-857f-69e5981ba867</_rangeGroupObjectId>
- <_smPluginObjectId type="str">2aa50b07-0df6-4bc2-8fcc-1ebb0f6169b5</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="20"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="21" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="21"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">669af012-d572-439d-9c70-cfbacea0fe7f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="22"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">HTTPServer1</name>
- <enable type="bool">True</enable>
- <timeline ref="7"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15384</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15365</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="23" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15356</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="19"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="19"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="22"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="22"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15355</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="23"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">HTTPServer1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">1</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">3</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">0</httpVersion>
- <keepAlive type="int">0</keepAlive>
- <maxPersistentRequests type="int">1</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">0.0.0.0</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">0.0.0.0</httpsProxy>
- <browserEmulation type="int">3</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="int">0</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15348</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15345</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15349</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">Traffic2_HTTPServer1:80</destination>
- <pageObject type="str">/1b.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="int">0</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15346</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15347</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15350</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15351</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15352</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">15353</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">4</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15342</_apiUniqueId>
- <uniqueID type="int">4</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network_1</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="24" type="ixNetworkRange">
- <_smRangeObjectId type="str">0304987f-176a-4aea-a3cb-c117279fe0ea</_smRangeObjectId>
- <name type="str">Network Range IP-R6 in client network_1 (192.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="25" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="24"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">f020117b-0c7f-4da8-a1ae-0fca36b0caad</_rangeGroupObjectId>
- <_smPluginObjectId type="str">410b3e8d-36a6-41b5-821e-9ee93496ea7a</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="25"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="26" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="26"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">6c1a9dc4-bc8e-48ad-982f-956b0561e947</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="27"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">HTTPClient1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="28" type="ixTimeline">
- <name type="str">Timeline2</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">20000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">3</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15354</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="28"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15341</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="29" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15332</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="24"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="24"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="27"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="27"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15331</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="29"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- </elementList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12922</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">DUT</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12923</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Server</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ref="30"/>
- <item ref="31"/>
- </elementList>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12924</_apiUniqueId>
- </item>
- </columnList>
- <links ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityLinkList" itemtype="ixActivityLink"/>
- <appMixList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixAppMixList" itemtype="ixAppMix"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12921</_apiUniqueId>
- </item>
- </scenarioList>
- <currentUniqueIDForAgent type="int">6</currentUniqueIDForAgent>
- <enableNetworkDiagnostics type="bool">True</enableNetworkDiagnostics>
- <showNetworkDiagnosticsFromApplyConfig type="bool">False</showNetworkDiagnosticsFromApplyConfig>
- <showNetworkDiagnosticsAfterRunStops type="bool">False</showNetworkDiagnosticsAfterRunStops>
- <resetNetworkDiagnosticsAtStartRun type="bool">False</resetNetworkDiagnosticsAtStartRun>
- <enableNetworkDiagnosticsLogging type="bool">False</enableNetworkDiagnosticsLogging>
- <enableTcpAdvancedStats type="bool">False</enableTcpAdvancedStats>
- <enableFrameSizeDistributionStats type="bool">False</enableFrameSizeDistributionStats>
- <isFrameSizeDistributionViewSupported type="bool">False</isFrameSizeDistributionViewSupported>
- <statViewThroughputUnits type="str">Kbps</statViewThroughputUnits>
- <totalUserObjectiveInfoList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixTotalUserObjectiveInfoList" itemtype="ixTotalUserObjectiveInfo"/>
- <activitiesGroupedByObjective type="bool">False</activitiesGroupedByObjective>
- <eventHandlerSettings ver="[0, [1, [0, [0]]]]" type="ixEventHandlerSettings">
- <disabledEventClasses type="str"></disabledEventClasses>
- <disabledPorts type="str"></disabledPorts>
- <_apiUniqueId type="int">12990</_apiUniqueId>
- </eventHandlerSettings>
- <allowMixedObjectiveTypes type="bool">False</allowMixedObjectiveTypes>
- <networkProtocolOptions type="NoneType">None</networkProtocolOptions>
- <seedForRandomBehavior type="int">0</seedForRandomBehavior>
- <csvThroughputScalingFactor type="int">0</csvThroughputScalingFactor>
- <reporterThroughputScalingFactor type="int">0</reporterThroughputScalingFactor>
- <profileDirectory ver="[2, [1, [0, [0]]]]" type="ixProfileDirectory">
- <categoryList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileCategoryList" itemtype="ixProfileCategory">
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Playlist</name>
- <categoryId type="str">playlist</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.Playlist.ixPropertyMap_PlaylistCategory$ixPropertyMap_PlaylistCategory"/>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Random Data</name>
- <categoryId type="str">rdge</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.RandomData.ixPropertyMap_RandomDataCategory$ixPropertyMap_RandomDataCategory">
- <startcore type="int">0</startcore>
- <totalcores type="int">1</totalcores>
- </pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">1</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Real File</name>
- <categoryId type="str">realfile</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">2</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Unified File System</name>
- <categoryId type="str">ufs</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">3</objectID>
- </item>
- </categoryList>
- <_profileMru type="str"></_profileMru>
- </profileDirectory>
- <communityList type="NoneType">None</communityList>
- <autoUpdateAppFlowsToLatest type="bool">True</autoUpdateAppFlowsToLatest>
- <downgradeAppLibFlowsToLatestValidVersion type="bool">True</downgradeAppLibFlowsToLatestValidVersion>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12920</_apiUniqueId>
- <lastStatViewerConfiguration type="str"></lastStatViewerConfiguration>
- <statManagerOptions ver="[1, [1, [0, [0]]]]" type="ixStatManagerOptions">
- <pollingInterval type="int">2</pollingInterval>
- <allowCsvLogging type="bool">False</allowCsvLogging>
- <enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6(ENXS80_17!!8(6J$Z?&lt;9PL'!\;81W;L+P'T!0!(]&amp;.NK*D)2D?6_3?&#10;M.Z0.R[+D!&quot;V01!3?F^&amp;0&gt;AP.T_NPWWC2%A/J!OYM35&gt;TVH&gt;[GL40^^+B'29'&#10;MJ*6T-$53C':K!@1,&gt;&gt;_$I4SZA ^W-10R=^\BA6Z5D%M0AGT;*SG&gt;5X)&quot;@,!X&#10;M,)LN1].EI-[UYHN1!&lt;W^TIQ-B^_/HZ&amp;Y[-]/1AP8S![OS&gt;EHF U-L]9[ C@;&#10;M_*XW)OA'!)R#M$5&gt;A&amp;]K1DT,1+&gt;38+UV_77:/T8&gt;Q0);NAML'7S['K^BK1N0&#10;ME*%E*&amp;5H$\X)MET168+7!3Y:$PB&amp;+^OR$.(4TP4V@V7V N3,2&lt;&quot;PS7*V2Q+A&#10;M0F /KN-@GSNBYS&amp;.?/3BX2%BR&amp;(!P&gt;&gt;$^7%U\G$TRJPOC@0!S2(61BQ;R&lt;?(&#10;M8V[H%&gt;&lt;F2$/K#=HCVG/948AO$%$6;#[&quot;-WO-.*UTS+'KX3EB&amp;2+Z^QXFC*9/&#10;M&quot;33MT^Z&gt;NK&gt;U5\;&quot;KJKN=CME5U&lt;&quot;LE8-3=/5;X\3RW[%&amp;R2[/GPT6(Q:9N6\&#10;M;24&amp;5=-1AWB%8$YBG4[?!.T4'I @40'!&amp;-#&quot;^P(Y;O&quot;1!%%8 %R?W1D]E3]Z&#10;M:B5KX+G89^. ;&quot;(/69@QT$OV[?Z^^F4_O($__9NK'U' ;K[$FSM^Z&lt;8/76G&amp;&#10;MC=_/V'P&quot;&quot;?&gt;/(_CGL?G/L1EO&quot;=@0B\@OQG'EL9N3O)..K,4-&quot;502.&amp;&quot;1 !%;&#10;MR7HK;G^X6K.;7&amp;3@*AG%]%&gt;!A8F+//&lt;GXEOH'JUS2HC-WRV'))*C)MYG'[-.&#10;M8Y0D'N7FF26K 2IW;=CI(2WR8B:?SQ1M,$=Y6^&gt;=:KZWW&amp;: &amp;%X'Y, 9? NK&#10;M#\OE/+/-H^?V@]4ZW5B&lt;,.X^F=_,OKP&lt;64OKB?N1M^.OS^9\VWANS -0O3P8&#10;MR/J]0O8K,4+!OCQ 3-()./0XJ6/ON=4P$G.6U$KX89&gt;(^ +'&gt;HO#PYB]_,4S&#10;M[Q;32ZP'=_WJP2^K9&amp;7YE9F0.YF[&lt;C'AS&amp;;=KF/=T&gt;6ZIF&amp;Y8;20_(+LCMS2&#10;MM':GLUIU.IVZ6),J!^=#@9CR.H'71D&lt;3/G+(N=EGBHEE#CEHR;K&lt;E U=;AO-&#10;M&gt;J/9;-0A'D-O&amp;?5F1VX:;:/&gt;-AH:A-RZOFZUA&gt;N&lt;=6E$(&amp;_&quot;L#/S.&lt;/0]+:L&#10;MZ[+67NKU;H/_*.V6WKIN-V6MT]6R:$^L*OP&amp;&lt;(0#0X+=W/5=+]F1# [(9+-6&#10;M?)$X)SXB^]7U&lt;;HLPZGU4&gt;8:C^5;1GG#4]]Q^('.F3 AQ6@V%*.N*;IQ?33L&#10;M=O737*56N3@?S-Q/,=L%Y'N:I8'548RX&quot;(NE4D:YX&amp;B!/8RHF)NYGT&quot;Y(744&#10;M79-&amp;_5-G.=H%9^E6'W2?()&gt;M&quot;=I(/ -0Z==]I_7;DPG%V%,\RA./6BZ.4ITJ&#10;MS/T&quot;AY!C,,E-&quot;W3#9ZZW$R\EE/(=^_G1LI$G9J-KB&gt; *_&gt;&gt;&amp;UC8'?WJ!3,W-&#10;M3GI+12H*DS,9&quot;N/WY/_&lt;.8$IE QT%O*#K$(@@\#S(&amp;7Q*DXH&amp;C,$'\&quot;)97:*&#10;M51I/,&quot;(^=OC9R7DK7MWE'13P2C]C+]B)&gt;H26NCF%*[U ZN-,40=RHMC;.3=%&#10;M_)*CI/*_Y*M(J78'97E@!Y[I@^)6R,;E'DM9E4X70&lt;3P OGK&lt;F\%N,S-)N39&#10;M8YG)I;CT97B5+B_J+=:E&lt;_&quot;Y:N&amp;Z57+XG5&quot;^\#KOC)1MO8IBC;/CPCJ[I/V'&#10;M^V%6=_/[B&gt;\=Q+O..R:N_QT[Q[K\:*,F2CBV:&quot;G.[[%W/2%DR8=3XK8FO-5R&#10;M%^C:*1Y?96I20!Q,Q%4'V2 ,.L%;[*5W3E58P(76WX27;[- 2,H#&lt;67)76&lt;Y&#10;M- C\E;N.&quot;,I?(/FJ4P!M ,7W2-ZWB,0QQH&lt;GMT^.423*H//CU&lt;'4)JY02 +F&#10;MJEWP&quot;D&gt;:!^=96F7QKYT,E!_7P=LW#'(,-1_Y_]6&amp;,.?SY(_L/QQW_P)K190H&#10; &#10;end&#10;</svConfiguration>
- <svRestConfiguration type="str"></svRestConfiguration>
- </statManagerOptions>
- <currentUniqueIDForAgent type="int">6</currentUniqueIDForAgent>
- <_scenarioElementFactory ver="[0, [1, [0, [0]]]]" type="ixScenarioElementFactory">
- <singletonDict type="dict"/>
- <referenceCountDict type="dict">
- <item>
- <key type="str">qovCoprocessor</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">Impairment</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">asrCoprocessor</key>
- <value type="int">0</value>
- </item>
- </referenceCountDict>
- </_scenarioElementFactory>
- </item>
- </testList>
-</root>
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-256K.rxf b/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-256K.rxf
deleted file mode 100644
index 1c27859c7..000000000
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-256K.rxf
+++ /dev/null
@@ -1,2392 +0,0 @@
-<?xml version="1.0" ?>
-<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
- <_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;04a56313-c07c-4fae-acc5-e29a816e1311&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;cac5e27f-ec70-45e3-bc6c-7b0ac9e43449&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;3&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;6c1a9dc4-bc8e-48ad-982f-956b0561e947&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network_1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;af65320b-b937-4835-b8c1-510cc79660ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;0216d80d-55b8-4b3e-a187-6e8536fa5902&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;a645bdf1-8071-4555-b862-9f30729946e7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;6b363dca-4b7b-45f3-a094-50df1f3b6fb7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;0ee36d95-6f82-49e3-aaed-52fada95c460&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;c74e6630-4c22-46a1-bd5a-9a18c361199f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R6&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:C0:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R6&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;410b3e8d-36a6-41b5-821e-9ee93496ea7a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R6&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;192.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;192.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;c74e6630-4c22-46a1-bd5a-9a18c361199f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;f020117b-0c7f-4da8-a1ae-0fca36b0caad&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;a360ad81-4163-41db-b64f-bc1af27777d5&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;5d8e54de-002f-41c6-aac8-aff822bb0f7e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;8a334019-95aa-49f2-80dd-08bd013b6f6c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;45915d75-f382-4032-821f-233d11a38c11&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;10429e22-34bc-4ae5-b85f-3089635b6eb0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;7dad7c5d-84ac-4f54-ab59-fd45367fbb53&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;17371506-2053-47a1-9b65-5422bcd36666&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;HTTPClient1!Traffic2_HTTPServer1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;HTTPClient1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;424d5c6a-3bd8-4c5f-86af-ad84753fa410&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;076f9c54-cda8-4c68-a9c8-f14550cab1ae&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;14&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;16&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;17&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;18&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;669af012-d572-439d-9c70-cfbacea0fe7f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network_1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;9280ae7b-1935-4fb1-8a86-522e739d7d13&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;3158f964-1bf1-4ba7-b2d5-a0f2174b233f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;454249a6-64c1-41d4-b0ff-84b288651087&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;3d790b32-9ee7-4e44-b63f-cfab800dea84&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;c3e18bb9-4bf8-4bfc-a308-6a155469a0ee&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;95df1613-0cfc-45b5-a68e-e06ecd5b6cdf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R8&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:C0:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R8&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;2aa50b07-0df6-4bc2-8fcc-1ebb0f6169b5&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R8&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;192.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;192.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;95df1613-0cfc-45b5-a68e-e06ecd5b6cdf&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;389909e0-120c-4ea7-857f-69e5981ba867&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;82f06e5c-e227-4c7b-9b89-c4495858f1c1&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;19&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;b4947db2-ab64-441c-81df-d6961888df99&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;20&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;76a42df0-2980-40cb-a135-8afd39ffa5a2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;21&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;34244aba-2937-43a8-900b-7821e096b69a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;22&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;2551de11-5f59-49dc-92be-266b8bf8fe90&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;23&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;6d9cab2d-989f-4bad-9595-ffefba7bc84a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-5&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;24&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;dd86f951-1b71-4f94-930e-1f690af65f5a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;2dc65e0c-3a5a-4c59-a3a7-d1cf336fa422&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c648ad96-ef63-4c6d-b77e-586fece09b3b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;dc4d759f-e4ac-4498-9296-92fd26a83bf9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;3b496ea9-e90a-48e5-b01a-adfeb9940e5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;72bbb3e6-5bae-448e-bcda-ba87a76fa477&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7c3ea465-5392-4894-b8a4-0138f48acf8e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;669af012-d572-439d-9c70-cfbacea0fe7f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;6c1a9dc4-bc8e-48ad-982f-956b0561e947&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
- </_smSessionXml>
- <_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
- <xml type="str"></xml>
- </_composerConfig>
- <_quickTestConfig ver="[0, [1, [0, [0]]]]" type="ixQuickTestConfig">
- <xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
- </_quickTestConfig>
- <lastApiUniqueId type="int">15385</lastApiUniqueId>
- <version type="str">8.20.0.273</version>
- <name type="str">HTTP-vFW_IPv4_4Ports-CC-256K.rxf</name>
- <comment type="str"></comment>
- <path type="str">F:\IXIA-TESTS</path>
- <last type="str">HTTP-vFW_IPv4_4Ports-CC-64K.rxf</last>
- <activeTest type="str">Test1</activeTest>
- <chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
- <chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
- <_apiUniqueId type="int">12991</_apiUniqueId>
- <chassisMap type="dict"/>
- <hiddenChassis type="NoneType">None</hiddenChassis>
- </chassisChain>
- <AfmPortPacketRewriteConfigList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAfmPortPacketRewriteConfigList" itemtype="ixAfmPortPacketRewriteConfig"/>
- <networkList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixRepositoryNetworkList" itemtype="ixNullNetwork"/>
- <dutList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixDutList" itemtype="ixDut"/>
- <trafficList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTrafficList" itemtype="ixActivityModel"/>
- <testList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTestList" itemtype="ixTestEnvelope">
- <item ver="[18, [1, [0, [0]]]]" type="ixTestEnvelope">
- <name type="str">Test1</name>
- <comment type="str"></comment>
- <enableForceOwnership type="bool">False</enableForceOwnership>
- <enableResetPorts type="bool">False</enableResetPorts>
- <statsRequired type="int">1</statsRequired>
- <enableConditionalView type="bool">False</enableConditionalView>
- <conditionalViewType type="int">0</conditionalViewType>
- <conditionalViewList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixConditionalViewList" itemtype="ixConditionalView"/>
- <enableReleaseConfigAfterRun type="int">0</enableReleaseConfigAfterRun>
- <csvInterval type="int">4</csvInterval>
- <networkFailureThreshold type="int">0</networkFailureThreshold>
- <captureViewOptions ver="[1, [1, [0, [0]]]]" oid="8" type="ixViewOptions">
- <runMode type="int">1</runMode>
- <collectScheme type="int">0</collectScheme>
- <allocatedBufferMemoryPercentage type="long">30</allocatedBufferMemoryPercentage>
- <captureRunAfter type="int">0</captureRunAfter>
- <captureRunDuration type="int">0</captureRunDuration>
- <_apiUniqueId type="int">12941</_apiUniqueId>
- </captureViewOptions>
- <scenarioList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioList" itemtype="ixScenario">
- <item ver="[3, [1, [0, [0]]]]" type="ixScenario">
- <name type="str">TrafficFlow1</name>
- <columnList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixTrafficColumnList" itemtype="ixTrafficColumn">
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Client</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP client</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="14" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">newClientActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">12943</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">HTTP server_newServerActivity1</name>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="0"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="30" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP server</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="6" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">newServerActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="bool">False</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12972</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="str">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12973</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12987</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12988</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="1" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">12984</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12974</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12975</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12976</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12977</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">12978</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">12979</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">12980</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">12981</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">12982</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">12983</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12985</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12986</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">2</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12971</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" oid="9" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
- <_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (152.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="3"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">b2c21c73-bfe3-4fbc-9804-b5a8b307d893</_rangeGroupObjectId>
- <_smPluginObjectId type="str">b85b184d-9bb4-48c2-a029-e633fee7a3c8</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="4"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="5" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="5"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">c4ecfc60-64ac-4dc2-9410-e0f58d84f229</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="6"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">newServerActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[0, [2, [2, [1, [1, [0, [0]]]]]]]" oid="7" type="ixMatchLongestTimeline"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12989</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ref="9"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12970</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="10" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12956</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="3"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="3"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="6"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="6"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12955</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="10"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">newServerActivity1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">0</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">1</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">1</httpVersion>
- <keepAlive type="bool">False</keepAlive>
- <maxPersistentRequests type="int">0</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">:80</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">:443</httpsProxy>
- <browserEmulation type="int">1</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="bool">False</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12948</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12945</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12949</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">HTTP server_newServerActivity1:80</destination>
- <pageObject type="str">/256k.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="bool">False</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12946</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12947</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12950</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12951</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12952</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12953</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">1</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12942</_apiUniqueId>
- <uniqueID type="int">1</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
- <_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (152.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="11"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">aa33a76b-9c7f-48d9-a537-8d6eeec03662</_rangeGroupObjectId>
- <_smPluginObjectId type="str">a916ae0f-0731-405d-ad19-eaade6c515f1</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="12"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="13" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="13"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">865be042-32d5-426a-9e75-0908c943801f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="14"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">newClientActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="15" type="ixTimeline">
- <name type="str">Timeline1</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">20000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">0</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12954</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="15"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12940</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="16" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12926</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="11"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="11"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="14"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="14"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12925</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="16"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">Traffic1@client network_1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">Traffic1</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="27" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">HTTPClient1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">15343</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">Traffic2_HTTPServer1</name>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="17"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="31" type="ixNetTraffic">
- <name type="str">Traffic2@server network_1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">Traffic2</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="22" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">HTTPServer1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="int">0</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15367</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="int">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15368</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15382</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15383</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="18" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">15379</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">1</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15369</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15370</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15371</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">15372</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">15373</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">15374</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">15375</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">15376</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">15377</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">15378</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15380</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15381</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">6</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15366</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network_1</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="19" type="ixNetworkRange">
- <_smRangeObjectId type="str">ba01e944-e779-4a36-b3bd-26d1c3b0ef21</_smRangeObjectId>
- <name type="str">Network Range IP-R8 in server network_1 (192.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="20" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="19"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">389909e0-120c-4ea7-857f-69e5981ba867</_rangeGroupObjectId>
- <_smPluginObjectId type="str">2aa50b07-0df6-4bc2-8fcc-1ebb0f6169b5</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="20"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="21" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="21"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">669af012-d572-439d-9c70-cfbacea0fe7f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="22"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">HTTPServer1</name>
- <enable type="bool">True</enable>
- <timeline ref="7"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15384</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15365</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="23" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15356</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="19"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="19"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="22"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="22"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15355</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="23"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">HTTPServer1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">1</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">3</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">0</httpVersion>
- <keepAlive type="int">0</keepAlive>
- <maxPersistentRequests type="int">1</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">0.0.0.0</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">0.0.0.0</httpsProxy>
- <browserEmulation type="int">3</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="int">0</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15348</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15345</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15349</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">Traffic2_HTTPServer1:80</destination>
- <pageObject type="str">/256k.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="int">0</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15346</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15347</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15350</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15351</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15352</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">15353</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">4</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15342</_apiUniqueId>
- <uniqueID type="int">4</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network_1</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="24" type="ixNetworkRange">
- <_smRangeObjectId type="str">0304987f-176a-4aea-a3cb-c117279fe0ea</_smRangeObjectId>
- <name type="str">Network Range IP-R6 in client network_1 (192.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="25" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="24"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">f020117b-0c7f-4da8-a1ae-0fca36b0caad</_rangeGroupObjectId>
- <_smPluginObjectId type="str">410b3e8d-36a6-41b5-821e-9ee93496ea7a</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="25"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="26" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="26"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">6c1a9dc4-bc8e-48ad-982f-956b0561e947</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="27"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">HTTPClient1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="28" type="ixTimeline">
- <name type="str">Timeline2</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">20000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">3</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15354</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="28"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15341</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="29" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15332</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="24"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="24"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="27"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="27"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15331</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="29"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- </elementList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12922</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">DUT</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12923</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Server</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ref="30"/>
- <item ref="31"/>
- </elementList>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12924</_apiUniqueId>
- </item>
- </columnList>
- <links ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityLinkList" itemtype="ixActivityLink"/>
- <appMixList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixAppMixList" itemtype="ixAppMix"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12921</_apiUniqueId>
- </item>
- </scenarioList>
- <currentUniqueIDForAgent type="int">6</currentUniqueIDForAgent>
- <enableNetworkDiagnostics type="bool">True</enableNetworkDiagnostics>
- <showNetworkDiagnosticsFromApplyConfig type="bool">False</showNetworkDiagnosticsFromApplyConfig>
- <showNetworkDiagnosticsAfterRunStops type="bool">False</showNetworkDiagnosticsAfterRunStops>
- <resetNetworkDiagnosticsAtStartRun type="bool">False</resetNetworkDiagnosticsAtStartRun>
- <enableNetworkDiagnosticsLogging type="bool">False</enableNetworkDiagnosticsLogging>
- <enableTcpAdvancedStats type="bool">False</enableTcpAdvancedStats>
- <enableFrameSizeDistributionStats type="bool">False</enableFrameSizeDistributionStats>
- <isFrameSizeDistributionViewSupported type="bool">False</isFrameSizeDistributionViewSupported>
- <statViewThroughputUnits type="str">Kbps</statViewThroughputUnits>
- <totalUserObjectiveInfoList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixTotalUserObjectiveInfoList" itemtype="ixTotalUserObjectiveInfo"/>
- <activitiesGroupedByObjective type="bool">False</activitiesGroupedByObjective>
- <eventHandlerSettings ver="[0, [1, [0, [0]]]]" type="ixEventHandlerSettings">
- <disabledEventClasses type="str"></disabledEventClasses>
- <disabledPorts type="str"></disabledPorts>
- <_apiUniqueId type="int">12990</_apiUniqueId>
- </eventHandlerSettings>
- <allowMixedObjectiveTypes type="bool">False</allowMixedObjectiveTypes>
- <networkProtocolOptions type="NoneType">None</networkProtocolOptions>
- <seedForRandomBehavior type="int">0</seedForRandomBehavior>
- <csvThroughputScalingFactor type="int">0</csvThroughputScalingFactor>
- <reporterThroughputScalingFactor type="int">0</reporterThroughputScalingFactor>
- <profileDirectory ver="[2, [1, [0, [0]]]]" type="ixProfileDirectory">
- <categoryList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileCategoryList" itemtype="ixProfileCategory">
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Playlist</name>
- <categoryId type="str">playlist</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.Playlist.ixPropertyMap_PlaylistCategory$ixPropertyMap_PlaylistCategory"/>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Random Data</name>
- <categoryId type="str">rdge</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.RandomData.ixPropertyMap_RandomDataCategory$ixPropertyMap_RandomDataCategory">
- <startcore type="int">0</startcore>
- <totalcores type="int">1</totalcores>
- </pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">1</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Real File</name>
- <categoryId type="str">realfile</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">2</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Unified File System</name>
- <categoryId type="str">ufs</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">3</objectID>
- </item>
- </categoryList>
- <_profileMru type="str"></_profileMru>
- </profileDirectory>
- <communityList type="NoneType">None</communityList>
- <autoUpdateAppFlowsToLatest type="bool">True</autoUpdateAppFlowsToLatest>
- <downgradeAppLibFlowsToLatestValidVersion type="bool">True</downgradeAppLibFlowsToLatestValidVersion>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12920</_apiUniqueId>
- <lastStatViewerConfiguration type="str"></lastStatViewerConfiguration>
- <statManagerOptions ver="[1, [1, [0, [0]]]]" type="ixStatManagerOptions">
- <pollingInterval type="int">2</pollingInterval>
- <allowCsvLogging type="bool">False</allowCsvLogging>
- <enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6(ENXS80_17!!8(6J$Z?&lt;9PL'!\;81W;L+P'T!0!(]&amp;.NK*D)2D?6_3?&#10;M.Z0.R[+D!&quot;V01!3?F^&amp;0&gt;AP.T_NPWWC2%A/J!OYM35&gt;TVH&gt;[GL40^^+B'29'&#10;MJ*6T-$53C':K!@1,&gt;&gt;_$I4SZA ^W-10R=^\BA6Z5D%M0AGT;*SG&gt;5X)&quot;@,!X&#10;M,)LN1].EI-[UYHN1!&lt;W^TIQ-B^_/HZ&amp;Y[-]/1AP8S![OS&gt;EHF U-L]9[ C@;&#10;M_*XW)OA'!)R#M$5&gt;A&amp;]K1DT,1+&gt;38+UV_77:/T8&gt;Q0);NAML'7S['K^BK1N0&#10;ME*%E*&amp;5H$\X)MET168+7!3Y:$PB&amp;+^OR$.(4TP4V@V7V N3,2&lt;&quot;PS7*V2Q+A&#10;M0F /KN-@GSNBYS&amp;.?/3BX2%BR&amp;(!P&gt;&gt;$^7%U\G$TRJPOC@0!S2(61BQ;R&lt;?(&#10;M8V[H%&gt;&lt;F2$/K#=HCVG/948AO$%$6;#[&quot;-WO-.*UTS+'KX3EB&amp;2+Z^QXFC*9/&#10;M&quot;33MT^Z&gt;NK&gt;U5\;&quot;KJKN=CME5U&lt;&quot;LE8-3=/5;X\3RW[%&amp;R2[/GPT6(Q:9N6\&#10;M;24&amp;5=-1AWB%8$YBG4[?!.T4'I @40'!&amp;-#&quot;^P(Y;O&quot;1!%%8 %R?W1D]E3]Z&#10;M:B5KX+G89^. ;&quot;(/69@QT$OV[?Z^^F4_O($__9NK'U' ;K[$FSM^Z&lt;8/76G&amp;&#10;MC=_/V'P&quot;&quot;?&gt;/(_CGL?G/L1EO&quot;=@0B\@OQG'EL9N3O)..K,4-&quot;502.&amp;&quot;1 !%;&#10;MR7HK;G^X6K.;7&amp;3@*AG%]%&gt;!A8F+//&lt;GXEOH'JUS2HC-WRV'))*C)MYG'[-.&#10;M8Y0D'N7FF26K 2IW;=CI(2WR8B:?SQ1M,$=Y6^&gt;=:KZWW&amp;: &amp;%X'Y, 9? NK&#10;M#\OE/+/-H^?V@]4ZW5B&lt;,.X^F=_,OKP&lt;64OKB?N1M^.OS^9\VWANS -0O3P8&#10;MR/J]0O8K,4+!OCQ 3-()./0XJ6/ON=4P$G.6U$KX89&gt;(^ +'&gt;HO#PYB]_,4S&#10;M[Q;32ZP'=_WJP2^K9&amp;7YE9F0.YF[&lt;C'AS&amp;;=KF/=T&gt;6ZIF&amp;Y8;20_(+LCMS2&#10;MM':GLUIU.IVZ6),J!^=#@9CR.H'71D&lt;3/G+(N=EGBHEE#CEHR;K&lt;E U=;AO-&#10;M&gt;J/9;-0A'D-O&amp;?5F1VX:;:/&gt;-AH:A-RZOFZUA&gt;N&lt;=6E$(&amp;_&quot;L#/S.&lt;/0]+:L&#10;MZ[+67NKU;H/_*.V6WKIN-V6MT]6R:$^L*OP&amp;&lt;(0#0X+=W/5=+]F1# [(9+-6&#10;M?)$X)SXB^]7U&lt;;HLPZGU4&gt;8:C^5;1GG#4]]Q^('.F3 AQ6@V%*.N*;IQ?33L&#10;M=O737*56N3@?S-Q/,=L%Y'N:I8'548RX&quot;(NE4D:YX&amp;B!/8RHF)NYGT&quot;Y(744&#10;M79-&amp;_5-G.=H%9^E6'W2?()&gt;M&quot;=I(/ -0Z==]I_7;DPG%V%,\RA./6BZ.4ITJ&#10;MS/T&quot;AY!C,,E-&quot;W3#9ZZW$R\EE/(=^_G1LI$G9J-KB&gt; *_&gt;&gt;&amp;UC8'?WJ!3,W-&#10;M3GI+12H*DS,9&quot;N/WY/_&lt;.8$IE QT%O*#K$(@@\#S(&amp;7Q*DXH&amp;C,$'\&quot;)97:*&#10;M51I/,&quot;(^=OC9R7DK7MWE'13P2C]C+]B)&gt;H26NCF%*[U ZN-,40=RHMC;.3=%&#10;M_)*CI/*_Y*M(J78'97E@!Y[I@^)6R,;E'DM9E4X70&lt;3P OGK&lt;F\%N,S-)N39&#10;M8YG)I;CT97B5+B_J+=:E&lt;_&quot;Y:N&amp;Z57+XG5&quot;^\#KOC)1MO8IBC;/CPCJ[I/V'&#10;M^V%6=_/[B&gt;\=Q+O..R:N_QT[Q[K\:*,F2CBV:&quot;G.[[%W/2%DR8=3XK8FO-5R&#10;M%^C:*1Y?96I20!Q,Q%4'V2 ,.L%;[*5W3E58P(76WX27;[- 2,H#&lt;67)76&lt;Y&#10;M- C\E;N.&quot;,I?(/FJ4P!M ,7W2-ZWB,0QQH&lt;GMT^.423*H//CU&lt;'4)JY02 +F&#10;MJEWP&quot;D&gt;:!^=96F7QKYT,E!_7P=LW#'(,-1_Y_]6&amp;,.?SY(_L/QQW_P)K190H&#10; &#10;end&#10;</svConfiguration>
- <svRestConfiguration type="str"></svRestConfiguration>
- </statManagerOptions>
- <currentUniqueIDForAgent type="int">6</currentUniqueIDForAgent>
- <_scenarioElementFactory ver="[0, [1, [0, [0]]]]" type="ixScenarioElementFactory">
- <singletonDict type="dict"/>
- <referenceCountDict type="dict">
- <item>
- <key type="str">qovCoprocessor</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">Impairment</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">asrCoprocessor</key>
- <value type="int">0</value>
- </item>
- </referenceCountDict>
- </_scenarioElementFactory>
- </item>
- </testList>
-</root>
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-4K.rxf b/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-4K.rxf
deleted file mode 100644
index a668b8ea9..000000000
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-4K.rxf
+++ /dev/null
@@ -1,2392 +0,0 @@
-<?xml version="1.0" ?>
-<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
- <_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;04a56313-c07c-4fae-acc5-e29a816e1311&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;cac5e27f-ec70-45e3-bc6c-7b0ac9e43449&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;3&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;6c1a9dc4-bc8e-48ad-982f-956b0561e947&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network_1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;af65320b-b937-4835-b8c1-510cc79660ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;0216d80d-55b8-4b3e-a187-6e8536fa5902&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;a645bdf1-8071-4555-b862-9f30729946e7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;6b363dca-4b7b-45f3-a094-50df1f3b6fb7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;0ee36d95-6f82-49e3-aaed-52fada95c460&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;c74e6630-4c22-46a1-bd5a-9a18c361199f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R6&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:C0:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R6&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;410b3e8d-36a6-41b5-821e-9ee93496ea7a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R6&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;192.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;192.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;c74e6630-4c22-46a1-bd5a-9a18c361199f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;f020117b-0c7f-4da8-a1ae-0fca36b0caad&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;a360ad81-4163-41db-b64f-bc1af27777d5&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;5d8e54de-002f-41c6-aac8-aff822bb0f7e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;8a334019-95aa-49f2-80dd-08bd013b6f6c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;45915d75-f382-4032-821f-233d11a38c11&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;10429e22-34bc-4ae5-b85f-3089635b6eb0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;7dad7c5d-84ac-4f54-ab59-fd45367fbb53&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;17371506-2053-47a1-9b65-5422bcd36666&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;HTTPClient1!Traffic2_HTTPServer1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;HTTPClient1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;424d5c6a-3bd8-4c5f-86af-ad84753fa410&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;076f9c54-cda8-4c68-a9c8-f14550cab1ae&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;14&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;16&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;17&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;18&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;669af012-d572-439d-9c70-cfbacea0fe7f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network_1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;9280ae7b-1935-4fb1-8a86-522e739d7d13&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;3158f964-1bf1-4ba7-b2d5-a0f2174b233f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;454249a6-64c1-41d4-b0ff-84b288651087&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;3d790b32-9ee7-4e44-b63f-cfab800dea84&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;c3e18bb9-4bf8-4bfc-a308-6a155469a0ee&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;95df1613-0cfc-45b5-a68e-e06ecd5b6cdf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R8&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:C0:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R8&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;2aa50b07-0df6-4bc2-8fcc-1ebb0f6169b5&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R8&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;192.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;192.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;95df1613-0cfc-45b5-a68e-e06ecd5b6cdf&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;389909e0-120c-4ea7-857f-69e5981ba867&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;82f06e5c-e227-4c7b-9b89-c4495858f1c1&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;19&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;b4947db2-ab64-441c-81df-d6961888df99&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;20&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;76a42df0-2980-40cb-a135-8afd39ffa5a2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;21&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;34244aba-2937-43a8-900b-7821e096b69a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;22&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;2551de11-5f59-49dc-92be-266b8bf8fe90&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;23&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;6d9cab2d-989f-4bad-9595-ffefba7bc84a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-5&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;24&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;dd86f951-1b71-4f94-930e-1f690af65f5a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;2dc65e0c-3a5a-4c59-a3a7-d1cf336fa422&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c648ad96-ef63-4c6d-b77e-586fece09b3b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;dc4d759f-e4ac-4498-9296-92fd26a83bf9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;3b496ea9-e90a-48e5-b01a-adfeb9940e5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;72bbb3e6-5bae-448e-bcda-ba87a76fa477&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7c3ea465-5392-4894-b8a4-0138f48acf8e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;669af012-d572-439d-9c70-cfbacea0fe7f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;6c1a9dc4-bc8e-48ad-982f-956b0561e947&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
- </_smSessionXml>
- <_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
- <xml type="str"></xml>
- </_composerConfig>
- <_quickTestConfig ver="[0, [1, [0, [0]]]]" type="ixQuickTestConfig">
- <xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
- </_quickTestConfig>
- <lastApiUniqueId type="int">15385</lastApiUniqueId>
- <version type="str">8.20.0.273</version>
- <name type="str">HTTP-vFW_IPv4_4Ports-CC-4K.rxf</name>
- <comment type="str"></comment>
- <path type="str">F:\IXIA-TESTS</path>
- <last type="str">HTTP-vFW_IPv4_4Ports-CC-1B.rxf</last>
- <activeTest type="str">Test1</activeTest>
- <chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
- <chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
- <_apiUniqueId type="int">12991</_apiUniqueId>
- <chassisMap type="dict"/>
- <hiddenChassis type="NoneType">None</hiddenChassis>
- </chassisChain>
- <AfmPortPacketRewriteConfigList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAfmPortPacketRewriteConfigList" itemtype="ixAfmPortPacketRewriteConfig"/>
- <networkList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixRepositoryNetworkList" itemtype="ixNullNetwork"/>
- <dutList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixDutList" itemtype="ixDut"/>
- <trafficList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTrafficList" itemtype="ixActivityModel"/>
- <testList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTestList" itemtype="ixTestEnvelope">
- <item ver="[18, [1, [0, [0]]]]" type="ixTestEnvelope">
- <name type="str">Test1</name>
- <comment type="str"></comment>
- <enableForceOwnership type="bool">False</enableForceOwnership>
- <enableResetPorts type="bool">False</enableResetPorts>
- <statsRequired type="int">1</statsRequired>
- <enableConditionalView type="bool">False</enableConditionalView>
- <conditionalViewType type="int">0</conditionalViewType>
- <conditionalViewList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixConditionalViewList" itemtype="ixConditionalView"/>
- <enableReleaseConfigAfterRun type="int">0</enableReleaseConfigAfterRun>
- <csvInterval type="int">4</csvInterval>
- <networkFailureThreshold type="int">0</networkFailureThreshold>
- <captureViewOptions ver="[1, [1, [0, [0]]]]" oid="8" type="ixViewOptions">
- <runMode type="int">1</runMode>
- <collectScheme type="int">0</collectScheme>
- <allocatedBufferMemoryPercentage type="long">30</allocatedBufferMemoryPercentage>
- <captureRunAfter type="int">0</captureRunAfter>
- <captureRunDuration type="int">0</captureRunDuration>
- <_apiUniqueId type="int">12941</_apiUniqueId>
- </captureViewOptions>
- <scenarioList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioList" itemtype="ixScenario">
- <item ver="[3, [1, [0, [0]]]]" type="ixScenario">
- <name type="str">TrafficFlow1</name>
- <columnList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixTrafficColumnList" itemtype="ixTrafficColumn">
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Client</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP client</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="14" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">newClientActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">12943</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">HTTP server_newServerActivity1</name>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="0"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="30" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP server</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="6" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">newServerActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="bool">False</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12972</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="str">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12973</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12987</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12988</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="1" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">12984</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12974</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12975</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12976</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12977</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">12978</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">12979</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">12980</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">12981</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">12982</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">12983</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12985</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12986</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">2</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12971</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" oid="9" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
- <_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (152.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="3"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">b2c21c73-bfe3-4fbc-9804-b5a8b307d893</_rangeGroupObjectId>
- <_smPluginObjectId type="str">b85b184d-9bb4-48c2-a029-e633fee7a3c8</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="4"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="5" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="5"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">c4ecfc60-64ac-4dc2-9410-e0f58d84f229</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="6"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">newServerActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[0, [2, [2, [1, [1, [0, [0]]]]]]]" oid="7" type="ixMatchLongestTimeline"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12989</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ref="9"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12970</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="10" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12956</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="3"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="3"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="6"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="6"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12955</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="10"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">newServerActivity1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">0</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">1</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">1</httpVersion>
- <keepAlive type="bool">False</keepAlive>
- <maxPersistentRequests type="int">0</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">:80</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">:443</httpsProxy>
- <browserEmulation type="int">1</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="bool">False</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12948</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12945</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12949</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">HTTP server_newServerActivity1:80</destination>
- <pageObject type="str">/4k.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="bool">False</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12946</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12947</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12950</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12951</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12952</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12953</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">1</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12942</_apiUniqueId>
- <uniqueID type="int">1</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
- <_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (152.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="11"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">aa33a76b-9c7f-48d9-a537-8d6eeec03662</_rangeGroupObjectId>
- <_smPluginObjectId type="str">a916ae0f-0731-405d-ad19-eaade6c515f1</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="12"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="13" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="13"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">865be042-32d5-426a-9e75-0908c943801f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="14"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">newClientActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="15" type="ixTimeline">
- <name type="str">Timeline1</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">20000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">0</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12954</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="15"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12940</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="16" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12926</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="11"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="11"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="14"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="14"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12925</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="16"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">Traffic1@client network_1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">Traffic1</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="27" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">HTTPClient1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">15343</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">Traffic2_HTTPServer1</name>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="17"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="31" type="ixNetTraffic">
- <name type="str">Traffic2@server network_1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">Traffic2</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="22" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">HTTPServer1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="int">0</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15367</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="int">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15368</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15382</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15383</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="18" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">15379</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">1</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15369</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15370</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15371</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">15372</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">15373</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">15374</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">15375</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">15376</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">15377</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">15378</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15380</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15381</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">6</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15366</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network_1</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="19" type="ixNetworkRange">
- <_smRangeObjectId type="str">ba01e944-e779-4a36-b3bd-26d1c3b0ef21</_smRangeObjectId>
- <name type="str">Network Range IP-R8 in server network_1 (192.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="20" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="19"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">389909e0-120c-4ea7-857f-69e5981ba867</_rangeGroupObjectId>
- <_smPluginObjectId type="str">2aa50b07-0df6-4bc2-8fcc-1ebb0f6169b5</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="20"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="21" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="21"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">669af012-d572-439d-9c70-cfbacea0fe7f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="22"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">HTTPServer1</name>
- <enable type="bool">True</enable>
- <timeline ref="7"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15384</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15365</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="23" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15356</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="19"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="19"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="22"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="22"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15355</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="23"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">HTTPServer1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">1</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">3</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">0</httpVersion>
- <keepAlive type="int">0</keepAlive>
- <maxPersistentRequests type="int">1</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">0.0.0.0</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">0.0.0.0</httpsProxy>
- <browserEmulation type="int">3</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="int">0</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15348</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15345</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15349</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">Traffic2_HTTPServer1:80</destination>
- <pageObject type="str">/4k.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="int">0</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15346</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15347</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15350</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15351</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15352</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">15353</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">4</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15342</_apiUniqueId>
- <uniqueID type="int">4</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network_1</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="24" type="ixNetworkRange">
- <_smRangeObjectId type="str">0304987f-176a-4aea-a3cb-c117279fe0ea</_smRangeObjectId>
- <name type="str">Network Range IP-R6 in client network_1 (192.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="25" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="24"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">f020117b-0c7f-4da8-a1ae-0fca36b0caad</_rangeGroupObjectId>
- <_smPluginObjectId type="str">410b3e8d-36a6-41b5-821e-9ee93496ea7a</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="25"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="26" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="26"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">6c1a9dc4-bc8e-48ad-982f-956b0561e947</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="27"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">HTTPClient1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="28" type="ixTimeline">
- <name type="str">Timeline2</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">20000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">3</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15354</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="28"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15341</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="29" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15332</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="24"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="24"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="27"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="27"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15331</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="29"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- </elementList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12922</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">DUT</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12923</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Server</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ref="30"/>
- <item ref="31"/>
- </elementList>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12924</_apiUniqueId>
- </item>
- </columnList>
- <links ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityLinkList" itemtype="ixActivityLink"/>
- <appMixList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixAppMixList" itemtype="ixAppMix"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12921</_apiUniqueId>
- </item>
- </scenarioList>
- <currentUniqueIDForAgent type="int">6</currentUniqueIDForAgent>
- <enableNetworkDiagnostics type="bool">True</enableNetworkDiagnostics>
- <showNetworkDiagnosticsFromApplyConfig type="bool">False</showNetworkDiagnosticsFromApplyConfig>
- <showNetworkDiagnosticsAfterRunStops type="bool">False</showNetworkDiagnosticsAfterRunStops>
- <resetNetworkDiagnosticsAtStartRun type="bool">False</resetNetworkDiagnosticsAtStartRun>
- <enableNetworkDiagnosticsLogging type="bool">False</enableNetworkDiagnosticsLogging>
- <enableTcpAdvancedStats type="bool">False</enableTcpAdvancedStats>
- <enableFrameSizeDistributionStats type="bool">False</enableFrameSizeDistributionStats>
- <isFrameSizeDistributionViewSupported type="bool">False</isFrameSizeDistributionViewSupported>
- <statViewThroughputUnits type="str">Kbps</statViewThroughputUnits>
- <totalUserObjectiveInfoList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixTotalUserObjectiveInfoList" itemtype="ixTotalUserObjectiveInfo"/>
- <activitiesGroupedByObjective type="bool">False</activitiesGroupedByObjective>
- <eventHandlerSettings ver="[0, [1, [0, [0]]]]" type="ixEventHandlerSettings">
- <disabledEventClasses type="str"></disabledEventClasses>
- <disabledPorts type="str"></disabledPorts>
- <_apiUniqueId type="int">12990</_apiUniqueId>
- </eventHandlerSettings>
- <allowMixedObjectiveTypes type="bool">False</allowMixedObjectiveTypes>
- <networkProtocolOptions type="NoneType">None</networkProtocolOptions>
- <seedForRandomBehavior type="int">0</seedForRandomBehavior>
- <csvThroughputScalingFactor type="int">0</csvThroughputScalingFactor>
- <reporterThroughputScalingFactor type="int">0</reporterThroughputScalingFactor>
- <profileDirectory ver="[2, [1, [0, [0]]]]" type="ixProfileDirectory">
- <categoryList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileCategoryList" itemtype="ixProfileCategory">
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Playlist</name>
- <categoryId type="str">playlist</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.Playlist.ixPropertyMap_PlaylistCategory$ixPropertyMap_PlaylistCategory"/>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Random Data</name>
- <categoryId type="str">rdge</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.RandomData.ixPropertyMap_RandomDataCategory$ixPropertyMap_RandomDataCategory">
- <startcore type="int">0</startcore>
- <totalcores type="int">1</totalcores>
- </pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">1</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Real File</name>
- <categoryId type="str">realfile</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">2</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Unified File System</name>
- <categoryId type="str">ufs</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">3</objectID>
- </item>
- </categoryList>
- <_profileMru type="str"></_profileMru>
- </profileDirectory>
- <communityList type="NoneType">None</communityList>
- <autoUpdateAppFlowsToLatest type="bool">True</autoUpdateAppFlowsToLatest>
- <downgradeAppLibFlowsToLatestValidVersion type="bool">True</downgradeAppLibFlowsToLatestValidVersion>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12920</_apiUniqueId>
- <lastStatViewerConfiguration type="str"></lastStatViewerConfiguration>
- <statManagerOptions ver="[1, [1, [0, [0]]]]" type="ixStatManagerOptions">
- <pollingInterval type="int">2</pollingInterval>
- <allowCsvLogging type="bool">False</allowCsvLogging>
- <enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6(ENXS80_17!!8(6J$Z?&lt;9PL'!\;81W;L+P'T!0!(]&amp;.NK*D)2D?6_3?&#10;M.Z0.R[+D!&quot;V01!3?F^&amp;0&gt;AP.T_NPWWC2%A/J!OYM35&gt;TVH&gt;[GL40^^+B'29'&#10;MJ*6T-$53C':K!@1,&gt;&gt;_$I4SZA ^W-10R=^\BA6Z5D%M0AGT;*SG&gt;5X)&quot;@,!X&#10;M,)LN1].EI-[UYHN1!&lt;W^TIQ-B^_/HZ&amp;Y[-]/1AP8S![OS&gt;EHF U-L]9[ C@;&#10;M_*XW)OA'!)R#M$5&gt;A&amp;]K1DT,1+&gt;38+UV_77:/T8&gt;Q0);NAML'7S['K^BK1N0&#10;ME*%E*&amp;5H$\X)MET168+7!3Y:$PB&amp;+^OR$.(4TP4V@V7V N3,2&lt;&quot;PS7*V2Q+A&#10;M0F /KN-@GSNBYS&amp;.?/3BX2%BR&amp;(!P&gt;&gt;$^7%U\G$TRJPOC@0!S2(61BQ;R&lt;?(&#10;M8V[H%&gt;&lt;F2$/K#=HCVG/948AO$%$6;#[&quot;-WO-.*UTS+'KX3EB&amp;2+Z^QXFC*9/&#10;M&quot;33MT^Z&gt;NK&gt;U5\;&quot;KJKN=CME5U&lt;&quot;LE8-3=/5;X\3RW[%&amp;R2[/GPT6(Q:9N6\&#10;M;24&amp;5=-1AWB%8$YBG4[?!.T4'I @40'!&amp;-#&quot;^P(Y;O&quot;1!%%8 %R?W1D]E3]Z&#10;M:B5KX+G89^. ;&quot;(/69@QT$OV[?Z^^F4_O($__9NK'U' ;K[$FSM^Z&lt;8/76G&amp;&#10;MC=_/V'P&quot;&quot;?&gt;/(_CGL?G/L1EO&quot;=@0B\@OQG'EL9N3O)..K,4-&quot;502.&amp;&quot;1 !%;&#10;MR7HK;G^X6K.;7&amp;3@*AG%]%&gt;!A8F+//&lt;GXEOH'JUS2HC-WRV'))*C)MYG'[-.&#10;M8Y0D'N7FF26K 2IW;=CI(2WR8B:?SQ1M,$=Y6^&gt;=:KZWW&amp;: &amp;%X'Y, 9? NK&#10;M#\OE/+/-H^?V@]4ZW5B&lt;,.X^F=_,OKP&lt;64OKB?N1M^.OS^9\VWANS -0O3P8&#10;MR/J]0O8K,4+!OCQ 3-()./0XJ6/ON=4P$G.6U$KX89&gt;(^ +'&gt;HO#PYB]_,4S&#10;M[Q;32ZP'=_WJP2^K9&amp;7YE9F0.YF[&lt;C'AS&amp;;=KF/=T&gt;6ZIF&amp;Y8;20_(+LCMS2&#10;MM':GLUIU.IVZ6),J!^=#@9CR.H'71D&lt;3/G+(N=EGBHEE#CEHR;K&lt;E U=;AO-&#10;M&gt;J/9;-0A'D-O&amp;?5F1VX:;:/&gt;-AH:A-RZOFZUA&gt;N&lt;=6E$(&amp;_&quot;L#/S.&lt;/0]+:L&#10;MZ[+67NKU;H/_*.V6WKIN-V6MT]6R:$^L*OP&amp;&lt;(0#0X+=W/5=+]F1# [(9+-6&#10;M?)$X)SXB^]7U&lt;;HLPZGU4&gt;8:C^5;1GG#4]]Q^('.F3 AQ6@V%*.N*;IQ?33L&#10;M=O737*56N3@?S-Q/,=L%Y'N:I8'548RX&quot;(NE4D:YX&amp;B!/8RHF)NYGT&quot;Y(744&#10;M79-&amp;_5-G.=H%9^E6'W2?()&gt;M&quot;=I(/ -0Z==]I_7;DPG%V%,\RA./6BZ.4ITJ&#10;MS/T&quot;AY!C,,E-&quot;W3#9ZZW$R\EE/(=^_G1LI$G9J-KB&gt; *_&gt;&gt;&amp;UC8'?WJ!3,W-&#10;M3GI+12H*DS,9&quot;N/WY/_&lt;.8$IE QT%O*#K$(@@\#S(&amp;7Q*DXH&amp;C,$'\&quot;)97:*&#10;M51I/,&quot;(^=OC9R7DK7MWE'13P2C]C+]B)&gt;H26NCF%*[U ZN-,40=RHMC;.3=%&#10;M_)*CI/*_Y*M(J78'97E@!Y[I@^)6R,;E'DM9E4X70&lt;3P OGK&lt;F\%N,S-)N39&#10;M8YG)I;CT97B5+B_J+=:E&lt;_&quot;Y:N&amp;Z57+XG5&quot;^\#KOC)1MO8IBC;/CPCJ[I/V'&#10;M^V%6=_/[B&gt;\=Q+O..R:N_QT[Q[K\:*,F2CBV:&quot;G.[[%W/2%DR8=3XK8FO-5R&#10;M%^C:*1Y?96I20!Q,Q%4'V2 ,.L%;[*5W3E58P(76WX27;[- 2,H#&lt;67)76&lt;Y&#10;M- C\E;N.&quot;,I?(/FJ4P!M ,7W2-ZWB,0QQH&lt;GMT^.423*H//CU&lt;'4)JY02 +F&#10;MJEWP&quot;D&gt;:!^=96F7QKYT,E!_7P=LW#'(,-1_Y_]6&amp;,.?SY(_L/QQW_P)K190H&#10; &#10;end&#10;</svConfiguration>
- <svRestConfiguration type="str"></svRestConfiguration>
- </statManagerOptions>
- <currentUniqueIDForAgent type="int">6</currentUniqueIDForAgent>
- <_scenarioElementFactory ver="[0, [1, [0, [0]]]]" type="ixScenarioElementFactory">
- <singletonDict type="dict"/>
- <referenceCountDict type="dict">
- <item>
- <key type="str">qovCoprocessor</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">Impairment</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">asrCoprocessor</key>
- <value type="int">0</value>
- </item>
- </referenceCountDict>
- </_scenarioElementFactory>
- </item>
- </testList>
-</root>
diff --git a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-64K.rxf b/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-64K.rxf
deleted file mode 100644
index 822379f58..000000000
--- a/samples/vnf_samples/traffic_profiles/vfw/HTTP-vFW_IPv4_4Ports-CC-64K.rxf
+++ /dev/null
@@ -1,2392 +0,0 @@
-<?xml version="1.0" ?>
-<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
- <_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;04a56313-c07c-4fae-acc5-e29a816e1311&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1dcd6e1b-17cd-45a1-875a-cbea40d3468c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;b458c333-b4d4-48ef-bd38-3b456f72f8c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;28c0383a-76a7-4750-8162-2ad946ddac97&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;b9a0be2e-3880-4100-9e29-9b474f9301f4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;e0232591-010e-492c-8a28-75e436f4adb2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R1&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R1&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;a916ae0f-0731-405d-ad19-eaade6c515f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R1&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;adb27552-7165-46a3-bc9e-04914adf40ac&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;aa33a76b-9c7f-48d9-a537-8d6eeec03662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;9c6c8594-548e-4ea5-a478-0bfb6252c1ce&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;693c7b7b-327b-4d59-b187-57d7600308e3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;0f6ebdb4-7909-447a-b80a-e132dae33a9b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;7a893f25-0ac6-41c7-ab5a-511c2068582a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fc54eec4-41ef-4b6c-9415-bf639013b52d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;b0ccbeae-9db2-4416-bbed-80dcb2a7a9ed&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;cac5e27f-ec70-45e3-bc6c-7b0ac9e43449&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;newClientActivity1!HTTP server_newServerActivity1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;newClientActivity1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;3&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;df783f7c-615e-47c1-b7f0-1174985ea22e&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;3d3cf9ef-8aab-4388-9252-4baea80122d3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;6c1a9dc4-bc8e-48ad-982f-956b0561e947&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;client network_1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;af65320b-b937-4835-b8c1-510cc79660ac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;0216d80d-55b8-4b3e-a187-6e8536fa5902&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;a645bdf1-8071-4555-b862-9f30729946e7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;6b363dca-4b7b-45f3-a094-50df1f3b6fb7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;0ee36d95-6f82-49e3-aaed-52fada95c460&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;c74e6630-4c22-46a1-bd5a-9a18c361199f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R6&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:C0:10:64:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R6&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;100&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;410b3e8d-36a6-41b5-821e-9ee93496ea7a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R6&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;192.16.100.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;192.16.100.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;2596329041&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;c74e6630-4c22-46a1-bd5a-9a18c361199f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;32278720-9728-4c1e-98a1-c7a41ccf1f83&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;f020117b-0c7f-4da8-a1ae-0fca36b0caad&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;a360ad81-4163-41db-b64f-bc1af27777d5&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;5d8e54de-002f-41c6-aac8-aff822bb0f7e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;8a334019-95aa-49f2-80dd-08bd013b6f6c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;45915d75-f382-4032-821f-233d11a38c11&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-10&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;10429e22-34bc-4ae5-b85f-3089635b6eb0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;7dad7c5d-84ac-4f54-ab59-fd45367fbb53&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;17371506-2053-47a1-9b65-5422bcd36666&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;HTTPClient1!Traffic2_HTTPServer1&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;HTTPClient1Script.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;0&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;2&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot; /&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;424d5c6a-3bd8-4c5f-86af-ad84753fa410&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;076f9c54-cda8-4c68-a9c8-f14550cab1ae&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;1bd9f1bc-9959-464e-b1e8-ddb0bb4d0181&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;4fe8412b-7d4c-4ebe-a0d4-480a4401b3d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;4dfec118-30e8-4494-b7c7-e28518e7848a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;123fecc5-cb5e-43e9-92a1-b053dc56d0f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;35ff711b-53f7-4c74-9e8b-98d35adaa6bf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:98:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;b85b184d-9bb4-48c2-a029-e633fee7a3c8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;152.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;152.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;57fa3f41-7695-42d7-ac26-68924bb1e8bb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;b2c21c73-bfe3-4fbc-9804-b5a8b307d893&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;993e33c6-e1f7-4967-982e-82a032f8c61a&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;36ca84d7-ff44-45b7-b75d-aec38b753161&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;14&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;25c5acdd-9dd3-4802-93b6-b10651820b66&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;6259328b-97c2-4390-8ab1-f16bf3459219&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-4&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;16&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3eedf749-efa4-43a0-87ae-e110a77c88d4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;17&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;284f9992-65d8-4027-a155-709f1965f892&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;18&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;f65f12f2-018c-46f5-a9c5-a1f6f7151909&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;60b1273d-78d3-4813-8cea-ec9a7101b8a3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;669af012-d572-439d-9c70-cfbacea0fe7f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;server network_1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;9280ae7b-1935-4fb1-8a86-522e739d7d13&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;3158f964-1bf1-4ba7-b2d5-a0f2174b233f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;454249a6-64c1-41d4-b0ff-84b288651087&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;3d790b32-9ee7-4e44-b63f-cfab800dea84&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;15&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;c3e18bb9-4bf8-4bfc-a308-6a155469a0ee&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;95df1613-0cfc-45b5-a68e-e06ecd5b6cdf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R8&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:C0:28:28:14:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1500&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R8&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;32&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;0&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;0&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;1&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;2aa50b07-0df6-4bc2-8fcc-1ebb0f6169b5&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R8&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;192.40.40.20&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;24&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;192.40.40.10&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1460&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;463911585&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;95df1613-0cfc-45b5-a68e-e06ecd5b6cdf&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;90089481-45db-46c9-bb9b-639781adbde7&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;389909e0-120c-4ea7-857f-69e5981ba867&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;82f06e5c-e227-4c7b-9b89-c4495858f1c1&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;19&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;b4947db2-ab64-441c-81df-d6961888df99&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30000&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;20&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;76a42df0-2980-40cb-a135-8afd39ffa5a2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;21&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;34244aba-2937-43a8-900b-7821e096b69a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;15&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;1024&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-13&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;22&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;2551de11-5f59-49dc-92be-266b8bf8fe90&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-11&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;23&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;6d9cab2d-989f-4bad-9595-ffefba7bc84a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-5&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;24&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;dd86f951-1b71-4f94-930e-1f690af65f5a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;2dc65e0c-3a5a-4c59-a3a7-d1cf336fa422&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;1f2452bf-e52a-4db2-ba47-e5cc8bf61b5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;145671ff-93a5-4ecc-8c83-59b2c3c67be9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9f07a941-ad2f-46b0-8c75-911862a21039&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a221ab5c-faae-4940-bfad-5d41d44f1427&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d811442b-bfb8-42f0-bbf8-6bdb6fc9b66b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f252cff3-b919-4e74-9f62-9e9c5ab5d324&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;500dfc8b-2e6a-401f-84c0-f6907f60c00e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;693cb176-f3d8-4073-8a02-fabdc0bdd3fb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ec983bf9-07f0-46b2-99a0-354114f42501&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5d0f0eb8-40af-4292-8ff2-a57e7903601d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;653fae09-ba19-443c-8f8b-9483c0b86b9a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c886be8c-c207-4bb4-90d5-17be54556d58&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;00e75214-5166-406b-90e5-2b83567ae5cf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;50d10ee7-45ce-46d2-ae8d-ecd3b1806067&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c2f310a4-6ea4-4459-be3b-f3b3365c590a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7e458bed-5e36-42d6-812d-3794be52766e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7d225fda-6432-4de3-9750-c19bbc957703&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e25dd669-ffc5-493d-a2b5-fd5627bf2ee8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7ac0b7d4-6df9-4e1f-86d2-f0a494b3f20b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;25699a2c-ab22-417b-9072-894523e98008&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;482a10c3-0ac7-44d9-9fa9-b43ba3a9901d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0f03753-923d-4421-8c4f-0ed78f00fc44&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;fb5cd68e-b4b0-4fd4-ae18-4100c0035642&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;62677b6a-080e-4cc3-919b-71fa90ae410f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2e0fd6e3-470e-48df-ab8d-cc21b9d80393&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;175f3104-0d2a-44f9-b712-fed3b170f8cb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d1f37e1e-db44-4bac-acb8-b242dee8e371&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;61ccdebc-84e6-464d-be14-2b3ddedab9d2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d0678cd8-998e-42ab-8f0d-bfcb5370eac2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d8350364-51c6-4a1b-af9f-72c9c235a636&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;613d02a1-db1e-415d-b4bb-8b73b4477cf4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a41f718-b55e-44c7-a0cc-b1fcf8204c20&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4c26fe62-a63d-4c40-8e15-c58ad8fba8d0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5c2ca63f-3335-4ab7-963e-440817448538&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;51a5eccc-a68d-4730-8a48-32019c547c28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3010c4ad-f31e-4676-9e61-bb25cf9c1bbb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;ef1677e4-f390-4a78-b61a-f7650cf5faea&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24322b98-7a2a-4d2d-a4ee-4cde0f0e8b64&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c648ad96-ef63-4c6d-b77e-586fece09b3b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6804ae67-3bd7-471b-8796-ee1e4773c2f1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;a3559674-8d95-4020-90b3-b42eacaef105&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7efcd429-2c48-41bd-bdc5-489dbfcfc49a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;a63d8276-65bc-4bc2-8202-6461c6399ef9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;1d9bf537-0c3d-4fdf-9b85-0a622cc77649&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;09d7b134-2921-4759-bbdb-ff3a5a1966d7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0cd9f099-242e-4b03-965f-d343c60181e6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;3011c8a8-a9fd-4b76-a27d-91948113ed4f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;503aa008-2481-419f-a223-c90b2c25c17e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;0b8d2c01-19ac-4f28-924e-660676d978da&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;f91c9f52-8150-4d0f-b657-498ed241835c&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;41c694b3-bb55-48fe-9604-8b003540242f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;dc4d759f-e4ac-4498-9296-92fd26a83bf9&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;0304987f-176a-4aea-a3cb-c117279fe0ea&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;3b496ea9-e90a-48e5-b01a-adfeb9940e5e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;72bbb3e6-5bae-448e-bcda-ba87a76fa477&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;ba01e944-e779-4a36-b3bd-26d1c3b0ef21&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;7c3ea465-5392-4894-b8a4-0138f48acf8e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;a9c7aa59-e015-4ffd-bb82-5d877ae9c1a8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;34a78d72-1fc5-4875-9fe1-b4db66b1b4c4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;1e24447f-69f1-4030-8b2d-25a18c7160ca&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;669af012-d572-439d-9c70-cfbacea0fe7f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;c4ecfc60-64ac-4dc2-9410-e0f58d84f229&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;865be042-32d5-426a-9e75-0908c943801f&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;6c1a9dc4-bc8e-48ad-982f-956b0561e947&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairSessionData type=&quot;Ixia.Aptixia.StackManager.ImpairSessionData&quot; objectid=&quot;94b53c2c-0747-41c2-838d-0e0e15f31766&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;profiles type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ImpairProfile type=&quot;Ixia.Aptixia.StackManager.ImpairProfile&quot; objectid=&quot;90dd3511-93c1-49fa-8e38-db774db9fe17&quot; version=&quot;6.70.13&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DefaultProfile&lt;/name&gt;&#13;&#10; &lt;defaultp type=&quot;Bool&quot;&gt;1&lt;/defaultp&gt;&#13;&#10; &lt;seed type=&quot;Int&quot;&gt;0&lt;/seed&gt;&#13;&#10; &lt;addDelay type=&quot;Bool&quot;&gt;1&lt;/addDelay&gt;&#13;&#10; &lt;delay type=&quot;Int&quot;&gt;20&lt;/delay&gt;&#13;&#10; &lt;jitter type=&quot;Int&quot;&gt;0&lt;/jitter&gt;&#13;&#10; &lt;addDrop type=&quot;Bool&quot;&gt;0&lt;/addDrop&gt;&#13;&#10; &lt;drop type=&quot;Double&quot;&gt;10&lt;/drop&gt;&#13;&#10; &lt;addDropSequence type=&quot;Bool&quot;&gt;0&lt;/addDropSequence&gt;&#13;&#10; &lt;dropSequenceSkip type=&quot;Int&quot;&gt;10&lt;/dropSequenceSkip&gt;&#13;&#10; &lt;dropSequenceLength type=&quot;Int&quot;&gt;1&lt;/dropSequenceLength&gt;&#13;&#10; &lt;addReorder type=&quot;Bool&quot;&gt;0&lt;/addReorder&gt;&#13;&#10; &lt;gap type=&quot;Int&quot;&gt;10&lt;/gap&gt;&#13;&#10; &lt;reorder type=&quot;Int&quot;&gt;20&lt;/reorder&gt;&#13;&#10; &lt;reorderLength type=&quot;Int&quot;&gt;1&lt;/reorderLength&gt;&#13;&#10; &lt;addReorderPI type=&quot;Bool&quot;&gt;0&lt;/addReorderPI&gt;&#13;&#10; &lt;reorderPISkip type=&quot;Int&quot;&gt;10&lt;/reorderPISkip&gt;&#13;&#10; &lt;reorderPILength type=&quot;Int&quot;&gt;1&lt;/reorderPILength&gt;&#13;&#10; &lt;reorderPIInterval type=&quot;Int&quot;&gt;1&lt;/reorderPIInterval&gt;&#13;&#10; &lt;reorderPITimeout type=&quot;Int&quot;&gt;1000&lt;/reorderPITimeout&gt;&#13;&#10; &lt;addDuplicate type=&quot;Bool&quot;&gt;0&lt;/addDuplicate&gt;&#13;&#10; &lt;duplicate type=&quot;Double&quot;&gt;10&lt;/duplicate&gt;&#13;&#10; &lt;addFragment type=&quot;Bool&quot;&gt;0&lt;/addFragment&gt;&#13;&#10; &lt;fragment type=&quot;Double&quot;&gt;10&lt;/fragment&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1000&lt;/mtu&gt;&#13;&#10; &lt;addFragmentSequence type=&quot;Bool&quot;&gt;0&lt;/addFragmentSequence&gt;&#13;&#10; &lt;fragmentSequenceSkip type=&quot;Int&quot;&gt;10&lt;/fragmentSequenceSkip&gt;&#13;&#10; &lt;fragmentSequenceLength type=&quot;Int&quot;&gt;1&lt;/fragmentSequenceLength&gt;&#13;&#10; &lt;mtuSequence type=&quot;Int&quot;&gt;1000&lt;/mtuSequence&gt;&#13;&#10; &lt;sendFragmentsInReverseOrder type=&quot;Bool&quot;&gt;0&lt;/sendFragmentsInReverseOrder&gt;&#13;&#10; &lt;sendFirstFragmentOnly type=&quot;Bool&quot;&gt;0&lt;/sendFirstFragmentOnly&gt;&#13;&#10; &lt;sendOverlappingFragments type=&quot;Bool&quot;&gt;0&lt;/sendOverlappingFragments&gt;&#13;&#10; &lt;addBandwidth type=&quot;Bool&quot;&gt;0&lt;/addBandwidth&gt;&#13;&#10; &lt;bandwidth type=&quot;Double&quot;&gt;1&lt;/bandwidth&gt;&#13;&#10; &lt;bandwidthUnits type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnits&gt;&#13;&#10; &lt;addBandwidthIn type=&quot;Bool&quot;&gt;0&lt;/addBandwidthIn&gt;&#13;&#10; &lt;bandwidthIn type=&quot;Double&quot;&gt;1&lt;/bandwidthIn&gt;&#13;&#10; &lt;bandwidthUnitsIn type=&quot;String&quot;&gt;mbps&lt;/bandwidthUnitsIn&gt;&#13;&#10; &lt;destinationIp type=&quot;String&quot;&gt;any&lt;/destinationIp&gt;&#13;&#10; &lt;sourceIp type=&quot;String&quot;&gt;any&lt;/sourceIp&gt;&#13;&#10; &lt;sourcePort type=&quot;Int&quot;&gt;0&lt;/sourcePort&gt;&#13;&#10; &lt;destinationPort type=&quot;Int&quot;&gt;0&lt;/destinationPort&gt;&#13;&#10; &lt;protocol type=&quot;String&quot;&gt;any&lt;/protocol&gt;&#13;&#10; &lt;typeOfService type=&quot;String&quot;&gt;any&lt;/typeOfService&gt;&#13;&#10; &lt;addTcpFlagsFilter type=&quot;Bool&quot;&gt;0&lt;/addTcpFlagsFilter&gt;&#13;&#10; &lt;selectTcpFlags type=&quot;String&quot;&gt;SYN;RST;ACK&lt;/selectTcpFlags&gt;&#13;&#10; &lt;expectTcpFlags type=&quot;String&quot;&gt;SYN&lt;/expectTcpFlags&gt;&#13;&#10; &lt;impairOrder type=&quot;String&quot;&gt;Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth&lt;/impairOrder&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairProfile&gt;&#13;&#10; &lt;/profiles&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ImpairSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;bd2f0ea4-4278-49c8-9600-18cd2c8ed639&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;1bacc8a0-dda0-4e0c-b013-4d8618dc80b6&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;2e324324-bf74-4ad3-afbb-62e44f01c31a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;f3dc4ef0-e9a1-48a2-b69f-c5d2b485e897&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;7256ce27-286c-475d-b198-09b4ae306f73&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
- </_smSessionXml>
- <_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
- <xml type="str"></xml>
- </_composerConfig>
- <_quickTestConfig ver="[0, [1, [0, [0]]]]" type="ixQuickTestConfig">
- <xml type="str">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&#13;&#10;&lt;Config&gt;&#13;&#10; &lt;configs Version=&quot;5.0&quot; /&gt;&#13;&#10;&lt;/Config&gt;</xml>
- </_quickTestConfig>
- <lastApiUniqueId type="int">15385</lastApiUniqueId>
- <version type="str">8.20.0.273</version>
- <name type="str">HTTP-vFW_IPv4_4Ports-CC-64K.rxf</name>
- <comment type="str"></comment>
- <path type="str">F:\IXIA-TESTS</path>
- <last type="str">HTTP-vFW_IPv4_4Ports-CC-1B.rxf</last>
- <activeTest type="str">Test1</activeTest>
- <chassisChain ver="[2, [1, [0, [0]]]]" oid="2" type="ixChassisChain">
- <chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis"/>
- <_apiUniqueId type="int">12991</_apiUniqueId>
- <chassisMap type="dict"/>
- <hiddenChassis type="NoneType">None</hiddenChassis>
- </chassisChain>
- <AfmPortPacketRewriteConfigList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAfmPortPacketRewriteConfigList" itemtype="ixAfmPortPacketRewriteConfig"/>
- <networkList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixRepositoryNetworkList" itemtype="ixNullNetwork"/>
- <dutList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixDutList" itemtype="ixDut"/>
- <trafficList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTrafficList" itemtype="ixActivityModel"/>
- <testList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTestList" itemtype="ixTestEnvelope">
- <item ver="[18, [1, [0, [0]]]]" type="ixTestEnvelope">
- <name type="str">Test1</name>
- <comment type="str"></comment>
- <enableForceOwnership type="bool">False</enableForceOwnership>
- <enableResetPorts type="bool">False</enableResetPorts>
- <statsRequired type="int">1</statsRequired>
- <enableConditionalView type="bool">False</enableConditionalView>
- <conditionalViewType type="int">0</conditionalViewType>
- <conditionalViewList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixConditionalViewList" itemtype="ixConditionalView"/>
- <enableReleaseConfigAfterRun type="int">0</enableReleaseConfigAfterRun>
- <csvInterval type="int">4</csvInterval>
- <networkFailureThreshold type="int">0</networkFailureThreshold>
- <captureViewOptions ver="[1, [1, [0, [0]]]]" oid="8" type="ixViewOptions">
- <runMode type="int">1</runMode>
- <collectScheme type="int">0</collectScheme>
- <allocatedBufferMemoryPercentage type="long">30</allocatedBufferMemoryPercentage>
- <captureRunAfter type="int">0</captureRunAfter>
- <captureRunDuration type="int">0</captureRunDuration>
- <_apiUniqueId type="int">12941</_apiUniqueId>
- </captureViewOptions>
- <scenarioList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioList" itemtype="ixScenario">
- <item ver="[3, [1, [0, [0]]]]" type="ixScenario">
- <name type="str">TrafficFlow1</name>
- <columnList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixTrafficColumnList" itemtype="ixTrafficColumn">
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Client</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="0" type="ixNetTraffic">
- <name type="str">HTTP client@client network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP client</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="14" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">newClientActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">12943</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">HTTP server_newServerActivity1</name>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="0"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="30" type="ixNetTraffic">
- <name type="str">HTTP server@server network</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">HTTP server</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="6" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">newServerActivity1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="bool">False</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12972</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="str">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12973</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12987</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12988</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="1" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2014/11/22 07:27:01</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2005/03/04 21:55:04</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2005/02/02 21:55:04</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">12984</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12974</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12975</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12976</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12977</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">12978</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">12979</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">12980</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">12981</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">12982</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="1"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">3</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">12983</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12985</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12986</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">2</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12971</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" oid="9" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="3" type="ixNetworkRange">
- <_smRangeObjectId type="str">1d9bf537-0c3d-4fdf-9b85-0a622cc77649</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in server network (152.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="4" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="3"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">b2c21c73-bfe3-4fbc-9804-b5a8b307d893</_rangeGroupObjectId>
- <_smPluginObjectId type="str">b85b184d-9bb4-48c2-a029-e633fee7a3c8</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="4"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="5" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="5"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">c4ecfc60-64ac-4dc2-9410-e0f58d84f229</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="6"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">newServerActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[0, [2, [2, [1, [1, [0, [0]]]]]]]" oid="7" type="ixMatchLongestTimeline"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12989</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ref="9"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12970</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="10" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12956</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="3"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="3"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="6"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="6"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12955</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="10"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">newServerActivity1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">0</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">1</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">1</httpVersion>
- <keepAlive type="bool">False</keepAlive>
- <maxPersistentRequests type="int">0</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">:80</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">:443</httpsProxy>
- <browserEmulation type="int">1</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="bool">False</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12948</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12945</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12949</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">HTTP server_newServerActivity1:80</destination>
- <pageObject type="str">/64k.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="bool">False</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12946</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12947</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12950</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12951</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12952</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">12953</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">1</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12942</_apiUniqueId>
- <uniqueID type="int">1</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="11" type="ixNetworkRange">
- <_smRangeObjectId type="str">a3559674-8d95-4020-90b3-b42eacaef105</_smRangeObjectId>
- <name type="str">Network Range IP-R1 in client network (152.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="12" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="11"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">aa33a76b-9c7f-48d9-a537-8d6eeec03662</_rangeGroupObjectId>
- <_smPluginObjectId type="str">a916ae0f-0731-405d-ad19-eaade6c515f1</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="12"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="13" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="13"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">865be042-32d5-426a-9e75-0908c943801f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="14"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">newClientActivity1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="15" type="ixTimeline">
- <name type="str">Timeline1</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">20000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">0</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12954</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="15"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">12940</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="16" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">12926</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="11"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="11"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="14"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="14"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portMesh</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12925</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="16"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="17" type="ixNetTraffic">
- <name type="str">Traffic1@client network_1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Client</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Client</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">Traffic1</name>
- <role type="str">Client</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[33, [0, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]], [5, [0, [0, [6, [1, [0, [0]]]]], [0, [0]]]]]" oid="27" type="HTTP_Client_plugin">
- <enable type="int">1</enable>
- <name type="str">HTTPClient1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool ver="[0, [1, [0, [0]]]]" type="ixCommandPercentagePool">
- <seed type="int">1</seed>
- <percentageCommandList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandPercentageInfoList" itemtype="ixCommandPercentageInfo"/>
- <_apiUniqueId type="int">15343</_apiUniqueId>
- </cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">Traffic2_HTTPServer1</name>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">portPairs</item>
- <item type="str">portMesh</item>
- <item type="str">customMesh</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="17"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="31" type="ixNetTraffic">
- <name type="str">Traffic2@server network_1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="int">1</enable>
- <role type="str">Server</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Server</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">Traffic2</name>
- <role type="str">Server</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[17, [0, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]], [2, [0, [0, [6, [1, [0, [0]]]], [0]], [0, [0]]]]]" oid="22" type="HTTP_Server_plugin">
- <enable type="int">1</enable>
- <name type="str">HTTPServer1</name>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="NoneType">None</activeRole>
- <loopValue type="int">1</loopValue>
- <cmdListLoops type="int">0</cmdListLoops>
- <cmdPercentagePool type="NoneType">None</cmdPercentagePool>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <httpPort type="str">80</httpPort>
- <httpsPort type="str">443</httpsPort>
- <requestTimeout type="int">300</requestTimeout>
- <minResponseDelay type="int">0</minResponseDelay>
- <maxResponseDelay type="int">0</maxResponseDelay>
- <acceptSslConnections type="int">0</acceptSslConnections>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <urlStatsCount type="int">10</urlStatsCount>
- <rstTimeout type="int">100</rstTimeout>
- <enableEsm type="int">0</enableEsm>
- <esm type="int">1460</esm>
- <enableTos type="int">0</enableTos>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableIntegrityCheck type="int">0</enableIntegrityCheck>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <enablePerServerPerURLstat type="int">0</enablePerServerPerURLstat>
- <responseHeaderList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixResponseHeaderList" itemtype="ixResponseHeader">
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15367</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixResponseHeader">
- <name type="str">404_PageNotFound</name>
- <description type="str">Page not found</description>
- <code type="int">404</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15368</_apiUniqueId>
- </item>
- </responseHeaderList>
- <cookieList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieList" itemtype="ixCookieObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">UserCookie</name>
- <description type="str">Name of User</description>
- <type type="int">2</type>
- <mode type="int">3</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">firstName</name>
- <value type="str">Joe</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">lastName</name>
- <value type="str">Smith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15382</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieObject">
- <name type="str">LoginCookie</name>
- <description type="str">Login name and password</description>
- <type type="int">2</type>
- <mode type="int">2</mode>
- <cookieContentList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCookieContentList" itemtype="ixCookieContent">
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">name</name>
- <value type="str">joesmith</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCookieContent">
- <name type="str">password</name>
- <value type="str">foobar</value>
- <path type="str"></path>
- <maxAge type="str"></maxAge>
- <domain type="str"></domain>
- <other type="str"></other>
- <objectID type="int">1</objectID>
- </item>
- </cookieContentList>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15383</_apiUniqueId>
- </item>
- </cookieList>
- <webPageList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWebPageList" itemtype="ixWebPageObject">
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1b.html</page>
- <response ver="[0, [1, [0, [0]]]]" oid="18" type="ixResponseHeader">
- <name type="str">200_OK</name>
- <description type="str">OK</description>
- <code type="str">200</code>
- <mimeType type="str">text/plain</mimeType>
- <dateMode type="int">2</dateMode>
- <dateTimeValue type="str">2017/03/02 08:39:07</dateTimeValue>
- <dateIncrementEnable type="bool">False</dateIncrementEnable>
- <dateIncrementBy type="int">5</dateIncrementBy>
- <dateIncrementFor type="int">1</dateIncrementFor>
- <dateZone type="str">GMT</dateZone>
- <expirationMode type="int">0</expirationMode>
- <expirationDateTimeValue type="str">2017/04/01 08:39:07</expirationDateTimeValue>
- <expirationAfterRequestValue type="int">3600</expirationAfterRequestValue>
- <expirationAfterLastModifiedValue type="int">3600</expirationAfterLastModifiedValue>
- <lastModifiedMode type="int">1</lastModifiedMode>
- <lastModifiedDateTimeValue type="str">2017/03/02 08:39:07</lastModifiedDateTimeValue>
- <lastModifiedIncrementEnable type="bool">False</lastModifiedIncrementEnable>
- <lastModifiedIncrementBy type="int">5</lastModifiedIncrementBy>
- <lastModifiedIncrementFor type="int">1</lastModifiedIncrementFor>
- <responseList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpResponseList" itemtype="_httpResponseString"/>
- <readOnly type="bool">True</readOnly>
- <enableCustomPutResponse type="bool">False</enableCustomPutResponse>
- <_apiUniqueId type="int">15379</_apiUniqueId>
- </response>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1-1</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">1</chunkSize>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15369</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/4k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">4096-4096</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15370</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/8k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">8192-8192</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15371</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/16k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">16536-16536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">15372</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/32k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">32768</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">4</objectID>
- <_apiUniqueId type="int">15373</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/64k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">65536</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">5</objectID>
- <_apiUniqueId type="int">15374</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/128k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">131072</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">15375</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/256k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">262144</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">7</objectID>
- <_apiUniqueId type="int">15376</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/512k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">524288</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">8</objectID>
- <_apiUniqueId type="int">15377</_apiUniqueId>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixWebPageObject">
- <page type="str">/1024k.html</page>
- <response ref="18"/>
- <payloadType type="str">range</payloadType>
- <payloadSize type="str">1048576</payloadSize>
- <payloadFile type="str">&lt;specify file&gt;</payloadFile>
- <cookie type="NoneType">None</cookie>
- <customPayloadId type="int">-1</customPayloadId>
- <Md5Option type="int">0</Md5Option>
- <chunkSize type="str">512-1024</chunkSize>
- <objectID type="int">9</objectID>
- <_apiUniqueId type="int">15378</_apiUniqueId>
- </item>
- </webPageList>
- <ServerCiphers type="str">DEFAULT</ServerCiphers>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <enableDHsupport type="int">0</enableDHsupport>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <dhParams type="str"></dhParams>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <docrootfile type="str"></docrootfile>
- <customPayloadList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixCustomPayloadList" itemtype="ixCustomPayloadObject">
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">0</id>
- <name type="str">AsciiCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">0</payloadmode>
- <asciiPayloadValue type="str">Ixia-Ixload-Http-Server-Custom-Payload</asciiPayloadValue>
- <hexPayloadValue type="str"></hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15380</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixCustomPayloadObject">
- <id type="int">1</id>
- <name type="str">HexCustomPayload</name>
- <payloadPosition type="str">Start With</payloadPosition>
- <payloadmode type="int">1</payloadmode>
- <asciiPayloadValue type="str"></asciiPayloadValue>
- <hexPayloadValue type="str">49 78 69 61 2d 49 78 6c 6f 61 64 2d 48 74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64</hexPayloadValue>
- <repeat type="int">0</repeat>
- <offset type="int">1</offset>
- <readOnly type="bool">True</readOnly>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15381</_apiUniqueId>
- </item>
- </customPayloadList>
- <enableMD5Checksum type="bool">False</enableMD5Checksum>
- <integrityCheckOption type="str">Custom MD5</integrityCheckOption>
- <uniqueID type="int">6</uniqueID>
- <enableChunkEncoding type="bool">False</enableChunkEncoding>
- <docrootChunkSize type="str">512-1024</docrootChunkSize>
- <urlPageSize type="int">1024</urlPageSize>
- <enableChunkedRequest type="bool">False</enableChunkedRequest>
- <enableNewSslSupport type="bool">False</enableNewSslSupport>
- <enableHTTP2 type="bool">False</enableHTTP2>
- <dontExpectUpgrade type="bool">False</dontExpectUpgrade>
- <disableMacValidation type="int">0</disableMacValidation>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15366</_apiUniqueId>
- <commandIdCounter type="int">0</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">server network_1</name>
- <role type="str">Server</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="19" type="ixNetworkRange">
- <_smRangeObjectId type="str">ba01e944-e779-4a36-b3bd-26d1c3b0ef21</_smRangeObjectId>
- <name type="str">Network Range IP-R8 in server network_1 (192.40.40.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="20" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12961</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="19"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">389909e0-120c-4ea7-857f-69e5981ba867</_rangeGroupObjectId>
- <_smPluginObjectId type="str">2aa50b07-0df6-4bc2-8fcc-1ebb0f6169b5</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="20"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="21" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="21"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">669af012-d572-439d-9c70-cfbacea0fe7f</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="22"/>
- <protocolAndType type="str">HTTP Server</protocolAndType>
- <name type="str">HTTPServer1</name>
- <enable type="bool">True</enable>
- <timeline ref="7"/>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Server</role>
- <activeRole type="str">Server</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15384</_apiUniqueId>
- <_objectiveValue type="int">100</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="7"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15365</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="23" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15356</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="19"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="19"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="22"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="22"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Server</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Server</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">620</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15355</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="23"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">HTTPServer1</destinationAgentName>
- <portRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixIntRangeList" itemtype="ixIntRange">
- <item ver="[1, [1, [0, [0]]]]" type="ixIntRange">
- <intRange type="str">80</intRange>
- <objectID type="int">0</objectID>
- <iStartingValue type="int">80</iStartingValue>
- <iCount type="int">1</iCount>
- </item>
- </portRangeList>
- <count type="int">1</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <maxSessions type="int">3</maxSessions>
- <maxStreams type="int">1</maxStreams>
- <dontUseUpgrade type="int">0</dontUseUpgrade>
- <httpVersion type="int">0</httpVersion>
- <keepAlive type="int">0</keepAlive>
- <maxPersistentRequests type="int">1</maxPersistentRequests>
- <followHttpRedirects type="int">0</followHttpRedirects>
- <enableCookieSupport type="int">0</enableCookieSupport>
- <maxPipeline type="int">1</maxPipeline>
- <urlStatsCount type="int">10</urlStatsCount>
- <enableHttpProxy type="int">0</enableHttpProxy>
- <httpProxy type="str">0.0.0.0</httpProxy>
- <enableHttpsProxy type="int">0</enableHttpsProxy>
- <httpsProxy type="str">0.0.0.0</httpsProxy>
- <browserEmulation type="int">3</browserEmulation>
- <browserEmulationName type="str">Custom1</browserEmulationName>
- <enableSsl type="int">0</enableSsl>
- <sslVersion type="int">3</sslVersion>
- <sslReuseMethod type="int">0</sslReuseMethod>
- <sequentialSessionReuse type="int">0</sequentialSessionReuse>
- <enablesslRecordSize type="int">0</enablesslRecordSize>
- <validateCertificate type="int">0</validateCertificate>
- <sslRecordSize type="str">16384</sslRecordSize>
- <enableSslSendCloseNotify type="int">0</enableSslSendCloseNotify>
- <enableUnidirectionalClose type="int">0</enableUnidirectionalClose>
- <privateKeyPassword type="str"></privateKeyPassword>
- <privateKey type="str"></privateKey>
- <certificate type="str"></certificate>
- <caCert type="str"></caCert>
- <clientCiphers type="str">DEFAULT</clientCiphers>
- <enableEsm type="int">0</enableEsm>
- <enablePerConnCookieSupport type="int">0</enablePerConnCookieSupport>
- <perHeaderPercentDist type="int">0</perHeaderPercentDist>
- <enablemetaRedirectSupport type="int">0</enablemetaRedirectSupport>
- <esm type="int">1460</esm>
- <enableVlanPriority type="int">0</enableVlanPriority>
- <vlanPriority type="int">0</vlanPriority>
- <enableTos type="int">0</enableTos>
- <tos type="int">0</tos>
- <precedenceTOS type="int">0</precedenceTOS>
- <delayTOS type="int">0</delayTOS>
- <throughputTOS type="int">0</throughputTOS>
- <reliabilityTOS type="int">0</reliabilityTOS>
- <commandTimeout type="int">600</commandTimeout>
- <commandTimeout_ms type="int">0</commandTimeout_ms>
- <enableConsecutiveIpsPerSession type="int">0</enableConsecutiveIpsPerSession>
- <enableAchieveCCFirst type="int">0</enableAchieveCCFirst>
- <enableTrafficDistributionForCC type="int">0</enableTrafficDistributionForCC>
- <contentLengthDeviationTolerance type="int">0</contentLengthDeviationTolerance>
- <actionList ver="[1, [1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixHttpCommandList" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStartCommand">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">1</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15348</_apiUniqueId>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15345</_apiUniqueId>
- </item>
- <item ver="[0, [0, [2, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]" type="ixHttpCommand">
- <commandId type="int">1</commandId>
- <commandType type="str">GET</commandType>
- <cmdName type="str">Get 1</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15349</_apiUniqueId>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- <destination type="str">Traffic2_HTTPServer1:80</destination>
- <pageObject type="str">/64k.html</pageObject>
- <abort type="str">None</abort>
- <arguments type="str"></arguments>
- <namevalueargs type="str"></namevalueargs>
- <profile type="int">-1</profile>
- <enableDi type="int">0</enableDi>
- <sendMD5ChkSumHeader type="int">0</sendMD5ChkSumHeader>
- <sendingChunkSize type="str">None</sendingChunkSize>
- <sslProfile type="int">-1</sslProfile>
- <method type="int">-1</method>
- <useSsl type="int">0</useSsl>
- <windowSize type="str">65536</windowSize>
- <streamIden type="int">3</streamIden>
- <pingFreq type="int">10</pingFreq>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15346</_apiUniqueId>
- </item>
- <item ver="[0, [0, [0, [0, [1, [0, [0]]]]]]]" type="ixStopCommand">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15347</_apiUniqueId>
- </item>
- </actionList>
- <headerList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixwebHttpHeaderList" itemtype="_httpHeaderString">
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept: */*</data>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15350</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Language: en-us</data>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15351</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">Accept-Encoding: gzip, deflate</data>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15352</_apiUniqueId>
- </item>
- <item ver="[1, [0, [0, [0], [0], [0]]], [1, [0, [0]]]]" type="_httpHeaderString">
- <data type="str">User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)</data>
- <objectID type="int">3</objectID>
- <_apiUniqueId type="int">15353</_apiUniqueId>
- </item>
- </headerList>
- <profileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandProfileList" itemtype="ixHttpCommandProfile"/>
- <sslProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixHttpCommandSSLProfileList" itemtype="ixHttpCommandSSLProfile"/>
- <cookieJarSize type="int">10</cookieJarSize>
- <cookieRejectProbability type="float">0.0</cookieRejectProbability>
- <ipPreference type="int">2</ipPreference>
- <tcpCloseOption type="int">0</tcpCloseOption>
- <piggybackAck type="int">1</piggybackAck>
- <enableLargeHeader type="int">0</enableLargeHeader>
- <maxHeaderLen type="int">1024</maxHeaderLen>
- <useAllIPs type="int">0</useAllIPs>
- <enableDecompressSupport type="int">0</enableDecompressSupport>
- <enableIntegrityCheckSupport type="int">0</enableIntegrityCheckSupport>
- <enableCRCCheckSupport type="int">0</enableCRCCheckSupport>
- <uniqueID type="int">4</uniqueID>
- <disableDnsResolutionCache type="int">0</disableDnsResolutionCache>
- <methodProfileList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixMethodProfileList" itemtype="ixMethodProfile"/>
- <httpsTunnel type="str">0.0.0.0</httpsTunnel>
- <enableHttpsTunnel type="int">0</enableHttpsTunnel>
- <exactTransactions type="int">0</exactTransactions>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15342</_apiUniqueId>
- <uniqueID type="int">4</uniqueID>
- <commandIdCounter type="int">1</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">HTTP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">client network_1</name>
- <role type="str">Client</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="2"/>
- <cardType type="str">FLEXAP1040SQ</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="24" type="ixNetworkRange">
- <_smRangeObjectId type="str">0304987f-176a-4aea-a3cb-c117279fe0ea</_smRangeObjectId>
- <name type="str">Network Range IP-R6 in client network_1 (192.16.100.20+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="25" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12931</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="24"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">f020117b-0c7f-4da8-a1ae-0fca36b0caad</_rangeGroupObjectId>
- <_smPluginObjectId type="str">410b3e8d-36a6-41b5-821e-9ee93496ea7a</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="25"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.255.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="26" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">7200</keepAliveInterval>
- <keepAliveProbes type="int">75</keepAliveProbes>
- <keepAliveTime type="int">9</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">15</retransmitRetries>
- <transmitBuffer type="int">1024</transmitBuffer>
- <receiveBuffer type="int">1024</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="26"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">True</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">6c1a9dc4-bc8e-48ad-982f-956b0561e947</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="27"/>
- <protocolAndType type="str">HTTP Client</protocolAndType>
- <name type="str">HTTPClient1</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="28" type="ixTimeline">
- <name type="str">Timeline2</name>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">20000</rampDownValue>
- <timelineType type="int">0</timelineType>
- <objectID type="int">3</objectID>
- </timeline>
- <customParameters type="NoneType">None</customParameters>
- <role type="str">Client</role>
- <activeRole type="str">Client</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <constraintType type="NoneType">None</constraintType>
- <constraintValue type="int">100</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">False</enableConstraint>
- <secondaryConstraintType type="NoneType">None</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15354</_apiUniqueId>
- <_objectiveValue type="int">64512</_objectiveValue>
- <timelineScale type="float">1.0</timelineScale>
- </item>
- </activityParameters>
- <timeline ref="28"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="8"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="_portListSequenceContainer" itemtype="ixConfig"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15341</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="29" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15332</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="24"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="24"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="27"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="27"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">HTTP Client</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">HTTP Client</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">600</sustainTime>
- <iterationTime type="int">620</iterationTime>
- <totalTime type="int">620</totalTime>
- <portMapPolicy type="str">portPairs</portMapPolicy>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">64512</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">20000</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">concurrentConnections</userObjectiveType>
- <userObjectiveValue type="long">64512</userObjectiveValue>
- <totalUserObjectiveValue type="long">64512</totalUserObjectiveValue>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">15331</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="29"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- </elementList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12922</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">DUT</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">12923</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Server</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ref="30"/>
- <item ref="31"/>
- </elementList>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">12924</_apiUniqueId>
- </item>
- </columnList>
- <links ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityLinkList" itemtype="ixActivityLink"/>
- <appMixList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixAppMixList" itemtype="ixAppMix"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12921</_apiUniqueId>
- </item>
- </scenarioList>
- <currentUniqueIDForAgent type="int">6</currentUniqueIDForAgent>
- <enableNetworkDiagnostics type="bool">True</enableNetworkDiagnostics>
- <showNetworkDiagnosticsFromApplyConfig type="bool">False</showNetworkDiagnosticsFromApplyConfig>
- <showNetworkDiagnosticsAfterRunStops type="bool">False</showNetworkDiagnosticsAfterRunStops>
- <resetNetworkDiagnosticsAtStartRun type="bool">False</resetNetworkDiagnosticsAtStartRun>
- <enableNetworkDiagnosticsLogging type="bool">False</enableNetworkDiagnosticsLogging>
- <enableTcpAdvancedStats type="bool">False</enableTcpAdvancedStats>
- <enableFrameSizeDistributionStats type="bool">False</enableFrameSizeDistributionStats>
- <isFrameSizeDistributionViewSupported type="bool">False</isFrameSizeDistributionViewSupported>
- <statViewThroughputUnits type="str">Kbps</statViewThroughputUnits>
- <totalUserObjectiveInfoList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixTotalUserObjectiveInfoList" itemtype="ixTotalUserObjectiveInfo"/>
- <activitiesGroupedByObjective type="bool">False</activitiesGroupedByObjective>
- <eventHandlerSettings ver="[0, [1, [0, [0]]]]" type="ixEventHandlerSettings">
- <disabledEventClasses type="str"></disabledEventClasses>
- <disabledPorts type="str"></disabledPorts>
- <_apiUniqueId type="int">12990</_apiUniqueId>
- </eventHandlerSettings>
- <allowMixedObjectiveTypes type="bool">False</allowMixedObjectiveTypes>
- <networkProtocolOptions type="NoneType">None</networkProtocolOptions>
- <seedForRandomBehavior type="int">0</seedForRandomBehavior>
- <csvThroughputScalingFactor type="int">0</csvThroughputScalingFactor>
- <reporterThroughputScalingFactor type="int">0</reporterThroughputScalingFactor>
- <profileDirectory ver="[2, [1, [0, [0]]]]" type="ixProfileDirectory">
- <categoryList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileCategoryList" itemtype="ixProfileCategory">
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Playlist</name>
- <categoryId type="str">playlist</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.Playlist.ixPropertyMap_PlaylistCategory$ixPropertyMap_PlaylistCategory"/>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Random Data</name>
- <categoryId type="str">rdge</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.RandomData.ixPropertyMap_RandomDataCategory$ixPropertyMap_RandomDataCategory">
- <startcore type="int">0</startcore>
- <totalcores type="int">1</totalcores>
- </pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">1</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Real File</name>
- <categoryId type="str">realfile</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">2</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Unified File System</name>
- <categoryId type="str">ufs</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">3</objectID>
- </item>
- </categoryList>
- <_profileMru type="str"></_profileMru>
- </profileDirectory>
- <communityList type="NoneType">None</communityList>
- <autoUpdateAppFlowsToLatest type="bool">True</autoUpdateAppFlowsToLatest>
- <downgradeAppLibFlowsToLatestValidVersion type="bool">True</downgradeAppLibFlowsToLatestValidVersion>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">12920</_apiUniqueId>
- <lastStatViewerConfiguration type="str"></lastStatViewerConfiguration>
- <statManagerOptions ver="[1, [1, [0, [0]]]]" type="ixStatManagerOptions">
- <pollingInterval type="int">2</pollingInterval>
- <allowCsvLogging type="bool">False</allowCsvLogging>
- <enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)RE6(ENXS80_17!!8(6J$Z?&lt;9PL'!\;81W;L+P'T!0!(]&amp;.NK*D)2D?6_3?&#10;M.Z0.R[+D!&quot;V01!3?F^&amp;0&gt;AP.T_NPWWC2%A/J!OYM35&gt;TVH&gt;[GL40^^+B'29'&#10;MJ*6T-$53C':K!@1,&gt;&gt;_$I4SZA ^W-10R=^\BA6Z5D%M0AGT;*SG&gt;5X)&quot;@,!X&#10;M,)LN1].EI-[UYHN1!&lt;W^TIQ-B^_/HZ&amp;Y[-]/1AP8S![OS&gt;EHF U-L]9[ C@;&#10;M_*XW)OA'!)R#M$5&gt;A&amp;]K1DT,1+&gt;38+UV_77:/T8&gt;Q0);NAML'7S['K^BK1N0&#10;ME*%E*&amp;5H$\X)MET168+7!3Y:$PB&amp;+^OR$.(4TP4V@V7V N3,2&lt;&quot;PS7*V2Q+A&#10;M0F /KN-@GSNBYS&amp;.?/3BX2%BR&amp;(!P&gt;&gt;$^7%U\G$TRJPOC@0!S2(61BQ;R&lt;?(&#10;M8V[H%&gt;&lt;F2$/K#=HCVG/948AO$%$6;#[&quot;-WO-.*UTS+'KX3EB&amp;2+Z^QXFC*9/&#10;M&quot;33MT^Z&gt;NK&gt;U5\;&quot;KJKN=CME5U&lt;&quot;LE8-3=/5;X\3RW[%&amp;R2[/GPT6(Q:9N6\&#10;M;24&amp;5=-1AWB%8$YBG4[?!.T4'I @40'!&amp;-#&quot;^P(Y;O&quot;1!%%8 %R?W1D]E3]Z&#10;M:B5KX+G89^. ;&quot;(/69@QT$OV[?Z^^F4_O($__9NK'U' ;K[$FSM^Z&lt;8/76G&amp;&#10;MC=_/V'P&quot;&quot;?&gt;/(_CGL?G/L1EO&quot;=@0B\@OQG'EL9N3O)..K,4-&quot;502.&amp;&quot;1 !%;&#10;MR7HK;G^X6K.;7&amp;3@*AG%]%&gt;!A8F+//&lt;GXEOH'JUS2HC-WRV'))*C)MYG'[-.&#10;M8Y0D'N7FF26K 2IW;=CI(2WR8B:?SQ1M,$=Y6^&gt;=:KZWW&amp;: &amp;%X'Y, 9? NK&#10;M#\OE/+/-H^?V@]4ZW5B&lt;,.X^F=_,OKP&lt;64OKB?N1M^.OS^9\VWANS -0O3P8&#10;MR/J]0O8K,4+!OCQ 3-()./0XJ6/ON=4P$G.6U$KX89&gt;(^ +'&gt;HO#PYB]_,4S&#10;M[Q;32ZP'=_WJP2^K9&amp;7YE9F0.YF[&lt;C'AS&amp;;=KF/=T&gt;6ZIF&amp;Y8;20_(+LCMS2&#10;MM':GLUIU.IVZ6),J!^=#@9CR.H'71D&lt;3/G+(N=EGBHEE#CEHR;K&lt;E U=;AO-&#10;M&gt;J/9;-0A'D-O&amp;?5F1VX:;:/&gt;-AH:A-RZOFZUA&gt;N&lt;=6E$(&amp;_&quot;L#/S.&lt;/0]+:L&#10;MZ[+67NKU;H/_*.V6WKIN-V6MT]6R:$^L*OP&amp;&lt;(0#0X+=W/5=+]F1# [(9+-6&#10;M?)$X)SXB^]7U&lt;;HLPZGU4&gt;8:C^5;1GG#4]]Q^('.F3 AQ6@V%*.N*;IQ?33L&#10;M=O737*56N3@?S-Q/,=L%Y'N:I8'548RX&quot;(NE4D:YX&amp;B!/8RHF)NYGT&quot;Y(744&#10;M79-&amp;_5-G.=H%9^E6'W2?()&gt;M&quot;=I(/ -0Z==]I_7;DPG%V%,\RA./6BZ.4ITJ&#10;MS/T&quot;AY!C,,E-&quot;W3#9ZZW$R\EE/(=^_G1LI$G9J-KB&gt; *_&gt;&gt;&amp;UC8'?WJ!3,W-&#10;M3GI+12H*DS,9&quot;N/WY/_&lt;.8$IE QT%O*#K$(@@\#S(&amp;7Q*DXH&amp;C,$'\&quot;)97:*&#10;M51I/,&quot;(^=OC9R7DK7MWE'13P2C]C+]B)&gt;H26NCF%*[U ZN-,40=RHMC;.3=%&#10;M_)*CI/*_Y*M(J78'97E@!Y[I@^)6R,;E'DM9E4X70&lt;3P OGK&lt;F\%N,S-)N39&#10;M8YG)I;CT97B5+B_J+=:E&lt;_&quot;Y:N&amp;Z57+XG5&quot;^\#KOC)1MO8IBC;/CPCJ[I/V'&#10;M^V%6=_/[B&gt;\=Q+O..R:N_QT[Q[K\:*,F2CBV:&quot;G.[[%W/2%DR8=3XK8FO-5R&#10;M%^C:*1Y?96I20!Q,Q%4'V2 ,.L%;[*5W3E58P(76WX27;[- 2,H#&lt;67)76&lt;Y&#10;M- C\E;N.&quot;,I?(/FJ4P!M ,7W2-ZWB,0QQH&lt;GMT^.423*H//CU&lt;'4)JY02 +F&#10;MJEWP&quot;D&gt;:!^=96F7QKYT,E!_7P=LW#'(,-1_Y_]6&amp;,.?SY(_L/QQW_P)K190H&#10; &#10;end&#10;</svConfiguration>
- <svRestConfiguration type="str"></svRestConfiguration>
- </statManagerOptions>
- <currentUniqueIDForAgent type="int">6</currentUniqueIDForAgent>
- <_scenarioElementFactory ver="[0, [1, [0, [0]]]]" type="ixScenarioElementFactory">
- <singletonDict type="dict"/>
- <referenceCountDict type="dict">
- <item>
- <key type="str">qovCoprocessor</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">Impairment</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">asrCoprocessor</key>
- <value type="int">0</value>
- </item>
- </referenceCountDict>
- </_scenarioElementFactory>
- </item>
- </testList>
-</root>
diff --git a/samples/vnf_samples/traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg b/samples/vnf_samples/traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
deleted file mode 100644
index 01269bee2..000000000
--- a/samples/vnf_samples/traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
+++ /dev/null
Binary files differ
diff --git a/samples/vnf_samples/traffic_profiles/vfw/vfw_ipv4_profile_muttiport.ixncfg b/samples/vnf_samples/traffic_profiles/vfw/vfw_ipv4_profile_muttiport.ixncfg
deleted file mode 100644
index 76accc1ed..000000000
--- a/samples/vnf_samples/traffic_profiles/vfw/vfw_ipv4_profile_muttiport.ixncfg
+++ /dev/null
Binary files differ
diff --git a/samples/vnf_samples/traffic_profiles/vpe/vpe_ipv4_profile_1flows.ixncfg b/samples/vnf_samples/traffic_profiles/vpe/vpe_ipv4_profile_1flows.ixncfg
deleted file mode 100644
index dc05fc89a..000000000
--- a/samples/vnf_samples/traffic_profiles/vpe/vpe_ipv4_profile_1flows.ixncfg
+++ /dev/null
Binary files differ
diff --git a/samples/vnf_samples/traffic_profiles/vpe/vpe_ipv4_profile_256Kflows.ixncfg b/samples/vnf_samples/traffic_profiles/vpe/vpe_ipv4_profile_256Kflows.ixncfg
deleted file mode 100644
index b7e45bfae..000000000
--- a/samples/vnf_samples/traffic_profiles/vpe/vpe_ipv4_profile_256Kflows.ixncfg
+++ /dev/null
Binary files differ
diff --git a/samples/vnf_samples/vnf_descriptors/agnostic_vnf.yaml b/samples/vnf_samples/vnf_descriptors/agnostic_vnf.yaml
new file mode 100644
index 000000000..14a3910e3
--- /dev/null
+++ b/samples/vnf_samples/vnf_descriptors/agnostic_vnf.yaml
@@ -0,0 +1,44 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+vnfd:vnfd-catalog:
+ vnfd:
+ - id: AgnosticVnf
+ name: AgnosticVnf
+ short-name: AgnosticVnf
+ description: 'VNFD for AgnosticVNF which wraps around any unsupported VNF
+ and allows for blackbox testing of the VNF.'
+ mgmt-interface:
+ vdu-id: AgnosticVnf-baremetal
+ {% if user is defined %}
+ user: '{{user}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if password is defined %}
+ password: '{{password}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if ip is defined %}
+ ip: '{{ip}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if key_filename is defined %}
+ key_filename: '{{key_filename}}' # Value filled by vnfdgen
+ {% endif %}
+ vdu:
+ - id: AgnosticVnf-baremetal
+ name: AgnosticVnf-baremetal
+ description: Agnostic vnf
+ routing_table: {{ routing_table }}
+ nd_route_tbl: {{ nd_route_tbl }}
+ benchmark:
+ kpi:
+ [] \ No newline at end of file
diff --git a/samples/vnf_samples/vnf_descriptors/ixia_rfc2544_tpl.yaml b/samples/vnf_samples/vnf_descriptors/ixia_rfc2544_tpl.yaml
index 9b2a152f3..aca7c2102 100644
--- a/samples/vnf_samples/vnf_descriptors/ixia_rfc2544_tpl.yaml
+++ b/samples/vnf_samples/vnf_descriptors/ixia_rfc2544_tpl.yaml
@@ -29,7 +29,6 @@ vnfd:vnfd-catalog:
tcl_port: '{{tg_config.tcl_port}}' # tcl server port
lib_path: '{{tg_config.lib_path}}'
root_dir: '{{tg_config.root_dir}}'
- py_lib_path: '{{tg_config.py_lib_path}}'
py_bin_path: '{{tg_config.py_bin_path}}'
dut_result_dir: '{{tg_config.dut_result_dir}}'
version: '{{tg_config.version}}'
diff --git a/samples/vnf_samples/vnf_descriptors/tg_prox_tpl-4.yaml b/samples/vnf_samples/vnf_descriptors/prox_irq_vnf.yaml
index 20bd12ca2..12f2a69ca 100644
--- a/samples/vnf_samples/vnf_descriptors/tg_prox_tpl-4.yaml
+++ b/samples/vnf_samples/vnf_descriptors/prox_irq_vnf.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2018 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,9 +14,9 @@
vnfd:vnfd-catalog:
vnfd:
- - id: ProxTrafficGen # nsb class mapping
- name: proxverifier
- short-name: proxverifier
+ - id: ProxIrqVNF # nsb class mapping
+ name: proxirqvnf
+ short-name: proxirqvnf
description: prox stateless traffic verifier
mgmt-interface:
vdu-id: proxgen-baremetal
@@ -39,9 +39,11 @@ vnfd:vnfd-catalog:
benchmark:
kpi:
- - rx_throughput_fps
- - tx_throughput_fps
- - tx_throughput_mbps
- - rx_throughput_mbps
- - in_packets
- - out_packets
+ - max_irq
+ - irq(0)
+ - irq(1)
+ - irq(2)
+ - irq(3)
+ - irq(4)
+ - irq(5)
+ - irq(6)
diff --git a/samples/vnf_samples/vnf_descriptors/prox_vnf-1.yaml b/samples/vnf_samples/vnf_descriptors/prox_vnf.yaml
index 13c4e9db7..13c4e9db7 100644
--- a/samples/vnf_samples/vnf_descriptors/prox_vnf-1.yaml
+++ b/samples/vnf_samples/vnf_descriptors/prox_vnf.yaml
diff --git a/samples/vnf_samples/vnf_descriptors/tg_ixload.yaml b/samples/vnf_samples/vnf_descriptors/tg_ixload.yaml
index ad4953fce..0324bb8fd 100644
--- a/samples/vnf_samples/vnf_descriptors/tg_ixload.yaml
+++ b/samples/vnf_samples/vnf_descriptors/tg_ixload.yaml
@@ -29,7 +29,6 @@ vnfd:vnfd-catalog:
tcl_port: '{{tg_config.tcl_port}}' # tcl server port
lib_path: '{{tg_config.lib_path}}'
root_dir: '{{tg_config.root_dir}}'
- py_lib_path: '{{tg_config.py_lib_path}}'
py_bin_path: '{{tg_config.py_bin_path}}'
dut_result_dir: '{{tg_config.dut_result_dir}}'
version: '{{tg_config.version}}'
diff --git a/samples/vnf_samples/vnf_descriptors/tg_ixload_4port.yaml b/samples/vnf_samples/vnf_descriptors/tg_ixload_4port.yaml
index ffbfbdec0..def8cdcef 100644
--- a/samples/vnf_samples/vnf_descriptors/tg_ixload_4port.yaml
+++ b/samples/vnf_samples/vnf_descriptors/tg_ixload_4port.yaml
@@ -28,7 +28,6 @@ vnfd:vnfd-catalog:
tcl_port: '{{tg_config.tcl_port}}' # tcl server port
lib_path: '{{tg_config.lib_path}}'
root_dir: '{{tg_config.root_dir}}'
- py_lib_path: '{{tg_config.py_lib_path}}'
dut_result_dir: '{{tg_config.dut_result_dir}}'
version: '{{tg_config.version}}'
vdu:
diff --git a/samples/vnf_samples/vnf_descriptors/tg_landslide_tpl.yaml b/samples/vnf_samples/vnf_descriptors/tg_landslide_tpl.yaml
new file mode 100644
index 000000000..48963f0a9
--- /dev/null
+++ b/samples/vnf_samples/vnf_descriptors/tg_landslide_tpl.yaml
@@ -0,0 +1,38 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+vnfd:vnfd-catalog:
+ vnfd:
+ - id: LandslideTrafficGen # NSB python class mapping
+ name: LandslideTrafficGen
+ short-name: landslide
+ description: Spirent Landslide traffic generator
+ mgmt-interface:
+ vdu-id: landslide-tas
+ super-user: '{{tas_manager.super_user}}'
+ super-user-password: '{{tas_manager.super_user_password}}'
+ user: '{{tas_manager.test_user}}'
+ password: '{{tas_manager.test_user_password}}'
+ cfguser_password: '{{tas_manager.cfguser_password}}'
+ ip: '{{tas_manager.ip}}'
+ proto: '{{tas_manager.proto}}' # protocol used for REST API- http
+ license: '{{tas_manager.license}}' # Landslide license
+ config: {{config}}
+ vdu:
+ - id: abclient-baremetal
+ name: abclient-baremetal
+ description: AB client interface details
+ benchmark:
+ kpi: []
+
diff --git a/samples/vnf_samples/vnf_descriptors/tg_pktgen.yaml b/samples/vnf_samples/vnf_descriptors/tg_pktgen.yaml
new file mode 100644
index 000000000..17e631652
--- /dev/null
+++ b/samples/vnf_samples/vnf_descriptors/tg_pktgen.yaml
@@ -0,0 +1,47 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+vnfd:vnfd-catalog:
+ vnfd:
+ - id: PktgenTrafficGen # NSB class mapping
+ name: pktgen_tg
+ short-name: pktgen_tg
+ description: Pktgen DPDK traffic generator
+ mgmt-interface:
+ vdu-id: pktgen
+ {% if ip is defined %}
+ ip: '{{ ip }}'
+ {% endif %}
+ {% if service_ports is defined and service_ports %}
+ service_ports:
+ {% for port in service_ports %}
+ - port: "{{ port['port']|int }}"
+ node_port: "{{ port['node_port']|int }}"
+ target_port: "{{ port['target_port']|int }}"
+ {% endfor %}
+ {% endif %}
+
+ vdu:
+ - id: pktgen_tg
+ name: pktgen_tg
+ description: Pktgen DPDK traffic generator
+
+ benchmark:
+ kpi:
+ - rx_throughput_fps
+ - tx_throughput_fps
+ - tx_throughput_mbps
+ - rx_throughput_mbps
+ - in_packets
+ - out_packets
diff --git a/samples/vnf_samples/vnf_descriptors/tg_prox_tpl-1.yaml b/samples/vnf_samples/vnf_descriptors/tg_prox_irq.yaml
index 730143972..c7b07201a 100644
--- a/samples/vnf_samples/vnf_descriptors/tg_prox_tpl-1.yaml
+++ b/samples/vnf_samples/vnf_descriptors/tg_prox_irq.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2018 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,9 +14,9 @@
vnfd:vnfd-catalog:
vnfd:
- - id: ProxTrafficGen # nsb class mapping
- name: proxverifier
- short-name: proxverifier
+ - id: ProxIrqGen # nsb class mapping
+ name: proxirqgen
+ short-name: proxirqgen
description: prox stateless traffic verifier
mgmt-interface:
vdu-id: proxgen-baremetal
@@ -36,11 +36,14 @@ vnfd:vnfd-catalog:
- id: proxgen-baremetal
name: proxgen-baremetal
description: prox stateless traffic verifier
+
benchmark:
kpi:
- - rx_throughput_fps
- - tx_throughput_fps
- - tx_throughput_mbps
- - rx_throughput_mbps
- - in_packets
- - out_packets
+ - max_irq
+ - irq(0)
+ - irq(1)
+ - irq(2)
+ - irq(3)
+ - irq(4)
+ - irq(5)
+ - irq(6)
diff --git a/samples/vnf_samples/vnf_descriptors/tg_prox_tpl-2.yaml b/samples/vnf_samples/vnf_descriptors/tg_prox_tpl.yaml
index 20bd12ca2..20bd12ca2 100644
--- a/samples/vnf_samples/vnf_descriptors/tg_prox_tpl-2.yaml
+++ b/samples/vnf_samples/vnf_descriptors/tg_prox_tpl.yaml
diff --git a/samples/vnf_samples/vnf_descriptors/tg_sipp_vnfd.yaml b/samples/vnf_samples/vnf_descriptors/tg_sipp_vnfd.yaml
new file mode 100644
index 000000000..4a9d7055b
--- /dev/null
+++ b/samples/vnf_samples/vnf_descriptors/tg_sipp_vnfd.yaml
@@ -0,0 +1,54 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+vnfd:vnfd-catalog:
+ vnfd:
+ - id: SippVnf
+ name: SippVnf
+ short-name: SippVnf
+ description: ImsbenchSipp
+ mgmt-interface:
+ vdu-id: sippvnf-baremetal
+ {% if user is defined %}
+ user: '{{user}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if password is defined %}
+ password: '{{password}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if ip is defined %}
+ ip: '{{ip}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if key_filename is defined %}
+ key_filename: '{{key_filename}}' # Value filled by vnfdgen
+ {% endif %}
+ vdu:
+ - id: sippvnf-baremetal
+ name: sippvnf-baremetal
+ description: Sipp
+ routing_table: {{ routing_table }}
+ external-interface:
+ - name: xe0
+ virtual-interface:
+ local_ip: '{{ interfaces.xe0.local_ip }}'
+ dst_ip: '{{ interfaces.xe0.dst_ip }}'
+ vnfd-connection-point-ref: xe0
+ - name: xe1
+ virtual-interface:
+ local_ip: '{{ interfaces.xe1.local_ip }}'
+ vnfd-connection-point-ref: xe1
+ benchmark:
+ kpi:
+ - packets_in
+ - packets_fwd
+ - packets_dropped
diff --git a/samples/vnf_samples/vnf_descriptors/tg_vcmts_tpl.yaml b/samples/vnf_samples/vnf_descriptors/tg_vcmts_tpl.yaml
new file mode 100755
index 000000000..bb56fcb6a
--- /dev/null
+++ b/samples/vnf_samples/vnf_descriptors/tg_vcmts_tpl.yaml
@@ -0,0 +1,77 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+vnfd:vnfd-catalog:
+ vnfd:
+ - id: VcmtsPktgen
+ name: vcmtspktgen
+ short-name: vcmtspktgen
+ description: vCMTS Pktgen Kubernetes
+ vm-flavor:
+ vcpu-count: '4'
+ memory-mb: '4096'
+ mgmt-interface:
+ vdu-id: vcmtspktgen-kubernetes
+ {% if user is defined %}
+ user: '{{user}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if password is defined %}
+ password: '{{password}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if ip is defined %}
+ ip: '{{ip}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if key_filename is defined %}
+ key_filename: '{{key_filename}}' # Value filled by vnfdgen
+ {% endif %}
+ connection-point:
+ - name: xe0
+ type: VPORT
+ - name: xe1
+ type: VPORT
+ vdu:
+ - id: vcmtspktgen-kubernetes
+ name: vcmtspktgen-kubernetes
+ description: vCMTS Pktgen Kubernetes
+ external-interface:
+ - name: xe0
+ virtual-interface:
+ type: virtio
+ # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
+ vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
+ local_iface_name: eth0 # '{{ interfaces.xe0.local_iface_name }}'
+ driver: '{{ interfaces.xe0.driver}}' # Value filled by vnfdgen
+ local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
+ dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
+ local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
+ dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
+ bandwidth: 10 Gbps
+ vnfd-connection-point-ref: xe0
+ - name: xe1
+ virtual-interface:
+ type: virtio
+ # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
+ vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
+ local_iface_name: eth0 # '{{ interfaces.xe1.local_iface_name }}'
+ local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
+ driver: '{{ interfaces.xe1.driver}}' # Value filled by vnfdgen
+ dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
+ local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
+ dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
+ bandwidth: 10 Gbps
+ vnfd-connection-point-ref: xe0
+ benchmark:
+ kpi:
+ - upstream/bits_per_second
+
diff --git a/samples/vnf_samples/vnf_descriptors/tg_vpp_tpl.yaml b/samples/vnf_samples/vnf_descriptors/tg_vpp_tpl.yaml
new file mode 100644
index 000000000..7842a0a0a
--- /dev/null
+++ b/samples/vnf_samples/vnf_descriptors/tg_vpp_tpl.yaml
@@ -0,0 +1,49 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+vnfd:vnfd-catalog:
+ vnfd:
+ - id: TrexTrafficGenVpp # nsb class mapping
+ name: trexverifier
+ short-name: trexverifier
+ description: TRex stateless traffic verifier
+ mgmt-interface:
+ vdu-id: trexgen-baremetal
+ {% if user is defined %}
+ user: '{{user}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if password is defined %}
+ password: '{{password}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if ip is defined %}
+ ip: '{{ip}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if key_filename is defined %}
+ key_filename: '{{key_filename}}' # Value filled by vnfdgen
+ {% endif %}
+ vdu:
+ - id: trexgen-baremetal
+ name: trexgen-baremetal
+ description: TRex stateless traffic verifier
+ benchmark:
+ kpi:
+ - rx_throughput_fps
+ - tx_throughput_fps
+ - tx_throughput_mbps
+ - rx_throughput_mbps
+ - in_packets
+ - out_packets
+ - min_latency
+ - max_latency
+ - avg_latency \ No newline at end of file
diff --git a/samples/vnf_samples/vnf_descriptors/vepc_vnf.yaml b/samples/vnf_samples/vnf_descriptors/vepc_vnf.yaml
new file mode 100644
index 000000000..73d3468bf
--- /dev/null
+++ b/samples/vnf_samples/vnf_descriptors/vepc_vnf.yaml
@@ -0,0 +1,38 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+vnfd:vnfd-catalog:
+ vnfd:
+ - id: EPCVnf # NSB python class mapping
+ name: EPCVnf
+ short-name: EPCVnf
+ description: EPCVnf
+ mgmt-interface:
+ vdu-id: vepcvnf-baremetal
+ {% if user is defined %}
+ user: '{{user}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if password is defined %}
+ password: '{{password}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if ip is defined %}
+ ip: '{{ip}}' # Value filled by vnfdgen
+ {% endif %}
+ vdu:
+ - id: vepcvnf-baremetal
+ name: vepc-vnf-baremetal
+ description: vEPCVnf workload
+ external-interface: []
+ benchmark:
+ kpi: []
diff --git a/samples/vnf_samples/vnf_descriptors/prox_vnf-2.yaml b/samples/vnf_samples/vnf_descriptors/vims_hss_vnfd.yaml
index 13c4e9db7..835ca4987 100644
--- a/samples/vnf_samples/vnf_descriptors/prox_vnf-2.yaml
+++ b/samples/vnf_samples/vnf_descriptors/vims_hss_vnfd.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2019 Viosoft Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,12 +14,12 @@
vnfd:vnfd-catalog:
vnfd:
- - id: ProxApproxVnf
- name: ProxVnf
- short-name: ProxVnf
- description: PROX approximation using DPDK
+ - id: VimsHssVnf
+ name: HssVnf
+ short-name: HssVnf
+ description: IMS Database
mgmt-interface:
- vdu-id: prox-baremetal
+ vdu-id: HssVnf
{% if user is defined %}
user: '{{user}}' # Value filled by vnfdgen
{% endif %}
@@ -33,9 +33,15 @@ vnfd:vnfd-catalog:
key_filename: '{{key_filename}}' # Value filled by vnfdgen
{% endif %}
vdu:
- - id: proxvnf-baremetal
- name: proxvnf-baremetal
- description: PROX approximation using DPDK
+ - id: HssVnf
+ name: HssVnf
+ description: IMS Database
+ external-interface:
+ - name: ims_network
+ virtual-interface:
+ local_ip: '{{ip}}'
+ local_mac: '{{local_mac}}'
+ netmask: '{{netmask}}'
vm-flavor:
vcpu-count: '4'
memory-mb: '4096'
diff --git a/samples/vnf_samples/vnf_descriptors/prox_vnf-4.yaml b/samples/vnf_samples/vnf_descriptors/vims_pcscf_vnfd.yaml
index 13c4e9db7..02a96d037 100644
--- a/samples/vnf_samples/vnf_descriptors/prox_vnf-4.yaml
+++ b/samples/vnf_samples/vnf_descriptors/vims_pcscf_vnfd.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2019 Viosoft Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,12 +14,12 @@
vnfd:vnfd-catalog:
vnfd:
- - id: ProxApproxVnf
- name: ProxVnf
- short-name: ProxVnf
- description: PROX approximation using DPDK
+ - id: VimsPcscfVnf
+ name: PcscfVnf
+ short-name: PcscfVnf
+ description: IMS Gateway
mgmt-interface:
- vdu-id: prox-baremetal
+ vdu-id: PcscfVnf
{% if user is defined %}
user: '{{user}}' # Value filled by vnfdgen
{% endif %}
@@ -33,9 +33,15 @@ vnfd:vnfd-catalog:
key_filename: '{{key_filename}}' # Value filled by vnfdgen
{% endif %}
vdu:
- - id: proxvnf-baremetal
- name: proxvnf-baremetal
- description: PROX approximation using DPDK
+ - id: PcscfVnf
+ name: PcscfVnf
+ description: VIMS Gateway
+ external-interface:
+ - name: ims_network
+ virtual-interface:
+ local_ip: '{{ip}}'
+ local_mac: '{{local_mac}}'
+ netmask: '{{netmask}}'
vm-flavor:
vcpu-count: '4'
memory-mb: '4096'
diff --git a/samples/vnf_samples/vnf_descriptors/vnf_vcmts_tpl.yaml b/samples/vnf_samples/vnf_descriptors/vnf_vcmts_tpl.yaml
new file mode 100755
index 000000000..d1eb6a869
--- /dev/null
+++ b/samples/vnf_samples/vnf_descriptors/vnf_vcmts_tpl.yaml
@@ -0,0 +1,77 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+vnfd:vnfd-catalog:
+ vnfd:
+ - id: VcmtsVNF
+ name: vcmtsvnf
+ short-name: vcmtsvnf
+ description: vCMTS Upstream-Downstream Kubernetes
+ vm-flavor:
+ vcpu-count: '4'
+ memory-mb: '4096'
+ mgmt-interface:
+ vdu-id: vcmtsvnf-kubernetes
+ {% if user is defined %}
+ user: '{{user}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if password is defined %}
+ password: '{{password}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if ip is defined %}
+ ip: '{{ip}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if key_filename is defined %}
+ key_filename: '{{key_filename}}' # Value filled by vnfdgen
+ {% endif %}
+ connection-point:
+ - name: xe0
+ type: VPORT
+ - name: xe1
+ type: VPORT
+ vdu:
+ - id: vcmtsvnf-kubernetes
+ name: vcmtsvnf-kubernetes
+ description: vCMTS Upstream-Downstream Kubernetes
+ external-interface:
+ - name: xe0
+ virtual-interface:
+ type: virtio
+ # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
+ vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
+ local_iface_name: eth0 # NOT TESTED YET '{{ interfaces.xe0.local_iface_name }}' # Value filled by vnfdgen
+ driver: '{{ interfaces.xe0.driver}}' # Value filled by vnfdgen
+ local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
+ dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
+ local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
+ dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
+ bandwidth: 10 Gbps
+ vnfd-connection-point-ref: xe0
+ - name: xe1
+ virtual-interface:
+ type: virtio
+ # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
+ vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
+ local_iface_name: eth0 # NOT TESTED YET '{{ interfaces.xe1.local_iface_name }}' # Value filled by vnfdgen
+ local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
+ driver: '{{ interfaces.xe1.driver}}' # Value filled by vnfdgen
+ dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
+ local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
+ dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
+ bandwidth: 10 Gbps
+ vnfd-connection-point-ref: xe0
+ benchmark:
+ kpi:
+ - upstream/bits_per_second
+
diff --git a/samples/vnf_samples/vnf_descriptors/vpp_vnfd.yaml b/samples/vnf_samples/vnf_descriptors/vpp_vnfd.yaml
new file mode 100644
index 000000000..f8aeb5c84
--- /dev/null
+++ b/samples/vnf_samples/vnf_descriptors/vpp_vnfd.yaml
@@ -0,0 +1,74 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+vnfd:vnfd-catalog:
+ vnfd:
+ - id: VipsecApproxVnf
+ name: IpsecVnf
+ short-name: IpsecVnf
+ description: VPP IPsec
+ mgmt-interface:
+ vdu-id: ipsecvnf-baremetal
+ {% if user is defined %}
+ user: '{{user}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if password is defined %}
+ password: '{{password}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if ip is defined %}
+ ip: '{{ip}}' # Value filled by vnfdgen
+ {% endif %}
+ {% if key_filename is defined %}
+ key_filename: '{{key_filename}}' # Value filled by vnfdgen
+ {% endif %}
+ connection-point:
+ - name: xe0
+ type: VPORT
+ - name: xe1
+ type: VPORT
+ vdu:
+ - id: ipsecvnf-baremetal
+ name: ipsecvnf-baremetal
+ description: VPP Ipsec
+ external-interface:
+ - name: xe0
+ virtual-interface:
+ type: PCI-PASSTHROUGH
+ # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
+ vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
+ local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
+ dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
+ local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
+ netmask: '{{ interfaces.xe0.netmask }}' # Value filled by vnfdgen
+ dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
+ bandwidth: 10 Gbps
+ vnfd-connection-point-ref: xe0
+ - name: xe1
+ virtual-interface:
+ type: PCI-PASSTHROUGH
+ # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
+ vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
+ local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
+ dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
+ local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
+ netmask: '{{ interfaces.xe1.netmask }}' # Value filled by vnfdgen
+ dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
+ bandwidth: 10 Gbps
+ vnfd-connection-point-ref: xe1
+ routing_table: {{ routing_table }}
+ benchmark:
+ kpi:
+ - packets_in
+ - packets_fwd
+ - packets_dropped \ No newline at end of file
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 000000000..b82819d2c
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,43 @@
+[metadata]
+name = yardstick
+home-page = https://www.opnfv.org
+version = 0.1.dev0
+
+[files]
+packages = yardstick
+scripts =
+ tools/yardstick-img-modify
+ tools/yardstick-img-lxd-modify
+ tools/yardstick-img-dpdk-modify
+package-data =
+ yardstick =
+ benchmark/scenarios/availability/*.yaml
+ benchmark/scenarios/availability/attacker/*.yaml
+ benchmark/scenarios/availability/ha_tools/*.bash
+ benchmark/scenarios/availability/ha_tools/*/*.bash
+ benchmark/scenarios/availability/attacker/scripts/*.bash
+ benchmark/scenarios/availability/monitor/*.yaml
+ benchmark/scenarios/availability/monitor/script_tools/*.bash
+ benchmark/scenarios/compute/*.bash
+ benchmark/scenarios/networking/*.bash
+ benchmark/scenarios/networking/*.txt
+ benchmark/scenarios/parser/*.sh
+ benchmark/scenarios/storage/*.bash
+ network_services/nfvi/collectd.conf
+ network_services/nfvi/collectd.sh
+ resources/files/*
+ resources/scripts/install/*.bash
+ resources/scripts/remove/*.bash
+ resources/templates/*.vat
+ etc =
+ yardstick/nodes/*/*.yaml
+ yardstick/*.sample
+ tests =
+ opnfv/*/*.yaml
+ ci/*.sh
+
+[entry_points]
+console_scripts =
+ yardstick=yardstick.main:main
+ yardstick-plot=yardstick.plot.plotter:main [plot]
+yardstick.scenario =
diff --git a/setup.py b/setup.py
index 7f6571d61..7fcba2b50 100755..100644
--- a/setup.py
+++ b/setup.py
@@ -1,62 +1,29 @@
-##############################################################################
-# Copyright (c) 2017 Ericsson AB and others.
+# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
#
-# 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 __future__ import absolute_import
-from setuptools import setup, find_packages
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
+import setuptools
+# In python < 2.7.4, a lazy loading of package `pbr` will break
+# setuptools if some other modules registered functions in `atexit`.
+# solution from: http://bugs.python.org/issue15881#msg170215
+try:
+ import multiprocessing # noqa # pylint:disable=unused-import
+except ImportError:
+ pass
-setup(
- name="yardstick",
- version="0.1.dev0",
- packages=find_packages(),
- include_package_data=True,
- package_data={
- 'yardstick': [
- 'benchmark/scenarios/availability/*.yaml',
- 'benchmark/scenarios/availability/attacker/*.yaml',
- 'benchmark/scenarios/availability/ha_tools/*.bash',
- 'benchmark/scenarios/availability/ha_tools/*/*.bash',
- 'benchmark/scenarios/availability/attacker/scripts/*.bash',
- 'benchmark/scenarios/availability/monitor/*.yaml',
- 'benchmark/scenarios/availability/monitor/script_tools/*.bash',
- 'benchmark/scenarios/compute/*.bash',
- 'benchmark/scenarios/networking/*.bash',
- 'benchmark/scenarios/networking/*.txt',
- 'benchmark/scenarios/parser/*.sh',
- 'benchmark/scenarios/storage/*.bash',
- 'network_services/nfvi/collectd.conf',
- 'network_services/nfvi/collectd.sh',
- 'resources/files/*',
- 'resources/scripts/install/*.bash',
- 'resources/scripts/remove/*.bash'
- ],
- 'etc': [
- 'yardstick/nodes/*/*.yaml',
- 'yardstick/*.sample'
- ],
- 'tests': [
- 'opnfv/*/*.yaml',
- 'ci/*.sh'
- ]
- },
- url="https://www.opnfv.org",
- extras_require={
- 'plot': ["matplotlib>=1.4.2"]
- },
- entry_points={
- 'console_scripts': [
- 'yardstick=yardstick.main:main',
- 'yardstick-plot=yardstick.plot.plotter:main [plot]'
- ],
- },
- scripts=[
- 'tools/yardstick-img-modify',
- 'tools/yardstick-img-lxd-modify',
- 'tools/yardstick-img-dpdk-modify'
- ]
-)
+setuptools.setup(
+ setup_requires=['pbr>=2.0.0'],
+ pbr=True)
diff --git a/test-requirements.txt b/test-requirements.txt
index 8c59e4595..1500541a9 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2,16 +2,20 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-coverage==4.3.4 # Apache 2.0; OSI Approved Apache Software License; http://www.apache.org/licenses/LICENSE-2.0; http://www.apache.org/licenses/LICENSE-2.0
-fixtures==3.0.0 # OSI Approved BSD License; OSI Approved Apache Software License
-packaging==16.8.0 # BSD or Apache License, Version 2.0
-pyflakes==1.0.0 # MIT; OSI Approved MIT License
-pylint==1.8.1 # GPLv2
-python-subunit==1.2.0 # OSI Approved Apache Software License; OSI Approved BSD License
-testrepository==0.0.20 # OSI Approved BSD License; OSI Approved Apache Software License
-testtools==2.2.0 # OSI Approved MIT License
-unittest2==1.1.0 # OSI Approved BSD License
+coverage!=4.4 # Apache-2.0
+fixtures # Apache-2.0/BSD
+oslotest # Apache-2.0
+packaging # Apache-2.0
+pyflakes # MIT; OSI Approved MIT License
+pylint # GPLv2
+python-subunit # Apache-2.0/BSD
+testrepository # Apache-2.0/BSD
+testtools # MIT
+unittest2 # BSD
+
+# NOTE(ralonsoh): to be removed, only for coverage support
+python-heatclient # Apache-2.0
+
+# Yardstick I release <-> OpenStack Stein release
+-e git+https://github.com/openstack/requirements.git@stable/stein#egg=os_requirements
-# Yardstick F release <-> OpenStack Pike release
-openstack_requirements==1.1.0 # OSI Approved Apache Software License
--e git+https://github.com/openstack/requirements.git@stable/pike#egg=os_requirements
diff --git a/tests/ci/ansible_load_images.sh b/tests/ci/ansible_load_images.sh
index 9a2d8ef18..6e08e1a78 100755
--- a/tests/ci/ansible_load_images.sh
+++ b/tests/ci/ansible_load_images.sh
@@ -21,7 +21,7 @@ ANSIBLE_SCRIPTS="${0%/*}/../../ansible"
cd ${ANSIBLE_SCRIPTS} &&\
ansible-playbook \
- -e img_modify_playbook='ubuntu_server_cloudimg_modify.yml' \
+ -e img_property="normal" \
-e target_os='Ubuntu' \
-e YARD_IMG_ARCH='amd64' \
-vvv -i inventory.ini load_images.yml
diff --git a/tests/ci/load_images.sh b/tests/ci/load_images.sh
index 80caf07ae..7a86abb4e 100755
--- a/tests/ci/load_images.sh
+++ b/tests/ci/load_images.sh
@@ -29,11 +29,6 @@ if [ "${INSTALLER_TYPE}" == 'fuel' ]; then
fi
export YARD_IMG_ARCH
-HW_FW_TYPE=""
-if [ "${YARD_IMG_ARCH}" == "arm64" ]; then
- HW_FW_TYPE=uefi
-fi
-export HW_FW_TYPE
UCA_HOST="cloud-images.ubuntu.com"
if [ "${YARD_IMG_ARCH}" == "arm64" ]; then
@@ -43,6 +38,12 @@ if [ "${YARD_IMG_ARCH}" == "arm64" ]; then
fi
fi
+cleanup_loopbacks() {
+ # try again to cleanup loopbacks in case of error
+ losetup -a
+ losetup -O NAME,BACK-FILE | awk '/yardstick/ { print $1 }' | xargs -l1 losetup -v -d || true
+}
+
build_yardstick_image()
{
echo
@@ -56,6 +57,7 @@ build_yardstick_image()
# Build the image. Retry once if the build fails
$cmd || $cmd
+ cleanup_loopbacks
if [ ! -f "${RAW_IMAGE}" ]; then
echo "Failed building RAW image"
exit 1
@@ -67,13 +69,28 @@ build_yardstick_image()
cd ${ANSIBLE_SCRIPTS} &&\
ansible-playbook \
-e img_property="normal" \
+ -e YARD_IMG_ARCH=${YARD_IMG_ARCH} \
-vvv -i inventory.ini build_yardstick_image.yml
+ cleanup_loopbacks
if [ ! -f "${QCOW_IMAGE}" ]; then
echo "Failed building QCOW image"
exit 1
fi
fi
+ # DPDK compile is not enabled for arm64 yet so disable for now
+ # JIRA: YARSTICK-1124
+ if [[ ! -f "${QCOW_NSB_IMAGE}" && ${DEPLOY_SCENARIO} == *[_-]ovs_dpdk[_-]* && "${YARD_IMG_ARCH}" != "arm64" ]]; then
+ ansible-playbook \
+ -e img_property="nsb" \
+ -e YARD_IMG_ARCH=${YARD_IMG_ARCH} \
+ -vvv -i inventory.ini build_yardstick_image.yml
+ cleanup_loopbacks
+ if [ ! -f "${QCOW_NSB_IMAGE}" ]; then
+ echo "Failed building QCOW NSB image"
+ exit 1
+ fi
+ fi
fi
}
@@ -82,18 +99,12 @@ load_yardstick_image()
echo
echo "========== Loading yardstick cloud image =========="
EXTRA_PARAMS=""
- if [[ "${YARD_IMG_ARCH}" == "arm64" ]]; then
- EXTRA_PARAMS="--property hw_video_model=vga"
- fi
# VPP requires guest memory to be backed by large pages
if [[ "$DEPLOY_SCENARIO" == *"-fdio-"* ]]; then
EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_mem_page_size=large"
fi
- if [[ -n "${HW_FW_TYPE}" ]]; then
- EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_firmware_type=${HW_FW_TYPE}"
- fi
if [[ "$DEPLOY_SCENARIO" == *"-lxd-"* ]]; then
output=$(eval openstack ${SECURE} image create \
@@ -111,6 +122,18 @@ load_yardstick_image()
${EXTRA_PARAMS} \
--file ${QCOW_IMAGE} \
yardstick-image)
+ # DPDK compile is not enabled for arm64 yet so disable NSB images for now
+ # JIRA: YARSTICK-1124
+ if [[ $DEPLOY_SCENARIO == *[_-]ovs_dpdk[_-]* && "${YARD_IMG_ARCH}" != "arm64" ]]; then
+ nsb_output=$(eval openstack ${SECURE} image create \
+ --public \
+ --disk-format qcow2 \
+ --container-format bare \
+ ${EXTRA_PARAMS} \
+ --file ${QCOW_NSB_IMAGE} \
+ yardstick-samplevnfs)
+ echo "$nsb_output"
+ fi
fi
echo "$output"
@@ -131,9 +154,9 @@ load_cirros_image()
if [[ "${YARD_IMG_ARCH}" == "arm64" ]]; then
CIRROS_IMAGE_VERSION="cirros-d161201"
CIRROS_IMAGE_PATH="/home/opnfv/images/cirros-d161201-aarch64-disk.img"
- EXTRA_PARAMS="--property hw_video_model=vga --property short_id=ubuntu16.04"
+ EXTRA_PARAMS="--property short_id=ubuntu16.04"
else
- CIRROS_IMAGE_VERSION="Cirros-0.3.5"
+ CIRROS_IMAGE_VERSION="cirros-0.3.5"
CIRROS_IMAGE_PATH="/home/opnfv/images/cirros-0.3.5-x86_64-disk.img"
fi
@@ -150,9 +173,6 @@ load_cirros_image()
EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_mem_page_size=large"
fi
- if [[ -n "${HW_FW_TYPE}" ]]; then
- EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_firmware_type=${HW_FW_TYPE}"
- fi
output=$(openstack ${SECURE} image create \
--disk-format qcow2 \
@@ -231,6 +251,7 @@ create_nova_flavor()
main()
{
QCOW_IMAGE="/tmp/workspace/yardstick/yardstick-image.img"
+ QCOW_NSB_IMAGE="/tmp/workspace/yardstick/yardstick-nsb-image.img"
RAW_IMAGE="/tmp/workspace/yardstick/yardstick-image.tar.gz"
if [ -f /home/opnfv/images/yardstick-image.img ];then
@@ -250,7 +271,7 @@ main()
load_yardstick_image
if [ "${YARD_IMG_ARCH}" == "arm64" ]; then
#We have overlapping IP with the real network
- for filename in tests/opnfv/test_cases/*; do
+ for filename in ${YARDSTICK_REPO_DIR}/tests/opnfv/test_cases/*; do
sed -i "s/cidr: '10.0.1.0\/24'/cidr: '10.3.1.0\/24'/g" "${filename}"
done
else
diff --git a/tests/ci/prepare_env.sh b/tests/ci/prepare_env.sh
index 44e2694f7..8b9f887b2 100755
--- a/tests/ci/prepare_env.sh
+++ b/tests/ci/prepare_env.sh
@@ -14,10 +14,14 @@
: ${INSTALLER_TYPE:='unknown'}
: ${NODE_NAME:='unknown'}
: ${EXTERNAL_NETWORK:='admin_floating_net'}
+: ${USER_NAME:='ubuntu'}
+: ${SSH_KEY:='/root/.ssh/id_rsa'}
+: ${DEPLOY_SCENARIO:='unknown'}
# Extract network name from EXTERNAL_NETWORK
# e.g. EXTERNAL_NETWORK='ext-net;flat;192.168.0.2;192.168.0.253;192.168.0.1;192.168.0.0/24'
-export EXTERNAL_NETWORK=$(echo $EXTERNAL_NETWORK | cut -f1 -d \;)
+EXTERNAL_NETWORK=$(echo ${EXTERNAL_NETWORK} | cut -f1 -d \;)
+export EXTERNAL_NETWORK
# Create openstack credentials
echo "INFO: Creating openstack credentials .."
@@ -26,44 +30,22 @@ OPENRC=/etc/yardstick/openstack.creds
INSTALLERS=(apex compass fuel joid)
RC_VAR_EXIST=false
-if [ "${OS_AUTH_URL}" -a "${OS_USERNAME}" -a "${OS_PASSWORD}" -a "${EXTERNAL_NETWORK}" ];then
+if [[ "${OS_AUTH_URL}" && "${OS_USERNAME}" && "${OS_PASSWORD}" && "${EXTERNAL_NETWORK}" ]];then
RC_VAR_EXIST=true
fi
-if [ "${RC_VAR_EXIST}" = false ]; then
- if [ ! -f $OPENRC ];then
- # credentials file is not given, check if environment variables are set
- # to get the creds using fetch_os_creds.sh later on
- echo "INFO: Checking environment variables INSTALLER_TYPE and INSTALLER_IP"
- if [ -z ${INSTALLER_TYPE} ]; then
- echo "environment variable 'INSTALLER_TYPE' is not defined."
- exit 1
- elif [[ ${INSTALLERS[@]} =~ ${INSTALLER_TYPE} ]]; then
- echo "INSTALLER_TYPE env variable found: ${INSTALLER_TYPE}"
- else
- echo "Invalid env variable INSTALLER_TYPE=${INSTALLER_TYPE}"
- exit 1
- fi
-
- if [ "$DEPLOY_TYPE" == "virt" ]; then
- FETCH_CRED_ARG="-v -d $OPENRC -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}"
- else
- FETCH_CRED_ARG="-d $OPENRC -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}"
- fi
-
- $RELENG_REPO_DIR/utils/fetch_os_creds.sh $FETCH_CRED_ARG
- fi
- source $OPENRC
+if [[ "${RC_VAR_EXIST}" = false && -f ${OPENRC} ]]; then
+ . ${OPENRC}
fi
export EXTERNAL_NETWORK INSTALLER_TYPE DEPLOY_TYPE NODE_NAME
# Prepare a admin-rc file for StorPerf integration
-$YARDSTICK_REPO_DIR/tests/ci/prepare_storperf_admin-rc.sh
+"${YARDSTICK_REPO_DIR}"/tests/ci/prepare_storperf_admin-rc.sh
# copy Storperf related files to the deployment location
if [ "$INSTALLER_TYPE" == "compass" ]; then
- source $YARDSTICK_REPO_DIR/tests/ci/scp_storperf_files.sh
+ . "${YARDSTICK_REPO_DIR}"/tests/ci/scp_storperf_files.sh
fi
# Fetching id_rsa file from jump_server..."
@@ -71,7 +53,7 @@ verify_connectivity() {
local ip=$1
echo "Verifying connectivity to $ip..."
for i in $(seq 0 10); do
- if ping -c 1 -W 1 $ip > /dev/null; then
+ if ping -c 1 -W 1 "${ip}" > /dev/null; then
echo "$ip is reachable!"
return 0
fi
@@ -81,36 +63,112 @@ verify_connectivity() {
}
ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+if [ "$INSTALLER_TYPE" == "apex" ]; then
+
+ # check the connection
+ verify_connectivity "${INSTALLER_IP}"
+
+ pod_yaml="$YARDSTICK_REPO_DIR/etc/yardstick/nodes/apex_baremetal/pod.yaml"
+
+ # update "ip" according to the CI env
+ ssh -l root "${INSTALLER_IP}" -i ${SSH_KEY} ${ssh_options} \
+ "source /home/stack/stackrc && openstack server list -f yaml" > node_info
+
+ controller_ips=($(awk '/control/{getline; {print $2}}' < node_info | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'))
+ compute_ips=($(awk '/compute/{getline; {print $2}}' < node_info | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'))
+ odl_ip=""
+ # Get ODL's cluster default module-shard Leader IP in HA scenario
+ if [[ ${DEPLOY_SCENARIO} == os-odl-*-ha ]]; then
+ for ip in "${controller_ips[@]}";
+ do
+ if [[ "$odl_ip" ]]; then
+ break
+ fi
+ for ((i=0; i<${#controller_ips[@]}; i++));
+ do
+ ODL_STATE=$(curl -s -u admin:admin -H "Accept: application/json" -H "Content-Type: application/json" \
+ "http://"${ip}":8081/jolokia/read/org.opendaylight.controller:Category=Shards,name=member-"${i}"-shard-default-operational,type=DistributedOperationalDatastore" \
+ | grep -o \"RaftState\"\:\"Leader\" | tr ":" "\n" | sed -n '2p' | sed 's/\"//g');
+
+ if [[ ${ODL_STATE} == "Leader" ]]; then
+ odl_ip=${ip}
+ break
+ fi
+ done;
+ done
+
+ if [[ -z "$odl_ip" ]]; then
+ echo "ERROR: Opendaylight Leader IP is emtpy"
+ exit 1
+ fi
+
+ elif [[ ${DEPLOY_SCENARIO} == *"odl"* ]]; then
+ odl_ip=${controller_ips[0]}
+ fi
+ if [[ ${controller_ips[0]} ]]; then
+ sed -i "s|ip1|${controller_ips[0]}|" "${pod_yaml}"
+ fi
+ if [[ ${controller_ips[1]} ]]; then
+ sed -i "s|ip2|${controller_ips[1]}|" "${pod_yaml}"
+ fi
+ if [[ ${controller_ips[2]} ]]; then
+ sed -i "s|ip3|${controller_ips[2]}|" "${pod_yaml}"
+ fi
+ if [[ ${compute_ips[0]} ]]; then
+ sed -i "s|ip4|${compute_ips[0]}|" "${pod_yaml}"
+ fi
+ if [[ ${compute_ips[1]} ]]; then
+ sed -i "s|ip5|${compute_ips[1]}|" "${pod_yaml}"
+ fi
+ if [[ ${odl_ip} ]]; then
+ sed -i "s|ip6|${odl_ip}|" "${pod_yaml}"
+ fi
+
+
+ # update 'key_filename' according to the CI env
+ sed -i "s|node_keyfile|${SSH_KEY}|" "${pod_yaml}"
+
+fi
if [ "$INSTALLER_TYPE" == "fuel" ]; then
- #ip_fuel="10.20.0.2"
- verify_connectivity $INSTALLER_IP
- ssh -l ubuntu ${INSTALLER_IP} -i ${SSH_KEY} ${ssh_options} \
- "sudo salt -C 'ctl* or cmp*' grains.get fqdn_ip4 --out yaml">node_info
+ # check the connection
+ verify_connectivity "${INSTALLER_IP}"
+
+ pod_yaml="$YARDSTICK_REPO_DIR/etc/yardstick/nodes/fuel_baremetal/pod.yaml"
- # update node ip info according to the CI env
- controller_ips=($(cat node_info|awk '/ctl/{getline; print $2}'))
- compute_ips=($(cat node_info|awk '/cmp/{getline; print $2}'))
+ # update "ip" according to the CI env
+ ssh -l ubuntu "${INSTALLER_IP}" -i ${SSH_KEY} ${ssh_options} \
+ "sudo salt -C 'ctl* or cmp* or odl01* or gtw*' grains.get fqdn_ip4 --out yaml">node_info
- pod_yaml="./etc/yardstick/nodes/fuel_baremetal/pod.yaml"
- node_line_num=($(grep -n node[1-5] $pod_yaml | awk -F: '{print $1}'))
- node_ID=0;
+ controller_ips=($(awk '/ctl/{getline; print $2}' < node_info))
+ compute_ips=($(awk '/cmp/{getline; print $2}' < node_info))
+ odl_ip=($(awk '/odl01/{getline; print $2}' < node_info))
+ gateway_ip=($(awk '/gtw/{getline; print $2}' < node_info))
if [[ ${controller_ips[0]} ]]; then
- sed -i "${node_line_num[0]}s/node1/node$((++node_ID))/;s/ip1/${controller_ips[0]}/" $pod_yaml;
+ sed -i "s|ip1|${controller_ips[0]}|" "${pod_yaml}"
fi
if [[ ${controller_ips[1]} ]]; then
- sed -i "${node_line_num[1]}s/node2/node$((++node_ID))/;s/ip2/${controller_ips[1]}/" $pod_yaml;
+ sed -i "s|ip2|${controller_ips[1]}|" "${pod_yaml}"
fi
if [[ ${controller_ips[2]} ]]; then
- sed -i "${node_line_num[2]}s/node3/node$((++node_ID))/;s/ip3/${controller_ips[2]}/" $pod_yaml;
+ sed -i "s|ip3|${controller_ips[2]}|" "${pod_yaml}"
fi
if [[ ${compute_ips[0]} ]]; then
- sed -i "${node_line_num[3]}s/node4/node$((++node_ID))/;s/ip4/${compute_ips[0]}/" $pod_yaml;
+ sed -i "s|ip4|${compute_ips[0]}|" "${pod_yaml}"
fi
if [[ ${compute_ips[1]} ]]; then
- sed -i "${node_line_num[4]}s/node5/node$((++node_ID))/;s/ip5/${compute_ips[1]}/" $pod_yaml;
+ sed -i "s|ip5|${compute_ips[1]}|" "${pod_yaml}"
fi
+ if [[ ${odl_ip[0]} ]]; then
+ sed -i "s|ip6|${odl_ip[0]}|" "${pod_yaml}"
+ fi
+ if [[ ${gateway_ip[0]} ]]; then
+ sed -i "s|ip7|${gateway_ip[0]}|" "${pod_yaml}"
+ fi
+
+ # update 'user' and 'key_filename' according to the CI env
+ sed -i "s|node_username|${USER_NAME}|;s|node_keyfile|${SSH_KEY}|" "${pod_yaml}"
fi
diff --git a/tests/ci/prepare_storperf_admin-rc.sh b/tests/ci/prepare_storperf_admin-rc.sh
index 558375e62..ef7c2297e 100755
--- a/tests/ci/prepare_storperf_admin-rc.sh
+++ b/tests/ci/prepare_storperf_admin-rc.sh
@@ -15,8 +15,9 @@ AUTH_URL=${OS_AUTH_URL}
USERNAME=${OS_USERNAME:-admin}
PASSWORD=${OS_PASSWORD:-console}
+# OS_TENANT_NAME is still present to keep backward compatibility with legacy
+# deployments, but should be replaced by OS_PROJECT_NAME.
TENANT_NAME=${OS_TENANT_NAME:-admin}
-TENANT_ID=`openstack project show admin|grep '\bid\b' |awk -F '|' '{print $3}'|sed -e 's/^[[:space:]]*//'`
PROJECT_NAME=${OS_PROJECT_NAME:-$TENANT_NAME}
PROJECT_ID=`openstack project show admin|grep '\bid\b' |awk -F '|' '{print $3}'|sed -e 's/^[[:space:]]*//'`
@@ -30,8 +31,6 @@ echo "OS_USERNAME="$USERNAME >> ~/storperf_admin-rc
echo "OS_PASSWORD="$PASSWORD >> ~/storperf_admin-rc
echo "OS_PROJECT_NAME="$PROJECT_NAME >> ~/storperf_admin-rc
echo "OS_PROJECT_ID="$PROJECT_ID >> ~/storperf_admin-rc
-echo "OS_TENANT_NAME="$TENANT_NAME >> ~/storperf_admin-rc
-echo "OS_TENANT_ID="$TENANT_ID >> ~/storperf_admin-rc
echo "OS_USER_DOMAIN_ID="$USER_DOMAIN_ID >> ~/storperf_admin-rc
echo "OS_PROJECT_DOMAIN_NAME="$OS_PROJECT_DOMAIN_NAME >> ~/storperf_admin-rc
echo "OS_USER_DOMAIN_NAME="$OS_USER_DOMAIN_NAME >> ~/storperf_admin-rc
diff --git a/tests/ci/yardstick-verify b/tests/ci/yardstick-verify
index d1174825f..34423ff2f 100755
--- a/tests/ci/yardstick-verify
+++ b/tests/ci/yardstick-verify
@@ -106,7 +106,7 @@ install_storperf()
echo
echo "========== Installing storperf =========="
- if ! yardstick -d plugin install plugin/CI/storperf.yaml; then
+ if ! yardstick -d plugin install ${YARDSTICK_REPO_DIR}/plugin/CI/storperf.yaml; then
echo "Install storperf plugin FAILED";
exit 1
fi
@@ -121,7 +121,7 @@ remove_storperf()
echo
echo "========== Removing storperf =========="
- if ! yardstick -d plugin remove plugin/CI/storperf.yaml; then
+ if ! yardstick -d plugin remove ${YARDSTICK_REPO_DIR}/plugin/CI/storperf.yaml; then
echo "Remove storperf plugin FAILED";
exit 1
fi
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc001.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc001.yaml
index 4faa0bc5a..8bfe44693 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc001.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc001.yaml
@@ -62,7 +62,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc002.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc002.yaml
index 7f8c22943..596db25bb 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc002.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc002.yaml
@@ -59,7 +59,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc005.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc005.yaml
index 101c4210e..756c14d86 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc005.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc005.yaml
@@ -60,7 +60,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml
index fe244e81c..cf124360e 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml
@@ -64,7 +64,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc008.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc008.yaml
index 22e576015..c905302e2 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc008.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc008.yaml
@@ -78,13 +78,10 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
segmentation_id: {{segmentation_id}}
{% endif %}
{% endif %}
- #test-sriov:
- #cidr: '10.0.1.0/24'
- #provider: "sriov"
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc009.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc009.yaml
index 3c5f72d5a..cefa50541 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc009.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc009.yaml
@@ -64,7 +64,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc010.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc010.yaml
index cf9706847..e84e1135c 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc010.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc010.yaml
@@ -49,7 +49,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc011.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc011.yaml
index ee36c6c82..998002249 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc011.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc011.yaml
@@ -61,7 +61,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc012.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc012.yaml
index b8b208f12..a1058bc3b 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc012.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc012.yaml
@@ -50,7 +50,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc014.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc014.yaml
index bd0fe3627..78c9e850c 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc014.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc014.yaml
@@ -43,7 +43,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc015.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc015.yaml
new file mode 100755
index 000000000..f35c83377
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc015.yaml
@@ -0,0 +1,60 @@
+##############################################################################
+# Copyright (c) 2019 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
+##############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Yardstick TC015 config file;
+ Measure Processing speed using unixbench with its impact on energy consumption and CPU load.
+
+{% set target = target or "node5"%}
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set duree = 60 %}
+{% set intervalle = 5 %}
+scenarios:
+
+-
+ type: Energy
+ run_in_background: true
+ target: {{target}}.LF
+
+ runner:
+ type: Duration
+ duration: {{duree}}
+ interval: {{intervalle}}
+
+-
+ type: CPUload
+ run_in_background: true
+ options:
+ interval: 1
+ count: 1
+ host: {{target}}.LF
+ runner:
+ type: Duration
+ duration: {{duree}}
+ interval: {{intervalle}}
+
+-
+ type: UnixBench
+ options:
+ run_mode: 'verbose'
+ test_type: 'dhry2reg'
+ host: {{target}}.LF
+
+ runner:
+ type: Iteration
+ iterations: 1
+ interval: 1
+
+
+context:
+ type: Node
+ name: LF
+ file: {{file}}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml
index 08037d9fa..1ed3a3ea6 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml
@@ -40,8 +40,6 @@ scenarios:
host: {{attack_host}}
monitor_time: 30
monitor_number: 3
- sla:
- max_recover_time: 30
nodes:
{{attack_host}}: {{attack_host}}.LF
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc023.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc023.yaml
index 7136a9e7e..c2c176b87 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc023.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc023.yaml
@@ -181,7 +181,7 @@ contexts:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml
index 3622b40d7..a6cf6a292 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml
@@ -95,7 +95,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml
index 59fb95d07..2250ae589 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml
@@ -95,7 +95,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc040.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc040.yaml
index 7d3f36984..591ce0356 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc040.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc040.yaml
@@ -28,4 +28,4 @@ scenarios:
context:
type: Dummy
-
+ name: Dummy
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc042.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc042.yaml
index f46eb8473..ab41912e3 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc042.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc042.yaml
@@ -19,6 +19,8 @@ scenarios:
options:
packetsize: 64
rate: 100
+ eth1: ens4
+ eth2: ens5
host: demeter.yardstick-TC042
target: poseidon.yardstick-TC042
@@ -34,8 +36,13 @@ scenarios:
context:
name: yardstick-TC042
- image: yardstick-image-pktgen-ready
- flavor: yardstick-pktgen-dpdk.flavor
+ image: yardstick-samplevnfs
+ flavor:
+ vcpus: 4
+ ram: 4096
+ disk: 7
+ extra_specs:
+ hw:mem_page_size: "large"
user: ubuntu
placement_groups:
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml
index bc7cd3d28..b23855dc1 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml
@@ -38,8 +38,6 @@ scenarios:
host: {{attack_host}}
monitor_time: 30
monitor_number: 3
- sla:
- max_recover_time: 30
nodes:
{{attack_host}}: {{attack_host}}.LF
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml
index 3b04cc4bd..5bbe72610 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml
@@ -38,8 +38,6 @@ scenarios:
host: {{attack_host}}
monitor_time: 30
monitor_number: 3
- sla:
- max_recover_time: 30
nodes:
{{attack_host}}: {{attack_host}}.LF
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc047.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc047.yaml
index d199e5117..a8783d6e8 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc047.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc047.yaml
@@ -38,8 +38,6 @@ scenarios:
host: {{attack_host}}
monitor_time: 30
monitor_number: 3
- sla:
- max_recover_time: 30
nodes:
{{attack_host}}: {{attack_host}}.LF
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc048.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc048.yaml
index 2bca1fb9d..6a4dc8798 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc048.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc048.yaml
@@ -38,8 +38,6 @@ scenarios:
host: {{attack_host}}
monitor_time: 30
monitor_number: 3
- sla:
- max_recover_time: 30
nodes:
{{attack_host}}: {{attack_host}}.LF
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc050.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc050.yaml
index dde3a1077..faddfab28 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc050.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc050.yaml
@@ -13,12 +13,9 @@ description: >
Yardstick TC050 config file;
HA test case: OpenStack Controller Node Network High Availability.
-{% set file = file or '/etc/yardstick/pod.yaml' %}
{% set attack_host = attack_host or "node1" %}
-{% set external_net = external_net or 'br-ex' %}
-{% set management_net = management_net or 'br-mgmt' %}
-{% set storage_net = storage_net or 'br-storage' %}
-{% set internal_net = internal_net or 'br-mesh' %}
+{% set interface_name = interface_name or 'br-mgmt' %}
+{% set file = file or '/etc/yardstick/pod.yaml' %}
scenarios:
-
@@ -27,43 +24,13 @@ scenarios:
attackers:
-
fault_type: "general-attacker"
- host: {{attack_host}}
+ host: {{ attack_host }}
key: "close-br-public"
attack_key: "close-interface"
action_parameter:
- interface: {{external_net}}
- rollback_parameter:
- interface: {{external_net}}
-
- -
- fault_type: "general-attacker"
- host: {{attack_host}}
- key: "close-br-mgmt"
- attack_key: "close-interface"
- action_parameter:
- interface: {{management_net}}
- rollback_parameter:
- interface: {{management_net}}
-
- -
- fault_type: "general-attacker"
- host: {{attack_host}}
- key: "close-br-storage"
- attack_key: "close-interface"
- action_parameter:
- interface: {{storage_net}}
- rollback_parameter:
- interface: {{storage_net}}
-
- -
- fault_type: "general-attacker"
- host: {{attack_host}}
- key: "close-br-private"
- attack_key: "close-interface"
- action_parameter:
- interface: {{internal_net}}
+ interface: {{ interface_name }}
rollback_parameter:
- interface: {{internal_net}}
+ interface: {{ interface_name }}
monitors:
-
@@ -105,48 +72,34 @@ scenarios:
steps:
-
- actionKey: "close-br-public"
- actionType: "attacker"
- index: 1
-
- -
- actionKey: "close-br-mgmt"
- actionType: "attacker"
- index: 2
-
- -
- actionKey: "close-br-storage"
- actionType: "attacker"
- index: 3
-
- -
- actionKey: "close-br-private"
- actionType: "attacker"
- index: 4
-
- -
actionKey: "nova-image-list"
actionType: "monitor"
- index: 5
+ index: 1
-
actionKey: "neutron-router-list"
actionType: "monitor"
- index: 6
+ index: 2
-
actionKey: "heat-stack-list"
actionType: "monitor"
- index: 7
+ index: 3
-
actionKey: "cinder-list"
actionType: "monitor"
- index: 8
+ index: 4
+
+ -
+ actionKey: "close-br-public"
+ actionType: "attacker"
+ index: 5
+
nodes:
- {{attack_host}}: {{attack_host}}.LF
+ {{ attack_host }}: {{ attack_host }}.LF
runner:
type: Duration
duration: 1
@@ -157,4 +110,4 @@ scenarios:
context:
type: Node
name: LF
- file: {{file}}
+ file: {{ file }}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc053.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc053.yaml
index c2a4f9ede..7b5f77813 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc053.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc053.yaml
@@ -36,8 +36,6 @@ scenarios:
host: {{attack_host}}
monitor_time: 30
monitor_number: 3
- sla:
- max_recover_time: 30
-
monitor_type: "openstack-cmd"
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc056.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc056.yaml
index 9194d9d4e..41314be27 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc056.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc056.yaml
@@ -61,8 +61,6 @@ scenarios:
process_name: "{{ attack_process }}"
host: {{attack_host}}
monitor_time: 30
- sla:
- max_recover_time: 30
nodes:
{{attack_host}}: {{attack_host}}.LF
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc058.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc058.yaml
index 06d460032..effb20a48 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc058.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc058.yaml
@@ -37,8 +37,6 @@ scenarios:
host: {{attack_host}}
key: "monitor-recovery"
monitor_time: 30
- sla:
- max_recover_time: 30
-
monitor_type: "general-monitor"
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc069.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc069.yaml
index 2a4082310..3bfaff961 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc069.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc069.yaml
@@ -49,7 +49,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc070.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc070.yaml
index 7ea10d8a4..8cbd24747 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc070.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc070.yaml
@@ -97,7 +97,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc071.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc071.yaml
index b6a944bbb..c1ce2c556 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc071.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc071.yaml
@@ -95,7 +95,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc072.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc072.yaml
index 09930d442..d237fa92a 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc072.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc072.yaml
@@ -97,7 +97,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml
index ef4f02c9e..e4f715c84 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml
@@ -15,20 +15,40 @@ description: >
{% set public_network = public_network or "ext-net" %}
{% set StorPerf_ip = StorPerf_ip or "192.168.200.1" %}
+{% set workload = workload or "" %}
+{% set workloads = workloads or "" %}
+{% set agent_count = agent_count or 1 %}
+{% set block_sizes = block_sizes or "4096" %}
+{% set queue_depths = queue_depths or "4" %}
+{% set steady_state_samples = steady_state_samples or 10 %}
+{% set volume_size = volume_size or 4 %}
+{% set volume_count = volume_count or 1 %}
+{% set volume_type = volume_type or "" %}
+{% set availability_zone = availability_zone or "nova" %}
+{% set subnet_CIDR = subnet_CIDR or "172.16.0.0/16" %}
+{% set stack_name = stack_name or "StorperfAgentGroup" %}
scenarios:
-
type: StorPerf
options:
- agent_count: 1
+ agent_count: {{agent_count}}
agent_image: "Ubuntu-16.04"
agent_flavor: "storperf"
public_network: {{public_network}}
- volume_size: 4
- block_sizes: "4096"
- queue_depths: "4"
+ volume_size: {{volume_size}}
+ block_sizes: {{block_sizes}}
+ queue_depths: {{queue_depths}}
StorPerf_ip: {{StorPerf_ip}}
query_interval: 10
timeout: 300
+ workload: {{workload}}
+ workloads: {{workloads}}
+ steady_state_samples: {{steady_state_samples}}
+ volume_count: {{volume_count}}
+ volume_type: {{volume_type}}
+ availability_zone: {{availability_zone}}
+ subnet_CIDR: {{subnet_CIDR}}
+ stack_name: {{stack_name}}
runner:
type: Iteration
@@ -36,3 +56,4 @@ scenarios:
context:
type: Dummy
+ name: Dummy
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc076.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc076.yaml
index 8c0edac83..c5e799c99 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc076.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc076.yaml
@@ -58,7 +58,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc079.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc079.yaml
index 9c15acc9c..04a9225ea 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc079.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc079.yaml
@@ -45,7 +45,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc080.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc080.yaml
index 0da296297..5fe902419 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc080.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc080.yaml
@@ -40,8 +40,12 @@ context:
host:
image: openretriever/yardstick
command: /bin/bash
- args: ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;while true ; do sleep 10000; done']
+ args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.;
+ chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;
+ while true ; do sleep 10000; done']
target:
image: openretriever/yardstick
command: /bin/bash
- args: ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;while true ; do sleep 10000; done']
+ args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.;
+ chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;
+ while true ; do sleep 10000; done']
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc081.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc081.yaml
index fc7eb006c..fc6496bad 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc081.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc081.yaml
@@ -42,7 +42,9 @@ contexts:
host:
image: openretriever/yardstick
command: /bin/bash
- args: ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;while true ; do sleep 10000; done']
+ args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.;
+ chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart;
+ while true ; do sleep 10000; done']
-
type: Heat
name: openstack
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc082.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc082.yaml
index 4b67f0f20..85b6c91db 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc082.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc082.yaml
@@ -55,7 +55,7 @@ context:
networks:
test:
cidr: "10.0.1.0/24"
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc083.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc083.yaml
index 6315fdc07..158f064cd 100755
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc083.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc083.yaml
@@ -81,7 +81,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc084.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc084.yaml
index 472aabe07..9df16578a 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc084.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc084.yaml
@@ -58,7 +58,7 @@ context:
networks:
test:
cidr: '10.0.1.0/24'
- {% if provider == "vlan" %}
+ {% if provider == "vlan" or provider == "sriov" %}
provider: {{provider}}
physical_network: {{physical_network}}
{% if segmentation_id %}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc087.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc087.yaml
new file mode 100644
index 000000000..13125ade8
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc087.yaml
@@ -0,0 +1,278 @@
+##############################################################################
+## Copyright (c) 2018 Intracom Telecom 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
+###############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Yardstick TC087 config file;
+ SDN Controller resilience in non-HA configuration
+
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set attack_host = attack_host or 'node6' %}
+
+scenarios:
+
+-
+ type: "GeneralHA"
+ options:
+ monitors:
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "snat"
+ monitor_time: 50
+ host: athena
+ sla:
+ max_outage_time: 0
+ parameter:
+ destination_ip: "8.8.8.8"
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "l2"
+ monitor_time: 50
+ host: athena
+ sla:
+ max_outage_time: 0
+ parameter:
+ destination_ip: "@private_ip"
+
+ operations:
+ - operation_type: "general-operation"
+ key: "get-privateip"
+ operation_key: "get-privateip"
+ action_parameter:
+ server_name: "ares"
+ return_parameter:
+ all: "@private_ip"
+
+
+ steps:
+ - actionKey: "get-privateip"
+ actionType: "operation"
+ index: 1
+
+ - actionKey: "l2"
+ actionType: "monitor"
+ index: 2
+
+ - actionKey: "snat"
+ actionType: "monitor"
+ index: 3
+
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+ athena: athena.ODLnoHA1
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ action: assert
+
+
+-
+ type: "GeneralHA"
+ options:
+ attackers:
+ -
+ fault_type: "kill-process"
+ process_name: "opendaylight"
+ key: "kill-process"
+ host: {{attack_host}}
+
+ monitors:
+ - monitor_type: "process"
+ process_name: "opendaylight"
+ host: {{attack_host}}
+ key: "monitor-recovery"
+ monitor_time: 50
+ sla:
+ max_recover_time: 30
+
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "snat"
+ monitor_time: 70
+ host: athena
+ sla:
+ max_outage_time: 0
+ parameter:
+ destination_ip: "8.8.8.8"
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "l2"
+ monitor_time: 70
+ host: athena
+ sla:
+ max_outage_time: 0
+ parameter:
+ destination_ip: "@private_ip"
+
+ operations:
+ - operation_type: "general-operation"
+ key: "start-service"
+ host: {{attack_host}}
+ operation_key: "start-service"
+ action_parameter:
+ service: "opendaylight"
+ rollback_parameter:
+ service: "opendaylight"
+
+ - operation_type: "general-operation"
+ key: "get-privateip"
+ operation_key: "get-privateip"
+ action_parameter:
+ server_name: "ares"
+ return_parameter:
+ all: "@private_ip"
+
+
+
+ steps:
+
+ - actionKey: "monitor-recovery"
+ actionType: "monitor"
+ index: 1
+
+ - actionKey: "get-privateip"
+ actionType: "operation"
+ index: 2
+
+ - actionKey: "l2"
+ actionType: "monitor"
+ index: 3
+
+ - actionKey: "snat"
+ actionType: "monitor"
+ index: 4
+
+ - actionKey: "kill-process"
+ actionType: "attacker"
+ index: 5
+
+ - actionKey: "start-service"
+ actionType: "operation"
+ index: 6
+
+
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+ athena: athena.ODLnoHA1
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ action: assert
+
+-
+ type: "GeneralHA"
+ options:
+ monitors:
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "l2"
+ monitor_time: 80
+ host: athena
+ sla:
+ max_outage_time: 40
+ parameter:
+ destination_ip: "@private_ip"
+
+ operations:
+ - operation_type: "general-operation"
+ key: "get-privateip"
+ operation_key: "get-privateip"
+ action_parameter:
+ server_name: "hermes"
+ return_parameter:
+ all: "@private_ip"
+
+ - operation_type: "general-operation"
+ key: "nova-create-instance"
+ operation_key: "nova-create-instance"
+ action_parameter:
+ serverconfig: "hermes yardstick-image yardstick-flavor test_one"
+ rollback_parameter:
+ serverconfig: "hermes"
+
+ - operation_type: "general-operation"
+ key: "add-server-to-secgroup"
+ operation_key: "add-server-to-secgroup"
+ action_parameter:
+ serverconfig: "hermes ODLnoHA1"
+ rollback_parameter:
+ serverconfig: "hermes ODLnoHA1"
+
+
+ steps:
+ - actionKey: "nova-create-instance"
+ actionType: "operation"
+ index: 1
+
+ - actionKey: "add-server-to-secgroup"
+ actionType: "operation"
+ index: 2
+
+ - actionKey: "get-privateip"
+ actionType: "operation"
+ index: 3
+
+ - actionKey: "l2"
+ actionType: "monitor"
+ index: 4
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+ athena: athena.ODLnoHA1
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ action: assert
+
+
+contexts:
+ -
+ type: Node
+ name: LF
+ file: {{file}}
+ -
+ name: ODLnoHA1
+ image: yardstick-image
+ flavor: yardstick-flavor
+ user: ubuntu
+ host: athena
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ athena:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ test_one:
+ - ens0
+
+ ares:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ test_one:
+ - ens0
+
+ networks:
+ test_one:
+ cidr: '10.0.1.0/24'
+ router: 'test_router'
+
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc088.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc088.yaml
new file mode 100644
index 000000000..c1b065711
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc088.yaml
@@ -0,0 +1,78 @@
+##############################################################################
+# Copyright (c) 2017 14_ykl@tongji.edu.cn 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
+##############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Yardstick TC088 config file;
+ HA test case: Control node Openstack service down - nova scheduler
+
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set attack_host = attack_host or "node1" %}
+{% set attack_process = attack_process or "nova-scheduler" %}
+{% set inst_param = inst_param or "tc088 yardstick-image yardstick-flavor internal-network" %}
+{% set inst_name = inst_name or "tc088" %}
+
+scenarios:
+ -
+ type: "GeneralHA"
+ options:
+ attackers:
+ -
+ fault_type: "kill-process"
+ host: {{attack_host}}
+ key: "kill-process"
+ process_name: "{{ attack_process }}"
+
+ monitors:
+ -
+ monitor_type: "process"
+ key: "service-status"
+ process_name: "{{ attack_process }}"
+ host: {{attack_host}}
+ monitor_time: 30
+ monitor_number: 3
+
+ operations:
+ -
+ operation_type: "general-operation"
+ key: "nova-create-instance"
+ operation_key: "nova-create-instance"
+ action_parameter:
+ serverconfig: {{inst_param}}
+ rollback_parameter:
+ serverconfig: {{inst_name}}
+
+ steps:
+ -
+ actionKey: "kill-process"
+ actionType: "attacker"
+ index: 1
+ -
+ actionKey: "service-status"
+ actionType: "monitor"
+ index: 2
+ -
+ actionKey: "nova-create-instance"
+ actionType: "operation"
+ index: 3
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ outage_time: 5
+ action: monitor
+
+context:
+ type: Node
+ name: LF
+ file: {{file}}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc089.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc089.yaml
new file mode 100644
index 000000000..9379d2f75
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc089.yaml
@@ -0,0 +1,78 @@
+##############################################################################
+# Copyright (c) 2017 14_ykl@tongji.edu.cn 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
+##############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Yardstick TC089 config file;
+ HA test case: Control node Openstack service down - nova conductor
+
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set attack_host = attack_host or "node1" %}
+{% set attack_process = attack_process or "nova-conductor" %}
+{% set inst_param = inst_param or "tc089 yardstick-image yardstick-flavor internal-network" %}
+{% set inst_name = inst_name or "tc089" %}
+
+scenarios:
+ -
+ type: "GeneralHA"
+ options:
+ attackers:
+ -
+ fault_type: "kill-process"
+ host: {{attack_host}}
+ key: "kill-process"
+ process_name: "{{ attack_process }}"
+
+ monitors:
+ -
+ monitor_type: "process"
+ key: "service-status"
+ process_name: "{{ attack_process }}"
+ host: {{attack_host}}
+ monitor_time: 30
+ monitor_number: 3
+
+ operations:
+ -
+ operation_type: "general-operation"
+ key: "nova-create-instance"
+ operation_key: "nova-create-instance"
+ action_parameter:
+ serverconfig: {{inst_param}}
+ rollback_parameter:
+ serverconfig: {{inst_name}}
+
+ steps:
+ -
+ actionKey: "kill-process"
+ actionType: "attacker"
+ index: 1
+ -
+ actionKey: "service-status"
+ actionType: "monitor"
+ index: 2
+ -
+ actionKey: "nova-create-instance"
+ actionType: "operation"
+ index: 3
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ outage_time: 5
+ action: monitor
+
+context:
+ type: Node
+ name: LF
+ file: {{file}}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc090.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc090.yaml
new file mode 100644
index 000000000..eaf14f60e
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc090.yaml
@@ -0,0 +1,76 @@
+##############################################################################
+# Copyright (c) 2017 14_ykl@tongji.edu.cn 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
+##############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Yardstick TC090 config file;
+ HA test case: Control node Openstack service down - database instance.
+
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set attack_host = attack_host or "node1" %}
+{% set attack_process = attack_process or "mysql" %}
+{% set monitor_time = monitor_time or 30 %}
+
+scenarios:
+-
+ type: ServiceHA
+ options:
+ attackers:
+ - fault_type: "kill-process"
+ process_name: "{{ attack_process }}"
+ host: {{attack_host}}
+
+ monitors:
+ - monitor_type: "openstack-cmd"
+ command_name: "openstack image list"
+ monitor_time: {{monitor_time}}
+ monitor_number: 3
+ sla:
+ max_outage_time: 5
+ - monitor_type: "openstack-cmd"
+ command_name: "openstack router list"
+ monitor_time: {{monitor_time}}
+ monitor_number: 3
+ sla:
+ max_outage_time: 5
+ - monitor_type: "openstack-cmd"
+ command_name: "openstack stack list"
+ monitor_time: {{monitor_time}}
+ monitor_number: 3
+ sla:
+ max_outage_time: 5
+ - monitor_type: "openstack-cmd"
+ command_name: "openstack volume list"
+ monitor_time: {{monitor_time}}
+ monitor_number: 3
+ sla:
+ max_outage_time: 5
+ - monitor_type: "process"
+ process_name: "{{ attack_process }}"
+ host: {{attack_host}}
+ monitor_time: {{monitor_time}}
+ monitor_number: 3
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ outage_time: 5
+ action: monitor
+
+
+context:
+ type: Node
+ name: LF
+ file: {{file}}
+
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc091.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc091.yaml
new file mode 100644
index 000000000..54ef6f237
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc091.yaml
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2017 14_ykl@tongji.edu.cn 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
+##############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Yardstick TC091 config file;
+ HA test case: Control node Openstack service down - heat-api.
+
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set attack_host = attack_host or "node1" %}
+{% set attack_process = attack_process or "heat-api" %}
+
+scenarios:
+-
+ type: ServiceHA
+ options:
+ attackers:
+ - fault_type: "kill-process"
+ process_name: "{{ attack_process }}"
+ host: {{attack_host}}
+
+ monitors:
+ - monitor_type: "openstack-cmd"
+ command_name: "openstack stack list"
+ monitor_time: 10
+ monitor_number: 3
+ sla:
+ max_outage_time: 5
+ - monitor_type: "process"
+ process_name: "{{ attack_process }}"
+ host: {{attack_host}}
+ monitor_time: 30
+ monitor_number: 3
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ outage_time: 5
+ action: monitor
+
+
+context:
+ type: Node
+ name: LF
+ file: {{file}}
+
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc092.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc092.yaml
new file mode 100644
index 000000000..f2996bcc6
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc092.yaml
@@ -0,0 +1,276 @@
+##############################################################################
+## Copyright (c) 2018 Intracom Telecom 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
+###############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Yardstick TC092 config file;
+ SDN Controller resilience in HA configuration
+
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set attack_host = attack_host or 'node6' %}
+
+scenarios:
+
+-
+ type: "GeneralHA"
+ options:
+ monitors:
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "snat"
+ monitor_time: 50
+ host: athena
+ sla:
+ max_outage_time: 0
+ parameter:
+ destination_ip: "8.8.8.8"
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "l2"
+ monitor_time: 50
+ host: athena
+ sla:
+ max_outage_time: 0
+ parameter:
+ destination_ip: "@private_ip"
+
+ operations:
+ - operation_type: "general-operation"
+ key: "get-privateip"
+ operation_key: "get-privateip"
+ action_parameter:
+ server_name: "ares"
+ return_parameter:
+ all: "@private_ip"
+
+
+ steps:
+ - actionKey: "get-privateip"
+ actionType: "operation"
+ index: 1
+
+ - actionKey: "l2"
+ actionType: "monitor"
+ index: 2
+
+ - actionKey: "snat"
+ actionType: "monitor"
+ index: 3
+
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+ athena: athena.ODLHA1
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ action: assert
+
+-
+ type: "GeneralHA"
+ options:
+ attackers:
+ -
+ fault_type: "kill-process"
+ process_name: "opendaylight"
+ key: "kill-process"
+ host: {{attack_host}}
+
+ monitors:
+ - monitor_type: "process"
+ process_name: "opendaylight"
+ host: {{attack_host}}
+ key: "monitor-recovery"
+ monitor_time: 50
+ sla:
+ max_recover_time: 30
+
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "snat"
+ monitor_time: 70
+ host: athena
+ sla:
+ max_outage_time: 0
+ parameter:
+ destination_ip: "8.8.8.8"
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "l2"
+ monitor_time: 70
+ host: athena
+ sla:
+ max_outage_time: 0
+ parameter:
+ destination_ip: "@private_ip"
+
+ operations:
+ - operation_type: "general-operation"
+ key: "start-service"
+ host: {{attack_host}}
+ operation_key: "start-service"
+ action_parameter:
+ service: "opendaylight"
+ rollback_parameter:
+ service: "opendaylight"
+
+ - operation_type: "general-operation"
+ key: "get-privateip"
+ operation_key: "get-privateip"
+ action_parameter:
+ server_name: "ares"
+ return_parameter:
+ all: "@private_ip"
+
+
+
+ steps:
+
+ - actionKey: "monitor-recovery"
+ actionType: "monitor"
+ index: 1
+
+ - actionKey: "get-privateip"
+ actionType: "operation"
+ index: 2
+
+ - actionKey: "l2"
+ actionType: "monitor"
+ index: 3
+
+ - actionKey: "snat"
+ actionType: "monitor"
+ index: 4
+
+ - actionKey: "kill-process"
+ actionType: "attacker"
+ index: 5
+
+ - actionKey: "start-service"
+ actionType: "operation"
+ index: 6
+
+
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+ athena: athena.ODLHA1
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ action: assert
+
+-
+ type: "GeneralHA"
+ options:
+ monitors:
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "l2"
+ monitor_time: 80
+ host: athena
+ sla:
+ max_outage_time: 40
+ parameter:
+ destination_ip: "@private_ip"
+
+ operations:
+ - operation_type: "general-operation"
+ key: "get-privateip"
+ operation_key: "get-privateip"
+ action_parameter:
+ server_name: "hermes"
+ return_parameter:
+ all: "@private_ip"
+
+ - operation_type: "general-operation"
+ key: "nova-create-instance"
+ operation_key: "nova-create-instance"
+ action_parameter:
+ serverconfig: "hermes yardstick-image yardstick-flavor test_one"
+ rollback_parameter:
+ serverconfig: "hermes"
+
+ - operation_type: "general-operation"
+ key: "add-server-to-secgroup"
+ operation_key: "add-server-to-secgroup"
+ action_parameter:
+ serverconfig: "hermes ODLHA1"
+ rollback_parameter:
+ serverconfig: "hermes ODLHA1"
+
+
+ steps:
+ - actionKey: "nova-create-instance"
+ actionType: "operation"
+ index: 1
+
+ - actionKey: "add-server-to-secgroup"
+ actionType: "operation"
+ index: 2
+
+ - actionKey: "get-privateip"
+ actionType: "operation"
+ index: 3
+
+ - actionKey: "l2"
+ actionType: "monitor"
+ index: 4
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+ athena: athena.ODLHA1
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ action: assert
+
+
+contexts:
+ -
+ type: Node
+ name: LF
+ file: {{file}}
+ -
+ name: ODLHA1
+ image: yardstick-image
+ flavor: yardstick-flavor
+ user: ubuntu
+ host: athena
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ athena:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ test_one:
+ - ens0
+
+ ares:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ test_one:
+ - ens0
+
+ networks:
+ test_one:
+ cidr: '10.0.1.0/24'
+ router: 'test_router'
+
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc093.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc093.yaml
new file mode 100644
index 000000000..27e78a451
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc093.yaml
@@ -0,0 +1,313 @@
+##############################################################################
+## Copyright (c) 2018 Intracom Telecom 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
+###############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Yardstick TC093 config file;
+ SDN Vswitch resilience in non-HA or HA configuration
+
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set attack_host_cmp_one = attack_host_cmp_one or 'node4' %}
+{% set attack_host_cmp_two = attack_host_cmp_two or 'node5' %}
+{% set systemd_service_name = systemd_service_name or 'openvswitch-switch'%}
+
+scenarios:
+
+-
+ type: "GeneralHA"
+ options:
+ monitors:
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "snat"
+ monitor_time: 50
+ host: athena
+ sla:
+ max_outage_time: 0
+ parameter:
+ destination_ip: "8.8.8.8"
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "l2"
+ monitor_time: 50
+ host: athena
+ sla:
+ max_outage_time: 0
+ parameter:
+ destination_ip: "@private_ip"
+
+ operations:
+ - operation_type: "general-operation"
+ key: "get-privateip"
+ operation_key: "get-privateip"
+ action_parameter:
+ server_name: "ares"
+ return_parameter:
+ all: "@private_ip"
+
+
+ steps:
+ - actionKey: "get-privateip"
+ actionType: "operation"
+ index: 1
+
+ - actionKey: "l2"
+ actionType: "monitor"
+ index: 2
+
+ - actionKey: "snat"
+ actionType: "monitor"
+ index: 3
+
+
+ nodes:
+ athena: athena.ODLnoHA1
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ action: assert
+
+
+-
+ type: "GeneralHA"
+ options:
+ attackers:
+ -
+ fault_type: "kill-process"
+ process_name: "openvswitch"
+ key: "kill-process-cmp-one"
+ host: {{attack_host_cmp_one}}
+
+ -
+ fault_type: "kill-process"
+ process_name: "openvswitch"
+ key: "kill-process-cmp-two"
+ host: {{attack_host_cmp_two}}
+
+ monitors:
+ - monitor_type: "process"
+ process_name: "openvswitch"
+ host: {{attack_host_cmp_one}}
+ key: "monitor-recovery-cmp-one"
+ monitor_time: 50
+ sla:
+ max_recover_time: 30
+
+ - monitor_type: "process"
+ process_name: "openvswitch"
+ host: {{attack_host_cmp_two}}
+ key: "monitor-recovery-cmp-two"
+ monitor_time: 50
+ sla:
+ max_recover_time: 30
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "snat"
+ monitor_time: 70
+ host: athena
+ sla:
+ max_outage_time: 20
+ parameter:
+ destination_ip: "8.8.8.8"
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "l2"
+ monitor_time: 70
+ host: athena
+ sla:
+ max_outage_time: 20
+ parameter:
+ destination_ip: "@private_ip"
+
+ operations:
+ - operation_type: "general-operation"
+ key: "restart-service-cmp-one"
+ host: {{attack_host_cmp_one}}
+ operation_key: "start-service"
+ action_parameter:
+ service: {{systemd_service_name ~ " restart"}}
+ rollback_parameter:
+ service: "openvswitch"
+
+ - operation_type: "general-operation"
+ key: "restart-service-cmp-two"
+ host: {{attack_host_cmp_two}}
+ operation_key: "start-service"
+ action_parameter:
+ service: {{systemd_service_name ~ " restart"}}
+ rollback_parameter:
+ service: "openvswitch"
+
+ - operation_type: "general-operation"
+ key: "get-privateip"
+ operation_key: "get-privateip"
+ action_parameter:
+ server_name: "ares"
+ return_parameter:
+ all: "@private_ip"
+
+
+
+ steps:
+
+ - actionKey: "get-privateip"
+ actionType: "operation"
+ index: 1
+
+ - actionKey: "l2"
+ actionType: "monitor"
+ index: 2
+
+ - actionKey: "snat"
+ actionType: "monitor"
+ index: 3
+
+ - actionKey: "kill-process-cmp-one"
+ actionType: "attacker"
+ index: 4
+
+ - actionKey: "kill-process-cmp-two"
+ actionType: "attacker"
+ index: 5
+
+ - actionKey: "monitor-recovery-cmp-one"
+ actionType: "monitor"
+ index: 6
+
+ - actionKey: "monitor-recovery-cmp-two"
+ actionType: "monitor"
+ index: 7
+
+
+ - actionKey: "restart-service-cmp-one"
+ actionType: "operation"
+ index: 8
+
+ - actionKey: "restart-service-cmp-two"
+ actionType: "operation"
+ index: 9
+
+
+ nodes:
+ {{attack_host_cmp_one}}: {{attack_host_cmp_one}}.LF
+ {{attack_host_cmp_two}}: {{attack_host_cmp_two}}.LF
+ athena: athena.ODLnoHA1
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ action: assert
+
+-
+ type: "GeneralHA"
+ options:
+ monitors:
+
+ - monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "l2"
+ monitor_time: 80
+ host: athena
+ sla:
+ max_outage_time: 40
+ parameter:
+ destination_ip: "@private_ip"
+
+ operations:
+ - operation_type: "general-operation"
+ key: "get-privateip"
+ operation_key: "get-privateip"
+ action_parameter:
+ server_name: "hermes"
+ return_parameter:
+ all: "@private_ip"
+
+ - operation_type: "general-operation"
+ key: "nova-create-instance"
+ operation_key: "nova-create-instance"
+ action_parameter:
+ serverconfig: "hermes yardstick-image yardstick-flavor test_one"
+ rollback_parameter:
+ serverconfig: "hermes"
+
+ - operation_type: "general-operation"
+ key: "add-server-to-secgroup"
+ operation_key: "add-server-to-secgroup"
+ action_parameter:
+ serverconfig: "hermes ODLnoHA1"
+ rollback_parameter:
+ serverconfig: "hermes ODLnoHA1"
+
+
+ steps:
+ - actionKey: "nova-create-instance"
+ actionType: "operation"
+ index: 1
+
+ - actionKey: "add-server-to-secgroup"
+ actionType: "operation"
+ index: 2
+
+ - actionKey: "get-privateip"
+ actionType: "operation"
+ index: 3
+
+ - actionKey: "l2"
+ actionType: "monitor"
+ index: 4
+
+ nodes:
+ athena: athena.ODLnoHA1
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ action: assert
+
+
+contexts:
+ -
+ type: Node
+ name: LF
+ file: {{file}}
+ -
+ name: ODLnoHA1
+ image: yardstick-image
+ flavor: yardstick-flavor
+ user: ubuntu
+ host: athena
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+ servers:
+ athena:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ test_one:
+ - ens0
+
+ ares:
+ floating_ip: true
+ placement: "pgrp1"
+ network_ports:
+ test_one:
+ - ens0
+
+ networks:
+ test_one:
+ cidr: '10.0.1.0/24'
+ router: 'test_router'
+
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc094.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc094.yaml
new file mode 100644
index 000000000..69b222b04
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc094.yaml
@@ -0,0 +1,93 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{% set tp = tp or "../../../samples/vnf_samples/traffic_profiles/prox_binsearch.yaml" %}
+{% set topology = topology or "../../../samples/vnf_samples/nsut/prox/prox-tg-topology-2.yaml" %}
+{% set vnf_config = vnf_config or "../../../samples/vnf_samples/nsut/prox/configs/handle_l2fwd-2.cfg" %}
+{% set tg_config = tg_config or "../../../samples/vnf_samples/nsut/prox/configs/gen_l2fwd-2.cfg" %}
+---
+schema: "yardstick:task:0.1"
+description: >
+ Yardstick NSB TC094 config file;
+ Measures network metrics such as Throughput and Latency of the DPDK
+ SampleVNF PROX application running on SUT based on RFC2544.
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: {{ tp }}
+ topology: {{ topology }}
+
+ nodes:
+ tg__0: trafficgen_1.yardstick
+ vnf__0: vnf_0.yardstick
+
+ options:
+ vnf__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: {{ vnf_config }}
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ collectd:
+ interval: 1
+ prox_path: /opt/nsb_bin/prox
+ prox_config: {{ tg_config }}
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ duration: 300
+
+context:
+ name: yardstick
+ image: yardstick-samplevnfs
+ user: ubuntu
+ flavor:
+ vcpus: 10
+ ram: 20480
+ disk: 6
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 1
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ vnf_0:
+ floating_ip: true
+ placement: "pgrp1"
+ trafficgen_1:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ mgmt:
+ cidr: '10.0.1.0/24'
+ uplink_0:
+ cidr: '10.0.2.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_0:
+ cidr: '10.0.3.0/24'
+ gateway_ip: 'null'
+ port_security_enabled: False
+ enable_dhcp: 'false'
diff --git a/tests/opnfv/test_suites/opnfv_vTC_weekly.yaml b/tests/opnfv/test_suites/opnfv_k8-calico-nofeature-noha_daily.yaml
index 04f607ed4..8e465af43 100644
--- a/tests/opnfv/test_suites/opnfv_vTC_weekly.yaml
+++ b/tests/opnfv/test_suites/opnfv_k8-calico-nofeature-noha_daily.yaml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Ericsson AB and others.
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
@@ -7,18 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
---
-# ERICSSON POD1 VTC weekly task suite
+# k8 calico nofeature noha daily task suite
schema: "yardstick:suite:0.1"
-name: "opnfv_vTC_weekly"
+name: "k8-calico-nofeature-noha"
test_cases_dir: "tests/opnfv/test_cases/"
test_cases:
-
- file_name: opnfv_yardstick_tc006.yaml
--
- file_name: opnfv_yardstick_tc007.yaml
--
- file_name: opnfv_yardstick_tc020.yaml
--
- file_name: opnfv_yardstick_tc021.yaml
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-canal-lb-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-canal-lb-noha_daily.yaml
new file mode 100644
index 000000000..80e0fbd39
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-canal-lb-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 canal lb noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-canal-lb-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-canal-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-canal-nofeature-noha_daily.yaml
new file mode 100644
index 000000000..5df46f5a9
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-canal-nofeature-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 canal nofeature noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-canal-nofeature-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-contiv-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-contiv-nofeature-noha_daily.yaml
new file mode 100644
index 000000000..c38d8b0fa
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-contiv-nofeature-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 contiv nofeature noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-contiv-nofeature-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-flannel-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-flannel-nofeature-noha_daily.yaml
new file mode 100644
index 000000000..3de14e2a6
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-flannel-nofeature-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 flannel nofeature noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-flannel-nofeature-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-multus-lb-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-multus-lb-noha_daily.yaml
new file mode 100644
index 000000000..6ec4d49c9
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-multus-lb-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 multus lb noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-multus-lb-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-multus-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-multus-nofeature-noha_daily.yaml
new file mode 100644
index 000000000..8b1ffeb7e
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-multus-nofeature-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 multus nofeature noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-multus-nofeature-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-nosdn-istio-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-nosdn-istio-noha_daily.yaml
new file mode 100644
index 000000000..0e5844cd3
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-nosdn-istio-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 nosdn istio noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-nosdn-istio-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-nosdn-lb_ceph-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-nosdn-lb_ceph-noha_daily.yaml
new file mode 100644
index 000000000..ebb21b5c7
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-nosdn-lb_ceph-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 nosdn lb ceph noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-nosdn-lb_ceph-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-nosdn-nofeature-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-nosdn-nofeature-ha_daily.yaml
new file mode 100644
index 000000000..d5386fd52
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-nosdn-nofeature-ha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 nosdn nofeature ha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-nosdn-nofeature-ha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-nosdn-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-nosdn-nofeature-noha_daily.yaml
index 00dccab95..0ce94551a 100644
--- a/tests/opnfv/test_suites/opnfv_k8-nosdn-nofeature-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_k8-nosdn-nofeature-noha_daily.yaml
@@ -15,48 +15,4 @@ name: "k8-nosdn-nofeature-noha"
test_cases_dir: "tests/opnfv/test_cases/"
test_cases:
-
- file_name: opnfv_yardstick_tc002.yaml
--
- file_name: opnfv_yardstick_tc005.yaml
--
- file_name: opnfv_yardstick_tc010.yaml
--
- file_name: opnfv_yardstick_tc011.yaml
--
- file_name: opnfv_yardstick_tc012.yaml
--
- file_name: opnfv_yardstick_tc014.yaml
--
- file_name: opnfv_yardstick_tc037.yaml
--
- file_name: opnfv_yardstick_tc055.yaml
- constraint:
- installer: compass
- pod: huawei-pod1
- task_args:
- huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
--
- file_name: opnfv_yardstick_tc063.yaml
- constraint:
- installer: compass
- pod: huawei-pod1
- task_args:
- huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
--
- file_name: opnfv_yardstick_tc069.yaml
--
- file_name: opnfv_yardstick_tc070.yaml
--
- file_name: opnfv_yardstick_tc071.yaml
--
- file_name: opnfv_yardstick_tc072.yaml
--
- file_name: opnfv_yardstick_tc075.yaml
- constraint:
- installer: compass
- pod: huawei-pod1
- task_args:
- huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-nosdn-stor4nfv-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-nosdn-stor4nfv-ha_daily.yaml
new file mode 100644
index 000000000..cb2b1311d
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-nosdn-stor4nfv-ha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 nosdn stor4nfv ha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-nosdn-stor4nfv-ha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-nosdn-stor4nfv-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-nosdn-stor4nfv-noha_daily.yaml
new file mode 100644
index 000000000..961b8da89
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-nosdn-stor4nfv-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 nosdn stor4nfv noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-nosdn-stor4nfv-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-ocl-lb-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-ocl-lb-noha_daily.yaml
new file mode 100644
index 000000000..a6ef9e1c9
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-ocl-lb-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 ocl lb noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-ocl-lb-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_k8-sriov-cni-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_k8-sriov-cni-nofeature-noha_daily.yaml
new file mode 100644
index 000000000..e0114f4b5
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_k8-sriov-cni-nofeature-noha_daily.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# k8 sriov-cni nofeature noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "k8-sriov-cni-nofeature-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc080.yaml
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-bar-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-bar-ha_daily.yaml
index 35bc0ebd8..d49b11343 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-bar-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-bar-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node4.LF","target": "node5.LF"}'
+ "host": "node4","target": "node5"}'
-
file_name: opnfv_yardstick_tc019.yaml
constraint:
@@ -113,7 +113,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -121,7 +121,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -147,7 +147,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
-
file_name: opnfv_yardstick_tc027.yaml
constraint:
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-bar-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-bar-noha_daily.yaml
index 26e92e704..362c7316c 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-bar-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-bar-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-calipso-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-calipso-noha_daily.yaml
new file mode 100644
index 000000000..3f0c4a992
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-calipso-noha_daily.yaml
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# os-nosdn-calipso-noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "os-nosdn-calipso-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc002.yaml
+-
+ file_name: opnfv_yardstick_tc005.yaml
+-
+ file_name: opnfv_yardstick_tc010.yaml
+-
+ file_name: opnfv_yardstick_tc011.yaml
+-
+ file_name: opnfv_yardstick_tc012.yaml
+-
+ file_name: opnfv_yardstick_tc014.yaml
+-
+ file_name: opnfv_yardstick_tc037.yaml
+-
+ file_name: opnfv_yardstick_tc055.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+ task_args:
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node5"}'
+-
+ file_name: opnfv_yardstick_tc063.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+ task_args:
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node5"}'
+-
+ file_name: opnfv_yardstick_tc069.yaml
+-
+ file_name: opnfv_yardstick_tc070.yaml
+-
+ file_name: opnfv_yardstick_tc071.yaml
+-
+ file_name: opnfv_yardstick_tc072.yaml
+-
+ file_name: opnfv_yardstick_tc075.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+ task_args:
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-fdio-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-fdio-noha_daily.yaml
index ec0fd224c..bd91a75c7 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-fdio-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-fdio-noha_daily.yaml
@@ -21,18 +21,12 @@ test_cases:
-
file_name: opnfv_yardstick_tc006.yaml
-
- file_name: opnfv_yardstick_tc007.yaml
--
file_name: opnfv_yardstick_tc008.yaml
-
file_name: opnfv_yardstick_tc009.yaml
-
file_name: opnfv_yardstick_tc011.yaml
-
- file_name: opnfv_yardstick_tc020.yaml
--
- file_name: opnfv_yardstick_tc021.yaml
--
file_name: opnfv_yardstick_tc037.yaml
-
file_name: opnfv_yardstick_tc038.yaml
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm-ha_daily.yaml
index 1be7d13af..854adf11b 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm-noha_daily.yaml
index 42bc651b2..b5a30487d 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs-ha_daily.yaml
index eb8d0f307..ea0853cb1 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk-ha_daily.yaml
index 625fa6ea0..201a271cc 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk-ha_daily.yaml
@@ -34,13 +34,18 @@ test_cases:
-
file_name: opnfv_yardstick_tc037.yaml
-
+ file_name: opnfv_yardstick_tc042.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+-
file_name: opnfv_yardstick_tc055.yaml
constraint:
installer: compass
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -48,7 +53,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -64,4 +69,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk-noha_daily.yaml
index 3a3ed3779..e8db0de9b 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk-noha_daily.yaml
@@ -34,13 +34,18 @@ test_cases:
-
file_name: opnfv_yardstick_tc037.yaml
-
+ file_name: opnfv_yardstick_tc042.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+-
file_name: opnfv_yardstick_tc055.yaml
constraint:
installer: compass
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -48,7 +53,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk_bar-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk_bar-ha_daily.yaml
index ef09f3c8b..ee25c1287 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk_bar-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk_bar-ha_daily.yaml
@@ -40,7 +40,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -48,7 +48,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -64,4 +64,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk_bar-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk_bar-noha_daily.yaml
index a800c5649..8603c1438 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk_bar-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-kvm_ovs_dpdk_bar-noha_daily.yaml
@@ -40,7 +40,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -48,7 +48,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-lxd-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-lxd-ha_daily.yaml
index 9de6ab2bb..a249a81e2 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-lxd-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-lxd-ha_daily.yaml
@@ -41,7 +41,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -49,7 +49,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -65,4 +65,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-lxd-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-lxd-noha_daily.yaml
index eed5da44d..40fec9fe3 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-lxd-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-lxd-noha_daily.yaml
@@ -41,7 +41,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -49,7 +49,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -65,4 +65,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-nofeature-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-nofeature-ha_daily.yaml
index 222987ec5..7c213e2d9 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-nofeature-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-nofeature-ha_daily.yaml
@@ -14,6 +14,8 @@ schema: "yardstick:suite:0.1"
name: "os-nosdn-nofeature-ha"
test_cases_dir: "tests/opnfv/test_cases/"
test_cases:
+
+# Generic test cases base on VM
-
file_name: opnfv_yardstick_tc002.yaml
-
@@ -29,150 +31,164 @@ test_cases:
-
file_name: opnfv_yardstick_tc037.yaml
-
+ file_name: opnfv_yardstick_tc069.yaml
+-
+ file_name: opnfv_yardstick_tc070.yaml
+-
+ file_name: opnfv_yardstick_tc071.yaml
+-
+ file_name: opnfv_yardstick_tc072.yaml
+-
+ file_name: opnfv_yardstick_tc076.yaml
+-
+ file_name: opnfv_yardstick_tc079.yaml
+-
+ file_name: opnfv_yardstick_tc082.yaml
+-
+ file_name: opnfv_yardstick_tc083.yaml
+
+# Generic test cases base on NODE
+-
file_name: opnfv_yardstick_tc043.yaml
constraint:
installer: compass
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node4.LF","target": "node5.LF"}'
+ "host": "node4","target": "node5"}'
-
- file_name: opnfv_yardstick_tc019.yaml
+ file_name: opnfv_yardstick_tc055.yaml
constraint:
- installer: compass,fuel
- pod: huawei-pod2,ericsson-pod1
+ installer: compass
+ pod: huawei-pod1
task_args:
- huawei-pod2: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
- ericsson-pod1: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node5"}'
-
- file_name: opnfv_yardstick_tc045.yaml
+ file_name: opnfv_yardstick_tc063.yaml
constraint:
- installer: compass,fuel
- pod: huawei-pod2,ericsson-pod1
+ installer: compass
+ pod: huawei-pod1
task_args:
- huawei-pod2: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
- ericsson-pod1: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node5"}'
-
- file_name: opnfv_yardstick_tc046.yaml
+ file_name: opnfv_yardstick_tc073.yaml
constraint:
- installer: fuel
+ installer: compass
+ pod: huawei-pod1
task_args:
- default: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
-
- file_name: opnfv_yardstick_tc047.yaml
+ file_name: opnfv_yardstick_tc075.yaml
constraint:
- installer: compass,fuel
- pod: huawei-pod2,ericsson-pod1
+ installer: compass
+ pod: huawei-pod1
task_args:
- huawei-pod2: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
- ericsson-pod1: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node1"}'
+
+# Feature test cases
-
- file_name: opnfv_yardstick_tc048.yaml
+ file_name: opnfv_yardstick_tc027.yaml
constraint:
installer: compass,fuel
- pod: huawei-pod2,ericsson-pod1
+ pod: huawei-pod1,lf-pod2
task_args:
- huawei-pod2: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
- ericsson-pod1: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml", "openrc":"/root/openrc", "external_network":"admin_floating_net"}'
-
- file_name: opnfv_yardstick_tc049.yaml
+ file_name: opnfv_yardstick_tc074.yaml
constraint:
- installer: fuel
+ installer: compass
+ pod: huawei-pod1, huawei-pod2
task_args:
- default: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
+ huawei-pod1: '{"public_network": "ext-net",
+ "StorPerf_ip": "192.168.10.6"}'
+ huawei-pod2: '{"public_network": "ext-net",
+ "StorPerf_ip": "192.168.11.2"}'
+
+# HA test cases
-
- file_name: opnfv_yardstick_tc050.yaml
+ file_name: opnfv_yardstick_tc045.yaml
constraint:
- installer: fuel
+ installer: compass,fuel
+ pod: huawei-pod1,lf-pod2
task_args:
- default: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
-
- file_name: opnfv_yardstick_tc051.yaml
+ file_name: opnfv_yardstick_tc046.yaml
constraint:
installer: compass,fuel
- pod: huawei-pod2,ericsson-pod1
+ pod: huawei-pod1,lf-pod2
task_args:
- huawei-pod2: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
- ericsson-pod1: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
-
- file_name: opnfv_yardstick_tc052.yaml
+ file_name: opnfv_yardstick_tc047.yaml
constraint:
- installer: fuel
+ installer: compass,fuel
+ pod: huawei-pod1,lf-pod2
task_args:
- default: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
-
- file_name: opnfv_yardstick_tc053.yaml
+ file_name: opnfv_yardstick_tc048.yaml
constraint:
- installer: fuel
+ installer: compass,fuel
+ pod: huawei-pod1,lf-pod2
task_args:
- default: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
-
- file_name: opnfv_yardstick_tc055.yaml
+ file_name: opnfv_yardstick_tc049.yaml
constraint:
- installer: compass
- pod: huawei-pod1
+ installer: compass,fuel
+ pod: huawei-pod1,lf-pod2
task_args:
- huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
-
- file_name: opnfv_yardstick_tc063.yaml
+ file_name: opnfv_yardstick_tc050.yaml
constraint:
- installer: compass
- pod: huawei-pod1
+ installer: compass,fuel
+ pod: huawei-pod1,lf-pod2
task_args:
- huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
--
- file_name: opnfv_yardstick_tc069.yaml
--
- file_name: opnfv_yardstick_tc070.yaml
--
- file_name: opnfv_yardstick_tc071.yaml
--
- file_name: opnfv_yardstick_tc072.yaml
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
-
- file_name: opnfv_yardstick_tc074.yaml
+ file_name: opnfv_yardstick_tc051.yaml
constraint:
- installer: compass
- pod: huawei-pod1, huawei-pod2
+ installer: compass,fuel
+ pod: huawei-pod1,lf-pod2
task_args:
- huawei-pod1: '{"public_network": "ext-net",
- "StorPerf_ip": "192.168.10.6"}'
- huawei-pod2: '{"public_network": "ext-net",
- "StorPerf_ip": "192.168.11.2"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
-
- file_name: opnfv_yardstick_tc075.yaml
+ file_name: opnfv_yardstick_tc052.yaml
constraint:
- installer: compass
- pod: huawei-pod1
+ installer: compass,fuel
+ pod: huawei-pod1,lf-pod2
task_args:
- huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
-
- file_name: opnfv_yardstick_tc027.yaml
+ file_name: opnfv_yardstick_tc053.yaml
constraint:
installer: compass,fuel
- pod: huawei-pod1,lf-pod2,ericsson-pod3,ericsson-pod4
+ pod: huawei-pod1,lf-pod2
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
- lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml", "openrc":"/root/openrc", "external_network":"admin_floating_net"}'
- ericsson-pod3: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml", "openrc":"/root/openrc", "external_network":"admin_floating_net"}'
- ericsson-pod4: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml", "openrc":"/root/openrc", "external_network":"admin_floating_net"}'
--
- file_name: opnfv_yardstick_tc076.yaml
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
-
- file_name: opnfv_yardstick_tc079.yaml
--
- file_name: opnfv_yardstick_tc073.yaml
+ file_name: opnfv_yardstick_tc019.yaml
constraint:
- installer: compass
- pod: huawei-pod1
+ installer: compass,fuel
+ pod: huawei-pod1,lf-pod2
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml"}'
--
- file_name: opnfv_yardstick_tc082.yaml
--
- file_name: opnfv_yardstick_tc083.yaml
+ lf-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml"}'
-
file_name: opnfv_yardstick_tc025.yaml
constraint:
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-nofeature-noha_daily.yaml
index 6700db406..6a6a53b2a 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-nofeature-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-nofeature-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-openbaton-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-openbaton-ha_daily.yaml
index d1b4cce1a..5dccf015b 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-openbaton-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-openbaton-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-openo-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-openo-ha_daily.yaml
index 9418e42f4..0375abcc6 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-openo-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-openo-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node4.LF","target": "node5.LF"}'
+ "host": "node4","target": "node5"}'
-
file_name: opnfv_yardstick_tc045.yaml
constraint:
@@ -97,7 +97,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -105,7 +105,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -121,7 +121,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
-
file_name: opnfv_yardstick_tc027.yaml
constraint:
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-ovs-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-ovs-ha_daily.yaml
index 3a540f27a..13eda5bc6 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-ovs-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-ovs-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-ovs-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-ovs-noha_daily.yaml
index abc336041..969e47aa2 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-ovs-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-ovs-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-ovs_dpdk-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-ovs_dpdk-ha_daily.yaml
index 10772e0cc..822191504 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-ovs_dpdk-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-ovs_dpdk-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-ovs_dpdk-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-ovs_dpdk-noha_daily.yaml
index 9b2be3710..e0f6dec7b 100644
--- a/tests/opnfv/test_suites/opnfv_os-nosdn-ovs_dpdk-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-nosdn-ovs_dpdk-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-ocl-nofeature-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-ocl-nofeature-ha_daily.yaml
index 3f2fe18a3..1b10a4e31 100644
--- a/tests/opnfv/test_suites/opnfv_os-ocl-nofeature-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-ocl-nofeature-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-ocl-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-ocl-nofeature-noha_daily.yaml
index fcc7a9bb2..dba42cc48 100644
--- a/tests/opnfv/test_suites/opnfv_os-ocl-nofeature-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-ocl-nofeature-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_vTC_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-bgpvpn-noha_daily.yaml
index f7efe51fb..e55b83301 100644
--- a/tests/opnfv/test_suites/opnfv_vTC_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl-bgpvpn-noha_daily.yaml
@@ -1,24 +1,23 @@
##############################################################################
-# Copyright (c) 2017 Ericsson AB and others.
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
##############################################################################
+
---
-# ERICSSON POD1 VTC daily task suite
+# os-odl-bgpvpn-noha daily task suite
schema: "yardstick:suite:0.1"
-name: "opnfv_vTC_daily"
+name: "os-odl-bgpvpn-noha"
test_cases_dir: "tests/opnfv/test_cases/"
test_cases:
-
- file_name: opnfv_yardstick_tc006.yaml
--
- file_name: opnfv_yardstick_tc007.yaml
+ file_name: opnfv_yardstick_tc002.yaml
-
- file_name: opnfv_yardstick_tc020.yaml
+ file_name: opnfv_yardstick_tc005.yaml
-
- file_name: opnfv_yardstick_tc021.yaml
+ file_name: opnfv_yardstick_tc012.yaml
diff --git a/tests/opnfv/test_suites/opnfv_os-odl-nofeature-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-nofeature-ha_daily.yaml
index 1ab16e5d1..f174a90e4 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl-nofeature-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl-nofeature-ha_daily.yaml
@@ -37,7 +37,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -45,7 +45,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -61,4 +61,19 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
+-
+ file_name: opnfv_yardstick_tc092.yaml
+ constraint:
+ installer: apex
+ task_args:
+ default: '{"file": "etc/yardstick/nodes/apex_baremetal/pod.yaml",
+ "attack_host": "node6"}'
+-
+ file_name: opnfv_yardstick_tc093.yaml
+ constraint:
+ installer: apex
+ task_args:
+ default: '{"file": "etc/yardstick/nodes/apex_baremetal/pod.yaml",
+ "attack_host_cmp_one": "node4","attack_host_cmp_two": "node5",
+ "systemd_service_name": "openvswitch"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-nofeature-noha_daily.yaml
index 71b9dff6b..feb8a6631 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl-nofeature-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl-nofeature-noha_daily.yaml
@@ -37,7 +37,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -45,7 +45,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -54,3 +54,18 @@ test_cases:
file_name: opnfv_yardstick_tc071.yaml
-
file_name: opnfv_yardstick_tc072.yaml
+-
+ file_name: opnfv_yardstick_tc087.yaml
+ constraint:
+ installer: fuel
+ task_args:
+ default: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml",
+ "attack_host": "node6"}'
+-
+ file_name: opnfv_yardstick_tc093.yaml
+ constraint:
+ installer: apex
+ task_args:
+ default: '{"file": "etc/yardstick/nodes/apex_baremetal/pod.yaml",
+ "attack_host_cmp_one": "node4","attack_host_cmp_two": "node5",
+ "systemd_service_name": "openvswitch"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl-ovs-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-ovs-ha_daily.yaml
index b5e53b94c..ce36ca0bf 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl-ovs-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl-ovs-ha_daily.yaml
@@ -37,7 +37,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -45,7 +45,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -61,4 +61,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl-ovs-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-ovs-noha_daily.yaml
new file mode 100644
index 000000000..83b370066
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_os-odl-ovs-noha_daily.yaml
@@ -0,0 +1,64 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# os-odl-ovs-noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "os-odl-ovs-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc002.yaml
+-
+ file_name: opnfv_yardstick_tc005.yaml
+-
+ file_name: opnfv_yardstick_tc010.yaml
+-
+ file_name: opnfv_yardstick_tc011.yaml
+ constraint:
+ installer: compass,fuel
+-
+ file_name: opnfv_yardstick_tc012.yaml
+-
+ file_name: opnfv_yardstick_tc014.yaml
+-
+ file_name: opnfv_yardstick_tc037.yaml
+-
+ file_name: opnfv_yardstick_tc055.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+ task_args:
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node5"}'
+-
+ file_name: opnfv_yardstick_tc063.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+ task_args:
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node5"}'
+-
+ file_name: opnfv_yardstick_tc069.yaml
+-
+ file_name: opnfv_yardstick_tc070.yaml
+-
+ file_name: opnfv_yardstick_tc071.yaml
+-
+ file_name: opnfv_yardstick_tc072.yaml
+-
+ file_name: opnfv_yardstick_tc075.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+ task_args:
+ huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl-ovs_dpdk-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-ovs_dpdk-ha_daily.yaml
new file mode 100644
index 000000000..734d31d15
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_os-odl-ovs_dpdk-ha_daily.yaml
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# os-odl-ovs_dpdk-ha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "os-odl-ovs_dpdk-ha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc002.yaml
+-
+ file_name: opnfv_yardstick_tc005.yaml
+-
+ file_name: opnfv_yardstick_tc010.yaml
+-
+ file_name: opnfv_yardstick_tc011.yaml
+-
+ file_name: opnfv_yardstick_tc012.yaml
+-
+ file_name: opnfv_yardstick_tc014.yaml
+-
+ file_name: opnfv_yardstick_tc037.yaml
+-
+ file_name: opnfv_yardstick_tc069.yaml
+-
+ file_name: opnfv_yardstick_tc070.yaml
+-
+ file_name: opnfv_yardstick_tc071.yaml
+-
+ file_name: opnfv_yardstick_tc072.yaml
diff --git a/tests/opnfv/test_suites/opnfv_os-odl-ovs_dpdk-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-ovs_dpdk-noha_daily.yaml
new file mode 100644
index 000000000..e87dba74b
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_os-odl-ovs_dpdk-noha_daily.yaml
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# os-odl-ovs_dpdk-noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "os-odl-ovs_dpdk-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc002.yaml
+-
+ file_name: opnfv_yardstick_tc005.yaml
+-
+ file_name: opnfv_yardstick_tc010.yaml
+-
+ file_name: opnfv_yardstick_tc011.yaml
+-
+ file_name: opnfv_yardstick_tc012.yaml
+-
+ file_name: opnfv_yardstick_tc014.yaml
+-
+ file_name: opnfv_yardstick_tc037.yaml
+-
+ file_name: opnfv_yardstick_tc069.yaml
+-
+ file_name: opnfv_yardstick_tc070.yaml
+-
+ file_name: opnfv_yardstick_tc071.yaml
+-
+ file_name: opnfv_yardstick_tc072.yaml
diff --git a/tests/opnfv/test_suites/opnfv_os-odl-ovs_offload-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-ovs_offload-noha_daily.yaml
new file mode 100644
index 000000000..27d100a61
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_os-odl-ovs_offload-noha_daily.yaml
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# os-odl-ovs_offload-noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "os-odl-ovs_offload-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc002.yaml
+-
+ file_name: opnfv_yardstick_tc005.yaml
+-
+ file_name: opnfv_yardstick_tc010.yaml
+-
+ file_name: opnfv_yardstick_tc011.yaml
+-
+ file_name: opnfv_yardstick_tc012.yaml
+-
+ file_name: opnfv_yardstick_tc014.yaml
+-
+ file_name: opnfv_yardstick_tc037.yaml
+-
+ file_name: opnfv_yardstick_tc069.yaml
+-
+ file_name: opnfv_yardstick_tc070.yaml
+-
+ file_name: opnfv_yardstick_tc071.yaml
+-
+ file_name: opnfv_yardstick_tc072.yaml
diff --git a/tests/opnfv/test_suites/opnfv_os-odl-sfc-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-sfc-ha_daily.yaml
index b464bfeae..6c3f22f57 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl-sfc-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl-sfc-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl-sfc-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-sfc-noha_daily.yaml
index ba870417d..08027373f 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl-sfc-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl-sfc-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl-sriov-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-sriov-noha_daily.yaml
new file mode 100644
index 000000000..b6d0dd6af
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_os-odl-sriov-noha_daily.yaml
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# os-odl-sriov-noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "os-odl-sriov-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc002.yaml
+-
+ file_name: opnfv_yardstick_tc005.yaml
+-
+ file_name: opnfv_yardstick_tc010.yaml
+-
+ file_name: opnfv_yardstick_tc011.yaml
+-
+ file_name: opnfv_yardstick_tc012.yaml
+-
+ file_name: opnfv_yardstick_tc014.yaml
+-
+ file_name: opnfv_yardstick_tc037.yaml
+-
+ file_name: opnfv_yardstick_tc069.yaml
+-
+ file_name: opnfv_yardstick_tc070.yaml
+-
+ file_name: opnfv_yardstick_tc071.yaml
+-
+ file_name: opnfv_yardstick_tc072.yaml
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l2-bgpvpn-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l2-bgpvpn-ha_daily.yaml
index 43aae7101..78f461d82 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l2-bgpvpn-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l2-bgpvpn-ha_daily.yaml
@@ -21,7 +21,7 @@ test_cases:
pod: ericsson-pod2
task_args:
ericsson-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml",
- "host": "node1.LF","target": "node2.LF"}'
+ "host": "node1","target": "node2"}'
-
file_name: opnfv_yardstick_tc002.yaml
-
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l2-bgpvpn-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l2-bgpvpn-noha_daily.yaml
index 372012928..820db3771 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l2-bgpvpn-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l2-bgpvpn-noha_daily.yaml
@@ -21,7 +21,7 @@ test_cases:
pod: ericsson-pod2
task_args:
ericsson-pod2: '{"file": "etc/yardstick/nodes/fuel_baremetal/pod.yaml",
- "host": "node1.LF","target": "node2.LF"}'
+ "host": "node1","target": "node2"}'
-
file_name: opnfv_yardstick_tc002.yaml
-
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l2-fdio-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l2-fdio-noha_daily.yaml
index 7172979c7..722d885b6 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l2-fdio-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l2-fdio-noha_daily.yaml
@@ -21,18 +21,12 @@ test_cases:
-
file_name: opnfv_yardstick_tc006.yaml
-
- file_name: opnfv_yardstick_tc007.yaml
--
file_name: opnfv_yardstick_tc008.yaml
-
file_name: opnfv_yardstick_tc009.yaml
-
file_name: opnfv_yardstick_tc011.yaml
-
- file_name: opnfv_yardstick_tc020.yaml
--
- file_name: opnfv_yardstick_tc021.yaml
--
file_name: opnfv_yardstick_tc037.yaml
-
file_name: opnfv_yardstick_tc038.yaml
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l2-moon-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l2-moon-ha_daily.yaml
index 16c04de37..03a533872 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l2-moon-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l2-moon-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l2-moon-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l2-moon-noha_daily.yaml
index cff147720..1dcdeae8e 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l2-moon-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l2-moon-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l2-nofeature-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l2-nofeature-ha_daily.yaml
index b8b8c4695..78883c9da 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l2-nofeature-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l2-nofeature-ha_daily.yaml
@@ -37,7 +37,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -45,7 +45,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -61,4 +61,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l2-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l2-nofeature-noha_daily.yaml
index cd352cc1b..163c21716 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l2-nofeature-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l2-nofeature-noha_daily.yaml
@@ -37,7 +37,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -45,7 +45,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -61,4 +61,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l2-sfc-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l2-sfc-ha_daily.yaml
index 1dde1cb25..86e84916d 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l2-sfc-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l2-sfc-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l2-sfc-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l2-sfc-noha_daily.yaml
index 8d7098160..4101fa970 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l2-sfc-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l2-sfc-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l3-nofeature-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l3-nofeature-ha_daily.yaml
index a503db99e..d7e7bbb87 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l3-nofeature-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l3-nofeature-ha_daily.yaml
@@ -37,7 +37,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -45,7 +45,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -61,4 +61,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l3-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l3-nofeature-noha_daily.yaml
index e83aaec9d..6b29394ce 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l3-nofeature-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l3-nofeature-noha_daily.yaml
@@ -37,7 +37,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -45,7 +45,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
diff --git a/tests/opnfv/test_suites/opnfv_os-odl_l3-ovs-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl_l3-ovs-ha_daily.yaml
index 4165c5464..c347a80b9 100644
--- a/tests/opnfv/test_suites/opnfv_os-odl_l3-ovs-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl_l3-ovs-ha_daily.yaml
@@ -37,7 +37,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -45,7 +45,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -61,4 +61,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-onos-nofeature-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-onos-nofeature-ha_daily.yaml
index ed8894ce1..536341b0f 100644
--- a/tests/opnfv/test_suites/opnfv_os-onos-nofeature-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-onos-nofeature-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-onos-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-onos-nofeature-noha_daily.yaml
index 94390d525..119297563 100644
--- a/tests/opnfv/test_suites/opnfv_os-onos-nofeature-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-onos-nofeature-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-onos-sfc-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-onos-sfc-ha_daily.yaml
index 18e27d6d6..3ad6122dd 100644
--- a/tests/opnfv/test_suites/opnfv_os-onos-sfc-ha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-onos-sfc-ha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_os-onos-sfc-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-onos-sfc-noha_daily.yaml
index d56be6152..b86599f72 100644
--- a/tests/opnfv/test_suites/opnfv_os-onos-sfc-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-onos-sfc-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
diff --git a/tests/opnfv/test_suites/opnfv_os-ovn-nofeature-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-ovn-nofeature-ha_daily.yaml
new file mode 100644
index 000000000..d0677280c
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_os-ovn-nofeature-ha_daily.yaml
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+---
+# opnfv os-ovn-nofeature-ha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "os-ovn-nofeature-ha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc002.yaml
+-
+ file_name: opnfv_yardstick_tc005.yaml
+-
+ file_name: opnfv_yardstick_tc010.yaml
+-
+ file_name: opnfv_yardstick_tc011.yaml
+-
+ file_name: opnfv_yardstick_tc012.yaml
+-
+ file_name: opnfv_yardstick_tc014.yaml
+-
+ file_name: opnfv_yardstick_tc037.yaml
+-
+ file_name: opnfv_yardstick_tc069.yaml
+-
+ file_name: opnfv_yardstick_tc070.yaml
+-
+ file_name: opnfv_yardstick_tc071.yaml
+-
+ file_name: opnfv_yardstick_tc072.yaml
diff --git a/tests/opnfv/test_suites/opnfv_os-ovn-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-ovn-nofeature-noha_daily.yaml
index 567642eda..dbbda6872 100644
--- a/tests/opnfv/test_suites/opnfv_os-ovn-nofeature-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-ovn-nofeature-noha_daily.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -59,4 +59,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/opnfv/test_suites/opnfv_performance.yaml b/tests/opnfv/test_suites/opnfv_performance.yaml
index 948d0633e..10bc6071c 100644
--- a/tests/opnfv/test_suites/opnfv_performance.yaml
+++ b/tests/opnfv/test_suites/opnfv_performance.yaml
@@ -35,7 +35,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node4.LF","target": "node5.LF"}'
+ "host": "node4","target": "node5"}'
-
file_name: opnfv_yardstick_tc055.yaml
constraint:
@@ -43,7 +43,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC055"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc063.yaml
constraint:
@@ -51,7 +51,7 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node5.yardstick-TC063"}'
+ "host": "node5"}'
-
file_name: opnfv_yardstick_tc069.yaml
-
@@ -67,4 +67,4 @@ test_cases:
pod: huawei-pod1
task_args:
huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
- "host": "node1.LF"}'
+ "host": "node1"}'
diff --git a/tests/unit/apiserver/utils/test_influx.py b/tests/unit/apiserver/utils/test_influx.py
deleted file mode 100644
index aff0cab5c..000000000
--- a/tests/unit/apiserver/utils/test_influx.py
+++ /dev/null
@@ -1,62 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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 __future__ import absolute_import
-import unittest
-import mock
-
-from api.utils import influx
-
-import six.moves.configparser as ConfigParser
-
-
-class GetDataDbClientTestCase(unittest.TestCase):
-
- @mock.patch('api.utils.influx.ConfigParser')
- def test_get_data_db_client_dispatcher_not_influxdb(self, mock_parser):
- mock_parser.ConfigParser().get.return_value = 'file'
- # reset exception to avoid
- # TypeError: catching classes that do not inherit from BaseException
- mock_parser.NoOptionError = ConfigParser.NoOptionError
- try:
- influx.get_data_db_client()
- except Exception as e:
- self.assertIsInstance(e, RuntimeError)
-
-
-class GetIpTestCase(unittest.TestCase):
-
- def test_get_url(self):
- url = 'http://localhost:8086/hello'
- output = influx._get_ip(url)
-
- result = 'localhost'
- self.assertEqual(result, output)
-
-
-class QueryTestCase(unittest.TestCase):
-
- @mock.patch('api.utils.influx.ConfigParser')
- def test_query_dispatcher_not_influxdb(self, mock_parser):
- mock_parser.ConfigParser().get.return_value = 'file'
- # reset exception to avoid
- # TypeError: catching classes that do not inherit from BaseException
- mock_parser.NoOptionError = ConfigParser.NoOptionError
- try:
- sql = 'select * form tasklist'
- influx.query(sql)
- except Exception as e:
- self.assertIsInstance(e, RuntimeError)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/contexts/standalone/test_model.py b/tests/unit/benchmark/contexts/standalone/test_model.py
deleted file mode 100644
index 31ec2b7d1..000000000
--- a/tests/unit/benchmark/contexts/standalone/test_model.py
+++ /dev/null
@@ -1,414 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Unittest for yardstick.benchmark.contexts.standalone.model
-
-from __future__ import absolute_import
-import copy
-import os
-import unittest
-import mock
-
-from xml.etree import ElementTree
-
-from yardstick.benchmark.contexts.standalone import model
-from yardstick.network_services import utils
-from yardstick.network_services.helpers import cpu
-
-
-XML_SAMPLE = """<?xml version="1.0"?>
-<domain type="kvm">
- <devices>
- </devices>
-</domain>
-"""
-
-XML_SAMPLE_INTERFACE = """<?xml version="1.0"?>
-<domain type="kvm">
- <devices>
- <interface>
- </interface>
- </devices>
-</domain>
-"""
-
-class ModelLibvirtTestCase(unittest.TestCase):
-
- def setUp(self):
- self.xml = ElementTree.ElementTree(
- element=ElementTree.fromstring(XML_SAMPLE))
- self.pci_address_str = '0001:04:03.2'
- self.pci_address = utils.PciAddress(self.pci_address_str)
- self.mac = '00:00:00:00:00:01'
- self._mock_write_xml = mock.patch.object(ElementTree.ElementTree,
- 'write')
- self.mock_write_xml = self._mock_write_xml.start()
-
- self.addCleanup(self._cleanup)
-
- def _cleanup(self):
- self._mock_write_xml.stop()
-
- def test_check_if_vm_exists_and_delete(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- # NOTE(ralonsoh): this test doesn't cover function execution.
- model.Libvirt.check_if_vm_exists_and_delete("vm_0", ssh_mock)
-
- def test_virsh_create_vm(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- # NOTE(ralonsoh): this test doesn't cover function execution.
- model.Libvirt.virsh_create_vm(ssh_mock, "vm_0")
-
- def test_virsh_destroy_vm(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- # NOTE(ralonsoh): this test doesn't cover function execution.
- model.Libvirt.virsh_destroy_vm("vm_0", ssh_mock)
-
- def test_add_interface_address(self):
- xml = ElementTree.ElementTree(
- element=ElementTree.fromstring(XML_SAMPLE_INTERFACE))
- interface = xml.find('devices').find('interface')
- result = model.Libvirt._add_interface_address(interface, self.pci_address)
- self.assertEqual('pci', result.get('type'))
- self.assertEqual('0x{}'.format(self.pci_address.domain),
- result.get('domain'))
- self.assertEqual('0x{}'.format(self.pci_address.bus),
- result.get('bus'))
- self.assertEqual('0x{}'.format(self.pci_address.slot),
- result.get('slot'))
- self.assertEqual('0x{}'.format(self.pci_address.function),
- result.get('function'))
-
- def test_add_ovs_interfaces(self):
- xml_input = mock.Mock()
- with mock.patch.object(ElementTree, 'parse', return_value=self.xml) \
- as mock_parse:
- xml = copy.deepcopy(self.xml)
- mock_parse.return_value = xml
- model.Libvirt.add_ovs_interface(
- '/usr/local', 0, self.pci_address_str, self.mac, xml_input)
- mock_parse.assert_called_once_with(xml_input)
- self.mock_write_xml.assert_called_once_with(xml_input)
- interface = xml.find('devices').find('interface')
- self.assertEqual('vhostuser', interface.get('type'))
- mac = interface.find('mac')
- self.assertEqual(self.mac, mac.get('address'))
- source = interface.find('source')
- self.assertEqual('unix', source.get('type'))
- self.assertEqual('/usr/local/var/run/openvswitch/dpdkvhostuser0',
- source.get('path'))
- self.assertEqual('client', source.get('mode'))
- _model = interface.find('model')
- self.assertEqual('virtio', _model.get('type'))
- driver = interface.find('driver')
- self.assertEqual('4', driver.get('queues'))
- host = driver.find('host')
- self.assertEqual('off', host.get('mrg_rxbuf'))
- self.assertIsNotNone(interface.find('address'))
-
- def test_add_sriov_interfaces(self):
- xml_input = mock.Mock()
- with mock.patch.object(ElementTree, 'parse', return_value=self.xml) \
- as mock_parse:
- xml = copy.deepcopy(self.xml)
- mock_parse.return_value = xml
- vf_pci = '0001:05:04.2'
- model.Libvirt.add_sriov_interfaces(
- self.pci_address_str, vf_pci, self.mac, xml_input)
- mock_parse.assert_called_once_with(xml_input)
- self.mock_write_xml.assert_called_once_with(xml_input)
- interface = xml.find('devices').find('interface')
- self.assertEqual('yes', interface.get('managed'))
- self.assertEqual('hostdev', interface.get('type'))
- mac = interface.find('mac')
- self.assertEqual(self.mac, mac.get('address'))
- source = interface.find('source')
- self.assertIsNotNone(source.find('address'))
- self.assertIsNotNone(interface.find('address'))
-
- def test_create_snapshot_qemu(self):
- result = "/var/lib/libvirt/images/0.qcow2"
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- image = model.Libvirt.create_snapshot_qemu(ssh_mock, "0", "ubuntu.img")
- self.assertEqual(image, result)
-
- @mock.patch.object(model.Libvirt, 'pin_vcpu_for_perf')
- @mock.patch.object(model.Libvirt, 'create_snapshot_qemu')
- def test_build_vm_xml(self, mock_create_snapshot_qemu,
- *args):
- # NOTE(ralonsoh): this test doesn't cover function execution. This test
- # should also check mocked function calls.
- result = [4]
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- mock_create_snapshot_qemu.return_value = "0.img"
-
- status = model.Libvirt.build_vm_xml(ssh_mock, {}, "test", "vm_0", 0)
- self.assertEqual(status[0], result[0])
-
- def test_update_interrupts_hugepages_perf(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- # NOTE(ralonsoh): this test doesn't cover function execution. This test
- # should also check mocked function calls.
- model.Libvirt.update_interrupts_hugepages_perf(ssh_mock)
-
- @mock.patch.object(cpu.CpuSysCores, 'get_core_socket')
- def test_pin_vcpu_for_perf(self, mock_get_core_socket):
- mock_get_core_socket.return_value = {
- 'cores_per_socket': 1,
- 'thread_per_core': 1,
- '0': [1, 2]
- }
- # NOTE(ralonsoh): this test doesn't cover function execution. This
- # function needs more tests.
- model.Libvirt.pin_vcpu_for_perf(mock.Mock())
-
-
-class StandaloneContextHelperTestCase(unittest.TestCase):
-
- NODE_SAMPLE = "nodes_sample.yaml"
- NODE_SRIOV_SAMPLE = "nodes_sriov_sample.yaml"
-
- NETWORKS = {
- 'mgmt': {'cidr': '152.16.100.10/24'},
- 'private_0': {
- 'phy_port': "0000:05:00.0",
- 'vpci': "0000:00:07.0",
- 'cidr': '152.16.100.10/24',
- 'gateway_ip': '152.16.100.20'},
- 'public_0': {
- 'phy_port': "0000:05:00.1",
- 'vpci': "0000:00:08.0",
- 'cidr': '152.16.40.10/24',
- 'gateway_ip': '152.16.100.20'}
- }
-
- def setUp(self):
- self.helper = model.StandaloneContextHelper()
-
- def test___init__(self):
- self.assertIsNone(self.helper.file_path)
-
- def test_install_req_libs(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "a", ""))
- ssh.return_value = ssh_mock
- # NOTE(ralonsoh): this test doesn't cover function execution. This test
- # should also check mocked function calls.
- model.StandaloneContextHelper.install_req_libs(ssh_mock)
-
- def test_get_kernel_module(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "i40e", ""))
- ssh.return_value = ssh_mock
- # NOTE(ralonsoh): this test doesn't cover function execution. This test
- # should also check mocked function calls.
- model.StandaloneContextHelper.get_kernel_module(
- ssh_mock, "05:00.0", None)
-
- @mock.patch.object(model.StandaloneContextHelper, 'get_kernel_module')
- def test_get_nic_details(self, mock_get_kernel_module):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "i40e ixgbe", ""))
- ssh.return_value = ssh_mock
- mock_get_kernel_module.return_value = "i40e"
- # NOTE(ralonsoh): this test doesn't cover function execution. This test
- # should also check mocked function calls.
- model.StandaloneContextHelper.get_nic_details(
- ssh_mock, self.NETWORKS, 'dpdk-devbind.py')
-
- def test_get_virtual_devices(self):
- pattern = "PCI_SLOT_NAME=0000:05:00.0"
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, pattern, ""))
- ssh.return_value = ssh_mock
- # NOTE(ralonsoh): this test doesn't cover function execution. This test
- # should also check mocked function calls.
- model.StandaloneContextHelper.get_virtual_devices(
- ssh_mock, '0000:00:05.0')
-
- def _get_file_abspath(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- file_path = os.path.join(curr_path, filename)
- return file_path
-
- def test_read_config_file(self):
- self.helper.file_path = self._get_file_abspath(self.NODE_SAMPLE)
- status = self.helper.read_config_file()
- self.assertIsNotNone(status)
-
- def test_parse_pod_file(self):
- self.helper.file_path = self._get_file_abspath("dummy")
- self.assertRaises(IOError, self.helper.parse_pod_file,
- self.helper.file_path)
-
- self.helper.file_path = self._get_file_abspath(self.NODE_SAMPLE)
- self.assertRaises(TypeError, self.helper.parse_pod_file,
- self.helper.file_path)
-
- self.helper.file_path = self._get_file_abspath(self.NODE_SRIOV_SAMPLE)
- self.assertIsNotNone(self.helper.parse_pod_file(self.helper.file_path))
-
- def test_get_mac_address(self):
- status = model.StandaloneContextHelper.get_mac_address()
- self.assertIsNotNone(status)
-
- @mock.patch('yardstick.ssh.SSH')
- def test_get_mgmt_ip(self, *args):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = mock.Mock(
- return_value=(1, "1.2.3.4 00:00:00:00:00:01", ""))
- ssh.return_value = ssh_mock
- # NOTE(ralonsoh): this test doesn't cover function execution. This test
- # should also check mocked function calls.
- status = model.StandaloneContextHelper.get_mgmt_ip(
- ssh_mock, "00:00:00:00:00:01", "1.1.1.1/24", {})
- self.assertIsNotNone(status)
-
- @mock.patch('yardstick.ssh.SSH')
- def test_get_mgmt_ip_no(self, *args):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "", ""))
- ssh.return_value = ssh_mock
- # NOTE(ralonsoh): this test doesn't cover function execution. This test
- # should also check mocked function calls.
- model.WAIT_FOR_BOOT = 0
- status = model.StandaloneContextHelper.get_mgmt_ip(
- ssh_mock, "99", "1.1.1.1/24", {})
- self.assertIsNone(status)
-
-
-class ServerTestCase(unittest.TestCase):
-
- NETWORKS = {
- 'mgmt': {'cidr': '152.16.100.10/24'},
- 'private_0': {
- 'phy_port': "0000:05:00.0",
- 'vpci': "0000:00:07.0",
- 'driver': 'i40e',
- 'mac': '',
- 'cidr': '152.16.100.10/24',
- 'gateway_ip': '152.16.100.20'},
- 'public_0': {
- 'phy_port': "0000:05:00.1",
- 'vpci': "0000:00:08.0",
- 'driver': 'i40e',
- 'mac': '',
- 'cidr': '152.16.40.10/24',
- 'gateway_ip': '152.16.100.20'}
- }
-
- def setUp(self):
- self.server = model.Server()
-
- def test___init__(self):
- self.assertIsNotNone(self.server)
-
- def test_build_vnf_interfaces(self):
- vnf = {
- "network_ports": {
- 'mgmt': {'cidr': '152.16.100.10/24'},
- 'xe0': ['private_0'],
- 'xe1': ['public_0'],
- }
- }
- status = model.Server.build_vnf_interfaces(vnf, self.NETWORKS)
- self.assertIsNotNone(status)
-
- def test_generate_vnf_instance(self):
- vnf = {
- "network_ports": {
- 'mgmt': {'cidr': '152.16.100.10/24'},
- 'xe0': ['private_0'],
- 'xe1': ['public_0'],
- }
- }
- status = self.server.generate_vnf_instance(
- {}, self.NETWORKS, '1.1.1.1/24', 'vm_0', vnf, '00:00:00:00:00:01')
- self.assertIsNotNone(status)
-
-class OvsDeployTestCase(unittest.TestCase):
-
- NETWORKS = {
- 'mgmt': {'cidr': '152.16.100.10/24'},
- 'private_0': {
- 'phy_port': "0000:05:00.0",
- 'vpci': "0000:00:07.0",
- 'driver': 'i40e',
- 'mac': '',
- 'cidr': '152.16.100.10/24',
- 'gateway_ip': '152.16.100.20'},
- 'public_0': {
- 'phy_port': "0000:05:00.1",
- 'vpci': "0000:00:08.0",
- 'driver': 'i40e',
- 'mac': '',
- 'cidr': '152.16.40.10/24',
- 'gateway_ip': '152.16.100.20'}
- }
- @mock.patch('yardstick.ssh.SSH')
- def setUp(self, mock_ssh):
- self.ovs_deploy = model.OvsDeploy(mock_ssh, '/tmp/dpdk-devbind.py', {})
-
- def test___init__(self):
- self.assertIsNotNone(self.ovs_deploy.connection)
-
- @mock.patch('yardstick.benchmark.contexts.standalone.model.os')
- def test_prerequisite(self, *args):
- # NOTE(ralonsoh): this test should check mocked function calls.
- self.ovs_deploy.helper = mock.Mock()
- self.assertIsNone(self.ovs_deploy.prerequisite())
-
- @mock.patch('yardstick.benchmark.contexts.standalone.model.os')
- def test_prerequisite_2(self, *args):
- # NOTE(ralonsoh): this test should check mocked function calls. Rename
- # this test properly.
- self.ovs_deploy.helper = mock.Mock()
- self.ovs_deploy.connection.execute = mock.Mock(
- return_value=(1, '1.2.3.4 00:00:00:00:00:01', ''))
- self.ovs_deploy.prerequisite = mock.Mock()
- self.assertIsNone(self.ovs_deploy.ovs_deploy())
diff --git a/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py b/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py
deleted file mode 100644
index 5d1b0421c..000000000
--- a/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py
+++ /dev/null
@@ -1,377 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Unittest for yardstick.benchmark.contexts.standalone.standaloneovs
-
-from __future__ import absolute_import
-import os
-import unittest
-import errno
-import mock
-
-from yardstick.common import constants as consts
-from yardstick.benchmark.contexts.standalone import ovs_dpdk
-from yardstick.network_services.utils import PciAddress
-
-
-class OvsDpdkContextTestCase(unittest.TestCase):
-
- NODES_SAMPLE = "nodes_sample.yaml"
- NODES_ovs_dpdk_SAMPLE = "nodes_ovs_dpdk_sample.yaml"
- NODES_DUPLICATE_SAMPLE = "nodes_duplicate_sample.yaml"
-
- ATTRS = {
- 'name': 'StandaloneOvsDpdk',
- 'file': 'pod',
- 'flavor': {},
- 'servers': {},
- 'networks': {},
- }
-
- NETWORKS = {
- 'mgmt': {'cidr': '152.16.100.10/24'},
- 'private_0': {
- 'phy_port': "0000:05:00.0",
- 'vpci': "0000:00:07.0",
- 'cidr': '152.16.100.10/24',
- 'interface': 'if0',
- 'mac': "00:00:00:00:00:01",
- 'vf_pci': {'vf_pci': 0},
- 'gateway_ip': '152.16.100.20'},
- 'public_0': {
- 'phy_port': "0000:05:00.1",
- 'vpci': "0000:00:08.0",
- 'cidr': '152.16.40.10/24',
- 'interface': 'if0',
- 'vf_pci': {'vf_pci': 0},
- 'mac': "00:00:00:00:00:01",
- 'gateway_ip': '152.16.100.20'},
- }
-
- def setUp(self):
- self.ovs_dpdk = ovs_dpdk.OvsDpdkContext()
-
- @mock.patch('yardstick.benchmark.contexts.standalone.model.StandaloneContextHelper')
- @mock.patch('yardstick.benchmark.contexts.standalone.model.Server')
- def test___init__(self, mock_helper, mock_server):
- self.ovs_dpdk.helper = mock_helper
- self.ovs_dpdk.vnf_node = mock_server
- self.assertIsNone(self.ovs_dpdk.file_path)
- self.assertEqual(self.ovs_dpdk.first_run, True)
-
- def test_init(self):
- self.ovs_dpdk.helper.parse_pod_file = mock.Mock(return_value=[{}, {}, {}])
- self.assertIsNone(self.ovs_dpdk.init(self.ATTRS))
-
- def test_setup_ovs(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- self.ovs_dpdk.connection = ssh_mock
- self.ovs_dpdk.networks = self.NETWORKS
- self.ovs_dpdk.ovs_properties = {}
- self.assertIsNone(self.ovs_dpdk.setup_ovs())
-
- def test_start_ovs_serverswitch(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- self.ovs_dpdk.connection = ssh_mock
- self.ovs_dpdk.networks = self.NETWORKS
- self.ovs_dpdk.ovs_properties = {}
- self.ovs_dpdk.wait_for_vswitchd = 0
- self.assertIsNone(self.ovs_dpdk.start_ovs_serverswitch())
-
- def test_setup_ovs_bridge_add_flows(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- self.ovs_dpdk.connection = ssh_mock
- self.ovs_dpdk.networks = self.NETWORKS
- self.ovs_dpdk.ovs_properties = {
- 'version': {'ovs': '2.7.0'}
- }
- self.ovs_dpdk.wait_for_vswitchd = 0
- self.assertIsNone(self.ovs_dpdk.setup_ovs_bridge_add_flows())
-
- def test_cleanup_ovs_dpdk_env(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- self.ovs_dpdk.connection = ssh_mock
- self.ovs_dpdk.networks = self.NETWORKS
- self.ovs_dpdk.ovs_properties = {
- 'version': {'ovs': '2.7.0'}
- }
- self.ovs_dpdk.wait_for_vswitchd = 0
- self.assertIsNone(self.ovs_dpdk.cleanup_ovs_dpdk_env())
-
- @mock.patch('yardstick.benchmark.contexts.standalone.model.OvsDeploy')
- def test_check_ovs_dpdk_env(self, mock_ovs):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "a", ""))
- ssh.return_value = ssh_mock
- self.ovs_dpdk.connection = ssh_mock
- self.ovs_dpdk.networks = self.NETWORKS
- self.ovs_dpdk.ovs_properties = {
- 'version': {'ovs': '2.7.0', 'dpdk': '16.11.1'}
- }
- self.ovs_dpdk.wait_for_vswitchd = 0
- self.ovs_dpdk.cleanup_ovs_dpdk_env = mock.Mock()
- self.assertIsNone(self.ovs_dpdk.check_ovs_dpdk_env())
- self.ovs_dpdk.ovs_properties = {
- 'version': {'ovs': '2.0.0'}
- }
- self.ovs_dpdk.wait_for_vswitchd = 0
- self.cleanup_ovs_dpdk_env = mock.Mock()
- mock_ovs.deploy = mock.Mock()
- self.assertRaises(Exception, self.ovs_dpdk.check_ovs_dpdk_env)
-
- @mock.patch('yardstick.ssh.SSH')
- def test_deploy(self, mock_ssh):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- self.ovs_dpdk.vm_deploy = False
- self.assertIsNone(self.ovs_dpdk.deploy())
-
- self.ovs_dpdk.vm_deploy = True
- self.ovs_dpdk.host_mgmt = {}
- self.ovs_dpdk.install_req_libs = mock.Mock()
- self.ovs_dpdk.helper.get_nic_details = mock.Mock(return_value={})
- self.ovs_dpdk.check_ovs_dpdk_env = mock.Mock(return_value={})
- self.ovs_dpdk.setup_ovs = mock.Mock(return_value={})
- self.ovs_dpdk.start_ovs_serverswitch = mock.Mock(return_value={})
- self.ovs_dpdk.setup_ovs_bridge_add_flows = mock.Mock(return_value={})
- self.ovs_dpdk.setup_ovs_dpdk_context = mock.Mock(return_value={})
- self.ovs_dpdk.wait_for_vnfs_to_start = mock.Mock(return_value={})
- self.assertIsNone(self.ovs_dpdk.deploy())
-
- @mock.patch('yardstick.benchmark.contexts.standalone.ovs_dpdk.Libvirt')
- @mock.patch('yardstick.ssh.SSH')
- def test_undeploy(self, mock_ssh, mock_libvirt):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- self.ovs_dpdk.vm_deploy = False
- self.assertIsNone(self.ovs_dpdk.undeploy())
-
- self.ovs_dpdk.vm_deploy = True
- self.ovs_dpdk.connection = ssh_mock
- self.ovs_dpdk.vm_names = ['vm_0', 'vm_1']
- self.ovs_dpdk.drivers = ['vm_0', 'vm_1']
- self.ovs_dpdk.cleanup_ovs_dpdk_env = mock.Mock()
- self.ovs_dpdk.networks = self.NETWORKS
- self.assertIsNone(self.ovs_dpdk.undeploy())
-
- def _get_file_abspath(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- file_path = os.path.join(curr_path, filename)
- return file_path
-
- def test__get_server_with_dic_attr_name(self):
-
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_ovs_dpdk_SAMPLE)
- }
-
- self.ovs_dpdk.init(attrs)
-
- attr_name = {'name': 'foo.bar'}
- result = self.ovs_dpdk._get_server(attr_name)
-
- self.assertEqual(result, None)
-
- def test__get_server_not_found(self):
-
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_ovs_dpdk_SAMPLE)
- }
-
- self.ovs_dpdk.helper.parse_pod_file = mock.Mock(return_value=[{}, {}, {}])
- self.ovs_dpdk.init(attrs)
-
- attr_name = 'bar.foo'
- result = self.ovs_dpdk._get_server(attr_name)
-
- self.assertEqual(result, None)
-
- def test__get_server_mismatch(self):
-
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_ovs_dpdk_SAMPLE)
- }
-
- self.ovs_dpdk.init(attrs)
-
- attr_name = 'bar.foo1'
- result = self.ovs_dpdk._get_server(attr_name)
-
- self.assertEqual(result, None)
-
- def test__get_server_duplicate(self):
-
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_DUPLICATE_SAMPLE)
- }
-
- self.ovs_dpdk.init(attrs)
-
- attr_name = 'node1.foo'
- with self.assertRaises(ValueError):
- self.ovs_dpdk._get_server(attr_name)
-
- def test__get_server_found(self):
-
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_ovs_dpdk_SAMPLE)
- }
-
- self.ovs_dpdk.init(attrs)
-
- attr_name = 'node1.foo'
- result = self.ovs_dpdk._get_server(attr_name)
-
- self.assertEqual(result['ip'], '10.229.47.137')
- self.assertEqual(result['name'], 'node1.foo')
- self.assertEqual(result['user'], 'root')
- self.assertEqual(result['key_filename'], '/root/.yardstick_key')
-
- def test__get_network(self):
- network1 = {
- 'name': 'net_1',
- 'vld_id': 'vld111',
- 'segmentation_id': 'seg54',
- 'network_type': 'type_a',
- 'physical_network': 'phys',
- }
- network2 = {
- 'name': 'net_2',
- 'vld_id': 'vld999',
- }
- self.ovs_dpdk.networks = {
- 'a': network1,
- 'b': network2,
- }
-
- attr_name = {}
- self.assertIsNone(self.ovs_dpdk._get_network(attr_name))
-
- attr_name = {'vld_id': 'vld777'}
- self.assertIsNone(self.ovs_dpdk._get_network(attr_name))
-
- self.assertIsNone(self.ovs_dpdk._get_network(None))
-
- attr_name = 'vld777'
- self.assertIsNone(self.ovs_dpdk._get_network(attr_name))
-
- attr_name = {'vld_id': 'vld999'}
- expected = {
- "name": 'net_2',
- "vld_id": 'vld999',
- "segmentation_id": None,
- "network_type": None,
- "physical_network": None,
- }
- result = self.ovs_dpdk._get_network(attr_name)
- self.assertDictEqual(result, expected)
-
- attr_name = 'a'
- expected = network1
- result = self.ovs_dpdk._get_network(attr_name)
- self.assertDictEqual(result, expected)
-
- def test_configure_nics_for_ovs_dpdk(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- self.ovs_dpdk.vm_deploy = True
- self.ovs_dpdk.connection = ssh_mock
- self.ovs_dpdk.vm_names = ['vm_0', 'vm_1']
- self.ovs_dpdk.drivers = []
- self.ovs_dpdk.networks = self.NETWORKS
- self.ovs_dpdk.helper.get_mac_address = mock.Mock(return_value="")
- self.ovs_dpdk.get_vf_datas = mock.Mock(return_value="")
- self.assertIsNone(self.ovs_dpdk.configure_nics_for_ovs_dpdk())
-
- @mock.patch('yardstick.benchmark.contexts.standalone.ovs_dpdk.Libvirt')
- def test__enable_interfaces(self, mock_add_ovs_interface):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- self.ovs_dpdk.vm_deploy = True
- self.ovs_dpdk.connection = ssh_mock
- self.ovs_dpdk.vm_names = ['vm_0', 'vm_1']
- self.ovs_dpdk.drivers = []
- self.ovs_dpdk.networks = self.NETWORKS
- self.ovs_dpdk.get_vf_datas = mock.Mock(return_value="")
- self.assertIsNone(self.ovs_dpdk._enable_interfaces(0, ["private_0"], 'test'))
-
- @mock.patch('yardstick.benchmark.contexts.standalone.ovs_dpdk.Libvirt')
- @mock.patch('yardstick.benchmark.contexts.standalone.model.Server')
- def test_setup_ovs_dpdk_context(self, mock_server, mock_libvirt):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh_mock.put = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- self.ovs_dpdk.vm_deploy = True
- self.ovs_dpdk.connection = ssh_mock
- self.ovs_dpdk.vm_names = ['vm_0', 'vm_1']
- self.ovs_dpdk.drivers = []
- self.ovs_dpdk.servers = {
- 'vnf_0': {
- 'network_ports': {
- 'mgmt': {'cidr': '152.16.100.10/24'},
- 'xe0': ['private_0'],
- 'xe1': ['public_0']
- }
- }
- }
- self.ovs_dpdk.networks = self.NETWORKS
- self.ovs_dpdk.host_mgmt = {}
- self.ovs_dpdk.flavor = {}
- self.ovs_dpdk.configure_nics_for_ovs_dpdk = mock.Mock(return_value="")
- mock_libvirt.check_if_vm_exists_and_delete = mock.Mock(return_value="")
- mock_libvirt.build_vm_xml = mock.Mock(return_value=[6, "00:00:00:00:00:01"])
- self.ovs_dpdk._enable_interfaces = mock.Mock(return_value="")
- mock_libvirt.virsh_create_vm = mock.Mock(return_value="")
- mock_libvirt.pin_vcpu_for_perf= mock.Mock(return_value="")
- self.ovs_dpdk.vnf_node.generate_vnf_instance = mock.Mock(return_value={})
- self.assertIsNotNone(self.ovs_dpdk.setup_ovs_dpdk_context())
diff --git a/tests/unit/benchmark/contexts/test_dummy.py b/tests/unit/benchmark/contexts/test_dummy.py
deleted file mode 100644
index 1a54035df..000000000
--- a/tests/unit/benchmark/contexts/test_dummy.py
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.contexts.dummy
-
-from __future__ import absolute_import
-import unittest
-
-from yardstick.benchmark.contexts import dummy
-
-
-class DummyContextTestCase(unittest.TestCase):
-
- def setUp(self):
- self.test_context = dummy.DummyContext()
-
- def test__get_server(self):
- self.test_context.init(None)
- self.test_context.deploy()
-
- result = self.test_context._get_server(None)
- self.assertEqual(result, None)
-
- self.test_context.undeploy()
diff --git a/tests/unit/benchmark/contexts/test_heat.py b/tests/unit/benchmark/contexts/test_heat.py
deleted file mode 100644
index f2e725df2..000000000
--- a/tests/unit/benchmark/contexts/test_heat.py
+++ /dev/null
@@ -1,503 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Ericsson AB 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.contexts.heat
-
-from __future__ import absolute_import
-
-import logging
-import os
-import unittest
-import uuid
-from collections import OrderedDict
-
-import mock
-
-from itertools import count
-from yardstick.benchmark.contexts import heat
-from yardstick.benchmark.contexts import model
-
-LOG = logging.getLogger(__name__)
-
-
-class HeatContextTestCase(unittest.TestCase):
-
- def __init__(self, *args, **kwargs):
- super(HeatContextTestCase, self).__init__(*args, **kwargs)
- self.name_iter = ('vnf{:03}'.format(x) for x in count(0, step=3))
-
- def setUp(self):
- self.test_context = heat.HeatContext()
- self.mock_context = mock.Mock(spec=heat.HeatContext())
-
- def test___init__(self):
- self.assertIsNone(self.test_context.name)
- self.assertIsNone(self.test_context.stack)
- self.assertEqual(self.test_context.networks, OrderedDict())
- self.assertEqual(self.test_context.servers, [])
- self.assertEqual(self.test_context.placement_groups, [])
- self.assertEqual(self.test_context.server_groups, [])
- self.assertIsNone(self.test_context.keypair_name)
- self.assertIsNone(self.test_context.secgroup_name)
- self.assertEqual(self.test_context._server_map, {})
- self.assertIsNone(self.test_context._image)
- self.assertIsNone(self.test_context._flavor)
- self.assertIsNone(self.test_context._user)
- self.assertIsNone(self.test_context.template_file)
- self.assertIsNone(self.test_context.heat_parameters)
- self.assertIsNotNone(self.test_context.key_uuid)
- self.assertIsNotNone(self.test_context.key_filename)
-
- @mock.patch('yardstick.benchmark.contexts.heat.PlacementGroup')
- @mock.patch('yardstick.benchmark.contexts.heat.ServerGroup')
- @mock.patch('yardstick.benchmark.contexts.heat.Network')
- @mock.patch('yardstick.benchmark.contexts.heat.Server')
- def test_init(self, mock_server, mock_network, mock_sg, mock_pg):
-
- pgs = {'pgrp1': {'policy': 'availability'}}
- sgs = {'servergroup1': {'policy': 'affinity'}}
- networks = {'bar': {'cidr': '10.0.1.0/24'}}
- servers = {'baz': {'floating_ip': True, 'placement': 'pgrp1'}}
- attrs = {'name': 'foo',
- 'placement_groups': pgs,
- 'server_groups': sgs,
- 'networks': networks,
- 'servers': servers}
-
- self.test_context.init(attrs)
-
- self.assertEqual(self.test_context.name, "foo")
- self.assertEqual(self.test_context.keypair_name, "foo-key")
- self.assertEqual(self.test_context.secgroup_name, "foo-secgroup")
-
- mock_pg.assert_called_with('pgrp1', self.test_context,
- pgs['pgrp1']['policy'])
- mock_sg.assert_called_with('servergroup1', self.test_context,
- sgs['servergroup1']['policy'])
- self.assertTrue(len(self.test_context.placement_groups) == 1)
- self.assertTrue(len(self.test_context.server_groups) == 1)
-
- mock_network.assert_called_with(
- 'bar', self.test_context, networks['bar'])
- self.assertTrue(len(self.test_context.networks) == 1)
-
- mock_server.assert_called_with('baz', self.test_context,
- servers['baz'])
- self.assertTrue(len(self.test_context.servers) == 1)
-
- if os.path.exists(self.test_context.key_filename):
- try:
- os.remove(self.test_context.key_filename)
- os.remove(self.test_context.key_filename + ".pub")
- except OSError:
- LOG.exception("key_filename: %s",
- self.test_context.key_filename)
-
- @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
- def test__add_resources_to_template_no_servers(self, mock_template):
-
- self.test_context.keypair_name = "foo-key"
- self.test_context.secgroup_name = "foo-secgroup"
- self.test_context.key_uuid = "2f2e4997-0a8e-4eb7-9fa4-f3f8fbbc393b"
- netattrs = {'cidr': '10.0.0.0/24', 'provider': None, 'external_network': 'ext_net'}
- self.mock_context.name = 'bar'
- self.test_context.networks = OrderedDict(
- {"fool-network": model.Network("fool-network", self.mock_context,
- netattrs)})
-
- self.test_context._add_resources_to_template(mock_template)
- mock_template.add_keypair.assert_called_with(
- "foo-key",
- "2f2e4997-0a8e-4eb7-9fa4-f3f8fbbc393b")
- mock_template.add_security_group.assert_called_with("foo-secgroup")
-# mock_template.add_network.assert_called_with("bar-fool-network", 'physnet1', None)
- mock_template.add_router.assert_called_with("bar-fool-network-router",
- netattrs["external_network"],
- "bar-fool-network-subnet")
- mock_template.add_router_interface.assert_called_with("bar-fool-network-router-if0",
- "bar-fool-network-router",
- "bar-fool-network-subnet")
-
- @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
- def test_attrs_get(self, mock_template):
- image, flavor, user = expected_tuple = 'foo1', 'foo2', 'foo3'
- self.assertNotEqual(self.test_context.image, image)
- self.assertNotEqual(self.test_context.flavor, flavor)
- self.assertNotEqual(self.test_context.user, user)
- self.test_context._image = image
- self.test_context._flavor = flavor
- self.test_context._user = user
- attr_tuple = self.test_context.image, self.test_context.flavor, self.test_context.user
- self.assertEqual(attr_tuple, expected_tuple)
-
- @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
- def test_attrs_set_negative(self, mock_template):
- with self.assertRaises(AttributeError):
- self.test_context.image = 'foo'
-
- with self.assertRaises(AttributeError):
- self.test_context.flavor = 'foo'
-
- with self.assertRaises(AttributeError):
- self.test_context.user = 'foo'
-
- @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
- def test_deploy(self, mock_template):
- self.test_context.name = 'foo'
- self.test_context.template_file = '/bar/baz/some-heat-file'
- self.test_context.heat_parameters = {'image': 'cirros'}
- self.test_context.get_neutron_info = mock.MagicMock()
- self.test_context.deploy()
-
- mock_template.assert_called_with('foo',
- '/bar/baz/some-heat-file',
- {'image': 'cirros'})
- self.assertIsNotNone(self.test_context.stack)
-
- def test_add_server_port(self):
- network1 = mock.MagicMock()
- network2 = mock.MagicMock()
- self.test_context.name = 'foo'
- self.test_context.stack = mock.MagicMock()
- self.test_context.networks = {
- 'a': network1,
- 'c': network2,
- }
- self.test_context.stack.outputs = {
- u'b': u'10.20.30.45',
- u'b-subnet_id': 1,
- u'foo-a-subnet-cidr': u'10.20.0.0/15',
- u'foo-a-subnet-gateway_ip': u'10.20.30.1',
- u'b-mac_address': u'00:01',
- u'b-device_id': u'dev21',
- u'b-network_id': u'net789',
- u'd': u'40.30.20.15',
- u'd-subnet_id': 2,
- u'foo-c-subnet-cidr': u'40.30.0.0/18',
- u'foo-c-subnet-gateway_ip': u'40.30.20.254',
- u'd-mac_address': u'00:10',
- u'd-device_id': u'dev43',
- u'd-network_id': u'net987',
- u'e': u'40.30.20.15',
- u'e-subnet_id': 2,
- u'e-mac_address': u'00:10',
- u'e-device_id': u'dev43',
- u'e-network_id': u'net987',
- }
- server = mock.MagicMock()
- server.ports = OrderedDict([
- ('a', [{'stack_name': 'b', 'port': 'port_a'}]),
- ('c', [{'stack_name': 'd', 'port': 'port_c'},
- {'stack_name': 'e', 'port': 'port_f'}]),
- ])
-
- expected = {
- "private_ip": '10.20.30.45',
- "subnet_id": 1,
- "subnet_cidr": '10.20.0.0/15',
- "network": '10.20.0.0',
- "netmask": '255.254.0.0',
- "name": "port_a",
- "gateway_ip": '10.20.30.1',
- "mac_address": '00:01',
- "device_id": 'dev21',
- "network_id": 'net789',
- "network_name": 'a',
- "local_mac": '00:01',
- "local_ip": '10.20.30.45',
- }
- self.test_context.add_server_port(server)
- self.assertEqual(server.private_ip, '10.20.30.45')
- self.assertEqual(len(server.interfaces), 3)
- self.assertDictEqual(server.interfaces['port_a'], expected)
-
- @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
- def test_undeploy(self, mock_template):
- self.test_context.stack = mock_template
- self.test_context.undeploy()
- self.assertTrue(mock_template.delete.called)
-
- @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
- @mock.patch('yardstick.benchmark.contexts.heat.os')
- def test_undeploy_key_filename(self, mock_template, mock_os):
- self.test_context.stack = mock_template
- mock_os.path.exists.return_value = True
- self.assertIsNone(self.test_context.undeploy())
-
- @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
- def test__get_server_found_dict(self, mock_pkg_resources):
- """
- Use HeatContext._get_server to get a server that matches
- based on a dictionary input.
- """
- foo2_server = mock.Mock()
- foo2_server.key_filename = None
- foo2_server.private_ip = '10.0.0.2'
- foo2_server.public_ip = '127.0.0.2'
- foo2_server.context.user = 'oof'
-
- baz3_server = mock.Mock()
- baz3_server.key_filename = None
- baz3_server.private_ip = '10.0.0.3'
- baz3_server.public_ip = '127.0.0.3'
- baz3_server.context.user = 'zab'
-
- self.test_context.name = 'bar'
- self.test_context._user = 'bot'
- self.test_context.stack = mock.Mock()
- self.test_context.stack.outputs = {
- 'private_ip': '10.0.0.1',
- 'public_ip': '127.0.0.1',
- }
- self.test_context.key_uuid = uuid.uuid4()
- self.test_context._server_map = {
- 'baz3': baz3_server,
- 'foo2': foo2_server,
- }
-
- attr_name = {
- 'name': 'foo.bar',
- 'private_ip_attr': 'private_ip',
- 'public_ip_attr': 'public_ip',
- }
- result = self.test_context._get_server(attr_name)
- self.assertEqual(result['user'], 'bot')
- self.assertEqual(result['ip'], '127.0.0.1')
- self.assertEqual(result['private_ip'], '10.0.0.1')
-
- @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
- def test__get_server_found_dict_no_attrs(self, mock_pkg_resources):
- """
- Use HeatContext._get_server to get a server that matches
- based on a dictionary input.
- """
- foo2_server = mock.Mock()
- foo2_server.private_ip = '10.0.0.2'
- foo2_server.public_ip = '127.0.0.2'
- foo2_server.context.user = 'oof'
-
- baz3_server = mock.Mock()
- baz3_server.private_ip = '10.0.0.3'
- baz3_server.public_ip = '127.0.0.3'
- baz3_server.context.user = 'zab'
-
- self.test_context.name = 'bar'
- self.test_context._user = 'bot'
- self.test_context.stack = mock.Mock()
- self.test_context.stack.outputs = {
- 'private_ip': '10.0.0.1',
- 'public_ip': '127.0.0.1',
- }
- self.test_context.key_uuid = uuid.uuid4()
- self.test_context._server_map = {
- 'baz3': baz3_server,
- 'foo2': foo2_server,
- }
-
- attr_name = {
- 'name': 'foo.bar',
- }
- result = self.test_context._get_server(attr_name)
- self.assertEqual(result['user'], 'bot')
- # no private ip attr mapping in the map results in None value in the result
- self.assertIsNone(result['private_ip'])
- # no public ip attr mapping in the map results in no value in the result
- self.assertNotIn('ip', result)
-
- @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
- def test__get_server_found_not_dict(self, mock_pkg_resources):
- """
- Use HeatContext._get_server to get a server that matches
- based on a non-dictionary input
- """
- foo2_server = mock.Mock()
- foo2_server.private_ip = '10.0.0.2'
- foo2_server.public_ip = '127.0.0.2'
- foo2_server.context.user = 'oof'
-
- baz3_server = mock.Mock()
- baz3_server.private_ip = '10.0.0.3'
- baz3_server.public_ip = None
- baz3_server.context.user = 'zab'
-
- self.test_context.name = 'bar1'
- self.test_context.stack = mock.Mock()
- self.test_context.stack.outputs = {
- 'private_ip': '10.0.0.1',
- 'public_ip': '127.0.0.1',
- }
- self.test_context.key_uuid = uuid.uuid4()
- self.test_context.generate_routing_table = mock.MagicMock(return_value=[])
-
- self.test_context._server_map = {
- 'baz3': baz3_server,
- 'foo2': foo2_server,
- }
-
- attr_name = 'baz3'
- result = self.test_context._get_server(attr_name)
- self.assertEqual(result['user'], 'zab')
- self.assertEqual(result['private_ip'], '10.0.0.3')
- # no public_ip on the server results in no value in the result
- self.assertNotIn('public_ip', result)
-
- @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
- def test__get_server_none_found_not_dict(self, mock_pkg_resources):
- """
- Use HeatContext._get_server to not get a server due to
- None value associated with the match to a non-dictionary
- input
- """
- foo2_server = mock.Mock()
- foo2_server.private_ip = '10.0.0.2'
- foo2_server.public_ip = '127.0.0.2'
- foo2_server.context.user = 'oof'
-
- baz3_server = mock.Mock()
- baz3_server.private_ip = '10.0.0.3'
- baz3_server.public_ip = None
- baz3_server.context.user = 'zab'
-
- self.test_context.name = 'bar1'
- self.test_context.stack = mock.Mock()
- self.test_context.stack.outputs = {
- 'private_ip': '10.0.0.1',
- 'public_ip': '127.0.0.1',
- }
- self.test_context.key_uuid = uuid.uuid4()
- self.test_context._server_map = {
- 'baz3': baz3_server,
- 'foo2': foo2_server,
- 'wow4': None,
- }
-
- attr_name = 'wow4'
- result = self.test_context._get_server(attr_name)
- self.assertIsNone(result)
-
- @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
- def test__get_server_not_found_dict(self, mock_pkg_resources):
- """
- Use HeatContext._get_server to not get a server for lack
- of a match to a dictionary input
- """
- foo2_server = mock.Mock()
- foo2_server.private_ip = '10.0.0.2'
- foo2_server.public_ip = '127.0.0.2'
- foo2_server.context.user = 'oof'
-
- baz3_server = mock.Mock()
- baz3_server.private_ip = '10.0.0.3'
- baz3_server.public_ip = None
- baz3_server.context.user = 'zab'
-
- self.test_context.name = 'bar1'
- self.test_context.stack = mock.Mock()
- self.test_context.stack.outputs = {
- 'private_ip': '10.0.0.1',
- 'public_ip': '127.0.0.1',
- }
- self.test_context.key_uuid = uuid.uuid4()
- self.test_context._server_map = {
- 'baz3': baz3_server,
- 'foo2': foo2_server,
- }
-
- attr_name = {
- 'name': 'foo.wow4',
- 'private_ip_attr': 'private_ip',
- 'public_ip_attr': 'public_ip',
- }
- result = self.test_context._get_server(attr_name)
- self.assertIsNone(result)
-
- @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
- def test__get_server_not_found_not_dict(self, mock_pkg_resources):
- """
- Use HeatContext._get_server to not get a server for lack
- of a match to a non-dictionary input
- """
- foo2_server = mock.Mock()
- foo2_server.private_ip = '10.0.0.2'
- foo2_server.public_ip = '127.0.0.2'
- foo2_server.context.user = 'oof'
-
- baz3_server = mock.Mock()
- baz3_server.private_ip = '10.0.0.3'
- baz3_server.public_ip = None
- baz3_server.context.user = 'zab'
-
- self.mock_context.name = 'bar1'
- self.test_context.stack = mock.Mock()
- self.mock_context.stack.outputs = {
- 'private_ip': '10.0.0.1',
- 'public_ip': '127.0.0.1',
- }
- self.mock_context.key_uuid = uuid.uuid4()
- self.mock_context._server_map = {
- 'baz3': baz3_server,
- 'foo2': foo2_server,
- }
-
- attr_name = 'foo.wow4'
- result = self.test_context._get_server(attr_name)
- self.assertIsNone(result)
-
- def test__get_network(self):
- network1 = mock.MagicMock()
- network1.name = 'net_1'
- network1.vld_id = 'vld111'
- network1.segmentation_id = 'seg54'
- network1.network_type = 'type_a'
- network1.physical_network = 'phys'
-
- network2 = mock.MagicMock()
- network2.name = 'net_2'
- network2.segmentation_id = 'seg45'
- network2.network_type = 'type_b'
- network2.physical_network = 'virt'
-
- self.test_context.networks = {
- 'a': network1,
- 'b': network2,
- }
-
- attr_name = None
- self.assertIsNone(self.test_context._get_network(attr_name))
-
- attr_name = {}
- self.assertIsNone(self.test_context._get_network(attr_name))
-
- attr_name = {'network_type': 'nosuch'}
- self.assertIsNone(self.test_context._get_network(attr_name))
-
- attr_name = 'vld777'
- self.assertIsNone(self.test_context._get_network(attr_name))
-
- attr_name = {'segmentation_id': 'seg45'}
- expected = {
- "name": 'net_2',
- "segmentation_id": 'seg45',
- "network_type": 'type_b',
- "physical_network": 'virt',
- }
- result = self.test_context._get_network(attr_name)
- self.assertDictEqual(result, expected)
-
- attr_name = 'a'
- expected = {
- "name": 'net_1',
- "segmentation_id": 'seg54',
- "network_type": 'type_a',
- "physical_network": 'phys',
- }
- result = self.test_context._get_network(attr_name)
- self.assertDictEqual(result, expected)
diff --git a/tests/unit/benchmark/contexts/test_kubernetes.py b/tests/unit/benchmark/contexts/test_kubernetes.py
deleted file mode 100644
index 3a926f85c..000000000
--- a/tests/unit/benchmark/contexts/test_kubernetes.py
+++ /dev/null
@@ -1,205 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.contexts.kubernetes
-
-from __future__ import absolute_import
-import unittest
-import mock
-
-from yardstick.benchmark.contexts.base import Context
-from yardstick.benchmark.contexts.kubernetes import KubernetesContext
-
-
-context_cfg = {
- 'type': 'Kubernetes',
- 'name': 'k8s',
- 'servers': {
- 'host': {
- 'image': 'openretriever/yardstick',
- 'command': '/bin/bash',
- 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \
-service ssh restart;while true ; do sleep 10000; done']
- },
- 'target': {
- 'image': 'openretriever/yardstick',
- 'command': '/bin/bash',
- 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \
-service ssh restart;while true ; do sleep 10000; done']
- }
- }
-}
-
-prefix = 'yardstick.benchmark.contexts.kubernetes'
-
-
-class KubernetesTestCase(unittest.TestCase):
-
- def tearDown(self):
- # clear kubernetes contexts from global list so we don't break other tests
- Context.list = []
-
- @mock.patch('{}.KubernetesContext._delete_services'.format(prefix))
- @mock.patch('{}.KubernetesContext._delete_ssh_key'.format(prefix))
- @mock.patch('{}.KubernetesContext._delete_rcs'.format(prefix))
- @mock.patch('{}.KubernetesContext._delete_pods'.format(prefix))
- def test_undeploy(self,
- mock_delete_pods,
- mock_delete_rcs,
- mock_delete_ssh,
- mock_delete_services):
-
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- k8s_context.undeploy()
- self.assertTrue(mock_delete_ssh.called)
- self.assertTrue(mock_delete_rcs.called)
- self.assertTrue(mock_delete_pods.called)
- self.assertTrue(mock_delete_services.called)
-
- @mock.patch('{}.KubernetesContext._create_services'.format(prefix))
- @mock.patch('{}.KubernetesContext._wait_until_running'.format(prefix))
- @mock.patch('{}.KubernetesTemplate.get_rc_pods'.format(prefix))
- @mock.patch('{}.KubernetesContext._create_rcs'.format(prefix))
- @mock.patch('{}.KubernetesContext._set_ssh_key'.format(prefix))
- def test_deploy(self,
- mock_set_ssh_key,
- mock_create_rcs,
- mock_get_rc_pods,
- mock_wait_until_running,
- mock_create_services):
-
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- with mock.patch("yardstick.benchmark.contexts.kubernetes.time"):
- k8s_context.deploy()
- self.assertTrue(mock_set_ssh_key.called)
- self.assertTrue(mock_create_rcs.called)
- self.assertTrue(mock_create_services.called)
- self.assertTrue(mock_get_rc_pods.called)
- self.assertTrue(mock_wait_until_running.called)
-
- @mock.patch('{}.paramiko'.format(prefix), **{"resource_filename.return_value": ""})
- @mock.patch('{}.pkg_resources'.format(prefix), **{"resource_filename.return_value": ""})
- @mock.patch('{}.utils'.format(prefix))
- @mock.patch('{}.open'.format(prefix), create=True)
- @mock.patch('{}.k8s_utils.delete_config_map'.format(prefix))
- @mock.patch('{}.k8s_utils.create_config_map'.format(prefix))
- def test_ssh_key(self, mock_create, mock_delete, mock_open, mock_utils, mock_resources,
- mock_paramiko):
-
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- k8s_context._set_ssh_key()
- k8s_context._delete_ssh_key()
- self.assertTrue(mock_create.called)
- self.assertTrue(mock_delete.called)
-
- @mock.patch('{}.k8s_utils.read_pod_status'.format(prefix))
- def test_wait_until_running(self, mock_read_pod_status):
-
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- k8s_context.template.pods = ['server']
- mock_read_pod_status.return_value = 'Running'
- k8s_context._wait_until_running()
-
- @mock.patch('{}.k8s_utils.get_pod_by_name'.format(prefix))
- @mock.patch('{}.KubernetesContext._get_node_ip'.format(prefix))
- @mock.patch('{}.k8s_utils.get_service_by_name'.format(prefix))
- def test_get_server(self,
- mock_get_service_by_name,
- mock_get_node_ip,
- mock_get_pod_by_name):
- class Service(object):
- def __init__(self):
- self.name = 'yardstick'
- self.node_port = 30000
-
- class Services(object):
- def __init__(self):
- self.ports = [Service()]
-
- class Status(object):
- def __init__(self):
- self.pod_ip = '172.16.10.131'
-
- class Pod(object):
- def __init__(self):
- self.status = Status()
-
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
-
- mock_get_service_by_name.return_value = Services()
- mock_get_pod_by_name.return_value = Pod()
- mock_get_node_ip.return_value = '172.16.10.131'
-
- server = k8s_context._get_server('server')
- self.assertIsNotNone(server)
-
- @mock.patch('{}.KubernetesContext._create_rc'.format(prefix))
- def test_create_rcs(self, mock_create_rc):
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- k8s_context._create_rcs()
- self.assertTrue(mock_create_rc.called)
-
- @mock.patch('{}.k8s_utils.create_replication_controller'.format(prefix))
- def test_create_rc(self, mock_create_replication_controller):
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- k8s_context._create_rc({})
- self.assertTrue(mock_create_replication_controller.called)
-
- @mock.patch('{}.KubernetesContext._delete_rc'.format(prefix))
- def test_delete_rcs(self, mock_delete_rc):
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- k8s_context._delete_rcs()
- self.assertTrue(mock_delete_rc.called)
-
- @mock.patch('{}.k8s_utils.delete_replication_controller'.format(prefix))
- def test_delete_rc(self, mock_delete_replication_controller):
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- k8s_context._delete_rc({})
- self.assertTrue(mock_delete_replication_controller.called)
-
- @mock.patch('{}.k8s_utils.get_node_list'.format(prefix))
- def test_get_node_ip(self, mock_get_node_list):
-
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- k8s_context._get_node_ip()
- self.assertTrue(mock_get_node_list.called)
-
- @mock.patch('yardstick.orchestrator.kubernetes.ServiceObject.create')
- def test_create_services(self, mock_create):
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- k8s_context._create_services()
- self.assertTrue(mock_create.called)
-
- @mock.patch('yardstick.orchestrator.kubernetes.ServiceObject.delete')
- def test_delete_services(self, mock_delete):
- k8s_context = KubernetesContext()
- k8s_context.init(context_cfg)
- k8s_context._delete_services()
- self.assertTrue(mock_delete.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/core/test_plugin.py b/tests/unit/benchmark/core/test_plugin.py
deleted file mode 100644
index f9c076159..000000000
--- a/tests/unit/benchmark/core/test_plugin.py
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.core.plugin
-from __future__ import absolute_import
-import os
-from os.path import dirname as dirname
-
-try:
- from unittest import mock
-except ImportError:
- import mock
-import unittest
-
-from yardstick.benchmark.core import plugin
-
-
-class Arg(object):
-
- def __init__(self):
- # self.input_file = ('plugin/sample_config.yaml',)
- self.input_file = [
- os.path.join(os.path.abspath(
- dirname(dirname(dirname(dirname(dirname(__file__)))))),
- 'plugin/sample_config.yaml')]
-
-
-@mock.patch('yardstick.benchmark.core.plugin.ssh')
-class pluginTestCase(unittest.TestCase):
-
- def setUp(self):
- self.result = {}
-
- def test_install(self, mock_ssh):
- p = plugin.Plugin()
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- input_file = Arg()
- p.install(input_file)
- expected_result = {}
- self.assertEqual(self.result, expected_result)
-
- def test_remove(self, mock_ssh):
- p = plugin.Plugin()
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- input_file = Arg()
- p.remove(input_file)
- expected_result = {}
- self.assertEqual(self.result, expected_result)
-
- def test_install_setup_run(self, mock_ssh):
- p = plugin.Plugin()
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- plugins = {
- "name": "sample"
- }
- deployment = {
- "ip": "10.1.0.50",
- "user": "root",
- "password": "root"
- }
- plugin_name = plugins.get("name")
- p._install_setup(plugin_name, deployment)
- self.assertIsNotNone(p.client)
-
- p._run(plugin_name)
- expected_result = {}
- self.assertEqual(self.result, expected_result)
-
- def test_remove_setup_run(self, mock_ssh):
- p = plugin.Plugin()
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- plugins = {
- "name": "sample"
- }
- deployment = {
- "ip": "10.1.0.50",
- "user": "root",
- "password": "root"
- }
- plugin_name = plugins.get("name")
- p._remove_setup(plugin_name, deployment)
- self.assertIsNotNone(p.client)
-
- p._run(plugin_name)
- expected_result = {}
- self.assertEqual(self.result, expected_result)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/core/test_report.py b/tests/unit/benchmark/core/test_report.py
deleted file mode 100644
index 69546928c..000000000
--- a/tests/unit/benchmark/core/test_report.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2017 Rajesh Kudaka.
-#
-# 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.core.report
-
-from __future__ import print_function
-
-from __future__ import absolute_import
-
-import unittest
-import uuid
-
-try:
- from unittest import mock
-except ImportError:
- import mock
-
-from yardstick.benchmark.core import report
-from yardstick.cmd.commands import change_osloobj_to_paras
-
-FAKE_YAML_NAME = 'fake_name'
-FAKE_TASK_ID = str(uuid.uuid4())
-FAKE_DB_FIELDKEYS = [{'fieldKey': 'fake_key'}]
-FAKE_TIME = '0000-00-00T00:00:00.000000Z'
-FAKE_DB_TASK = [{'fake_key': 0.000, 'time': FAKE_TIME}]
-FAKE_TIMESTAMP = ['fake_time']
-DUMMY_TASK_ID = 'aaaaaa-aaaaaaaa-aaaaaaaaaa-aaaaaa'
-
-
-class ReportTestCase(unittest.TestCase):
-
- def setUp(self):
- super(ReportTestCase, self).setUp()
- self.param = change_osloobj_to_paras({})
- self.param.yaml_name = [FAKE_YAML_NAME]
- self.param.task_id = [FAKE_TASK_ID]
- self.rep = report.Report()
-
- @mock.patch('yardstick.benchmark.core.report.Report._get_tasks')
- @mock.patch('yardstick.benchmark.core.report.Report._get_fieldkeys')
- @mock.patch('yardstick.benchmark.core.report.Report._validate')
- def test_generate_success(self, mock_valid, mock_keys, mock_tasks):
- mock_tasks.return_value = FAKE_DB_TASK
- mock_keys.return_value = FAKE_DB_FIELDKEYS
- self.rep.generate(self.param)
- mock_valid.assert_called_once_with(FAKE_YAML_NAME, FAKE_TASK_ID)
- self.assertEqual(1, mock_tasks.call_count)
- self.assertEqual(1, mock_keys.call_count)
-
- def test_invalid_yaml_name(self):
- self.assertRaisesRegexp(ValueError, "yaml*", self.rep._validate,
- 'F@KE_NAME', FAKE_TASK_ID)
-
- def test_invalid_task_id(self):
- self.assertRaisesRegexp(ValueError, "task*", self.rep._validate,
- FAKE_YAML_NAME, DUMMY_TASK_ID)
-
- @mock.patch('api.utils.influx.query')
- def test_task_not_found(self, mock_query):
- mock_query.return_value = []
- self.rep.yaml_name = FAKE_YAML_NAME
- self.rep.task_id = FAKE_TASK_ID
- self.assertRaisesRegexp(KeyError, "Task ID", self.rep._get_fieldkeys)
- self.assertRaisesRegexp(KeyError, "Task ID", self.rep._get_tasks)
diff --git a/tests/unit/benchmark/core/test_task.py b/tests/unit/benchmark/core/test_task.py
deleted file mode 100644
index bed0bb6d8..000000000
--- a/tests/unit/benchmark/core/test_task.py
+++ /dev/null
@@ -1,314 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.core.task
-
-from __future__ import print_function
-
-from __future__ import absolute_import
-import os
-import unittest
-
-try:
- from unittest import mock
-except ImportError:
- import mock
-
-
-from yardstick.benchmark.core import task
-from yardstick.common import constants as consts
-
-
-class TaskTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.benchmark.core.task.Context')
- def test_parse_nodes_host_target_same_context(self, mock_context):
- nodes = {
- "host": "node1.LF",
- "target": "node2.LF"
- }
- scenario_cfg = {"nodes": nodes}
- server_info = {
- "ip": "10.20.0.3",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- mock_context.get_server.return_value = server_info
- context_cfg = task.parse_nodes_with_context(scenario_cfg)
-
- self.assertEqual(context_cfg["host"], server_info)
- self.assertEqual(context_cfg["target"], server_info)
-
- def test_set_dispatchers(self):
- t = task.Task()
- output_config = {"DEFAULT": {"dispatcher": "file, http"}}
- t._set_dispatchers(output_config)
- self.assertEqual(output_config, output_config)
-
- @mock.patch('yardstick.benchmark.core.task.DispatcherBase')
- def test__do_output(self, mock_dispatcher):
- t = task.Task()
- output_config = {"DEFAULT": {"dispatcher": "file, http"}}
- mock_dispatcher.get = mock.MagicMock(return_value=[mock.MagicMock(),
- mock.MagicMock()])
- self.assertEqual(None, t._do_output(output_config, {}))
-
- @mock.patch('yardstick.benchmark.core.task.Context')
- def test_parse_networks_from_nodes(self, mock_context):
- nodes = {
- 'node1': {
- 'interfaces': {
- 'mgmt': {
- 'network_name': 'mgmt',
- },
- 'xe0': {
- 'network_name': 'uplink_0',
- },
- 'xe1': {
- 'network_name': 'downlink_0',
- },
- },
- },
- 'node2': {
- 'interfaces': {
- 'mgmt': {
- 'network_name': 'mgmt',
- },
- 'uplink_0': {
- 'network_name': 'uplink_0',
- },
- 'downlink_0': {
- 'network_name': 'downlink_0',
- },
- },
- },
- }
-
- mock_context.get_network.side_effect = iter([
- None,
- {
- 'name': 'mgmt',
- 'network_type': 'flat',
- },
- {},
- {
- 'name': 'uplink_0',
- 'subnet_cidr': '10.20.0.0/16',
- },
- {
- 'name': 'downlink_0',
- 'segmentation_id': '1001',
- },
- {
- 'name': 'uplink_1',
- },
- ])
-
- # one for each interface
- expected_get_network_calls = 6
- expected = {
- 'mgmt': {'name': 'mgmt', 'network_type': 'flat'},
- 'uplink_0': {'name': 'uplink_0', 'subnet_cidr': '10.20.0.0/16'},
- 'uplink_1': {'name': 'uplink_1'},
- 'downlink_0': {'name': 'downlink_0', 'segmentation_id': '1001'},
- }
-
- networks = task.get_networks_from_nodes(nodes)
- self.assertEqual(mock_context.get_network.call_count, expected_get_network_calls)
- self.assertDictEqual(networks, expected)
-
- @mock.patch('yardstick.benchmark.core.task.Context')
- @mock.patch('yardstick.benchmark.core.task.base_runner')
- def test_run(self, mock_base_runner, mock_ctx):
- scenario = {
- 'host': 'athena.demo',
- 'target': 'ares.demo',
- 'runner': {
- 'duration': 60,
- 'interval': 1,
- 'type': 'Duration'
- },
- 'type': 'Ping'
- }
-
- t = task.Task()
- runner = mock.Mock()
- runner.join.return_value = 0
- runner.get_output.return_value = {}
- runner.get_result.return_value = []
- mock_base_runner.Runner.get.return_value = runner
- t._run([scenario], False, "yardstick.out")
- self.assertTrue(runner.run.called)
-
- @mock.patch('yardstick.benchmark.core.task.os')
- def test_check_precondition(self, mock_os):
- cfg = {
- 'precondition': {
- 'installer_type': 'compass',
- 'deploy_scenarios': 'os-nosdn',
- 'pod_name': 'huawei-pod1'
- }
- }
-
- t = task.TaskParser('/opt')
- mock_os.environ.get.side_effect = ['compass',
- 'os-nosdn',
- 'huawei-pod1']
- result = t._check_precondition(cfg)
- self.assertTrue(result)
-
- def test_parse_suite_no_constraint_no_args(self):
- SAMPLE_SCENARIO_PATH = "no_constraint_no_args_scenario_sample.yaml"
- t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
- with mock.patch('yardstick.benchmark.core.task.os.environ',
- new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}):
- task_files, task_args, task_args_fnames = t.parse_suite()
- print("files=%s, args=%s, fnames=%s" % (task_files, task_args,
- task_args_fnames))
- self.assertEqual(task_files[0], self.change_to_abspath(
- 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
- self.assertEqual(task_files[1], self.change_to_abspath(
- 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
- self.assertEqual(task_args[0], None)
- self.assertEqual(task_args[1], None)
- self.assertEqual(task_args_fnames[0], None)
- self.assertEqual(task_args_fnames[1], None)
-
- @mock.patch('yardstick.benchmark.core.task.os.environ')
- def test_parse_suite_no_constraint_with_args(self, mock_environ):
- SAMPLE_SCENARIO_PATH = "no_constraint_with_args_scenario_sample.yaml"
- t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
- with mock.patch('yardstick.benchmark.core.task.os.environ',
- new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}):
- task_files, task_args, task_args_fnames = t.parse_suite()
- print("files=%s, args=%s, fnames=%s" % (task_files, task_args,
- task_args_fnames))
- self.assertEqual(task_files[0], self.change_to_abspath(
- 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
- self.assertEqual(task_files[1], self.change_to_abspath(
- 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
- self.assertEqual(task_args[0], None)
- self.assertEqual(task_args[1],
- '{"host": "node1.LF","target": "node2.LF"}')
- self.assertEqual(task_args_fnames[0], None)
- self.assertEqual(task_args_fnames[1], None)
-
- @mock.patch('yardstick.benchmark.core.task.os.environ')
- def test_parse_suite_with_constraint_no_args(self, mock_environ):
- SAMPLE_SCENARIO_PATH = "with_constraint_no_args_scenario_sample.yaml"
- t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
- with mock.patch('yardstick.benchmark.core.task.os.environ',
- new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}):
- task_files, task_args, task_args_fnames = t.parse_suite()
- print("files=%s, args=%s, fnames=%s" % (task_files, task_args,
- task_args_fnames))
- self.assertEqual(task_files[0], self.change_to_abspath(
- 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
- self.assertEqual(task_files[1], self.change_to_abspath(
- 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
- self.assertEqual(task_args[0], None)
- self.assertEqual(task_args[1], None)
- self.assertEqual(task_args_fnames[0], None)
- self.assertEqual(task_args_fnames[1], None)
-
- @mock.patch('yardstick.benchmark.core.task.os.environ')
- def test_parse_suite_with_constraint_with_args(self, mock_environ):
- SAMPLE_SCENARIO_PATH = "with_constraint_with_args_scenario_sample.yaml"
- t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
- with mock.patch('yardstick.benchmark.core.task.os.environ',
- new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}):
- task_files, task_args, task_args_fnames = t.parse_suite()
- print("files=%s, args=%s, fnames=%s" % (task_files, task_args,
- task_args_fnames))
- self.assertEqual(task_files[0], self.change_to_abspath(
- 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
- self.assertEqual(task_files[1], self.change_to_abspath(
- 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
- self.assertEqual(task_args[0], None)
- self.assertEqual(task_args[1],
- '{"host": "node1.LF","target": "node2.LF"}')
- self.assertEqual(task_args_fnames[0], None)
- self.assertEqual(task_args_fnames[1], None)
-
- def test_parse_options(self):
- options = {
- 'openstack': {
- 'EXTERNAL_NETWORK': '$network'
- },
- 'ndoes': ['node1', '$node'],
- 'host': '$host'
- }
-
- t = task.Task()
- t.outputs = {
- 'network': 'ext-net',
- 'node': 'node2',
- 'host': 'server.yardstick'
- }
-
- idle_result = {
- 'openstack': {
- 'EXTERNAL_NETWORK': 'ext-net'
- },
- 'ndoes': ['node1', 'node2'],
- 'host': 'server.yardstick'
- }
-
- actual_result = t._parse_options(options)
- self.assertEqual(idle_result, actual_result)
-
- def test_change_server_name_host_str(self):
- scenario = {'host': 'demo'}
- suffix = '-8'
- task.change_server_name(scenario, suffix)
- self.assertTrue(scenario['host'], 'demo-8')
-
- def test_change_server_name_host_dict(self):
- scenario = {'host': {'name': 'demo'}}
- suffix = '-8'
- task.change_server_name(scenario, suffix)
- self.assertTrue(scenario['host']['name'], 'demo-8')
-
- def test_change_server_name_target_str(self):
- scenario = {'target': 'demo'}
- suffix = '-8'
- task.change_server_name(scenario, suffix)
- self.assertTrue(scenario['target'], 'demo-8')
-
- def test_change_server_name_target_dict(self):
- scenario = {'target': {'name': 'demo'}}
- suffix = '-8'
- task.change_server_name(scenario, suffix)
- self.assertTrue(scenario['target']['name'], 'demo-8')
-
- @mock.patch('yardstick.benchmark.core.task.utils')
- @mock.patch('yardstick.benchmark.core.task.logging')
- def test_set_log(self, mock_logging, mock_utils):
- task_obj = task.Task()
- task_obj.task_id = 'task_id'
- task_obj._set_log()
- self.assertTrue(mock_logging.root.addHandler.called)
-
- def _get_file_abspath(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- file_path = os.path.join(curr_path, filename)
- return file_path
-
- def change_to_abspath(self, filepath):
- return os.path.join(consts.YARDSTICK_ROOT_PATH, filepath)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/runner/test_base.py b/tests/unit/benchmark/runner/test_base.py
deleted file mode 100644
index f47b88e95..000000000
--- a/tests/unit/benchmark/runner/test_base.py
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 __future__ import print_function
-from __future__ import absolute_import
-
-import unittest
-import time
-
-from mock import mock
-
-from yardstick.benchmark.runners import base
-from yardstick.benchmark.runners.iteration import IterationRunner
-
-
-class ActionTestCase(unittest.TestCase):
-
- @mock.patch("yardstick.benchmark.runners.base.subprocess")
- def test__execute_shell_command(self, mock_subprocess):
- mock_subprocess.check_output.side_effect = Exception()
-
- self.assertEqual(base._execute_shell_command("")[0], -1)
-
- @mock.patch("yardstick.benchmark.runners.base.subprocess")
- def test__single_action(self, mock_subprocess):
- mock_subprocess.check_output.side_effect = Exception()
-
- base._single_action(0, "echo", mock.MagicMock())
-
- @mock.patch("yardstick.benchmark.runners.base.subprocess")
- def test__periodic_action(self, mock_subprocess):
- mock_subprocess.check_output.side_effect = Exception()
-
- base._periodic_action(0, "echo", mock.MagicMock())
-
-
-class RunnerTestCase(unittest.TestCase):
-
- @mock.patch("yardstick.benchmark.runners.iteration.multiprocessing")
- def test_get_output(self, mock_process):
- runner = IterationRunner({})
- runner.output_queue.put({'case': 'opnfv_yardstick_tc002'})
- runner.output_queue.put({'criteria': 'PASS'})
-
- idle_result = {
- 'case': 'opnfv_yardstick_tc002',
- 'criteria': 'PASS'
- }
-
- for retries in range(1000):
- time.sleep(0.01)
- if not runner.output_queue.empty():
- break
- actual_result = runner.get_output()
- self.assertEqual(idle_result, actual_result)
-
- @mock.patch("yardstick.benchmark.runners.iteration.multiprocessing")
- def test_get_result(self, mock_process):
- runner = IterationRunner({})
- runner.result_queue.put({'case': 'opnfv_yardstick_tc002'})
- runner.result_queue.put({'criteria': 'PASS'})
-
- idle_result = [
- {'case': 'opnfv_yardstick_tc002'},
- {'criteria': 'PASS'}
- ]
-
- for retries in range(1000):
- time.sleep(0.01)
- if not runner.result_queue.empty():
- break
- actual_result = runner.get_result()
- self.assertEqual(idle_result, actual_result)
-
- def test__run_benchmark(self):
- runner = base.Runner(mock.Mock())
-
- with self.assertRaises(NotImplementedError):
- runner._run_benchmark(mock.Mock(), mock.Mock(), mock.Mock(), mock.Mock())
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py b/tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py
deleted file mode 100644
index cc179602e..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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
-##############################################################################
-
-# Unittest for
-# yardstick.benchmark.scenarios.availability.attacker.attacker_baremetal
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.attacker import \
- attacker_baremetal
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.attacker.attacker_baremetal.subprocess')
-class ExecuteShellTestCase(unittest.TestCase):
-
- def test__fun_execute_shell_command_successful(self, mock_subprocess):
- cmd = "env"
- mock_subprocess.check_output.return_value = (0, 'unittest')
- exitcode, output = attacker_baremetal._execute_shell_command(cmd)
- self.assertEqual(exitcode, 0)
-
- @mock.patch('yardstick.benchmark.scenarios.availability.attacker.attacker_baremetal.LOG')
- def test__fun_execute_shell_command_fail_cmd_exception(self, mock_log, mock_subprocess):
- cmd = "env"
- mock_subprocess.check_output.side_effect = RuntimeError
- exitcode, output = attacker_baremetal._execute_shell_command(cmd)
- self.assertEqual(exitcode, -1)
- mock_log.error.assert_called_once()
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.attacker.attacker_baremetal.subprocess')
-@mock.patch('yardstick.benchmark.scenarios.availability.attacker.attacker_baremetal.ssh')
-class AttackerBaremetalTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ipmi_ip": "10.20.0.5",
- "ipmi_user": "root",
- "ipmi_pwd": "123456",
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.context = {"node1": host}
- self.attacker_cfg = {
- 'fault_type': 'bear-metal-down',
- 'host': 'node1',
- }
-
- def test__attacker_baremetal_all_successful(self, mock_ssh, mock_subprocess):
- mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
- ins = attacker_baremetal.BaremetalAttacker(self.attacker_cfg,
- self.context)
-
- ins.setup()
- ins.inject_fault()
- ins.recover()
-
- def test__attacker_baremetal_check_failuer(self, mock_ssh, mock_subprocess):
- mock_ssh.SSH.from_node().execute.return_value = (0, "error check", '')
- ins = attacker_baremetal.BaremetalAttacker(self.attacker_cfg,
- self.context)
- ins.setup()
-
- def test__attacker_baremetal_recover_successful(self, mock_ssh, mock_subprocess):
-
- self.attacker_cfg["jump_host"] = 'node1'
- self.context["node1"]["pwd"] = "123456"
- mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
- ins = attacker_baremetal.BaremetalAttacker(self.attacker_cfg,
- self.context)
-
- ins.setup()
- ins.recover()
diff --git a/tests/unit/benchmark/scenarios/availability/test_scenario_general.py b/tests/unit/benchmark/scenarios/availability/test_scenario_general.py
deleted file mode 100644
index 244a5e798..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_scenario_general.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huan Li and others
-# lihuansse@tongji.edu.cn
-# 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.scenario_general
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability.scenario_general import \
- ScenarioGeneral
-
-
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.scenario_general.Director')
-class ScenarioGeneralTestCase(unittest.TestCase):
-
- def setUp(self):
- self.scenario_cfg = {
- 'type': "general_scenario",
- 'options': {
- 'attackers': [{
- 'fault_type': "general-attacker",
- 'key': "kill-process"}],
- 'monitors': [{
- 'monitor_type': "general-monitor",
- 'key': "service-status"}],
- 'steps': [
- {
- 'actionKey': "kill-process",
- 'actionType': "attacker",
- 'index': 1},
- {
- 'actionKey': "service-status",
- 'actionType': "monitor",
- 'index': 2}]
- }
- }
-
- def test_scenario_general_all_successful(self, mock_director):
- ins = ScenarioGeneral(self.scenario_cfg, None)
- ins.setup()
- ins.run({})
- ins.teardown()
-
- def test_scenario_general_exception(self, mock_director):
- ins = ScenarioGeneral(self.scenario_cfg, None)
- mock_obj = mock.Mock()
- mock_obj.createActionPlayer.side_effect = KeyError('Wrong')
- ins.director = mock_obj
- ins.director.data = {}
- ins.run({})
- ins.teardown()
-
- def test_scenario_general_case_fail(self, mock_director):
- ins = ScenarioGeneral(self.scenario_cfg, None)
- mock_obj = mock.Mock()
- mock_obj.verify.return_value = False
- ins.director = mock_obj
- ins.director.data = {}
- ins.run({})
- ins.pass_flag = True
- ins.teardown()
diff --git a/tests/unit/benchmark/scenarios/availability/test_serviceha.py b/tests/unit/benchmark/scenarios/availability/test_serviceha.py
deleted file mode 100644
index 4ae508958..000000000
--- a/tests/unit/benchmark/scenarios/availability/test_serviceha.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.availability.serviceha
-
-from __future__ import absolute_import
-import mock
-import unittest
-
-from yardstick.benchmark.scenarios.availability import serviceha
-
-
-@mock.patch('yardstick.benchmark.scenarios.availability.serviceha.basemonitor')
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.serviceha.baseattacker')
-class ServicehaTestCase(unittest.TestCase):
-
- def setUp(self):
- host = {
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- self.ctx = {"nodes": {"node1": host}}
- attacker_cfg = {
- "fault_type": "kill-process",
- "process_name": "nova-api",
- "host": "node1"
- }
- attacker_cfgs = []
- attacker_cfgs.append(attacker_cfg)
- monitor_cfg = {
- "monitor_cmd": "nova image-list",
- "monitor_time": 0.1
- }
- monitor_cfgs = []
- monitor_cfgs.append(monitor_cfg)
-
- options = {
- "attackers": attacker_cfgs,
- "monitors": monitor_cfgs
- }
- sla = {"outage_time": 5}
- self.args = {"options": options, "sla": sla}
-
- def test__serviceha_setup_run_successful(self, mock_attacker,
- mock_monitor):
- p = serviceha.ServiceHA(self.args, self.ctx)
-
- p.setup()
- self.assertEqual(p.setup_done, True)
- mock_monitor.MonitorMgr().verify_SLA.return_value = True
- ret = {}
- p.run(ret)
- p.teardown()
-"""
- def test__serviceha_run_sla_error(self, mock_attacker, mock_monitor):
- p = serviceha.ServiceHA(self.args, self.ctx)
-
- p.setup()
- self.assertEqual(p.setup_done, True)
-
- result = {}
- result["outage_time"] = 10
- mock_monitor.Monitor().get_result.return_value = result
-
- ret = {}
- self.assertRaises(AssertionError, p.run, ret)
-"""
diff --git a/tests/unit/benchmark/scenarios/lib/test_attach_volume.py b/tests/unit/benchmark/scenarios/lib/test_attach_volume.py
deleted file mode 100644
index e69924072..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_attach_volume.py
+++ /dev/null
@@ -1,33 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.attach_volume import AttachVolume
-
-
-class AttachVolumeTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.attach_server_volume')
- def test_attach_volume(self, mock_attach_server_volume):
- options = {
- 'volume_id': '123-456-000',
- 'server_id': '000-123-456'
- }
- args = {"options": options}
- obj = AttachVolume(args, {})
- obj.run({})
- self.assertTrue(mock_attach_server_volume.called)
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_check_value.py b/tests/unit/benchmark/scenarios/lib/test_check_value.py
deleted file mode 100644
index 21e83f830..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_check_value.py
+++ /dev/null
@@ -1,46 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-
-from yardstick.benchmark.scenarios.lib.check_value import CheckValue
-
-
-class CheckValueTestCase(unittest.TestCase):
-
- def test_check_value_eq(self):
- scenario_cfg = {'options': {'operator': 'eq', 'value1': 1, 'value2': 2}}
- obj = CheckValue(scenario_cfg, {})
- try:
- obj.run({})
- except Exception as e:
- self.assertIsInstance(e, AssertionError)
-
- def test_check_value_eq_pass(self):
- scenario_cfg = {'options': {'operator': 'eq', 'value1': 1, 'value2': 1}}
- obj = CheckValue(scenario_cfg, {})
- try:
- obj.run({})
- except Exception as e:
- self.assertIsInstance(e, AssertionError)
-
- def test_check_value_ne(self):
- scenario_cfg = {'options': {'operator': 'ne', 'value1': 1, 'value2': 1}}
- obj = CheckValue(scenario_cfg, {})
- try:
- obj.run({})
- except Exception as e:
- self.assertIsInstance(e, AssertionError)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py b/tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py
deleted file mode 100644
index 72dbcd7cd..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py
+++ /dev/null
@@ -1,34 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.create_floating_ip import CreateFloatingIp
-
-
-class CreateFloatingIpTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.create_floating_ip')
- @mock.patch('yardstick.common.openstack_utils.get_network_id')
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- def test_create_floating_ip(self, mock_create_floating_ip, mock_get_network_id, mock_get_neutron_client):
- options = {}
- args = {"options": options}
- obj = CreateFloatingIp(args, {})
- obj.run({})
- self.assertTrue(mock_create_floating_ip.called)
- self.assertTrue(mock_get_network_id.called)
- self.assertTrue(mock_get_neutron_client.called)
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_image.py b/tests/unit/benchmark/scenarios/lib/test_create_image.py
deleted file mode 100644
index c213ceba0..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_image.py
+++ /dev/null
@@ -1,41 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.create_image import CreateImage
-
-
-class CreateImageTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.create_image')
- @mock.patch('yardstick.common.openstack_utils.get_glance_client')
- def test_create_image(self, mock_get_glance_client, mock_create_image):
- options = {
- 'image_name': 'yardstick_test_image_01',
- 'disk_format': 'qcow2',
- 'container_format': 'bare',
- 'min_disk': '1',
- 'min_ram': '512',
- 'protected': 'False',
- 'tags': '["yardstick automatic test image"]',
- 'file_path': '/home/opnfv/images/cirros-0.3.5-x86_64-disk.img'
- }
- args = {"options": options}
- obj = CreateImage(args, {})
- obj.run({})
- self.assertTrue(mock_create_image.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_keypair.py b/tests/unit/benchmark/scenarios/lib/test_create_keypair.py
deleted file mode 100644
index 4b9b72013..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_keypair.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.create_keypair import CreateKeypair
-
-PREFIX = "yardstick.benchmark.scenarios.lib.create_keypair"
-
-
-class CreateKeypairTestCase(unittest.TestCase):
- @mock.patch('{}.paramiko'.format(PREFIX))
- @mock.patch('{}.op_utils'.format(PREFIX))
- def test_create_keypair(self, mock_op_utils, mock_paramiko):
- options = {
- 'key_name': 'yardstick_key',
- 'key_path': '/tmp/yardstick_key'
- }
- args = {"options": options}
- obj = CreateKeypair(args, {})
- obj.run({})
- self.assertTrue(mock_op_utils.create_keypair.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_network.py b/tests/unit/benchmark/scenarios/lib/test_create_network.py
deleted file mode 100644
index 8e7d8b5a1..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_network.py
+++ /dev/null
@@ -1,39 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.create_network import CreateNetwork
-
-
-class CreateNetworkTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.create_neutron_net')
- def test_create_network(self, mock_get_neutron_client, mock_create_neutron_net):
- options = {
- 'openstack_paras': {
- 'name': 'yardstick_net',
- 'admin_state_up': 'True'
- }
- }
- args = {"options": options}
- obj = CreateNetwork(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_create_neutron_net.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_router.py b/tests/unit/benchmark/scenarios/lib/test_create_router.py
deleted file mode 100644
index b956a3634..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_router.py
+++ /dev/null
@@ -1,39 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.create_router import CreateRouter
-
-
-class CreateRouterTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.create_neutron_router')
- def test_create_router(self, mock_get_neutron_client, mock_create_neutron_router):
- options = {
- 'openstack_paras': {
- 'admin_state_up': 'True',
- 'name': 'yardstick_router'
- }
- }
- args = {"options": options}
- obj = CreateRouter(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_create_neutron_router.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py b/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py
deleted file mode 100644
index b962f7f0e..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py
+++ /dev/null
@@ -1,39 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.create_sec_group import CreateSecgroup
-
-
-class CreateSecGroupTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.create_security_group_full')
- def test_create_sec_group(self, mock_get_neutron_client, mock_create_security_group_full):
- options = {
- 'openstack_paras': {
- 'sg_name': 'yardstick_sec_group',
- 'description': 'security group for yardstick manual VM'
- }
- }
- args = {"options": options}
- obj = CreateSecgroup(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_create_security_group_full.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_server.py b/tests/unit/benchmark/scenarios/lib/test_create_server.py
deleted file mode 100644
index 7c4193132..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_server.py
+++ /dev/null
@@ -1,42 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.create_server import CreateServer
-
-
-class CreateServerTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.create_instance_and_wait_for_active')
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- @mock.patch('yardstick.common.openstack_utils.get_glance_client')
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- def test_create_server(self, mock_get_nova_client, mock_get_neutron_client,
- mock_get_glance_client, mock_create_instance_and_wait_for_active):
- scenario_cfg = {
- 'options' : {
- 'openstack_paras': 'example'
- },
- 'output': 'server'
- }
- obj = CreateServer(scenario_cfg, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_get_glance_client.called)
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_create_instance_and_wait_for_active.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_subnet.py b/tests/unit/benchmark/scenarios/lib/test_create_subnet.py
deleted file mode 100644
index 0154755c4..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_subnet.py
+++ /dev/null
@@ -1,41 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.create_subnet import CreateSubnet
-
-
-class CreateSubnetTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.create_neutron_subnet')
- def test_create_subnet(self, mock_get_neutron_client, mock_create_neutron_subnet):
- options = {
- 'openstack_paras': {
- 'network_id': '123-123-123',
- 'name': 'yardstick_subnet',
- 'cidr': '10.10.10.0/24',
- 'ip_version': '4'
- }
- }
- args = {"options": options}
- obj = CreateSubnet(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_create_neutron_subnet.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_volume.py b/tests/unit/benchmark/scenarios/lib/test_create_volume.py
deleted file mode 100644
index fc633139e..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_create_volume.py
+++ /dev/null
@@ -1,40 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.create_volume import CreateVolume
-
-
-class CreateVolumeTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.create_volume')
- @mock.patch('yardstick.common.openstack_utils.get_image_id')
- @mock.patch('yardstick.common.openstack_utils.get_cinder_client')
- @mock.patch('yardstick.common.openstack_utils.get_glance_client')
- def test_create_volume(self, mock_get_glance_client, mock_get_cinder_client, mock_image_id, mock_create_volume):
- options = {
- 'volume_name': 'yardstick_test_volume_01',
- 'size': '256',
- 'image': 'cirros-0.3.5'
- }
- args = {"options": options}
- obj = CreateVolume(args, {})
- obj.run({})
- self.assertTrue(mock_create_volume.called)
- self.assertTrue(mock_image_id.called)
- self.assertTrue(mock_get_glance_client.called)
- self.assertTrue(mock_get_cinder_client.called)
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py b/tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py
deleted file mode 100644
index 7592c8070..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_floating_ip import DeleteFloatingIp
-
-
-class DeleteFloatingIpTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- @mock.patch('yardstick.common.openstack_utils.delete_floating_ip')
- def test_delete_floating_ip(self, mock_get_nova_client, mock_delete_floating_ip):
- options = {
- 'floating_ip_id': '123-123-123'
- }
- args = {"options": options}
- obj = DeleteFloatingIp(args, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_delete_floating_ip.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_image.py b/tests/unit/benchmark/scenarios/lib/test_delete_image.py
deleted file mode 100644
index 2bbf14d16..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_image.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.delete_image import DeleteImage
-
-
-class DeleteImageTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.delete_image')
- @mock.patch('yardstick.common.openstack_utils.get_image_id')
- @mock.patch('yardstick.common.openstack_utils.get_glance_client')
- def test_delete_image(self, mock_get_glance_client, mock_image_id, mock_delete_image):
- options = {
- 'image_name': 'yardstick_test_image_01'
- }
- args = {"options": options}
- obj = DeleteImage(args, {})
- obj.run({})
- self.assertTrue(mock_delete_image.called)
- self.assertTrue(mock_image_id.called)
- self.assertTrue(mock_get_glance_client.called)
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_keypair.py b/tests/unit/benchmark/scenarios/lib/test_delete_keypair.py
deleted file mode 100644
index 9663fe9fb..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_keypair.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_keypair import DeleteKeypair
-
-
-class DeleteKeypairTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- @mock.patch('yardstick.common.openstack_utils.delete_keypair')
- def test_detach_volume(self, mock_get_nova_client, mock_delete_keypair):
- options = {
- 'key_name': 'yardstick_key'
- }
- args = {"options": options}
- obj = DeleteKeypair(args, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_delete_keypair.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_network.py b/tests/unit/benchmark/scenarios/lib/test_delete_network.py
deleted file mode 100644
index 9ccaa8232..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_network.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_network import DeleteNetwork
-
-
-class DeleteNetworkTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.delete_neutron_net')
- def test_delete_network(self, mock_get_neutron_client, mock_delete_neutron_net):
- options = {
- 'network_id': '123-123-123'
- }
- args = {"options": options}
- obj = DeleteNetwork(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_delete_neutron_net.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_router.py b/tests/unit/benchmark/scenarios/lib/test_delete_router.py
deleted file mode 100644
index ab1ad5d35..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_router.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_router import DeleteRouter
-
-
-class DeleteRouterTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.delete_neutron_router')
- def test_delete_router(self, mock_get_neutron_client, mock_delete_neutron_router):
- options = {
- 'router_id': '123-123-123'
- }
- args = {"options": options}
- obj = DeleteRouter(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_delete_neutron_router.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py b/tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py
deleted file mode 100644
index 2cc9c9f37..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py
+++ /dev/null
@@ -1,37 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_router_interface import DeleteRouterInterface
-
-
-class DeleteRouterInterfaceTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
- @mock.patch('yardstick.common.openstack_utils.remove_interface_router')
- def test_delete_router_interface(self, mock_get_neutron_client, mock_remove_interface_router):
- options = {
- 'router_id': '123-123-123',
- 'subnet_id': '321-321-321'
- }
- args = {"options": options}
- obj = DeleteRouterInterface(args, {})
- obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_remove_interface_router.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_server.py b/tests/unit/benchmark/scenarios/lib/test_delete_server.py
deleted file mode 100644
index 622ead5ac..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_server.py
+++ /dev/null
@@ -1,35 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.delete_server import DeleteServer
-
-
-class DeleteServerTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.delete_instance')
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- def test_delete_server(self, mock_get_nova_client, mock_delete_instance):
- options = {
- 'server_id': '1234-4567-0000'
- }
- args = {"options": options}
- obj = DeleteServer(args, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_delete_instance.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_volume.py b/tests/unit/benchmark/scenarios/lib/test_delete_volume.py
deleted file mode 100644
index a11d0121b..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_delete_volume.py
+++ /dev/null
@@ -1,36 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.delete_volume import DeleteVolume
-
-
-class DeleteVolumeTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_cinder_client')
- @mock.patch('yardstick.common.openstack_utils.delete_volume')
- def test_delete_volume(self, mock_get_cinder_client, mock_delete_volume):
- options = {
- 'volume_id': '123-123-123'
- }
- args = {"options": options}
- obj = DeleteVolume(args, {})
- obj.run({})
- self.assertTrue(mock_get_cinder_client.called)
- self.assertTrue(mock_delete_volume.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_detach_volume.py b/tests/unit/benchmark/scenarios/lib/test_detach_volume.py
deleted file mode 100644
index 0cffcba15..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_detach_volume.py
+++ /dev/null
@@ -1,35 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-import paramiko
-
-from yardstick.benchmark.scenarios.lib.detach_volume import DetachVolume
-
-
-class DetachVolumeTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.detach_volume')
- def test_detach_volume(self, mock_detach_volume):
- options = {
- 'server_id': '321-321-321',
- 'volume_id': '123-123-123'
- }
- args = {"options": options}
- obj = DetachVolume(args, {})
- obj.run({})
- self.assertTrue(mock_detach_volume.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_get_flavor.py b/tests/unit/benchmark/scenarios/lib/test_get_flavor.py
deleted file mode 100644
index bf12e0a32..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_get_flavor.py
+++ /dev/null
@@ -1,33 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.get_flavor import GetFlavor
-
-
-class GetFlavorTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_flavor_by_name')
- def test_get_flavor(self, mock_get_flavor_by_name):
- options = {
- 'flavor_name': 'yardstick_test_flavor'
- }
- args = {"options": options}
- obj = GetFlavor(args, {})
- obj.run({})
- self.assertTrue(mock_get_flavor_by_name.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_get_server.py b/tests/unit/benchmark/scenarios/lib/test_get_server.py
deleted file mode 100644
index aebbf5416..000000000
--- a/tests/unit/benchmark/scenarios/lib/test_get_server.py
+++ /dev/null
@@ -1,50 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
-import mock
-
-from yardstick.benchmark.scenarios.lib.get_server import GetServer
-
-
-class GetServerTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.get_server_by_name')
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- def test_get_server_with_name(self, mock_get_nova_client, mock_get_server_by_name):
- scenario_cfg = {
- 'options': {
- 'server_name': 'yardstick_server'
- },
- 'output': 'status server'
- }
- obj = GetServer(scenario_cfg, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_get_server_by_name.called)
-
- @mock.patch('yardstick.common.openstack_utils.get_nova_client')
- def test_get_server_with_id(self, mock_get_nova_client):
- scenario_cfg = {
- 'options': {
- 'server_id': '1'
- },
- 'output': 'status server'
- }
- mock_get_nova_client().servers.get.return_value = None
- obj = GetServer(scenario_cfg, {})
- obj.run({})
- self.assertTrue(mock_get_nova_client.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_pktgen.py b/tests/unit/benchmark/scenarios/networking/test_pktgen.py
deleted file mode 100644
index 3928aacde..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_pktgen.py
+++ /dev/null
@@ -1,746 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Ericsson AB 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.networking.pktgen.Pktgen
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.networking import pktgen
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.pktgen.ssh')
-class PktgenTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': 'mykey.key'
- },
- 'target': {
- 'ip': '172.16.0.138',
- 'user': 'root',
- 'key_filename': 'mykey.key',
- 'ipaddr': '172.16.0.138'
- }
- }
-
- def test_pktgen_successful_setup(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- self.assertIsNotNone(p.server)
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- def test_pktgen_successful_iptables_setup(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.number_of_ports = args['options']['number_of_ports']
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- p._iptables_setup()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "sudo iptables -F; "
- "sudo iptables -A INPUT -p udp --dport 1000:%s -j DROP"
- % 1010, timeout=60)
-
- def test_pktgen_unsuccessful_iptables_setup(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
-
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.number_of_ports = args['options']['number_of_ports']
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p._iptables_setup)
-
- def test_pktgen_successful_iptables_get_result(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
-
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.number_of_ports = args['options']['number_of_ports']
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '150000', '')
- p._iptables_get_result()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "sudo iptables -L INPUT -vnx |"
- "awk '/dpts:1000:%s/ {{printf \"%%s\", $1}}'"
- % 1010)
-
- def test_pktgen_unsuccessful_iptables_get_result(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.number_of_ports = args['options']['number_of_ports']
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p._iptables_get_result)
-
- def test_pktgen_successful_no_sla(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- }
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149776, "packetsize": 60, "flows": 110, "ppm": 3179}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
- def test_pktgen_successful_sla(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- 'sla': {'max_ppm': 10000}
- }
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149776, "packetsize": 60, "flows": 110, "ppm": 3179}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
- def test_pktgen_unsuccessful_sla(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- 'sla': {'max_ppm': 1000}
- }
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149776, "packetsize": 60, "flows": 110}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_pktgen_unsuccessful_script_error(self, mock_ssh):
-
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10},
- 'sla': {'max_ppm': 1000}
- }
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.run, result)
-
- def test_pktgen_get_vnic_driver_name(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, 'ixgbevf', '')
-
- vnic_driver_name = p._get_vnic_driver_name()
- self.assertEqual(vnic_driver_name, 'ixgbevf')
-
- def test_pktgen_unsuccessful_get_vnic_driver_name(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._get_vnic_driver_name)
-
- def test_pktgen_get_sriov_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '2', '')
-
- p.queue_number = p._get_sriov_queue_number()
- self.assertEqual(p.queue_number, 2)
-
- def test_pktgen_unsuccessful_get_sriov_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._get_sriov_queue_number)
-
- def test_pktgen_get_available_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '4', '')
-
- p._get_available_queue_number()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "sudo ethtool -l eth0 | grep Combined | head -1 |"
- "awk '{printf $2}'")
-
- def test_pktgen_unsuccessful_get_available_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._get_available_queue_number)
-
- def test_pktgen_get_usable_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '1', '')
-
- p._get_usable_queue_number()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "sudo ethtool -l eth0 | grep Combined | tail -1 |"
- "awk '{printf $2}'")
-
- def test_pktgen_unsuccessful_get_usable_queue_number(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._get_usable_queue_number)
-
- def test_pktgen_enable_ovs_multiqueue(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '4', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = 1
- p._get_usable_queue_number = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = 4
- p._get_available_queue_number = mock_result2
-
- p.queue_number = p._enable_ovs_multiqueue()
- self.assertEqual(p.queue_number, 4)
-
- def test_pktgen_enable_ovs_multiqueue_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '1', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = 1
- p._get_usable_queue_number = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = 1
- p._get_available_queue_number = mock_result2
-
- p.queue_number = p._enable_ovs_multiqueue()
- self.assertEqual(p.queue_number, 1)
-
- def test_pktgen_unsuccessful_enable_ovs_multiqueue(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = 1
- p._get_usable_queue_number = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = 4
- p._get_available_queue_number = mock_result2
-
- self.assertRaises(RuntimeError, p._enable_ovs_multiqueue)
-
- def test_pktgen_setup_irqmapping_ovs(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '10', '')
-
- p._setup_irqmapping_ovs(4)
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "echo 8 | sudo tee /proc/irq/10/smp_affinity")
-
- def test_pktgen_setup_irqmapping_ovs_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '10', '')
-
- p._setup_irqmapping_ovs(1)
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "echo 1 | sudo tee /proc/irq/10/smp_affinity")
-
- def test_pktgen_unsuccessful_setup_irqmapping_ovs(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._setup_irqmapping_ovs, 4)
-
- def test_pktgen_unsuccessful_setup_irqmapping_ovs_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._setup_irqmapping_ovs, 1)
-
- def test_pktgen_setup_irqmapping_sriov(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '10', '')
-
- p._setup_irqmapping_sriov(2)
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "echo 2 | sudo tee /proc/irq/10/smp_affinity")
-
- def test_pktgen_setup_irqmapping_sriov_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '10', '')
-
- p._setup_irqmapping_sriov(1)
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "echo 1 | sudo tee /proc/irq/10/smp_affinity")
-
- def test_pktgen_unsuccessful_setup_irqmapping_sriov(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._setup_irqmapping_sriov, 2)
-
- def test_pktgen_unsuccessful_setup_irqmapping_sriov_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._setup_irqmapping_sriov, 1)
-
- def test_pktgen_is_irqbalance_disabled(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- p._is_irqbalance_disabled()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "grep ENABLED /etc/default/irqbalance")
-
- def test_pktgen_unsuccessful_is_irqbalance_disabled(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._is_irqbalance_disabled)
-
- def test_pktgen_disable_irqbalance(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- p._disable_irqbalance()
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "sudo service irqbalance disable")
-
- def test_pktgen_unsuccessful_disable_irqbalance(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- self.assertRaises(RuntimeError, p._disable_irqbalance)
-
- def test_pktgen_multiqueue_setup_ovs(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'multiqueue': True},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '4', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = False
- p._is_irqbalance_disabled = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = "virtio_net"
- p._get_vnic_driver_name = mock_result2
-
- mock_result3 = mock.Mock()
- mock_result3.return_value = 1
- p._get_usable_queue_number = mock_result3
-
- mock_result4 = mock.Mock()
- mock_result4.return_value = 4
- p._get_available_queue_number = mock_result4
-
- p.multiqueue_setup()
-
- self.assertEqual(p.queue_number, 4)
-
- def test_pktgen_multiqueue_setup_ovs_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'multiqueue': True},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '1', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = False
- p._is_irqbalance_disabled = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = "virtio_net"
- p._get_vnic_driver_name = mock_result2
-
- mock_result3 = mock.Mock()
- mock_result3.return_value = 1
- p._get_usable_queue_number = mock_result3
-
- mock_result4 = mock.Mock()
- mock_result4.return_value = 1
- p._get_available_queue_number = mock_result4
-
- p.multiqueue_setup()
-
- self.assertEqual(p.queue_number, 1)
-
- def test_pktgen_multiqueue_setup_sriov(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'multiqueue': True},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '2', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = False
- p._is_irqbalance_disabled = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = "ixgbevf"
- p._get_vnic_driver_name = mock_result2
-
- p.multiqueue_setup()
-
- self.assertEqual(p.queue_number, 2)
-
- def test_pktgen_multiqueue_setup_sriov_1q(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'multiqueue': True},
- }
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '1', '')
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = False
- p._is_irqbalance_disabled = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = "ixgbevf"
- p._get_vnic_driver_name = mock_result2
-
- p.multiqueue_setup()
-
- self.assertEqual(p.queue_number, 1)
-
- def test_pktgen_run_with_setup_done(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10, 'duration': 20, 'multiqueue': True},
- 'sla': {'max_ppm': 1}
- }
- result = {}
- p = pktgen.Pktgen(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- p.setup_done = True
- p.multiqueue_setup_done = True
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149300, "flows": 110, "ppm": 0}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
- def test_pktgen_run_with_ovs_multiqueque(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10, 'duration': 20, 'multiqueue': True},
- 'sla': {'max_ppm': 1}
- }
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_result = mock.Mock()
- mock_result.return_value = "virtio_net"
- p._get_vnic_driver_name = mock_result
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = 1
- p._get_usable_queue_number = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = 4
- p._get_available_queue_number = mock_result2
-
- mock_result3 = mock.Mock()
- mock_result3.return_value = 4
- p._enable_ovs_multiqueue = mock_result3
-
- mock_result4 = mock.Mock()
- p._setup_irqmapping_ovs = mock_result4
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149300, "flows": 110, "ppm": 0}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
- def test_pktgen_run_with_sriov_multiqueque(self, mock_ssh):
- args = {
- 'options': {'packetsize': 60, 'number_of_ports': 10, 'duration': 20, 'multiqueue': True},
- 'sla': {'max_ppm': 1}
- }
- result = {}
-
- p = pktgen.Pktgen(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- mock_result1 = mock.Mock()
- mock_result1.return_value = "ixgbevf"
- p._get_vnic_driver_name = mock_result1
-
- mock_result2 = mock.Mock()
- mock_result2.return_value = 2
- p._get_sriov_queue_number = mock_result2
-
- mock_result3 = mock.Mock()
- p._setup_irqmapping_sriov = mock_result3
-
- mock_iptables_result = mock.Mock()
- mock_iptables_result.return_value = 149300
- p._iptables_get_result = mock_iptables_result
-
- sample_output = '{"packets_per_second": 9753, "errors": 0, \
- "packets_sent": 149300, "flows": 110, "ppm": 0}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
- expected_result["packets_received"] = 149300
- expected_result["packetsize"] = 60
- self.assertEqual(result, expected_result)
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py b/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py
deleted file mode 100644
index b4b87522c..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 ZTE 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.networking.pktgen.Pktgen
-
-from __future__ import absolute_import
-import unittest
-
-import mock
-
-import yardstick.common.utils as utils
-from yardstick.benchmark.scenarios.networking import pktgen_dpdk
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.pktgen_dpdk.time')
-@mock.patch('yardstick.benchmark.scenarios.networking.pktgen_dpdk.ssh')
-class PktgenDPDKLatencyTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'root',
- 'key_filename': 'mykey.key'
- },
- 'target': {
- 'ip': '172.16.0.138',
- 'user': 'root',
- 'key_filename': 'mykey.key',
- 'ipaddr': '172.16.0.138'
- }
- }
-
- def test_pktgen_dpdk_successful_setup(self, mock_ssh, mock_time):
-
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
- p.setup()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- self.assertIsNotNone(p.server)
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- def test_pktgen_dpdk_successful_get_port_ip(self, mock_ssh, mock_time):
-
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- utils.get_port_ip(p.server, "eth1")
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "ifconfig eth1 |grep 'inet addr' |awk '{print $2}' |cut -d ':' -f2 ")
-
- def test_pktgen_dpdk_unsuccessful_get_port_ip(self, mock_ssh, mock_time):
-
- args = {
- 'options': {'packetsize': 60},
- }
-
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, utils.get_port_ip, p.server, "eth1")
-
- def test_pktgen_dpdk_successful_get_port_mac(self, mock_ssh, mock_time):
-
- args = {
- 'options': {'packetsize': 60},
- }
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- utils.get_port_mac(p.server, "eth1")
-
- mock_ssh.SSH.from_node().execute.assert_called_with(
- "ifconfig |grep HWaddr |grep eth1 |awk '{print $5}' ")
-
- def test_pktgen_dpdk_unsuccessful_get_port_mac(self, mock_ssh, mock_time):
-
- args = {
- 'options': {'packetsize': 60},
- }
-
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
- p.server = mock_ssh.SSH.from_node()
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, utils.get_port_mac, p.server, "eth1")
-
- def test_pktgen_dpdk_successful_no_sla(self, mock_ssh, mock_time):
-
- args = {
- 'options': {'packetsize': 60},
- }
-
- result = {}
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
-
- sample_output = '100\n110\n112\n130\n149\n150\n90\n150\n200\n162\n'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
- # with python 3 we get float, might be due python division changes
- # AssertionError: {'avg_latency': 132.33333333333334} != {
- # 'avg_latency': 132}
- delta = result['avg_latency'] - 132
- self.assertLessEqual(delta, 1)
-
- def test_pktgen_dpdk_successful_sla(self, mock_ssh, mock_time):
-
- args = {
- 'options': {'packetsize': 60},
- 'sla': {'max_latency': 100}
- }
- result = {}
-
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
-
- sample_output = '100\n100\n100\n100\n100\n100\n100\n100\n100\n100\n'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
-
- p.run(result)
-
- self.assertEqual(result, {"avg_latency": 100})
-
- def test_pktgen_dpdk_unsuccessful_sla(self, mock_ssh, mock_time):
-
- args = {
- 'options': {'packetsize': 60},
- 'sla': {'max_latency': 100}
- }
- result = {}
-
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
-
- p.server = mock_ssh.SSH.from_node()
- p.client = mock_ssh.SSH.from_node()
-
- sample_output = '100\n110\n112\n130\n149\n150\n90\n150\n200\n162\n'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
-
- def test_pktgen_dpdk_unsuccessful_script_error(self, mock_ssh, mock_time):
-
- args = {
- 'options': {'packetsize': 60},
- 'sla': {'max_latency': 100}
- }
- result = {}
-
- p = pktgen_dpdk.PktgenDPDKLatency(args, self.ctx)
-
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
- self.assertRaises(RuntimeError, p.run, result)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_vsperf.py b/tests/unit/benchmark/scenarios/networking/test_vsperf.py
deleted file mode 100644
index cbbfc2b34..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_vsperf.py
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2016 Intel Corporation.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Unittest for yardstick.benchmark.scenarios.networking.vsperf.Vsperf
-
-from __future__ import absolute_import
-try:
- from unittest import mock
-except ImportError:
- import mock
-import unittest
-
-from yardstick.benchmark.scenarios.networking import vsperf
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.vsperf.subprocess')
-@mock.patch('yardstick.benchmark.scenarios.networking.vsperf.ssh')
-class VsperfTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- "host": {
- "ip": "10.229.47.137",
- "user": "ubuntu",
- "password": "ubuntu",
- },
- }
- self.args = {
- 'options': {
- 'testname': 'p2p_rfc2544_continuous',
- 'traffic_type': 'continuous',
- 'frame_size': '64',
- 'bidirectional': 'True',
- 'iload': 100,
- 'trafficgen_port1': 'eth1',
- 'trafficgen_port2': 'eth3',
- 'external_bridge': 'br-ex',
- 'conf_file': 'vsperf-yardstick.conf',
- 'setup_script': 'setup_yardstick.sh',
- 'test_params': 'TRAFFICGEN_DURATION=30;',
- },
- 'sla': {
- 'metrics': 'throughput_rx_fps',
- 'throughput_rx_fps': 500000,
- 'action': 'monitor',
- }
- }
-
- def test_vsperf_setup(self, mock_ssh, mock_subprocess):
- p = vsperf.Vsperf(self.args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- def test_vsperf_teardown(self, mock_ssh, mock_subprocess):
- p = vsperf.Vsperf(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- p.teardown()
- self.assertEqual(p.setup_done, False)
-
- def test_vsperf_run_ok(self, mock_ssh, mock_subprocess):
- p = vsperf.Vsperf(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- # run() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_ssh.SSH.from_node().execute.return_value = (
- 0, 'throughput_rx_fps\r\n14797660.000\r\n', '')
-
- result = {}
- p.run(result)
-
- self.assertEqual(result['throughput_rx_fps'], '14797660.000')
-
- def test_vsperf_run_falied_vsperf_execution(self, mock_ssh,
- mock_subprocess):
- p = vsperf.Vsperf(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- # run() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- result = {}
- self.assertRaises(RuntimeError, p.run, result)
-
- def test_vsperf_run_falied_csv_report(self, mock_ssh, mock_subprocess):
- p = vsperf.Vsperf(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- # run() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- result = {}
- self.assertRaises(RuntimeError, p.run, result)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py b/tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py
deleted file mode 100644
index 5759f0a90..000000000
--- a/tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py
+++ /dev/null
@@ -1,237 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2017 Nokia
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Unittest for yardstick.benchmark.scenarios.networking.vsperf.VsperfDPDK
-
-from __future__ import absolute_import
-try:
- from unittest import mock
-except ImportError:
- import mock
-import unittest
-
-from yardstick.benchmark.scenarios.networking import vsperf_dpdk
-
-
-@mock.patch('yardstick.benchmark.scenarios.networking.vsperf_dpdk.subprocess')
-@mock.patch('yardstick.benchmark.scenarios.networking.vsperf_dpdk.ssh')
-class VsperfDPDKTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- "host": {
- "ip": "10.229.47.137",
- "user": "ubuntu",
- "password": "ubuntu",
- },
- }
- self.args = {
- 'task_id': "1234-5678",
- 'options': {
- 'testname': 'pvp_tput',
- 'traffic_type': 'rfc2544_throughput',
- 'frame_size': '64',
- 'test_params': 'TRAFFICGEN_DURATION=30;',
- 'trafficgen_port1': 'ens4',
- 'trafficgen_port2': 'ens5',
- 'conf_file': 'vsperf-yardstick.conf',
- 'setup_script': 'setup_yardstick.sh',
- 'moongen_helper_file': '~/moongen.py',
- 'moongen_host_ip': '10.5.201.151',
- 'moongen_port1_mac': '8c:dc:d4:ae:7c:5c',
- 'moongen_port2_mac': '8c:dc:d4:ae:7c:5d',
- 'trafficgen_port1_nw': 'test2',
- 'trafficgen_port2_nw': 'test3',
- },
- 'sla': {
- 'metrics': 'throughput_rx_fps',
- 'throughput_rx_fps': 500000,
- 'action': 'monitor',
- }
- }
-
- def test_vsperf_dpdk_setup(self, mock_ssh, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- def test_vsperf_dpdk_teardown(self, mock_ssh, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- p.teardown()
- self.assertEqual(p.setup_done, False)
-
- def test_vsperf_dpdk_is_dpdk_setup_no(self, mock_ssh, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- # is_dpdk_setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, 'dummy', '')
-
- result = p._is_dpdk_setup()
- self.assertEqual(result, False)
-
- def test_vsperf_dpdk_is_dpdk_setup_yes(self, mock_ssh, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- # is_dpdk_setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
-
- result = p._is_dpdk_setup()
- self.assertEqual(result, True)
-
- @mock.patch('yardstick.benchmark.scenarios.networking.vsperf_dpdk.time')
- def test_vsperf_dpdk_dpdk_setup_first(self, mock_time, mock_ssh, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- # is_dpdk_setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, 'dummy', '')
-
- p.dpdk_setup()
- self.assertEqual(p._is_dpdk_setup(), False)
- self.assertEqual(p.dpdk_setup_done, True)
-
- @mock.patch('yardstick.benchmark.scenarios.networking.vsperf_dpdk.time')
- def test_vsperf_dpdk_dpdk_setup_next(self, mock_time, mock_ssh, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- p.dpdk_setup()
- self.assertEqual(p._is_dpdk_setup(), True)
- self.assertEqual(p.dpdk_setup_done, True)
-
- @mock.patch('yardstick.benchmark.scenarios.networking.vsperf_dpdk.time')
- def test_vsperf_dpdk_dpdk_setup_fail(self, mock_time, mock_ssh, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
- self.assertEqual(p.setup_done, True)
-
- self.assertRaises(RuntimeError, p.dpdk_setup)
-
- @mock.patch('yardstick.benchmark.scenarios.networking.vsperf_dpdk.time')
- def test_vsperf_dpdk_run_ok(self, mock_time, mock_ssh, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- # run() specific mocks
- mock_subprocess.call().execute.return_value = None
- mock_ssh.SSH.from_node().execute.return_value = (
- 0, 'throughput_rx_fps\r\n14797660.000\r\n', '')
-
- result = {}
- p.run(result)
-
- self.assertEqual(result['throughput_rx_fps'], '14797660.000')
-
- def test_vsperf_dpdk_run_falied_vsperf_execution(self, mock_ssh,
- mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- # run() specific mocks
- mock_subprocess.call().execute.return_value = None
- mock_subprocess.call().execute.return_value = None
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- result = {}
- self.assertRaises(RuntimeError, p.run, result)
-
- def test_vsperf_dpdk_run_falied_csv_report(self, mock_ssh, mock_subprocess):
- p = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
-
- # setup() specific mocks
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_subprocess.call().execute.return_value = None
-
- p.setup()
- self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
-
- # run() specific mocks
- mock_subprocess.call().execute.return_value = None
- mock_subprocess.call().execute.return_value = None
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
- mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
-
- result = {}
- self.assertRaises(RuntimeError, p.run, result)
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/parser/test_parser.py b/tests/unit/benchmark/scenarios/parser/test_parser.py
deleted file mode 100644
index 59b98a092..000000000
--- a/tests/unit/benchmark/scenarios/parser/test_parser.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and other.
-#
-# 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.parser.Parser
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.parser import parser
-
-
-@mock.patch('yardstick.benchmark.scenarios.parser.parser.subprocess')
-class ParserTestCase(unittest.TestCase):
-
- def setUp(self):
- pass
-
- def test_parser_successful_setup(self, mock_subprocess):
-
- p = parser.Parser({}, {})
- mock_subprocess.call().return_value = 0
- p.setup()
- self.assertEqual(p.setup_done, True)
-
- def test_parser_successful(self, mock_subprocess):
- args = {
- 'options': {'yangfile': '/root/yardstick/samples/yang.yaml',
- 'toscafile': '/root/yardstick/samples/tosca.yaml'},
- }
- p = parser.Parser(args, {})
- result = {}
- mock_subprocess.call().return_value = 0
- sample_output = '{"yangtotosca": "success"}'
-
- p.run(result)
- expected_result = jsonutils.loads(sample_output)
-
- def test_parser_teardown_successful(self, mock_subprocess):
-
- p = parser.Parser({}, {})
- mock_subprocess.call().return_value = 0
- p.teardown()
- self.assertEqual(p.teardown_done, True)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/storage/test_storperf.py b/tests/unit/benchmark/scenarios/storage/test_storperf.py
deleted file mode 100644
index 7b16bb37d..000000000
--- a/tests/unit/benchmark/scenarios/storage/test_storperf.py
+++ /dev/null
@@ -1,238 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd.
-#
-# 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.storage.storperf.StorPerf
-
-from __future__ import absolute_import
-
-import unittest
-
-import mock
-from oslo_serialization import jsonutils
-
-from yardstick.benchmark.scenarios.storage import storperf
-
-
-def mocked_requests_config_post(*args, **kwargs):
- class MockResponseConfigPost:
-
- def __init__(self, json_data, status_code):
- self.content = json_data
- self.status_code = status_code
-
- return MockResponseConfigPost(
- '{"stack_id": "dac27db1-3502-4300-b301-91c64e6a1622",'
- '"stack_created": "false"}',
- 200)
-
-
-def mocked_requests_config_get(*args, **kwargs):
- class MockResponseConfigGet:
-
- def __init__(self, json_data, status_code):
- self.content = json_data
- self.status_code = status_code
-
- return MockResponseConfigGet(
- '{"stack_id": "dac27db1-3502-4300-b301-91c64e6a1622",'
- '"stack_created": "true"}',
- 200)
-
-
-def mocked_requests_job_get(*args, **kwargs):
- class MockResponseJobGet:
-
- def __init__(self, json_data, status_code):
- self.content = json_data
- self.status_code = status_code
-
- return MockResponseJobGet(
- '{"Status": "Completed",\
- "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}',
- 200)
-
-
-def mocked_requests_job_post(*args, **kwargs):
- class MockResponseJobPost:
-
- def __init__(self, json_data, status_code):
- self.content = json_data
- self.status_code = status_code
-
- return MockResponseJobPost('{"job_id": \
- "d46bfb8c-36f4-4a40-813b-c4b4a437f728"}', 200)
-
-
-def mocked_requests_job_delete(*args, **kwargs):
- class MockResponseJobDelete:
-
- def __init__(self, json_data, status_code):
- self.content = json_data
- self.status_code = status_code
-
- return MockResponseJobDelete('{}', 200)
-
-
-def mocked_requests_delete(*args, **kwargs):
- class MockResponseDelete:
-
- def __init__(self, json_data, status_code):
- self.json_data = json_data
- self.status_code = status_code
-
- return MockResponseDelete('{}', 200)
-
-
-def mocked_requests_delete_failed(*args, **kwargs):
- class MockResponseDeleteFailed:
-
- def __init__(self, json_data, status_code):
- self.json_data = json_data
- self.status_code = status_code
-
- if args[0] == "http://172.16.0.137:5000/api/v1.0/configurations":
- return MockResponseDeleteFailed('{"message": "Teardown failed"}', 400)
-
- return MockResponseDeleteFailed('{}', 404)
-
-
-class StorPerfTestCase(unittest.TestCase):
-
- def setUp(self):
- self.ctx = {
- 'host': {
- 'ip': '172.16.0.137',
- 'user': 'cirros',
- 'key_filename': "mykey.key"
- }
- }
-
- self.result = {}
-
- @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.post',
- side_effect=mocked_requests_config_post)
- @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.get',
- side_effect=mocked_requests_config_get)
- def test_successful_setup(self, mock_post, mock_get):
- options = {
- "agent_count": 8,
- "public_network": 'ext-net',
- "volume_size": 10,
- "block_sizes": 4096,
- "queue_depths": 4,
- "workload": "rs",
- "StorPerf_ip": "192.168.23.2",
- "query_interval": 0,
- "timeout": 60
- }
-
- args = {
- "options": options
- }
-
- s = storperf.StorPerf(args, self.ctx)
-
- s.setup()
-
- self.assertTrue(s.setup_done)
-
- @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.post',
- side_effect=mocked_requests_job_post)
- @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.get',
- side_effect=mocked_requests_job_get)
- @mock.patch(
- 'yardstick.benchmark.scenarios.storage.storperf.requests.delete',
- side_effect=mocked_requests_job_delete)
- def test_successful_run(self, mock_post, mock_get, mock_delete):
- options = {
- "agent_count": 8,
- "public_network": 'ext-net',
- "volume_size": 10,
- "block_sizes": 4096,
- "queue_depths": 4,
- "workload": "rs",
- "StorPerf_ip": "192.168.23.2",
- "query_interval": 0,
- "timeout": 60
- }
-
- args = {
- "options": options
- }
-
- s = storperf.StorPerf(args, self.ctx)
- s.setup_done = True
-
- sample_output = '{"Status": "Completed",\
- "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}'
-
- expected_result = jsonutils.loads(sample_output)
-
- s.run(self.result)
-
- self.assertEqual(self.result, expected_result)
-
- @mock.patch(
- 'yardstick.benchmark.scenarios.storage.storperf.requests.delete',
- side_effect=mocked_requests_delete)
- def test_successful_teardown(self, mock_delete):
- options = {
- "agent_count": 8,
- "public_network": 'ext-net',
- "volume_size": 10,
- "block_sizes": 4096,
- "queue_depths": 4,
- "workload": "rs",
- "StorPerf_ip": "192.168.23.2",
- "query_interval": 10,
- "timeout": 60
- }
-
- args = {
- "options": options
- }
-
- s = storperf.StorPerf(args, self.ctx)
-
- s.teardown()
-
- self.assertFalse(s.setup_done)
-
- @mock.patch(
- 'yardstick.benchmark.scenarios.storage.storperf.requests.delete',
- side_effect=mocked_requests_delete_failed)
- def test_failed_teardown(self, mock_delete):
- options = {
- "agent_count": 8,
- "public_network": 'ext-net',
- "volume_size": 10,
- "block_sizes": 4096,
- "queue_depths": 4,
- "workload": "rs",
- "StorPerf_ip": "192.168.23.2",
- "query_interval": 10,
- "timeout": 60
- }
-
- args = {
- "options": options
- }
-
- s = storperf.StorPerf(args, self.ctx)
-
- self.assertRaises(AssertionError, s.teardown(), self.result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/test_base.py b/tests/unit/benchmark/scenarios/test_base.py
deleted file mode 100644
index 78e342978..000000000
--- a/tests/unit/benchmark/scenarios/test_base.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2017: Intel Ltd.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-import unittest
-
-from yardstick.benchmark.scenarios import base
-
-
-class ScenarioTestCase(unittest.TestCase):
-
- def test_get_scenario_type(self):
- scenario_type = 'dummy scenario'
-
- class DummyScenario(base.Scenario):
- __scenario_type__ = scenario_type
-
- self.assertEqual(scenario_type, DummyScenario.get_scenario_type())
-
- def test_get_scenario_type_not_defined(self):
- class DummyScenario(base.Scenario):
- pass
-
- self.assertEqual(str(None), DummyScenario.get_scenario_type())
-
- def test_get_description(self):
- docstring = """First line
- Second line
- Third line
- """
-
- class DummyScenario(base.Scenario):
- __doc__ = docstring
-
- self.assertEqual(docstring.splitlines()[0],
- DummyScenario.get_description())
-
- def test_get_description_empty(self):
- class DummyScenario(base.Scenario):
- pass
-
- self.assertEqual(str(None), DummyScenario.get_description())
diff --git a/tests/unit/cmd/commands/test_env.py b/tests/unit/cmd/commands/test_env.py
deleted file mode 100644
index 73cd5af47..000000000
--- a/tests/unit/cmd/commands/test_env.py
+++ /dev/null
@@ -1,69 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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 __future__ import absolute_import
-import unittest
-import mock
-import uuid
-
-from yardstick.cmd.commands.env import EnvCommand
-
-
-class EnvCommandTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.cmd.commands.env.EnvCommand._start_async_task')
- @mock.patch('yardstick.cmd.commands.env.EnvCommand._check_status')
- def test_do_influxdb(self, check_status_mock, start_async_task_mock):
- env = EnvCommand()
- env.do_influxdb({})
- self.assertTrue(start_async_task_mock.called)
- self.assertTrue(check_status_mock.called)
-
- @mock.patch('yardstick.cmd.commands.env.EnvCommand._start_async_task')
- @mock.patch('yardstick.cmd.commands.env.EnvCommand._check_status')
- def test_do_grafana(self, check_status_mock, start_async_task_mock):
- env = EnvCommand()
- env.do_grafana({})
- self.assertTrue(start_async_task_mock.called)
- self.assertTrue(check_status_mock.called)
-
- @mock.patch('yardstick.cmd.commands.env.EnvCommand._start_async_task')
- @mock.patch('yardstick.cmd.commands.env.EnvCommand._check_status')
- def test_do_prepare(self, check_status_mock, start_async_task_mock):
- env = EnvCommand()
- env.do_prepare({})
- self.assertTrue(start_async_task_mock.called)
- self.assertTrue(check_status_mock.called)
-
- @mock.patch('yardstick.cmd.commands.env.HttpClient.post')
- def test_start_async_task(self, post_mock):
- data = {'action': 'create_grafana'}
- EnvCommand()._start_async_task(data)
- self.assertTrue(post_mock.called)
-
- @mock.patch('yardstick.cmd.commands.env.HttpClient.get')
- @mock.patch('yardstick.cmd.commands.env.EnvCommand._print_status')
- def test_check_status(self, print_mock, get_mock):
- task_id = str(uuid.uuid4())
- get_mock.return_value = {'status': 2, 'result': 'error'}
- status = EnvCommand()._check_status(task_id, 'hello world')
- self.assertEqual(status, 2)
-
- def test_print_status(self):
- try:
- EnvCommand()._print_status('hello', 'word')
- except Exception as e:
- self.assertIsInstance(e, IndexError)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/common/test_openstack_utils.py b/tests/unit/common/test_openstack_utils.py
deleted file mode 100644
index b3dc2d9c4..000000000
--- a/tests/unit/common/test_openstack_utils.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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
-##############################################################################
-
-# Unittest for yardstick.common.openstack_utils
-
-from __future__ import absolute_import
-import unittest
-import mock
-
-from yardstick.common import openstack_utils
-
-
-class GetCredentialsTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.common.openstack_utils.os')
- def test_get_credentials(self, mock_os):
- with mock.patch.dict('os.environ', {'OS_IDENTITY_API_VERSION': '2'},
- clear=True):
- openstack_utils.get_credentials()
-
-
-class GetHeatApiVersionTestCase(unittest.TestCase):
-
- def test_get_heat_api_version_check_result(self):
- API = 'HEAT_API_VERSION'
- expected_result = '2'
-
- with mock.patch.dict('os.environ', {API: '2'}, clear=True):
- api_version = openstack_utils.get_heat_api_version()
- self.assertEqual(api_version, expected_result)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/network_services/collector/test_subscriber.py b/tests/unit/network_services/collector/test_subscriber.py
deleted file mode 100644
index f324f627d..000000000
--- a/tests/unit/network_services/collector/test_subscriber.py
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Unittest for yardstick.network_services.collector.subscriber
-
-from __future__ import absolute_import
-import unittest
-import mock
-
-from yardstick.network_services.collector import subscriber
-
-
-class MockVnfAprrox(object):
-
- def __init__(self):
- self.result = {}
- self.name = "vnf__1"
-
- def collect_kpi(self):
- self.result = {
- 'pkt_in_up_stream': 100,
- 'pkt_drop_up_stream': 5,
- 'pkt_in_down_stream': 50,
- 'pkt_drop_down_stream': 40
- }
- return self.result
-
-
-class CollectorTestCase(unittest.TestCase):
-
- NODES = {
- 'node1': {},
- 'node2': {
- 'ip': '1.2.3.4',
- 'collectd': {
- 'plugins': {'abc': 12, 'def': 34},
- 'interval': 987,
- },
- },
- }
- TRAFFIC_PROFILE = {
- 'key1': 'value1',
- }
-
- def setUp(self):
- vnf = MockVnfAprrox()
- self.ssh_patch = mock.patch('yardstick.network_services.nfvi.resource.ssh', autospec=True)
- mock_ssh = self.ssh_patch.start()
- mock_instance = mock.Mock()
- mock_instance.execute.return_value = 0, '', ''
- mock_ssh.AutoConnectSSH.from_node.return_value = mock_instance
- self.collector = subscriber.Collector([vnf], self.NODES, self.TRAFFIC_PROFILE, 1800)
-
- def tearDown(self):
- self.ssh_patch.stop()
-
- def test___init__(self, *_):
- vnf = MockVnfAprrox()
- collector = subscriber.Collector([vnf], {}, {})
- self.assertEqual(len(collector.vnfs), 1)
- self.assertEqual(collector.traffic_profile, {})
-
- def test___init___with_data(self, *_):
- self.assertEqual(len(self.collector.vnfs), 1)
- self.assertDictEqual(self.collector.traffic_profile, self.TRAFFIC_PROFILE)
- self.assertEqual(len(self.collector.resource_profiles), 1)
-
- def test___init___negative(self, *_):
- pass
-
- def test_start(self, *_):
- self.assertIsNone(self.collector.start())
-
- def test_stop(self, *_):
- self.assertIsNone(self.collector.stop())
-
- def test_get_kpi(self, *_):
- result = self.collector.get_kpi()
-
- self.assertEqual(result["vnf__1"]["pkt_in_up_stream"], 100)
- self.assertEqual(result["vnf__1"]["pkt_drop_up_stream"], 5)
- self.assertEqual(result["vnf__1"]["pkt_in_down_stream"], 50)
- self.assertEqual(result["vnf__1"]["pkt_drop_down_stream"], 40)
- self.assertIn('node2', result)
diff --git a/tests/unit/network_services/helpers/test_cpu.py b/tests/unit/network_services/helpers/test_cpu.py
deleted file mode 100644
index 7ea6bd0fc..000000000
--- a/tests/unit/network_services/helpers/test_cpu.py
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from __future__ import absolute_import
-from __future__ import division
-import unittest
-import mock
-import subprocess
-
-from yardstick.network_services.helpers.cpu import \
- CpuSysCores
-
-
-class TestCpuSysCores(unittest.TestCase):
-
- def test___init__(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "", ""))
- ssh_mock.put = \
- mock.Mock(return_value=(1, "", ""))
- cpu_topo = CpuSysCores(ssh_mock)
- self.assertIsNotNone(cpu_topo.connection)
-
- def test__get_core_details(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "", ""))
- ssh_mock.put = \
- mock.Mock(return_value=(1, "", ""))
- cpu_topo = CpuSysCores(ssh_mock)
- subprocess.check_output = mock.Mock(return_value=0)
- lines = ["cpu:1", "topo:2", ""]
- self.assertEqual([{'topo': '2', 'cpu': '1'}],
- cpu_topo._get_core_details(lines))
-
- def test_get_core_socket(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "cpu:1\ntest:2\n \n", ""))
- ssh_mock.put = \
- mock.Mock(return_value=(1, "", ""))
- cpu_topo = CpuSysCores(ssh_mock)
- subprocess.check_output = mock.Mock(return_value=0)
- cpu_topo._get_core_details = \
- mock.Mock(side_effect=[[{'Core(s) per socket': '2', 'Thread(s) per core': '1'}],
- [{'physical id': '2', 'processor': '1'}]])
- self.assertEqual({'thread_per_core': '1', '2': ['1'],
- 'cores_per_socket': '2'},
- cpu_topo.get_core_socket())
-
- def test_validate_cpu_cfg(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "cpu:1\ntest:2\n \n", ""))
- ssh_mock.put = \
- mock.Mock(return_value=(1, "", ""))
- cpu_topo = CpuSysCores(ssh_mock)
- subprocess.check_output = mock.Mock(return_value=0)
- cpu_topo._get_core_details = \
- mock.Mock(side_effect=[[{'Core(s) per socket': '2', 'Thread(s) per core': '1'}],
- [{'physical id': '2', 'processor': '1'}]])
- cpu_topo.core_map = \
- {'thread_per_core': '1', '2':['1'], 'cores_per_socket': '2'}
- self.assertEqual(-1, cpu_topo.validate_cpu_cfg())
-
- def test_validate_cpu_cfg_2t(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "cpu:1\ntest:2\n \n", ""))
- ssh_mock.put = \
- mock.Mock(return_value=(1, "", ""))
- cpu_topo = CpuSysCores(ssh_mock)
- subprocess.check_output = mock.Mock(return_value=0)
- cpu_topo._get_core_details = \
- mock.Mock(side_effect=[[{'Core(s) per socket': '2', 'Thread(s) per core': '1'}],
- [{'physical id': '2', 'processor': '1'}]])
- cpu_topo.core_map = \
- {'thread_per_core': 1, '2':['1'], 'cores_per_socket': '2'}
- vnf_cfg = {'lb_config': 'SW', 'lb_count': 1, 'worker_config':
- '1C/2T', 'worker_threads': 1}
- self.assertEqual(-1, cpu_topo.validate_cpu_cfg(vnf_cfg))
-
- def test_validate_cpu_cfg_fail(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, "cpu:1\ntest:2\n \n", ""))
- ssh_mock.put = \
- mock.Mock(return_value=(1, "", ""))
- cpu_topo = CpuSysCores(ssh_mock)
- subprocess.check_output = mock.Mock(return_value=0)
- cpu_topo._get_core_details = \
- mock.Mock(side_effect=[[{'Core(s) per socket': '2', 'Thread(s) per core': '1'}],
- [{'physical id': '2', 'processor': '1'}]])
- cpu_topo.core_map = \
- {'thread_per_core': 1, '2':[1], 'cores_per_socket': 2}
- vnf_cfg = {'lb_config': 'SW', 'lb_count': 1, 'worker_config':
- '1C/1T', 'worker_threads': 1}
- self.assertEqual(-1, cpu_topo.validate_cpu_cfg(vnf_cfg))
diff --git a/tests/unit/network_services/helpers/test_dpdkbindnic_helper.py b/tests/unit/network_services/helpers/test_dpdkbindnic_helper.py
deleted file mode 100644
index 0f1cf7d92..000000000
--- a/tests/unit/network_services/helpers/test_dpdkbindnic_helper.py
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import mock
-import unittest
-from yardstick.network_services.helpers.dpdkbindnic_helper import DpdkBindHelper
-from yardstick.network_services.helpers.dpdkbindnic_helper import DpdkBindHelperException
-from yardstick.network_services.helpers.dpdkbindnic_helper import NETWORK_KERNEL
-from yardstick.network_services.helpers.dpdkbindnic_helper import NETWORK_DPDK
-from yardstick.network_services.helpers.dpdkbindnic_helper import CRYPTO_KERNEL
-from yardstick.network_services.helpers.dpdkbindnic_helper import CRYPTO_DPDK
-from yardstick.network_services.helpers.dpdkbindnic_helper import NETWORK_OTHER
-from yardstick.network_services.helpers.dpdkbindnic_helper import CRYPTO_OTHER
-
-pass
-
-
-class TestDpdkBindHelper(unittest.TestCase):
- EXAMPLE_OUTPUT = """
-
-Network devices using DPDK-compatible driver
-============================================
-0000:00:04.0 'Virtio network device' drv=igb_uio unused=
-0000:00:05.0 'Virtio network device' drv=igb_uio unused=
-
-Network devices using kernel driver
-===================================
-0000:00:03.0 'Virtio network device' if=ens3 drv=virtio-pci unused=igb_uio *Active*
-
-Other network devices
-=====================
-<none>
-
-Crypto devices using DPDK-compatible driver
-===========================================
-<none>
-
-Crypto devices using kernel driver
-==================================
-<none>
-
-Other crypto devices
-====================
-<none>
-"""
-
- PARSED_EXAMPLE = {
- NETWORK_DPDK: [
- {'active': False,
- 'dev_type': 'Virtio network device',
- 'driver': 'igb_uio',
- 'iface': None,
- 'unused': '',
- 'vpci': '0000:00:04.0',
- },
- {'active': False,
- 'dev_type': 'Virtio network device',
- 'driver': 'igb_uio',
- 'iface': None,
- 'unused': '',
- 'vpci': '0000:00:05.0',
- }
- ],
- NETWORK_KERNEL: [
- {'active': True,
- 'dev_type': 'Virtio network device',
- 'driver': 'virtio-pci',
- 'iface': 'ens3',
- 'unused': 'igb_uio',
- 'vpci': '0000:00:03.0',
- }
- ],
- CRYPTO_KERNEL: [],
- CRYPTO_DPDK: [],
- NETWORK_OTHER: [],
- CRYPTO_OTHER: [],
- }
-
- CLEAN_STATUS = {
- NETWORK_KERNEL: [],
- NETWORK_DPDK: [],
- CRYPTO_KERNEL: [],
- CRYPTO_DPDK: [],
- NETWORK_OTHER: [],
- CRYPTO_OTHER: [],
- }
-
- ONE_INPUT_LINE = ("0000:00:03.0 'Virtio network device' if=ens3 "
- "drv=virtio-pci unused=igb_uio *Active*")
-
- ONE_INPUT_LINE_PARSED = [{
- 'vpci': '0000:00:03.0',
- 'dev_type': 'Virtio network device',
- 'iface': 'ens3',
- 'driver': 'virtio-pci',
- 'unused': 'igb_uio',
- 'active': True,
- }]
-
- def test___init__(self):
- conn = mock.Mock()
- conn.provision_tool = mock.Mock(return_value='path_to_tool')
-
- dpdk_bind_helper = DpdkBindHelper(conn)
-
- self.assertEquals(conn, dpdk_bind_helper.ssh_helper)
- self.assertEquals(self.CLEAN_STATUS, dpdk_bind_helper.dpdk_status)
- self.assertIsNone(dpdk_bind_helper.status_nic_row_re)
- self.assertIsNone(dpdk_bind_helper._dpdk_nic_bind_attr)
- self.assertIsNone(dpdk_bind_helper._status_cmd_attr)
-
- def test__dpdk_execute(self):
- conn = mock.Mock()
- conn.execute = mock.Mock(return_value=(0, 'output', 'error'))
- conn.provision_tool = mock.Mock(return_value='tool_path')
- dpdk_bind_helper = DpdkBindHelper(conn)
- self.assertEquals((0, 'output', 'error'), dpdk_bind_helper._dpdk_execute('command'))
-
- def test__dpdk_execute_failure(self):
- conn = mock.Mock()
- conn.execute = mock.Mock(return_value=(1, 'output', 'error'))
- conn.provision_tool = mock.Mock(return_value='tool_path')
- dpdk_bind_helper = DpdkBindHelper(conn)
- with self.assertRaises(DpdkBindHelperException):
- dpdk_bind_helper._dpdk_execute('command')
-
- def test__addline(self):
- conn = mock.Mock()
-
- dpdk_bind_helper = DpdkBindHelper(conn)
-
- dpdk_bind_helper._addline(NETWORK_KERNEL, self.ONE_INPUT_LINE)
-
- self.assertIsNotNone(dpdk_bind_helper.dpdk_status)
- self.assertEquals(self.ONE_INPUT_LINE_PARSED, dpdk_bind_helper.dpdk_status[NETWORK_KERNEL])
-
- def test__switch_active_dict_by_header(self):
- line = "Crypto devices using DPDK-compatible driver"
- olddict = 'olddict'
- self.assertEqual(CRYPTO_DPDK, DpdkBindHelper._switch_active_dict(line, olddict))
-
- def test__switch_active_dict_by_header_empty(self):
- line = "<none>"
- olddict = 'olddict'
- self.assertEqual(olddict, DpdkBindHelper._switch_active_dict(line, olddict))
-
- def test_parse_dpdk_status_output(self):
- conn = mock.Mock()
-
- dpdk_bind_helper = DpdkBindHelper(conn)
-
- dpdk_bind_helper.parse_dpdk_status_output(self.EXAMPLE_OUTPUT)
-
- self.maxDiff = None
- self.assertEquals(self.PARSED_EXAMPLE, dpdk_bind_helper.dpdk_status)
-
- def test_read_status(self):
- conn = mock.Mock()
- conn.execute = mock.Mock(return_value=(0, self.EXAMPLE_OUTPUT, ''))
- conn.provision_tool = mock.Mock(return_value='path_to_tool')
-
- dpdk_bind_helper = DpdkBindHelper(conn)
-
- self.assertEquals(self.PARSED_EXAMPLE, dpdk_bind_helper.read_status())
-
- def test__get_bound_pci_addresses(self):
- conn = mock.Mock()
-
- dpdk_bind_helper = DpdkBindHelper(conn)
-
- dpdk_bind_helper.parse_dpdk_status_output(self.EXAMPLE_OUTPUT)
-
- self.assertEquals(['0000:00:04.0', '0000:00:05.0'],
- dpdk_bind_helper._get_bound_pci_addresses(NETWORK_DPDK))
- self.assertEquals(['0000:00:03.0'],
- dpdk_bind_helper._get_bound_pci_addresses(NETWORK_KERNEL))
-
- def test_interface_driver_map(self):
- conn = mock.Mock()
-
- dpdk_bind_helper = DpdkBindHelper(conn)
-
- dpdk_bind_helper.parse_dpdk_status_output(self.EXAMPLE_OUTPUT)
-
- self.assertEquals({'0000:00:04.0': 'igb_uio',
- '0000:00:03.0': 'virtio-pci',
- '0000:00:05.0': 'igb_uio',
- },
- dpdk_bind_helper.interface_driver_map)
-
- def test_bind(self):
- conn = mock.Mock()
- conn.execute = mock.Mock(return_value=(0, '', ''))
- conn.provision_tool = mock.Mock(return_value='/opt/nsb_bin/dpdk-devbind.py')
-
- dpdk_bind_helper = DpdkBindHelper(conn)
- dpdk_bind_helper.read_status = mock.Mock()
-
- dpdk_bind_helper.bind(['0000:00:03.0', '0000:00:04.0'], 'my_driver')
-
- conn.execute.assert_called_with('sudo /opt/nsb_bin/dpdk-devbind.py --force '
- '-b my_driver 0000:00:03.0 0000:00:04.0')
- dpdk_bind_helper.read_status.assert_called_once()
-
- def test_bind_single_pci(self):
- conn = mock.Mock()
- conn.execute = mock.Mock(return_value=(0, '', ''))
- conn.provision_tool = mock.Mock(return_value='/opt/nsb_bin/dpdk-devbind.py')
-
- dpdk_bind_helper = DpdkBindHelper(conn)
- dpdk_bind_helper.read_status = mock.Mock()
-
- dpdk_bind_helper.bind('0000:00:03.0', 'my_driver')
-
- conn.execute.assert_called_with('sudo /opt/nsb_bin/dpdk-devbind.py --force '
- '-b my_driver 0000:00:03.0')
- dpdk_bind_helper.read_status.assert_called_once()
-
- def test_rebind_drivers(self):
- conn = mock.Mock()
-
- dpdk_bind_helper = DpdkBindHelper(conn)
-
- dpdk_bind_helper.bind = mock.Mock()
- dpdk_bind_helper.used_drivers = {
- 'd1': ['0000:05:00.0'],
- 'd3': ['0000:05:01.0', '0000:05:02.0'],
- }
-
- dpdk_bind_helper.rebind_drivers()
-
- dpdk_bind_helper.bind.assert_any_call(['0000:05:00.0'], 'd1', True)
- dpdk_bind_helper.bind.assert_any_call(['0000:05:01.0', '0000:05:02.0'], 'd3', True)
-
- def test_save_used_drivers(self):
- conn = mock.Mock()
- dpdk_bind_helper = DpdkBindHelper(conn)
- dpdk_bind_helper.dpdk_status = self.PARSED_EXAMPLE
-
- dpdk_bind_helper.save_used_drivers()
-
- expected = {
- 'igb_uio': ['0000:00:04.0', '0000:00:05.0'],
- 'virtio-pci': ['0000:00:03.0'],
- }
-
- self.assertDictEqual(expected, dpdk_bind_helper.used_drivers)
diff --git a/tests/unit/network_services/libs/ixia_libs/test_IxNet.py b/tests/unit/network_services/libs/ixia_libs/test_IxNet.py
deleted file mode 100644
index 3f374fb50..000000000
--- a/tests/unit/network_services/libs/ixia_libs/test_IxNet.py
+++ /dev/null
@@ -1,876 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Unittest for yardstick.network_services.libs.ixia_libs.IxNet
-
-from __future__ import absolute_import
-import unittest
-import mock
-
-from yardstick.network_services.libs.ixia_libs.IxNet.IxNet import IxNextgen
-from yardstick.network_services.libs.ixia_libs.IxNet.IxNet import IP_VERSION_4
-from yardstick.network_services.libs.ixia_libs.IxNet.IxNet import IP_VERSION_6
-
-
-UPLINK = "uplink"
-DOWNLINK = "downlink"
-
-class TestIxNextgen(unittest.TestCase):
-
- def test___init__(self):
- ixnet_gen = IxNextgen()
- self.assertIsNone(ixnet_gen._bidir)
-
- @mock.patch("yardstick.network_services.libs.ixia_libs.IxNet.IxNet.sys")
- def test_connect(self, mock_sys):
-
- ixnet_gen = IxNextgen()
- ixnet_gen.get_config = mock.MagicMock()
- ixnet_gen.get_ixnet = mock.MagicMock()
-
- self.assertRaises(ImportError, ixnet_gen._connect, {"py_lib_path": "/tmp"})
-
- def test_clear_ixia_config(self):
- ixnet = mock.MagicMock()
- ixnet.execute = mock.Mock()
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.clear_ixia_config()
- self.assertIsNone(result)
- self.assertEqual(ixnet.execute.call_count, 1)
-
- def test_load_ixia_profile(self):
- ixnet = mock.MagicMock()
- ixnet.execute = mock.Mock()
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.load_ixia_profile({})
- self.assertIsNone(result)
- self.assertEqual(ixnet.execute.call_count, 1)
-
- def test_load_ixia_config(self):
- ixnet = mock.MagicMock()
- ixnet.execute = mock.Mock()
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.ix_load_config({})
- self.assertIsNone(result)
- self.assertEqual(ixnet.execute.call_count, 2)
-
- @mock.patch('yardstick.network_services.libs.ixia_libs.IxNet.IxNet.log')
- def test_ix_assign_ports(self, mock_logger):
- ixnet = mock.MagicMock()
- ixnet.getList.return_value = [0, 1]
- ixnet.getAttribute.side_effect = ['up', 'down']
-
- config = {
- 'chassis': '1.1.1.1',
- 'cards': ['1', '2'],
- 'ports': ['2', '2'],
- }
-
- ixnet_gen = IxNextgen(ixnet)
- ixnet_gen._cfg = config
-
- result = ixnet_gen.ix_assign_ports()
- self.assertIsNone(result)
- self.assertEqual(ixnet.execute.call_count, 1)
- self.assertEqual(ixnet.commit.call_count, 1)
- self.assertEqual(ixnet.getAttribute.call_count, 2)
- self.assertEqual(mock_logger.error.call_count, 1)
-
- def test_ix_update_frame(self):
- static_traffic_params = {
- UPLINK: {
- "id": 1,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:03",
- "framesPerSecond": True,
- "framesize": {
- "64B": "100",
- "1KB": "0",
- },
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "2001",
- "srcport": "1234"
- },
- "traffic_type": "continuous"
- },
- DOWNLINK: {
- "id": 2,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:04",
- "framesPerSecond": False,
- "framesize": {"64B": "100"},
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "1234",
- "srcport": "2001"
- },
- "traffic_type": "continuous"
- }
- }
-
- ixnet = mock.MagicMock()
- ixnet.remapIds.return_value = ["0"]
- ixnet.setMultiAttribute.return_value = [1]
- ixnet.commit.return_value = [1]
- ixnet.getList.side_effect = [
- [1],
- [1],
- [1],
- [
- "ethernet.header.destinationAddress",
- "ethernet.header.sourceAddress",
- ],
- ]
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.ix_update_frame(static_traffic_params)
- self.assertIsNone(result)
- self.assertEqual(ixnet.setMultiAttribute.call_count, 7)
- self.assertEqual(ixnet.commit.call_count, 2)
-
- def test_ix_update_udp(self):
- ixnet = mock.MagicMock()
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.ix_update_udp({})
- self.assertIsNone(result)
-
- def test_ix_update_tcp(self):
- ixnet = mock.MagicMock()
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.ix_update_tcp({})
- self.assertIsNone(result)
-
- def test_ix_start_traffic(self):
- ixnet = mock.MagicMock()
- ixnet.getList.return_value = [0]
- ixnet.getAttribute.return_value = 'down'
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.ix_start_traffic()
- self.assertIsNone(result)
- self.assertEqual(ixnet.getList.call_count, 1)
- self.assertEqual(ixnet.execute.call_count, 3)
-
- def test_ix_stop_traffic(self):
- ixnet = mock.MagicMock()
- ixnet.getList.return_value = [0]
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.ix_stop_traffic()
- self.assertIsNone(result)
- self.assertEqual(ixnet.getList.call_count, 1)
- self.assertEqual(ixnet.execute.call_count, 1)
-
- def test_ix_get_statistics(self):
- ixnet = mock.MagicMock()
- ixnet.execute.return_value = ""
- ixnet.getList.side_effect = [
- [
- '::ixNet::OBJ-/statistics/view:"Traffic Item Statistics"',
- '::ixNet::OBJ-/statistics/view:"Port Statistics"',
- ],
- [
- '::ixNet::OBJ-/statistics/view:"Flow Statistics"',
- ],
- ]
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.ix_get_statistics()
- self.assertIsNotNone(result)
- self.assertEqual(ixnet.getList.call_count, 1)
- self.assertEqual(ixnet.execute.call_count, 20)
-
- def test_find_view_obj_no_where(self):
- views = ['here', 'there', 'everywhere']
- result = IxNextgen.find_view_obj('no_where', views)
- self.assertEqual(result, '')
-
- def test_add_ip_header_v4(self):
- static_traffic_params = {
- "uplink_0": {
- "id": 1,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:03",
- "framesPerSecond": True,
- "framesize": {"64B": "100"},
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "count": 1024,
- "ttl": 32
- },
- "outer_l3v4": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "2001",
- "srcport": "1234"
- },
- "traffic_type": "continuous"
- },
- "downlink_0": {
- "id": 2,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:04",
- "framesPerSecond": True,
- "framesize": {"64B": "100"},
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "1234",
- "srcport": "2001"
- },
- "traffic_type": "continuous"
- }
- }
-
- ixnet = mock.MagicMock()
- ixnet.remapIds.return_value = ["0"]
- ixnet.setMultiAttribute.return_value = [1]
- ixnet.commit.return_value = [1]
- ixnet.getList.side_effect = [[1], [0], [0], ["srcIp", "dstIp"]]
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.add_ip_header(static_traffic_params, IP_VERSION_4)
- self.assertIsNone(result)
- self.assertGreater(ixnet.setMultiAttribute.call_count, 0)
- self.assertEqual(ixnet.commit.call_count, 1)
-
- def test_add_ip_header_v4_nothing_to_do(self):
- static_traffic_params = {
- "uplink_0": {
- "id": 1,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:03",
- "framesPerSecond": True,
- "framesize": {"64B": "100"},
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "count": 1024,
- "ttl": 32
- },
- "outer_l3v4": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "2001",
- "srcport": "1234"
- },
- "traffic_type": "continuous"
- },
- "downlink_0": {
- "id": 2,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:04",
- "framesPerSecond": True,
- "framesize": {"64B": "100"},
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "1234",
- "srcport": "2001"
- },
- "traffic_type": "continuous"
- }
- }
-
- ixnet = mock.MagicMock()
- ixnet.remapIds.return_value = ["0"]
- ixnet.setMultiAttribute.return_value = [1]
- ixnet.commit.return_value = [1]
- ixnet.getList.side_effect = [[1], [0, 1], [0], ["srcIp", "dstIp"]]
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.add_ip_header(static_traffic_params, IP_VERSION_4)
- self.assertIsNone(result)
- self.assertGreater(ixnet.setMultiAttribute.call_count, 0)
- self.assertEqual(ixnet.commit.call_count, 1)
-
- def test_add_ip_header_v6(self):
- static_traffic_profile = {
- "uplink_0": {
- "id": 1,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:03",
- "framesPerSecond": True,
- "framesize": {"64B": "100"},
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "2001",
- "srcport": "1234"
- },
- "traffic_type": "continuous"
- },
- "downlink_0": {
- "id": 2,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:04",
- "framesPerSecond": True,
- "framesize": {"64B": "100"},
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "1234",
- "srcport": "2001"
- },
- "traffic_type": "continuous"
- }
- }
-
- ixnet = mock.MagicMock()
- ixnet.getList.side_effect = [[1], [1], [1], ["srcIp", "dstIp"]]
- ixnet.remapIds.return_value = ["0"]
- ixnet.setMultiAttribute.return_value = [1]
- ixnet.commit.return_value = [1]
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.add_ip_header(static_traffic_profile, IP_VERSION_6)
- self.assertIsNone(result)
- self.assertGreater(ixnet.setMultiAttribute.call_count, 0)
- self.assertEqual(ixnet.commit.call_count, 1)
-
- def test_add_ip_header_v6_nothing_to_do(self):
- static_traffic_params = {
- "uplink_0": {
- "id": 1,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:03",
- "framesPerSecond": True,
- "framesize": {"64B": "100"},
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "count": 1024,
- "ttl": 32
- },
- "outer_l3v6": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "2001",
- "srcport": "1234"
- },
- "traffic_type": "continuous"
- },
- "downlink_0": {
- "id": 2,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:04",
- "framesPerSecond": True,
- "framesize": {"64B": "100"},
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "1234",
- "srcport": "2001"
- },
- "traffic_type": "continuous"
- }
- }
-
- ixnet = mock.MagicMock()
- ixnet.getList.side_effect = [[1], [0, 1], [1], ["srcIP", "dstIP"]]
- ixnet.remapIds.return_value = ["0"]
- ixnet.setMultiAttribute.return_value = [1]
- ixnet.commit.return_value = [1]
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.add_ip_header(static_traffic_params, IP_VERSION_6)
- self.assertIsNone(result)
- self.assertEqual(ixnet.setMultiAttribute.call_count, 0)
-
- def test_set_random_ip_multi_attributes_bad_ip_version(self):
- bad_ip_version = object()
- ixnet_gen = IxNextgen(mock.Mock())
- mock1 = mock.Mock()
- mock2 = mock.Mock()
- mock3 = mock.Mock()
- with self.assertRaises(ValueError):
- ixnet_gen.set_random_ip_multi_attributes(mock1, bad_ip_version, mock2, mock3)
-
- def test_get_config(self):
- tg_cfg = {
- "vdu": [
- {
- "external-interface": [
- {
- "virtual-interface": {
- "vpci": "0000:07:00.1",
- },
- },
- {
- "virtual-interface": {
- "vpci": "0001:08:01.2",
- },
- },
- ],
- },
- ],
- "mgmt-interface": {
- "ip": "test1",
- "tg-config": {
- "dut_result_dir": "test2",
- "version": "test3",
- "ixchassis": "test4",
- "tcl_port": "test5",
- "py_lib_path": "test6",
- },
- }
- }
-
- expected = {
- 'py_lib_path': 'test6',
- 'machine': 'test1',
- 'port': 'test5',
- 'chassis': 'test4',
- 'cards': ['0000', '0001'],
- 'ports': ['07', '08'],
- 'output_dir': 'test2',
- 'version': 'test3',
- 'bidir': True,
- }
-
- result = IxNextgen.get_config(tg_cfg)
- self.assertDictEqual(result, expected)
-
- def test_ix_update_ether(self):
- static_traffic_params = {
- "uplink_0": {
- "id": 1,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:03",
- "framesPerSecond": True,
- "framesize": 64,
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "2001",
- "srcport": "1234"
- },
- "traffic_type": "continuous"
- },
- "downlink_0": {
- "id": 2,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:04",
- "framesPerSecond": True,
- "framesize": 64,
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "1234",
- "srcport": "2001"
- },
- "traffic_type": "continuous"
- }
- }
-
- ixnet = mock.MagicMock()
- ixnet.setMultiAttribute.return_value = [1]
- ixnet.commit.return_value = [1]
- ixnet.getList.side_effect = [
- [1],
- [1],
- [1],
- [
- "ethernet.header.destinationAddress",
- "ethernet.header.sourceAddress",
- ],
- ]
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.ix_update_ether(static_traffic_params)
- self.assertIsNone(result)
- self.assertGreater(ixnet.setMultiAttribute.call_count, 0)
-
- def test_ix_update_ether_nothing_to_do(self):
- static_traffic_params = {
- "uplink_0": {
- "id": 1,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l3": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "2001",
- "srcport": "1234"
- },
- "traffic_type": "continuous"
- },
- "downlink_0": {
- "id": 2,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "1234",
- "srcport": "2001"
- },
- "traffic_type": "continuous"
- }
- }
-
- ixnet = mock.MagicMock()
- ixnet.setMultiAttribute.return_value = [1]
- ixnet.commit.return_value = [1]
- ixnet.getList.side_effect = [
- [1],
- [1],
- [1],
- [
- "ethernet.header.destinationAddress",
- "ethernet.header.sourceAddress",
- ],
- ]
-
- ixnet_gen = IxNextgen(ixnet)
-
- result = ixnet_gen.ix_update_ether(static_traffic_params)
- self.assertIsNone(result)
- self.assertEqual(ixnet.setMultiAttribute.call_count, 0)
diff --git a/tests/unit/network_services/test_yang_model.py b/tests/unit/network_services/test_yang_model.py
deleted file mode 100644
index 0b29da701..000000000
--- a/tests/unit/network_services/test_yang_model.py
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Unittest for yardstick.network_services.utils
-
-from __future__ import absolute_import
-
-import unittest
-import mock
-
-import yaml
-
-from yardstick.network_services.yang_model import YangModel
-
-
-class YangModelTestCase(unittest.TestCase):
- """Test all Yang Model methods."""
-
- ENTRIES = {
- 'access-list1': {
- 'acl': {
- 'access-list-entries': [{
- 'ace': {
- 'ace-oper-data': {
- 'match-counter': 0},
- 'actions': 'drop,count',
- 'matches': {
- 'destination-ipv4-network':
- '152.16.40.20/24',
- 'destination-port-range': {
- 'lower-port': 0,
- 'upper-port': 65535},
- 'source-ipv4-network': '0.0.0.0/0',
- 'source-port-range': {
- 'lower-port': 0,
- 'upper-port': 65535}},
- 'rule-name': 'rule1588'}},
- {
- 'ace': {
- 'ace-oper-data': {
- 'match-counter': 0},
- 'actions': 'drop,count',
- 'matches': {
- 'destination-ipv4-network':
- '0.0.0.0/0',
- 'destination-port-range': {
- 'lower-port': 0,
- 'upper-port': 65535},
- 'source-ipv4-network':
- '152.16.100.20/24',
- 'source-port-range': {
- 'lower-port': 0,
- 'upper-port': 65535}},
- 'rule-name': 'rule1589'}}],
- 'acl-name': 'sample-ipv4-acl',
- 'acl-type': 'ipv4-acl'}
- }
- }
-
- def test__init__(self):
- cfg = "yang.yaml"
- y = YangModel(cfg)
- self.assertEqual(y.config_file, cfg)
-
- def test_config_file_setter(self):
- cfg = "yang.yaml"
- y = YangModel(cfg)
- self.assertEqual(y.config_file, cfg)
- cfg2 = "yang2.yaml"
- y.config_file = cfg2
- self.assertEqual(y.config_file, cfg2)
-
- def test__get_entries(self):
- cfg = "yang.yaml"
- y = YangModel(cfg)
- y._options = self.ENTRIES
- y._get_entries()
- self.assertIn("p acl add", y._rules)
-
- def test__get_entries_no_options(self):
- cfg = "yang.yaml"
- y = YangModel(cfg)
- y._get_entries()
- self.assertEqual(y._rules, '')
-
- @mock.patch('yardstick.network_services.yang_model.yaml_load')
- @mock.patch('yardstick.network_services.yang_model.open')
- def test__read_config(self, mock_open, mock_safe_load):
- cfg = "yang.yaml"
- y = YangModel(cfg)
- mock_safe_load.return_value = expected = {'key1': 'value1', 'key2': 'value2'}
- y._read_config()
- self.assertDictEqual(y._options, expected)
-
- @mock.patch('yardstick.network_services.yang_model.open')
- def test__read_config_open_error(self, mock_open):
- cfg = "yang.yaml"
- y = YangModel(cfg)
- mock_open.side_effect = IOError('my error')
-
- self.assertEqual(y._options, {})
- with self.assertRaises(IOError) as raised:
- y._read_config()
-
- self.assertIn('my error', str(raised.exception))
- self.assertEqual(y._options, {})
-
- def test_get_rules(self):
- cfg = "yang.yaml"
- y = YangModel(cfg)
- y._read_config = read_mock = mock.Mock()
- y._get_entries = get_mock = mock.Mock()
-
- y._rules = None
- self.assertIsNone(y.get_rules())
- self.assertEqual(read_mock.call_count, 1)
- self.assertEqual(get_mock.call_count, 1)
-
- # True value should prevent calling read and get
- y._rules = 999
- self.assertEqual(y.get_rules(), 999)
- self.assertEqual(read_mock.call_count, 1)
- self.assertEqual(get_mock.call_count, 1)
diff --git a/tests/unit/network_services/traffic_profile/test_base.py b/tests/unit/network_services/traffic_profile/test_base.py
deleted file mode 100644
index 290610361..000000000
--- a/tests/unit/network_services/traffic_profile/test_base.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Unittest for yardstick.network_services.traffic_profile.test_base
-
-from __future__ import absolute_import
-import unittest
-import mock
-
-from yardstick.network_services.traffic_profile.base import \
- TrafficProfile, DummyProfile
-
-
-class TestTrafficProfile(unittest.TestCase):
- TRAFFIC_PROFILE = {
- "schema": "isb:traffic_profile:0.1",
- "name": "fixed",
- "description": "Fixed traffic profile to run UDP traffic",
- "traffic_profile": {
- "traffic_type": "FixedTraffic",
- "frame_rate": 100, # pps
- "flow_number": 10,
- "frame_size": 64}}
-
- def _get_res_mock(self, **kw):
- _mock = mock.MagicMock()
- for k, v in kw.items():
- setattr(_mock, k, v)
- return _mock
-
- def test___init__(self):
- traffic_profile = TrafficProfile(self.TRAFFIC_PROFILE)
- self.assertEqual(self.TRAFFIC_PROFILE, traffic_profile.params)
-
- def test_execute(self):
- traffic_profile = TrafficProfile(self.TRAFFIC_PROFILE)
- self.assertRaises(NotImplementedError, traffic_profile.execute_traffic, {})
-
- def test_get(self):
- traffic_profile = TrafficProfile(self.TRAFFIC_PROFILE)
- self.assertRaises(RuntimeError, traffic_profile.get,
- self.TRAFFIC_PROFILE)
-
-
-class TestDummyProfile(unittest.TestCase):
- def test_execute(self):
- dummy_profile = DummyProfile(TrafficProfile)
- self.assertIsNone(dummy_profile.execute({}))
diff --git a/tests/unit/network_services/traffic_profile/test_http.py b/tests/unit/network_services/traffic_profile/test_http.py
deleted file mode 100644
index e818a0528..000000000
--- a/tests/unit/network_services/traffic_profile/test_http.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from __future__ import absolute_import
-import unittest
-
-from yardstick.network_services.traffic_profile.base import TrafficProfile
-from yardstick.network_services.traffic_profile.http import \
- TrafficProfileGenericHTTP
-
-
-class TestTrafficProfileGenericHTTP(unittest.TestCase):
- def test___init__(self):
- traffic_profile_generic_htt_p = \
- TrafficProfileGenericHTTP(TrafficProfile)
- self.assertIsNotNone(traffic_profile_generic_htt_p)
-
- def test_execute(self):
- traffic_profile_generic_htt_p = \
- TrafficProfileGenericHTTP(TrafficProfile)
- traffic_generator = {}
- self.assertEqual(None,
- traffic_profile_generic_htt_p.execute(
- traffic_generator))
-
- def test__send_http_request(self):
- traffic_profile_generic_htt_p = \
- TrafficProfileGenericHTTP(TrafficProfile)
- self.assertEqual(None,
- traffic_profile_generic_htt_p._send_http_request(
- "10.1.1.1", "250", "/req"))
diff --git a/tests/unit/network_services/traffic_profile/test_ixia_rfc2544.py b/tests/unit/network_services/traffic_profile/test_ixia_rfc2544.py
deleted file mode 100644
index 616921e33..000000000
--- a/tests/unit/network_services/traffic_profile/test_ixia_rfc2544.py
+++ /dev/null
@@ -1,646 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from __future__ import absolute_import
-from __future__ import division
-import unittest
-import mock
-
-from copy import deepcopy
-
-from tests.unit import STL_MOCKS
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.traffic_profile.traffic_profile \
- import TrexProfile
- from yardstick.network_services.traffic_profile.ixia_rfc2544 import \
- IXIARFC2544Profile
- from yardstick.network_services.traffic_profile import ixia_rfc2544
-
-
-class TestIXIARFC2544Profile(unittest.TestCase):
-
- TRAFFIC_PROFILE = {
- "schema": "isb:traffic_profile:0.1",
- "name": "fixed",
- "description": "Fixed traffic profile to run UDP traffic",
- "traffic_profile": {
- "traffic_type": "FixedTraffic",
- "frame_rate": 100, # pps
- "flow_number": 10,
- "frame_size": 64,
- },
- }
-
- PROFILE = {'description': 'Traffic profile to run RFC2544 latency',
- 'name': 'rfc2544',
- 'traffic_profile': {'traffic_type': 'IXIARFC2544Profile',
- 'frame_rate': 100},
- IXIARFC2544Profile.DOWNLINK: {'ipv4':
- {'outer_l2': {'framesize':
- {'64B': '100', '1518B': '0',
- '128B': '0', '1400B': '0',
- '256B': '0', '373b': '0',
- '570B': '0'}},
- 'outer_l3v4': {'dstip4': '1.1.1.1-1.15.255.255',
- 'proto': 'udp', 'count': '1',
- 'srcip4': '90.90.1.1-90.105.255.255',
- 'dscp': 0, 'ttl': 32},
- 'outer_l4': {'srcport': '2001',
- 'dsrport': '1234'}}},
- IXIARFC2544Profile.UPLINK: {'ipv4':
- {'outer_l2': {'framesize':
- {'64B': '100', '1518B': '0',
- '128B': '0', '1400B': '0',
- '256B': '0', '373b': '0',
- '570B': '0'}},
- 'outer_l3v4': {'dstip4': '9.9.1.1-90.105.255.255',
- 'proto': 'udp', 'count': '1',
- 'srcip4': '1.1.1.1-1.15.255.255',
- 'dscp': 0, 'ttl': 32},
- 'outer_l4': {'dstport': '2001',
- 'srcport': '1234'}}},
- 'schema': 'isb:traffic_profile:0.1'}
-
- def test_get_ixia_traffic_profile_error(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.my_ports = [0, 1]
- traffic_generator.uplink_ports = [-1]
- traffic_generator.downlink_ports = [1]
- traffic_generator.client = \
- mock.Mock(return_value=True)
- STATIC_TRAFFIC = {
- IXIARFC2544Profile.UPLINK: {
- "id": 1,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:03",
- "framesPerSecond": True,
- "framesize": 64,
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "2001",
- "srcport": "1234"
- },
- "traffic_type": "continuous"
- },
- IXIARFC2544Profile.DOWNLINK: {
- "id": 2,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:04",
- "framesPerSecond": True,
- "framesize": 64,
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "1234",
- "srcport": "2001"
- },
- "traffic_type": "continuous"
- }
- }
- ixia_rfc2544.STATIC_TRAFFIC = STATIC_TRAFFIC
-
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.rate = 100
- mac = {"src_mac_0": "00:00:00:00:00:01",
- "src_mac_1": "00:00:00:00:00:02",
- "src_mac_2": "00:00:00:00:00:02",
- "dst_mac_0": "00:00:00:00:00:03",
- "dst_mac_1": "00:00:00:00:00:04",
- "dst_mac_2": "00:00:00:00:00:04"}
- result = r_f_c2544_profile._get_ixia_traffic_profile(
- self.PROFILE, mac, xfile="tmp",
- static_traffic=STATIC_TRAFFIC)
- self.assertIsNotNone(result)
-
- def test_get_ixia_traffic_profile(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.my_ports = [0, 1]
- traffic_generator.uplink_ports = [-1]
- traffic_generator.downlink_ports = [1]
- traffic_generator.client = \
- mock.Mock(return_value=True)
- STATIC_TRAFFIC = {
- IXIARFC2544Profile.UPLINK: {
- "id": 1,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:03",
- "framesPerSecond": True,
- "framesize": 64,
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32,
- "count": "1"
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32,
- "count": "1"
- },
- "outer_l4": {
- "dstport": "2001",
- "srcport": "1234",
- "count": "1"
- },
- "traffic_type": "continuous"
- },
- IXIARFC2544Profile.DOWNLINK: {
- "id": 2,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:04",
- "framesPerSecond": True,
- "framesize": 64,
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32,
- "count": "1"
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32,
- "count": "1"
- },
- "outer_l4": {
- "dstport": "1234",
- "srcport": "2001",
- "count": "1"
- },
- "traffic_type": "continuous"
- }
- }
- ixia_rfc2544.STATIC_TRAFFIC = STATIC_TRAFFIC
-
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.rate = 100
- mac = {"src_mac_0": "00:00:00:00:00:01",
- "src_mac_1": "00:00:00:00:00:02",
- "src_mac_2": "00:00:00:00:00:02",
- "dst_mac_0": "00:00:00:00:00:03",
- "dst_mac_1": "00:00:00:00:00:04",
- "dst_mac_2": "00:00:00:00:00:04"}
- result = r_f_c2544_profile._get_ixia_traffic_profile(
- self.PROFILE, mac, xfile="tmp", static_traffic=STATIC_TRAFFIC)
- self.assertIsNotNone(result)
-
- @mock.patch("yardstick.network_services.traffic_profile.ixia_rfc2544.open")
- def test_get_ixia_traffic_profile_v6(self, mock_open):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.my_ports = [0, 1]
- traffic_generator.uplink_ports = [-1]
- traffic_generator.downlink_ports = [1]
- traffic_generator.client = \
- mock.Mock(return_value=True)
- STATIC_TRAFFIC = {
- IXIARFC2544Profile.UPLINK: {
- "id": 1,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:03",
- "framesPerSecond": True,
- "framesize": 64,
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "dscp": 0,
- "dstip4": "152.16.40.20",
- "proto": "udp",
- "srcip4": "152.16.100.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "2001",
- "srcport": "1234"
- },
- "traffic_type": "continuous"
- },
- IXIARFC2544Profile.DOWNLINK: {
- "id": 2,
- "bidir": "False",
- "duration": 60,
- "iload": "100",
- "outer_l2": {
- "dstmac": "00:00:00:00:00:04",
- "framesPerSecond": True,
- "framesize": 64,
- "srcmac": "00:00:00:00:00:01"
- },
- "outer_l3": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v4": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l3v6": {
- "count": 1024,
- "dscp": 0,
- "dstip4": "152.16.100.20",
- "proto": "udp",
- "srcip4": "152.16.40.20",
- "ttl": 32
- },
- "outer_l4": {
- "dstport": "1234",
- "srcport": "2001"
- },
- "traffic_type": "continuous"
- }
- }
- ixia_rfc2544.STATIC_TRAFFIC = STATIC_TRAFFIC
-
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.rate = 100
- mac = {"src_mac_0": "00:00:00:00:00:01",
- "src_mac_1": "00:00:00:00:00:02",
- "src_mac_2": "00:00:00:00:00:02",
- "dst_mac_0": "00:00:00:00:00:03",
- "dst_mac_1": "00:00:00:00:00:04",
- "dst_mac_2": "00:00:00:00:00:04"}
- profile_data = {'description': 'Traffic profile to run RFC2544',
- 'name': 'rfc2544',
- 'traffic_profile':
- {'traffic_type': 'IXIARFC2544Profile',
- 'frame_rate': 100},
- IXIARFC2544Profile.DOWNLINK:
- {'ipv4':
- {'outer_l2': {'framesize':
- {'64B': '100', '1518B': '0',
- '128B': '0', '1400B': '0',
- '256B': '0', '373b': '0',
- '570B': '0'}},
- 'outer_l3v4': {'dstip4': '1.1.1.1-1.15.255.255',
- 'proto': 'udp', 'count': '1',
- 'srcip4': '90.90.1.1-90.105.255.255',
- 'dscp': 0, 'ttl': 32},
- 'outer_l3v6': {'dstip6': '1.1.1.1-1.15.255.255',
- 'proto': 'udp', 'count': '1',
- 'srcip6': '90.90.1.1-90.105.255.255',
- 'dscp': 0, 'ttl': 32},
- 'outer_l4': {'srcport': '2001',
- 'dsrport': '1234'}}},
- IXIARFC2544Profile.UPLINK: {'ipv4':
- {'outer_l2': {'framesize':
- {'64B': '100', '1518B': '0',
- '128B': '0', '1400B': '0',
- '256B': '0', '373b': '0',
- '570B': '0'}},
- 'outer_l3v4':
- {'dstip4': '9.9.1.1-90.105.255.255',
- 'proto': 'udp', 'count': '1',
- 'srcip4': '1.1.1.1-1.15.255.255',
- 'dscp': 0, 'ttl': 32},
- 'outer_l3v6':
- {'dstip6': '9.9.1.1-90.105.255.255',
- 'proto': 'udp', 'count': '1',
- 'srcip6': '1.1.1.1-1.15.255.255',
- 'dscp': 0, 'ttl': 32},
-
- 'outer_l4': {'dstport': '2001',
- 'srcport': '1234'}}},
- 'schema': 'isb:traffic_profile:0.1'}
- result = r_f_c2544_profile._get_ixia_traffic_profile(
- profile_data, mac, static_traffic=STATIC_TRAFFIC)
- self.assertIsNotNone(result)
-
- def test__get_ixia_traffic_profile_default_args(self):
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
-
- expected = {}
- result = r_f_c2544_profile._get_ixia_traffic_profile({})
- self.assertDictEqual(result, expected)
-
- def test__ixia_traffic_generate(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.networks = {
- "uplink_0": ["xe0"],
- "downlink_0": ["xe1"],
- }
- traffic_generator.client = \
- mock.Mock(return_value=True)
- traffic = {IXIARFC2544Profile.DOWNLINK: {'iload': 10},
- IXIARFC2544Profile.UPLINK: {'iload': 10}}
- ixia_obj = mock.MagicMock()
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.rate = 100
- result = r_f_c2544_profile._ixia_traffic_generate(traffic_generator,
- traffic, ixia_obj)
- self.assertIsNone(result)
-
- def test_execute(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.networks = {
- "uplink_0": ["xe0"],
- "downlink_0": ["xe1"],
- }
- traffic_generator.client = \
- mock.Mock(return_value=True)
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.first_run = True
- r_f_c2544_profile.params = {IXIARFC2544Profile.DOWNLINK: {'iload': 10},
- IXIARFC2544Profile.UPLINK: {'iload': 10}}
-
- r_f_c2544_profile.get_streams = mock.Mock()
- r_f_c2544_profile.full_profile = {}
- r_f_c2544_profile._get_ixia_traffic_profile = mock.Mock()
- r_f_c2544_profile.get_multiplier = mock.Mock()
- r_f_c2544_profile._ixia_traffic_generate = mock.Mock()
- ixia_obj = mock.MagicMock()
- self.assertEqual(None, r_f_c2544_profile.execute_traffic(traffic_generator, ixia_obj))
-
- def test_update_traffic_profile(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.networks = {
- "uplink_0": ["xe0"], # private, one value for intfs
- "downlink_0": ["xe1", "xe2"], # public, two values for intfs
- "downlink_1": ["xe3"], # not in TRAFFIC PROFILE
- "tenant_0": ["xe4"], # not public or private
- }
-
- ports_expected = [8, 3, 5]
- traffic_generator.vnfd_helper.port_num.side_effect = ports_expected
- traffic_generator.client.return_value = True
-
- traffic_profile = deepcopy(self.TRAFFIC_PROFILE)
- traffic_profile.update({
- "uplink_0": ["xe0"],
- "downlink_0": ["xe1", "xe2"],
- })
-
- r_f_c2544_profile = IXIARFC2544Profile(traffic_profile)
- r_f_c2544_profile.full_profile = {}
- r_f_c2544_profile.get_streams = mock.Mock()
-
- self.assertIsNone(r_f_c2544_profile.update_traffic_profile(traffic_generator))
- self.assertEqual(r_f_c2544_profile.ports, ports_expected)
-
- def test_get_drop_percentage(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.networks = {
- "uplink_0": ["xe0"],
- "downlink_0": ["xe1"],
- }
- traffic_generator.client = \
- mock.Mock(return_value=True)
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.params = self.PROFILE
- ixia_obj = mock.MagicMock()
- r_f_c2544_profile.execute = mock.Mock()
- r_f_c2544_profile._get_ixia_traffic_profile = mock.Mock()
- r_f_c2544_profile._ixia_traffic_generate = mock.Mock()
- r_f_c2544_profile.get_multiplier = mock.Mock()
- r_f_c2544_profile.tmp_throughput = 0
- r_f_c2544_profile.tmp_drop = 0
- r_f_c2544_profile.full_profile = {}
- samples = {}
- for ifname in range(1):
- name = "xe{}".format(ifname)
- samples[name] = {"rx_throughput_fps": 20,
- "tx_throughput_fps": 20,
- "rx_throughput_mbps": 10,
- "tx_throughput_mbps": 10,
- "RxThroughput": 10,
- "TxThroughput": 10,
- "in_packets": 1000,
- "out_packets": 1000}
- tol_min = 100.0
- tolerance = 0.0
- self.assertIsNotNone(r_f_c2544_profile.get_drop_percentage(
- traffic_generator, samples,
- tol_min, tolerance, ixia_obj))
-
- def test_get_drop_percentage_update(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.my_ports = [0, 1]
- traffic_generator.uplink_ports = [0]
- traffic_generator.downlink_ports = [1]
- traffic_generator.client = \
- mock.Mock(return_value=True)
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.params = self.PROFILE
- ixia_obj = mock.MagicMock()
- r_f_c2544_profile.execute = mock.Mock()
- r_f_c2544_profile._get_ixia_traffic_profile = mock.Mock()
- r_f_c2544_profile._ixia_traffic_generate = mock.Mock()
- r_f_c2544_profile.get_multiplier = mock.Mock()
- r_f_c2544_profile.tmp_throughput = 0
- r_f_c2544_profile.tmp_drop = 0
- r_f_c2544_profile.full_profile = {}
- samples = {}
- for ifname in range(1):
- name = "xe{}".format(ifname)
- samples[name] = {"rx_throughput_fps": 20,
- "tx_throughput_fps": 20,
- "rx_throughput_mbps": 10,
- "tx_throughput_mbps": 10,
- "RxThroughput": 10,
- "TxThroughput": 10,
- "in_packets": 1000,
- "out_packets": 1002}
- tol_min = 0.0
- tolerance = 1.0
- self.assertIsNotNone(r_f_c2544_profile.get_drop_percentage(
- traffic_generator, samples,
- tol_min, tolerance, ixia_obj))
-
- def test_get_drop_percentage_div_zero(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.my_ports = [0, 1]
- traffic_generator.uplink_ports = [0]
- traffic_generator.downlink_ports = [1]
- traffic_generator.client = \
- mock.Mock(return_value=True)
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.params = self.PROFILE
- ixia_obj = mock.MagicMock()
- r_f_c2544_profile.execute = mock.Mock()
- r_f_c2544_profile._get_ixia_traffic_profile = mock.Mock()
- r_f_c2544_profile._ixia_traffic_generate = mock.Mock()
- r_f_c2544_profile.get_multiplier = mock.Mock()
- r_f_c2544_profile.tmp_throughput = 0
- r_f_c2544_profile.tmp_drop = 0
- r_f_c2544_profile.full_profile = {}
- samples = {}
- for ifname in range(1):
- name = "xe{}".format(ifname)
- samples[name] = {"rx_throughput_fps": 20,
- "tx_throughput_fps": 20,
- "rx_throughput_mbps": 10,
- "tx_throughput_mbps": 10,
- "RxThroughput": 10,
- "TxThroughput": 10,
- "in_packets": 1000,
- "out_packets": 0}
- tol_min = 0.0
- tolerance = 0.0
- r_f_c2544_profile.tmp_throughput = 0
- self.assertIsNotNone(r_f_c2544_profile.get_drop_percentage(
- traffic_generator, samples,
- tol_min, tolerance, ixia_obj))
-
- def test_get_multiplier(self):
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.max_rate = 100
- r_f_c2544_profile.min_rate = 100
- self.assertEqual("1.0", r_f_c2544_profile.get_multiplier())
-
- def test_start_ixia_latency(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.networks = {
- "uplink_0": ["xe0"],
- "downlink_0": ["xe1"],
- }
- traffic_generator.client = \
- mock.Mock(return_value=True)
- r_f_c2544_profile = IXIARFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.max_rate = 100
- r_f_c2544_profile.min_rate = 100
- ixia_obj = mock.MagicMock()
- r_f_c2544_profile._get_ixia_traffic_profile = \
- mock.Mock(return_value={})
- r_f_c2544_profile.full_profile = {}
- r_f_c2544_profile._ixia_traffic_generate = mock.Mock()
- self.assertEqual(
- None,
- r_f_c2544_profile.start_ixia_latency(traffic_generator,
- ixia_obj))
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/unit/network_services/traffic_profile/test_prox_binsearch.py b/tests/unit/network_services/traffic_profile/test_prox_binsearch.py
deleted file mode 100644
index c1f1c825b..000000000
--- a/tests/unit/network_services/traffic_profile/test_prox_binsearch.py
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from __future__ import absolute_import
-
-import unittest
-import mock
-
-from tests.unit import STL_MOCKS
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxTestDataTuple
- from yardstick.network_services.traffic_profile.prox_binsearch import ProxBinSearchProfile
-
-
-class TestProxBinSearchProfile(unittest.TestCase):
-
- def test_execute_1(self):
- def target(*args, **kwargs):
- runs.append(args[2])
- if args[2] < 0 or args[2] > 100:
- raise RuntimeError(' '.join([str(args), str(runs)]))
- if args[2] > 75.0:
- return fail_tuple, {}
- return success_tuple, {}
-
- tp_config = {
- 'traffic_profile': {
- 'packet_sizes': [200],
- },
- }
-
- runs = []
- success_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.1, 5.2, 5.3], 995, 1000, 123.4)
- fail_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.6, 5.7, 5.8], 850, 1000, 123.4)
-
- traffic_generator = mock.MagicMock()
-
- profile_helper = mock.MagicMock()
- profile_helper.run_test = target
-
- profile = ProxBinSearchProfile(tp_config)
- profile.init(mock.MagicMock())
- profile._profile_helper = profile_helper
-
- profile.execute_traffic(traffic_generator)
- self.assertEqual(round(profile.current_lower, 2), 74.69)
- self.assertEqual(round(profile.current_upper, 2), 75.39)
- self.assertEqual(len(runs), 8)
-
- def test_execute_2(self):
- def target(*args, **kwargs):
- runs.append(args[2])
- if args[2] < 0 or args[2] > 100:
- raise RuntimeError(' '.join([str(args), str(runs)]))
- if args[2] > 25.0:
- return fail_tuple, {}
- return success_tuple, {}
-
- tp_config = {
- 'traffic_profile': {
- 'packet_sizes': [200],
- 'test_precision': 2.0,
- },
- }
-
- runs = []
- success_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.1, 5.2, 5.3], 995, 1000, 123.4)
- fail_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.6, 5.7, 5.8], 850, 1000, 123.4)
-
- traffic_generator = mock.MagicMock()
-
- profile_helper = mock.MagicMock()
- profile_helper.run_test = target
-
- profile = ProxBinSearchProfile(tp_config)
- profile.init(mock.MagicMock())
- profile._profile_helper = profile_helper
-
- profile.execute_traffic(traffic_generator)
- self.assertEqual(round(profile.current_lower, 2), 24.06)
- self.assertEqual(round(profile.current_upper, 2), 25.47)
- self.assertEqual(len(runs), 7)
diff --git a/tests/unit/network_services/traffic_profile/test_rfc2544.py b/tests/unit/network_services/traffic_profile/test_rfc2544.py
deleted file mode 100644
index 221233710..000000000
--- a/tests/unit/network_services/traffic_profile/test_rfc2544.py
+++ /dev/null
@@ -1,290 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from __future__ import absolute_import
-from __future__ import division
-
-import unittest
-import mock
-
-from tests.unit import STL_MOCKS
-
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.traffic_profile.traffic_profile \
- import TrexProfile
- from yardstick.network_services.traffic_profile.rfc2544 import \
- RFC2544Profile
-
-
-class TestRFC2544Profile(unittest.TestCase):
- TRAFFIC_PROFILE = {
- "schema": "isb:traffic_profile:0.1",
- "name": "fixed",
- "description": "Fixed traffic profile to run UDP traffic",
- "traffic_profile": {
- "traffic_type": "FixedTraffic",
- "frame_rate": 100, # pps
- "flow_number": 10,
- "frame_size": 64}}
-
- PROFILE = {'description': 'Traffic profile to run RFC2544 latency',
- 'name': 'rfc2544',
- 'traffic_profile': {'traffic_type': 'RFC2544Profile',
- 'frame_rate': 100},
- 'downlink_0': {'ipv4':
- {'outer_l2': {'framesize':
- {'64B': '100', '1518B': '0',
- '128B': '0', '1400B': '0',
- '256B': '0', '373b': '0',
- '570B': '0'}},
- 'outer_l3v4': {'dstip4': '1.1.1.1-1.15.255.255',
- 'proto': 'udp',
- 'srcip4': '90.90.1.1-90.105.255.255',
- 'dscp': 0, 'ttl': 32, 'count': 1},
- 'outer_l4': {'srcport': '2001',
- 'dsrport': '1234', 'count': 1}}},
- 'uplink_0': {'ipv4':
- {'outer_l2': {'framesize':
- {'64B': '100', '1518B': '0',
- '128B': '0', '1400B': '0',
- '256B': '0', '373b': '0',
- '570B': '0'}},
- 'outer_l3v4': {'dstip4': '9.9.1.1-90.105.255.255',
- 'proto': 'udp',
- 'srcip4': '1.1.1.1-1.15.255.255',
- 'dscp': 0, 'ttl': 32, 'count': 1},
- 'outer_l4': {'dstport': '2001',
- 'srcport': '1234', 'count': 1}}},
- 'schema': 'isb:traffic_profile:0.1'}
-
- def test___init__(self):
- r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
- assert r_f_c2544_profile.rate
-
- def test_execute(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.networks = {
- "uplink_0": ["xe0"],
- "downlink_0": ["xe1"],
- }
- traffic_generator.client = \
- mock.Mock(return_value=True)
- r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.params = self.PROFILE
- r_f_c2544_profile.first_run = True
- self.assertEqual(None, r_f_c2544_profile.execute_traffic(traffic_generator))
-
- def test_get_drop_percentage(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.networks = {
- "uplink_0": ["xe0"],
- "downlink_0": ["xe1"],
- }
- traffic_generator.client = mock.Mock(return_value=True)
-
- r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.params = self.PROFILE
- r_f_c2544_profile.register_generator(traffic_generator)
- self.assertIsNone(r_f_c2544_profile.execute_traffic(traffic_generator))
-
- samples = {}
- for ifname in range(1):
- name = "xe{}".format(ifname)
- samples[name] = {
- "rx_throughput_fps": 20,
- "tx_throughput_fps": 20,
- "rx_throughput_mbps": 10,
- "tx_throughput_mbps": 10,
- "in_packets": 1000,
- "out_packets": 1000,
- }
-
- expected = {
- 'DropPercentage': 0.0,
- 'RxThroughput': 100 / 3.0,
- 'TxThroughput': 100 / 3.0,
- 'CurrentDropPercentage': 0.0,
- 'Throughput': 66.66666666666667,
- 'xe0': {
- 'tx_throughput_fps': 20,
- 'in_packets': 1000,
- 'out_packets': 1000,
- 'rx_throughput_mbps': 10,
- 'tx_throughput_mbps': 10,
- 'rx_throughput_fps': 20,
- },
- }
- traffic_generator.generate_samples = mock.MagicMock(return_value=samples)
- traffic_generator.RUN_DURATION = 30
- traffic_generator.rfc2544_helper.tolerance_low = 0.0001
- traffic_generator.rfc2544_helper.tolerance_high = 0.0001
- result = r_f_c2544_profile.get_drop_percentage(traffic_generator)
- self.assertDictEqual(result, expected)
-
- def test_get_drop_percentage_update(self):
- traffic_generator = mock.Mock(autospec=RFC2544Profile)
- traffic_generator.networks = {
- "uplink_0": ["xe0"],
- "downlink_0": ["xe1"],
- }
- traffic_generator.client = mock.Mock(return_value=True)
-
- r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.params = self.PROFILE
- r_f_c2544_profile.register_generator(traffic_generator)
- self.assertIsNone(r_f_c2544_profile.execute_traffic())
-
- samples = {}
- for ifname in range(1):
- name = "xe{}".format(ifname)
- samples[name] = {
- "rx_throughput_fps": 20,
- "tx_throughput_fps": 20,
- "rx_throughput_mbps": 10,
- "tx_throughput_mbps": 10,
- "in_packets": 1000,
- "out_packets": 1002,
- }
- tol_min = 0.0
- tolerance = 1.0
- expected = {
- 'DropPercentage': 0.1996,
- 'RxThroughput': 33.333333333333336,
- 'TxThroughput': 33.4,
- 'CurrentDropPercentage': 0.1996,
- 'Throughput': 66.66666666666667,
- 'xe0': {
- 'tx_throughput_fps': 20,
- 'in_packets': 1000,
- 'out_packets': 1002,
- 'rx_throughput_mbps': 10,
- 'tx_throughput_mbps': 10,
- 'rx_throughput_fps': 20,
- },
- }
- traffic_generator.generate_samples = mock.MagicMock(return_value=samples)
- traffic_generator.RUN_DURATION = 30
- traffic_generator.rfc2544_helper.tolerance_low = 0.0001
- traffic_generator.rfc2544_helper.tolerance_high = 0.0001
- result = r_f_c2544_profile.get_drop_percentage(traffic_generator)
- self.assertDictEqual(expected, result)
-
- def test_get_drop_percentage_div_zero(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.networks = {
- "uplink_0": ["xe0"],
- "downlink_0": ["xe1"],
- }
- traffic_generator.client = \
- mock.Mock(return_value=True)
- r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.params = self.PROFILE
- self.assertEqual(None, r_f_c2544_profile.execute_traffic(traffic_generator))
- samples = {}
- for ifname in range(1):
- name = "xe{}".format(ifname)
- samples[name] = {"rx_throughput_fps": 20,
- "tx_throughput_fps": 20,
- "rx_throughput_mbps": 10,
- "tx_throughput_mbps": 10,
- "in_packets": 1000,
- "out_packets": 0}
- tol_min = 0.0
- tolerance = 0.0
- r_f_c2544_profile.throughput_max = 0
- expected = {
- 'DropPercentage': 100.0, 'RxThroughput': 100 / 3.0,
- 'TxThroughput': 0.0, 'CurrentDropPercentage': 100.0,
- 'Throughput': 66.66666666666667,
- 'xe0': {
- 'tx_throughput_fps': 20, 'in_packets': 1000,
- 'out_packets': 0, 'rx_throughput_mbps': 10,
- 'tx_throughput_mbps': 10, 'rx_throughput_fps': 20
- }
- }
- traffic_generator.generate_samples = mock.MagicMock(return_value=samples)
- traffic_generator.RUN_DURATION = 30
- traffic_generator.rfc2544_helper.tolerance_low = 0.0001
- traffic_generator.rfc2544_helper.tolerance_high = 0.0001
- self.assertDictEqual(expected,
- r_f_c2544_profile.get_drop_percentage(traffic_generator))
-
- def test_get_multiplier(self):
- r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.max_rate = 100
- r_f_c2544_profile.min_rate = 100
- self.assertEqual("1.0", r_f_c2544_profile.get_multiplier())
-
- def test_calculate_pps(self):
- r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.rate = 100
- r_f_c2544_profile.pps = 100
- samples = {'Throughput': 4549093.33}
- self.assertEqual((2274546.67, 1.0),
- r_f_c2544_profile.calculate_pps(samples))
-
- def test_create_single_stream(self):
- r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile._create_single_packet = mock.MagicMock()
- r_f_c2544_profile.pg_id = 1
- self.assertIsNotNone(
- r_f_c2544_profile.create_single_stream(64, 2274546.67))
-
- def test_create_single_stream_no_pg_id(self):
- r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile._create_single_packet = mock.MagicMock()
- r_f_c2544_profile.pg_id = 0
- self.assertIsNotNone(
- r_f_c2544_profile.create_single_stream(64, 2274546.67))
-
- def test_execute_latency(self):
- traffic_generator = mock.Mock(autospec=TrexProfile)
- traffic_generator.networks = {
- "private_0": ["xe0"],
- "public_0": ["xe1"],
- }
- traffic_generator.client = \
- mock.Mock(return_value=True)
- r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
- r_f_c2544_profile.params = self.PROFILE
- r_f_c2544_profile.first_run = True
- samples = {}
- for ifname in range(1):
- name = "xe{}".format(ifname)
- samples[name] = {"rx_throughput_fps": 20,
- "tx_throughput_fps": 20,
- "rx_throughput_mbps": 10,
- "tx_throughput_mbps": 10,
- "in_packets": 1000,
- "out_packets": 0}
-
- samples['Throughput'] = 4549093.33
- r_f_c2544_profile.calculate_pps = mock.Mock(return_value=[2274546.67,
- 1.0])
-
- self.assertEqual(None,
- r_f_c2544_profile.execute_latency(traffic_generator,
- samples))
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/unit/network_services/traffic_profile/test_traffic_profile.py b/tests/unit/network_services/traffic_profile/test_traffic_profile.py
deleted file mode 100644
index 8355c85b6..000000000
--- a/tests/unit/network_services/traffic_profile/test_traffic_profile.py
+++ /dev/null
@@ -1,246 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from __future__ import absolute_import
-
-import unittest
-import mock
-
-from tests.unit import STL_MOCKS
-
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.traffic_profile.base import TrafficProfile
- from yardstick.network_services.traffic_profile.traffic_profile import TrexProfile
- from yardstick.network_services.traffic_profile.traffic_profile import SRC
- from yardstick.network_services.traffic_profile.traffic_profile import DST
- from yardstick.network_services.traffic_profile.traffic_profile import ETHERNET
- from yardstick.network_services.traffic_profile.traffic_profile import IP
- from yardstick.network_services.traffic_profile.traffic_profile import IPv6
- from yardstick.network_services.traffic_profile.traffic_profile import UDP
- from yardstick.network_services.traffic_profile.traffic_profile import SRC_PORT
- from yardstick.network_services.traffic_profile.traffic_profile import DST_PORT
- from yardstick.network_services.traffic_profile.traffic_profile import TYPE_OF_SERVICE
-
-
-class TestTrexProfile(unittest.TestCase):
- TRAFFIC_PROFILE = {
- "schema": "isb:traffic_profile:0.1",
- "name": "fixed",
- "description": "Fixed traffic profile to run UDP traffic",
- "traffic_profile": {
- "traffic_type": "FixedTraffic",
- "frame_rate": 100, # pps
- "flow_number": 10,
- "frame_size": 64}}
-
- EXAMPLE_ETHERNET_ADDR = "00:00:00:00:00:01"
- EXAMPLE_IP_ADDR = "10.0.0.1"
- EXAMPLE_IPv6_ADDR = "0064:ff9b:0:0:0:0:9810:6414"
-
- PROFILE = {'description': 'Traffic profile to run RFC2544 latency',
- 'name': 'rfc2544',
- 'traffic_profile': {'traffic_type': 'RFC2544Profile',
- 'frame_rate': 100},
- TrafficProfile.DOWNLINK: {'ipv4': {'outer_l2': {'framesize': {'64B': '100',
- '1518B': '0',
- '128B': '0',
- '1400B': '0',
- '256B': '0',
- '373b': '0',
- '570B': '0'},
- "srcmac": "00:00:00:00:00:02",
- "dstmac": "00:00:00:00:00:01"},
- 'outer_l3v4': {'dstip4': '1.1.1.1-1.1.2.2',
- 'proto': 'udp',
- 'srcip4': '9.9.1.1-90.1.2.2',
- 'dscp': 0, 'ttl': 32,
- 'count': 1},
- 'outer_l4': {'srcport': '2001',
- 'dsrport': '1234',
- 'count': 1}}},
- TrafficProfile.UPLINK: {'ipv4':
- {'outer_l2': {'framesize':
- {'64B': '100', '1518B': '0',
- '128B': '0', '1400B': '0',
- '256B': '0', '373b': '0',
- '570B': '0'},
- "srcmac": "00:00:00:00:00:01",
- "dstmac": "00:00:00:00:00:02"},
- 'outer_l3v4': {'dstip4': '9.9.1.1-90.105.255.255',
- 'proto': 'udp',
- 'srcip4': '1.1.1.1-1.15.255.255',
- 'dscp': 0, 'ttl': 32, 'count': 1},
- 'outer_l4': {'dstport': '2001',
- 'srcport': '1234',
- 'count': 1}}},
- 'schema': 'isb:traffic_profile:0.1'}
- PROFILE_v6 = {'description': 'Traffic profile to run RFC2544 latency',
- 'name': 'rfc2544',
- 'traffic_profile': {'traffic_type': 'RFC2544Profile',
- 'frame_rate': 100},
- TrafficProfile.DOWNLINK: {'ipv6': {'outer_l2': {'framesize':
- {'64B': '100', '1518B': '0',
- '128B': '0', '1400B': '0',
- '256B': '0', '373b': '0',
- '570B': '0'},
- "srcmac": "00:00:00:00:00:02",
- "dstmac": "00:00:00:00:00:01"},
- 'outer_l3v4': {'dstip6': '0064:ff9b:0:0:0:0:9810:6414-0064:ff9b:0:0:0:0:9810:6420',
- 'proto': 'udp',
- 'srcip6': '0064:ff9b:0:0:0:0:9810:2814-0064:ff9b:0:0:0:0:9810:2820',
- 'dscp': 0, 'ttl': 32,
- 'count': 1},
- 'outer_l4': {'srcport': '2001',
- 'dsrport': '1234',
- 'count': 1}}},
- TrafficProfile.UPLINK:
- {'ipv6': {'outer_l2': {'framesize':
- {'64B': '100', '1518B': '0',
- '128B': '0', '1400B': '0',
- '256B': '0', '373b': '0',
- '570B': '0'},
- "srcmac": "00:00:00:00:00:01",
- "dstmac": "00:00:00:00:00:02"},
- 'outer_l3v4': {'dstip6': '0064:ff9b:0:0:0:0:9810:2814-0064:ff9b:0:0:0:0:9810:2820',
- 'proto': 'udp',
- 'srcip6': '0064:ff9b:0:0:0:0:9810:6414-0064:ff9b:0:0:0:0:9810:6420',
- 'dscp': 0, 'ttl': 32,
- 'count': 1},
- 'outer_l4': {'dstport': '2001',
- 'srcport': '1234',
- 'count': 1}}},
- 'schema': 'isb:traffic_profile:0.1'}
-
- def test___init__(self):
- TrafficProfile.params = self.PROFILE
- trex_profile = \
- TrexProfile(TrafficProfile)
- self.assertEqual(trex_profile.pps, 100)
-
- def test_qinq(self):
- qinq = {"S-VLAN": {"id": 128, "priority": 0, "cfi": 0},
- "C-VLAN": {"id": 512, "priority": 0, "cfi": 0}}
-
- trex_profile = \
- TrexProfile(TrafficProfile)
- self.assertEqual(None, trex_profile.set_qinq(qinq))
-
- qinq = {"S-VLAN": {"id": "128-130", "priority": 0, "cfi": 0},
- "C-VLAN": {"id": "512-515", "priority": 0, "cfi": 0}}
- self.assertEqual(None, trex_profile.set_qinq(qinq))
-
- def test__set_outer_l2_fields(self):
- trex_profile = \
- TrexProfile(TrafficProfile)
- qinq = {"S-VLAN": {"id": 128, "priority": 0, "cfi": 0},
- "C-VLAN": {"id": 512, "priority": 0, "cfi": 0}}
- outer_l2 = self.PROFILE[TrafficProfile.UPLINK]['ipv4']['outer_l2']
- outer_l2['QinQ'] = qinq
- self.assertEqual(None, trex_profile._set_outer_l2_fields(outer_l2))
-
- def test__set_outer_l3v4_fields(self):
- trex_profile = \
- TrexProfile(TrafficProfile)
- outer_l3v4 = self.PROFILE[TrafficProfile.UPLINK]['ipv4']['outer_l3v4']
- outer_l3v4['proto'] = 'tcp'
- self.assertEqual(None, trex_profile._set_outer_l3v4_fields(outer_l3v4))
-
- def test__set_outer_l3v6_fields(self):
- trex_profile = \
- TrexProfile(TrafficProfile)
- outer_l3v6 = self.PROFILE_v6[TrafficProfile.UPLINK]['ipv6']['outer_l3v4']
- outer_l3v6['proto'] = 'tcp'
- outer_l3v6['tc'] = 1
- outer_l3v6['hlim'] = 10
- self.assertEqual(None, trex_profile._set_outer_l3v6_fields(outer_l3v6))
-
- def test__set_outer_l4_fields(self):
- trex_profile = \
- TrexProfile(TrafficProfile)
- outer_l4 = self.PROFILE[TrafficProfile.UPLINK]['ipv4']['outer_l4']
- self.assertEqual(None, trex_profile._set_outer_l4_fields(outer_l4))
-
- def test_get_streams(self):
- trex_profile = \
- TrexProfile(TrafficProfile)
- trex_profile.params = self.PROFILE
- profile_data = self.PROFILE[TrafficProfile.UPLINK]
- self.assertIsNotNone(trex_profile.get_streams(profile_data))
- trex_profile.pg_id = 1
- self.assertIsNotNone(trex_profile.get_streams(profile_data))
- trex_profile.params = self.PROFILE_v6
- trex_profile.profile_data = self.PROFILE_v6[TrafficProfile.UPLINK]
- self.assertIsNotNone(trex_profile.get_streams(profile_data))
- trex_profile.pg_id = 1
- self.assertIsNotNone(trex_profile.get_streams(profile_data))
-
- def test_generate_packets(self):
- trex_profile = \
- TrexProfile(TrafficProfile)
- trex_profile.fsize = 10
- trex_profile.base_pkt = [10]
- self.assertIsNone(trex_profile.generate_packets())
-
- def test_generate_imix_data_error(self):
- trex_profile = \
- TrexProfile(TrafficProfile)
- self.assertEqual({}, trex_profile.generate_imix_data(False))
-
- def test__get_start_end_ipv6(self):
- trex_profile = \
- TrexProfile(TrafficProfile)
- self.assertRaises(SystemExit, trex_profile._get_start_end_ipv6,
- "1.1.1.3", "1.1.1.1")
-
- def test__general_single_action_partial(self):
- trex_profile = TrexProfile(TrafficProfile)
-
- trex_profile._general_single_action_partial(ETHERNET)(SRC)(self.EXAMPLE_ETHERNET_ADDR)
- self.assertEqual(self.EXAMPLE_ETHERNET_ADDR, trex_profile.ether_packet.src)
-
- trex_profile._general_single_action_partial(IP)(DST)(self.EXAMPLE_IP_ADDR)
- self.assertEqual(self.EXAMPLE_IP_ADDR, trex_profile.ip_packet.dst)
-
- trex_profile._general_single_action_partial(IPv6)(DST)(self.EXAMPLE_IPv6_ADDR)
- self.assertEqual(self.EXAMPLE_IPv6_ADDR, trex_profile.ip6_packet.dst)
-
- trex_profile._general_single_action_partial(UDP)(SRC_PORT)(5060)
- self.assertEqual(5060, trex_profile.udp_packet.sport)
-
- trex_profile._general_single_action_partial(IP)(TYPE_OF_SERVICE)(0)
- self.assertEqual(0, trex_profile.ip_packet.tos)
-
- def test__set_proto_addr(self):
- trex_profile = TrexProfile(TrafficProfile)
-
- ether_range = "00:00:00:00:00:01-00:00:00:00:00:02"
- ip_range = "1.1.1.2-1.1.1.10"
- ipv6_range = '0064:ff9b:0:0:0:0:9810:6414-0064:ff9b:0:0:0:0:9810:6420'
-
- trex_profile._set_proto_addr(ETHERNET, SRC, ether_range)
- trex_profile._set_proto_addr(ETHERNET, DST, ether_range)
- trex_profile._set_proto_addr(IP, SRC, ip_range)
- trex_profile._set_proto_addr(IP, DST, ip_range)
- trex_profile._set_proto_addr(IPv6, SRC, ipv6_range)
- trex_profile._set_proto_addr(IPv6, DST, ipv6_range)
- trex_profile._set_proto_addr(UDP, SRC_PORT, "5060-5090")
- trex_profile._set_proto_addr(UDP, DST_PORT, "5060")
diff --git a/tests/unit/network_services/vnf_generic/vnf/acl_1rule.yaml b/tests/unit/network_services/vnf_generic/vnf/acl_1rule.yaml
deleted file mode 100644
index b184a29e2..000000000
--- a/tests/unit/network_services/vnf_generic/vnf/acl_1rule.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-access-list1:
- acl:
- access-list-entries:
- - ace:
- ace-oper-data:
- match-counter: 0
- actions: drop,count
- matches:
- destination-ipv4-network: 152.16.40.20/24
- destination-port-range:
- lower-port: 0
- upper-port: 65535
- source-ipv4-network: 0.0.0.0/0
- source-port-range:
- lower-port: 0
- upper-port: 65535
- rule-name: rule1588
- - ace:
- ace-oper-data:
- match-counter: 0
- actions: drop,count
- matches:
- destination-ipv4-network: 0.0.0.0/0
- destination-port-range:
- lower-port: 0
- upper-port: 65535
- source-ipv4-network: 152.16.100.20/24
- source-port-range:
- lower-port: 0
- upper-port: 65535
- rule-name: rule1589
- acl-name: sample-ipv4-acl
- acl-type: ipv4-acl
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_sample_vnf.py b/tests/unit/network_services/vnf_generic/vnf/test_sample_vnf.py
deleted file mode 100644
index beb4f8f9f..000000000
--- a/tests/unit/network_services/vnf_generic/vnf/test_sample_vnf.py
+++ /dev/null
@@ -1,2077 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-import unittest
-import mock
-from copy import deepcopy
-
-from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
-from tests.unit import STL_MOCKS
-from yardstick.benchmark.contexts.base import Context
-from yardstick.common import exceptions as y_exceptions
-from yardstick.network_services.nfvi.resource import ResourceProfile
-from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
-
-
-class MockError(BaseException):
- pass
-
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import VnfSshHelper
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNFDeployHelper
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import ScenarioHelper
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import ResourceHelper
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import ClientResourceHelper
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import Rfc2544ResourceHelper
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import SetupEnvHelper
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNFTrafficGen
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import DpdkVnfSetupEnvHelper
-
-
-class TestVnfSshHelper(unittest.TestCase):
-
- VNFD_0 = {
- 'short-name': 'VpeVnf',
- 'vdu': [
- {
- 'routing_table': [
- {
- 'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'
- },
- {
- 'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'
- },
- ],
- 'description': 'VPE approximation using DPDK',
- 'name': 'vpevnf-baremetal',
- 'nd_route_tbl': [
- {
- 'network': '0064:ff9b:0:0:0:0:9810:6414',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
- 'if': 'xe0'
- },
- {
- 'network': '0064:ff9b:0:0:0:0:9810:2814',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
- 'if': 'xe1'
- },
- ],
- 'id': 'vpevnf-baremetal',
- 'external-interface': [
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:05:00.0',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 0,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.100.20',
- 'local_mac': '00:00:00:00:00:01',
- 'vld_id': 'uplink_0',
- 'ifname': 'xe0',
- },
- 'vnfd-connection-point-ref': 'xe0',
- 'name': 'xe0'
- },
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.1',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 1,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_mac': '00:00:00:00:00:02',
- 'vld_id': 'downlink_0',
- 'ifname': 'xe1',
- },
- 'vnfd-connection-point-ref': 'xe1',
- 'name': 'xe1'
- },
- ],
- },
- ],
- 'description': 'Vpe approximation using DPDK',
- 'mgmt-interface': {
- 'vdu-id': 'vpevnf-baremetal',
- 'host': '1.1.1.1',
- 'password': 'r00t',
- 'user': 'root',
- 'ip': '1.1.1.1'
- },
- 'benchmark': {
- 'kpi': [
- 'packets_in',
- 'packets_fwd',
- 'packets_dropped',
- ],
- },
- 'connection-point': [
- {
- 'type': 'VPORT',
- 'name': 'xe0',
- },
- {
- 'type': 'VPORT',
- 'name': 'xe1',
- },
- ],
- 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
- }
-
- VNFD = {
- 'vnfd:vnfd-catalog': {
- 'vnfd': [
- VNFD_0,
- ]
- }
- }
-
- def assertAll(self, iterable, message=None):
- self.assertTrue(all(iterable), message)
-
- def test_get_class(self):
- self.assertIs(VnfSshHelper.get_class(), VnfSshHelper)
-
- @mock.patch('yardstick.ssh.paramiko')
- def test_copy(self, _):
- ssh_helper = VnfSshHelper(self.VNFD_0['mgmt-interface'], 'my/bin/path')
- ssh_helper._run = mock.Mock()
-
- ssh_helper.execute('ls')
- self.assertTrue(ssh_helper.is_connected)
- result = ssh_helper.copy()
- self.assertIsInstance(result, VnfSshHelper)
- self.assertFalse(result.is_connected)
- self.assertEqual(result.bin_path, ssh_helper.bin_path)
- self.assertEqual(result.host, ssh_helper.host)
- self.assertEqual(result.port, ssh_helper.port)
- self.assertEqual(result.user, ssh_helper.user)
- self.assertEqual(result.password, ssh_helper.password)
- self.assertEqual(result.key_filename, ssh_helper.key_filename)
-
- @mock.patch('yardstick.ssh.paramiko')
- def test_upload_config_file(self, mock_paramiko):
- ssh_helper = VnfSshHelper(self.VNFD_0['mgmt-interface'], 'my/bin/path')
- ssh_helper._run = mock.MagicMock()
-
- self.assertFalse(ssh_helper.is_connected)
- cfg_file = ssh_helper.upload_config_file('my/prefix', 'my content')
- self.assertTrue(ssh_helper.is_connected)
- self.assertEqual(mock_paramiko.SSHClient.call_count, 1)
- self.assertTrue(cfg_file.startswith('/tmp'))
-
- cfg_file = ssh_helper.upload_config_file('/my/prefix', 'my content')
- self.assertTrue(ssh_helper.is_connected)
- self.assertEqual(mock_paramiko.SSHClient.call_count, 1)
- self.assertEqual(cfg_file, '/my/prefix')
-
- def test_join_bin_path(self):
- ssh_helper = VnfSshHelper(self.VNFD_0['mgmt-interface'], 'my/bin/path')
-
- expected_start = 'my'
- expected_middle_list = ['bin']
- expected_end = 'path'
- result = ssh_helper.join_bin_path()
- self.assertTrue(result.startswith(expected_start))
- self.assertAll(middle in result for middle in expected_middle_list)
- self.assertTrue(result.endswith(expected_end))
-
- expected_middle_list.append(expected_end)
- expected_end = 'some_file.sh'
- result = ssh_helper.join_bin_path('some_file.sh')
- self.assertTrue(result.startswith(expected_start))
- self.assertAll(middle in result for middle in expected_middle_list)
- self.assertTrue(result.endswith(expected_end))
-
- expected_middle_list.append('some_dir')
- expected_end = 'some_file.sh'
- result = ssh_helper.join_bin_path('some_dir', 'some_file.sh')
- self.assertTrue(result.startswith(expected_start))
- self.assertAll(middle in result for middle in expected_middle_list)
- self.assertTrue(result.endswith(expected_end))
-
- @mock.patch('yardstick.ssh.paramiko')
- @mock.patch('yardstick.ssh.provision_tool')
- def test_provision_tool(self, mock_provision_tool, mock_paramiko):
- ssh_helper = VnfSshHelper(self.VNFD_0['mgmt-interface'], 'my/bin/path')
- ssh_helper._run = mock.MagicMock()
-
- self.assertFalse(ssh_helper.is_connected)
- ssh_helper.provision_tool()
- self.assertTrue(ssh_helper.is_connected)
- self.assertEqual(mock_paramiko.SSHClient.call_count, 1)
- self.assertEqual(mock_provision_tool.call_count, 1)
-
- ssh_helper.provision_tool(tool_file='my_tool.sh')
- self.assertTrue(ssh_helper.is_connected)
- self.assertEqual(mock_paramiko.SSHClient.call_count, 1)
- self.assertEqual(mock_provision_tool.call_count, 2)
-
- ssh_helper.provision_tool('tool_path', 'my_tool.sh')
- self.assertTrue(ssh_helper.is_connected)
- self.assertEqual(mock_paramiko.SSHClient.call_count, 1)
- self.assertEqual(mock_provision_tool.call_count, 3)
-
-
-class TestSetupEnvHelper(unittest.TestCase):
-
- VNFD_0 = {
- 'short-name': 'VpeVnf',
- 'vdu': [
- {
- 'routing_table': [
- {
- 'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'
- },
- {
- 'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'
- },
- ],
- 'description': 'VPE approximation using DPDK',
- 'name': 'vpevnf-baremetal',
- 'nd_route_tbl': [
- {
- 'network': '0064:ff9b:0:0:0:0:9810:6414',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
- 'if': 'xe0'
- },
- {
- 'network': '0064:ff9b:0:0:0:0:9810:2814',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
- 'if': 'xe1'
- },
- ],
- 'id': 'vpevnf-baremetal',
- 'external-interface': [
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:05:00.0',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 0,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.100.20',
- 'local_mac': '00:00:00:00:00:01',
- 'vld_id': 'uplink_0',
- 'ifname': 'xe0',
- },
- 'vnfd-connection-point-ref': 'xe0',
- 'name': 'xe0'
- },
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.1',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 1,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_mac': '00:00:00:00:00:02',
- 'vld_id': 'downlink_0',
- 'ifname': 'xe1',
- },
- 'vnfd-connection-point-ref': 'xe1',
- 'name': 'xe1'
- },
- ],
- },
- ],
- 'description': 'Vpe approximation using DPDK',
- 'mgmt-interface': {
- 'vdu-id': 'vpevnf-baremetal',
- 'host': '1.1.1.1',
- 'password': 'r00t',
- 'user': 'root',
- 'ip': '1.1.1.1'
- },
- 'benchmark': {
- 'kpi': [
- 'packets_in',
- 'packets_fwd',
- 'packets_dropped',
- ],
- },
- 'connection-point': [
- {
- 'type': 'VPORT',
- 'name': 'xe0',
- },
- {
- 'type': 'VPORT',
- 'name': 'xe1',
- },
- ],
- 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
- }
-
- def test_build_config(self):
- setup_env_helper = SetupEnvHelper(mock.Mock(), mock.Mock(), mock.Mock())
-
- with self.assertRaises(NotImplementedError):
- setup_env_helper.build_config()
-
- def test_setup_vnf_environment(self):
- setup_env_helper = SetupEnvHelper(mock.Mock(), mock.Mock(), mock.Mock())
- self.assertIsNone(setup_env_helper.setup_vnf_environment())
-
- def test_tear_down(self):
- setup_env_helper = SetupEnvHelper(mock.Mock(), mock.Mock(), mock.Mock())
-
- with self.assertRaises(NotImplementedError):
- setup_env_helper.tear_down()
-
-
-class TestDpdkVnfSetupEnvHelper(unittest.TestCase):
-
- VNFD_0 = {
- 'short-name': 'VpeVnf',
- 'vdu': [
- {
- 'routing_table': [
- {
- 'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'
- },
- {
- 'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'
- },
- ],
- 'description': 'VPE approximation using DPDK',
- 'name': 'vpevnf-baremetal',
- 'nd_route_tbl': [
- {
- 'network': '0064:ff9b:0:0:0:0:9810:6414',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
- 'if': 'xe0'
- },
- {
- 'network': '0064:ff9b:0:0:0:0:9810:2814',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
- 'if': 'xe1'
- },
- ],
- 'id': 'vpevnf-baremetal',
- 'external-interface': [
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:05:00.0',
- 'dpdk_port_num': 0,
- 'driver': 'i40e',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.100.20',
- 'local_mac': '00:00:00:00:00:01',
- 'vld_id': 'uplink_0',
- 'ifname': 'xe0',
- },
- 'vnfd-connection-point-ref': 'xe0',
- 'name': 'xe0'
- },
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.1',
- 'dpdk_port_num': 1,
- 'driver': 'ixgbe',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_mac': '00:00:00:00:00:02',
- 'vld_id': 'downlink_0',
- 'ifname': 'xe1',
- },
- 'vnfd-connection-point-ref': 'xe1',
- 'name': 'xe1'
- },
- ],
- },
- ],
- 'description': 'Vpe approximation using DPDK',
- 'mgmt-interface': {
- 'vdu-id': 'vpevnf-baremetal',
- 'host': '1.1.1.1',
- 'password': 'r00t',
- 'user': 'root',
- 'ip': '1.1.1.1'
- },
- 'benchmark': {
- 'kpi': [
- 'packets_in',
- 'packets_fwd',
- 'packets_dropped',
- ],
- },
- 'connection-point': [
- {
- 'type': 'VPORT',
- 'name': 'xe0',
- },
- {
- 'type': 'VPORT',
- 'name': 'xe1',
- },
- ],
- 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
- }
-
- VNFD = {
- 'vnfd:vnfd-catalog': {
- 'vnfd': [
- VNFD_0,
- ]
- }
- }
-
- def test__update_packet_type(self):
- ip_pipeline_cfg = 'pkt_type = ipv4'
- pkt_type = {'pkt_type': '1'}
-
- expected = "pkt_type = 1"
- result = DpdkVnfSetupEnvHelper._update_packet_type(ip_pipeline_cfg, pkt_type)
- self.assertEqual(result, expected)
-
- def test__update_packet_type_no_op(self):
- ip_pipeline_cfg = 'pkt_type = ipv6'
- pkt_type = {'pkt_type': '1'}
-
- expected = "pkt_type = ipv6"
- result = DpdkVnfSetupEnvHelper._update_packet_type(ip_pipeline_cfg, pkt_type)
- self.assertEqual(result, expected)
-
- def test__update_packet_type_multi_op(self):
- ip_pipeline_cfg = 'pkt_type = ipv4\npkt_type = 1\npkt_type = ipv4'
- pkt_type = {'pkt_type': '1'}
-
- expected = 'pkt_type = 1\npkt_type = 1\npkt_type = 1'
- result = DpdkVnfSetupEnvHelper._update_packet_type(ip_pipeline_cfg, pkt_type)
- self.assertEqual(result, expected)
-
- def test__update_traffic_type(self):
- ip_pipeline_cfg = 'pkt_type = ipv4'
-
- traffic_options = {"vnf_type": DpdkVnfSetupEnvHelper.APP_NAME, 'traffic_type': 4}
- expected = "pkt_type = ipv4"
- result = DpdkVnfSetupEnvHelper._update_traffic_type(ip_pipeline_cfg, traffic_options)
- self.assertEqual(result, expected)
-
- def test__update_traffic_type_ipv6(self):
- ip_pipeline_cfg = 'pkt_type = ipv4'
-
- traffic_options = {"vnf_type": DpdkVnfSetupEnvHelper.APP_NAME, 'traffic_type': 6}
- expected = "pkt_type = ipv6"
- result = DpdkVnfSetupEnvHelper._update_traffic_type(ip_pipeline_cfg, traffic_options)
- self.assertEqual(result, expected)
-
- def test__update_traffic_type_not_app_name(self):
- ip_pipeline_cfg = 'traffic_type = 4'
-
- vnf_type = ''.join(["Not", DpdkVnfSetupEnvHelper.APP_NAME])
- traffic_options = {"vnf_type": vnf_type, 'traffic_type': 8}
- expected = "traffic_type = 8"
- result = DpdkVnfSetupEnvHelper._update_traffic_type(ip_pipeline_cfg, traffic_options)
- self.assertEqual(result, expected)
-
- def test__setup_hugepages(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- ssh_helper.execute.return_value = 0, '', ''
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
-
- result = dpdk_setup_helper._setup_hugepages()
- expect_start_list = ['awk', 'awk', 'echo']
- expect_in_list = ['meminfo', 'nr_hugepages', '16']
- call_args_iter = (args[0][0] for args in ssh_helper.execute.call_args_list)
- self.assertIsNone(result)
- self.assertEqual(ssh_helper.execute.call_count, 3)
- for expect_start, expect_in, arg0 in zip(expect_start_list, expect_in_list,
- call_args_iter):
- self.assertTrue(arg0.startswith(expect_start))
- self.assertIn(expect_in, arg0)
-
- def test__setup_hugepages_2_mb(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- ssh_helper.execute.return_value = 0, '2048kB ', ''
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
-
- result = dpdk_setup_helper._setup_hugepages()
- expect_start_list = ['awk', 'awk', 'echo']
- expect_in_list = ['meminfo', 'nr_hugepages', '8192']
- call_args_iter = (args[0][0] for args in ssh_helper.execute.call_args_list)
- self.assertIsNone(result)
- self.assertEqual(ssh_helper.execute.call_count, 3)
- for expect_start, expect_in, arg0 in zip(expect_start_list, expect_in_list,
- call_args_iter):
- self.assertTrue(arg0.startswith(expect_start))
- self.assertIn(expect_in, arg0)
-
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.open')
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.find_relative_file')
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.MultiPortConfig')
- def test_build_config(self, mock_multi_port_config_class, mock_find, *args):
- mock_multi_port_config = mock_multi_port_config_class()
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- scenario_helper.vnf_cfg = {}
- scenario_helper.all_options = {}
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
-
- dpdk_setup_helper.PIPELINE_COMMAND = expected = 'pipeline command'
- result = dpdk_setup_helper.build_config()
- self.assertEqual(result, expected)
- self.assertGreaterEqual(ssh_helper.upload_config_file.call_count, 2)
- self.assertGreaterEqual(mock_find.call_count, 1)
- self.assertGreaterEqual(mock_multi_port_config.generate_config.call_count, 1)
- self.assertGreaterEqual(mock_multi_port_config.generate_script.call_count, 1)
-
- def test__build_pipeline_kwargs(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- ssh_helper.provision_tool.return_value = 'tool_path'
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- dpdk_setup_helper.CFG_CONFIG = 'config'
- dpdk_setup_helper.CFG_SCRIPT = 'script'
- dpdk_setup_helper.pipeline_kwargs = {}
- dpdk_setup_helper.all_ports = [0, 1, 2]
-
- expected = {
- 'cfg_file': 'config',
- 'script': 'script',
- 'port_mask_hex': '0x3',
- 'tool_path': 'tool_path',
- }
- dpdk_setup_helper._build_pipeline_kwargs()
- self.assertDictEqual(dpdk_setup_helper.pipeline_kwargs, expected)
-
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.time')
- @mock.patch('yardstick.ssh.SSH')
- def test_setup_vnf_environment(self, *args):
- def execute(cmd):
- if cmd.startswith('which '):
- return exec_failure
- return exec_success
-
- exec_success = (0, 'good output', '')
- exec_failure = (1, 'bad output', 'error output')
-
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- ssh_helper.execute = execute
-
- dpdk_vnf_setup_env_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, mock.Mock())
- dpdk_vnf_setup_env_helper._validate_cpu_cfg = mock.Mock(return_value=[])
-
- self.assertIsInstance(dpdk_vnf_setup_env_helper.setup_vnf_environment(), ResourceProfile)
-
- def test__setup_dpdk_early_success(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- ssh_helper.execute.return_value = 0, 'output', ''
- ssh_helper.join_bin_path.return_value = 'joined_path'
- ssh_helper.provision_tool.return_value = 'provision string'
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- dpdk_setup_helper._setup_hugepages = mock.Mock()
-
- self.assertIsNone(dpdk_setup_helper._setup_dpdk())
- self.assertEqual(dpdk_setup_helper.ssh_helper.execute.call_count, 2)
-
- @mock.patch('yardstick.ssh.SSH')
- def test__setup_dpdk_short(self, _):
- def execute_side(cmd):
- if 'joined_path' in cmd:
- return 0, 'output', ''
- return 1, 'bad output', 'error output'
-
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- ssh_helper.execute.side_effect = execute_side
- ssh_helper.join_bin_path.return_value = 'joined_path'
- ssh_helper.provision_tool.return_value = 'provision string'
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- dpdk_setup_helper._setup_hugepages = mock.Mock()
-
- self.assertIsNone(dpdk_setup_helper._setup_dpdk())
- self.assertEqual(dpdk_setup_helper.ssh_helper.execute.call_count, 3)
-
- @mock.patch('yardstick.ssh.SSH')
- def test__setup_resources(self, _):
- vnfd_helper = VnfdHelper(deepcopy(self.VNFD_0))
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- dpdk_setup_helper._validate_cpu_cfg = mock.Mock()
-
- dpdk_setup_helper.bound_pci = [v['virtual-interface']["vpci"] for v in
- vnfd_helper.interfaces]
- result = dpdk_setup_helper._setup_resources()
- self.assertIsInstance(result, ResourceProfile)
- self.assertEqual(dpdk_setup_helper.socket, 0)
-
- @mock.patch('yardstick.ssh.SSH')
- def test__setup_resources_socket_1(self, _):
- vnfd_helper = VnfdHelper(deepcopy(self.VNFD_0))
- vnfd_helper.interfaces[0]['virtual-interface']['vpci'] = '0000:55:00.0'
- vnfd_helper.interfaces[1]['virtual-interface']['vpci'] = '0000:35:00.0'
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- dpdk_setup_helper._validate_cpu_cfg = mock.Mock()
-
- dpdk_setup_helper.bound_pci = [v['virtual-interface']["vpci"] for v in
- vnfd_helper.interfaces]
- result = dpdk_setup_helper._setup_resources()
- self.assertIsInstance(result, ResourceProfile)
- self.assertEqual(dpdk_setup_helper.socket, 1)
-
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.time')
- def test__detect_and_bind_drivers(self, *args):
- vnfd_helper = VnfdHelper(deepcopy(self.VNFD_0))
- ssh_helper = mock.Mock()
- # ssh_helper.execute = mock.Mock(return_value = (0, 'text', ''))
- # ssh_helper.execute.return_value = 0, 'output', ''
- scenario_helper = mock.Mock()
- rv = ['0000:05:00.1', '0000:05:00.0']
-
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- dpdk_setup_helper.dpdk_bind_helper._get_bound_pci_addresses = mock.Mock(return_value=rv)
- dpdk_setup_helper.dpdk_bind_helper.bind = mock.Mock()
- dpdk_setup_helper.dpdk_bind_helper.read_status = mock.Mock()
-
- self.assertIsNone(dpdk_setup_helper._detect_and_bind_drivers())
-
- intf_0 = vnfd_helper.vdu[0]['external-interface'][0]['virtual-interface']
- intf_1 = vnfd_helper.vdu[0]['external-interface'][1]['virtual-interface']
- self.assertEquals(0, intf_0['dpdk_port_num'])
- self.assertEquals(1, intf_1['dpdk_port_num'])
-
- def test_tear_down(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- dpdk_setup_helper.dpdk_bind_helper.bind = mock.Mock()
- dpdk_setup_helper.dpdk_bind_helper.used_drivers = {
- 'd1': ['0000:05:00.0'],
- 'd3': ['0000:05:01.0'],
- }
-
- self.assertIsNone(dpdk_setup_helper.tear_down())
- dpdk_setup_helper.dpdk_bind_helper.bind.assert_any_call(['0000:05:00.0'], 'd1', True)
- dpdk_setup_helper.dpdk_bind_helper.bind.assert_any_call(['0000:05:01.0'], 'd3', True)
-
-
-class TestResourceHelper(unittest.TestCase):
-
- VNFD_0 = {
- 'short-name': 'VpeVnf',
- 'vdu': [
- {
- 'routing_table': [
- {
- 'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'
- },
- {
- 'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'
- },
- ],
- 'description': 'VPE approximation using DPDK',
- 'name': 'vpevnf-baremetal',
- 'nd_route_tbl': [
- {
- 'network': '0064:ff9b:0:0:0:0:9810:6414',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
- 'if': 'xe0'
- },
- {
- 'network': '0064:ff9b:0:0:0:0:9810:2814',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
- 'if': 'xe1'
- },
- ],
- 'id': 'vpevnf-baremetal',
- 'external-interface': [
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:05:00.0',
- 'driver': 'i40e',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 0,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.100.20',
- 'local_mac': '00:00:00:00:00:01'
- },
- 'vnfd-connection-point-ref': 'xe0',
- 'name': 'xe0'
- },
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.1',
- 'driver': 'ixgbe',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 1,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_mac': '00:00:00:00:00:02'
- },
- 'vnfd-connection-point-ref': 'xe1',
- 'name': 'xe1'
- },
- ],
- },
- ],
- 'description': 'Vpe approximation using DPDK',
- 'mgmt-interface': {
- 'vdu-id': 'vpevnf-baremetal',
- 'host': '1.1.1.1',
- 'password': 'r00t',
- 'user': 'root',
- 'ip': '1.1.1.1'
- },
- 'benchmark': {
- 'kpi': [
- 'packets_in',
- 'packets_fwd',
- 'packets_dropped',
- ],
- },
- 'connection-point': [
- {
- 'type': 'VPORT',
- 'name': 'xe0',
- },
- {
- 'type': 'VPORT',
- 'name': 'xe1',
- },
- ],
- 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
- }
-
- def test_setup(self):
- resource = object()
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- dpdk_setup_helper.setup_vnf_environment = mock.Mock(return_value=resource)
- resource_helper = ResourceHelper(dpdk_setup_helper)
-
- self.assertIsNone(resource_helper.setup())
- self.assertIs(resource_helper.resource, resource)
-
- def test_generate_cfg(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- resource_helper = ResourceHelper(dpdk_setup_helper)
-
- self.assertIsNone(resource_helper.generate_cfg())
-
- def test_stop_collect(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- resource_helper = ResourceHelper(dpdk_setup_helper)
- resource_helper.resource = mock.Mock()
-
- self.assertIsNone(resource_helper.stop_collect())
-
- def test_stop_collect_none(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- resource_helper = ResourceHelper(dpdk_setup_helper)
- resource_helper.resource = None
-
- self.assertIsNone(resource_helper.stop_collect())
-
-
-class TestClientResourceHelper(unittest.TestCase):
-
- VNFD_0 = {
- 'short-name': 'VpeVnf',
- 'vdu': [
- {
- 'routing_table': [
- {
- 'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'
- },
- {
- 'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'
- },
- ],
- 'description': 'VPE approximation using DPDK',
- 'name': 'vpevnf-baremetal',
- 'nd_route_tbl': [
- {
- 'network': '0064:ff9b:0:0:0:0:9810:6414',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
- 'if': 'xe0'
- },
- {
- 'network': '0064:ff9b:0:0:0:0:9810:2814',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
- 'if': 'xe1'
- },
- ],
- 'id': 'vpevnf-baremetal',
- 'external-interface': [
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:05:00.0',
- 'driver': 'i40e',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 0,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.100.20',
- 'local_mac': '00:00:00:00:00:01',
- 'vld_id': 'uplink_0',
- 'ifname': 'xe0',
- },
- 'vnfd-connection-point-ref': 'xe0',
- 'name': 'xe0'
- },
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.1',
- 'driver': 'ixgbe',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 1,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_mac': '00:00:00:00:00:02',
- 'vld_id': 'downlink_0',
- 'ifname': 'xe1',
- },
- 'vnfd-connection-point-ref': 'xe1',
- 'name': 'xe1'
- },
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:13',
- 'vpci': '0000:05:00.2',
- 'driver': 'ixgbe',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 2,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.30',
- 'local_mac': '00:00:00:00:00:11'
- },
- 'vnfd-connection-point-ref': 'xe2',
- 'name': 'xe2'
- },
- ],
- },
- ],
- 'description': 'Vpe approximation using DPDK',
- 'mgmt-interface': {
- 'vdu-id': 'vpevnf-baremetal',
- 'host': '1.1.1.1',
- 'password': 'r00t',
- 'user': 'root',
- 'ip': '1.1.1.1'
- },
- 'benchmark': {
- 'kpi': [
- 'packets_in',
- 'packets_fwd',
- 'packets_dropped',
- ],
- },
- 'connection-point': [
- {
- 'type': 'VPORT',
- 'name': 'xe0',
- },
- {
- 'type': 'VPORT',
- 'name': 'xe1',
- },
- ],
- 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
- }
-
- VNFD = {
- 'vnfd:vnfd-catalog': {
- 'vnfd': [
- VNFD_0,
- ],
- },
- }
-
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.LOG')
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.STLError',
- new_callable=lambda: MockError)
- def test_get_stats_not_connected(self, mock_state_error, *args):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- client_resource_helper = ClientResourceHelper(dpdk_setup_helper)
- client_resource_helper.client = mock.MagicMock()
- client_resource_helper.client.get_stats.side_effect = mock_state_error
-
- self.assertEqual(client_resource_helper.get_stats(), {})
- self.assertEqual(client_resource_helper.client.get_stats.call_count, 1)
-
- def test_generate_samples(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- client_resource_helper = ClientResourceHelper(dpdk_setup_helper)
- client_resource_helper.client = mock.MagicMock()
- client_resource_helper.client.get_stats.return_value = {
- 0: {
- 'rx_pps': 5.5,
- 'tx_pps': 4.9,
- 'rx_bps': 234.78,
- 'tx_bps': 243.11,
- 'ipackets': 34251,
- 'opackets': 52342,
- },
- 1: {
- 'tx_pps': 5.9,
- 'rx_bps': 434.78,
- 'opackets': 48791,
- },
- }
-
- expected = {
- 'xe0': {
- "rx_throughput_fps": 5.5,
- "tx_throughput_fps": 4.9,
- "rx_throughput_mbps": 234.78,
- "tx_throughput_mbps": 243.11,
- "in_packets": 34251,
- "out_packets": 52342,
- },
- 'xe1': {
- "rx_throughput_fps": 0.0,
- "tx_throughput_fps": 5.9,
- "rx_throughput_mbps": 434.78,
- "tx_throughput_mbps": 0.0,
- "in_packets": 0,
- "out_packets": 48791,
- },
- }
- ports = vnfd_helper.port_nums(vnfd_helper.port_pairs.all_ports)
- result = client_resource_helper.generate_samples(ports)
- self.assertDictEqual(result, expected)
-
- def test_generate_samples_with_key(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- client_resource_helper = ClientResourceHelper(dpdk_setup_helper)
- client_resource_helper.client = mock.MagicMock()
- client_resource_helper.client.get_stats.return_value = {
- 'key_name': 'key_value',
- 0: {
- 'rx_pps': 5.5,
- 'tx_pps': 4.9,
- 'rx_bps': 234.78,
- 'tx_bps': 243.11,
- 'ipackets': 34251,
- 'opackets': 52342,
- },
- 1: {
- 'tx_pps': 5.9,
- 'rx_bps': 434.78,
- 'opackets': 48791,
- },
- }
-
- expected = {
- 'xe0': {
- 'key_name': 'key_value',
- "rx_throughput_fps": 5.5,
- "tx_throughput_fps": 4.9,
- "rx_throughput_mbps": 234.78,
- "tx_throughput_mbps": 243.11,
- "in_packets": 34251,
- "out_packets": 52342,
- },
- 'xe1': {
- 'key_name': 'key_value',
- "rx_throughput_fps": 0.0,
- "tx_throughput_fps": 5.9,
- "rx_throughput_mbps": 434.78,
- "tx_throughput_mbps": 0.0,
- "in_packets": 0,
- "out_packets": 48791,
- },
- }
- ports = vnfd_helper.port_nums(vnfd_helper.port_pairs.all_ports)
- result = client_resource_helper.generate_samples(ports, 'key_name')
- self.assertDictEqual(result, expected)
-
- def test_generate_samples_with_key_and_default(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- client_resource_helper = ClientResourceHelper(dpdk_setup_helper)
- client_resource_helper.client = mock.MagicMock()
- client_resource_helper.client.get_stats.return_value = {
- 0: {
- 'rx_pps': 5.5,
- 'tx_pps': 4.9,
- 'rx_bps': 234.78,
- 'tx_bps': 243.11,
- 'ipackets': 34251,
- 'opackets': 52342,
- },
- 1: {
- 'tx_pps': 5.9,
- 'rx_bps': 434.78,
- 'opackets': 48791,
- },
- }
-
- expected = {
- 'xe0': {
- 'key_name': 'default',
- "rx_throughput_fps": 5.5,
- "tx_throughput_fps": 4.9,
- "rx_throughput_mbps": 234.78,
- "tx_throughput_mbps": 243.11,
- "in_packets": 34251,
- "out_packets": 52342,
- },
- 'xe1': {
- 'key_name': 'default',
- "rx_throughput_fps": 0.0,
- "tx_throughput_fps": 5.9,
- "rx_throughput_mbps": 434.78,
- "tx_throughput_mbps": 0.0,
- "in_packets": 0,
- "out_packets": 48791,
- },
- }
- ports = vnfd_helper.port_nums(vnfd_helper.port_pairs.all_ports)
- result = client_resource_helper.generate_samples(ports, 'key_name', 'default')
- self.assertDictEqual(result, expected)
-
- def test_clear_stats(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- client_resource_helper = ClientResourceHelper(dpdk_setup_helper)
- client_resource_helper.client = mock.Mock()
-
- self.assertIsNone(client_resource_helper.clear_stats())
- self.assertEqual(client_resource_helper.client.clear_stats.call_count, 1)
-
- def test_clear_stats_of_ports(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- client_resource_helper = ClientResourceHelper(dpdk_setup_helper)
- client_resource_helper.client = mock.Mock()
-
- self.assertIsNone(client_resource_helper.clear_stats([3, 4]))
- self.assertEqual(client_resource_helper.client.clear_stats.call_count, 1)
-
- def test_start(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- client_resource_helper = ClientResourceHelper(dpdk_setup_helper)
- client_resource_helper.client = mock.Mock()
-
- self.assertIsNone(client_resource_helper.start())
- self.assertEqual(client_resource_helper.client.start.call_count, 1)
-
- def test_start_ports(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- client_resource_helper = ClientResourceHelper(dpdk_setup_helper)
- client_resource_helper.client = mock.Mock()
-
- self.assertIsNone(client_resource_helper.start([3, 4]))
- self.assertEqual(client_resource_helper.client.start.call_count, 1)
-
- def test_collect_kpi_with_queue(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- client_resource_helper = ClientResourceHelper(dpdk_setup_helper)
- client_resource_helper._result = {'existing': 43, 'replaceable': 12}
- client_resource_helper._queue = mock.Mock()
- client_resource_helper._queue.empty.return_value = False
- client_resource_helper._queue.get.return_value = {'incoming': 34, 'replaceable': 99}
-
- expected = {
- 'existing': 43,
- 'incoming': 34,
- 'replaceable': 99,
- }
- result = client_resource_helper.collect_kpi()
- self.assertDictEqual(result, expected)
-
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.time')
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.LOG')
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.STLError',
- new_callable=lambda: MockError)
- def test__connect_with_failures(self, mock_error, *args):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- ssh_helper = mock.Mock()
- scenario_helper = mock.Mock()
- dpdk_setup_helper = DpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
- client_resource_helper = ClientResourceHelper(dpdk_setup_helper)
- client = mock.MagicMock()
- client.connect.side_effect = mock_error
-
- self.assertIs(client_resource_helper._connect(client), client)
-
-
-class TestRfc2544ResourceHelper(unittest.TestCase):
-
- RFC2544_CFG_1 = {
- 'latency': True,
- 'correlated_traffic': True,
- 'allowed_drop_rate': '0.1 - 0.15',
- }
-
- RFC2544_CFG_2 = {
- 'allowed_drop_rate': ' 0.25 - 0.05 ',
- }
-
- RFC2544_CFG_3 = {
- 'allowed_drop_rate': '0.2',
- }
-
- RFC2544_CFG_4 = {
- 'latency': True,
- }
-
- SCENARIO_CFG_1 = {
- 'options': {
- 'rfc2544': RFC2544_CFG_1,
- }
- }
-
- SCENARIO_CFG_2 = {
- 'options': {
- 'rfc2544': RFC2544_CFG_2,
- }
- }
-
- SCENARIO_CFG_3 = {
- 'options': {
- 'rfc2544': RFC2544_CFG_3,
- }
- }
-
- SCENARIO_CFG_4 = {
- 'options': {
- 'rfc2544': RFC2544_CFG_4,
- }
- }
-
- def test_property_rfc2544(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_1
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertIsNone(rfc2544_resource_helper._rfc2544)
- self.assertDictEqual(rfc2544_resource_helper.rfc2544, self.RFC2544_CFG_1)
- self.assertDictEqual(rfc2544_resource_helper._rfc2544, self.RFC2544_CFG_1)
- scenario_helper.scenario_cfg = {} # ensure that resource_helper caches
- self.assertDictEqual(rfc2544_resource_helper.rfc2544, self.RFC2544_CFG_1)
-
- def test_property_tolerance_high(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_1
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertIsNone(rfc2544_resource_helper._tolerance_high)
- self.assertEqual(rfc2544_resource_helper.tolerance_high, 0.15)
- self.assertEqual(rfc2544_resource_helper._tolerance_high, 0.15)
- scenario_helper.scenario_cfg = {} # ensure that resource_helper caches
- self.assertEqual(rfc2544_resource_helper.tolerance_high, 0.15)
-
- def test_property_tolerance_low(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_1
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertIsNone(rfc2544_resource_helper._tolerance_low)
- self.assertEqual(rfc2544_resource_helper.tolerance_low, 0.1)
- self.assertEqual(rfc2544_resource_helper._tolerance_low, 0.1)
- scenario_helper.scenario_cfg = {} # ensure that resource_helper caches
- self.assertEqual(rfc2544_resource_helper.tolerance_low, 0.1)
-
- def test_property_tolerance_high_range_swap(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_2
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertEqual(rfc2544_resource_helper.tolerance_high, 0.25)
-
- def test_property_tolerance_low_range_swap(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_2
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertEqual(rfc2544_resource_helper.tolerance_low, 0.05)
-
- def test_property_tolerance_high_not_range(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_3
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertEqual(rfc2544_resource_helper.tolerance_high, 0.2)
-
- def test_property_tolerance_low_not_range(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_3
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertEqual(rfc2544_resource_helper.tolerance_low, 0.2)
-
- def test_property_tolerance_high_default(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_4
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertEqual(rfc2544_resource_helper.tolerance_high, 0.0001)
-
- def test_property_tolerance_low_default(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_4
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertEqual(rfc2544_resource_helper.tolerance_low, 0.0001)
-
- def test_property_latency(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_1
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertIsNone(rfc2544_resource_helper._latency)
- self.assertTrue(rfc2544_resource_helper.latency)
- self.assertTrue(rfc2544_resource_helper._latency)
- scenario_helper.scenario_cfg = {} # ensure that resource_helper caches
- self.assertTrue(rfc2544_resource_helper.latency)
-
- def test_property_latency_default(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_2
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertFalse(rfc2544_resource_helper.latency)
-
- def test_property_correlated_traffic(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_1
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertIsNone(rfc2544_resource_helper._correlated_traffic)
- self.assertTrue(rfc2544_resource_helper.correlated_traffic)
- self.assertTrue(rfc2544_resource_helper._correlated_traffic)
- scenario_helper.scenario_cfg = {} # ensure that resource_helper caches
- self.assertTrue(rfc2544_resource_helper.correlated_traffic)
-
- def test_property_correlated_traffic_default(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = self.SCENARIO_CFG_2
- rfc2544_resource_helper = Rfc2544ResourceHelper(scenario_helper)
-
- self.assertFalse(rfc2544_resource_helper.correlated_traffic)
-
-
-class TestSampleVNFDeployHelper(unittest.TestCase):
-
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.time')
- @mock.patch('subprocess.check_output')
- def test_deploy_vnfs_disabled(self, *args):
- vnfd_helper = mock.Mock()
- ssh_helper = mock.Mock()
- ssh_helper.join_bin_path.return_value = 'joined_path'
- ssh_helper.execute.return_value = 1, 'bad output', 'error output'
- ssh_helper.put.return_value = None
- sample_vnf_deploy_helper = SampleVNFDeployHelper(vnfd_helper, ssh_helper)
-
- self.assertIsNone(sample_vnf_deploy_helper.deploy_vnfs('name1'))
- sample_vnf_deploy_helper.DISABLE_DEPLOY = True
- self.assertEqual(ssh_helper.execute.call_count, 5)
- self.assertEqual(ssh_helper.put.call_count, 1)
-
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.time')
- @mock.patch('subprocess.check_output')
- def test_deploy_vnfs(self, *args):
- vnfd_helper = mock.Mock()
- ssh_helper = mock.Mock()
- ssh_helper.join_bin_path.return_value = 'joined_path'
- ssh_helper.execute.return_value = 1, 'bad output', 'error output'
- ssh_helper.put.return_value = None
- sample_vnf_deploy_helper = SampleVNFDeployHelper(vnfd_helper, ssh_helper)
- sample_vnf_deploy_helper.DISABLE_DEPLOY = False
-
- self.assertIsNone(sample_vnf_deploy_helper.deploy_vnfs('name1'))
- self.assertEqual(ssh_helper.execute.call_count, 5)
- self.assertEqual(ssh_helper.put.call_count, 1)
-
- @mock.patch('subprocess.check_output')
- def test_deploy_vnfs_early_success(self, *args):
- vnfd_helper = mock.Mock()
- ssh_helper = mock.Mock()
- ssh_helper.join_bin_path.return_value = 'joined_path'
- ssh_helper.execute.return_value = 0, 'output', ''
- ssh_helper.put.return_value = None
- sample_vnf_deploy_helper = SampleVNFDeployHelper(vnfd_helper, ssh_helper)
- sample_vnf_deploy_helper.DISABLE_DEPLOY = False
-
- self.assertIsNone(sample_vnf_deploy_helper.deploy_vnfs('name1'))
- self.assertEqual(ssh_helper.execute.call_count, 1)
- self.assertEqual(ssh_helper.put.call_count, 0)
-
-
-class TestScenarioHelper(unittest.TestCase):
-
- def test_property_task_path(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = {
- 'task_path': 'my_path',
- }
-
- self.assertEqual(scenario_helper.task_path, 'my_path')
-
- def test_property_nodes(self):
- nodes = ['node1', 'node2']
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = {
- 'nodes': nodes,
- }
-
- self.assertEqual(scenario_helper.nodes, nodes)
-
- def test_property_all_options(self):
- data = {
- 'name1': {
- 'key3': 'value3',
- },
- 'name2': {}
- }
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = {
- 'options': data,
- }
-
- self.assertDictEqual(scenario_helper.all_options, data)
-
- def test_property_options(self):
- data = {
- 'key1': 'value1',
- 'key2': 'value2',
- }
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = {
- 'options': {
- 'name1': data,
- },
- }
-
- self.assertDictEqual(scenario_helper.options, data)
-
- def test_property_vnf_cfg(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = {
- 'options': {
- 'name1': {
- 'vnf_config': 'my_config',
- },
- },
- }
-
- self.assertEqual(scenario_helper.vnf_cfg, 'my_config')
-
- def test_property_vnf_cfg_default(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = {
- 'options': {
- 'name1': {},
- },
- }
-
- self.assertDictEqual(scenario_helper.vnf_cfg, ScenarioHelper.DEFAULT_VNF_CFG)
-
- def test_property_topology(self):
- scenario_helper = ScenarioHelper('name1')
- scenario_helper.scenario_cfg = {
- 'topology': 'my_topology',
- }
-
- self.assertEqual(scenario_helper.topology, 'my_topology')
-
-
-class TestSampleVnf(unittest.TestCase):
-
- VNFD_0 = {
- 'short-name': 'VpeVnf',
- 'vdu': [
- {
- 'routing_table': [
- {
- 'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'
- },
- {
- 'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'
- },
- ],
- 'description': 'VPE approximation using DPDK',
- 'name': 'vpevnf-baremetal',
- 'nd_route_tbl': [
- {
- 'network': '0064:ff9b:0:0:0:0:9810:6414',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
- 'if': 'xe0'
- },
- {
- 'network': '0064:ff9b:0:0:0:0:9810:2814',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
- 'if': 'xe1'
- },
- ],
- 'id': 'vpevnf-baremetal',
- 'external-interface': [
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:05:00.0',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 0,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.100.20',
- 'local_mac': '00:00:00:00:00:01'
- },
- 'vnfd-connection-point-ref': 'xe0',
- 'name': 'xe0'
- },
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.1',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 1,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_mac': '00:00:00:00:00:02'
- },
- 'vnfd-connection-point-ref': 'xe1',
- 'name': 'xe1'
- },
- ],
- },
- ],
- 'description': 'Vpe approximation using DPDK',
- 'mgmt-interface': {
- 'vdu-id': 'vpevnf-baremetal',
- 'host': '1.1.1.1',
- 'password': 'r00t',
- 'user': 'root',
- 'ip': '1.1.1.1'
- },
- 'benchmark': {
- 'kpi': [
- 'packets_in',
- 'packets_fwd',
- 'packets_dropped',
- ],
- },
- 'connection-point': [
- {
- 'type': 'VPORT',
- 'name': 'xe0',
- },
- {
- 'type': 'VPORT',
- 'name': 'xe1',
- },
- ],
- 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
- }
-
- VNFD = {
- 'vnfd:vnfd-catalog': {
- 'vnfd': [
- VNFD_0,
- ]
- }
- }
-
- TRAFFIC_PROFILE = {
- "schema": "isb:traffic_profile:0.1",
- "name": "fixed",
- "description": "Fixed traffic profile to run UDP traffic",
- "traffic_profile": {
- "traffic_type": "FixedTraffic",
- "frame_rate": 100, # pps
- "flow_number": 10,
- "frame_size": 64,
- },
- }
-
- def test___init__(self):
- sample_vnf = SampleVNF('vnf1', self.VNFD_0)
-
- self.assertEqual(sample_vnf.name, 'vnf1')
- self.assertDictEqual(sample_vnf.vnfd_helper, self.VNFD_0)
-
- # test the default setup helper is SetupEnvHelper, not subclass
- self.assertEqual(type(sample_vnf.setup_helper), SetupEnvHelper)
-
- # test the default resource helper is ResourceHelper, not subclass
- self.assertEqual(type(sample_vnf.resource_helper), ResourceHelper)
-
- def test___init___alt_types(self):
- class MySetupEnvHelper(SetupEnvHelper):
- pass
-
- class MyResourceHelper(ResourceHelper):
- pass
-
- sample_vnf = SampleVNF('vnf1', self.VNFD_0, MySetupEnvHelper, MyResourceHelper)
-
- self.assertEqual(sample_vnf.name, 'vnf1')
- self.assertDictEqual(sample_vnf.vnfd_helper, self.VNFD_0)
-
- # test the default setup helper is MySetupEnvHelper, not subclass
- self.assertEqual(type(sample_vnf.setup_helper), MySetupEnvHelper)
-
- # test the default resource helper is MyResourceHelper, not subclass
- self.assertEqual(type(sample_vnf.resource_helper), MyResourceHelper)
-
- def test__get_port0localip6(self):
- sample_vnf = SampleVNF('vnf1', self.VNFD_0)
- expected = '0064:ff9b:0:0:0:0:9810:6414'
- result = sample_vnf._get_port0localip6()
- self.assertEqual(result, expected)
-
- def test__get_port1localip6(self):
- sample_vnf = SampleVNF('vnf1', self.VNFD_0)
- expected = '0064:ff9b:0:0:0:0:9810:2814'
- result = sample_vnf._get_port1localip6()
- self.assertEqual(result, expected)
-
- def test__get_port0prefixip6(self):
- sample_vnf = SampleVNF('vnf1', self.VNFD_0)
- expected = '112'
- result = sample_vnf._get_port0prefixlen6()
- self.assertEqual(result, expected)
-
- def test__get_port1prefixip6(self):
- sample_vnf = SampleVNF('vnf1', self.VNFD_0)
- expected = '112'
- result = sample_vnf._get_port1prefixlen6()
- self.assertEqual(result, expected)
-
- def test__get_port0gateway6(self):
- sample_vnf = SampleVNF('vnf1', self.VNFD_0)
- expected = '0064:ff9b:0:0:0:0:9810:6414'
- result = sample_vnf._get_port0gateway6()
- self.assertEqual(result, expected)
-
- def test__get_port1gateway6(self):
- sample_vnf = SampleVNF('vnf1', self.VNFD_0)
- expected = '0064:ff9b:0:0:0:0:9810:2814'
- result = sample_vnf._get_port1gateway6()
- self.assertEqual(result, expected)
-
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.Process')
- def test__start_vnf(self, *args):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
- sample_vnf._run = mock.Mock()
-
- self.assertIsNone(sample_vnf.queue_wrapper)
- self.assertIsNone(sample_vnf._vnf_process)
- self.assertIsNone(sample_vnf._start_vnf())
- self.assertIsNotNone(sample_vnf.queue_wrapper)
- self.assertIsNotNone(sample_vnf._vnf_process)
-
- @mock.patch("yardstick.ssh.SSH")
- def test_instantiate(self, ssh):
- mock_ssh(ssh)
-
- nodes = {
- 'vnf1': 'name1',
- 'vnf2': 'name2',
- }
-
- context1 = mock.Mock()
- context1._get_server.return_value = None
- context2 = mock.Mock()
- context2._get_server.return_value = context2
-
- try:
- Context.list.clear()
- except AttributeError:
- # clear() but works in Py2.7
- Context.list[:] = []
-
- Context.list.extend([
- context1,
- context2,
- ])
-
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
- sample_vnf.APP_NAME = 'sample1'
- sample_vnf._start_server = mock.Mock(return_value=0)
- sample_vnf._vnf_process = mock.MagicMock()
- sample_vnf._vnf_process._is_alive.return_value = 1
- sample_vnf.ssh_helper = mock.MagicMock()
- sample_vnf.deploy_helper = mock.MagicMock()
- sample_vnf.resource_helper.ssh_helper = mock.MagicMock()
- scenario_cfg = {
- 'nodes': nodes,
- }
-
- self.assertIsNone(sample_vnf.instantiate(scenario_cfg, {}))
- self.assertEqual(sample_vnf.nfvi_context, context2)
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
- @mock.patch("yardstick.ssh.SSH")
- def test_wait_for_instantiate_empty_queue(self, ssh, *args):
- mock_ssh(ssh, exec_result=(1, "", ""))
-
- queue_size_list = [
- 0,
- 1,
- 0,
- 1,
- ]
-
- queue_get_list = [
- 'some output',
- 'pipeline> ',
- ]
-
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
- sample_vnf.APP_NAME = 'sample1'
- sample_vnf.WAIT_TIME_FOR_SCRIPT = 0
- sample_vnf._start_server = mock.Mock(return_value=0)
- sample_vnf._vnf_process = mock.MagicMock()
- sample_vnf._vnf_process.exitcode = 0
- sample_vnf._vnf_process._is_alive.return_value = 1
- sample_vnf.queue_wrapper = mock.Mock()
- sample_vnf.q_out = mock.Mock()
- sample_vnf.q_out.qsize.side_effect = iter(queue_size_list)
- sample_vnf.q_out.get.side_effect = iter(queue_get_list)
- sample_vnf.ssh_helper = mock.MagicMock()
- sample_vnf.resource_helper.ssh_helper = mock.MagicMock()
- sample_vnf.resource_helper.start_collect = mock.MagicMock()
-
- self.assertEqual(sample_vnf.wait_for_instantiate(), 0)
-
- def test__build_ports(self):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
-
- self.assertIsNone(sample_vnf._build_ports())
- self.assertIsNotNone(sample_vnf.networks)
- self.assertIsNotNone(sample_vnf.uplink_ports)
- self.assertIsNotNone(sample_vnf.downlink_ports)
- self.assertIsNotNone(sample_vnf.my_ports)
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
- def test_vnf_execute_with_queue_data(self, *args):
- queue_size_list = [
- 1,
- 1,
- 0,
- ]
-
- queue_get_list = [
- 'hello ',
- 'world'
- ]
-
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
- sample_vnf.APP_NAME = 'sample1'
- sample_vnf.q_out = mock.Mock()
- sample_vnf.q_out.qsize.side_effect = iter(queue_size_list)
- sample_vnf.q_out.get.side_effect = iter(queue_get_list)
-
- self.assertEqual(sample_vnf.vnf_execute('my command'), 'hello world')
-
- def test_terminate_without_vnf_process(self):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
- sample_vnf.APP_NAME = 'sample1'
- sample_vnf.vnf_execute = mock.Mock()
- sample_vnf.ssh_helper = mock.Mock()
- sample_vnf._tear_down = mock.Mock()
- sample_vnf.resource_helper = mock.Mock()
-
- self.assertIsNone(sample_vnf.terminate())
-
- def test_get_stats(self):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
- sample_vnf.APP_NAME = 'sample1'
- sample_vnf.APP_WORD = 'sample1'
- sample_vnf.vnf_execute = mock.Mock(return_value='the stats')
-
- self.assertEqual(sample_vnf.get_stats(), 'the stats')
-
- def test_collect_kpi(self):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
- sample_vnf.APP_NAME = 'sample1'
- sample_vnf.COLLECT_KPI = r'\s(\d+)\D*(\d+)\D*(\d+)'
- sample_vnf.COLLECT_MAP = {
- 'k1': 3,
- 'k2': 1,
- 'k3': 2,
- }
- sample_vnf.get_stats = mock.Mock(return_value='index0: 34 -- 91, 27')
- sample_vnf.resource_helper = mock.Mock()
- sample_vnf.resource_helper.collect_kpi.return_value = {}
-
- expected = {
- 'k1': 27,
- 'k2': 34,
- 'k3': 91,
- 'collect_stats': {},
- }
- result = sample_vnf.collect_kpi()
- self.assertDictEqual(result, expected)
-
- def test_collect_kpi_default(self):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
- sample_vnf.APP_NAME = 'sample1'
- sample_vnf.COLLECT_KPI = r'\s(\d+)\D*(\d+)\D*(\d+)'
- sample_vnf.get_stats = mock.Mock(return_value='')
-
- expected = {
- 'packets_in': 0,
- 'packets_fwd': 0,
- 'packets_dropped': 0,
- }
- result = sample_vnf.collect_kpi()
- self.assertDictEqual(result, expected)
-
- def test_scale(self):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
- self.assertRaises(y_exceptions.FunctionNotImplemented,
- sample_vnf.scale)
-
- def test__run(self):
- test_cmd = 'test cmd'
- run_kwargs = {'arg1': 'val1', 'arg2': 'val2'}
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sample_vnf = SampleVNF('vnf1', vnfd)
- sample_vnf.ssh_helper = mock.Mock()
- sample_vnf.setup_helper = mock.Mock()
- with mock.patch.object(sample_vnf, '_build_config',
- return_value=test_cmd), \
- mock.patch.object(sample_vnf, '_build_run_kwargs'):
- sample_vnf.run_kwargs = run_kwargs
- sample_vnf._run()
- sample_vnf.ssh_helper.drop_connection.assert_called_once()
- sample_vnf.ssh_helper.run.assert_called_once_with(test_cmd,
- **run_kwargs)
- sample_vnf.setup_helper.kill_vnf.assert_called_once()
-
-
-class TestSampleVNFTrafficGen(unittest.TestCase):
-
- VNFD_0 = {
- 'short-name': 'VpeVnf',
- 'vdu': [
- {
- 'routing_table': [
- {
- 'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'
- },
- {
- 'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'
- },
- ],
- 'description': 'VPE approximation using DPDK',
- 'name': 'vpevnf-baremetal',
- 'nd_route_tbl': [
- {
- 'network': '0064:ff9b:0:0:0:0:9810:6414',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
- 'if': 'xe0'
- },
- {
- 'network': '0064:ff9b:0:0:0:0:9810:2814',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
- 'if': 'xe1'
- },
- ],
- 'id': 'vpevnf-baremetal',
- 'external-interface': [
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:05:00.0',
- 'driver': 'i40e',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 0,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.100.20',
- 'local_mac': '00:00:00:00:00:01'
- },
- 'vnfd-connection-point-ref': 'xe0',
- 'name': 'xe0'
- },
- {
- 'virtual-interface': {
- 'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.1',
- 'driver': 'ixgbe',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 1,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_mac': '00:00:00:00:00:02'
- },
- 'vnfd-connection-point-ref': 'xe1',
- 'name': 'xe1'
- },
- ],
- },
- ],
- 'description': 'Vpe approximation using DPDK',
- 'mgmt-interface': {
- 'vdu-id': 'vpevnf-baremetal',
- 'host': '1.1.1.1',
- 'password': 'r00t',
- 'user': 'root',
- 'ip': '1.1.1.1'
- },
- 'benchmark': {
- 'kpi': [
- 'packets_in',
- 'packets_fwd',
- 'packets_dropped',
- ],
- },
- 'connection-point': [
- {
- 'type': 'VPORT',
- 'name': 'xe0',
- },
- {
- 'type': 'VPORT',
- 'name': 'xe1',
- },
- ],
- 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
- }
-
- VNFD = {
- 'vnfd:vnfd-catalog': {
- 'vnfd': [
- VNFD_0,
- ],
- },
- }
-
- TRAFFIC_PROFILE = {
- "schema": "isb:traffic_profile:0.1",
- "name": "fixed",
- "description": "Fixed traffic profile to run UDP traffic",
- "traffic_profile": {
- "traffic_type": "FixedTraffic",
- "frame_rate": 100, # pps
- "flow_number": 10,
- "frame_size": 64,
- },
- }
-
- def test__check_status(self):
- sample_vnf_tg = SampleVNFTrafficGen('tg1', self.VNFD_0)
-
- with self.assertRaises(NotImplementedError):
- sample_vnf_tg._check_status()
-
- def test_listen_traffic(self):
- sample_vnf_tg = SampleVNFTrafficGen('tg1', self.VNFD_0)
-
- sample_vnf_tg.listen_traffic(mock.Mock())
-
- def test_verify_traffic(self):
- sample_vnf_tg = SampleVNFTrafficGen('tg1', self.VNFD_0)
-
- sample_vnf_tg.verify_traffic(mock.Mock())
-
- def test_terminate(self):
- sample_vnf_tg = SampleVNFTrafficGen('tg1', self.VNFD_0)
- sample_vnf_tg._traffic_process = mock.Mock()
- sample_vnf_tg._tg_process = mock.Mock()
-
- sample_vnf_tg.terminate()
-
- def test__wait_for_process(self):
- sample_vnf_tg = SampleVNFTrafficGen('tg1', self.VNFD_0)
- with mock.patch.object(sample_vnf_tg, '_check_status',
- return_value=0) as mock_status, \
- mock.patch.object(sample_vnf_tg, '_tg_process') as mock_proc:
- mock_proc.is_alive.return_value = True
- mock_proc.exitcode = 234
- self.assertEqual(sample_vnf_tg._wait_for_process(), 234)
- mock_proc.is_alive.assert_called_once()
- mock_status.assert_called_once()
-
- def test__wait_for_process_not_alive(self):
- sample_vnf_tg = SampleVNFTrafficGen('tg1', self.VNFD_0)
- with mock.patch.object(sample_vnf_tg, '_tg_process') as mock_proc:
- mock_proc.is_alive.return_value = False
- self.assertRaises(RuntimeError, sample_vnf_tg._wait_for_process)
- mock_proc.is_alive.assert_called_once()
-
- def test__wait_for_process_delayed(self):
- sample_vnf_tg = SampleVNFTrafficGen('tg1', self.VNFD_0)
- with mock.patch.object(sample_vnf_tg, '_check_status',
- side_effect=[1, 0]) as mock_status, \
- mock.patch.object(sample_vnf_tg,
- '_tg_process') as mock_proc:
- mock_proc.is_alive.return_value = True
- mock_proc.exitcode = 234
- self.assertEqual(sample_vnf_tg._wait_for_process(), 234)
- mock_proc.is_alive.assert_has_calls([mock.call(), mock.call()])
- mock_status.assert_has_calls([mock.call(), mock.call()])
-
- def test_scale(self):
- sample_vnf_tg = SampleVNFTrafficGen('tg1', self.VNFD_0)
- self.assertRaises(y_exceptions.FunctionNotImplemented,
- sample_vnf_tg.scale)
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_tg_ixload.py b/tests/unit/network_services/vnf_generic/vnf/test_tg_ixload.py
deleted file mode 100644
index e6e4b882e..000000000
--- a/tests/unit/network_services/vnf_generic/vnf/test_tg_ixload.py
+++ /dev/null
@@ -1,320 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from __future__ import absolute_import
-
-import unittest
-import mock
-import subprocess
-
-from tests.unit import STL_MOCKS
-
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.tg_ixload import IxLoadTrafficGen
- from yardstick.network_services.vnf_generic.vnf.tg_ixload import IxLoadResourceHelper
- from yardstick.network_services.traffic_profile.base import TrafficProfile
-
-
-NAME = "tg__1"
-
-
-class TestIxLoadTrafficGen(unittest.TestCase):
- VNFD = {'vnfd:vnfd-catalog':
- {'vnfd':
- [{'short-name': 'VpeVnf',
- 'vdu':
- [{'routing_table':
- [{'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'},
- {'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'}],
- 'description': 'VPE approximation using DPDK',
- 'name': 'vpevnf-baremetal',
- 'nd_route_tbl':
- [{'network': '0064:ff9b:0:0:0:0:9810:6414',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
- 'if': 'xe0'},
- {'network': '0064:ff9b:0:0:0:0:9810:2814',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
- 'if': 'xe1'}],
- 'id': 'vpevnf-baremetal',
- 'external-interface':
- [{'virtual-interface':
- {'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.0',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 0,
- 'bandwidth': '10 Gbps',
- 'driver': "i40e",
- 'dst_ip': '152.16.100.20',
- 'local_iface_name': 'xe0',
- 'local_mac': '00:00:00:00:00:02'},
- 'vnfd-connection-point-ref': 'xe0',
- 'name': 'xe0'},
- {'virtual-interface':
- {'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:05:00.1',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'driver': "i40e",
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 1,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_iface_name': 'xe1',
- 'local_mac': '00:00:00:00:00:01'},
- 'vnfd-connection-point-ref': 'xe1',
- 'name': 'xe1'}]}],
- 'description': 'Vpe approximation using DPDK',
- 'mgmt-interface':
- {'vdu-id': 'vpevnf-baremetal',
- 'host': '1.1.1.1',
- 'password': 'r00t',
- 'user': 'root',
- 'ip': '1.1.1.1'},
- 'benchmark':
- {'kpi': ['packets_in', 'packets_fwd', 'packets_dropped']},
- 'connection-point': [{'type': 'VPORT', 'name': 'xe0'},
- {'type': 'VPORT', 'name': 'xe1'}],
- 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'}]}}
-
- TRAFFIC_PROFILE = {
- "schema": "isb:traffic_profile:0.1",
- "name": "fixed",
- "description": "Fixed traffic profile to run UDP traffic",
- "traffic_profile": {
- "traffic_type": "FixedTraffic",
- "frame_rate": 100, # pps
- "flow_number": 10,
- "frame_size": 64}}
-
- def test___init__(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
- self.assertIsNone(ixload_traffic_gen.resource_helper.data)
-
- def test_collect_kpi(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
- ixload_traffic_gen.data = {}
- restult = ixload_traffic_gen.collect_kpi()
- self.assertEqual({}, restult)
-
- def test_listen_traffic(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
- self.assertEqual(None, ixload_traffic_gen.listen_traffic({}))
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.makedirs")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.call")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.shutil")
- def test_instantiate(self, call, shutil, mock_makedirs):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh_mock.run = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
- scenario_cfg = {'tc': "nsb_test_case",
- 'ixia_profile': "ixload.cfg",
- 'task_path': "/path/to/task"}
- ixload_traffic_gen.RESULTS_MOUNT = "/tmp/result"
- shutil.copy = mock.Mock()
- scenario_cfg.update({'options': {'packetsize': 64, 'traffic_type': 4,
- 'rfc2544': {'allowed_drop_rate': '0.8 - 1'},
- 'vnf__1': {'rules': 'acl_1rule.yaml',
- 'vnf_config': {'lb_config': 'SW',
- 'lb_count': 1,
- 'worker_config':
- '1C/1T',
- 'worker_threads': 1}}
- }})
- with mock.patch('yardstick.benchmark.scenarios.networking.vnf_generic.open', create=True) as mock_open:
- mock_open.return_value = mock.MagicMock()
- ixload_traffic_gen.instantiate(scenario_cfg, {})
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.call")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.shutil")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.open")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.min")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.max")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.len")
- def test_run_traffic(self, call, shutil, main_open, min, max, len):
- mock_traffic_profile = mock.Mock(autospec=TrafficProfile)
- mock_traffic_profile.get_traffic_definition.return_value = "64"
- mock_traffic_profile.params = self.TRAFFIC_PROFILE
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh_mock.run = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- vnfd["mgmt-interface"].update({"tg-config": {}})
- vnfd["mgmt-interface"]["tg-config"].update({"ixchassis":
- "1.1.1.1"})
- vnfd["mgmt-interface"]["tg-config"].update({"py_bin_path":
- "/root"})
- sut = IxLoadTrafficGen(NAME, vnfd)
- sut.connection = mock.Mock()
- sut.connection.run = mock.Mock()
- sut._traffic_runner = mock.Mock(return_value=0)
- shutil.copy = mock.Mock()
- result = sut.run_traffic(mock_traffic_profile)
- self.assertIsNone(result)
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.call")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.shutil")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.open")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.min")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.max")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.len")
- def test_run_traffic_csv(self, call, shutil, main_open, min, max, len):
- mock_traffic_profile = mock.Mock(autospec=TrafficProfile)
- mock_traffic_profile.get_traffic_definition.return_value = "64"
- mock_traffic_profile.params = self.TRAFFIC_PROFILE
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh_mock.run = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- vnfd["mgmt-interface"].update({"tg-config": {}})
- vnfd["mgmt-interface"]["tg-config"].update({"ixchassis":
- "1.1.1.1"})
- vnfd["mgmt-interface"]["tg-config"].update({"py_bin_path":
- "/root"})
- sut = IxLoadTrafficGen(NAME, vnfd)
- sut.connection = mock.Mock()
- sut.connection.run = mock.Mock()
- sut._traffic_runner = mock.Mock(return_value=0)
- shutil.copy = mock.Mock()
- subprocess.call(["touch", "/tmp/1.csv"])
- sut.rel_bin_path = mock.Mock(return_value="/tmp/*.csv")
- result = sut.run_traffic(mock_traffic_profile)
- self.assertIsNone(result)
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.call")
- def test_terminate(self, call):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
- self.assertEqual(None, ixload_traffic_gen.terminate())
-
- @mock.patch("yardstick.ssh.SSH")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.call")
- def test_parse_csv_read(self, mock_call, mock_ssh):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- kpi_data = {
- 'HTTP Total Throughput (Kbps)': 1,
- 'HTTP Simulated Users': 2,
- 'HTTP Concurrent Connections': '3',
- 'HTTP Connection Rate': 4.3,
- 'HTTP Transaction Rate': True,
- }
- http_reader = [kpi_data]
-
- mock_ssh_type = mock.Mock(autospec=mock_ssh.SSH)
- mock_ssh_type.execute.return_value = 0, "", ""
- mock_ssh.from_node.return_value = mock_ssh_type
-
- ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
- result = ixload_traffic_gen.resource_helper.result
-
- ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
- for key_left, key_right in IxLoadResourceHelper.KPI_LIST.items():
- self.assertEqual(result[key_left][-1], int(kpi_data[key_right]))
-
- @mock.patch("yardstick.ssh.SSH")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.call")
- def test_parse_csv_read_value_error(self, mock_call, mock_ssh):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- http_reader = [{
- 'HTTP Total Throughput (Kbps)': 1,
- 'HTTP Simulated Users': 2,
- 'HTTP Concurrent Connections': "not a number",
- 'HTTP Connection Rate': 4,
- 'HTTP Transaction Rate': 5,
- }]
-
- mock_ssh_type = mock.Mock(autospec=mock_ssh.SSH)
- mock_ssh_type.execute.return_value = 0, "", ""
- mock_ssh.from_node.return_value = mock_ssh_type
-
- ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
- init_value = ixload_traffic_gen.resource_helper.result
-
- ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
- self.assertDictEqual(ixload_traffic_gen.resource_helper.result, init_value)
-
- @mock.patch("yardstick.ssh.SSH")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_ixload.call")
- def test_parse_csv_read_error(self, mock_call, mock_ssh):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- http_reader = [{
- 'HTTP Total Throughput (Kbps)': 1,
- 'HTTP Simulated Users': 2,
- 'HTTP Concurrent Connections': 3,
- 'HTTP Transaction Rate': 5,
- }]
-
- mock_ssh_type = mock.Mock(autospec=mock_ssh.SSH)
- mock_ssh_type.execute.return_value = 0, "", ""
- mock_ssh.from_node.return_value = mock_ssh_type
-
- ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
-
- with self.assertRaises(KeyError):
- ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py b/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py
deleted file mode 100644
index e9f718cb7..000000000
--- a/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py
+++ /dev/null
@@ -1,352 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-import os
-import unittest
-import mock
-
-from tests.unit import STL_MOCKS
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia import IxiaTrafficGen
- from yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia import IxiaRfc2544Helper
- from yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia import IxiaResourceHelper
- from yardstick.network_services.traffic_profile.base import TrafficProfile
-
-TEST_FILE_YAML = 'nsb_test_case.yaml'
-
-NAME = "tg__1"
-
-
-@mock.patch("yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia.IxNextgen")
-class TestIxiaResourceHelper(unittest.TestCase):
- def test___init___with_custom_rfc_helper(self, *args):
- class MyRfcHelper(IxiaRfc2544Helper):
- pass
-
- ixia_resource_helper = IxiaResourceHelper(mock.Mock(), MyRfcHelper)
- self.assertIsInstance(ixia_resource_helper.rfc_helper, MyRfcHelper)
-
- def test_stop_collect_with_client(self, *args):
- mock_client = mock.Mock()
-
- ixia_resource_helper = IxiaResourceHelper(mock.Mock())
-
- ixia_resource_helper.client = mock_client
- ixia_resource_helper.stop_collect()
- self.assertEqual(mock_client.ix_stop_traffic.call_count, 1)
-
-
-@mock.patch("yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia.IxNextgen")
-class TestIXIATrafficGen(unittest.TestCase):
- VNFD = {'vnfd:vnfd-catalog':
- {'vnfd':
- [{'short-name': 'VpeVnf',
- 'vdu':
- [{'routing_table':
- [{'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'},
- {'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'}],
- 'description': 'VPE approximation using DPDK',
- 'name': 'vpevnf-baremetal',
- 'nd_route_tbl':
- [{'network': '0064:ff9b:0:0:0:0:9810:6414',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
- 'if': 'xe0'},
- {'network': '0064:ff9b:0:0:0:0:9810:2814',
- 'netmask': '112',
- 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
- 'if': 'xe1'}],
- 'id': 'vpevnf-baremetal',
- 'external-interface':
- [{'virtual-interface':
- {'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.0',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 0,
- 'bandwidth': '10 Gbps',
- 'driver': "i40e",
- 'dst_ip': '152.16.100.20',
- 'local_iface_name': 'xe0',
- 'local_mac': '00:00:00:00:00:02'},
- 'vnfd-connection-point-ref': 'xe0',
- 'name': 'xe0'},
- {'virtual-interface':
- {'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:05:00.1',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'driver': "i40e",
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 1,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_iface_name': 'xe1',
- 'local_mac': '00:00:00:00:00:01'},
- 'vnfd-connection-point-ref': 'xe1',
- 'name': 'xe1'}]}],
- 'description': 'Vpe approximation using DPDK',
- 'mgmt-interface':
- {'vdu-id': 'vpevnf-baremetal',
- 'host': '1.1.1.1',
- 'password': 'r00t',
- 'user': 'root',
- 'ip': '1.1.1.1'},
- 'benchmark':
- {'kpi': ['packets_in', 'packets_fwd', 'packets_dropped']},
- 'connection-point': [{'type': 'VPORT', 'name': 'xe0'},
- {'type': 'VPORT', 'name': 'xe1'}],
- 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'}]}}
-
- TRAFFIC_PROFILE = {
- "schema": "isb:traffic_profile:0.1",
- "name": "fixed",
- "description": "Fixed traffic profile to run UDP traffic",
- "traffic_profile": {
- "traffic_type": "FixedTraffic",
- "frame_rate": 100, # pps
- "flow_number": 10,
- "frame_size": 64}}
-
- TC_YAML = {'scenarios': [{'tc_options':
- {'rfc2544': {'allowed_drop_rate': '0.8 - 1'}},
- 'runner': {'duration': 400,
- 'interval': 35, 'type': 'Duration'},
- 'traffic_options':
- {'flow': 'ipv4_1flow_Packets_vpe.yaml',
- 'imix': 'imix_voice.yaml'},
- 'vnf_options': {'vpe': {'cfg': 'vpe_config'}},
- 'traffic_profile': 'ipv4_throughput_vpe.yaml',
- 'type': 'NSPerf',
- 'nodes': {'tg__1': 'trafficgen_1.yardstick',
- 'vnf__1': 'vnf.yardstick'},
- 'topology': 'vpe_vnf_topology.yaml'}],
- 'context': {'nfvi_type': 'baremetal', 'type': 'Node',
- 'name': 'yardstick',
- 'file': '/etc/yardstick/nodes/pod.yaml'},
- 'schema': 'yardstick:task:0.1'}
-
- def test___init__(self, *args):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- # NOTE(ralonsoh): check the object returned.
- IxiaTrafficGen(NAME, vnfd)
-
- def test_listen_traffic(self, *args):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- ixnet_traffic_gen = IxiaTrafficGen(NAME, vnfd)
- self.assertEqual(None, ixnet_traffic_gen.listen_traffic({}))
-
- def test_instantiate(self, *args):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh_mock.run = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- ixnet_traffic_gen = IxiaTrafficGen(NAME, vnfd)
- scenario_cfg = {'tc': "nsb_test_case", "topology": "",
- 'ixia_profile': "ixload.cfg"}
- scenario_cfg.update({'options': {'packetsize': 64,
- 'traffic_type': 4,
- 'rfc2544': {'allowed_drop_rate': '0.8 - 1'},
- 'vnf__1': {'rules': 'acl_1rule.yaml',
- 'vnf_config': {'lb_config': 'SW',
- 'lb_count': 1,
- 'worker_config':
- '1C/1T',
- 'worker_threads': 1}}
- }})
- ixnet_traffic_gen.topology = ""
- ixnet_traffic_gen.get_ixobj = mock.MagicMock()
- ixnet_traffic_gen._ixia_traffic_gen = mock.MagicMock()
- ixnet_traffic_gen._ixia_traffic_gen._connect = mock.Mock()
- self.assertRaises(
- IOError,
- ixnet_traffic_gen.instantiate(scenario_cfg, {}))
-
- def test_collect_kpi(self, *args):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- ixnet_traffic_gen = IxiaTrafficGen(NAME, vnfd)
- ixnet_traffic_gen.data = {}
- restult = ixnet_traffic_gen.collect_kpi()
- self.assertEqual({}, restult)
-
- def test_terminate(self, *args):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- ixnet_traffic_gen = IxiaTrafficGen(NAME, vnfd)
- ixnet_traffic_gen._terminated = mock.MagicMock()
- ixnet_traffic_gen._terminated.value = 0
- ixnet_traffic_gen._ixia_traffic_gen = mock.MagicMock()
- ixnet_traffic_gen._ixia_traffic_gen.ix_stop_traffic = mock.Mock()
- ixnet_traffic_gen._traffic_process = mock.MagicMock()
- ixnet_traffic_gen._traffic_process.terminate = mock.Mock()
- self.assertEqual(None, ixnet_traffic_gen.terminate())
-
- def _get_file_abspath(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- file_path = os.path.join(curr_path, filename)
- return file_path
-
- def test__check_status(self, *args):
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- sut = IxiaTrafficGen('vnf1', vnfd)
- sut._check_status()
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia.time")
- @mock.patch("yardstick.ssh.SSH")
- def test_traffic_runner(self, mock_ssh, *args):
- mock_traffic_profile = mock.Mock(autospec=TrafficProfile)
- mock_traffic_profile.get_traffic_definition.return_value = "64"
- mock_traffic_profile.params = self.TRAFFIC_PROFILE
- # traffic_profile.ports is standardized on port_num
- mock_traffic_profile.ports = [0, 1]
-
- mock_ssh_instance = mock.Mock(autospec=mock_ssh.SSH)
- mock_ssh_instance.execute.return_value = 0, "", ""
- mock_ssh_instance.run.return_value = 0, "", ""
-
- mock_ssh.from_node.return_value = mock_ssh_instance
-
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- vnfd["mgmt-interface"].update({
- 'tg-config': {
- "ixchassis": "1.1.1.1",
- "py_bin_path": "/root",
- }
- })
-
- samples = {}
- name = ''
- for ifname in range(1):
- name = "xe{}".format(ifname)
- samples[name] = {
- "Rx_Rate_Kbps": 20,
- "Tx_Rate_Kbps": 20,
- "Rx_Rate_Mbps": 10,
- "Tx_Rate_Mbps": 10,
- "RxThroughput": 10,
- "TxThroughput": 10,
- "Valid_Frames_Rx": 1000,
- "Frames_Tx": 1000,
- "in_packets": 1000,
- "out_packets": 1000,
- }
-
- samples.update({"CurrentDropPercentage": 0.0})
-
- last_res = [
- 0,
- {
- "Rx_Rate_Kbps": [20, 20],
- "Tx_Rate_Kbps": [20, 20],
- "Rx_Rate_Mbps": [10, 10],
- "Tx_Rate_Mbps": [10, 10],
- "CurrentDropPercentage": [0, 0],
- "RxThroughput": [10, 10],
- "TxThroughput": [10, 10],
- "Frames_Tx": [1000, 1000],
- "in_packets": [1000, 1000],
- "Valid_Frames_Rx": [1000, 1000],
- "out_packets": [1000, 1000],
- },
- ]
-
- mock_traffic_profile.execute_traffic.return_value = ['Completed', samples]
- mock_traffic_profile.get_drop_percentage.return_value = ['Completed', samples]
-
- sut = IxiaTrafficGen(name, vnfd)
- sut.vnf_port_pairs = [[[0], [1]]]
- sut.tc_file_name = self._get_file_abspath(TEST_FILE_YAML)
- sut.topology = ""
-
- sut.ssh_helper = mock.Mock()
- sut._traffic_process = mock.MagicMock()
- sut.generate_port_pairs = mock.Mock()
-
- sut._ixia_traffic_gen = mock.MagicMock()
- sut._ixia_traffic_gen.ix_get_statistics.return_value = last_res
-
- sut.resource_helper.client = mock.MagicMock()
- sut.resource_helper.client_started = mock.MagicMock()
- sut.resource_helper.client_started.value = 1
- sut.resource_helper.rfc_helper.iteration.value = 11
-
- sut.scenario_helper.scenario_cfg = {
- 'options': {
- 'packetsize': 64,
- 'traffic_type': 4,
- 'rfc2544': {
- 'allowed_drop_rate': '0.8 - 1',
- 'latency': True
- },
- 'vnf__1': {
- 'rules': 'acl_1rule.yaml',
- 'vnf_config': {
- 'lb_config': 'SW',
- 'lb_count': 1,
- 'worker_config': '1C/1T',
- 'worker_threads': 1,
- },
- },
- },
- 'ixia_profile': '/path/to/profile',
- 'task_path': '/path/to/task'
- }
-
- @mock.patch('yardstick.benchmark.scenarios.networking.vnf_generic.open', create=True)
- @mock.patch('yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia.open',
- mock.mock_open(), create=True)
- @mock.patch('yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia.LOG.exception')
- def _traffic_runner(*args):
- result = sut._traffic_runner(mock_traffic_profile)
- self.assertIsNone(result)
-
- _traffic_runner()
diff --git a/tests/unit/orchestrator/test_heat.py b/tests/unit/orchestrator/test_heat.py
deleted file mode 100644
index c34ea53fc..000000000
--- a/tests/unit/orchestrator/test_heat.py
+++ /dev/null
@@ -1,339 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2017 Intel Corporation
-#
-# 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.orchestrator.heat
-from contextlib import contextmanager
-from itertools import count
-from tempfile import NamedTemporaryFile
-import unittest
-import uuid
-import time
-import mock
-
-from yardstick.benchmark.contexts import node
-from yardstick.orchestrator import heat
-
-
-TARGET_MODULE = 'yardstick.orchestrator.heat'
-
-
-def mock_patch_target_module(inner_import):
- return mock.patch('.'.join([TARGET_MODULE, inner_import]))
-
-
-@contextmanager
-def timer():
- start = time.time()
- data = {'start': start}
- try:
- yield data
- finally:
- data['end'] = end = time.time()
- data['delta'] = end - start
-
-
-def index_value_iter(index, index_value, base_value=None):
- for current_index in count():
- if current_index == index:
- yield index_value
- else:
- yield base_value
-
-
-def get_error_message(error):
- try:
- # py2
- return error.message
- except AttributeError:
- # py3
- return next((arg for arg in error.args if isinstance(arg, str)), None)
-
-
-class HeatContextTestCase(unittest.TestCase):
-
- def test_get_short_key_uuid(self):
- u = uuid.uuid4()
- k = heat.get_short_key_uuid(u)
- self.assertEqual(heat.HEAT_KEY_UUID_LENGTH, len(k))
- self.assertIn(k, str(u))
-
-class HeatTemplateTestCase(unittest.TestCase):
-
- def setUp(self):
- self.template = heat.HeatTemplate('test')
-
- def test_add_tenant_network(self):
- self.template.add_network('some-network')
-
- self.assertEqual(self.template.resources['some-network']['type'], 'OS::Neutron::Net')
-
- def test_add_provider_network(self):
- self.template.add_network('some-network', 'physnet2', 'sriov')
-
- self.assertEqual(self.template.resources['some-network']['type'], 'OS::Neutron::ProviderNet')
- self.assertEqual(self.template.resources['some-network']['properties']['physical_network'], 'physnet2')
-
- def test_add_subnet(self):
- netattrs = {'cidr': '10.0.0.0/24', 'provider': None, 'external_network': 'ext_net'}
- self.template.add_subnet('some-subnet', "some-network", netattrs['cidr'])
-
- self.assertEqual(self.template.resources['some-subnet']['type'], 'OS::Neutron::Subnet')
- self.assertEqual(self.template.resources['some-subnet']['properties']['cidr'], '10.0.0.0/24')
-
- def test_add_router(self):
- self.template.add_router('some-router', 'ext-net', 'some-subnet')
-
- self.assertEqual(self.template.resources['some-router']['type'], 'OS::Neutron::Router')
- self.assertIn('some-subnet', self.template.resources['some-router']['depends_on'])
-
- def test_add_router_interface(self):
- self.template.add_router_interface('some-router-if', 'some-router', 'some-subnet')
-
- self.assertEqual(self.template.resources['some-router-if']['type'], 'OS::Neutron::RouterInterface')
- self.assertIn('some-subnet', self.template.resources['some-router-if']['depends_on'])
-
- def test_add_servergroup(self):
- self.template.add_servergroup('some-server-group', 'anti-affinity')
-
- self.assertEqual(self.template.resources['some-server-group']['type'], 'OS::Nova::ServerGroup')
- self.assertEqual(self.template.resources['some-server-group']['properties']['policies'], ['anti-affinity'])
-
- def test__add_resources_to_template_raw(self):
- test_context = node.NodeContext()
- test_context.name = 'foo'
- test_context.template_file = '/tmp/some-heat-file'
- test_context.heat_parameters = {'image': 'cirros'}
- test_context.key_filename = "/tmp/1234"
- test_context.keypair_name = "foo-key"
- test_context.secgroup_name = "foo-secgroup"
- test_context.key_uuid = "2f2e4997-0a8e-4eb7-9fa4-f3f8fbbc393b"
- heat_object = heat.HeatObject()
-
- heat_stack = heat.HeatStack("tmpStack")
- self.assertTrue(heat_stack.stacks_exist())
-
- test_context.tmpfile = NamedTemporaryFile(delete=True, mode='w+t')
- test_context.tmpfile.write("heat_template_version: 2015-04-30")
- test_context.tmpfile.flush()
- test_context.tmpfile.seek(0)
- heat_template = heat.HeatTemplate(heat_object)
- heat_template.resources = {}
-
- heat_template.add_network("network1")
- heat_template.add_network("network2")
- heat_template.add_security_group("sec_group1")
- heat_template.add_security_group("sec_group2")
- heat_template.add_subnet("subnet1", "network1", "cidr1")
- heat_template.add_subnet("subnet2", "network2", "cidr2")
- heat_template.add_router("router1", "gw1", "subnet1")
- heat_template.add_router_interface("router_if1", "router1", "subnet1")
- heat_template.add_port("port1", "network1", "subnet1", "normal")
- heat_template.add_port("port2", "network2", "subnet2", "normal", sec_group_id="sec_group1",provider="not-sriov")
- heat_template.add_port("port3", "network2", "subnet2", "normal", sec_group_id="sec_group1",provider="sriov")
- heat_template.add_floating_ip("floating_ip1", "network1", "port1", "router_if1")
- heat_template.add_floating_ip("floating_ip2", "network2", "port2", "router_if2", "foo-secgroup")
- heat_template.add_floating_ip_association("floating_ip1_association", "floating_ip1", "port1")
- heat_template.add_servergroup("server_grp2", "affinity")
- heat_template.add_servergroup("server_grp3", "anti-affinity")
- heat_template.add_security_group("security_group")
- heat_template.add_server(name="server1", image="image1", flavor="flavor1", flavors=[])
- heat_template.add_server_group(name="servergroup", policies=["policy1","policy2"])
- heat_template.add_server_group(name="servergroup", policies="policy1")
- heat_template.add_server(name="server2", image="image1", flavor="flavor1", flavors=[], ports=["port1", "port2"],
- networks=["network1", "network2"], scheduler_hints="hints1", user="user1",
- key_name="foo-key", user_data="user", metadata={"cat": 1, "doc": 2},
- additional_properties={"prop1": 1, "prop2": 2})
- heat_template.add_server(name="server2", image="image1", flavor="flavor1", flavors=["flavor1", "flavor2"],
- ports=["port1", "port2"],
- networks=["network1", "network2"], scheduler_hints="hints1", user="user1",
- key_name="foo-key", user_data="user", metadata={"cat": 1, "doc": 2},
- additional_properties={"prop1": 1, "prop2": 2} )
- heat_template.add_server(name="server2", image="image1", flavor="flavor1", flavors=["flavor3", "flavor4"],
- ports=["port1", "port2"],
- networks=["network1", "network2"], scheduler_hints="hints1", user="user1",
- key_name="foo-key", user_data="user", metadata={"cat": 1, "doc": 2},
- additional_properties={"prop1": 1, "prop2": 2})
- heat_template.add_flavor(name="flavor1", vcpus=1, ram=2048, disk=1,extra_specs={"cat": 1, "dog": 2})
- heat_template.add_flavor(name=None, vcpus=1, ram=2048)
- heat_template.add_server(name="server1",
- image="image1",
- flavor="flavor1",
- flavors=[],
- ports=["port1", "port2"],
- networks=["network1", "network2"],
- scheduler_hints="hints1",
- user="user1",
- key_name="foo-key",
- user_data="user",
- metadata={"cat": 1, "doc": 2},
- additional_properties= {"prop1": 1, "prop2": 2} )
- heat_template.add_network("network1")
-
- heat_template.add_flavor("test")
- self.assertEqual(heat_template.resources['test']['type'], 'OS::Nova::Flavor')
-
- @mock_patch_target_module('op_utils')
- @mock_patch_target_module('heatclient')
- def test_create_negative(self, mock_heat_client_class, mock_op_utils):
- self.template.HEAT_WAIT_LOOP_INTERVAL = 0
- mock_heat_client = mock_heat_client_class() # get the constructed mock
-
- # populate attributes of the constructed mock
- mock_heat_client.stacks.get().stack_status_reason = 'the reason'
-
- expected_status_calls = 0
- expected_constructor_calls = 1 # above, to get the instance
- expected_create_calls = 0
- expected_op_utils_usage = 0
-
- with mock.patch.object(self.template, 'status', return_value=None) as mock_status:
- # block with timeout hit
- timeout = 0
- with self.assertRaises(RuntimeError) as raised, timer() as time_data:
- self.template.create(block=True, timeout=timeout)
-
- # ensure op_utils was used
- expected_op_utils_usage += 1
- self.assertEqual(mock_op_utils.get_session.call_count, expected_op_utils_usage)
- self.assertEqual(mock_op_utils.get_endpoint.call_count, expected_op_utils_usage)
- self.assertEqual(mock_op_utils.get_heat_api_version.call_count, expected_op_utils_usage)
-
- # ensure the constructor and instance were used
- self.assertEqual(mock_heat_client_class.call_count, expected_constructor_calls)
- self.assertEqual(mock_heat_client.stacks.create.call_count, expected_create_calls)
-
- # ensure that the status was used
- self.assertGreater(mock_status.call_count, expected_status_calls)
- expected_status_calls = mock_status.call_count # synchronize the value
-
- # ensure the expected exception was raised
- error_message = get_error_message(raised.exception)
- self.assertIn('timeout', error_message)
- self.assertNotIn('the reason', error_message)
-
- # block with create failed
- timeout = 10
- mock_status.side_effect = iter([None, None, u'CREATE_FAILED'])
- with self.assertRaises(RuntimeError) as raised, timer() as time_data:
- self.template.create(block=True, timeout=timeout)
-
- # ensure the existing heat_client was used and op_utils was used again
- self.assertEqual(mock_op_utils.get_session.call_count, expected_op_utils_usage)
- self.assertEqual(mock_op_utils.get_endpoint.call_count, expected_op_utils_usage)
- self.assertEqual(mock_op_utils.get_heat_api_version.call_count, expected_op_utils_usage)
-
- # ensure the constructor was not used but the instance was used
- self.assertEqual(mock_heat_client_class.call_count, expected_constructor_calls)
- self.assertEqual(mock_heat_client.stacks.create.call_count, expected_create_calls)
-
- # ensure that the status was used three times
- expected_status_calls += 3
- self.assertEqual(mock_status.call_count, expected_status_calls)
-
- @mock_patch_target_module('op_utils')
- @mock_patch_target_module('heatclient')
- def test_create(self, mock_heat_client_class, mock_op_utils):
- self.template.HEAT_WAIT_LOOP_INTERVAL = 0.2
- mock_heat_client = mock_heat_client_class()
-
- # populate attributes of the constructed mock
- mock_heat_client.stacks.get().outputs = [
- {'output_key': 'key1', 'output_value': 'value1'},
- {'output_key': 'key2', 'output_value': 'value2'},
- {'output_key': 'key3', 'output_value': 'value3'},
- ]
- expected_outputs = {
- 'key1': 'value1',
- 'key2': 'value2',
- 'key3': 'value3',
- }
-
- expected_status_calls = 0
- expected_constructor_calls = 1 # above, to get the instance
- expected_create_calls = 0
- expected_op_utils_usage = 0
-
- with mock.patch.object(self.template, 'status') as mock_status:
- self.template.name = 'no block test'
- mock_status.return_value = None
-
- # no block
- self.assertIsInstance(self.template.create(block=False, timeout=2), heat.HeatStack)
-
- # ensure op_utils was used
- expected_op_utils_usage += 1
- self.assertEqual(mock_op_utils.get_session.call_count, expected_op_utils_usage)
- self.assertEqual(mock_op_utils.get_endpoint.call_count, expected_op_utils_usage)
- self.assertEqual(mock_op_utils.get_heat_api_version.call_count, expected_op_utils_usage)
-
- # ensure the constructor and instance were used
- self.assertEqual(mock_heat_client_class.call_count, expected_constructor_calls)
- self.assertEqual(mock_heat_client.stacks.create.call_count, expected_create_calls)
-
- # ensure that the status was not used
- self.assertEqual(mock_status.call_count, expected_status_calls)
-
- # ensure no outputs because this requires blocking
- self.assertEqual(self.template.outputs, {})
-
- # block with immediate complete
- self.template.name = 'block, immediate complete test'
-
- mock_status.return_value = self.template.HEAT_CREATE_COMPLETE_STATUS
- self.assertIsInstance(self.template.create(block=True, timeout=2), heat.HeatStack)
-
- # ensure existing instance was re-used and op_utils was not used
- self.assertEqual(mock_heat_client_class.call_count, expected_constructor_calls)
- self.assertEqual(mock_heat_client.stacks.create.call_count, expected_create_calls)
-
- # ensure status was checked once
- expected_status_calls += 1
- self.assertEqual(mock_status.call_count, expected_status_calls)
-
- # reset template outputs
- self.template.outputs = None
-
- # block with delayed complete
- self.template.name = 'block, delayed complete test'
-
- success_index = 2
- mock_status.side_effect = index_value_iter(success_index,
- self.template.HEAT_CREATE_COMPLETE_STATUS)
- self.assertIsInstance(self.template.create(block=True, timeout=2), heat.HeatStack)
-
- # ensure existing instance was re-used and op_utils was not used
- self.assertEqual(mock_heat_client_class.call_count, expected_constructor_calls)
- self.assertEqual(mock_heat_client.stacks.create.call_count, expected_create_calls)
-
- # ensure status was checked three more times
- expected_status_calls += 1 + success_index
- self.assertEqual(mock_status.call_count, expected_status_calls)
-
-
-class HeatStackTestCase(unittest.TestCase):
-
- def test_delete_calls__delete_multiple_times(self):
- stack = heat.HeatStack('test')
- stack.uuid = 1
- with mock.patch.object(stack, "_delete") as delete_mock:
- stack.delete()
- # call once and then call again if uuid is not none
- self.assertGreater(delete_mock.call_count, 1)
-
- @mock.patch('yardstick.orchestrator.heat.op_utils')
- def test_delete_all_calls_delete(self, mock_op):
- # we must patch the object before we create an instance
- # so we can override delete() in all the instances
- with mock.patch.object(heat.HeatStack, "delete") as delete_mock:
- stack = heat.HeatStack('test')
- stack.uuid = 1
- stack.delete_all()
- self.assertGreater(delete_mock.call_count, 0)
diff --git a/tests/unit/orchestrator/test_kubernetes.py b/tests/unit/orchestrator/test_kubernetes.py
deleted file mode 100644
index 1a3291c89..000000000
--- a/tests/unit/orchestrator/test_kubernetes.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env python
-
-##############################################################################
-# Copyright (c) 2017 Intel Corporation
-#
-# 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
-##############################################################################
-
-# Unittest for yardstick.benchmark.orchestrator.heat
-import unittest
-import mock
-
-from yardstick.orchestrator.kubernetes import KubernetesObject
-from yardstick.orchestrator.kubernetes import KubernetesTemplate
-
-
-class GetTemplateTestCase(unittest.TestCase):
-
- def test_get_template(self):
- output_t = {
- "apiVersion": "v1",
- "kind": "ReplicationController",
- "metadata": {
- "name": "host-k8s-86096c30"
- },
- "spec": {
- "replicas": 1,
- "template": {
- "metadata": {
- "labels": {
- "app": "host-k8s-86096c30"
- }
- },
- "spec": {
- "containers": [
- {
- "args": [
- "-c",
- "chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \
-service ssh restart;while true ; do sleep 10000; done"
- ],
- "command": [
- "/bin/bash"
- ],
- "image": "openretriever/yardstick",
- "name": "host-k8s-86096c30-container",
- "volumeMounts": [
- {
- "mountPath": "/root/.ssh/",
- "name": "k8s-86096c30-key"
- }
- ]
- }
- ],
- "volumes": [
- {
- "configMap": {
- "name": "k8s-86096c30-key"
- },
- "name": "k8s-86096c30-key"
- }
- ],
- "nodeSelector": {
- "kubernetes.io/hostname": "node-01"
- }
- }
- }
- }
- }
- input_s = {
- 'command': '/bin/bash',
- 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \
-service ssh restart;while true ; do sleep 10000; done'],
- 'ssh_key': 'k8s-86096c30-key',
- 'nodeSelector': { 'kubernetes.io/hostname': 'node-01'}
- }
- name = 'host-k8s-86096c30'
- output_r = KubernetesObject(name, **input_s).get_template()
- self.assertEqual(output_r, output_t)
-
-
-class GetRcPodsTestCase(unittest.TestCase):
-
- @mock.patch('yardstick.orchestrator.kubernetes.k8s_utils.get_pod_list')
- def test_get_rc_pods(self, mock_get_pod_list):
- servers = {
- 'host': {
- 'image': 'openretriever/yardstick',
- 'command': '/bin/bash',
- 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \
-service ssh restart;while true ; do sleep 10000; done']
- },
- 'target': {
- 'image': 'openretriever/yardstick',
- 'command': '/bin/bash',
- 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \
-service ssh restart;while true ; do sleep 10000; done']
- }
- }
- k8s_template = KubernetesTemplate('k8s-86096c30', servers)
- mock_get_pod_list.return_value.items = []
- pods = k8s_template.get_rc_pods()
- self.assertEqual(pods, [])
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tools/coding-checks.sh b/tools/coding-checks.sh
index 4ee909988..615f2c3de 100644
--- a/tools/coding-checks.sh
+++ b/tools/coding-checks.sh
@@ -28,6 +28,7 @@ process_options () {
run_pylint () {
local target="${scriptargs:-all}"
+ local output_format=""
if [ "$target" = "all" ]; then
files="ansible api tests yardstick"
@@ -37,11 +38,15 @@ run_pylint () {
*) echo "$target is an unrecognized basecommit"; exit 1;;
esac
fi
-
+ # make Jenkins output parseable because Jenkins doesn't handle color
+ # enventually we should use the Jenkins Pylint plugin or other tools
+ if [ -n "${BRANCH:-}" ] ; then
+ output_format="--output-format=parseable"
+ fi
echo "Running pylint..."
echo "You can speed this up by running it on 'HEAD~[0-9]' (e.g. HEAD~0, this change only)..."
if [ -n "${files}" ]; then
- pylint --rcfile=.pylintrc ${files}
+ pylint --rcfile=.pylintrc ${output_format} ${files}
else
echo "No python changes in this commit, pylint check not required."
exit 0
diff --git a/tools/cover.sh b/tools/cover.sh
index 780a85a22..4e54a64b7 100644
--- a/tools/cover.sh
+++ b/tools/cover.sh
@@ -42,17 +42,15 @@ run_coverage_test() {
git checkout HEAD^
baseline_report=$(mktemp -t yardstick_coverageXXXXXXX)
- ls -l .testrepository
- # workaround 'db type could not be determined' bug
- # https://bugs.launchpad.net/testrepository/+bug/1229445
- rm -rf .testrepository
find . -type f -name "*.pyc" -delete
+ coverage erase
+
+ coverage run -p -m unittest discover ./yardstick/tests/unit
+ coverage combine
- #python setup.py testr --coverage --testr-args=""
- python setup.py testr --coverage --slowest --testr-args="$*"
- testr failing
coverage report > ${baseline_report}
+ coverage erase
# debug awk
tail -1 ${baseline_report}
@@ -69,17 +67,14 @@ run_coverage_test() {
# Generate and save coverage report
current_report=$(mktemp -t yardstick_coverageXXXXXXX)
- ls -l .testrepository
- # workaround 'db type could not be determined' bug
- # https://bugs.launchpad.net/testrepository/+bug/1229445
- rm -rf .testrepository
find . -type f -name "*.pyc" -delete
- #python setup.py testr --coverage --testr-args=""
- python setup.py testr --coverage --slowest --testr-args="$*"
- testr failing
+ coverage run -p -m unittest discover ./yardstick/tests/unit
+ coverage combine
+
coverage report > ${current_report}
+ coverage erase
rm -rf cover-$PY_VER
coverage html -d cover-$PY_VER
diff --git a/tools/kube-setup-one-node.sh b/tools/kube-setup-one-node.sh
new file mode 100755
index 000000000..180f11b46
--- /dev/null
+++ b/tools/kube-setup-one-node.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+proxy_vars=(http_proxy https_proxy ftp_proxy no_proxy)
+# get proxy environment values from /etc/environment if not set
+for proxy_var in ${proxy_vars[@]}
+do
+ env_proxy=$(sed -ne "s/^$proxy_var=[\"\']\(.*\)[\"\']/\1/p" /etc/environment)
+ if [[ -z ${!proxy_var} ]] && [[ ! -z ${env_proxy} ]]; then
+ export ${proxy_var}=${env_proxy}
+ fi
+done
+# add proxy configuration into proxy file
+add_extra_env=false
+echo "proxy_env:" > /tmp/proxy.yml
+for proxy_var in ${proxy_vars[@]}
+do
+ if [[ ! -z ${!proxy_var} ]]; then
+ echo " ${proxy_var}: ${!proxy_var}" >> /tmp/proxy.yml
+ add_extra_env=true
+ fi
+done
+# add extra arguments file if needed
+if ${add_extra_env}; then
+ extra_args="${extra_args} -e @/tmp/proxy.yml "
+fi
+
+ANSIBLE_SCRIPTS="${0%/*}/../ansible"
+
+cd ${ANSIBLE_SCRIPTS} && \
+ansible-playbook \
+ ${extra_args} -i kube-inventory.ini deploy_kube.yml
diff --git a/tools/run_tests.sh b/tools/run_tests.sh
index f253327e5..40b21cab9 100755
--- a/tools/run_tests.sh
+++ b/tools/run_tests.sh
@@ -28,9 +28,9 @@ run_tests() {
echo "Running unittest ... "
if [ $FILE_OPTION == "f" ]; then
- python -m unittest discover -v -s tests/unit > $logfile 2>&1
+ python -m unittest discover -v -s yardstick/tests/unit > $logfile 2>&1
else
- python -m unittest discover -v -s tests/unit
+ python -m unittest discover -v -s yardstick/tests/unit
fi
if [ $? -ne 0 ]; then
@@ -53,7 +53,7 @@ run_coverage() {
run_functional_test() {
mkdir -p .testrepository
- python -m subunit.run discover tests/functional > .testrepository/subunit.log
+ python -m subunit.run discover yardstick/tests/functional > .testrepository/subunit.log
subunit2pyunit < .testrepository/subunit.log
EXIT_CODE=$?
@@ -66,16 +66,21 @@ run_functional_test() {
fi
}
-if [[ $opts =~ "--unit" ]]; then
- run_tests
-fi
+# get file types of the last change on git
+file_types=$(git diff-tree -r --name-only HEAD~1 HEAD | awk -F[/] '{print $NF}' | awk -F[.] 'NF>1 {print $NF}' | uniq)
-if [[ $opts =~ "--coverage" ]]; then
- run_coverage
-fi
+if [[ $file_types =~ "py" ]]; then
+ if [[ $opts =~ "--unit" ]]; then
+ run_tests
+ fi
-if [[ $opts =~ "--functional" ]]; then
- run_functional_test
+ if [[ $opts =~ "--coverage" ]]; then
+ run_coverage
+ fi
+
+ if [[ $opts =~ "--functional" ]]; then
+ run_functional_test
+ fi
fi
if [[ -z $opts ]]; then
diff --git a/tools/virt_ci_rampup.sh b/tools/virt_ci_rampup.sh
new file mode 100755
index 000000000..aaf162cf7
--- /dev/null
+++ b/tools/virt_ci_rampup.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env bash
+# Copyright (c) 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+env_http_proxy=$(sed -ne "s/^http_proxy=[\"\']\(.*\)[\"\']/\1/p" /etc/environment)
+if [[ -z ${http_proxy} ]] && [[ ! -z ${env_http_proxy} ]]; then
+ export http_proxy=${env_http_proxy}
+fi
+env_https_proxy=$(sed -ne "s/^https_proxy=[\"\']\(.*\)[\"\']/\1/p" /etc/environment)
+if [[ -z ${https_proxy} ]] && [[ ! -z ${env_https_proxy} ]]; then
+ export https_proxy=${env_https_proxy}
+fi
+env_ftp_proxy=$(sed -ne "s/^ftp_proxy=[\"\']\(.*\)[\"\']/\1/p" /etc/environment)
+if [[ -z ${ftp_proxy} ]] && [[ ! -z ${env_ftp_proxy} ]]; then
+ export ftp_proxy=${env_ftp_proxy}
+fi
+if [[ ! -z ${http_proxy} ]] || [[ ! -z ${https_proxy} ]]; then
+ export no_proxy="${no_proxy}"
+ extra_args="${extra_args} -e @/tmp/proxy.yml "
+ cat <<EOF > /tmp/proxy.yml
+---
+proxy_env:
+ http_proxy: ${http_proxy}
+ https_proxy: ${https_proxy}
+ ftp_proxy: ${ftp_proxy}
+ no_proxy: ${no_proxy}
+EOF
+fi
+ANSIBLE_SCRIPTS="${0%/*}/../ansible"
+
+cd ${ANSIBLE_SCRIPTS} && \
+sudo -EH ansible-playbook \
+ -e RS_FILE='../etc/infra/infra_deploy_two.yaml' -e CLEAN_UP=False ${extra_args} \
+ -i inventory.ini infra_deploy.yml
diff --git a/tox.ini b/tox.ini
index 9a82878b0..8f86a0143 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,14 +1,19 @@
[tox]
minversion = 2.0
skipsdist = True
-envlist = py{27,3},pep8,functional{,-py3},coverage
+envlist = py3,pep8,functional-py3,coverage
[testenv]
usedevelop=True
-passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
+passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY BRANCH
+setenv =
+ VIRTUAL_ENV={envdir}
deps =
+ -chttps://opendev.org/openstack/requirements/raw/branch/stable/stein/upper-constraints.txt
+ -c{toxinidir}/upper-constraints.txt
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
+
whitelist_externals = /bin/bash
[testenv:py27]
@@ -42,6 +47,17 @@ commands =
basepython = python3
commands = {[testenv:functional]commands}
+[testenv:docs]
+deps = -rdocs/requirements.txt
+commands =
+ sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
+ echo "Generated docs available in {toxinidir}/docs/_build/html"
+whitelist_externals = echo
+
+[testenv:docs-linkcheck]
+deps = -rdocs/requirements.txt
+commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck
+
[testenv:os-requirements]
commands =
python {toxinidir}/tools/os-requirements-check.py {envdir}
diff --git a/upper-constraints.txt b/upper-constraints.txt
new file mode 100644
index 000000000..bbde3c734
--- /dev/null
+++ b/upper-constraints.txt
@@ -0,0 +1,18 @@
+PTable===0.9.2
+ansible===2.5.5
+backport-ipaddress===0.1
+chainmap===1.0.2
+docker-py===1.10.6
+flasgger===0.5.13
+flask-restful-swagger===0.20.1
+functools32===3.2.3.post2
+IxNetwork===8.40.1124.9
+jinja2schema===0.1.4
+msgpack-python===0.4.8
+positional===1.1.2
+pycrypto===2.6.1
+pyrsistent===0.14.1
+scp===0.10.2
+traceback2===1.4.0
+pyflakes===1.0.0
+pylint===1.8.1
diff --git a/yardstick/__init__.py b/yardstick/__init__.py
index f95b0a906..9eb5db9b1 100644
--- a/yardstick/__init__.py
+++ b/yardstick/__init__.py
@@ -14,8 +14,9 @@ import errno
# this module must only import other modules that do
# not require loggers to be created, so this cannot
-# include yardstick.common.utils
from yardstick.common import constants
+from yardstick.common import exceptions
+
try:
# do not use yardstick.common.utils.makedirs
diff --git a/yardstick/benchmark/contexts/__init__.py b/yardstick/benchmark/contexts/__init__.py
index e69de29bb..d50f08cc3 100644
--- a/yardstick/benchmark/contexts/__init__.py
+++ b/yardstick/benchmark/contexts/__init__.py
@@ -0,0 +1,20 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+CONTEXT_DUMMY = "Dummy"
+CONTEXT_HEAT = "Heat"
+CONTEXT_KUBERNETES = "Kubernetes"
+CONTEXT_NODE = "Node"
+CONTEXT_STANDALONEOVSDPDK = "StandaloneOvsDpdk"
+CONTEXT_STANDALONESRIOV = "StandaloneSriov"
diff --git a/yardstick/benchmark/contexts/base.py b/yardstick/benchmark/contexts/base.py
index c9b5b51c9..f3f5879eb 100644
--- a/yardstick/benchmark/contexts/base.py
+++ b/yardstick/benchmark/contexts/base.py
@@ -6,33 +6,108 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import absolute_import
+
import abc
+import errno
import six
+import os
+
+from yardstick.common import constants
+from yardstick.common import utils
+from yardstick.common import yaml_loader
+from yardstick.common.constants import YARDSTICK_ROOT_PATH
+
+
+class Flags(object):
+ """Class to represent the status of the flags in a context"""
+
+ _FLAGS = {'no_setup': False,
+ 'no_teardown': False,
+ 'os_cloud_config': constants.OS_CLOUD_DEFAULT_CONFIG}
+
+ def __init__(self, **kwargs):
+ for name, value in self._FLAGS.items():
+ setattr(self, name, value)
+
+ for name, value in ((name, value) for (name, value) in kwargs.items()
+ if name in self._FLAGS):
+ setattr(self, name, value)
-import yardstick.common.utils as utils
+ def parse(self, **kwargs):
+ """Read in values matching the flags stored in this object"""
+ if not kwargs:
+ return
+
+ for name, value in ((name, value) for (name, value) in kwargs.items()
+ if name in self._FLAGS):
+ setattr(self, name, value)
@six.add_metaclass(abc.ABCMeta)
class Context(object):
"""Class that represents a context in the logical model"""
list = []
+ SHORT_TASK_ID_LEN = 8
- @staticmethod
- def split_name(name, sep='.'):
- try:
- name_iter = iter(name.split(sep))
- except AttributeError:
- # name is not a string
- return None, None
- return next(name_iter), next(name_iter, None)
-
- def __init__(self):
+ def __init__(self, host_name_separator='.'):
Context.list.append(self)
+ self._flags = Flags()
+ self._name = None
+ self._task_id = None
+ self.file_path = None
+ self._host_name_separator = host_name_separator
- @abc.abstractmethod
def init(self, attrs):
- """Initiate context."""
+ """Initiate context"""
+ self._name = attrs['name']
+ self._task_id = attrs['task_id']
+ self._flags.parse(**attrs.get('flags', {}))
+ self._name_task_id = '{}-{}'.format(
+ self._name, self._task_id[:self.SHORT_TASK_ID_LEN])
+
+ def split_host_name(self, name):
+ if (isinstance(name, six.string_types)
+ and self._host_name_separator in name):
+ return tuple(name.split(self._host_name_separator, 1))
+ return None, None
+
+ def read_pod_file(self, attrs):
+ self.file_path = file_path = attrs.get("file", "pod.yaml")
+ try:
+ cfg = yaml_loader.read_yaml_file(self.file_path)
+ except IOError as io_error:
+ if io_error.errno != errno.ENOENT:
+ raise
+
+ self.file_path = os.path.join(YARDSTICK_ROOT_PATH, file_path)
+ cfg = yaml_loader.read_yaml_file(self.file_path)
+
+ for node in cfg["nodes"]:
+ node["ctx_type"] = self.__context_type__
+
+ self.nodes.extend(cfg["nodes"])
+ self.controllers.extend([node for node in cfg["nodes"]
+ if node.get("role") == "Controller"])
+ self.computes.extend([node for node in cfg["nodes"]
+ if node.get("role") == "Compute"])
+ self.baremetals.extend([node for node in cfg["nodes"]
+ if node.get("role") == "Baremetal"])
+ return cfg
+
+ @property
+ def name(self):
+ if self._flags.no_setup or self._flags.no_teardown:
+ return self._name
+ else:
+ return self._name_task_id
+
+ @property
+ def assigned_name(self):
+ return self._name
+
+ @property
+ def host_name_separator(self):
+ return self._host_name_separator
@staticmethod
def get_cls(context_type):
@@ -84,6 +159,25 @@ class Context(object):
attr_name)
@staticmethod
+ def get_physical_nodes():
+ """return physical node names for all contexts"""
+ physical_nodes = {}
+ for context in Context.list:
+ nodes = context._get_physical_nodes()
+ physical_nodes.update({context._name: nodes})
+
+ return physical_nodes
+
+ @staticmethod
+ def get_physical_node_from_server(server_name):
+ """return physical nodes for all contexts"""
+ context = Context.get_context_from_server(server_name)
+ if context == None:
+ return None
+
+ return context._get_physical_node_for_server(server_name)
+
+ @staticmethod
def get_context_from_server(attr_name):
"""lookup context info by name from node config
attr_name: either a name of the node created by yardstick or a dict
@@ -112,3 +206,15 @@ class Context(object):
except StopIteration:
raise ValueError("context not found for server %r" %
attr_name)
+
+ @abc.abstractmethod
+ def _get_physical_nodes(self):
+ """return the list of physical nodes in context"""
+
+ @abc.abstractmethod
+ def _get_physical_node_for_server(self, server_name):
+ """ Find physical node for given server
+
+ :param server_name: (string) Server name in scenario
+ :return string: <node_name>.<context_name>
+ """
diff --git a/yardstick/benchmark/contexts/dummy.py b/yardstick/benchmark/contexts/dummy.py
index 8ae4b65b8..9faca4c63 100644
--- a/yardstick/benchmark/contexts/dummy.py
+++ b/yardstick/benchmark/contexts/dummy.py
@@ -7,36 +7,35 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import absolute_import
-import logging
+from yardstick.benchmark import contexts
+from yardstick.benchmark.contexts import base
-from yardstick.benchmark.contexts.base import Context
+class DummyContext(base.Context):
+ """Class that handle dummy info.
-LOG = logging.getLogger(__name__)
+ This class is also used to test the abstract class Context because it
+ provides a minimal concrete implementation of a subclass.
+ """
-
-class DummyContext(Context):
- """Class that handle dummy info"""
-
- __context_type__ = "Dummy"
-
- def __init__(self):
- super(DummyContext, self).__init__()
-
- def init(self, attrs):
- pass
+ __context_type__ = contexts.CONTEXT_DUMMY
def deploy(self):
- """don't need to deploy"""
+ """Don't need to deploy"""
pass
def undeploy(self):
- """don't need to undeploy"""
- super(DummyContext, self).undeploy()
+ """Don't need to undeploy"""
+ pass
def _get_server(self, attr_name):
return None
def _get_network(self, attr_name):
return None
+
+ def _get_physical_nodes(self):
+ return None
+
+ def _get_physical_node_for_server(self, server_name):
+ return None
diff --git a/yardstick/benchmark/contexts/heat.py b/yardstick/benchmark/contexts/heat.py
index 4ba543b9e..917aa9c39 100644
--- a/yardstick/benchmark/contexts/heat.py
+++ b/yardstick/benchmark/contexts/heat.py
@@ -7,29 +7,30 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import absolute_import
-from __future__ import print_function
-
import collections
import logging
import os
-import uuid
import errno
from collections import OrderedDict
import ipaddress
import pkg_resources
+from yardstick.benchmark import contexts
from yardstick.benchmark.contexts.base import Context
from yardstick.benchmark.contexts.model import Network
from yardstick.benchmark.contexts.model import PlacementGroup, ServerGroup
from yardstick.benchmark.contexts.model import Server
from yardstick.benchmark.contexts.model import update_scheduler_hints
-from yardstick.common.openstack_utils import get_neutron_client
-from yardstick.orchestrator.heat import HeatTemplate, get_short_key_uuid
+from yardstick.common import exceptions as y_exc
+from yardstick.common.openstack_utils import get_shade_client
+from yardstick.orchestrator.heat import HeatStack
+from yardstick.orchestrator.heat import HeatTemplate
from yardstick.common import constants as consts
+from yardstick.common import utils
from yardstick.common.utils import source_env
from yardstick.ssh import SSH
+from yardstick.common import openstack_utils
LOG = logging.getLogger(__name__)
@@ -47,10 +48,9 @@ def h_join(*args):
class HeatContext(Context):
"""Class that represents a context in the logical model"""
- __context_type__ = "Heat"
+ __context_type__ = contexts.CONTEXT_HEAT
def __init__(self):
- self.name = None
self.stack = None
self.networks = OrderedDict()
self.heat_timeout = None
@@ -59,6 +59,7 @@ class HeatContext(Context):
self.server_groups = []
self.keypair_name = None
self.secgroup_name = None
+ self.security_group = None
self._server_map = {}
self.attrs = {}
self._image = None
@@ -67,14 +68,16 @@ class HeatContext(Context):
self._user = None
self.template_file = None
self.heat_parameters = None
- self.neutron_client = None
- # generate an uuid to identify yardstick_key
- # the first 8 digits of the uuid will be used
- self.key_uuid = uuid.uuid4()
+ self.shade_client = None
self.heat_timeout = None
- self.key_filename = ''.join(
- [consts.YARDSTICK_ROOT_PATH, 'yardstick/resources/files/yardstick_key-',
- get_short_key_uuid(self.key_uuid)])
+ self.key_filename = None
+ self.yardstick_gen_key_file = True
+ self.shade_client = None
+ self.operator_client = None
+ self.nodes = []
+ self.controllers = []
+ self.computes = []
+ self.baremetals = []
super(HeatContext, self).__init__()
@staticmethod
@@ -95,26 +98,45 @@ class HeatContext(Context):
return sorted_networks
def init(self, attrs):
- self.check_environment()
- """initializes itself from the supplied arguments"""
- self.name = attrs["name"]
+ """Initializes itself from the supplied arguments"""
+ super(HeatContext, self).init(attrs)
+ self.check_environment()
self._user = attrs.get("user")
self.template_file = attrs.get("heat_template")
+
+ # try looking for external private key when using external heat template
+ if self.template_file is not None:
+ self.key_filename = attrs.get("key_filename", None)
+ if self.key_filename is not None:
+ # Disable key file generation if an external private key
+ # has been provided
+ self.yardstick_gen_key_file = False
+
+ self.shade_client = openstack_utils.get_shade_client()
+ self.operator_client = openstack_utils.get_shade_operator_client()
+
+ try:
+ self.read_pod_file(attrs)
+ except IOError:
+ LOG.warning("No pod file specified. NVFi metrics will be disabled")
+
+ self.heat_timeout = attrs.get("timeout", DEFAULT_HEAT_TIMEOUT)
if self.template_file:
self.heat_parameters = attrs.get("heat_parameters")
return
self.keypair_name = h_join(self.name, "key")
+
self.secgroup_name = h_join(self.name, "secgroup")
+ self.security_group = attrs.get("security_group")
+
self._image = attrs.get("image")
self._flavor = attrs.get("flavor")
- self.heat_timeout = attrs.get("timeout", DEFAULT_HEAT_TIMEOUT)
-
self.placement_groups = [PlacementGroup(name, self, pg_attrs["policy"])
for name, pg_attrs in attrs.get(
"placement_groups", {}).items()]
@@ -137,7 +159,6 @@ class HeatContext(Context):
self._server_map[server.dn] = server
self.attrs = attrs
- SSH.gen_keys(self.key_filename)
def check_environment(self):
try:
@@ -176,10 +197,13 @@ class HeatContext(Context):
template.add_flavor(**self.flavor)
self.flavors.add(flavor)
- template.add_keypair(self.keypair_name, self.key_uuid)
- template.add_security_group(self.secgroup_name)
+ template.add_keypair(self.keypair_name, self.name)
+ template.add_security_group(self.secgroup_name, self.security_group)
for network in self.networks.values():
+ # Using existing network
+ if network.is_existing():
+ continue
template.add_network(network.stack_name,
network.physical_network,
network.provider,
@@ -285,38 +309,69 @@ class HeatContext(Context):
scheduler_hints)
def get_neutron_info(self):
- if not self.neutron_client:
- self.neutron_client = get_neutron_client()
+ if not self.shade_client:
+ self.shade_client = get_shade_client()
- networks = self.neutron_client.list_networks()
+ networks = self.shade_client.list_networks()
for network in self.networks.values():
- for neutron_net in networks['networks']:
- if neutron_net['name'] == network.stack_name:
+ for neutron_net in (net for net in networks if net.name == network.stack_name):
network.segmentation_id = neutron_net.get('provider:segmentation_id')
# we already have physical_network
# network.physical_network = neutron_net.get('provider:physical_network')
network.network_type = neutron_net.get('provider:network_type')
network.neutron_info = neutron_net
+ def _create_new_stack(self, heat_template):
+ try:
+ return heat_template.create(block=True,
+ timeout=self.heat_timeout)
+ except KeyboardInterrupt:
+ raise y_exc.StackCreationInterrupt
+ except Exception:
+ LOG.exception("stack failed")
+ # let the other failures happen, we want stack trace
+ raise
+
+ def _retrieve_existing_stack(self, stack_name):
+ stack = HeatStack(stack_name)
+ if stack.get():
+ return stack
+ else:
+ LOG.warning("Stack %s does not exist", self.name)
+ return None
+
def deploy(self):
"""deploys template into a stack using cloud"""
LOG.info("Deploying context '%s' START", self.name)
- heat_template = HeatTemplate(self.name, self.template_file,
- self.heat_parameters)
+ # Check if there was no external private key provided
+ if self.key_filename is None:
+ self.key_filename = ''.join(
+ [consts.YARDSTICK_ROOT_PATH,
+ 'yardstick/resources/files/yardstick_key-',
+ self.name])
+ # Permissions may have changed since creation; this can be fixed. If we
+ # overwrite the file, we lose future access to VMs using this key.
+ # As long as the file exists, even if it is unreadable, keep it intact
+ if self.yardstick_gen_key_file and not os.path.exists(self.key_filename):
+ SSH.gen_keys(self.key_filename)
+
+ heat_template = HeatTemplate(
+ self.name, template_file=self.template_file,
+ heat_parameters=self.heat_parameters,
+ os_cloud_config=self._flags.os_cloud_config)
if self.template_file is None:
self._add_resources_to_template(heat_template)
- try:
- self.stack = heat_template.create(block=True,
- timeout=self.heat_timeout)
- except KeyboardInterrupt:
- raise SystemExit("\nStack create interrupted")
- except:
- LOG.exception("stack failed")
- # let the other failures happen, we want stack trace
- raise
+ if self._flags.no_setup:
+ # Try to get an existing stack, returns a stack or None
+ self.stack = self._retrieve_existing_stack(self.name)
+ if not self.stack:
+ self.stack = self._create_new_stack(heat_template)
+
+ else:
+ self.stack = self._create_new_stack(heat_template)
# TODO: use Neutron to get segmentation-id
self.get_neutron_info()
@@ -332,18 +387,35 @@ class HeatContext(Context):
LOG.info("Deploying context '%s' DONE", self.name)
+ @staticmethod
+ def _port_net_is_existing(port_info):
+ net_flags = port_info.get('net_flags', {})
+ return net_flags.get(consts.IS_EXISTING)
+
+ @staticmethod
+ def _port_net_is_public(port_info):
+ net_flags = port_info.get('net_flags', {})
+ return net_flags.get(consts.IS_PUBLIC)
+
def add_server_port(self, server):
- # use private ip from first port in first network
- try:
- private_port = next(iter(server.ports.values()))[0]
- except IndexError:
- LOG.exception("Unable to find first private port in %s", server.ports)
- raise
- server.private_ip = self.stack.outputs[private_port["stack_name"]]
+ server_ports = server.ports.values()
+ for server_port in server_ports:
+ port_info = server_port[0]
+ port_ip = self.stack.outputs[port_info["stack_name"]]
+ port_net_is_existing = self._port_net_is_existing(port_info)
+ port_net_is_public = self._port_net_is_public(port_info)
+ if port_net_is_existing and (port_net_is_public or
+ len(server_ports) == 1):
+ server.public_ip = port_ip
+ if not server.private_ip or len(server_ports) == 1:
+ server.private_ip = port_ip
+
server.interfaces = {}
for network_name, ports in server.ports.items():
for port in ports:
# port['port'] is either port name from mapping or default network_name
+ if self._port_net_is_existing(port):
+ continue
server.interfaces[port['port']] = self.make_interface_dict(network_name,
port['port'],
port['stack_name'],
@@ -380,20 +452,29 @@ class HeatContext(Context):
"local_ip": private_ip,
}
+ def _delete_key_file(self):
+ # Only remove the key file if it has been generated by yardstick
+ if self.yardstick_gen_key_file:
+ try:
+ utils.remove_file(self.key_filename)
+ utils.remove_file(self.key_filename + ".pub")
+ except OSError:
+ LOG.exception("There was an error removing the key file %s",
+ self.key_filename)
+
def undeploy(self):
"""undeploys stack from cloud"""
+ if self._flags.no_teardown:
+ LOG.info("Undeploying context '%s' SKIP", self.name)
+ return
+
if self.stack:
LOG.info("Undeploying context '%s' START", self.name)
self.stack.delete()
self.stack = None
LOG.info("Undeploying context '%s' DONE", self.name)
- if os.path.exists(self.key_filename):
- try:
- os.remove(self.key_filename)
- os.remove(self.key_filename + ".pub")
- except OSError:
- LOG.exception("Key filename %s", self.key_filename)
+ self._delete_key_file()
super(HeatContext, self).undeploy()
@@ -417,7 +498,7 @@ class HeatContext(Context):
with attribute name mapping when using external heat templates
"""
if isinstance(attr_name, collections.Mapping):
- node_name, cname = self.split_name(attr_name['name'])
+ node_name, cname = self.split_host_name(attr_name['name'])
if cname is None or cname != self.name:
return None
@@ -428,18 +509,46 @@ class HeatContext(Context):
server.private_ip = self.stack.outputs.get(
attr_name.get("private_ip_attr", object()), None)
+
+ # Try to find interfaces
+ for key, value in attr_name.get("interfaces", {}).items():
+ value["local_ip"] = server.private_ip
+ for k in ["local_mac", "netmask", "gateway_ip"]:
+ # Keep explicit None or missing entry as is
+ value[k] = self.stack.outputs.get(value[k])
+ server.interfaces.update({key: value})
else:
- server = self._server_map.get(attr_name, None)
+ try:
+ server = self._server_map[attr_name]
+ except KeyError:
+ attr_name_no_suffix = attr_name.split("-")[0]
+ server = self._server_map.get(attr_name_no_suffix, None)
if server is None:
return None
- pkey = pkg_resources.resource_string(
- 'yardstick.resources',
- h_join('files/yardstick_key', get_short_key_uuid(self.key_uuid))).decode('utf-8')
-
+ # Get the pkey
+ if self.yardstick_gen_key_file:
+ pkey = pkg_resources.resource_string(
+ 'yardstick.resources',
+ h_join('files/yardstick_key', self.name)).decode('utf-8')
+ key_filename = pkg_resources.resource_filename('yardstick.resources',
+ h_join('files/yardstick_key', self.name))
+ else:
+ # make sure the file exists before attempting to open it
+ if not os.path.exists(self.key_filename):
+ LOG.error("The key_filename provided %s does not exist!",
+ self.key_filename)
+ else:
+ try:
+ pkey = open(self.key_filename, 'r').read().decode('utf-8')
+ key_filename = self.key_filename
+ except IOError:
+ LOG.error("The key_filename provided (%s) is unreadable.",
+ self.key_filename)
result = {
"user": server.context.user,
"pkey": pkey,
+ "key_filename": key_filename,
"private_ip": server.private_ip,
"interfaces": server.interfaces,
"routing_table": self.generate_routing_table(server),
@@ -476,3 +585,30 @@ class HeatContext(Context):
"physical_network": network.physical_network,
}
return result
+
+ def _get_physical_nodes(self):
+ return self.nodes
+
+ def _get_physical_node_for_server(self, server_name):
+ node_name, ctx_name = self.split_host_name(server_name)
+ if ctx_name is None or self.name != ctx_name:
+ return None
+
+ matching_nodes = [s for s in self.servers if s.name == node_name]
+ if len(matching_nodes) == 0:
+ return None
+
+ server = openstack_utils.get_server(self.shade_client,
+ name_or_id=server_name)
+
+ if server:
+ server = server.toDict()
+ list_hypervisors = self.operator_client.list_hypervisors()
+
+ for hypervisor in list_hypervisors:
+ if hypervisor.hypervisor_hostname == server['OS-EXT-SRV-ATTR:hypervisor_hostname']:
+ for node in self.nodes:
+ if node['ip'] == hypervisor.host_ip:
+ return "{}.{}".format(node['name'], self._name)
+
+ return None
diff --git a/yardstick/benchmark/contexts/kubernetes.py b/yardstick/benchmark/contexts/kubernetes.py
index 2334e5076..e1553c72b 100644
--- a/yardstick/benchmark/contexts/kubernetes.py
+++ b/yardstick/benchmark/contexts/kubernetes.py
@@ -7,51 +7,57 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import absolute_import
+import collections
import logging
-import time
import pkg_resources
+import time
import paramiko
-from yardstick.benchmark.contexts.base import Context
-from yardstick.orchestrator.kubernetes import KubernetesTemplate
+from yardstick.benchmark import contexts
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.benchmark.contexts import model
+from yardstick.common import constants
+from yardstick.common import exceptions
from yardstick.common import kubernetes_utils as k8s_utils
from yardstick.common import utils
+from yardstick.orchestrator import kubernetes
+
LOG = logging.getLogger(__name__)
BITS_LENGTH = 2048
-class KubernetesContext(Context):
+class KubernetesContext(ctx_base.Context):
"""Class that handle nodes info"""
- __context_type__ = "Kubernetes"
+ __context_type__ = contexts.CONTEXT_KUBERNETES
def __init__(self):
- self.name = ''
self.ssh_key = ''
self.key_path = ''
self.public_key_path = ''
self.template = None
-
- super(KubernetesContext, self).__init__()
+ super(KubernetesContext, self).__init__(host_name_separator='-')
def init(self, attrs):
- self.name = attrs.get('name', '')
-
- template_cfg = attrs.get('servers', {})
- self.template = KubernetesTemplate(self.name, template_cfg)
+ super(KubernetesContext, self).init(attrs)
+ networks = attrs.get('networks', {})
+ self.template = kubernetes.KubernetesTemplate(self.name, attrs)
self.ssh_key = '{}-key'.format(self.name)
-
self.key_path = self._get_key_path()
self.public_key_path = '{}.pub'.format(self.key_path)
+ self._networks = collections.OrderedDict(
+ (net_name, model.Network(net_name, self, network))
+ for net_name, network in networks.items())
def deploy(self):
LOG.info('Creating ssh key')
self._set_ssh_key()
+ self._create_crd()
+ self._create_networks()
LOG.info('Launch containers')
self._create_rcs()
self._create_services()
@@ -65,6 +71,8 @@ class KubernetesContext(Context):
self._delete_rcs()
self._delete_pods()
self._delete_services()
+ self._delete_networks()
+ self._delete_crd()
super(KubernetesContext, self).undeploy()
@@ -91,7 +99,7 @@ class KubernetesContext(Context):
obj.delete()
def _create_rcs(self):
- for obj in self.template.k8s_objs:
+ for obj in self.template.rc_objs:
self._create_rc(obj.get_template())
def _create_rc(self, template):
@@ -102,14 +110,34 @@ class KubernetesContext(Context):
self._delete_rc(rc)
def _delete_rc(self, rc):
- k8s_utils.delete_replication_controller(rc)
+ k8s_utils.delete_replication_controller(rc, skip_codes=[404])
def _delete_pods(self):
for pod in self.template.pods:
self._delete_pod(pod)
def _delete_pod(self, pod):
- k8s_utils.delete_pod(pod)
+ k8s_utils.delete_pod(pod, skip_codes=[404])
+
+ def _create_crd(self):
+ LOG.info('Create Custom Resource Definition elements')
+ for crd in self.template.crd:
+ crd.create()
+
+ def _delete_crd(self):
+ LOG.info('Delete Custom Resource Definition elements')
+ for crd in self.template.crd:
+ crd.delete()
+
+ def _create_networks(self): # pragma: no cover
+ LOG.info('Create Network elements')
+ for net in self.template.network_objs:
+ net.create()
+
+ def _delete_networks(self): # pragma: no cover
+ LOG.info('Create Network elements')
+ for net in self.template.network_objs:
+ net.delete()
def _get_key_path(self):
task_id = self.name.split('-')[-1]
@@ -131,27 +159,76 @@ class KubernetesContext(Context):
k8s_utils.create_config_map(self.ssh_key, {'authorized_keys': key})
def _delete_ssh_key(self):
- k8s_utils.delete_config_map(self.ssh_key)
+ k8s_utils.delete_config_map(self.ssh_key, skip_codes=[404])
utils.remove_file(self.key_path)
utils.remove_file(self.public_key_path)
def _get_server(self, name):
- service_name = '{}-service'.format(name)
- service = k8s_utils.get_service_by_name(service_name).ports[0]
-
- host = {
- 'name': service.name,
+ node_ports = self._get_service_ports(name)
+ for sn_port in (sn_port for sn_port in node_ports
+ if sn_port['port'] == constants.SSH_PORT):
+ node_port = sn_port['node_port']
+ break
+ else:
+ raise exceptions.KubernetesSSHPortNotDefined()
+
+ return {
+ 'name': name,
'ip': self._get_node_ip(),
'private_ip': k8s_utils.get_pod_by_name(name).status.pod_ip,
- 'ssh_port': service.node_port,
+ 'ssh_port': node_port,
'user': 'root',
'key_filename': self.key_path,
+ 'interfaces': self._get_interfaces(name),
+ 'service_ports': node_ports
}
- return host
+ def _get_network(self, net_name):
+ """Retrieves the network object, searching by name
+
+ :param net_name: (str) replication controller name
+ :return: (dict) network information (name)
+ """
+ network = self._networks.get(net_name)
+ if not network:
+ return
+ return {'name': net_name}
+
+ def _get_interfaces(self, rc_name):
+ """Retrieves the network list of a replication controller
+
+ :param rc_name: (str) replication controller name
+ :return: (dict) names and information of the networks used in this
+ replication controller; those networks must be defined in the
+ Kubernetes cluster
+ """
+ rc = self.template.get_rc_by_name(rc_name)
+ if not rc:
+ return {}
+ return {name: {'network_name': name,
+ 'local_mac': None,
+ 'local_ip': None}
+ for name in rc.networks}
def _get_node_ip(self):
return k8s_utils.get_node_list().items[0].status.addresses[0].address
- def _get_network(self, attr_name):
+ def _get_physical_nodes(self):
return None
+
+ def _get_physical_node_for_server(self, server_name):
+ return None
+
+ def _get_service_ports(self, name):
+ service_name = '{}-service'.format(name)
+ service = k8s_utils.get_service_by_name(service_name)
+ if not service:
+ raise exceptions.KubernetesServiceObjectNotDefined()
+ ports = []
+ for port in service.ports:
+ ports.append({'name': port.name,
+ 'node_port': port.node_port,
+ 'port': port.port,
+ 'protocol': port.protocol,
+ 'target_port': port.target_port})
+ return ports
diff --git a/yardstick/benchmark/contexts/model.py b/yardstick/benchmark/contexts/model.py
index ae56066ee..a55c11f79 100644
--- a/yardstick/benchmark/contexts/model.py
+++ b/yardstick/benchmark/contexts/model.py
@@ -18,6 +18,8 @@ import logging
from collections import Mapping
from six.moves import range
+from yardstick.common import constants as consts
+
LOG = logging.getLogger(__name__)
@@ -132,11 +134,28 @@ class Network(Object):
if self.gateway_ip is None:
self.gateway_ip = "null"
- if "external_network" in attrs:
- self.router = Router("router", self.name,
- context, attrs["external_network"])
-
- Network.list.append(self)
+ self.net_flags = attrs.get('net_flags', {})
+ if self.is_existing():
+ self.subnet = attrs.get('subnet')
+ if not self.subnet:
+ raise Warning('No subnet set in existing netwrok!')
+ else:
+ if "external_network" in attrs:
+ self.router = Router("router", self.name,
+ context, attrs["external_network"])
+ Network.list.append(self)
+
+ def is_existing(self):
+ net_is_existing = self.net_flags.get(consts.IS_EXISTING)
+ if net_is_existing and not isinstance(net_is_existing, bool):
+ raise SyntaxError('Network flags should be bool type!')
+ return net_is_existing
+
+ def is_public(self):
+ net_is_public = self.net_flags.get(consts.IS_PUBLIC)
+ if net_is_public and not isinstance(net_is_public, bool):
+ raise SyntaxError('Network flags should be bool type!')
+ return net_is_public
def has_route_to(self, network_name):
"""determines if this network has a route to the named network"""
@@ -302,10 +321,13 @@ class Server(Object): # pragma: no cover
# otherwise add a port for every network with port name as network name
else:
ports = [network.name]
+ net_flags = network.net_flags
for port in ports:
port_name = "{0}-{1}-port".format(server_name, port)
- self.ports.setdefault(network.name, []).append(
- {"stack_name": port_name, "port": port})
+ port_info = {"stack_name": port_name, "port": port}
+ if net_flags:
+ port_info['net_flags'] = net_flags
+ self.ports.setdefault(network.name, []).append(port_info)
# we can't use secgroups if port_security_enabled is False
if network.port_security_enabled is False:
sec_group_id = None
@@ -314,11 +336,14 @@ class Server(Object): # pragma: no cover
sec_group_id = self.secgroup_name
# don't refactor to pass in network object, that causes JSON
# circular ref encode errors
- template.add_port(port_name, network.stack_name, network.subnet_stack_name,
- network.vnic_type, sec_group_id=sec_group_id,
+ template.add_port(port_name, network,
+ sec_group_id=sec_group_id,
provider=network.provider,
allowed_address_pairs=network.allowed_address_pairs)
- port_name_list.append(port_name)
+ if network.is_public():
+ port_name_list.insert(0, port_name)
+ else:
+ port_name_list.append(port_name)
if self.floating_ip:
external_network = self.floating_ip["external_network"]
diff --git a/yardstick/benchmark/contexts/node.py b/yardstick/benchmark/contexts/node.py
index ffc82c8ed..d233e02ae 100644
--- a/yardstick/benchmark/contexts/node.py
+++ b/yardstick/benchmark/contexts/node.py
@@ -7,8 +7,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import absolute_import
-import errno
import subprocess
import os
import collections
@@ -19,10 +17,11 @@ import six
import pkg_resources
from yardstick import ssh
+from yardstick.benchmark import contexts
from yardstick.benchmark.contexts.base import Context
from yardstick.common.constants import ANSIBLE_DIR, YARDSTICK_ROOT_PATH
from yardstick.common.ansible_common import AnsibleCommon
-from yardstick.common.yaml_loader import yaml_load
+from yardstick.common.exceptions import ContextUpdateCollectdForNodeError
LOG = logging.getLogger(__name__)
@@ -32,10 +31,9 @@ DEFAULT_DISPATCH = 'script'
class NodeContext(Context):
"""Class that handle nodes info"""
- __context_type__ = "Node"
+ __context_type__ = contexts.CONTEXT_NODE
def __init__(self):
- self.name = None
self.file_path = None
self.nodes = []
self.networks = {}
@@ -50,39 +48,11 @@ class NodeContext(Context):
}
super(NodeContext, self).__init__()
- def read_config_file(self):
- """Read from config file"""
-
- with open(self.file_path) as stream:
- LOG.info("Parsing pod file: %s", self.file_path)
- cfg = yaml_load(stream)
- return cfg
-
def init(self, attrs):
"""initializes itself from the supplied arguments"""
- self.name = attrs["name"]
- self.file_path = file_path = attrs.get("file", "pod.yaml")
+ super(NodeContext, self).init(attrs)
- try:
- cfg = self.read_config_file()
- except IOError as io_error:
- if io_error.errno != errno.ENOENT:
- raise
-
- self.file_path = os.path.join(YARDSTICK_ROOT_PATH, file_path)
- cfg = self.read_config_file()
-
- self.nodes.extend(cfg["nodes"])
- self.controllers.extend([node for node in cfg["nodes"]
- if node.get("role") == "Controller"])
- self.computes.extend([node for node in cfg["nodes"]
- if node.get("role") == "Compute"])
- self.baremetals.extend([node for node in cfg["nodes"]
- if node.get("role") == "Baremetal"])
- LOG.debug("Nodes: %r", self.nodes)
- LOG.debug("Controllers: %r", self.controllers)
- LOG.debug("Computes: %r", self.computes)
- LOG.debug("BareMetals: %r", self.baremetals)
+ cfg = self.read_pod_file(attrs)
self.env = attrs.get('env', {})
self.attrs = attrs
@@ -135,11 +105,37 @@ class NodeContext(Context):
playbook = os.path.join(ANSIBLE_DIR, playbook)
return playbook
+ def _get_physical_nodes(self):
+ return self.nodes
+
+ def _get_physical_node_for_server(self, server_name):
+
+ node_name, context_name = self.split_host_name(server_name)
+
+ if context_name is None or self.name != context_name:
+ return None
+
+ for n in (n for n in self.nodes if n["name"] == node_name):
+ return "{}.{}".format(n["name"], self._name)
+
+ return None
+
+ def update_collectd_options_for_node(self, options, attr_name):
+ node_name, _ = self.split_host_name(attr_name)
+
+ matching_nodes = (n for n in self.nodes if n["name"] == node_name)
+ try:
+ node = next(matching_nodes)
+ except StopIteration:
+ raise ContextUpdateCollectdForNodeError(attr_name=attr_name)
+
+ node["collectd"] = options
+
def _get_server(self, attr_name):
"""lookup server info by name from context
attr_name: a name for a server listed in nodes config file
"""
- node_name, name = self.split_name(attr_name)
+ node_name, name = self.split_host_name(attr_name)
if name is None or self.name != name:
return None
@@ -157,7 +153,7 @@ class NodeContext(Context):
except StopIteration:
pass
else:
- raise ValueError("Duplicate nodes!!! Nodes: %s %s",
+ raise ValueError("Duplicate nodes!!! Nodes: %s %s" %
(node, duplicate))
node["name"] = attr_name
@@ -204,7 +200,7 @@ class NodeContext(Context):
self.client._put_file_shell(script_file, '~/{}'.format(script))
cmd = 'sudo bash {} {}'.format(script, options)
- status, stdout, stderr = self.client.execute(cmd)
+ status, _, stderr = self.client.execute(cmd)
if status:
raise RuntimeError(stderr)
diff --git a/yardstick/benchmark/contexts/standalone/model.py b/yardstick/benchmark/contexts/standalone/model.py
index 85ae14b1d..a15426872 100644
--- a/yardstick/benchmark/contexts/standalone/model.py
+++ b/yardstick/benchmark/contexts/standalone/model.py
@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
import os
import re
import time
@@ -25,17 +24,19 @@ from netaddr import IPNetwork
import xml.etree.ElementTree as ET
from yardstick import ssh
-from yardstick.common.constants import YARDSTICK_ROOT_PATH
-from yardstick.common.yaml_loader import yaml_load
+from yardstick.common import constants
+from yardstick.common import exceptions
+from yardstick.common import utils as common_utils
+from yardstick.common import yaml_loader
from yardstick.network_services.utils import PciAddress
from yardstick.network_services.helpers.cpu import CpuSysCores
-from yardstick.common.utils import write_file
+
LOG = logging.getLogger(__name__)
VM_TEMPLATE = """
<domain type="kvm">
- <name>{vm_name}</name>
+ <name>{vm_name}</name>
<uuid>{random_uuid}</uuid>
<memory unit="MB">{memory}</memory>
<currentMemory unit="MB">{memory}</currentMemory>
@@ -45,7 +46,7 @@ VM_TEMPLATE = """
<vcpu cpuset='{cpuset}'>{vcpu}</vcpu>
{cputune}
<os>
- <type arch="x86_64" machine="pc-i440fx-utopic">hvm</type>
+ <type arch="x86_64" machine="{machine}">hvm</type>
<boot dev="hd" />
</os>
<features>
@@ -80,9 +81,39 @@ VM_TEMPLATE = """
<source bridge="br-int" />
<model type='virtio'/>
</interface>
- </devices>
+ <serial type='pty'>
+ <target port='0'/>
+ </serial>
+ <console type='pty'>
+ <target type='serial' port='0'/>
+ </console>
+ </devices>
</domain>
"""
+
+USER_DATA_TEMPLATE = """
+cat > {user_file} <<EOF
+#cloud-config
+preserve_hostname: false
+hostname: {host}
+users:
+{user_config}
+EOF
+"""
+
+NETWORK_DATA_TEMPLATE = """
+cat > {network_file} <<EOF
+#cloud-config
+version: 2
+ethernets:
+ ens3:
+ match:
+ macaddress: {mac_address}
+ addresses:
+ - {ip_address}
+EOF
+"""
+
WAIT_FOR_BOOT = 30
@@ -100,12 +131,17 @@ class Libvirt(object):
@staticmethod
def virsh_create_vm(connection, cfg):
- err = connection.execute("virsh create %s" % cfg)[0]
- LOG.info("VM create status: %s", err)
+ LOG.info('VM create, XML config: %s', cfg)
+ status, _, error = connection.execute('virsh create %s' % cfg)
+ if status:
+ raise exceptions.LibvirtCreateError(error=error)
@staticmethod
def virsh_destroy_vm(vm_name, connection):
- connection.execute("virsh destroy %s" % vm_name)
+ LOG.info('VM destroy, VM name: %s', vm_name)
+ status, _, error = connection.execute('virsh destroy %s' % vm_name)
+ if status:
+ LOG.warning('Error destroying VM %s. Error: %s', vm_name, error)
@staticmethod
def _add_interface_address(interface, pci_address):
@@ -126,7 +162,8 @@ class Libvirt(object):
return vm_pci
@classmethod
- def add_ovs_interface(cls, vpath, port_num, vpci, vports_mac, xml):
+ def add_ovs_interface(cls, vpath, port_num, vpci, vports_mac, xml_str,
+ queues):
"""Add a DPDK OVS 'interface' XML node in 'devices' node
<devices>
@@ -150,7 +187,7 @@ class Libvirt(object):
vhost_path = ('{0}/var/run/openvswitch/dpdkvhostuser{1}'.
format(vpath, port_num))
- root = ET.parse(xml)
+ root = ET.fromstring(xml_str)
pci_address = PciAddress(vpci.strip())
device = root.find('devices')
@@ -168,17 +205,17 @@ class Libvirt(object):
model.set('type', 'virtio')
driver = ET.SubElement(interface, 'driver')
- driver.set('queues', '4')
+ driver.set('queues', str(queues))
host = ET.SubElement(driver, 'host')
host.set('mrg_rxbuf', 'off')
cls._add_interface_address(interface, pci_address)
- root.write(xml)
+ return ET.tostring(root)
@classmethod
- def add_sriov_interfaces(cls, vm_pci, vf_pci, vf_mac, xml):
+ def add_sriov_interfaces(cls, vm_pci, vf_pci, vf_mac, xml_str):
"""Add a SR-IOV 'interface' XML node in 'devices' node
<devices>
@@ -201,7 +238,7 @@ class Libvirt(object):
-sr_iov-how_sr_iov_libvirt_works
"""
- root = ET.parse(xml)
+ root = ET.fromstring(xml_str)
device = root.find('devices')
interface = ET.SubElement(device, 'interface')
@@ -212,27 +249,53 @@ class Libvirt(object):
mac.set('address', vf_mac)
source = ET.SubElement(interface, 'source')
- addr = ET.SubElement(source, 'address')
pci_address = PciAddress(vf_pci.strip())
- cls._add_interface_address(addr, pci_address)
+ cls._add_interface_address(source, pci_address)
pci_vm_address = PciAddress(vm_pci.strip())
cls._add_interface_address(interface, pci_vm_address)
- root.write(xml)
+ return ET.tostring(root)
@staticmethod
- def create_snapshot_qemu(connection, index, vm_image):
- # build snapshot image
- image = "/var/lib/libvirt/images/%s.qcow2" % index
- connection.execute("rm %s" % image)
- qemu_template = "qemu-img create -f qcow2 -o backing_file=%s %s"
- connection.execute(qemu_template % (vm_image, image))
+ def create_snapshot_qemu(connection, index, base_image):
+ """Create the snapshot image for a VM using a base image
- return image
+ :param connection: SSH connection to the remote host
+ :param index: index of the VM to be spawn
+ :param base_image: path of the VM base image in the remote host
+ :return: snapshot image path
+ """
+ vm_image = '/var/lib/libvirt/images/%s.qcow2' % index
+ connection.execute('rm -- "%s"' % vm_image)
+ status, _, _ = connection.execute('test -r %s' % base_image)
+ if status:
+ if not os.access(base_image, os.R_OK):
+ raise exceptions.LibvirtQemuImageBaseImageNotPresent(
+ vm_image=vm_image, base_image=base_image)
+ # NOTE(ralonsoh): done in two steps to avoid root permission
+ # issues.
+ LOG.info('Copy %s from execution host to remote host', base_image)
+ file_name = os.path.basename(os.path.normpath(base_image))
+ connection.put_file(base_image, '/tmp/%s' % file_name)
+ status, _, error = connection.execute(
+ 'mv -- "/tmp/%s" "%s"' % (file_name, base_image))
+ if status:
+ raise exceptions.LibvirtQemuImageCreateError(
+ vm_image=vm_image, base_image=base_image, error=error)
+
+ LOG.info('Convert image %s to %s', base_image, vm_image)
+ qemu_cmd = ('qemu-img create -f qcow2 -o backing_file=%s %s' %
+ (base_image, vm_image))
+ status, _, error = connection.execute(qemu_cmd)
+ if status:
+ raise exceptions.LibvirtQemuImageCreateError(
+ vm_image=vm_image, base_image=base_image, error=error)
+ return vm_image
@classmethod
- def build_vm_xml(cls, connection, flavor, cfg, vm_name, index):
+ def build_vm_xml(cls, connection, flavor, vm_name, index, cdrom_img):
+ """Build the XML from the configuration parameters"""
memory = flavor.get('ram', '4096')
extra_spec = flavor.get('extra_specs', {})
cpu = extra_spec.get('hw:cpu_cores', '2')
@@ -244,6 +307,7 @@ class Libvirt(object):
cpuset = Libvirt.pin_vcpu_for_perf(connection, hw_socket)
cputune = extra_spec.get('cputune', '')
+ machine = extra_spec.get('machine_type', 'pc-i440fx-xenial')
mac = StandaloneContextHelper.get_mac_address(0x00)
image = cls.create_snapshot_qemu(connection, index,
flavor.get("images", None))
@@ -254,11 +318,13 @@ class Libvirt(object):
memory=memory, vcpu=vcpu, cpu=cpu,
numa_cpus=numa_cpus,
socket=socket, threads=threads,
- vm_image=image, cpuset=cpuset, cputune=cputune)
+ vm_image=image, cpuset=cpuset,
+ machine=machine, cputune=cputune)
- write_file(cfg, vm_xml)
+ # Add CD-ROM device
+ vm_xml = Libvirt.add_cdrom(cdrom_img, vm_xml)
- return [vcpu, mac]
+ return vm_xml, mac
@staticmethod
def update_interrupts_hugepages_perf(connection):
@@ -278,6 +344,82 @@ class Libvirt(object):
cpuset = "%s,%s" % (cores, threads)
return cpuset
+ @classmethod
+ def write_file(cls, file_name, xml_str):
+ """Dump a XML string to a file"""
+ root = ET.fromstring(xml_str)
+ et = ET.ElementTree(element=root)
+ et.write(file_name, encoding='utf-8', method='xml')
+
+ @classmethod
+ def add_cdrom(cls, file_path, xml_str):
+ """Add a CD-ROM disk XML node in 'devices' node
+
+ <devices>
+ <disk type='file' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source file='/var/lib/libvirt/images/data.img'/>
+ <target dev='hdb'/>
+ <readonly/>
+ </disk>
+ ...
+ </devices>
+ """
+
+ root = ET.fromstring(xml_str)
+ device = root.find('devices')
+
+ disk = ET.SubElement(device, 'disk')
+ disk.set('type', 'file')
+ disk.set('device', 'cdrom')
+
+ driver = ET.SubElement(disk, 'driver')
+ driver.set('name', 'qemu')
+ driver.set('type', 'raw')
+
+ source = ET.SubElement(disk, 'source')
+ source.set('file', file_path)
+
+ target = ET.SubElement(disk, 'target')
+ target.set('dev', 'hdb')
+
+ ET.SubElement(disk, 'readonly')
+ return ET.tostring(root)
+
+ @staticmethod
+ def gen_cdrom_image(connection, file_path, vm_name, vm_user, key_filename, mac, ip):
+ """Generate ISO image for CD-ROM """
+
+ user_config = [" - name: {user_name}",
+ " ssh_authorized_keys:",
+ " - {pub_key_str}"]
+ if vm_user != "root":
+ user_config.append(" sudo: ALL=(ALL) NOPASSWD:ALL")
+
+ meta_data = "/tmp/meta-data"
+ user_data = "/tmp/user-data"
+ network_data = "/tmp/network-config"
+ with open(".".join([key_filename, "pub"]), "r") as pub_key_file:
+ pub_key_str = pub_key_file.read().rstrip()
+ user_conf = os.linesep.join(user_config).format(pub_key_str=pub_key_str, user_name=vm_user)
+
+ cmd_lst = [
+ "touch %s" % meta_data,
+ USER_DATA_TEMPLATE.format(user_file=user_data, host=vm_name, user_config=user_conf),
+ NETWORK_DATA_TEMPLATE.format(network_file=network_data, mac_address=mac,
+ ip_address=ip),
+ "genisoimage -output {0} -volid cidata -joliet -r {1} {2} {3}".format(file_path,
+ meta_data,
+ user_data,
+ network_data),
+ "rm {0} {1} {2}".format(meta_data, user_data, network_data),
+ ]
+ for cmd in cmd_lst:
+ LOG.info(cmd)
+ status, _, error = connection.execute(cmd)
+ if status:
+ raise exceptions.LibvirtQemuImageCreateError(error=error)
+
class StandaloneContextHelper(object):
""" This class handles all the common code for standalone
@@ -287,8 +429,9 @@ class StandaloneContextHelper(object):
super(StandaloneContextHelper, self).__init__()
@staticmethod
- def install_req_libs(connection, extra_pkgs=[]):
- pkgs = ["qemu-kvm", "libvirt-bin", "bridge-utils", "numactl", "fping"]
+ def install_req_libs(connection, extra_pkgs=None):
+ extra_pkgs = extra_pkgs or []
+ pkgs = ["qemu-kvm", "libvirt-bin", "bridge-utils", "numactl", "fping", "genisoimage"]
pkgs.extend(extra_pkgs)
cmd_template = "dpkg-query -W --showformat='${Status}\\n' \"%s\"|grep 'ok installed'"
for pkg in pkgs:
@@ -304,7 +447,7 @@ class StandaloneContextHelper(object):
return driver
@classmethod
- def get_nic_details(cls, connection, networks, dpdk_nic_bind):
+ def get_nic_details(cls, connection, networks, dpdk_devbind):
for key, ports in networks.items():
if key == "mgmt":
continue
@@ -314,11 +457,11 @@ class StandaloneContextHelper(object):
driver = cls.get_kernel_module(connection, phy_ports, phy_driver)
# Make sure that ports are bound to kernel drivers e.g. i40e/ixgbe
- bind_cmd = "{dpdk_nic_bind} --force -b {driver} {port}"
+ bind_cmd = "{dpdk_devbind} --force -b {driver} {port}"
lshw_cmd = "lshw -c network -businfo | grep '{port}'"
link_show_cmd = "ip -s link show {interface}"
- cmd = bind_cmd.format(dpdk_nic_bind=dpdk_nic_bind,
+ cmd = bind_cmd.format(dpdk_devbind=dpdk_devbind,
driver=driver, port=ports['phy_port'])
connection.execute(cmd)
@@ -351,25 +494,18 @@ class StandaloneContextHelper(object):
return pf_vfs
- def read_config_file(self):
- """Read from config file"""
-
- with open(self.file_path) as stream:
- LOG.info("Parsing pod file: %s", self.file_path)
- cfg = yaml_load(stream)
- return cfg
-
def parse_pod_file(self, file_path, nfvi_role='Sriov'):
self.file_path = file_path
nodes = []
nfvi_host = []
try:
- cfg = self.read_config_file()
+ cfg = yaml_loader.read_yaml_file(self.file_path)
except IOError as io_error:
if io_error.errno != errno.ENOENT:
raise
- self.file_path = os.path.join(YARDSTICK_ROOT_PATH, file_path)
- cfg = self.read_config_file()
+ self.file_path = os.path.join(constants.YARDSTICK_ROOT_PATH,
+ file_path)
+ cfg = yaml_loader.read_yaml_file(self.file_path)
nodes.extend([node for node in cfg["nodes"] if str(node["role"]) != nfvi_role])
nfvi_host.extend([node for node in cfg["nodes"] if str(node["role"]) == nfvi_role])
@@ -419,8 +555,41 @@ class StandaloneContextHelper(object):
ip = cls.get_mgmt_ip(connection, node["mac"], mgmtip, node)
if ip:
node["ip"] = ip
+ client = ssh.SSH.from_node(node)
+ LOG.debug("OS version: %s",
+ common_utils.get_os_version(client))
+ LOG.debug("Kernel version: %s",
+ common_utils.get_kernel_version(client))
+ vnfs_data = common_utils.get_sample_vnf_info(client)
+ for vnf_name, vnf_data in vnfs_data.items():
+ LOG.debug("VNF name: '%s', commit ID/branch: '%s'",
+ vnf_name, vnf_data["branch_commit"])
+ LOG.debug("%s", vnf_data["md5_result"])
return nodes
+ @classmethod
+ def check_update_key(cls, connection, node, vm_name, id_name, cdrom_img, mac):
+ # Generate public/private keys if private key file is not provided
+ user_name = node.get('user')
+ if not user_name:
+ node['user'] = 'root'
+ user_name = node.get('user')
+ if not node.get('key_filename'):
+ key_filename = ''.join(
+ [constants.YARDSTICK_ROOT_PATH,
+ 'yardstick/resources/files/yardstick_key-',
+ id_name, '-', vm_name])
+ ssh.SSH.gen_keys(key_filename)
+ node['key_filename'] = key_filename
+ # Update image with public key
+ key_filename = node.get('key_filename')
+ ip_netmask = "{0}/{1}".format(node.get('ip'), node.get('netmask'))
+ ip_netmask = "{0}/{1}".format(node.get('ip'),
+ IPNetwork(ip_netmask).prefixlen)
+ Libvirt.gen_cdrom_image(connection, cdrom_img, vm_name, user_name, key_filename, mac,
+ ip_netmask)
+ return node
+
class Server(object):
""" This class handles geting vnf nodes
@@ -433,7 +602,7 @@ class Server(object):
for key, vfs in vnf["network_ports"].items():
if key == "mgmt":
- mgmtip = str(IPNetwork(vfs['cidr']).ip)
+ mgmt_cidr = IPNetwork(vfs['cidr'])
continue
vf = ports[vfs[0]]
@@ -450,14 +619,15 @@ class Server(object):
})
index = index + 1
- return mgmtip, interfaces
+ return mgmt_cidr, interfaces
@classmethod
def generate_vnf_instance(cls, flavor, ports, ip, key, vnf, mac):
- mgmtip, interfaces = cls.build_vnf_interfaces(vnf, ports)
+ mgmt_cidr, interfaces = cls.build_vnf_interfaces(vnf, ports)
result = {
- "ip": mgmtip,
+ "ip": str(mgmt_cidr.ip),
+ "netmask": str(mgmt_cidr.netmask),
"mac": mac,
"host": ip,
"user": flavor.get('user', 'root'),
@@ -500,7 +670,7 @@ class OvsDeploy(object):
StandaloneContextHelper.install_req_libs(self.connection, pkgs)
def ovs_deploy(self):
- ovs_deploy = os.path.join(YARDSTICK_ROOT_PATH,
+ ovs_deploy = os.path.join(constants.YARDSTICK_ROOT_PATH,
"yardstick/resources/scripts/install/",
self.OVS_DEPLOY_SCRIPT)
if os.path.isfile(ovs_deploy):
@@ -516,4 +686,6 @@ class OvsDeploy(object):
cmd = "sudo -E %s --ovs='%s' --dpdk='%s' -p='%s'" % (remote_ovs_deploy,
ovs, dpdk, http_proxy)
- self.connection.execute(cmd)
+ exit_status, _, stderr = self.connection.execute(cmd)
+ if exit_status:
+ raise exceptions.OVSDeployError(stderr=stderr)
diff --git a/yardstick/benchmark/contexts/standalone/ovs_dpdk.py b/yardstick/benchmark/contexts/standalone/ovs_dpdk.py
index 3755b84e9..c6e19f614 100644
--- a/yardstick/benchmark/contexts/standalone/ovs_dpdk.py
+++ b/yardstick/benchmark/contexts/standalone/ovs_dpdk.py
@@ -12,33 +12,34 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
-import os
-import logging
+import io
import collections
+import logging
+import os
+import re
import time
-from collections import OrderedDict
-
from yardstick import ssh
+from yardstick.benchmark import contexts
+from yardstick.benchmark.contexts import base
+from yardstick.benchmark.contexts.standalone import model
+from yardstick.common import exceptions
+from yardstick.common import utils as common_utils
+from yardstick.network_services import utils
from yardstick.network_services.utils import get_nsb_option
-from yardstick.network_services.utils import provision_tool
-from yardstick.benchmark.contexts.base import Context
-from yardstick.benchmark.contexts.standalone.model import Libvirt
-from yardstick.benchmark.contexts.standalone.model import StandaloneContextHelper
-from yardstick.benchmark.contexts.standalone.model import Server
-from yardstick.benchmark.contexts.standalone.model import OvsDeploy
-from yardstick.network_services.utils import PciAddress
+
LOG = logging.getLogger(__name__)
+MAIN_BRIDGE = 'br0'
-class OvsDpdkContext(Context):
+
+class OvsDpdkContext(base.Context):
""" This class handles OVS standalone nodes - VM running on Non-Managed NFVi
Configuration: ovs_dpdk
"""
- __context_type__ = "StandaloneOvsDpdk"
+ __context_type__ = contexts.CONTEXT_STANDALONEOVSDPDK
SUPPORTED_OVS_TO_DPDK_MAP = {
'2.6.0': '16.07.1',
@@ -46,36 +47,42 @@ class OvsDpdkContext(Context):
'2.7.0': '16.11.1',
'2.7.1': '16.11.2',
'2.7.2': '16.11.3',
- '2.8.0': '17.05.2'
+ '2.8.0': '17.05.2',
+ '2.8.1': '17.05.2'
}
DEFAULT_OVS = '2.6.0'
-
- PKILL_TEMPLATE = "pkill %s %s"
+ CMD_TIMEOUT = 30
+ DEFAULT_USER_PATH = '/usr/local'
def __init__(self):
self.file_path = None
self.sriov = []
self.first_run = True
- self.dpdk_nic_bind = ""
+ self.dpdk_devbind = os.path.join(get_nsb_option('bin_path'),
+ 'dpdk-devbind.py')
self.vm_names = []
- self.name = None
self.nfvi_host = []
self.nodes = []
self.networks = {}
self.attrs = {}
self.vm_flavor = None
self.servers = None
- self.helper = StandaloneContextHelper()
- self.vnf_node = Server()
+ self.helper = model.StandaloneContextHelper()
+ self.vnf_node = model.Server()
self.ovs_properties = {}
self.wait_for_vswitchd = 10
super(OvsDpdkContext, self).__init__()
+ def get_dpdk_socket_mem_size(self, socket_id):
+ """Get the size of OvS DPDK socket memory (Mb)"""
+ ram = self.ovs_properties.get("ram", {})
+ return ram.get('socket_%d' % (socket_id), 2048)
+
def init(self, attrs):
"""initializes itself from the supplied arguments"""
+ super(OvsDpdkContext, self).init(attrs)
- self.name = attrs["name"]
self.file_path = attrs.get("file", "pod.yaml")
self.nodes, self.nfvi_host, self.host_mgmt = \
@@ -94,34 +101,32 @@ class OvsDpdkContext(Context):
LOG.debug("Networks: %r", self.networks)
def setup_ovs(self):
- vpath = self.ovs_properties.get("vpath", "/usr/local")
- xargs_kill_cmd = self.PKILL_TEMPLATE % ('-9', 'ovs')
-
+ """Initialize OVS-DPDK"""
+ vpath = self.ovs_properties.get('vpath', self.DEFAULT_USER_PATH)
create_from = os.path.join(vpath, 'etc/openvswitch/conf.db')
create_to = os.path.join(vpath, 'share/openvswitch/vswitch.ovsschema')
cmd_list = [
- "chmod 0666 /dev/vfio/*",
- "chmod a+x /dev/vfio",
- "pkill -9 ovs",
- xargs_kill_cmd,
- "killall -r 'ovs*'",
- "mkdir -p {0}/etc/openvswitch".format(vpath),
- "mkdir -p {0}/var/run/openvswitch".format(vpath),
- "rm {0}/etc/openvswitch/conf.db".format(vpath),
- "ovsdb-tool create {0} {1}".format(create_from, create_to),
- "modprobe vfio-pci",
- "chmod a+x /dev/vfio",
- "chmod 0666 /dev/vfio/*",
+ 'killall -r "ovs.*" -q | true',
+ 'mkdir -p {0}/etc/openvswitch'.format(vpath),
+ 'mkdir -p {0}/var/run/openvswitch'.format(vpath),
+ 'rm {0}/etc/openvswitch/conf.db | true'.format(vpath),
+ 'ovsdb-tool create {0} {1}'.format(create_from, create_to),
+ 'modprobe vfio-pci',
+ 'chmod a+x /dev/vfio',
+ 'chmod 0666 /dev/vfio/*',
]
+
+ bind_cmd = '%s --force -b vfio-pci {port}' % self.dpdk_devbind
+ for port in self.networks.values():
+ cmd_list.append(bind_cmd.format(port=port.get('phy_port')))
+
for cmd in cmd_list:
- self.connection.execute(cmd)
- bind_cmd = "{dpdk_nic_bind} --force -b {driver} {port}"
- phy_driver = "vfio-pci"
- for _, port in self.networks.items():
- vpci = port.get("phy_port")
- self.connection.execute(bind_cmd.format(dpdk_nic_bind=self.dpdk_nic_bind,
- driver=phy_driver, port=vpci))
+ LOG.info(cmd)
+ exit_status, _, stderr = self.connection.execute(
+ cmd, timeout=self.CMD_TIMEOUT)
+ if exit_status:
+ raise exceptions.OVSSetupError(command=cmd, error=stderr)
def start_ovs_serverswitch(self):
vpath = self.ovs_properties.get("vpath")
@@ -134,9 +139,6 @@ class OvsDpdkContext(Context):
if pmd_cpu_mask:
pmd_mask = pmd_cpu_mask
- socket0 = self.ovs_properties.get("ram", {}).get("socket_0", "2048")
- socket1 = self.ovs_properties.get("ram", {}).get("socket_1", "2048")
-
ovs_other_config = "ovs-vsctl {0}set Open_vSwitch . other_config:{1}"
detach_cmd = "ovs-vswitchd unix:{0}{1} --pidfile --detach --log-file={2}"
@@ -144,16 +146,23 @@ class OvsDpdkContext(Context):
if lcore_mask:
lcore_mask = ovs_other_config.format("--no-wait ", "dpdk-lcore-mask='%s'" % lcore_mask)
+ max_idle = self.ovs_properties.get("max_idle", '')
+ if max_idle:
+ max_idle = ovs_other_config.format("", "max-idle=%s" % max_idle)
+
cmd_list = [
"mkdir -p /usr/local/var/run/openvswitch",
"mkdir -p {}".format(os.path.dirname(log_path)),
- "ovsdb-server --remote=punix:/{0}/{1} --pidfile --detach".format(vpath,
- ovs_sock_path),
+ ("ovsdb-server --remote=punix:/{0}/{1} --remote=ptcp:6640"
+ " --pidfile --detach").format(vpath, ovs_sock_path),
ovs_other_config.format("--no-wait ", "dpdk-init=true"),
- ovs_other_config.format("--no-wait ", "dpdk-socket-mem='%s,%s'" % (socket0, socket1)),
+ ovs_other_config.format("--no-wait ", "dpdk-socket-mem='%d,%d'" % (
+ self.get_dpdk_socket_mem_size(0),
+ self.get_dpdk_socket_mem_size(1))),
lcore_mask,
detach_cmd.format(vpath, ovs_sock_path, log_path),
ovs_other_config.format("", "pmd-cpu-mask=%s" % pmd_mask),
+ max_idle,
]
for cmd in cmd_list:
@@ -163,56 +172,92 @@ class OvsDpdkContext(Context):
def setup_ovs_bridge_add_flows(self):
dpdk_args = ""
- dpdk_list = []
vpath = self.ovs_properties.get("vpath", "/usr/local")
version = self.ovs_properties.get('version', {})
ovs_ver = [int(x) for x in version.get('ovs', self.DEFAULT_OVS).split('.')]
- ovs_add_port = \
- "ovs-vsctl add-port {br} {port} -- set Interface {port} type={type_}{dpdk_args}"
- ovs_add_queue = "ovs-vsctl set Interface {port} options:n_rxq={queue}"
- chmod_vpath = "chmod 0777 {0}/var/run/openvswitch/dpdkvhostuser*"
-
- cmd_dpdk_list = [
- "ovs-vsctl del-br br0",
- "rm -rf {0}/var/run/openvswitch/dpdkvhostuser*".format(vpath),
- "ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev",
+ ovs_add_port = ('ovs-vsctl add-port {br} {port} -- '
+ 'set Interface {port} type={type_}{dpdk_args}'
+ '{dpdk_rxq}{pmd_rx_aff}')
+ chmod_vpath = 'chmod 0777 {0}/var/run/openvswitch/dpdkvhostuser*'
+
+ cmd_list = [
+ 'ovs-vsctl --if-exists del-br {0}'.format(MAIN_BRIDGE),
+ 'rm -rf {0}/var/run/openvswitch/dpdkvhostuser*'.format(vpath),
+ 'ovs-vsctl add-br {0} -- set bridge {0} datapath_type=netdev'.
+ format(MAIN_BRIDGE)
]
+ dpdk_rxq = ""
+ queues = self.ovs_properties.get("queues")
+ if queues:
+ dpdk_rxq = " options:n_rxq={queue}".format(queue=queues)
- ordered_network = OrderedDict(self.networks)
+ # Sorting the array to make sure we execute dpdk0... in the order
+ ordered_network = collections.OrderedDict(
+ sorted(self.networks.items(), key=lambda t: t[1].get('port_num', 0)))
+ pmd_rx_aff_ports = self.ovs_properties.get("dpdk_pmd-rxq-affinity", {})
for index, vnf in enumerate(ordered_network.values()):
if ovs_ver >= [2, 7, 0]:
dpdk_args = " options:dpdk-devargs=%s" % vnf.get("phy_port")
- dpdk_list.append(ovs_add_port.format(br='br0', port='dpdk%s' % vnf.get("port_num", 0),
- type_='dpdk', dpdk_args=dpdk_args))
- dpdk_list.append(ovs_add_queue.format(port='dpdk%s' % vnf.get("port_num", 0),
- queue=self.ovs_properties.get("queues", 1)))
-
- # Sorting the array to make sure we execute dpdk0... in the order
- list.sort(dpdk_list)
- cmd_dpdk_list.extend(dpdk_list)
+ affinity = pmd_rx_aff_ports.get(vnf.get("port_num", -1), "")
+ if affinity:
+ pmd_rx_aff = ' other_config:pmd-rxq-affinity=' \
+ '"{affinity}"'.format(affinity=affinity)
+ else:
+ pmd_rx_aff = ""
+ cmd_list.append(ovs_add_port.format(
+ br=MAIN_BRIDGE, port='dpdk%s' % vnf.get("port_num", 0),
+ type_='dpdk', dpdk_args=dpdk_args, dpdk_rxq=dpdk_rxq,
+ pmd_rx_aff=pmd_rx_aff))
# Need to do two for loop to maintain the dpdk/vhost ports.
+ pmd_rx_aff_ports = self.ovs_properties.get("vhost_pmd-rxq-affinity",
+ {})
for index, _ in enumerate(ordered_network):
- cmd_dpdk_list.append(ovs_add_port.format(br='br0', port='dpdkvhostuser%s' % index,
- type_='dpdkvhostuser', dpdk_args=""))
-
- for cmd in cmd_dpdk_list:
- LOG.info(cmd)
- self.connection.execute(cmd)
-
- # Fixme: add flows code
- ovs_flow = "ovs-ofctl add-flow br0 in_port=%s,action=output:%s"
-
+ affinity = pmd_rx_aff_ports.get(index)
+ if affinity:
+ pmd_rx_aff = ' other_config:pmd-rxq-affinity=' \
+ '"{affinity}"'.format(affinity=affinity)
+ else:
+ pmd_rx_aff = ""
+ cmd_list.append(ovs_add_port.format(
+ br=MAIN_BRIDGE, port='dpdkvhostuser%s' % index,
+ type_='dpdkvhostuser', dpdk_args="", dpdk_rxq=dpdk_rxq,
+ pmd_rx_aff=pmd_rx_aff))
+
+ ovs_flow = ("ovs-ofctl add-flow {0} in_port=%s,action=output:%s".
+ format(MAIN_BRIDGE))
network_count = len(ordered_network) + 1
for in_port, out_port in zip(range(1, network_count),
range(network_count, network_count * 2)):
- self.connection.execute(ovs_flow % (in_port, out_port))
- self.connection.execute(ovs_flow % (out_port, in_port))
+ cmd_list.append(ovs_flow % (in_port, out_port))
+ cmd_list.append(ovs_flow % (out_port, in_port))
+
+ cmd_list.append(chmod_vpath.format(vpath))
- self.connection.execute(chmod_vpath.format(vpath))
+ for cmd in cmd_list:
+ LOG.info(cmd)
+ exit_status, _, stderr = self.connection.execute(
+ cmd, timeout=self.CMD_TIMEOUT)
+ if exit_status:
+ raise exceptions.OVSSetupError(command=cmd, error=stderr)
+
+ def _check_hugepages(self):
+ meminfo = io.BytesIO()
+ self.connection.get_file_obj('/proc/meminfo', meminfo)
+ regex = re.compile(r"HugePages_Total:\s+(?P<hp_total>\d+)[\n\r]"
+ r"HugePages_Free:\s+(?P<hp_free>\d+)")
+ match = regex.search(meminfo.getvalue().decode('utf-8'))
+ if not match:
+ raise exceptions.OVSHugepagesInfoError()
+ if int(match.group('hp_total')) == 0:
+ raise exceptions.OVSHugepagesNotConfigured()
+ if int(match.group('hp_free')) == 0:
+ raise exceptions.OVSHugepagesZeroFree(
+ total_hugepages=int(match.group('hp_total')))
def cleanup_ovs_dpdk_env(self):
- self.connection.execute("ovs-vsctl del-br br0")
+ self.connection.execute(
+ 'ovs-vsctl --if-exists del-br {0}'.format(MAIN_BRIDGE))
self.connection.execute("pkill -9 ovs")
def check_ovs_dpdk_env(self):
@@ -224,13 +269,15 @@ class OvsDpdkContext(Context):
supported_version = self.SUPPORTED_OVS_TO_DPDK_MAP.get(ovs_ver, None)
if supported_version is None or supported_version.split('.')[:2] != dpdk_ver[:2]:
- raise Exception("Unsupported ovs '{}'. Please check the config...".format(ovs_ver))
+ raise exceptions.OVSUnsupportedVersion(
+ ovs_version=ovs_ver,
+ ovs_to_dpdk_map=self.SUPPORTED_OVS_TO_DPDK_MAP)
status = self.connection.execute("ovs-vsctl -V | grep -i '%s'" % ovs_ver)[0]
if status:
- deploy = OvsDeploy(self.connection,
- get_nsb_option("bin_path"),
- self.ovs_properties)
+ deploy = model.OvsDeploy(self.connection,
+ utils.get_nsb_option("bin_path"),
+ self.ovs_properties)
deploy.ovs_deploy()
def deploy(self):
@@ -241,26 +288,21 @@ class OvsDpdkContext(Context):
return
self.connection = ssh.SSH.from_node(self.host_mgmt)
- self.dpdk_nic_bind = provision_tool(
- self.connection,
- os.path.join(get_nsb_option("bin_path"), "dpdk-devbind.py"))
# Check dpdk/ovs version, if not present install
self.check_ovs_dpdk_env()
# Todo: NFVi deploy (sriov, vswitch, ovs etc) based on the config.
- StandaloneContextHelper.install_req_libs(self.connection)
- self.networks = StandaloneContextHelper.get_nic_details(self.connection,
- self.networks,
- self.dpdk_nic_bind)
+ model.StandaloneContextHelper.install_req_libs(self.connection)
+ self.networks = model.StandaloneContextHelper.get_nic_details(
+ self.connection, self.networks, self.dpdk_devbind)
self.setup_ovs()
self.start_ovs_serverswitch()
self.setup_ovs_bridge_add_flows()
self.nodes = self.setup_ovs_dpdk_context()
LOG.debug("Waiting for VM to come up...")
- self.nodes = StandaloneContextHelper.wait_for_vnfs_to_start(self.connection,
- self.servers,
- self.nodes)
+ self.nodes = model.StandaloneContextHelper.wait_for_vnfs_to_start(
+ self.connection, self.servers, self.nodes)
def undeploy(self):
@@ -271,16 +313,31 @@ class OvsDpdkContext(Context):
self.cleanup_ovs_dpdk_env()
# Bind nics back to kernel
- bind_cmd = "{dpdk_nic_bind} --force -b {driver} {port}"
+ bind_cmd = "{dpdk_devbind} --force -b {driver} {port}"
for port in self.networks.values():
vpci = port.get("phy_port")
phy_driver = port.get("driver")
- self.connection.execute(bind_cmd.format(dpdk_nic_bind=self.dpdk_nic_bind,
- driver=phy_driver, port=vpci))
+ self.connection.execute(bind_cmd.format(
+ dpdk_devbind=self.dpdk_devbind, driver=phy_driver, port=vpci))
# Todo: NFVi undeploy (sriov, vswitch, ovs etc) based on the config.
for vm in self.vm_names:
- Libvirt.check_if_vm_exists_and_delete(vm, self.connection)
+ model.Libvirt.check_if_vm_exists_and_delete(vm, self.connection)
+
+ def _get_physical_nodes(self):
+ return self.nfvi_host
+
+ def _get_physical_node_for_server(self, server_name):
+ node_name, ctx_name = self.split_host_name(server_name)
+ if ctx_name is None or self.name != ctx_name:
+ return None
+
+ matching_nodes = [s for s in self.servers if s == node_name]
+ if len(matching_nodes) == 0:
+ return None
+
+ # self.nfvi_host always contain only one host
+ return "{}.{}".format(self.nfvi_host[0]["name"], self._name)
def _get_server(self, attr_name):
"""lookup server info by name from context
@@ -288,7 +345,7 @@ class OvsDpdkContext(Context):
Keyword arguments:
attr_name -- A name for a server listed in nodes config file
"""
- node_name, name = self.split_name(attr_name)
+ node_name, name = self.split_host_name(attr_name)
if name is None or self.name != name:
return None
@@ -335,57 +392,78 @@ class OvsDpdkContext(Context):
return result
def configure_nics_for_ovs_dpdk(self):
- portlist = OrderedDict(self.networks)
+ portlist = collections.OrderedDict(self.networks)
for key in portlist:
- mac = StandaloneContextHelper.get_mac_address()
+ mac = model.StandaloneContextHelper.get_mac_address()
portlist[key].update({'mac': mac})
self.networks = portlist
LOG.info("Ports %s", self.networks)
- def _enable_interfaces(self, index, vfs, cfg):
+ def _enable_interfaces(self, index, vfs, xml_str):
vpath = self.ovs_properties.get("vpath", "/usr/local")
+ queue = self.ovs_properties.get("queues", 1)
vf = self.networks[vfs[0]]
port_num = vf.get('port_num', 0)
- vpci = PciAddress(vf['vpci'].strip())
+ vpci = utils.PciAddress(vf['vpci'].strip())
# Generate the vpci for the interfaces
slot = index + port_num + 10
vf['vpci'] = \
"{}:{}:{:02x}.{}".format(vpci.domain, vpci.bus, slot, vpci.function)
- Libvirt.add_ovs_interface(vpath, port_num, vf['vpci'], vf['mac'], str(cfg))
+ return model.Libvirt.add_ovs_interface(
+ vpath, port_num, vf['vpci'], vf['mac'], xml_str, queue)
def setup_ovs_dpdk_context(self):
nodes = []
self.configure_nics_for_ovs_dpdk()
- for index, (key, vnf) in enumerate(OrderedDict(self.servers).items()):
+ hp_total_mb = int(self.vm_flavor.get('ram', '4096')) * len(self.servers)
+ common_utils.setup_hugepages(self.connection, (hp_total_mb + \
+ self.get_dpdk_socket_mem_size(0) + \
+ self.get_dpdk_socket_mem_size(1)) * 1024)
+
+ self._check_hugepages()
+
+ for index, (key, vnf) in enumerate(collections.OrderedDict(
+ self.servers).items()):
cfg = '/tmp/vm_ovs_%d.xml' % index
- vm_name = "vm_%d" % index
+ vm_name = "vm-%d" % index
+ cdrom_img = "/var/lib/libvirt/images/cdrom-%d.img" % index
# 1. Check and delete VM if already exists
- Libvirt.check_if_vm_exists_and_delete(vm_name, self.connection)
+ model.Libvirt.check_if_vm_exists_and_delete(vm_name,
+ self.connection)
+ xml_str, mac = model.Libvirt.build_vm_xml(
+ self.connection, self.vm_flavor, vm_name, index, cdrom_img)
- _, mac = Libvirt.build_vm_xml(self.connection, self.vm_flavor,
- cfg, vm_name, index)
# 2: Cleanup already available VMs
- for vkey, vfs in OrderedDict(vnf["network_ports"]).items():
- if vkey == "mgmt":
- continue
- self._enable_interfaces(index, vfs, cfg)
+ for vfs in [vfs for vfs_name, vfs in vnf["network_ports"].items()
+ if vfs_name != 'mgmt']:
+ xml_str = self._enable_interfaces(index, vfs, xml_str)
# copy xml to target...
+ model.Libvirt.write_file(cfg, xml_str)
self.connection.put(cfg, cfg)
+ node = self.vnf_node.generate_vnf_instance(self.vm_flavor,
+ self.networks,
+ self.host_mgmt.get('ip'),
+ key, vnf, mac)
+ # Generate public/private keys if password or private key file is not provided
+ node = model.StandaloneContextHelper.check_update_key(self.connection,
+ node,
+ vm_name,
+ self.name,
+ cdrom_img,
+ mac)
+
+ # store vnf node details
+ nodes.append(node)
+
# NOTE: launch through libvirt
LOG.info("virsh create ...")
- Libvirt.virsh_create_vm(self.connection, cfg)
+ model.Libvirt.virsh_create_vm(self.connection, cfg)
self.vm_names.append(vm_name)
- # build vnf node details
- nodes.append(self.vnf_node.generate_vnf_instance(self.vm_flavor,
- self.networks,
- self.host_mgmt.get('ip'),
- key, vnf, mac))
-
return nodes
diff --git a/yardstick/benchmark/contexts/standalone/sriov.py b/yardstick/benchmark/contexts/standalone/sriov.py
index 9d8423b5f..e037dd85a 100644
--- a/yardstick/benchmark/contexts/standalone/sriov.py
+++ b/yardstick/benchmark/contexts/standalone/sriov.py
@@ -16,49 +16,47 @@ from __future__ import absolute_import
import os
import logging
import collections
-from collections import OrderedDict
from yardstick import ssh
+from yardstick.benchmark import contexts
+from yardstick.benchmark.contexts import base
+from yardstick.benchmark.contexts.standalone import model
+from yardstick.common import utils
from yardstick.network_services.utils import get_nsb_option
-from yardstick.network_services.utils import provision_tool
-from yardstick.benchmark.contexts.base import Context
-from yardstick.benchmark.contexts.standalone.model import Libvirt
-from yardstick.benchmark.contexts.standalone.model import StandaloneContextHelper
-from yardstick.benchmark.contexts.standalone.model import Server
from yardstick.network_services.utils import PciAddress
LOG = logging.getLogger(__name__)
-class SriovContext(Context):
+class SriovContext(base.Context):
""" This class handles SRIOV standalone nodes - VM running on Non-Managed NFVi
Configuration: sr-iov
"""
- __context_type__ = "StandaloneSriov"
+ __context_type__ = contexts.CONTEXT_STANDALONESRIOV
def __init__(self):
self.file_path = None
self.sriov = []
self.first_run = True
- self.dpdk_nic_bind = ""
+ self.dpdk_devbind = os.path.join(get_nsb_option('bin_path'),
+ 'dpdk-devbind.py')
self.vm_names = []
- self.name = None
self.nfvi_host = []
self.nodes = []
self.networks = {}
self.attrs = {}
self.vm_flavor = None
self.servers = None
- self.helper = StandaloneContextHelper()
- self.vnf_node = Server()
+ self.helper = model.StandaloneContextHelper()
+ self.vnf_node = model.Server()
self.drivers = []
super(SriovContext, self).__init__()
def init(self, attrs):
"""initializes itself from the supplied arguments"""
+ super(SriovContext, self).init(attrs)
- self.name = attrs["name"]
self.file_path = attrs.get("file", "pod.yaml")
self.nodes, self.nfvi_host, self.host_mgmt = \
@@ -83,21 +81,16 @@ class SriovContext(Context):
return
self.connection = ssh.SSH.from_node(self.host_mgmt)
- self.dpdk_nic_bind = provision_tool(
- self.connection,
- os.path.join(get_nsb_option("bin_path"), "dpdk_nic_bind.py"))
# Todo: NFVi deploy (sriov, vswitch, ovs etc) based on the config.
- StandaloneContextHelper.install_req_libs(self.connection)
- self.networks = StandaloneContextHelper.get_nic_details(self.connection,
- self.networks,
- self.dpdk_nic_bind)
+ model.StandaloneContextHelper.install_req_libs(self.connection)
+ self.networks = model.StandaloneContextHelper.get_nic_details(
+ self.connection, self.networks, self.dpdk_devbind)
self.nodes = self.setup_sriov_context()
LOG.debug("Waiting for VM to come up...")
- self.nodes = StandaloneContextHelper.wait_for_vnfs_to_start(self.connection,
- self.servers,
- self.nodes)
+ self.nodes = model.StandaloneContextHelper.wait_for_vnfs_to_start(
+ self.connection, self.servers, self.nodes)
def undeploy(self):
"""don't need to undeploy"""
@@ -107,7 +100,7 @@ class SriovContext(Context):
# Todo: NFVi undeploy (sriov, vswitch, ovs etc) based on the config.
for vm in self.vm_names:
- Libvirt.check_if_vm_exists_and_delete(vm, self.connection)
+ model.Libvirt.check_if_vm_exists_and_delete(vm, self.connection)
# Bind nics back to kernel
for ports in self.networks.values():
@@ -115,13 +108,29 @@ class SriovContext(Context):
build_vfs = "echo 0 > /sys/bus/pci/devices/{0}/sriov_numvfs"
self.connection.execute(build_vfs.format(ports.get('phy_port')))
+ def _get_physical_nodes(self):
+ return self.nfvi_host
+
+ def _get_physical_node_for_server(self, server_name):
+
+ # self.nfvi_host always contain only one host.
+ node_name, ctx_name = self.split_host_name(server_name)
+ if ctx_name is None or self.name != ctx_name:
+ return None
+
+ matching_nodes = [s for s in self.servers if s == node_name]
+ if len(matching_nodes) == 0:
+ return None
+
+ return "{}.{}".format(self.nfvi_host[0]["name"], self._name)
+
def _get_server(self, attr_name):
"""lookup server info by name from context
Keyword arguments:
attr_name -- A name for a server listed in nodes config file
"""
- node_name, name = self.split_name(attr_name)
+ node_name, name = self.split_host_name(attr_name)
if name is None or self.name != name:
return None
@@ -138,8 +147,8 @@ class SriovContext(Context):
except StopIteration:
pass
else:
- raise ValueError("Duplicate nodes!!! Nodes: %s %s",
- (node, duplicate))
+ raise ValueError("Duplicate nodes!!! Nodes: %s %s"
+ % (node, duplicate))
node["name"] = attr_name
return node
@@ -181,7 +190,7 @@ class SriovContext(Context):
self.connection.execute(build_vfs.format(ports.get('phy_port')))
# configure VFs...
- mac = StandaloneContextHelper.get_mac_address()
+ mac = model.StandaloneContextHelper.get_mac_address()
interface = ports.get('interface')
if interface is not None:
self.connection.execute(vf_cmd.format(interface, mac))
@@ -203,10 +212,10 @@ class SriovContext(Context):
slot = index + idx + 10
vf['vpci'] = \
"{}:{}:{:02x}.{}".format(vpci.domain, vpci.bus, slot, vpci.function)
- Libvirt.add_sriov_interfaces(
- vf['vpci'], vf['vf_pci']['vf_pci'], vf['mac'], str(cfg))
self.connection.execute("ifconfig %s up" % vf['interface'])
self.connection.execute(vf_spoofchk.format(vf['interface']))
+ return model.Libvirt.add_sriov_interfaces(
+ vf['vpci'], vf['vf_pci']['vf_pci'], vf['mac'], str(cfg))
def setup_sriov_context(self):
nodes = []
@@ -214,35 +223,52 @@ class SriovContext(Context):
# 1 : modprobe host_driver with num_vfs
self.configure_nics_for_sriov()
- for index, (key, vnf) in enumerate(OrderedDict(self.servers).items()):
+ hp_total_mb = int(self.vm_flavor.get('ram', '4096')) * len(self.servers)
+ utils.setup_hugepages(self.connection, hp_total_mb * 1024)
+
+ for index, (key, vnf) in enumerate(collections.OrderedDict(
+ self.servers).items()):
cfg = '/tmp/vm_sriov_%s.xml' % str(index)
- vm_name = "vm_%s" % str(index)
+ vm_name = "vm-%s" % str(index)
+ cdrom_img = "/var/lib/libvirt/images/cdrom-%d.img" % index
# 1. Check and delete VM if already exists
- Libvirt.check_if_vm_exists_and_delete(vm_name, self.connection)
+ model.Libvirt.check_if_vm_exists_and_delete(vm_name,
+ self.connection)
+ xml_str, mac = model.Libvirt.build_vm_xml(
+ self.connection, self.vm_flavor, vm_name, index, cdrom_img)
- _, mac = Libvirt.build_vm_xml(self.connection, self.vm_flavor, cfg, vm_name, index)
# 2: Cleanup already available VMs
- for idx, (vkey, vfs) in enumerate(OrderedDict(vnf["network_ports"]).items()):
- if vkey == "mgmt":
- continue
- self._enable_interfaces(index, idx, vfs, cfg)
+ network_ports = collections.OrderedDict(
+ {k: v for k, v in vnf["network_ports"].items() if k != 'mgmt'})
+ for idx, vfs in enumerate(network_ports.values()):
+ xml_str = self._enable_interfaces(index, idx, vfs, xml_str)
# copy xml to target...
+ model.Libvirt.write_file(cfg, xml_str)
self.connection.put(cfg, cfg)
+ node = self.vnf_node.generate_vnf_instance(self.vm_flavor,
+ self.networks,
+ self.host_mgmt.get('ip'),
+ key, vnf, mac)
+ # Generate public/private keys if password or private key file is not provided
+ node = model.StandaloneContextHelper.check_update_key(self.connection,
+ node,
+ vm_name,
+ self.name,
+ cdrom_img,
+ mac)
+
+ # store vnf node details
+ nodes.append(node)
+
# NOTE: launch through libvirt
LOG.info("virsh create ...")
- Libvirt.virsh_create_vm(self.connection, cfg)
+ model.Libvirt.virsh_create_vm(self.connection, cfg)
self.vm_names.append(vm_name)
- # build vnf node details
- nodes.append(self.vnf_node.generate_vnf_instance(self.vm_flavor,
- self.networks,
- self.host_mgmt.get('ip'),
- key, vnf, mac))
-
return nodes
def _get_vf_data(self, value, vfmac, pfif):
@@ -250,7 +276,8 @@ class SriovContext(Context):
"mac": vfmac,
"pf_if": pfif
}
- vfs = StandaloneContextHelper.get_virtual_devices(self.connection, value)
+ vfs = model.StandaloneContextHelper.get_virtual_devices(
+ self.connection, value)
for k, v in vfs.items():
m = PciAddress(k.strip())
m1 = PciAddress(value.strip())
diff --git a/yardstick/benchmark/core/__init__.py b/yardstick/benchmark/core/__init__.py
index 3e3aa99a1..3914e3237 100644
--- a/yardstick/benchmark/core/__init__.py
+++ b/yardstick/benchmark/core/__init__.py
@@ -23,6 +23,7 @@ class Param(object):
self.task_args_file = kwargs.get('task-args-file')
self.keep_deploy = kwargs.get('keep-deploy')
self.parse_only = kwargs.get('parse-only')
+ self.render_only = kwargs.get('render-only')
self.output_file = kwargs.get('output-file', '/tmp/yardstick.out')
self.suite = kwargs.get('suite')
self.task_id = kwargs.get('task_id')
diff --git a/yardstick/benchmark/core/report.py b/yardstick/benchmark/core/report.py
index 997a125e7..e5dc62050 100644
--- a/yardstick/benchmark/core/report.py
+++ b/yardstick/benchmark/core/report.py
@@ -1,7 +1,7 @@
-#############################################################################
-# Copyright (c) 2017 Rajesh Kudaka
+##############################################################################
+# Copyright (c) 2017 Rajesh Kudaka <4k.rajesh@gmail.com>
+# Copyright (c) 2018-2019 Intel Corporation.
#
-# Author: Rajesh Kudaka 4k.rajesh@gmail.com
# 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
@@ -10,33 +10,79 @@
""" Handler for yardstick command 'report' """
-from __future__ import print_function
-
-from __future__ import absolute_import
-
-import ast
import re
+import six
import uuid
+import jinja2
from api.utils import influx
-
-from django.conf import settings
-from django.template import Context
-from django.template import Template
-
-from oslo_utils import encodeutils
from oslo_utils import uuidutils
from yardstick.common import constants as consts
-from yardstick.common.html_template import template
from yardstick.common.utils import cliargs
-settings.configure()
+
+class JSTree(object):
+ """Data structure to parse data for use with the JS library jsTree"""
+ def __init__(self):
+ self._created_nodes = ['#']
+ self.jstree_data = []
+
+ def _create_node(self, _id):
+ """Helper method for format_for_jstree to create each node.
+
+ Creates the node (and any required parents) and keeps track
+ of the created nodes.
+
+ :param _id: (string) id of the node to be created
+ :return: None
+ """
+ components = _id.split(".")
+
+ if len(components) == 1:
+ text = components[0]
+ parent_id = "#"
+ else:
+ text = components[-1]
+ parent_id = ".".join(components[:-1])
+ # make sure the parent has been created
+ if not parent_id in self._created_nodes:
+ self._create_node(parent_id)
+
+ self.jstree_data.append({"id": _id, "text": text, "parent": parent_id})
+ self._created_nodes.append(_id)
+
+ def format_for_jstree(self, data):
+ """Format the data into the required format for jsTree.
+
+ The data format expected is a list of metric names e.g.:
+
+ ['tg__0.DropPackets', 'tg__0.LatencyAvg.5']
+
+ This data is converted into the format required for jsTree to group and
+ display the metrics in a hierarchial fashion, including creating a
+ number of parent nodes e.g.::
+
+ [{"id": "tg__0", "text": "tg__0", "parent": "#"},
+ {"id": "tg__0.DropPackets", "text": "DropPackets", "parent": "tg__0"},
+ {"id": "tg__0.LatencyAvg", "text": "LatencyAvg", "parent": "tg__0"},
+ {"id": "tg__0.LatencyAvg.5", "text": "5", "parent": "tg__0.LatencyAvg"},]
+
+ :param data: (list) data to be converted
+ :return: list
+ """
+ self._created_nodes = ['#']
+ self.jstree_data = []
+
+ for metric in data:
+ self._create_node(metric)
+
+ return self.jstree_data
class Report(object):
"""Report commands.
- Set of commands to manage benchmark tasks.
+ Set of commands to manage reports.
"""
def __init__(self):
@@ -45,7 +91,7 @@ class Report(object):
self.task_id = ""
def _validate(self, yaml_name, task_id):
- if re.match("^[a-z0-9_-]+$", yaml_name):
+ if re.match(r"^[\w-]+$", yaml_name):
self.yaml_name = yaml_name
else:
raise ValueError("invalid yaml_name", yaml_name)
@@ -64,63 +110,280 @@ class Report(object):
if query_exec:
return query_exec
else:
- raise KeyError("Task ID or Test case not found..")
+ raise KeyError("Test case not found.")
- def _get_tasks(self):
- task_cmd = "select * from \"%s\" where task_id= '%s'"
- task_query = task_cmd % (self.yaml_name, self.task_id)
- query_exec = influx.query(task_query)
+ def _get_metrics(self):
+ metrics_cmd = "select * from \"%s\" where task_id = '%s'"
+ metrics_query = metrics_cmd % (self.yaml_name, self.task_id)
+ query_exec = influx.query(metrics_query)
if query_exec:
return query_exec
else:
- raise KeyError("Task ID or Test case not found..")
+ raise KeyError("Task ID or Test case not found.")
+
+ def _get_task_start_time(self):
+ # The start time should come from the task or the metadata table.
+ # The first entry into influx for a task will be AFTER the first TC
+ # iteration
+ cmd = "select * from \"%s\" where task_id='%s' ORDER BY time ASC limit 1"
+ task_query = cmd % (self.yaml_name, self.task_id)
+
+ query_exec = influx.query(task_query)
+ start_time = query_exec[0]['time']
+ return start_time
+
+ def _get_task_end_time(self):
+ # NOTE(elfoley): when using select first() and select last() for the
+ # DB query, the timestamp returned is 0, so later queries try to
+ # return metrics from 1970
+ cmd = "select * from \"%s\" where task_id='%s' ORDER BY time DESC limit 1"
+ task_query = cmd % (self.yaml_name, self.task_id)
+ query_exec = influx.query(task_query)
+ end_time = query_exec[0]['time']
+ return end_time
+
+ def _get_baro_metrics(self):
+ start_time = self._get_task_start_time()
+ end_time = self._get_task_end_time()
+ metric_list = [
+ "cpu_value", "cpufreq_value", "intel_pmu_value",
+ "virt_value", "memory_value"]
+ metrics = {}
+ times = []
+ query_exec = {}
+ for metric in metric_list:
+ cmd = "select * from \"%s\" where time >= '%s' and time <= '%s'"
+ query = cmd % (metric, start_time, end_time)
+ query_exec[metric] = influx.query(query, db='collectd')
+ print("query_exec: {}".format(query_exec))
+
+ for metric in query_exec:
+ print("metric in query_exec: {}".format(metric))
+ met_values = query_exec[metric]
+ print("met_values: {}".format(met_values))
+ for x in met_values:
+ x['name'] = metric
+ metric_name = str('.'.join(
+ [x[f] for f in [
+ 'host', 'name', 'type', 'type_instance', 'instance'
+ ] if x.get(f)]))
+
+ if not metrics.get(metric_name):
+ metrics[metric_name] = {}
+ metric_time = self._get_trimmed_timestamp(x['time'])
+ times.append(metric_time)
+ time = metric_time
+ metrics[metric_name][time] = x['value']
+
+ times = sorted(list(set(times)))
+
+ metrics['Timestamp'] = times
+ print("metrics: {}".format(metrics))
+ return metrics
+
+ def _get_trimmed_timestamp(self, metric_time, resolution=4):
+ if not isinstance(metric_time, str):
+ metric_time = metric_time.encode('utf8') # PY2: unicode to str
+ metric_time = metric_time[11:] # skip date, keep time
+ head, _, tail = metric_time.partition('.') # split HH:MM:SS & nsZ
+ metric_time = head + '.' + tail[:resolution] # join HH:MM:SS & .us
+ return metric_time
+
+ def _get_timestamps(self, metrics, resolution=6):
+ # Extract the timestamps from a list of metrics
+ timestamps = []
+ for metric in metrics:
+ metric_time = self._get_trimmed_timestamp(
+ metric['time'], resolution)
+ timestamps.append(metric_time) # HH:MM:SS.micros
+ return timestamps
+
+ def _format_datasets(self, metric_name, metrics):
+ values = []
+ for metric in metrics:
+ val = metric.get(metric_name, None)
+ if val is None:
+ # keep explicit None or missing entry as is
+ pass
+ elif isinstance(val, (int, float)):
+ # keep plain int or float as is
+ pass
+ elif six.PY2 and isinstance(val,
+ long): # pylint: disable=undefined-variable
+ # PY2: long value would be rendered with trailing L,
+ # which JS does not support, so convert it to float
+ val = float(val)
+ elif isinstance(val, six.string_types):
+ s = val
+ if not isinstance(s, str):
+ s = s.encode('utf8') # PY2: unicode to str
+ try:
+ # convert until failure
+ val = s
+ val = float(s)
+ val = int(s)
+ if six.PY2 and isinstance(val,
+ long): # pylint: disable=undefined-variable
+ val = float(val) # PY2: long to float
+ except ValueError:
+ # value may have been converted to a number
+ pass
+ finally:
+ # if val was not converted into a num, then it must be
+ # text, which shouldn't end up in the report
+ if isinstance(val, six.string_types):
+ val = None
+ else:
+ raise ValueError("Cannot convert %r" % val)
+ values.append(val)
+ return values
@cliargs("task_id", type=str, help=" task id", nargs=1)
@cliargs("yaml_name", type=str, help=" Yaml file Name", nargs=1)
- def generate(self, args):
- """Start report generation."""
+ def _generate_common(self, args):
+ """Actions that are common to both report formats.
+
+ Create the necessary data structure for rendering
+ the report templates.
+ """
self._validate(args.yaml_name[0], args.task_id[0])
- self.db_fieldkeys = self._get_fieldkeys()
+ db_fieldkeys = self._get_fieldkeys()
+ # list of dicts of:
+ # - PY2: unicode key and unicode value
+ # - PY3: str key and str value
- self.db_task = self._get_tasks()
+ db_metrics = self._get_metrics()
+ # list of dicts of:
+ # - PY2: unicode key and { None | unicode | float | long | int } value
+ # - PY3: str key and { None | str | float | int } value
- field_keys = []
- temp_series = []
- table_vals = {}
+ # extract fieldKey entries, and convert them to str where needed
+ field_keys = [key if isinstance(key, str) # PY3: already str
+ else key.encode('utf8') # PY2: unicode to str
+ for key in
+ [field['fieldKey']
+ for field in db_fieldkeys]]
- field_keys = [encodeutils.to_utf8(field['fieldKey'])
- for field in self.db_fieldkeys]
+ # extract timestamps
+ self.Timestamp = self._get_timestamps(db_metrics)
+ # prepare return values
+ datasets = []
+ table_vals = {'Timestamp': self.Timestamp}
+
+ # extract and convert field values
for key in field_keys:
- self.Timestamp = []
- series = {}
- values = []
- for task in self.db_task:
- task_time = encodeutils.to_utf8(task['time'])
- if not isinstance(task_time, str):
- task_time = str(task_time, 'utf8')
- key = str(key, 'utf8')
- task_time = task_time[11:]
- head, sep, tail = task_time.partition('.')
- task_time = head + "." + tail[:6]
- self.Timestamp.append(task_time)
- if isinstance(task[key], float) is True:
- values.append(task[key])
- else:
- values.append(ast.literal_eval(task[key]))
- table_vals['Timestamp'] = self.Timestamp
+ values = self._format_datasets(key, db_metrics)
+ datasets.append({'label': key, 'data': values})
table_vals[key] = values
- series['name'] = key
- series['data'] = values
- temp_series.append(series)
-
- Template_html = Template(template)
- Context_html = Context({"series": temp_series,
- "Timestamp": self.Timestamp,
- "task_id": self.task_id,
- "table": table_vals})
+
+ return datasets, table_vals
+
+ @cliargs("task_id", type=str, help=" task id", nargs=1)
+ @cliargs("yaml_name", type=str, help=" Yaml file Name", nargs=1)
+ def generate(self, args):
+ """Start report generation."""
+ datasets, table_vals = self._generate_common(args)
+
+ template_dir = consts.YARDSTICK_ROOT_PATH + "yardstick/common"
+ template_environment = jinja2.Environment(
+ autoescape=False,
+ loader=jinja2.FileSystemLoader(template_dir))
+
+ context = {
+ "datasets": datasets,
+ "Timestamps": self.Timestamp,
+ "task_id": self.task_id,
+ "table": table_vals,
+ }
+
+ template_html = template_environment.get_template("report.html.j2")
+
+ with open(consts.DEFAULT_HTML_FILE, "w") as file_open:
+ file_open.write(template_html.render(context))
+
+ print("Report generated. View %s" % consts.DEFAULT_HTML_FILE)
+
+ def _combine_times(self, *args):
+ times = []
+ # Combines an arbitrary number of lists
+ [times.extend(x) for x in args]
+ times = list(set(times))
+ times.sort()
+ return times
+
+ def _combine_metrics(self, *args):
+ baro_data, baro_time, yard_data, yard_time = args
+ combo_time = self._combine_times(baro_time, yard_time)
+
+ data = {}
+ [data.update(x) for x in (baro_data, yard_data)]
+
+ table_data = {}
+ table_data['Timestamp'] = combo_time
+ combo = {}
+ keys = sorted(data.keys())
+ for met_name in data:
+ dataset = []
+ for point in data[met_name]:
+ dataset.append({'x': point, 'y': data[met_name][point]})
+ # the metrics need to be ordered by time
+ combo[met_name] = sorted(dataset, key=lambda i: i['x'])
+ for met_name in data:
+ table_data[met_name] = []
+ for t in combo_time:
+ table_data[met_name].append(data[met_name].get(t, ''))
+ return combo, keys, table_data
+
+ @cliargs("task_id", type=str, help=" task id", nargs=1)
+ @cliargs("yaml_name", type=str, help=" Yaml file Name", nargs=1)
+ def generate_nsb(self, args):
+ """Start NSB report generation."""
+ _, report_data = self._generate_common(args)
+ report_time = report_data.pop('Timestamp')
+ report_meta = {
+ "testcase": self.yaml_name,
+ "task_id": self.task_id,
+ }
+
+ yardstick_data = {}
+ for i, t in enumerate(report_time):
+ for m in report_data:
+ if not yardstick_data.get(m):
+ yardstick_data[m] = {}
+ yardstick_data[m][t] = report_data[m][i]
+
+ baro_data = self._get_baro_metrics()
+ baro_timestamps = baro_data.pop('Timestamp')
+
+ yard_timestamps = report_time
+ report_time = self._combine_times(yard_timestamps, baro_timestamps)
+
+ combo_metrics, combo_keys, combo_table = self._combine_metrics(
+ baro_data, baro_timestamps, yardstick_data, yard_timestamps)
+ combo_time = self._combine_times(baro_timestamps, yard_timestamps)
+ combo_tree = JSTree().format_for_jstree(combo_keys)
+
+ template_dir = consts.YARDSTICK_ROOT_PATH + "yardstick/common"
+ template_environment = jinja2.Environment(
+ autoescape=False,
+ loader=jinja2.FileSystemLoader(template_dir),
+ lstrip_blocks=True)
+
+ combo_data = combo_metrics
+ context = {
+ "report_meta": report_meta,
+ "report_data": combo_data,
+ "report_time": combo_time,
+ "report_keys": combo_keys,
+ "report_tree": combo_tree,
+ "table_data": combo_table,
+ }
+
+ template_html = template_environment.get_template("nsb_report.html.j2")
+
with open(consts.DEFAULT_HTML_FILE, "w") as file_open:
- file_open.write(Template_html.render(Context_html))
+ file_open.write(template_html.render(context))
- print("Report generated. View /tmp/yardstick.htm")
+ print("Report generated. View %s" % consts.DEFAULT_HTML_FILE)
diff --git a/yardstick/benchmark/core/task.py b/yardstick/benchmark/core/task.py
index 9b1b3f851..bcca3558f 100644
--- a/yardstick/benchmark/core/task.py
+++ b/yardstick/benchmark/core/task.py
@@ -7,14 +7,11 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-""" Handler for yardstick command 'task' """
-
-from __future__ import absolute_import
-from __future__ import print_function
import sys
import os
from collections import OrderedDict
+import six
import yaml
import atexit
import ipaddress
@@ -26,14 +23,16 @@ import collections
from six.moves import filter
from jinja2 import Environment
-from yardstick.benchmark.contexts.base import Context
+from yardstick.benchmark import contexts
+from yardstick.benchmark.contexts import base as base_context
from yardstick.benchmark.runners import base as base_runner
from yardstick.common.constants import CONF_FILE
from yardstick.common.yaml_loader import yaml_load
from yardstick.dispatcher.base import Base as DispatcherBase
-from yardstick.common.task_template import TaskTemplate
-from yardstick.common import utils
from yardstick.common import constants
+from yardstick.common import exceptions as y_exc
+from yardstick.common import task_template
+from yardstick.common import utils
from yardstick.common.html_template import report_template
output_file_default = "/tmp/yardstick.out"
@@ -57,7 +56,7 @@ class Task(object): # pragma: no cover
out_types = [s.strip() for s in dispatchers.split(',')]
output_config['DEFAULT']['dispatcher'] = out_types
- def start(self, args, **kwargs):
+ def start(self, args, **kwargs): # pylint: disable=unused-argument
"""Start a benchmark scenario."""
atexit.register(self.atexit_handler)
@@ -69,7 +68,7 @@ class Task(object): # pragma: no cover
try:
output_config = utils.parse_ini_file(CONF_FILE)
- except Exception:
+ except Exception: # pylint: disable=broad-except
# all error will be ignore, the default value is {}
output_config = {}
@@ -89,8 +88,7 @@ class Task(object): # pragma: no cover
if args.suite:
# 1.parse suite, return suite_params info
- task_files, task_args, task_args_fnames = \
- parser.parse_suite()
+ task_files, task_args, task_args_fnames = parser.parse_suite()
else:
task_files = [parser.path]
task_args = [args.task_args]
@@ -103,32 +101,39 @@ class Task(object): # pragma: no cover
sys.exit(0)
testcases = {}
- # parse task_files
- for i in range(0, len(task_files)):
- one_task_start_time = time.time()
- parser.path = task_files[i]
- scenarios, run_in_parallel, meet_precondition, contexts = \
- parser.parse_task(self.task_id, task_args[i],
- task_args_fnames[i])
-
- self.contexts.extend(contexts)
+ tasks = self._parse_tasks(parser, task_files, args, task_args,
+ task_args_fnames)
- if not meet_precondition:
- LOG.info("meet_precondition is %s, please check envrionment",
- meet_precondition)
+ # Execute task files.
+ for i, _ in enumerate(task_files):
+ one_task_start_time = time.time()
+ self.contexts.extend(tasks[i]['contexts'])
+ if not tasks[i]['meet_precondition']:
+ LOG.info('"meet_precondition" is %s, please check environment',
+ tasks[i]['meet_precondition'])
continue
- case_name = os.path.splitext(os.path.basename(task_files[i]))[0]
try:
- data = self._run(scenarios, run_in_parallel, args.output_file)
+ success, data = self._run(tasks[i]['scenarios'],
+ tasks[i]['run_in_parallel'],
+ output_config)
except KeyboardInterrupt:
raise
- except Exception:
- LOG.error('Testcase: "%s" FAILED!!!', case_name, exc_info=True)
- testcases[case_name] = {'criteria': 'FAIL', 'tc_data': []}
+ except Exception: # pylint: disable=broad-except
+ LOG.error('Testcase: "%s" FAILED!!!', tasks[i]['case_name'],
+ exc_info=True)
+ testcases[tasks[i]['case_name']] = {'criteria': 'FAIL',
+ 'tc_data': []}
else:
- LOG.info('Testcase: "%s" SUCCESS!!!', case_name)
- testcases[case_name] = {'criteria': 'PASS', 'tc_data': data}
+ if success:
+ LOG.info('Testcase: "%s" SUCCESS!!!', tasks[i]['case_name'])
+ testcases[tasks[i]['case_name']] = {'criteria': 'PASS',
+ 'tc_data': data}
+ else:
+ LOG.error('Testcase: "%s" FAILED!!!', tasks[i]['case_name'],
+ exc_info=True)
+ testcases[tasks[i]['case_name']] = {'criteria': 'FAIL',
+ 'tc_data': data}
if args.keep_deploy:
# keep deployment, forget about stack
@@ -151,9 +156,8 @@ class Task(object): # pragma: no cover
LOG.info("Total finished in %d secs",
total_end_time - total_start_time)
- scenario = scenarios[0]
- LOG.info("To generate report, execute command "
- "'yardstick report generate %(task_id)s %(tc)s'", scenario)
+ LOG.info('To generate report, execute command "yardstick report '
+ 'generate %s <YAML_NAME>"', self.task_id)
LOG.info("Task ALL DONE, exiting")
return result
@@ -232,51 +236,53 @@ class Task(object): # pragma: no cover
def _do_output(self, output_config, result):
dispatchers = DispatcherBase.get(output_config)
+ dispatchers = (d for d in dispatchers if d.__dispatcher_type__ != 'Influxdb')
for dispatcher in dispatchers:
dispatcher.flush_result_data(result)
- def _run(self, scenarios, run_in_parallel, output_file):
+ def _run(self, scenarios, run_in_parallel, output_config):
"""Deploys context and calls runners"""
for context in self.contexts:
context.deploy()
background_runners = []
+ task_success = True
result = []
# Start all background scenarios
for scenario in filter(_is_background_scenario, scenarios):
scenario["runner"] = dict(type="Duration", duration=1000000000)
- runner = self.run_one_scenario(scenario, output_file)
+ runner = self.run_one_scenario(scenario, output_config)
background_runners.append(runner)
runners = []
if run_in_parallel:
for scenario in scenarios:
if not _is_background_scenario(scenario):
- runner = self.run_one_scenario(scenario, output_file)
+ runner = self.run_one_scenario(scenario, output_config)
runners.append(runner)
# Wait for runners to finish
for runner in runners:
status = runner_join(runner, background_runners, self.outputs, result)
if status != 0:
- raise RuntimeError(
- "{0} runner status {1}".format(runner.__execution_type__, status))
- LOG.info("Runner ended, output in %s", output_file)
+ LOG.error("%s runner status %s", runner.__execution_type__, status)
+ task_success = False
+ LOG.info("Runner ended")
else:
# run serially
for scenario in scenarios:
if not _is_background_scenario(scenario):
- runner = self.run_one_scenario(scenario, output_file)
+ runner = self.run_one_scenario(scenario, output_config)
status = runner_join(runner, background_runners, self.outputs, result)
if status != 0:
LOG.error('Scenario NO.%s: "%s" ERROR!',
scenarios.index(scenario) + 1,
scenario.get('type'))
- raise RuntimeError(
- "{0} runner status {1}".format(runner.__execution_type__, status))
- LOG.info("Runner ended, output in %s", output_file)
+ LOG.error("%s runner status %s", runner.__execution_type__, status)
+ task_success = False
+ LOG.info("Runner ended")
# Abort background runners
for runner in background_runners:
@@ -292,7 +298,7 @@ class Task(object): # pragma: no cover
base_runner.Runner.release(runner)
print("Background task ended")
- return result
+ return task_success, result
def atexit_handler(self):
"""handler for process termination"""
@@ -308,29 +314,54 @@ class Task(object): # pragma: no cover
return {k: self._parse_options(v) for k, v in op.items()}
elif isinstance(op, list):
return [self._parse_options(v) for v in op]
- elif isinstance(op, str):
+ elif isinstance(op, six.string_types):
return self.outputs.get(op[1:]) if op.startswith('$') else op
else:
return op
- def run_one_scenario(self, scenario_cfg, output_file):
+ def _parse_tasks(self, parser, task_files, args, task_args,
+ task_args_fnames):
+ tasks = []
+
+ # Parse task_files.
+ for i, _ in enumerate(task_files):
+ parser.path = task_files[i]
+ tasks.append(parser.parse_task(self.task_id, task_args[i],
+ task_args_fnames[i]))
+ tasks[i]['case_name'] = os.path.splitext(
+ os.path.basename(task_files[i]))[0]
+
+ if args.render_only:
+ utils.makedirs(args.render_only)
+ for idx, task in enumerate(tasks):
+ output_file_name = os.path.abspath(os.path.join(
+ args.render_only,
+ '{0:03d}-{1}.yml'.format(idx, task['case_name'])))
+ utils.write_file(output_file_name, task['rendered'])
+
+ sys.exit(0)
+
+ return tasks
+
+ def run_one_scenario(self, scenario_cfg, output_config):
"""run one scenario using context"""
runner_cfg = scenario_cfg["runner"]
- runner_cfg['output_filename'] = output_file
+ runner_cfg['output_config'] = output_config
options = scenario_cfg.get('options', {})
scenario_cfg['options'] = self._parse_options(options)
# TODO support get multi hosts/vms info
context_cfg = {}
- server_name = scenario_cfg.get('options', {}).get('server_name', {})
+ options = scenario_cfg.get('options') or {}
+ server_name = options.get('server_name') or {}
def config_context_target(cfg):
target = cfg['target']
if is_ip_addr(target):
context_cfg['target'] = {"ipaddr": target}
else:
- context_cfg['target'] = Context.get_server(target)
+ context_cfg['target'] = base_context.Context.get_server(target)
if self._is_same_context(cfg["host"], target):
context_cfg['target']["ipaddr"] = context_cfg['target']["private_ip"]
else:
@@ -338,13 +369,13 @@ class Task(object): # pragma: no cover
host_name = server_name.get('host', scenario_cfg.get('host'))
if host_name:
- context_cfg['host'] = Context.get_server(host_name)
+ context_cfg['host'] = base_context.Context.get_server(host_name)
for item in [server_name, scenario_cfg]:
try:
config_context_target(item)
except KeyError:
- pass
+ LOG.debug("Got a KeyError in config_context_target(%s)", item)
else:
break
@@ -355,7 +386,8 @@ class Task(object): # pragma: no cover
ip_list.append(target)
context_cfg['target'] = {}
else:
- context_cfg['target'] = Context.get_server(target)
+ context_cfg['target'] = (
+ base_context.Context.get_server(target))
if self._is_same_context(scenario_cfg["host"],
target):
ip_list.append(context_cfg["target"]["private_ip"])
@@ -383,7 +415,8 @@ class Task(object): # pragma: no cover
with attribute name mapping when using external heat templates
"""
for context in self.contexts:
- if context.__context_type__ not in {"Heat", "Kubernetes"}:
+ if context.__context_type__ not in {contexts.CONTEXT_HEAT,
+ contexts.CONTEXT_KUBERNETES}:
continue
host = context._get_server(host_attr)
@@ -478,33 +511,42 @@ class TaskParser(object): # pragma: no cover
return valid_task_files, valid_task_args, valid_task_args_fnames
- def parse_task(self, task_id, task_args=None, task_args_file=None):
- """parses the task file and return an context and scenario instances"""
- LOG.info("Parsing task config: %s", self.path)
+ def _render_task(self, task_args, task_args_file):
+ """Render the input task with the given arguments
+ :param task_args: (dict) arguments to render the task
+ :param task_args_file: (str) file containing the arguments to render
+ the task
+ :return: (str) task file rendered
+ """
try:
kw = {}
if task_args_file:
with open(task_args_file) as f:
- kw.update(parse_task_args("task_args_file", f.read()))
- kw.update(parse_task_args("task_args", task_args))
+ kw.update(parse_task_args('task_args_file', f.read()))
+ kw.update(parse_task_args('task_args', task_args))
except TypeError:
- raise TypeError()
+ raise y_exc.TaskRenderArgumentError()
+ input_task = None
try:
with open(self.path) as f:
- try:
- input_task = f.read()
- rendered_task = TaskTemplate.render(input_task, **kw)
- except Exception as e:
- LOG.exception('Failed to render template:\n%s\n', input_task)
- raise e
- LOG.debug("Input task is:\n%s\n", rendered_task)
-
- cfg = yaml_load(rendered_task)
- except IOError as ioerror:
- sys.exit(ioerror)
+ input_task = f.read()
+ rendered_task = task_template.TaskTemplate.render(input_task, **kw)
+ LOG.debug('Input task is:\n%s', rendered_task)
+ parsed_task = yaml_load(rendered_task)
+ except (IOError, OSError):
+ raise y_exc.TaskReadError(task_file=self.path)
+ except Exception:
+ raise y_exc.TaskRenderError(input_task=input_task)
+
+ return parsed_task, rendered_task
+ def parse_task(self, task_id, task_args=None, task_args_file=None):
+ """parses the task file and return an context and scenario instances"""
+ LOG.info("Parsing task config: %s", self.path)
+
+ cfg, rendered = self._render_task(task_args, task_args_file)
self._check_schema(cfg["schema"], "task")
meet_precondition = self._check_precondition(cfg)
@@ -515,21 +557,19 @@ class TaskParser(object): # pragma: no cover
elif "contexts" in cfg:
context_cfgs = cfg["contexts"]
else:
- context_cfgs = [{"type": "Dummy"}]
+ context_cfgs = [{"type": contexts.CONTEXT_DUMMY}]
- contexts = []
- name_suffix = '-{}'.format(task_id[:8])
+ _contexts = []
for cfg_attrs in context_cfgs:
- try:
- cfg_attrs['name'] = '{}{}'.format(cfg_attrs['name'],
- name_suffix)
- except KeyError:
- pass
+
+ cfg_attrs['task_id'] = task_id
# default to Heat context because we are testing OpenStack
- context_type = cfg_attrs.get("type", "Heat")
- context = Context.get(context_type)
+ context_type = cfg_attrs.get("type", contexts.CONTEXT_HEAT)
+ context = base_context.Context.get(context_type)
context.init(cfg_attrs)
- contexts.append(context)
+ # Update the name in case the context has used the name_suffix
+ cfg_attrs['name'] = context.name
+ _contexts.append(context)
run_in_parallel = cfg.get("run_in_parallel", False)
@@ -542,16 +582,98 @@ class TaskParser(object): # pragma: no cover
# relative to task path
scenario["task_path"] = os.path.dirname(self.path)
- change_server_name(scenario, name_suffix)
-
- try:
- for node in scenario['nodes']:
- scenario['nodes'][node] += name_suffix
- except KeyError:
- pass
+ self._change_node_names(scenario, _contexts)
# TODO we need something better here, a class that represent the file
- return cfg["scenarios"], run_in_parallel, meet_precondition, contexts
+ return {'scenarios': cfg['scenarios'],
+ 'run_in_parallel': run_in_parallel,
+ 'meet_precondition': meet_precondition,
+ 'contexts': _contexts,
+ 'rendered': rendered}
+
+ @staticmethod
+ def _change_node_names(scenario, _contexts):
+ """Change the node names in a scenario, depending on the context config
+
+ The nodes (VMs or physical servers) are referred in the context section
+ with the name of the server and the name of the context:
+ <server name>.<context name>
+
+ If the context is going to be undeployed at the end of the test, the
+ task ID is suffixed to the name to avoid interferences with previous
+ deployments. If the context needs to be deployed at the end of the
+ test, the name assigned is kept.
+
+ There are several places where a node name could appear in the scenario
+ configuration:
+ scenario:
+ host: athena.demo
+ target: kratos.demo
+ targets:
+ - athena.demo
+ - kratos.demo
+
+ scenario:
+ options:
+ server_name: # JIRA: YARDSTICK-810
+ host: athena.demo
+ target: kratos.demo
+
+ scenario:
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+
+ scenario:
+ nodes:
+ tg__0:
+ name: trafficgen_0.yardstick
+ public_ip_attr: "server1_public_ip"
+ private_ip_attr: "server1_private_ip"
+ vnf__0:
+ name: vnf_0.yardstick
+ public_ip_attr: "server2_public_ip"
+ private_ip_attr: "server2_private_ip"
+ NOTE: in Kubernetes context, the separator character between the server
+ name and the context name is "-":
+ scenario:
+ host: host-k8s
+ target: target-k8s
+ """
+ def qualified_name(name):
+ for context in _contexts:
+ host_name, ctx_name = context.split_host_name(name)
+ if context.assigned_name == ctx_name:
+ return '{}{}{}'.format(host_name,
+ context.host_name_separator,
+ context.name)
+
+ raise y_exc.ScenarioConfigContextNameNotFound(host_name=name)
+
+ if 'host' in scenario:
+ scenario['host'] = qualified_name(scenario['host'])
+ if 'target' in scenario:
+ scenario['target'] = qualified_name(scenario['target'])
+ options = scenario.get('options') or {}
+ server_name = options.get('server_name') or {}
+ if 'host' in server_name:
+ server_name['host'] = qualified_name(server_name['host'])
+ if 'target' in server_name:
+ server_name['target'] = qualified_name(server_name['target'])
+ if 'targets' in scenario:
+ for idx, target in enumerate(scenario['targets']):
+ scenario['targets'][idx] = qualified_name(target)
+ if 'nodes' in scenario:
+ for scenario_node, target in scenario['nodes'].items():
+ if isinstance(target, collections.Mapping):
+ # Update node info on scenario with context info
+ # Just update the node name with context
+ # Append context information
+ target['name'] = qualified_name(target['name'])
+ # Then update node
+ scenario['nodes'][scenario_node] = target
+ else:
+ scenario['nodes'][scenario_node] = qualified_name(target)
def _check_schema(self, cfg_schema, schema_type):
"""Check if config file is using the correct schema type"""
@@ -618,7 +740,8 @@ def _is_background_scenario(scenario):
def parse_nodes_with_context(scenario_cfg):
"""parse the 'nodes' fields in scenario """
# ensure consistency in node instantiation order
- return OrderedDict((nodename, Context.get_server(scenario_cfg["nodes"][nodename]))
+ return OrderedDict((nodename, base_context.Context.get_server(
+ scenario_cfg["nodes"][nodename]))
for nodename in sorted(scenario_cfg["nodes"]))
@@ -634,7 +757,7 @@ def get_networks_from_nodes(nodes):
network_name = interface.get('network_name')
if not network_name:
continue
- network = Context.get_network(network_name)
+ network = base_context.Context.get_network(network_name)
if network:
networks[network['name']] = network
return networks
@@ -685,30 +808,3 @@ def parse_task_args(src_name, args):
% {"src": src_name, "src_type": type(kw)})
raise TypeError()
return kw
-
-
-def change_server_name(scenario, suffix):
-
- def add_suffix(cfg, key):
- try:
- value = cfg[key]
- except KeyError:
- pass
- else:
- try:
- value['name'] += suffix
- except TypeError:
- cfg[key] += suffix
-
- server_name = scenario.get('options', {}).get('server_name', {})
-
- add_suffix(scenario, 'host')
- add_suffix(scenario, 'target')
- add_suffix(server_name, 'host')
- add_suffix(server_name, 'target')
-
- try:
- key = 'targets'
- scenario[key] = ['{}{}'.format(a, suffix) for a in scenario[key]]
- except KeyError:
- pass
diff --git a/yardstick/benchmark/runners/arithmetic.py b/yardstick/benchmark/runners/arithmetic.py
index 6aaaed888..ecb59f960 100755
--- a/yardstick/benchmark/runners/arithmetic.py
+++ b/yardstick/benchmark/runners/arithmetic.py
@@ -37,6 +37,7 @@ import six
from six.moves import range
from yardstick.benchmark.runners import base
+from yardstick.common import exceptions as y_exc
LOG = logging.getLogger(__name__)
@@ -86,7 +87,7 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
loop_iter = six.moves.zip(*param_iters)
else:
LOG.warning("iter_type unrecognized: %s", iter_type)
- raise TypeError("iter_type unrecognized: %s", iter_type)
+ raise TypeError("iter_type unrecognized: %s" % iter_type)
# Populate options and run the requested method for each value combination
for comb_values in loop_iter:
@@ -105,14 +106,14 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
try:
result = method(data)
- except AssertionError as assertion:
+ except y_exc.SLAValidationError as error:
# SLA validation failed in scenario, determine what to do now
if sla_action == "assert":
raise
elif sla_action == "monitor":
- LOG.warning("SLA validation failed: %s", assertion.args)
- errors = assertion.args
- except Exception as e:
+ LOG.warning("SLA validation failed: %s", error.args)
+ errors = error.args
+ except Exception as e: # pylint: disable=broad-except
errors = traceback.format_exc()
LOG.exception(e)
else:
diff --git a/yardstick/benchmark/runners/base.py b/yardstick/benchmark/runners/base.py
index a887fa5b3..94de45d1e 100755
--- a/yardstick/benchmark/runners/base.py
+++ b/yardstick/benchmark/runners/base.py
@@ -12,24 +12,22 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
+#
+# This is a modified copy of ``rally/rally/benchmark/runners/base.py``
-# yardstick comment: this is a modified copy of
-# rally/rally/benchmark/runners/base.py
-
-from __future__ import absolute_import
-
+import importlib
import logging
import multiprocessing
import subprocess
import time
import traceback
-import importlib
-
-from six.moves.queue import Empty
+from six import moves
-import yardstick.common.utils as utils
from yardstick.benchmark.scenarios import base as base_scenario
+from yardstick.common import utils
+from yardstick.dispatcher.base import Base as DispatcherBase
+
log = logging.getLogger(__name__)
@@ -39,7 +37,7 @@ def _execute_shell_command(command):
exitcode = 0
try:
output = subprocess.check_output(command, shell=True)
- except Exception:
+ except subprocess.CalledProcessError:
exitcode = -1
output = traceback.format_exc()
log.error("exec command '%s' error:\n ", command)
@@ -79,6 +77,33 @@ def _periodic_action(interval, command, queue):
queue.put({'periodic-action-data': data})
+class ScenarioOutput(dict):
+
+ QUEUE_PUT_TIMEOUT = 10
+
+ def __init__(self, queue, **kwargs):
+ super(ScenarioOutput, self).__init__()
+ self._queue = queue
+ self.result_ext = dict()
+ for key, val in kwargs.items():
+ self.result_ext[key] = val
+ setattr(self, key, val)
+
+ def push(self, data=None, add_timestamp=True):
+ if data is None:
+ data = dict(self)
+
+ if add_timestamp:
+ result = {'timestamp': time.time(), 'data': data}
+ else:
+ result = data
+
+ for key in self.result_ext.keys():
+ result[key] = getattr(self, key)
+
+ self._queue.put(result, True, self.QUEUE_PUT_TIMEOUT)
+
+
class Runner(object):
runners = []
@@ -119,7 +144,7 @@ class Runner(object):
@staticmethod
def terminate_all():
"""Terminate all runners (subprocesses)"""
- log.debug("Terminating all runners", exc_info=True)
+ log.debug("Terminating all runners")
# release dumper process as some errors before any runner is created
if not Runner.runners:
@@ -137,6 +162,8 @@ class Runner(object):
Runner.release(runner)
def __init__(self, config):
+ self.task_id = None
+ self.case_name = None
self.config = config
self.periodic_action_process = None
self.output_queue = multiprocessing.Queue()
@@ -170,6 +197,8 @@ class Runner(object):
cls = getattr(module, path_split[-1])
self.config['object'] = class_name
+ self.case_name = scenario_cfg['tc']
+ self.task_id = scenario_cfg['task_id']
self.aborted.clear()
# run a potentially configured pre-start action
@@ -239,16 +268,30 @@ class Runner(object):
log.debug("output_queue size %s", self.output_queue.qsize())
try:
result.update(self.output_queue.get(True, 1))
- except Empty:
+ except moves.queue.Empty:
pass
return result
def get_result(self):
result = []
+
+ dispatcher = self.config['output_config']['DEFAULT']['dispatcher']
+ output_in_influxdb = 'influxdb' in dispatcher
+
while not self.result_queue.empty():
log.debug("result_queue size %s", self.result_queue.qsize())
try:
- result.append(self.result_queue.get(True, 1))
- except Empty:
+ one_record = self.result_queue.get(True, 1)
+ except moves.queue.Empty:
pass
+ else:
+ if output_in_influxdb:
+ self._output_to_influxdb(one_record)
+
+ result.append(one_record)
return result
+
+ def _output_to_influxdb(self, record):
+ dispatchers = DispatcherBase.get(self.config['output_config'])
+ dispatcher = next((d for d in dispatchers if d.__dispatcher_type__ == 'Influxdb'))
+ dispatcher.upload_one_record(record, self.case_name, '', task_id=self.task_id)
diff --git a/yardstick/benchmark/runners/duration.py b/yardstick/benchmark/runners/duration.py
index fbf72a74c..55c3690fd 100644
--- a/yardstick/benchmark/runners/duration.py
+++ b/yardstick/benchmark/runners/duration.py
@@ -27,6 +27,7 @@ import traceback
import time
from yardstick.benchmark.runners import base
+from yardstick.common import exceptions as y_exc
LOG = logging.getLogger(__name__)
@@ -66,18 +67,21 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
data = {}
errors = ""
+ benchmark.pre_run_wait_time(interval)
+
try:
result = method(data)
- except AssertionError as assertion:
+ except y_exc.SLAValidationError as error:
# SLA validation failed in scenario, determine what to do now
if sla_action == "assert":
+ benchmark.teardown()
raise
elif sla_action == "monitor":
- LOG.warning("SLA validation failed: %s", assertion.args)
- errors = assertion.args
+ LOG.warning("SLA validation failed: %s", error.args)
+ errors = error.args
# catch all exceptions because with multiprocessing we can have un-picklable exception
# problems https://bugs.python.org/issue9400
- except Exception:
+ except Exception: # pylint: disable=broad-except
errors = traceback.format_exc()
LOG.exception("")
else:
@@ -86,7 +90,7 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
# if we do timeout we don't care about dropping individual KPIs
output_queue.put(result, True, QUEUE_PUT_TIMEOUT)
- time.sleep(interval)
+ benchmark.post_run_wait_time(interval)
benchmark_output = {
'timestamp': time.time(),
@@ -102,7 +106,8 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
sequence += 1
- if (errors and sla_action is None) or time.time() > timeout or aborted.is_set():
+ if ((errors and sla_action is None) or time.time() > timeout
+ or aborted.is_set() or benchmark.is_ended()):
LOG.info("Worker END")
break
diff --git a/yardstick/benchmark/runners/dynamictp.py b/yardstick/benchmark/runners/dynamictp.py
index 63bfc823a..88d3c5704 100755
--- a/yardstick/benchmark/runners/dynamictp.py
+++ b/yardstick/benchmark/runners/dynamictp.py
@@ -27,6 +27,7 @@ import traceback
import os
from yardstick.benchmark.runners import base
+from yardstick.common import exceptions as y_exc
LOG = logging.getLogger(__name__)
@@ -80,10 +81,10 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
try:
method(data)
- except AssertionError as assertion:
- LOG.warning("SLA validation failed: %s" % assertion.args)
+ except y_exc.SLAValidationError as error:
+ LOG.warning("SLA validation failed: %s", error.args)
too_high = True
- except Exception as e:
+ except Exception as e: # pylint: disable=broad-except
errors = traceback.format_exc()
LOG.exception(e)
diff --git a/yardstick/benchmark/runners/iteration.py b/yardstick/benchmark/runners/iteration.py
index cb0424377..15dad2cd5 100644
--- a/yardstick/benchmark/runners/iteration.py
+++ b/yardstick/benchmark/runners/iteration.py
@@ -23,12 +23,12 @@ from __future__ import absolute_import
import logging
import multiprocessing
-import time
import traceback
import os
from yardstick.benchmark.runners import base
+from yardstick.common import exceptions as y_exc
LOG = logging.getLogger(__name__)
@@ -39,8 +39,6 @@ QUEUE_PUT_TIMEOUT = 10
def _worker_process(queue, cls, method_name, scenario_cfg,
context_cfg, aborted, output_queue):
- sequence = 1
-
runner_cfg = scenario_cfg['runner']
interval = runner_cfg.get("interval", 1)
@@ -52,6 +50,7 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
runner_cfg['runner_id'] = os.getpid()
+ scenario_output = base.ScenarioOutput(queue, sequence=1, errors="")
benchmark = cls(scenario_cfg, context_cfg)
if "setup" in run_step:
benchmark.setup()
@@ -66,20 +65,21 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
LOG.debug("runner=%(runner)s seq=%(sequence)s START",
{"runner": runner_cfg["runner_id"],
- "sequence": sequence})
+ "sequence": scenario_output.sequence})
- data = {}
- errors = ""
+ scenario_output.clear()
+ scenario_output.errors = ""
+ benchmark.pre_run_wait_time(interval)
try:
- result = method(data)
- except AssertionError as assertion:
+ result = method(scenario_output)
+ except y_exc.SLAValidationError as error:
# SLA validation failed in scenario, determine what to do now
if sla_action == "assert":
raise
elif sla_action == "monitor":
- LOG.warning("SLA validation failed: %s", assertion.args)
- errors = assertion.args
+ LOG.warning("SLA validation failed: %s", error.args)
+ scenario_output.errors = error.args
elif sla_action == "rate-control":
try:
scenario_cfg['options']['rate']
@@ -88,36 +88,31 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
scenario_cfg['options']['rate'] = 100
scenario_cfg['options']['rate'] -= delta
- sequence = 1
+ scenario_output.sequence = 1
continue
- except Exception:
- errors = traceback.format_exc()
+ except Exception: # pylint: disable=broad-except
+ scenario_output.errors = traceback.format_exc()
LOG.exception("")
+ raise
else:
if result:
# add timeout for put so we don't block test
# if we do timeout we don't care about dropping individual KPIs
output_queue.put(result, True, QUEUE_PUT_TIMEOUT)
- time.sleep(interval)
-
- benchmark_output = {
- 'timestamp': time.time(),
- 'sequence': sequence,
- 'data': data,
- 'errors': errors
- }
+ benchmark.post_run_wait_time(interval)
- queue.put(benchmark_output, True, QUEUE_PUT_TIMEOUT)
+ if scenario_output:
+ scenario_output.push()
LOG.debug("runner=%(runner)s seq=%(sequence)s END",
{"runner": runner_cfg["runner_id"],
- "sequence": sequence})
+ "sequence": scenario_output.sequence})
- sequence += 1
+ scenario_output.sequence += 1
- if (errors and sla_action is None) or \
- (sequence > iterations or aborted.is_set()):
+ if (scenario_output.errors and sla_action is None) or \
+ (scenario_output.sequence > iterations or aborted.is_set()):
LOG.info("worker END")
break
if "teardown" in run_step:
diff --git a/yardstick/benchmark/runners/proxduration.py b/yardstick/benchmark/runners/proxduration.py
new file mode 100644
index 000000000..e217904b9
--- /dev/null
+++ b/yardstick/benchmark/runners/proxduration.py
@@ -0,0 +1,166 @@
+# Copyright 2014: Mirantis Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+# yardstick comment: this is a modified copy of
+# rally/rally/benchmark/runners/constant.py
+
+"""A runner that runs a specific time before it returns
+"""
+
+from __future__ import absolute_import
+
+import os
+import multiprocessing
+import logging
+import traceback
+import time
+
+from yardstick.benchmark.runners import base
+from yardstick.common import exceptions as y_exc
+from yardstick.common import constants
+
+LOG = logging.getLogger(__name__)
+
+def _worker_process(queue, cls, method_name, scenario_cfg,
+ context_cfg, aborted, output_queue):
+
+ sequence = 1
+
+ runner_cfg = scenario_cfg['runner']
+
+ requested_interval = interval = runner_cfg.get("interval", 1)
+ duration = runner_cfg.get("duration", 60)
+ sampled = runner_cfg.get("sampled", False)
+
+ LOG.info("Worker START, duration is %ds", duration)
+ LOG.debug("class is %s", cls)
+
+ runner_cfg['runner_id'] = os.getpid()
+
+ benchmark = cls(scenario_cfg, context_cfg)
+ benchmark.setup()
+ method = getattr(benchmark, method_name)
+
+ sla_action = None
+ if "sla" in scenario_cfg:
+ sla_action = scenario_cfg["sla"].get("action", "assert")
+
+
+ start = time.time()
+ timeout = start + duration
+ while True:
+
+ LOG.debug("runner=%(runner)s seq=%(sequence)s START",
+ {"runner": runner_cfg["runner_id"], "sequence": sequence})
+
+ data = {}
+ errors = ""
+
+ benchmark.pre_run_wait_time(interval)
+
+ if sampled:
+ try:
+ pre_adjustment = time.time()
+ result = method(data)
+ post_adjustment = time.time()
+ if requested_interval > post_adjustment - pre_adjustment:
+ interval = requested_interval - (post_adjustment - pre_adjustment)
+ else:
+ interval = 0
+
+ except y_exc.SLAValidationError as error:
+ # SLA validation failed in scenario, determine what to do now
+ if sla_action == "assert":
+ raise
+ elif sla_action == "monitor":
+ LOG.warning("SLA validation failed: %s", error.args)
+ errors = error.args
+ # catch all exceptions because with multiprocessing we can have un-picklable exception
+ # problems https://bugs.python.org/issue9400
+ except Exception: # pylint: disable=broad-except
+ errors = traceback.format_exc()
+ LOG.exception("")
+ else:
+ if result:
+ # add timeout for put so we don't block test
+ # if we do timeout we don't care about dropping individual KPIs
+ output_queue.put(result, True, constants.QUEUE_PUT_TIMEOUT)
+
+ benchmark_output = {
+ 'timestamp': time.time(),
+ 'sequence': sequence,
+ 'data': data,
+ 'errors': errors
+ }
+
+ queue.put(benchmark_output, True, constants.QUEUE_PUT_TIMEOUT)
+ else:
+ LOG.debug("No sample collected ...Sequence %s", sequence)
+
+
+ sequence += 1
+
+ if ((errors and sla_action is None) or time.time() > timeout
+ or aborted.is_set() or benchmark.is_ended()):
+ LOG.info("Worker END")
+ break
+
+ try:
+ benchmark.teardown()
+ except Exception:
+ # catch any exception in teardown and convert to simple exception
+ # never pass exceptions back to multiprocessing, because some exceptions can
+ # be unpicklable
+ # https://bugs.python.org/issue9400
+ LOG.exception("")
+ raise SystemExit(1)
+
+ LOG.debug("queue.qsize() = %s", queue.qsize())
+ LOG.debug("output_queue.qsize() = %s", output_queue.qsize())
+ LOG.info("Exiting ProxDuration Runner...")
+
+class ProxDurationRunner(base.Runner):
+ """Run a scenario for a certain amount of time
+
+If the scenario ends before the time has elapsed, it will be started again.
+
+ Parameters
+ duration - amount of time the scenario will be run for
+ type: int
+ unit: seconds
+ default: 60 sec
+ interval - time to wait between each scenario invocation
+ type: int
+ unit: seconds
+ default: 1 sec
+ sampled - Sample data is required yes/no
+ type: boolean
+ unit: True/False
+ default: False
+ confirmation - Number of confirmation retries
+ type: int
+ unit: retry attempts
+ default: 0
+ """
+ __execution_type__ = 'ProxDuration'
+
+ def _run_benchmark(self, cls, method, scenario_cfg, context_cfg):
+ name = "{}-{}-{}".format(self.__execution_type__, scenario_cfg.get("type"), os.getpid())
+ self.process = multiprocessing.Process(
+ name=name,
+ target=_worker_process,
+ args=(self.result_queue, cls, method, scenario_cfg,
+ context_cfg, self.aborted, self.output_queue))
+ self.process.start()
diff --git a/yardstick/benchmark/runners/search.py b/yardstick/benchmark/runners/search.py
index 8037329b5..01a4292c7 100644
--- a/yardstick/benchmark/runners/search.py
+++ b/yardstick/benchmark/runners/search.py
@@ -33,6 +33,7 @@ from collections import Mapping
from six.moves import zip
from yardstick.benchmark.runners import base
+from yardstick.common import exceptions as y_exc
LOG = logging.getLogger(__name__)
@@ -119,14 +120,14 @@ If the scenario ends before the time has elapsed, it will be started again.
try:
self.worker_helper(data)
- except AssertionError as assertion:
+ except y_exc.SLAValidationError as error:
# SLA validation failed in scenario, determine what to do now
if self.sla_action == "assert":
raise
elif self.sla_action == "monitor":
- LOG.warning("SLA validation failed: %s", assertion.args)
- errors = assertion.args
- except Exception as e:
+ LOG.warning("SLA validation failed: %s", error.args)
+ errors = error.args
+ except Exception as e: # pylint: disable=broad-except
errors = traceback.format_exc()
LOG.exception(e)
diff --git a/yardstick/benchmark/runners/sequence.py b/yardstick/benchmark/runners/sequence.py
index d6e3f7109..58ffddd22 100644
--- a/yardstick/benchmark/runners/sequence.py
+++ b/yardstick/benchmark/runners/sequence.py
@@ -30,6 +30,7 @@ import traceback
import os
from yardstick.benchmark.runners import base
+from yardstick.common import exceptions as y_exc
LOG = logging.getLogger(__name__)
@@ -37,8 +38,6 @@ LOG = logging.getLogger(__name__)
def _worker_process(queue, cls, method_name, scenario_cfg,
context_cfg, aborted, output_queue):
- sequence = 1
-
runner_cfg = scenario_cfg['runner']
interval = runner_cfg.get("interval", 1)
@@ -55,6 +54,7 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
LOG.info("worker START, sequence_values(%s, %s), class %s",
arg_name, sequence_values, cls)
+ scenario_output = base.ScenarioOutput(queue, sequence=1, errors="")
benchmark = cls(scenario_cfg, context_cfg)
benchmark.setup()
method = getattr(benchmark, method_name)
@@ -67,22 +67,23 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
options[arg_name] = value
LOG.debug("runner=%(runner)s seq=%(sequence)s START",
- {"runner": runner_cfg["runner_id"], "sequence": sequence})
+ {"runner": runner_cfg["runner_id"],
+ "sequence": scenario_output.sequence})
- data = {}
- errors = ""
+ scenario_output.clear()
+ scenario_output.errors = ""
try:
- result = method(data)
- except AssertionError as assertion:
+ result = method(scenario_output)
+ except y_exc.SLAValidationError as error:
# SLA validation failed in scenario, determine what to do now
if sla_action == "assert":
raise
elif sla_action == "monitor":
- LOG.warning("SLA validation failed: %s", assertion.args)
- errors = assertion.args
- except Exception as e:
- errors = traceback.format_exc()
+ LOG.warning("SLA validation failed: %s", error.args)
+ scenario_output.errors = error.args
+ except Exception as e: # pylint: disable=broad-except
+ scenario_output.errors = traceback.format_exc()
LOG.exception(e)
else:
if result:
@@ -90,21 +91,16 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
time.sleep(interval)
- benchmark_output = {
- 'timestamp': time.time(),
- 'sequence': sequence,
- 'data': data,
- 'errors': errors
- }
-
- queue.put(benchmark_output)
+ if scenario_output:
+ scenario_output.push()
LOG.debug("runner=%(runner)s seq=%(sequence)s END",
- {"runner": runner_cfg["runner_id"], "sequence": sequence})
+ {"runner": runner_cfg["runner_id"],
+ "sequence": scenario_output.sequence})
- sequence += 1
+ scenario_output.sequence += 1
- if (errors and sla_action is None) or aborted.is_set():
+ if (scenario_output.errors and sla_action is None) or aborted.is_set():
break
try:
diff --git a/yardstick/benchmark/scenarios/availability/attacker/attacker_baremetal.py b/yardstick/benchmark/scenarios/availability/attacker/attacker_baremetal.py
index 979e3ab14..4c79a4931 100644
--- a/yardstick/benchmark/scenarios/availability/attacker/attacker_baremetal.py
+++ b/yardstick/benchmark/scenarios/availability/attacker/attacker_baremetal.py
@@ -23,7 +23,7 @@ def _execute_shell_command(command, stdin=None):
output = []
try:
output = subprocess.check_output(command, stdin=stdin, shell=True)
- except Exception:
+ except Exception: # pylint: disable=broad-except
exitcode = -1
LOG.error("exec command '%s' error:\n ", command, exc_info=True)
@@ -34,6 +34,8 @@ class BaremetalAttacker(BaseAttacker):
__attacker_type__ = 'bare-metal-down'
def setup(self):
+ # baremetal down need to recover even sla pass
+ self.mandatory = True
LOG.debug("config:%s context:%s", self._config, self._context)
host = self._context.get(self._config['host'], None)
@@ -49,8 +51,7 @@ class BaremetalAttacker(BaseAttacker):
LOG.debug("jump_host ip:%s user:%s", jump_host['ip'], jump_host['user'])
self.jump_connection = ssh.SSH.from_node(
jump_host,
- # why do we allow pwd for password?
- defaults={"user": "root", "password": jump_host.get("pwd")}
+ defaults={"user": "root", "password": jump_host.get("password")}
)
self.jump_connection.wait(timeout=600)
LOG.debug("ssh jump host success!")
@@ -59,7 +60,7 @@ class BaremetalAttacker(BaseAttacker):
self.ipmi_ip = host.get("ipmi_ip", None)
self.ipmi_user = host.get("ipmi_user", "root")
- self.ipmi_pwd = host.get("ipmi_pwd", None)
+ self.ipmi_pwd = host.get("ipmi_password", None)
self.fault_cfg = BaseAttacker.attacker_cfgs.get('bare-metal-down')
self.check_script = self.get_script_fullpath(
@@ -107,26 +108,3 @@ class BaremetalAttacker(BaseAttacker):
else:
_execute_shell_command(cmd, stdin=stdin_file)
LOG.info("Recover fault END")
-
-
-def _test(): # pragma: no cover
- host = {
- "ipmi_ip": "10.20.0.5",
- "ipmi_user": "root",
- "ipmi_pwd": "123456",
- "ip": "10.20.0.5",
- "user": "root",
- "key_filename": "/root/.ssh/id_rsa"
- }
- context = {"node1": host}
- attacker_cfg = {
- 'fault_type': 'bear-metal-down',
- 'host': 'node1',
- }
- ins = BaremetalAttacker(attacker_cfg, context)
- ins.setup()
- ins.inject_fault()
-
-
-if __name__ == '__main__': # pragma: no cover
- _test()
diff --git a/yardstick/benchmark/scenarios/availability/attacker/attacker_process.py b/yardstick/benchmark/scenarios/availability/attacker/attacker_process.py
index cb171eafa..7f1136c08 100644
--- a/yardstick/benchmark/scenarios/availability/attacker/attacker_process.py
+++ b/yardstick/benchmark/scenarios/availability/attacker/attacker_process.py
@@ -42,29 +42,28 @@ class ProcessAttacker(BaseAttacker):
def check(self):
with open(self.check_script, "r") as stdin_file:
- exit_status, stdout, stderr = self.connection.execute(
+ _, stdout, stderr = self.connection.execute(
"sudo /bin/sh -s {0}".format(self.service_name),
stdin=stdin_file)
if stdout:
- LOG.info("check the environment success!")
+ LOG.info("Check the environment success!")
return int(stdout.strip('\n'))
else:
- LOG.error(
- "the host environment is error, stdout:%s, stderr:%s",
- stdout, stderr)
+ LOG.error("Error checking the host environment, "
+ "stdout:%s, stderr:%s", stdout, stderr)
return False
def inject_fault(self):
with open(self.inject_script, "r") as stdin_file:
- exit_status, stdout, stderr = self.connection.execute(
+ self.connection.execute(
"sudo /bin/sh -s {0}".format(self.service_name),
stdin=stdin_file)
def recover(self):
with open(self.recovery_script, "r") as stdin_file:
- exit_status, stdout, stderr = self.connection.execute(
+ exit_status, _, _ = self.connection.execute(
"sudo /bin/bash -s {0} ".format(self.service_name),
stdin=stdin_file)
if exit_status:
- LOG.info("Fail to restart service!")
+ LOG.info("Failed to restart service: %s", self.recovery_script)
diff --git a/yardstick/benchmark/scenarios/availability/attacker/baseattacker.py b/yardstick/benchmark/scenarios/availability/attacker/baseattacker.py
index d03d04420..7871cc918 100644
--- a/yardstick/benchmark/scenarios/availability/attacker/baseattacker.py
+++ b/yardstick/benchmark/scenarios/availability/attacker/baseattacker.py
@@ -63,6 +63,7 @@ class BaseAttacker(object):
self.data = {}
self.setup_done = False
self.intermediate_variables = {}
+ self.mandatory = False
@staticmethod
def get_attacker_cls(attacker_cfg):
@@ -71,7 +72,7 @@ class BaseAttacker(object):
for attacker_cls in utils.itersubclasses(BaseAttacker):
if attacker_type == attacker_cls.__attacker_type__:
return attacker_cls
- raise RuntimeError("No such runner_type %s" % attacker_type)
+ raise RuntimeError("No such runner_type: %s" % attacker_type)
def get_script_fullpath(self, path):
base_path = os.path.dirname(attacker_conf_path)
diff --git a/yardstick/benchmark/scenarios/availability/director.py b/yardstick/benchmark/scenarios/availability/director.py
index 71690c135..6cc0cb286 100644
--- a/yardstick/benchmark/scenarios/availability/director.py
+++ b/yardstick/benchmark/scenarios/availability/director.py
@@ -40,7 +40,7 @@ class Director(object):
nodes = self.context_cfg.get("nodes", None)
# setup attackers
if "attackers" in self.scenario_cfg["options"]:
- LOG.debug("start init attackers...")
+ LOG.debug("Start init attackers...")
attacker_cfgs = self.scenario_cfg["options"]["attackers"]
self.attackerMgr = baseattacker.AttackerMgr()
self.data = self.attackerMgr.init_attackers(attacker_cfgs,
@@ -48,19 +48,19 @@ class Director(object):
# setup monitors
if "monitors" in self.scenario_cfg["options"]:
- LOG.debug("start init monitors...")
+ LOG.debug("Start init monitors...")
monitor_cfgs = self.scenario_cfg["options"]["monitors"]
self.monitorMgr = basemonitor.MonitorMgr(self.data)
self.monitorMgr.init_monitors(monitor_cfgs, nodes)
# setup operations
if "operations" in self.scenario_cfg["options"]:
- LOG.debug("start init operations...")
+ LOG.debug("Start init operations...")
operation_cfgs = self.scenario_cfg["options"]["operations"]
self.operationMgr = baseoperation.OperationMgr()
self.operationMgr.init_operations(operation_cfgs, nodes)
# setup result checker
if "resultCheckers" in self.scenario_cfg["options"]:
- LOG.debug("start init resultCheckers...")
+ LOG.debug("Start init resultCheckers...")
result_check_cfgs = self.scenario_cfg["options"]["resultCheckers"]
self.resultCheckerMgr = baseresultchecker.ResultCheckerMgr()
self.resultCheckerMgr.init_ResultChecker(result_check_cfgs, nodes)
@@ -69,7 +69,7 @@ class Director(object):
if intermediate_variables is None:
intermediate_variables = {}
LOG.debug(
- "the type of current action is %s, the key is %s", type, key)
+ "The type of current action is %s, the key is %s", type, key)
if type == ActionType.ATTACKER:
return actionplayers.AttackerPlayer(self.attackerMgr[key], intermediate_variables)
if type == ActionType.MONITOR:
@@ -80,17 +80,17 @@ class Director(object):
if type == ActionType.OPERATION:
return actionplayers.OperationPlayer(self.operationMgr[key],
intermediate_variables)
- LOG.debug("something run when creatactionplayer")
+ LOG.debug("The type is not recognized by createActionPlayer")
def createActionRollbacker(self, type, key):
LOG.debug(
- "the type of current action is %s, the key is %s", type, key)
+ "The type of current action is %s, the key is %s", type, key)
if type == ActionType.ATTACKER:
return actionrollbackers.AttackerRollbacker(self.attackerMgr[key])
if type == ActionType.OPERATION:
return actionrollbackers.OperationRollbacker(
self.operationMgr[key])
- LOG.debug("no rollbacker created for %s", key)
+ LOG.debug("No rollbacker created for key: %s", key)
def verify(self):
result = True
@@ -99,7 +99,7 @@ class Director(object):
if hasattr(self, 'resultCheckerMgr'):
result &= self.resultCheckerMgr.verify()
if result:
- LOG.debug("monitors are passed")
+ LOG.debug("Monitor results are passed")
return result
def stopMonitors(self):
@@ -107,12 +107,12 @@ class Director(object):
self.monitorMgr.wait_monitors()
def knockoff(self):
- LOG.debug("knock off ....")
+ LOG.debug("Knock off ....")
while self.executionSteps:
singleStep = self.executionSteps.pop()
singleStep.rollback()
def store_result(self, result):
- LOG.debug("store result ....")
+ LOG.debug("Store result ....")
if hasattr(self, 'monitorMgr'):
self.monitorMgr.store_result(result)
diff --git a/yardstick/benchmark/scenarios/availability/ha_tools/fault_process_kill.bash b/yardstick/benchmark/scenarios/availability/ha_tools/fault_process_kill.bash
index d34ce9338..cda469cf9 100755
--- a/yardstick/benchmark/scenarios/availability/ha_tools/fault_process_kill.bash
+++ b/yardstick/benchmark/scenarios/availability/ha_tools/fault_process_kill.bash
@@ -16,7 +16,7 @@ set -e
process_name=$1
if [ "$process_name" = "keystone" ]; then
- for pid in $(ps aux | grep "keystone" | grep -iv heartbeat | grep -iv monitor | grep -v grep | grep -v /bin/sh | awk '{print $2}'); \
+ for pid in $(ps aux | grep "keystone" | grep -iv monitor | grep -v grep | grep -v /bin/sh | awk '{print $2}'); \
do
kill -9 "${pid}"
done
@@ -26,7 +26,7 @@ elif [ "$process_name" = "haproxy" ]; then
kill -9 "${pid}"
done
else
- for pid in $(pgrep -fa [^-_a-zA-Z0-9]${process_name} | grep -iv heartbeat | awk '{print $1}');
+ for pid in $(pgrep -fa [^-_a-zA-Z0-9]${process_name} | awk '{print $1}');
do
kill -9 "${pid}"
done
diff --git a/yardstick/benchmark/scenarios/availability/ha_tools/nova/add_server_to_existing_secgroup.bash b/yardstick/benchmark/scenarios/availability/ha_tools/nova/add_server_to_existing_secgroup.bash
new file mode 100644
index 000000000..3a50626f5
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/ha_tools/nova/add_server_to_existing_secgroup.bash
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+##############################################################################
+# Copyright (c) 2018 Intracom Telecom 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
+##############################################################################
+
+# add server to existing security group
+# parameters: $1 - server name, $2 - security group name
+
+set -e
+
+if [ $OS_INSECURE ] && [ "$(echo $OS_INSECURE | tr '[:upper:]' '[:lower:]')" = "true" ]; then
+ SECURE="--insecure"
+else
+ SECURE=""
+fi
+
+SECGROUPNAME="$(openstack ${SECURE} security group list -f value -c Name | grep $2)"
+
+openstack ${SECURE} server add security group $1 ${SECGROUPNAME}
+
diff --git a/yardstick/benchmark/scenarios/availability/ha_tools/nova/create_instance_from_image.bash b/yardstick/benchmark/scenarios/availability/ha_tools/nova/create_instance_from_image.bash
new file mode 100644
index 000000000..5e0b1ccf1
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/ha_tools/nova/create_instance_from_image.bash
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+##############################################################################
+# Copyright (c) 2018 Intracom Telecom 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
+##############################################################################
+
+# create nova server
+# parameters: $1 - server name, $2 - image name, $3 - flavor name, $4 - network name
+
+set -e
+
+if [ $OS_INSECURE ] && [ "$(echo $OS_INSECURE | tr '[:upper:]' '[:lower:]')" = "true" ]; then
+ SECURE="--insecure"
+else
+ SECURE=""
+fi
+
+NETNAME="$(openstack ${SECURE} network list -f value -c Name | grep $4)"
+
+openstack ${SECURE} server create $1 --image $2 --flavor $3 --network ${NETNAME}
+
diff --git a/yardstick/benchmark/scenarios/availability/ha_tools/nova/delete_instance.bash b/yardstick/benchmark/scenarios/availability/ha_tools/nova/delete_instance.bash
new file mode 100644
index 000000000..008e7f5ff
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/ha_tools/nova/delete_instance.bash
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+##############################################################################
+# Copyright (c) 2018 Intracom Telecom 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
+##############################################################################
+
+# delete nova server
+# parameters: $1 - server name
+
+set -e
+
+if [ $OS_INSECURE ] && [ "$(echo $OS_INSECURE | tr '[:upper:]' '[:lower:]')" = "true" ]; then
+ SECURE="--insecure"
+else
+ SECURE=""
+fi
+
+openstack ${SECURE} server delete $1
+
diff --git a/yardstick/benchmark/scenarios/availability/ha_tools/nova/get_server_privateip.bash b/yardstick/benchmark/scenarios/availability/ha_tools/nova/get_server_privateip.bash
new file mode 100644
index 000000000..7f2bad540
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/ha_tools/nova/get_server_privateip.bash
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+##############################################################################
+# Copyright (c) 2018 Intracom Telecom 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
+##############################################################################
+
+# get private ip of a server
+# parameter: $1 - server name
+
+set -e
+
+if [ $OS_INSECURE ] && [ "$(echo $OS_INSECURE | tr '[:upper:]' '[:lower:]')" = "true" ]; then
+ SECURE="--insecure"
+else
+ SECURE=""
+fi
+
+openstack ${SECURE} server list -f value -c Name -c Networks | grep $1 | awk '{print $2}' | sed -r 's/.*=([0-9\.\:]+)[;,]*/\1/'
+
diff --git a/yardstick/benchmark/scenarios/availability/ha_tools/nova/remove_server_from_secgroup.bash b/yardstick/benchmark/scenarios/availability/ha_tools/nova/remove_server_from_secgroup.bash
new file mode 100644
index 000000000..61d0a2b49
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/ha_tools/nova/remove_server_from_secgroup.bash
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+##############################################################################
+# Copyright (c) 2018 Intracom Telecom 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
+##############################################################################
+
+# remove server from existing security group
+# parameters: $1 - server name, $2 - security group name
+
+set -e
+
+if [ $OS_INSECURE ] && [ "$(echo $OS_INSECURE | tr '[:upper:]' '[:lower:]')" = "true" ]; then
+ SECURE="--insecure"
+else
+ SECURE=""
+fi
+
+SECGROUPNAME="$(openstack ${SECURE} security group list -f value -c Name | grep $2)"
+
+openstack ${SECURE} server remove security group $1 ${SECGROUPNAME}
diff --git a/yardstick/benchmark/scenarios/availability/ha_tools/start_service.bash b/yardstick/benchmark/scenarios/availability/ha_tools/start_service.bash
index 858d86ca0..2388507d7 100755
--- a/yardstick/benchmark/scenarios/availability/ha_tools/start_service.bash
+++ b/yardstick/benchmark/scenarios/availability/ha_tools/start_service.bash
@@ -9,24 +9,23 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Start a service and check the service is started
+# Start or restart a service and check the service is started
set -e
service_name=$1
+operation=${2-start} # values are "start" or "restart"
-Distributor=$(lsb_release -a | grep "Distributor ID" | awk '{print $3}')
-
-if [ "$Distributor" != "Ubuntu" -a "$service_name" != "keystone" -a "$service_name" != "neutron-server" -a "$service_name" != "haproxy" ]; then
+if [ -f /usr/bin/yum -a "$service_name" != "keystone" -a "$service_name" != "neutron-server" -a "$service_name" != "haproxy" -a "$service_name" != "openvswitch" ]; then
service_name="openstack-"${service_name}
-elif [ "$Distributor" = "Ubuntu" -a "$service_name" = "keystone" ]; then
+elif [ -f /usr/bin/apt -a "$service_name" = "keystone" ]; then
service_name="apache2"
elif [ "$service_name" = "keystone" ]; then
service_name="httpd"
fi
if which systemctl 2>/dev/null; then
- systemctl start $service_name
+ systemctl $operation $service_name
else
- service $service_name start
+ service $service_name $operation
fi
diff --git a/yardstick/benchmark/scenarios/availability/monitor/basemonitor.py b/yardstick/benchmark/scenarios/availability/monitor/basemonitor.py
index 50a63f53d..f6004c774 100644
--- a/yardstick/benchmark/scenarios/availability/monitor/basemonitor.py
+++ b/yardstick/benchmark/scenarios/availability/monitor/basemonitor.py
@@ -103,7 +103,7 @@ class BaseMonitor(multiprocessing.Process):
for monitor in utils.itersubclasses(BaseMonitor):
if monitor_type == monitor.__monitor_type__:
return monitor
- raise RuntimeError("No such monitor_type %s" % monitor_type)
+ raise RuntimeError("No such monitor_type: %s" % monitor_type)
def get_script_fullpath(self, path):
base_path = os.path.dirname(monitor_conf_path)
diff --git a/yardstick/benchmark/scenarios/availability/monitor/monitor_command.py b/yardstick/benchmark/scenarios/availability/monitor/monitor_command.py
index d0551bf03..3b36c762d 100644
--- a/yardstick/benchmark/scenarios/availability/monitor/monitor_command.py
+++ b/yardstick/benchmark/scenarios/availability/monitor/monitor_command.py
@@ -24,7 +24,7 @@ def _execute_shell_command(command):
output = []
try:
output = subprocess.check_output(command, shell=True)
- except Exception:
+ except Exception: # pylint: disable=broad-except
exitcode = -1
LOG.error("exec command '%s' error:\n ", command, exc_info=True)
@@ -45,7 +45,7 @@ class MonitorOpenstackCmd(basemonitor.BaseMonitor):
self.connection = ssh.SSH.from_node(host,
defaults={"user": "root"})
self.connection.wait(timeout=600)
- LOG.debug("ssh host success!")
+ LOG.debug("ssh host (%s) success!", str(host))
self.check_script = self.get_script_fullpath(
"ha_tools/check_openstack_cmd.bash")
@@ -61,22 +61,20 @@ class MonitorOpenstackCmd(basemonitor.BaseMonitor):
self.cmd = self.cmd + " --insecure"
def monitor_func(self):
- exit_status = 0
exit_status, stdout = _execute_shell_command(self.cmd)
- LOG.debug("Execute command '%s' and the stdout is:\n%s", self.cmd, stdout)
+ LOG.debug("Executed command '%s'. "
+ "The stdout is:\n%s", self.cmd, stdout)
if exit_status:
return False
return True
def verify_SLA(self):
outage_time = self._result.get('outage_time', None)
- LOG.debug("the _result:%s", self._result)
max_outage_time = self._config["sla"]["max_outage_time"]
if outage_time > max_outage_time:
LOG.info("SLA failure: %f > %f", outage_time, max_outage_time)
return False
else:
- LOG.info("the sla is passed")
return True
@@ -97,7 +95,7 @@ def _test(): # pragma: no cover
}
monitor_configs.append(config)
- p = basemonitor.MonitorMgr()
+ p = basemonitor.MonitorMgr({})
p.init_monitors(monitor_configs, context)
p.start_monitors()
p.wait_monitors()
diff --git a/yardstick/benchmark/scenarios/availability/monitor/monitor_multi.py b/yardstick/benchmark/scenarios/availability/monitor/monitor_multi.py
index dce69f45f..8f1f53cde 100644
--- a/yardstick/benchmark/scenarios/availability/monitor/monitor_multi.py
+++ b/yardstick/benchmark/scenarios/availability/monitor/monitor_multi.py
@@ -29,7 +29,7 @@ class MultiMonitor(basemonitor.BaseMonitor):
monitor_cls = basemonitor.BaseMonitor.get_monitor_cls(monitor_type)
monitor_number = self._config.get("monitor_number", 1)
- for i in range(monitor_number):
+ for _ in range(monitor_number):
monitor_ins = monitor_cls(self._config, self._context,
self.monitor_data)
self.monitors.append(monitor_ins)
@@ -62,19 +62,19 @@ class MultiMonitor(basemonitor.BaseMonitor):
outage_time = (
last_outage - first_outage if last_outage > first_outage else 0
)
+ self._result = {"outage_time": outage_time}
LOG.debug("outage_time is: %f", outage_time)
max_outage_time = 0
- if "max_outage_time" in self._config["sla"]:
- max_outage_time = self._config["sla"]["max_outage_time"]
- elif "max_recover_time" in self._config["sla"]:
- max_outage_time = self._config["sla"]["max_recover_time"]
- else:
- raise RuntimeError("monitor max_outage_time config is not found")
- self._result = {"outage_time": outage_time}
-
- if outage_time > max_outage_time:
- LOG.error("SLA failure: %f > %f", outage_time, max_outage_time)
- return False
- else:
- return True
+ if self._config.get("sla"):
+ if "max_outage_time" in self._config["sla"]:
+ max_outage_time = self._config["sla"]["max_outage_time"]
+ elif "max_recover_time" in self._config["sla"]:
+ max_outage_time = self._config["sla"]["max_recover_time"]
+ else:
+ raise RuntimeError("'max_outage_time' or 'max_recover_time' "
+ "config is not found")
+ if outage_time > max_outage_time:
+ LOG.error("SLA failure: %f > %f", outage_time, max_outage_time)
+ return False
+ return True
diff --git a/yardstick/benchmark/scenarios/availability/monitor/monitor_process.py b/yardstick/benchmark/scenarios/availability/monitor/monitor_process.py
index b0f6f8e9d..280e5811d 100644
--- a/yardstick/benchmark/scenarios/availability/monitor/monitor_process.py
+++ b/yardstick/benchmark/scenarios/availability/monitor/monitor_process.py
@@ -25,14 +25,14 @@ class MonitorProcess(basemonitor.BaseMonitor):
self.connection = ssh.SSH.from_node(host, defaults={"user": "root"})
self.connection.wait(timeout=600)
- LOG.debug("ssh host success!")
+ LOG.debug("ssh host (%s) success!", str(host))
self.check_script = self.get_script_fullpath(
"ha_tools/check_process_python.bash")
self.process_name = self._config["process_name"]
def monitor_func(self):
with open(self.check_script, "r") as stdin_file:
- exit_status, stdout, stderr = self.connection.execute(
+ _, stdout, _ = self.connection.execute(
"sudo /bin/sh -s {0}".format(self.process_name),
stdin=stdin_file)
@@ -45,15 +45,13 @@ class MonitorProcess(basemonitor.BaseMonitor):
return True
def verify_SLA(self):
- LOG.debug("the _result:%s", self._result)
outage_time = self._result.get('outage_time', None)
- max_outage_time = self._config["sla"]["max_recover_time"]
- if outage_time > max_outage_time:
- LOG.error("SLA failure: %f > %f", outage_time, max_outage_time)
- return False
- else:
- LOG.info("the sla is passed")
- return True
+ if self._config.get("sla"):
+ max_outage_time = self._config["sla"]["max_recover_time"]
+ if outage_time > max_outage_time:
+ LOG.info("SLA failure: %f > %f", outage_time, max_outage_time)
+ return False
+ return True
def _test(): # pragma: no cover
@@ -73,7 +71,7 @@ def _test(): # pragma: no cover
}
monitor_configs.append(config)
- p = basemonitor.MonitorMgr()
+ p = basemonitor.MonitorMgr({})
p.init_monitors(monitor_configs, context)
p.start_monitors()
p.wait_monitors()
diff --git a/yardstick/benchmark/scenarios/availability/operation_conf.yaml b/yardstick/benchmark/scenarios/availability/operation_conf.yaml
index dc5169196..5f3f6c91e 100644
--- a/yardstick/benchmark/scenarios/availability/operation_conf.yaml
+++ b/yardstick/benchmark/scenarios/availability/operation_conf.yaml
@@ -35,3 +35,14 @@ get-vip-host:
action_script: ha_tools/pacemaker/get_vip_host.bash
rollback_script: ha_tools/pacemaker/get_resource_status.bash
+start-service:
+ action_script: ha_tools/start_service.bash
+ rollback_script: ha_tools/check_process_python.bash
+
+add-server-to-secgroup:
+ action_script: ha_tools/nova/add_server_to_existing_secgroup.bash
+ rollback_script: ha_tools/nova/remove_server_from_secgroup.bash
+
+get-privateip:
+ action_script: ha_tools/nova/get_server_privateip.bash
+ rollback_script: ha_tools/nova/list_servers.bash
diff --git a/yardstick/benchmark/scenarios/availability/scenario_general.py b/yardstick/benchmark/scenarios/availability/scenario_general.py
index 9ac55471d..e2db03a70 100644
--- a/yardstick/benchmark/scenarios/availability/scenario_general.py
+++ b/yardstick/benchmark/scenarios/availability/scenario_general.py
@@ -26,7 +26,6 @@ class ScenarioGeneral(base.Scenario):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
self.intermediate_variables = {}
- self.pass_flag = True
def setup(self):
self.director = Director(self.scenario_cfg, self.context_cfg)
@@ -47,7 +46,7 @@ class ScenarioGeneral(base.Scenario):
step['actionType'], step['actionKey'])
if actionRollbacker:
self.director.executionSteps.append(actionRollbacker)
- except Exception:
+ except Exception: # pylint: disable=broad-except
LOG.exception("Exception")
LOG.debug(
"\033[91m exception when running step: %s .... \033[0m",
@@ -59,31 +58,20 @@ class ScenarioGeneral(base.Scenario):
self.director.stopMonitors()
verify_result = self.director.verify()
-
- self.director.store_result(result)
-
+ service_not_found = False
for k, v in self.director.data.items():
if v == 0:
- result['sla_pass'] = 0
verify_result = False
- self.pass_flag = False
- LOG.info(
- "\033[92m The service process not found in the host \
-envrioment, the HA test case NOT pass")
+ service_not_found = True
+ LOG.info("\033[92m The service process (%s) not found in the host environment", k)
- if verify_result:
- result['sla_pass'] = 1
- LOG.info(
- "\033[92m Congratulations, "
- "the HA test case PASS! \033[0m")
- else:
- result['sla_pass'] = 0
- self.pass_flag = False
- LOG.info(
- "\033[91m Aoh, the HA test case FAIL,"
- "please check the detail debug information! \033[0m")
+ result['sla_pass'] = 1 if verify_result else 0
+ self.director.store_result(result)
+
+ self.verify_SLA(
+ verify_result, ("a service process was not found in the host "
+ "environment" if service_not_found
+ else "Director.verify() failed"))
def teardown(self):
self.director.knockoff()
-
- assert self.pass_flag, "The HA test case NOT passed"
diff --git a/yardstick/benchmark/scenarios/availability/serviceha.py b/yardstick/benchmark/scenarios/availability/serviceha.py
index 6d0d812af..fdfe7cbbe 100755
--- a/yardstick/benchmark/scenarios/availability/serviceha.py
+++ b/yardstick/benchmark/scenarios/availability/serviceha.py
@@ -29,13 +29,13 @@ class ServiceHA(base.Scenario):
self.context_cfg = context_cfg
self.setup_done = False
self.data = {}
- self.pass_flag = True
+ self.sla_pass = False
def setup(self):
"""scenario setup"""
nodes = self.context_cfg.get("nodes", None)
if nodes is None:
- LOG.error("the nodes info is none")
+ LOG.error("The nodes info is none")
return
self.attackers = []
@@ -58,43 +58,40 @@ class ServiceHA(base.Scenario):
def run(self, result):
"""execute the benchmark"""
if not self.setup_done:
- LOG.error("The setup not finished!")
+ LOG.error("The setup is not finished!")
return
self.monitorMgr.start_monitors()
- LOG.info("HA monitor start!")
+ LOG.info("Monitor '%s' start!", self.__scenario_type__)
for attacker in self.attackers:
attacker.inject_fault()
self.monitorMgr.wait_monitors()
- LOG.info("HA monitor stop!")
+ LOG.info("Monitor '%s' stop!", self.__scenario_type__)
- sla_pass = self.monitorMgr.verify_SLA()
+ self.sla_pass = self.monitorMgr.verify_SLA()
+ service_not_found = False
for k, v in self.data.items():
if v == 0:
- result['sla_pass'] = 0
- self.pass_flag = False
- LOG.info("The service process not found in the host envrioment, \
-the HA test case NOT pass")
- return
+ self.sla_pass = False
+ service_not_found = True
+ LOG.info("The service process (%s) not found in the host envrioment", k)
+
+ result['sla_pass'] = 1 if self.sla_pass else 0
self.monitorMgr.store_result(result)
- if sla_pass:
- result['sla_pass'] = 1
- LOG.info("The HA test case PASS the SLA")
- else:
- result['sla_pass'] = 0
- self.pass_flag = False
- assert sla_pass is True, "The HA test case NOT pass the SLA"
- return
+ self.verify_SLA(
+ self.sla_pass, ("a service process was not found in the host "
+ "environment" if service_not_found
+ else "MonitorMgr.verify_SLA() failed"))
def teardown(self):
"""scenario teardown"""
+ # recover when mandatory or sla not pass
for attacker in self.attackers:
- attacker.recover()
-
- assert self.pass_flag, "The HA test case NOT passed"
+ if attacker.mandatory or not self.sla_pass:
+ attacker.recover()
def _test(): # pragma: no cover
diff --git a/yardstick/benchmark/scenarios/base.py b/yardstick/benchmark/scenarios/base.py
index 7af85834c..ae8bfad71 100644
--- a/yardstick/benchmark/scenarios/base.py
+++ b/yardstick/benchmark/scenarios/base.py
@@ -13,44 +13,76 @@
# License for the specific language governing permissions and limitations
# under the License.
-# yardstick comment: this is a modified copy of
-# rally/rally/benchmark/scenarios/base.py
+import abc
+import time
-""" Scenario base class
-"""
+import six
+from stevedore import extension
-from __future__ import absolute_import
import yardstick.common.utils as utils
+from yardstick.common import exceptions as y_exc
+def _iter_scenario_classes(scenario_type=None):
+ """Generator over all 'Scenario' subclasses
+
+ This function will iterate over all 'Scenario' subclasses defined in this
+ project and will load any class introduced by any installed plugin project,
+ defined in 'entry_points' section, under 'yardstick.scenarios' subsection.
+ """
+ extension.ExtensionManager(namespace='yardstick.scenarios',
+ invoke_on_load=False)
+ for scenario in utils.itersubclasses(Scenario):
+ if not scenario_type:
+ yield scenario
+ elif getattr(scenario, '__scenario_type__', None) == scenario_type:
+ yield scenario
+
+
+@six.add_metaclass(abc.ABCMeta)
class Scenario(object):
def setup(self):
- """ default impl for scenario setup """
+ """Default setup implementation for Scenario classes"""
pass
- def run(self, args):
- """ catcher for not implemented run methods in subclasses """
- raise RuntimeError("run method not implemented")
+ @abc.abstractmethod
+ def run(self, *args):
+ """Entry point for scenario classes, called from runner worker"""
+
+ def is_ended(self):
+ return False
def teardown(self):
- """ default impl for scenario teardown """
+ """Default teardown implementation for Scenario classes"""
+ pass
+
+ def pre_run_wait_time(self, time_seconds):
+ """Time waited before executing the run method"""
pass
+ def post_run_wait_time(self, time_seconds):
+ """Time waited after executing the run method"""
+ time.sleep(time_seconds)
+
+ def verify_SLA(self, condition, error_msg):
+ if not condition:
+ raise y_exc.SLAValidationError(
+ case_name=self.__scenario_type__, error_msg=error_msg)
+
@staticmethod
def get_types():
"""return a list of known runner type (class) names"""
scenarios = []
- for scenario in utils.itersubclasses(Scenario):
+ for scenario in _iter_scenario_classes():
scenarios.append(scenario)
return scenarios
@staticmethod
def get_cls(scenario_type):
"""return class of specified type"""
- for scenario in utils.itersubclasses(Scenario):
- if scenario_type == scenario.__scenario_type__:
- return scenario
+ for scenario in _iter_scenario_classes(scenario_type):
+ return scenario
raise RuntimeError("No such scenario type %s" % scenario_type)
@@ -58,11 +90,8 @@ class Scenario(object):
def get(scenario_type):
"""Returns instance of a scenario runner for execution type.
"""
- for scenario in utils.itersubclasses(Scenario):
- if scenario_type == scenario.__scenario_type__:
- return scenario.__module__ + "." + scenario.__name__
-
- raise RuntimeError("No such scenario type %s" % scenario_type)
+ scenario = Scenario.get_cls(scenario_type)
+ return scenario.__module__ + "." + scenario.__name__
@classmethod
def get_scenario_type(cls):
@@ -78,10 +107,14 @@ class Scenario(object):
"""
return cls.__doc__.splitlines()[0] if cls.__doc__ else str(None)
- def _push_to_outputs(self, keys, values):
+ @staticmethod
+ def _push_to_outputs(keys, values):
+ """Return a dictionary given the keys and the values"""
return dict(zip(keys, values))
- def _change_obj_to_dict(self, obj):
+ @staticmethod
+ def _change_obj_to_dict(obj):
+ """Return a dictionary from the __dict__ attribute of an object"""
dic = {}
for k, v in vars(obj).items():
try:
diff --git a/yardstick/benchmark/scenarios/compute/cyclictest.py b/yardstick/benchmark/scenarios/compute/cyclictest.py
index 998463ef6..413709f3b 100644
--- a/yardstick/benchmark/scenarios/compute/cyclictest.py
+++ b/yardstick/benchmark/scenarios/compute/cyclictest.py
@@ -100,7 +100,7 @@ class Cyclictest(base.Scenario):
def _run_setup_cmd(self, client, cmd):
LOG.debug("Run cmd: %s", cmd)
- status, stdout, stderr = client.execute(cmd)
+ status, _, stderr = client.execute(cmd)
if status:
if re.search(self.REBOOT_CMD_PATTERN, cmd):
LOG.debug("Error on reboot")
@@ -195,7 +195,7 @@ class Cyclictest(base.Scenario):
if latency > sla_latency:
sla_error += "%s latency %d > sla:max_%s_latency(%d); " % \
(t, latency, t, sla_latency)
- assert sla_error == "", sla_error
+ self.verify_SLA(sla_error == "", sla_error)
def _test(): # pragma: no cover
diff --git a/yardstick/benchmark/scenarios/compute/lmbench.py b/yardstick/benchmark/scenarios/compute/lmbench.py
index 801f7fa80..2237e49e0 100644
--- a/yardstick/benchmark/scenarios/compute/lmbench.py
+++ b/yardstick/benchmark/scenarios/compute/lmbench.py
@@ -119,8 +119,8 @@ class Lmbench(base.Scenario):
cmd = "sudo bash lmbench_latency_for_cache.sh %d %d" % \
(repetition, warmup)
else:
- raise RuntimeError("No such test_type: %s for Lmbench scenario",
- test_type)
+ raise RuntimeError("No such test_type: %s for Lmbench scenario"
+ % test_type)
LOG.debug("Executing command: %s", cmd)
status, stdout, stderr = self.client.execute(cmd)
@@ -157,7 +157,7 @@ class Lmbench(base.Scenario):
if sla_latency < cache_latency:
sla_error += "latency %f > sla:max_latency(%f); " \
% (cache_latency, sla_latency)
- assert sla_error == "", sla_error
+ self.verify_SLA(sla_error == "", sla_error)
def _test():
diff --git a/yardstick/benchmark/scenarios/compute/perf.py b/yardstick/benchmark/scenarios/compute/perf.py
index 0b8ed9b28..b973211f1 100644
--- a/yardstick/benchmark/scenarios/compute/perf.py
+++ b/yardstick/benchmark/scenarios/compute/perf.py
@@ -93,7 +93,7 @@ class Perf(base.Scenario):
% (load, duration, events_string)
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.client.execute(cmd)
+ status, stdout, _ = self.client.execute(cmd)
if status:
raise RuntimeError(stdout)
@@ -105,16 +105,14 @@ class Perf(base.Scenario):
exp_val = self.scenario_cfg['sla']['expected_value']
smaller_than_exp = 'smaller_than_expected' \
in self.scenario_cfg['sla']
-
- if metric not in result:
- assert False, "Metric (%s) not found." % metric
- else:
- if smaller_than_exp:
- assert result[metric] < exp_val, "%s %d >= %d (sla); " \
- % (metric, result[metric], exp_val)
- else:
- assert result[metric] >= exp_val, "%s %d < %d (sla); " \
- % (metric, result[metric], exp_val)
+ self.verify_SLA(metric in result,
+ "Metric (%s) not found." % metric)
+ self.verify_SLA(
+ not smaller_than_exp,
+ "%s %d >= %d (sla); " % (metric, result[metric], exp_val))
+ self.verify_SLA(
+ result[metric] >= exp_val,
+ "%s %d < %d (sla); " % (metric, result[metric], exp_val))
def _test():
diff --git a/yardstick/benchmark/scenarios/compute/qemu_migrate.py b/yardstick/benchmark/scenarios/compute/qemu_migrate.py
index 2de1270ef..975c90b22 100644
--- a/yardstick/benchmark/scenarios/compute/qemu_migrate.py
+++ b/yardstick/benchmark/scenarios/compute/qemu_migrate.py
@@ -56,7 +56,7 @@ class QemuMigrate(base.Scenario):
def _run_setup_cmd(self, client, cmd):
LOG.debug("Run cmd: %s", cmd)
- status, stdout, stderr = client.execute(cmd)
+ status, _, stderr = client.execute(cmd)
if status:
if re.search(self.REBOOT_CMD_PATTERN, cmd):
LOG.debug("Error on reboot")
@@ -127,7 +127,7 @@ class QemuMigrate(base.Scenario):
if timevalue > sla_time:
sla_error += "%s timevalue %d > sla:max_%s(%d); " % \
(t, timevalue, t, sla_time)
- assert sla_error == "", sla_error
+ self.verify_SLA(sla_error == "", sla_error)
def _test(): # pragma: no cover
diff --git a/yardstick/benchmark/scenarios/compute/ramspeed.py b/yardstick/benchmark/scenarios/compute/ramspeed.py
index ca64935dd..4daf776ff 100644
--- a/yardstick/benchmark/scenarios/compute/ramspeed.py
+++ b/yardstick/benchmark/scenarios/compute/ramspeed.py
@@ -121,8 +121,8 @@ class Ramspeed(base.Scenario):
(test_id, load, block_size)
# only the test_id 1-6 will be used in this scenario
else:
- raise RuntimeError("No such type_id: %s for Ramspeed scenario",
- test_id)
+ raise RuntimeError("No such type_id: %s for Ramspeed scenario"
+ % test_id)
LOG.debug("Executing command: %s", cmd)
status, stdout, stderr = self.client.execute(cmd)
@@ -140,4 +140,4 @@ class Ramspeed(base.Scenario):
if bw < sla_min_bw:
sla_error += "Bandwidth %f < " \
"sla:min_bandwidth(%f)" % (bw, sla_min_bw)
- assert sla_error == "", sla_error
+ self.verify_SLA(sla_error == "", sla_error)
diff --git a/yardstick/benchmark/scenarios/compute/unixbench.py b/yardstick/benchmark/scenarios/compute/unixbench.py
index cdb345717..3cea31694 100644
--- a/yardstick/benchmark/scenarios/compute/unixbench.py
+++ b/yardstick/benchmark/scenarios/compute/unixbench.py
@@ -125,7 +125,7 @@ class Unixbench(base.Scenario):
if score < sla_score:
sla_error += "%s score %f < sla:%s_score(%f); " % \
(t, score, t, sla_score)
- assert sla_error == "", sla_error
+ self.verify_SLA(sla_error == "", sla_error)
def _test(): # pragma: no cover
diff --git a/yardstick/benchmark/scenarios/compute/unixbench_benchmark.bash b/yardstick/benchmark/scenarios/compute/unixbench_benchmark.bash
index 5a5dbc394..0f0122e51 100644
--- a/yardstick/benchmark/scenarios/compute/unixbench_benchmark.bash
+++ b/yardstick/benchmark/scenarios/compute/unixbench_benchmark.bash
@@ -18,15 +18,15 @@ OUTPUT_FILE=/tmp/unixbench-out.log
# run unixbench test
run_unixbench()
{
- cd /opt/tempT/UnixBench/
+ cd /opt/tempT/UnixBench/UnixBench/
./Run $OPTIONS > $OUTPUT_FILE
}
# write the result to stdout in json format
output_json()
{
- single_score=$(awk '/Score/{print $7}' $OUTPUT_FILE | head -1 )
- parallel_score=$(awk '/Score/{print $7}' $OUTPUT_FILE | tail -1 )
+ single_score=$(awk '/Score/{print $NF}' $OUTPUT_FILE | head -1 )
+ parallel_score=$(awk '/Score/{print $NF}' $OUTPUT_FILE | tail -1 )
echo -e "{ \
\"single_score\":\"$single_score\", \
\"parallel_score\":\"$parallel_score\" \
diff --git a/tests/functional/__init__.py b/yardstick/benchmark/scenarios/energy/__init__.py
index e69de29bb..e69de29bb 100755..100644
--- a/tests/functional/__init__.py
+++ b/yardstick/benchmark/scenarios/energy/__init__.py
diff --git a/yardstick/benchmark/scenarios/energy/energy.py b/yardstick/benchmark/scenarios/energy/energy.py
new file mode 100644
index 000000000..7440835be
--- /dev/null
+++ b/yardstick/benchmark/scenarios/energy/energy.py
@@ -0,0 +1,139 @@
+##############################################################################
+# Copyright (c) 2019 Lenovo Group Limited Co.,Ltd 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 __future__ import print_function
+from __future__ import absolute_import
+import logging
+import requests
+import json
+from yardstick.benchmark.scenarios import base
+
+LOG = logging.getLogger(__name__)
+logging.captureWarnings(True)
+
+
+class Energy(base.Scenario):
+ """Get current energy consumption of target host
+
+ This scenario sends a REDFISH request to a host BMC
+ to request current energy consumption.
+ The response returns a number of Watts.
+ Usually this is an average of a rolling windows
+ taken from server internal sensor.
+ This is dependant of the server provider.
+
+ This scenario should be used with node context
+
+ As this scenario usually run background with other scenarios,
+ error of api query or data parse will not terminate task runner.
+ If any error occured, energy consumption will be set to -1.
+
+ Parameters
+ None
+ """
+
+ __scenario_type__ = "Energy"
+
+ def __init__(self, scenario_cfg, context_cfg):
+ self.scenario_cfg = scenario_cfg
+ self.context_cfg = context_cfg
+ self.target = self.context_cfg['target']
+ self.setup_done = False
+ self.get_response = False
+
+ def _send_request(self, url):
+ LOG.info("Send request to %s", url)
+ pod_auth = (self.target["redfish_user"], self.target["redfish_pwd"])
+ response = requests.get(url, auth=pod_auth, verify=False)
+ return response
+
+ def setup(self):
+ url = "https://{}/redfish/v1/".format(self.target["redfish_ip"])
+ response = self._send_request(url)
+ if response.status_code != 200:
+ LOG.info("Don't get right response from %s", url)
+ self.get_response = False
+ else:
+ LOG.info("Get response from %s", url)
+ self.get_response = True
+
+ self.setup_done = True
+
+ def load_chassis_list(self):
+ chassis_list = []
+
+ # Get Chassis list
+ request_url = "https://" + self.target["redfish_ip"]
+ request_url += "/redfish/v1/Chassis/"
+ response = self._send_request(request_url)
+ if response.status_code != 200:
+ LOG.info("Do not get proper response from %s", request_url)
+ return chassis_list
+
+ try:
+ chassis_data = json.loads(response.text)
+ except(TypeError, ValueError) as e:
+ LOG.info("Invalid response data, %s", e)
+ return chassis_list
+
+ try:
+ for chassis in chassis_data['Members']:
+ chassis_list.append(chassis["@odata.id"])
+ except KeyError as e:
+ LOG.info("Error data format of chassis data or invalid key.")
+
+ return chassis_list
+
+ def get_power(self, chassis_uri):
+ """Get PowerMetter values from Redfish API."""
+ if chassis_uri[-1:] != '/':
+ chassis_uri += '/'
+ request_url = "https://" + self.target['redfish_ip']
+ request_url += chassis_uri
+ request_url += "Power/"
+ response = self._send_request(request_url)
+ if response.status_code != 200:
+ LOG.info("Do not get proper response from %s", request_url)
+ power = -1
+ return power
+
+ try:
+ power_metrics = json.loads(response.text)
+ except(TypeError, ValueError) as e:
+ LOG.info("Invalid response data, %s", e)
+ power = -1
+ return power
+
+ try:
+ power = power_metrics["PowerControl"][0]["PowerConsumedWatts"]
+ except KeyError as e:
+ LOG.info("Error data format of power metrics or invalid key.")
+ power = -1
+
+ return power
+
+ def run(self, result):
+ """execute the benchmark"""
+ if not self.setup_done:
+ self.setup()
+ chassis_list = self.load_chassis_list()
+ if not self.get_response or not chassis_list:
+ power = -1
+ data = {
+ "power": power,
+ }
+ result.update(data)
+ else:
+ power = 0
+ for chassis in chassis_list:
+ power += self.get_power(chassis)
+ data = {
+ "power": power,
+ }
+ result.update(data)
diff --git a/yardstick/benchmark/scenarios/lib/attach_volume.py b/yardstick/benchmark/scenarios/lib/attach_volume.py
index 88124964b..96dd130b1 100644
--- a/yardstick/benchmark/scenarios/lib/attach_volume.py
+++ b/yardstick/benchmark/scenarios/lib/attach_volume.py
@@ -6,30 +6,31 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
class AttachVolume(base.Scenario):
- """Attach a volmeu to an instance"""
+ """Attach a volume to an instance"""
__scenario_type__ = "AttachVolume"
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
+ self.options = self.scenario_cfg["options"]
- self.server_id = self.options.get("server_id", "TestServer")
- self.volume_id = self.options.get("volume_id", None)
+ self.server_name_or_id = self.options["server_name_or_id"]
+ self.volume_name_or_id = self.options["volume_name_or_id"]
+ self.device = self.options.get("device")
+ self.wait = self.options.get("wait", True)
+ self.timeout = self.options.get("timeout")
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -44,10 +45,14 @@ class AttachVolume(base.Scenario):
if not self.setup_done:
self.setup()
- status = op_utils.attach_server_volume(self.server_id,
- self.volume_id)
+ status = openstack_utils.attach_volume_to_server(
+ self.shade_client, self.server_name_or_id, self.volume_name_or_id,
+ device=self.device, wait=self.wait, timeout=self.timeout)
+
+ if not status:
+ result.update({"attach_volume": 0})
+ LOG.error("Attach volume to server failed!")
+ raise exceptions.ScenarioAttachVolumeError
- if status:
- LOG.info("Attach volume to server successful!")
- else:
- LOG.info("Attach volume to server failed!")
+ result.update({"attach_volume": 1})
+ LOG.info("Attach volume to server successful!")
diff --git a/yardstick/benchmark/scenarios/lib/check_value.py b/yardstick/benchmark/scenarios/lib/check_value.py
index 759076068..4c9b27df4 100644
--- a/yardstick/benchmark/scenarios/lib/check_value.py
+++ b/yardstick/benchmark/scenarios/lib/check_value.py
@@ -13,6 +13,7 @@ from __future__ import absolute_import
import logging
from yardstick.benchmark.scenarios import base
+from yardstick.common import exceptions as y_exc
LOG = logging.getLogger(__name__)
@@ -34,24 +35,18 @@ class CheckValue(base.Scenario):
self.context_cfg = context_cfg
self.options = self.scenario_cfg['options']
- def run(self, result):
+ def run(self, _):
"""execute the test"""
op = self.options.get("operator")
LOG.debug("options=%s", self.options)
value1 = str(self.options.get("value1"))
value2 = str(self.options.get("value2"))
+ if (op == "eq" and value1 != value2) or (op == "ne" and
+ value1 == value2):
+ raise y_exc.ValueCheckError(
+ value1=value1, operator=op, value2=value2)
check_result = "PASS"
- if op == "eq" and value1 != value2:
- LOG.info("value1=%s, value2=%s, error: should equal!!!", value1,
- value2)
- check_result = "FAIL"
- assert value1 == value2, "Error %s!=%s" % (value1, value2)
- elif op == "ne" and value1 == value2:
- LOG.info("value1=%s, value2=%s, error: should not equal!!!",
- value1, value2)
- check_result = "FAIL"
- assert value1 != value2, "Error %s==%s" % (value1, value2)
LOG.info("Check result is %s", check_result)
keys = self.scenario_cfg.get('output', '').split()
values = [check_result]
diff --git a/yardstick/benchmark/scenarios/lib/create_floating_ip.py b/yardstick/benchmark/scenarios/lib/create_floating_ip.py
index 328566d48..e29f9d1fc 100644
--- a/yardstick/benchmark/scenarios/lib/create_floating_ip.py
+++ b/yardstick/benchmark/scenarios/lib/create_floating_ip.py
@@ -7,14 +7,13 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
import os
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+
LOG = logging.getLogger(__name__)
@@ -28,8 +27,18 @@ class CreateFloatingIp(base.Scenario):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
self.ext_net_id = os.getenv("EXTERNAL_NETWORK", "external")
+ self.options = self.scenario_cfg["options"]
+
+ self.network_name_or_id = self.options.get("network_name_or_id", self.ext_net_id)
+ self.server = self.options.get("server")
+ self.fixed_address = self.options.get("fixed_address")
+ self.nat_destination = self.options.get("nat_destination")
+ self.port = self.options.get("port")
+ self.wait = self.options.get("wait", False)
+ self.timeout = self.options.get("timeout", 60)
+
+ self.shade_client = openstack_utils.get_shade_client()
- self.neutron_client = op_utils.get_neutron_client()
self.setup_done = False
def setup(self):
@@ -43,18 +52,19 @@ class CreateFloatingIp(base.Scenario):
if not self.setup_done:
self.setup()
- net_id = op_utils.get_network_id(self.neutron_client, self.ext_net_id)
- floating_info = op_utils.create_floating_ip(self.neutron_client,
- extnet_id=net_id)
- if floating_info:
- LOG.info("Creating floating ip successful!")
- else:
+ floating_info = openstack_utils.create_floating_ip(
+ self.shade_client, network_name_or_id=self.network_name_or_id,
+ server=self.server, fixed_address=self.fixed_address,
+ nat_destination=self.nat_destination, port=self.port,
+ wait=self.wait, timeout=self.timeout)
+
+ if not floating_info:
+ result.update({"floating_ip_create": 0})
LOG.error("Creating floating ip failed!")
+ raise exceptions.ScenarioCreateFloatingIPError
- try:
- keys = self.scenario_cfg.get('output', '').split()
- except KeyError:
- pass
- else:
- values = [floating_info["fip_id"], floating_info["fip_addr"]]
- return self._push_to_outputs(keys, values)
+ result.update({"floating_ip_create": 1})
+ LOG.info("Creating floating ip successful!")
+ keys = self.scenario_cfg.get("output", '').split()
+ values = [floating_info["fip_id"], floating_info["fip_addr"]]
+ return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/lib/create_image.py b/yardstick/benchmark/scenarios/lib/create_image.py
index bcffc7452..d057894a9 100644
--- a/yardstick/benchmark/scenarios/lib/create_image.py
+++ b/yardstick/benchmark/scenarios/lib/create_image.py
@@ -6,14 +6,11 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
@@ -26,20 +23,23 @@ class CreateImage(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
-
- self.image_name = self.options.get("image_name", "TestImage")
- self.file_path = self.options.get("file_path", None)
- self.disk_format = self.options.get("disk_format", "qcow2")
- self.container_format = self.options.get("container_format", "bare")
- self.min_disk = self.options.get("min_disk", 0)
- self.min_ram = self.options.get("min_ram", 0)
- self.protected = self.options.get("protected", False)
- self.public = self.options.get("public", "public")
- self.tags = self.options.get("tags", [])
- self.custom_property = self.options.get("property", {})
-
- self.glance_client = op_utils.get_glance_client()
+ self.options = self.scenario_cfg["options"]
+
+ self.name = self.options["image_name"]
+ self.file_name = self.options.get("file_name")
+ self.container = self.options.get("container", 'images')
+ self.md5 = self.options.get("md5")
+ self.sha256 = self.options.get("sha256")
+ self.disk_format = self.options.get("disk_format")
+ self.container_format = self.options.get("container_format",)
+ self.disable_vendor_agent = self.options.get("disable_vendor_agent", True)
+ self.wait = self.options.get("wait", True)
+ self.timeout = self.options.get("timeout", 3600)
+ self.allow_duplicates = self.options.get("allow_duplicates", False)
+ self.meta = self.options.get("meta")
+ self.volume = self.options.get("volume")
+
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -54,19 +54,22 @@ class CreateImage(base.Scenario):
if not self.setup_done:
self.setup()
- image_id = op_utils.create_image(self.glance_client, self.image_name,
- self.file_path, self.disk_format,
- self.container_format, self.min_disk,
- self.min_ram, self.protected, self.tags,
- self.public, **self.custom_property)
-
- if image_id:
- LOG.info("Create image successful!")
- values = [image_id]
-
- else:
- LOG.info("Create image failed!")
- values = []
-
- keys = self.scenario_cfg.get('output', '').split()
+ image_id = openstack_utils.create_image(
+ self.shade_client, self.name, filename=self.file_name,
+ container=self.container, md5=self.md5, sha256=self.sha256,
+ disk_format=self.disk_format,
+ container_format=self.container_format,
+ disable_vendor_agent=self.disable_vendor_agent, wait=self.wait,
+ timeout=self.timeout, allow_duplicates=self.allow_duplicates,
+ meta=self.meta, volume=self.volume)
+
+ if not image_id:
+ result.update({"image_create": 0})
+ LOG.error("Create image failed!")
+ raise exceptions.ScenarioCreateImageError
+
+ result.update({"image_create": 1})
+ LOG.info("Create image successful!")
+ keys = self.scenario_cfg.get("output", '').split()
+ values = [image_id]
return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/lib/create_keypair.py b/yardstick/benchmark/scenarios/lib/create_keypair.py
index f5b1fff7a..ee9bc440a 100644
--- a/yardstick/benchmark/scenarios/lib/create_keypair.py
+++ b/yardstick/benchmark/scenarios/lib/create_keypair.py
@@ -6,15 +6,11 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
-import paramiko
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
@@ -27,10 +23,11 @@ class CreateKeypair(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
+ self.options = self.scenario_cfg["options"]
- self.key_name = self.options.get("key_name", "yardstick_key")
- self.key_filename = self.options.get("key_path", "/tmp/yardstick_key")
+ self.name = self.options["key_name"]
+ self.public_key = self.options.get("public_key")
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -45,27 +42,17 @@ class CreateKeypair(base.Scenario):
if not self.setup_done:
self.setup()
- rsa_key = paramiko.RSAKey.generate(bits=2048, progress_func=None)
- rsa_key.write_private_key_file(self.key_filename)
- LOG.info("Writing key_file %s ...", self.key_filename)
- with open(self.key_filename + ".pub", "w") as pubkey_file:
- pubkey_file.write(
- "%s %s\n" % (rsa_key.get_name(), rsa_key.get_base64()))
- del rsa_key
-
- keypair = op_utils.create_keypair(self.key_name,
- self.key_filename + ".pub")
+ keypair = openstack_utils.create_keypair(
+ self.shade_client, self.name, public_key=self.public_key)
- if keypair:
- result.update({"keypair_create": 1})
- LOG.info("Create keypair successful!")
- else:
+ if not keypair:
result.update({"keypair_create": 0})
- LOG.info("Create keypair failed!")
- try:
- keys = self.scenario_cfg.get('output', '').split()
- except KeyError:
- pass
- else:
- values = [keypair.id]
- return self._push_to_outputs(keys, values)
+ LOG.error("Create keypair failed!")
+ raise exceptions.ScenarioCreateKeypairError
+
+ result.update({"keypair_create": 1})
+ LOG.info("Create keypair successful!")
+ keys = self.scenario_cfg.get("output", '').split()
+ keypair_id = keypair["id"]
+ values = [keypair_id]
+ return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/lib/create_network.py b/yardstick/benchmark/scenarios/lib/create_network.py
index cffff132a..734820519 100644
--- a/yardstick/benchmark/scenarios/lib/create_network.py
+++ b/yardstick/benchmark/scenarios/lib/create_network.py
@@ -7,13 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+
LOG = logging.getLogger(__name__)
@@ -28,9 +27,14 @@ class CreateNetwork(base.Scenario):
self.context_cfg = context_cfg
self.options = self.scenario_cfg['options']
- self.openstack = self.options.get("openstack_paras", None)
+ self.network_name = self.options["network_name"]
+ self.shared = self.options.get("shared", False)
+ self.admin_state_up = self.options.get("admin_state_up", True)
+ self.external = self.options.get("external", False)
+ self.provider = self.options.get("provider")
+ self.project_id = self.options.get("project_id")
- self.neutron_client = op_utils.get_neutron_client()
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -45,20 +49,17 @@ class CreateNetwork(base.Scenario):
if not self.setup_done:
self.setup()
- openstack_paras = {'network': self.openstack}
- network_id = op_utils.create_neutron_net(self.neutron_client,
- openstack_paras)
- if network_id:
- result.update({"network_create": 1})
- LOG.info("Create network successful!")
- else:
+ network_id = openstack_utils.create_neutron_net(
+ self.shade_client, self.network_name, shared=self.shared,
+ admin_state_up=self.admin_state_up, external=self.external,
+ provider=self.provider, project_id=self.project_id)
+ if not network_id:
result.update({"network_create": 0})
LOG.error("Create network failed!")
+ raise exceptions.ScenarioCreateNetworkError
- try:
- keys = self.scenario_cfg.get('output', '').split()
- except KeyError:
- pass
- else:
- values = [network_id]
- return self._push_to_outputs(keys, values)
+ result.update({"network_create": 1})
+ LOG.info("Create network successful!")
+ keys = self.scenario_cfg.get('output', '').split()
+ values = [network_id]
+ return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/lib/create_router.py b/yardstick/benchmark/scenarios/lib/create_router.py
index 9aa57ebb2..34252f603 100644
--- a/yardstick/benchmark/scenarios/lib/create_router.py
+++ b/yardstick/benchmark/scenarios/lib/create_router.py
@@ -7,13 +7,11 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
@@ -28,9 +26,14 @@ class CreateRouter(base.Scenario):
self.context_cfg = context_cfg
self.options = self.scenario_cfg['options']
- self.openstack = self.options.get("openstack_paras", None)
+ self.name = self.options.get('name')
+ self.admin_state_up = self.options.get('admin_state_up', True)
+ self.ext_gateway_net_id = self.options.get('ext_gateway_net_id')
+ self.enable_snat = self.options.get('enable_snat')
+ self.ext_fixed_ips = self.options.get('ext_fixed_ips')
+ self.project_id = self.options.get('project_id')
- self.neutron_client = op_utils.get_neutron_client()
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -45,22 +48,19 @@ class CreateRouter(base.Scenario):
if not self.setup_done:
self.setup()
- openstack_paras = {'router': self.openstack}
- router_id = op_utils.create_neutron_router(self.neutron_client,
- openstack_paras)
- if router_id:
- result.update({"network_create": 1})
- LOG.info("Create router successful!")
- else:
- result.update({"network_create": 0})
+ router_id = openstack_utils.create_neutron_router(
+ self.shade_client, name=self.name,
+ admin_state_up=self.admin_state_up,
+ ext_gateway_net_id=self.ext_gateway_net_id,
+ enable_snat=self.enable_snat, ext_fixed_ips=self.ext_fixed_ips,
+ project_id=self.project_id)
+ if not router_id:
+ result.update({"router_create": 0})
LOG.error("Create router failed!")
+ raise exceptions.ScenarioCreateRouterError
- check_result = router_id
-
- try:
- keys = self.scenario_cfg.get('output', '').split()
- except KeyError:
- pass
- else:
- values = [check_result]
- return self._push_to_outputs(keys, values)
+ result.update({"router_create": 1})
+ LOG.info("Create router successful!")
+ keys = self.scenario_cfg.get('output', '').split()
+ values = [router_id]
+ return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/lib/create_sec_group.py b/yardstick/benchmark/scenarios/lib/create_sec_group.py
index 3d1aec9e8..1d2e36488 100644
--- a/yardstick/benchmark/scenarios/lib/create_sec_group.py
+++ b/yardstick/benchmark/scenarios/lib/create_sec_group.py
@@ -7,13 +7,11 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
@@ -26,11 +24,12 @@ class CreateSecgroup(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
+ self.options = self.scenario_cfg["options"]
- self.sg_name = self.options.get("sg_name", "yardstick_sec_group")
- self.description = self.options.get("description", None)
- self.neutron_client = op_utils.get_neutron_client()
+ self.sg_name = self.options["sg_name"]
+ self.description = self.options.get("description", "")
+ self.project_id = self.options.get("project_id")
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -45,21 +44,16 @@ class CreateSecgroup(base.Scenario):
if not self.setup_done:
self.setup()
- sg_id = op_utils.create_security_group_full(self.neutron_client,
- sg_name=self.sg_name,
- sg_description=self.description)
-
- if sg_id:
- result.update({"sg_create": 1})
- LOG.info("Create security group successful!")
- else:
+ sg_id = openstack_utils.create_security_group_full(
+ self.shade_client, self.sg_name, sg_description=self.description,
+ project_id=self.project_id)
+ if not sg_id:
result.update({"sg_create": 0})
LOG.error("Create security group failed!")
+ raise exceptions.ScenarioCreateSecurityGroupError
- try:
- keys = self.scenario_cfg.get('output', '').split()
- except KeyError:
- pass
- else:
- values = [sg_id]
- return self._push_to_outputs(keys, values)
+ result.update({"sg_create": 1})
+ LOG.info("Create security group successful!")
+ keys = self.scenario_cfg.get("output", '').split()
+ values = [sg_id]
+ return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/lib/create_server.py b/yardstick/benchmark/scenarios/lib/create_server.py
index 31ba18ed4..e2748aecf 100644
--- a/yardstick/benchmark/scenarios/lib/create_server.py
+++ b/yardstick/benchmark/scenarios/lib/create_server.py
@@ -6,14 +6,11 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
@@ -26,15 +23,27 @@ class CreateServer(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
-
- self.image_name = self.options.get("image_name", None)
- self.flavor_name = self.options.get("flavor_name", None)
- self.openstack = self.options.get("openstack_paras", None)
-
- self.glance_client = op_utils.get_glance_client()
- self.neutron_client = op_utils.get_neutron_client()
- self.nova_client = op_utils.get_nova_client()
+ self.options = self.scenario_cfg["options"]
+
+ self.name = self.options["name"]
+ self.image = self.options["image"]
+ self.flavor = self.options["flavor"]
+ self.auto_ip = self.options.get("auto_ip", True)
+ self.ips = self.options.get("ips")
+ self.ip_pool = self.options.get("ip_pool")
+ self.root_volume = self.options.get("root_volume")
+ self.terminate_volume = self.options.get("terminate_volume", False)
+ self.wait = self.options.get("wait", True)
+ self.timeout = self.options.get("timeout", 180)
+ self.reuse_ips = self.options.get("reuse_ips", True)
+ self.network = self.options.get("network")
+ self.boot_from_volume = self.options.get("boot_from_volume", False)
+ self.volume_size = self.options.get("volume_size", "20")
+ self.boot_volume = self.options.get("boot_volume")
+ self.volumes = self.options.get("volumes")
+ self.nat_destination = self.options.get("nat_destination")
+
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -49,26 +58,23 @@ class CreateServer(base.Scenario):
if not self.setup_done:
self.setup()
- if self.image_name is not None:
- self.openstack['image'] = op_utils.get_image_id(self.glance_client,
- self.image_name)
- if self.flavor_name is not None:
- self.openstack['flavor'] = op_utils.get_flavor_id(self.nova_client,
- self.flavor_name)
-
- vm = op_utils.create_instance_and_wait_for_active(self.openstack)
-
- if vm:
- result.update({"instance_create": 1})
- LOG.info("Create server successful!")
- else:
+ server = openstack_utils.create_instance_and_wait_for_active(
+ self.shade_client, self.name, self.image,
+ self.flavor, auto_ip=self.auto_ip, ips=self.ips,
+ ip_pool=self.ip_pool, root_volume=self.root_volume,
+ terminate_volume=self.terminate_volume, wait=self.wait,
+ timeout=self.timeout, reuse_ips=self.reuse_ips,
+ network=self.network, boot_from_volume=self.boot_from_volume,
+ volume_size=self.volume_size, boot_volume=self.boot_volume,
+ volumes=self.volumes, nat_destination=self.nat_destination)
+
+ if not server:
result.update({"instance_create": 0})
LOG.error("Create server failed!")
+ raise exceptions.ScenarioCreateServerError
- try:
- keys = self.scenario_cfg.get('output', '').split()
- except KeyError:
- pass
- else:
- values = [vm.id]
- return self._push_to_outputs(keys, values)
+ result.update({"instance_create": 1})
+ LOG.info("Create instance successful!")
+ keys = self.scenario_cfg.get("output", '').split()
+ values = [server["id"]]
+ return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/lib/create_subnet.py b/yardstick/benchmark/scenarios/lib/create_subnet.py
index c34af8a9e..e383c99de 100644
--- a/yardstick/benchmark/scenarios/lib/create_subnet.py
+++ b/yardstick/benchmark/scenarios/lib/create_subnet.py
@@ -7,13 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+
LOG = logging.getLogger(__name__)
@@ -28,9 +27,23 @@ class CreateSubnet(base.Scenario):
self.context_cfg = context_cfg
self.options = self.scenario_cfg['options']
- self.openstack = self.options.get("openstack_paras", None)
-
- self.neutron_client = op_utils.get_neutron_client()
+ self.network_name_or_id = self.options['network_name_or_id']
+ self.cidr = self.options.get('cidr')
+ self.ip_version = self.options.get('ip_version', 4)
+ self.enable_dhcp = self.options.get('enable_dhcp', False)
+ self.subnet_name = self.options.get('subnet_name')
+ self.tenant_id = self.options.get('tenant_id')
+ self.allocation_pools = self.options.get('allocation_pools')
+ self.gateway_ip = self.options.get('gateway_ip')
+ self.disable_gateway_ip = self.options.get('disable_gateway_ip', False)
+ self.dns_nameservers = self.options.get('dns_nameservers')
+ self.host_routes = self.options.get('host_routes')
+ self.ipv6_ra_mode = self.options.get('ipv6_ra_mode')
+ self.ipv6_address_mode = self.options.get('ipv6_address_mode')
+ self.use_default_subnetpool = self.options.get(
+ 'use_default_subnetpool', False)
+
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -45,22 +58,23 @@ class CreateSubnet(base.Scenario):
if not self.setup_done:
self.setup()
- openstack_paras = {'subnets': [self.openstack]}
- subnet_id = op_utils.create_neutron_subnet(self.neutron_client,
- openstack_paras)
- if subnet_id:
- result.update({"subnet_create": 1})
- LOG.info("Create subnet successful!")
- else:
+ subnet_id = openstack_utils.create_neutron_subnet(
+ self.shade_client, self.network_name_or_id, cidr=self.cidr,
+ ip_version=self.ip_version, enable_dhcp=self.enable_dhcp,
+ subnet_name=self.subnet_name, tenant_id=self.tenant_id,
+ allocation_pools=self.allocation_pools, gateway_ip=self.gateway_ip,
+ disable_gateway_ip=self.disable_gateway_ip,
+ dns_nameservers=self.dns_nameservers, host_routes=self.host_routes,
+ ipv6_ra_mode=self.ipv6_ra_mode,
+ ipv6_address_mode=self.ipv6_address_mode,
+ use_default_subnetpool=self.use_default_subnetpool)
+ if not subnet_id:
result.update({"subnet_create": 0})
LOG.error("Create subnet failed!")
+ raise exceptions.ScenarioCreateSubnetError
- check_result = subnet_id
-
- try:
- keys = self.scenario_cfg.get('output', '').split()
- except KeyError:
- pass
- else:
- values = [check_result]
- return self._push_to_outputs(keys, values)
+ result.update({"subnet_create": 1})
+ LOG.info("Create subnet successful!")
+ keys = self.scenario_cfg.get('output', '').split()
+ values = [subnet_id]
+ return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/lib/create_volume.py b/yardstick/benchmark/scenarios/lib/create_volume.py
index c7086d0ef..b66749026 100644
--- a/yardstick/benchmark/scenarios/lib/create_volume.py
+++ b/yardstick/benchmark/scenarios/lib/create_volume.py
@@ -7,14 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import time
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
@@ -27,15 +25,16 @@ class CreateVolume(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
+ self.options = self.scenario_cfg["options"]
- self.volume_name = self.options.get("volume_name", "TestVolume")
- self.volume_size = self.options.get("size", 100)
- self.image_name = self.options.get("image", None)
- self.image_id = None
+ self.size = self.options["size_gb"]
+ self.wait = self.options.get("wait", True)
+ self.timeout = self.options.get("timeout")
+ self.image = self.options.get("image")
+ self.name = self.options.get("name")
+ self.description = self.options.get("description")
- self.glance_client = op_utils.get_glance_client()
- self.cinder_client = op_utils.get_cinder_client()
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -50,22 +49,23 @@ class CreateVolume(base.Scenario):
if not self.setup_done:
self.setup()
- if self.image_name:
- self.image_id = op_utils.get_image_id(self.glance_client,
- self.image_name)
+ volume = openstack_utils.create_volume(
+ self.shade_client, self.size, wait=self.wait, timeout=self.timeout,
+ image=self.image, name=self.name, description=self.description)
- volume = op_utils.create_volume(self.cinder_client, self.volume_name,
- self.volume_size, self.image_id)
+ if not volume:
+ result.update({"volume_create": 0})
+ LOG.error("Create volume failed!")
+ raise exceptions.ScenarioCreateVolumeError
- status = volume.status
- while(status == 'creating' or status == 'downloading'):
- LOG.info("Volume status is: %s" % status)
+ status = volume["status"]
+ while status == "creating" or status == "downloading":
+ LOG.info("Volume status is: %s", status)
time.sleep(5)
- volume = op_utils.get_volume_by_name(self.volume_name)
- status = volume.status
-
+ volume = openstack_utils.get_volume(self.shade_client, self.name)
+ status = volume["status"]
+ result.update({"volume_create": 1})
LOG.info("Create volume successful!")
-
- values = [volume.id]
- keys = self.scenario_cfg.get('output', '').split()
+ values = [volume["id"]]
+ keys = self.scenario_cfg.get("output", '').split()
return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/lib/delete_floating_ip.py b/yardstick/benchmark/scenarios/lib/delete_floating_ip.py
index 4314952fb..a35445f6f 100644
--- a/yardstick/benchmark/scenarios/lib/delete_floating_ip.py
+++ b/yardstick/benchmark/scenarios/lib/delete_floating_ip.py
@@ -7,13 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+
LOG = logging.getLogger(__name__)
@@ -28,9 +27,10 @@ class DeleteFloatingIp(base.Scenario):
self.context_cfg = context_cfg
self.options = self.scenario_cfg['options']
- self.floating_ip_id = self.options.get("floating_ip_id", None)
+ self.floating_ip_id = self.options["floating_ip_id"]
+ self.retry = self.options.get("retry", 1)
- self.nova_client = op_utils.get_nova_client()
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
def setup(self):
@@ -44,11 +44,13 @@ class DeleteFloatingIp(base.Scenario):
if not self.setup_done:
self.setup()
- status = op_utils.delete_floating_ip(nova_client=self.nova_client,
- floatingip_id=self.floating_ip_id)
- if status:
- result.update({"delete_floating_ip": 1})
- LOG.info("Delete floating ip successful!")
- else:
+ status = openstack_utils.delete_floating_ip(
+ self.shade_client, self.floating_ip_id,
+ retry=self.retry)
+ if not status:
result.update({"delete_floating_ip": 0})
LOG.error("Delete floating ip failed!")
+ raise exceptions.ScenarioDeleteFloatingIPError
+
+ result.update({"delete_floating_ip": 1})
+ LOG.info("Delete floating ip successful!")
diff --git a/yardstick/benchmark/scenarios/lib/delete_image.py b/yardstick/benchmark/scenarios/lib/delete_image.py
index 0e3a853e5..008f104b2 100644
--- a/yardstick/benchmark/scenarios/lib/delete_image.py
+++ b/yardstick/benchmark/scenarios/lib/delete_image.py
@@ -7,13 +7,11 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
@@ -26,12 +24,14 @@ class DeleteImage(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
+ self.options = self.scenario_cfg["options"]
- self.image_name = self.options.get("image_name", "TestImage")
- self.image_id = None
+ self.image_name_or_id = self.options["name_or_id"]
+ self.wait = self.options.get("wait", False)
+ self.timeout = self.options.get("timeout", 3600)
+ self.delete_objects = self.options.get("delete_objects", True)
- self.glance_client = op_utils.get_glance_client()
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -46,16 +46,14 @@ class DeleteImage(base.Scenario):
if not self.setup_done:
self.setup()
- self.image_id = op_utils.get_image_id(self.glance_client, self.image_name)
- LOG.info("Deleting image: %s", self.image_name)
- status = op_utils.delete_image(self.glance_client, self.image_id)
+ status = openstack_utils.delete_image(
+ self.shade_client, self.image_name_or_id, wait=self.wait,
+ timeout=self.timeout, delete_objects=self.delete_objects)
- if status:
- LOG.info("Delete image successful!")
- values = [status]
- else:
- LOG.info("Delete image failed!")
- values = []
+ if not status:
+ result.update({"delete_image": 0})
+ LOG.error("Delete image failed!")
+ raise exceptions.ScenarioDeleteImageError
- keys = self.scenario_cfg.get('output', '').split()
- return self._push_to_outputs(keys, values)
+ result.update({"delete_image": 1})
+ LOG.info("Delete image successful!")
diff --git a/yardstick/benchmark/scenarios/lib/delete_keypair.py b/yardstick/benchmark/scenarios/lib/delete_keypair.py
index 135139959..a52a38567 100644
--- a/yardstick/benchmark/scenarios/lib/delete_keypair.py
+++ b/yardstick/benchmark/scenarios/lib/delete_keypair.py
@@ -6,14 +6,12 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+
LOG = logging.getLogger(__name__)
@@ -26,11 +24,11 @@ class DeleteKeypair(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
+ self.options = self.scenario_cfg["options"]
- self.key_name = self.options.get("key_name", "yardstick_key")
+ self.key_name = self.options["key_name"]
- self.nova_client = op_utils.get_nova_client()
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -45,12 +43,13 @@ class DeleteKeypair(base.Scenario):
if not self.setup_done:
self.setup()
- status = op_utils.delete_keypair(self.nova_client,
- self.key_name)
+ status = openstack_utils.delete_keypair(self.shade_client,
+ self.key_name)
- if status:
- result.update({"delete_keypair": 1})
- LOG.info("Delete keypair successful!")
- else:
+ if not status:
result.update({"delete_keypair": 0})
- LOG.info("Delete keypair failed!")
+ LOG.error("Delete keypair failed!")
+ raise exceptions.ScenarioDeleteKeypairError
+
+ result.update({"delete_keypair": 1})
+ LOG.info("Delete keypair successful!")
diff --git a/yardstick/benchmark/scenarios/lib/delete_network.py b/yardstick/benchmark/scenarios/lib/delete_network.py
index e8796bf82..8874e8b1e 100644
--- a/yardstick/benchmark/scenarios/lib/delete_network.py
+++ b/yardstick/benchmark/scenarios/lib/delete_network.py
@@ -7,13 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+
LOG = logging.getLogger(__name__)
@@ -26,11 +25,11 @@ class DeleteNetwork(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
+ self.options = self.scenario_cfg["options"]
- self.network_id = self.options.get("network_id", None)
+ self.network_name_or_id = self.options["network_name_or_id"]
- self.neutron_client = op_utils.get_neutron_client()
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -45,11 +44,13 @@ class DeleteNetwork(base.Scenario):
if not self.setup_done:
self.setup()
- status = op_utils.delete_neutron_net(self.neutron_client,
- network_id=self.network_id)
- if status:
- result.update({"delete_network": 1})
- LOG.info("Delete network successful!")
- else:
+ status = openstack_utils.delete_neutron_net(self.shade_client,
+ self.network_name_or_id)
+
+ if not status:
result.update({"delete_network": 0})
LOG.error("Delete network failed!")
+ raise exceptions.ScenarioDeleteNetworkError
+
+ result.update({"delete_network": 1})
+ LOG.info("Delete network successful!")
diff --git a/yardstick/benchmark/scenarios/lib/delete_router.py b/yardstick/benchmark/scenarios/lib/delete_router.py
index 358fd40cf..5e7467b2c 100644
--- a/yardstick/benchmark/scenarios/lib/delete_router.py
+++ b/yardstick/benchmark/scenarios/lib/delete_router.py
@@ -7,13 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+
LOG = logging.getLogger(__name__)
@@ -28,9 +27,9 @@ class DeleteRouter(base.Scenario):
self.context_cfg = context_cfg
self.options = self.scenario_cfg['options']
- self.router_id = self.options.get("router_id", None)
+ self.router_id = self.options["router_id"]
- self.neutron_client = op_utils.get_neutron_client()
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -45,11 +44,12 @@ class DeleteRouter(base.Scenario):
if not self.setup_done:
self.setup()
- status = op_utils.delete_neutron_router(self.neutron_client,
- router_id=self.router_id)
- if status:
- result.update({"delete_router": 1})
- LOG.info("Delete router successful!")
- else:
+ status = openstack_utils.delete_neutron_router(self.shade_client,
+ self.router_id)
+ if not status:
result.update({"delete_router": 0})
LOG.error("Delete router failed!")
+ raise exceptions.ScenarioDeleteRouterError
+
+ result.update({"delete_router": 1})
+ LOG.info("Delete router successful!")
diff --git a/yardstick/benchmark/scenarios/lib/delete_router_interface.py b/yardstick/benchmark/scenarios/lib/delete_router_interface.py
index 117c80811..e71aed3ef 100644
--- a/yardstick/benchmark/scenarios/lib/delete_router_interface.py
+++ b/yardstick/benchmark/scenarios/lib/delete_router_interface.py
@@ -7,13 +7,11 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
@@ -28,10 +26,11 @@ class DeleteRouterInterface(base.Scenario):
self.context_cfg = context_cfg
self.options = self.scenario_cfg['options']
- self.subnet_id = self.options.get("subnet_id", None)
- self.router_id = self.options.get("router_id", None)
+ self.router = self.options["router"]
+ self.subnet_id = self.options.get("subnet_id")
+ self.port_id = self.options.get("port_id")
- self.neutron_client = op_utils.get_neutron_client()
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -46,12 +45,13 @@ class DeleteRouterInterface(base.Scenario):
if not self.setup_done:
self.setup()
- status = op_utils.remove_interface_router(self.neutron_client,
- router_id=self.router_id,
- subnet_id=self.subnet_id)
- if status:
- result.update({"delete_router_interface": 1})
- LOG.info("Delete router interface successful!")
- else:
+ status = openstack_utils.remove_router_interface(
+ self.shade_client, self.router, subnet_id=self.subnet_id,
+ port_id=self.port_id)
+ if not status:
result.update({"delete_router_interface": 0})
LOG.error("Delete router interface failed!")
+ raise exceptions.ScenarioRemoveRouterIntError
+
+ result.update({"delete_router_interface": 1})
+ LOG.info("Delete router interface successful!")
diff --git a/yardstick/benchmark/scenarios/lib/delete_server.py b/yardstick/benchmark/scenarios/lib/delete_server.py
index bcd8faba7..46229ff04 100644
--- a/yardstick/benchmark/scenarios/lib/delete_server.py
+++ b/yardstick/benchmark/scenarios/lib/delete_server.py
@@ -6,14 +6,11 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
LOG = logging.getLogger(__name__)
@@ -26,9 +23,13 @@ class DeleteServer(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
- self.server_id = self.options.get("server_id", None)
- self.nova_client = op_utils.get_nova_client()
+ self.options = self.scenario_cfg["options"]
+ self.server_name_or_id = self.options["name_or_id"]
+ self.wait = self.options.get("wait", False)
+ self.timeout = self.options.get("timeout", 180)
+ self.delete_ips = self.options.get("delete_ips", False)
+ self.delete_ip_retry = self.options.get("delete_ip_retry", 1)
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -43,9 +44,15 @@ class DeleteServer(base.Scenario):
if not self.setup_done:
self.setup()
- status = op_utils.delete_instance(self.nova_client,
- instance_id=self.server_id)
- if status:
- LOG.info("Delete server successful!")
- else:
+ status = openstack_utils.delete_instance(
+ self.shade_client, self.server_name_or_id, wait=self.wait,
+ timeout=self.timeout, delete_ips=self.delete_ips,
+ delete_ip_retry=self.delete_ip_retry)
+
+ if not status:
+ result.update({"delete_server": 0})
LOG.error("Delete server failed!")
+ raise exceptions.ScenarioDeleteServerError
+
+ result.update({"delete_server": 1})
+ LOG.info("Delete server successful!")
diff --git a/yardstick/benchmark/scenarios/lib/delete_volume.py b/yardstick/benchmark/scenarios/lib/delete_volume.py
index ea2b85812..59e19dfdf 100644
--- a/yardstick/benchmark/scenarios/lib/delete_volume.py
+++ b/yardstick/benchmark/scenarios/lib/delete_volume.py
@@ -6,14 +6,11 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
LOG = logging.getLogger(__name__)
@@ -26,11 +23,13 @@ class DeleteVolume(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
+ self.options = self.scenario_cfg["options"]
- self.volume_id = self.options.get("volume_id", None)
+ self.volume_name_or_id = self.options.get("name_or_id")
+ self.wait = self.options.get("wait", True)
+ self.timeout = self.options.get("timeout")
- self.cinder_client = op_utils.get_cinder_client()
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -45,11 +44,14 @@ class DeleteVolume(base.Scenario):
if not self.setup_done:
self.setup()
- status = op_utils.delete_volume(self.cinder_client, self.volume_id)
+ status = openstack_utils.delete_volume(
+ self.shade_client, name_or_id=self.volume_name_or_id,
+ wait=self.wait, timeout=self.timeout)
- if status:
- result.update({"delete_volume": 1})
- LOG.info("Delete volume successful!")
- else:
+ if not status:
result.update({"delete_volume": 0})
- LOG.info("Delete volume failed!")
+ LOG.error("Delete volume failed!")
+ raise exceptions.ScenarioDeleteVolumeError
+
+ result.update({"delete_volume": 1})
+ LOG.info("Delete volume successful!")
diff --git a/yardstick/benchmark/scenarios/lib/detach_volume.py b/yardstick/benchmark/scenarios/lib/detach_volume.py
index 0b02a3a81..76c0167bd 100644
--- a/yardstick/benchmark/scenarios/lib/detach_volume.py
+++ b/yardstick/benchmark/scenarios/lib/detach_volume.py
@@ -6,14 +6,12 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+
LOG = logging.getLogger(__name__)
@@ -26,10 +24,14 @@ class DetachVolume(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
+ self.options = self.scenario_cfg["options"]
- self.server_id = self.options.get("server_id", "TestServer")
- self.volume_id = self.options.get("volume_id", None)
+ self.server = self.options["server_name_or_id"]
+ self.volume = self.options["volume_name_or_id"]
+ self.wait = self.options.get("wait", True)
+ self.timeout = self.options.get("timeout")
+
+ self.shade_client = openstack_utils.get_shade_client()
self.setup_done = False
@@ -44,11 +46,14 @@ class DetachVolume(base.Scenario):
if not self.setup_done:
self.setup()
- status = op_utils.detach_volume(self.server_id, self.volume_id)
+ status = openstack_utils.detach_volume(
+ self.shade_client, self.server, self.volume,
+ wait=self.wait, timeout=self.timeout)
- if status:
- result.update({"detach_volume": 1})
- LOG.info("Detach volume from server successful!")
- else:
+ if not status:
result.update({"detach_volume": 0})
- LOG.info("Detach volume from server failed!")
+ LOG.error("Detach volume from server failed!")
+ raise exceptions.ScenarioDetachVolumeError
+
+ result.update({"detach_volume": 1})
+ LOG.info("Detach volume from server successful!")
diff --git a/yardstick/benchmark/scenarios/lib/get_flavor.py b/yardstick/benchmark/scenarios/lib/get_flavor.py
index d5e33947e..6727a7343 100644
--- a/yardstick/benchmark/scenarios/lib/get_flavor.py
+++ b/yardstick/benchmark/scenarios/lib/get_flavor.py
@@ -6,14 +6,11 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
@@ -26,8 +23,12 @@ class GetFlavor(base.Scenario):
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg['options']
- self.flavor_name = self.options.get("flavor_name", "TestFlavor")
+ self.options = self.scenario_cfg["options"]
+ self.name_or_id = self.options["name_or_id"]
+ self.filters = self.options.get("filters")
+ self.get_extra = self.options.get("get_extra", True)
+ self.shade_client = openstack_utils.get_shade_client()
+
self.setup_done = False
def setup(self):
@@ -41,14 +42,18 @@ class GetFlavor(base.Scenario):
if not self.setup_done:
self.setup()
- LOG.info("Querying flavor: %s", self.flavor_name)
- flavor = op_utils.get_flavor_by_name(self.flavor_name)
- if flavor:
- LOG.info("Get flavor successful!")
- values = [self._change_obj_to_dict(flavor)]
- else:
- LOG.info("Get flavor: no flavor matched!")
- values = []
+ LOG.info("Querying flavor: %s", self.name_or_id)
+ flavor = openstack_utils.get_flavor(
+ self.shade_client, self.name_or_id, filters=self.filters,
+ get_extra=self.get_extra)
+
+ if not flavor:
+ result.update({"get_flavor": 0})
+ LOG.error("Get flavor failed!")
+ raise exceptions.ScenarioGetFlavorError
- keys = self.scenario_cfg.get('output', '').split()
+ result.update({"get_flavor": 1})
+ LOG.info("Get flavor successful!")
+ values = [flavor]
+ keys = self.scenario_cfg.get("output", '').split()
return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/lib/get_server.py b/yardstick/benchmark/scenarios/lib/get_server.py
index fcf47c80d..f65fa9ebf 100644
--- a/yardstick/benchmark/scenarios/lib/get_server.py
+++ b/yardstick/benchmark/scenarios/lib/get_server.py
@@ -6,14 +6,11 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.scenarios import base
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
LOG = logging.getLogger(__name__)
@@ -21,63 +18,58 @@ LOG = logging.getLogger(__name__)
class GetServer(base.Scenario):
"""Get a server instance
- Parameters
- server_id - ID of the server
- type: string
- unit: N/A
- default: null
- server_name - name of the server
- type: string
- unit: N/A
- default: null
-
- Either server_id or server_name is required.
-
- Outputs
+ Parameters:
+ name_or_id - Name or ID of the server
+ type: string
+ filters - meta data to use for further filtering
+ type: dict
+ detailed: Whether or not to add detailed additional information.
+ type: bool
+ bare: Whether to skip adding any additional information to the server
+ record.
+ type: bool
+ all_projects: Whether to get server from all projects or just the current
+ auth scoped project.
+ type: bool
+
+ Outputs:
rc - response code of getting server instance
- 0 for success
- 1 for failure
+ 1 for success
+ 0 for failure
type: int
- unit: N/A
server - instance of the server
type: dict
- unit: N/A
+
"""
- __scenario_type__ = "GetServer"
+ __scenario_type__ = 'GetServer'
def __init__(self, scenario_cfg, context_cfg):
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.options = self.scenario_cfg.get('options', {})
+ self.options = self.scenario_cfg['options']
- self.server_id = self.options.get("server_id")
- if self.server_id:
- LOG.debug('Server id is %s', self.server_id)
+ self.server_name_or_id = self.options.get('name_or_id')
+ self.filters = self.options.get('filters')
+ self.detailed = self.options.get('detailed', False)
+ self.bare = self.options.get('bare', False)
- default_name = self.scenario_cfg.get('host',
- self.scenario_cfg.get('target'))
- self.server_name = self.options.get('server_name', default_name)
- if self.server_name:
- LOG.debug('Server name is %s', self.server_name)
-
- self.nova_client = op_utils.get_nova_client()
+ self.shade_client = openstack_utils.get_shade_client()
def run(self, result):
"""execute the test"""
- if self.server_id:
- server = self.nova_client.servers.get(self.server_id)
- else:
- server = op_utils.get_server_by_name(self.server_name)
-
- keys = self.scenario_cfg.get('output', '').split()
+ server = openstack_utils.get_server(
+ self.shade_client, name_or_id=self.server_name_or_id,
+ filters=self.filters, detailed=self.detailed, bare=self.bare)
- if server:
- LOG.info("Get server successful!")
- values = [0, self._change_obj_to_dict(server)]
- else:
- LOG.info("Get server failed!")
- values = [1]
+ if not server:
+ result.update({'get_server': 0})
+ LOG.error('Get Server failed!')
+ raise exceptions.ScenarioGetServerError
+ result.update({'get_server': 1})
+ LOG.info('Get Server successful!')
+ keys = self.scenario_cfg.get('output', '').split()
+ values = [server]
return self._push_to_outputs(keys, values)
diff --git a/yardstick/benchmark/scenarios/networking/iperf3.py b/yardstick/benchmark/scenarios/networking/iperf3.py
index 98c45990e..51e044e7b 100644
--- a/yardstick/benchmark/scenarios/networking/iperf3.py
+++ b/yardstick/benchmark/scenarios/networking/iperf3.py
@@ -92,7 +92,7 @@ For more info see http://software.es.net/iperf
def teardown(self):
LOG.debug("teardown")
self.host.close()
- status, stdout, stderr = self.target.execute("pkill iperf3")
+ status, _, stderr = self.target.execute("pkill iperf3")
if status:
LOG.warning(stderr)
self.target.close()
@@ -145,7 +145,7 @@ For more info see http://software.es.net/iperf
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.host.execute(cmd)
+ status, stdout, _ = self.host.execute(cmd)
if status:
# error cause in json dict on stdout
raise RuntimeError(stdout)
@@ -165,16 +165,17 @@ For more info see http://software.es.net/iperf
bit_per_second = \
int(iperf_result["end"]["sum_received"]["bits_per_second"])
bytes_per_second = bit_per_second / 8
- assert bytes_per_second >= sla_bytes_per_second, \
- "bytes_per_second %d < sla:bytes_per_second (%d); " % \
- (bytes_per_second, sla_bytes_per_second)
+ self.verify_SLA(
+ bytes_per_second >= sla_bytes_per_second,
+ "bytes_per_second %d < sla:bytes_per_second (%d); "
+ % (bytes_per_second, sla_bytes_per_second))
else:
sla_jitter = float(sla_iperf["jitter"])
jitter_ms = float(iperf_result["end"]["sum"]["jitter_ms"])
- assert jitter_ms <= sla_jitter, \
- "jitter_ms %f > sla:jitter %f; " % \
- (jitter_ms, sla_jitter)
+ self.verify_SLA(jitter_ms <= sla_jitter,
+ "jitter_ms %f > sla:jitter %f; "
+ % (jitter_ms, sla_jitter))
def _test():
diff --git a/yardstick/benchmark/scenarios/networking/moongen_testpmd.bash b/yardstick/benchmark/scenarios/networking/moongen_testpmd.bash
new file mode 100644
index 000000000..3e92cc900
--- /dev/null
+++ b/yardstick/benchmark/scenarios/networking/moongen_testpmd.bash
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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
+##############################################################################
+#!/bin/bash
+
+set -e
+
+# Commandline arguments
+MOONGEN_PORT1_MAC=$1 # MAC address of the peer port
+MOONGEN_PORT2_MAC=$2 # MAC address of the peer port
+TESTPMD_QUEUE=$3
+
+BIND_ROOT='/opt/nsb_bin'
+DRIVER_ROOT='/opt/tempT/dpdk-17.02/'
+
+load_modules()
+{
+ if ! lsmod | grep "uio" &> /dev/null; then
+ modprobe uio
+ fi
+
+ if ! lsmod | grep "igb_uio" &> /dev/null; then
+ insmod ${DRIVER_ROOT}/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
+ fi
+
+ if ! lsmod | grep "rte_kni" &> /dev/null; then
+ insmod ${DRIVER_ROOT}/x86_64-native-linuxapp-gcc/kmod/rte_kni.ko
+ fi
+}
+
+change_permissions()
+{
+ chmod 777 /sys/bus/pci/drivers/virtio-pci/*
+ chmod 777 /sys/bus/pci/drivers/igb_uio/*
+}
+
+add_interface_to_dpdk(){
+ interfaces=$(lspci |grep Eth |tail -n +2 |awk '{print $1}')
+ ${BIND_ROOT}/dpdk_nic_bind.py --bind=igb_uio $interfaces &> /dev/null
+}
+
+run_testpmd()
+{
+ blacklist=$(lspci |grep Eth |awk '{print $1}'|head -1)
+ cd ${DRIVER_ROOT}
+ sudo ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x3f -n 4 -b $blacklist -- -a --nb-cores=4 --coremask=0x3c --burst=64 --txd=4096 --rxd=4096 --rxq=$TESTPMD_QUEUE --txq=$TESTPMD_QUEUE --rss-udp --eth-peer=0,$MOONGEN_PORT1_MAC --eth-peer=1,$MOONGEN_PORT2_MAC --forward-mode=mac
+}
+
+main()
+{
+ load_modules
+ change_permissions
+ add_interface_to_dpdk
+ run_testpmd
+}
+
+main
diff --git a/yardstick/benchmark/scenarios/networking/moongen_testpmd.py b/yardstick/benchmark/scenarios/networking/moongen_testpmd.py
new file mode 100644
index 000000000..e3bd7af46
--- /dev/null
+++ b/yardstick/benchmark/scenarios/networking/moongen_testpmd.py
@@ -0,0 +1,379 @@
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+""" VsperfDPDK specific scenario definition """
+
+from __future__ import absolute_import
+import pkg_resources
+import logging
+import subprocess
+import time
+import re
+from oslo_serialization import jsonutils
+
+import yardstick.ssh as ssh
+import yardstick.common.utils as utils
+from yardstick.benchmark.scenarios import base
+
+LOG = logging.getLogger(__name__)
+
+
+class MoongenTestPMD(base.Scenario):
+ """Execute vsperf with defined parameters
+
+ Parameters:
+ frame_size - a frame size for which test should be executed;
+ Multiple frame sizes can be tested by modification of sequence runner
+ section inside TC YAML definition.
+ type: string
+ default: "64"
+ multistream - the number of simulated streams
+ type: string
+ default: 0 (disabled)
+ testpmd_queue - specifies how many queues you will use the VM
+ only useful when forward_type is true.
+ type: int
+ default: 1(one queue)
+ trafficgen_port1 - specifies device name of 1st interface connected to
+ the trafficgen
+ type: string
+ default: NA
+ trafficgen_port2 - specifies device name of 2nd interface connected to
+ the trafficgen
+ type: string
+ default: NA
+ moongen_host_user - specifies moongen host ssh user name
+ type: string
+ default: root
+ moongen_host_passwd - specifies moongen host ssh user password
+ type: string
+ default: root
+ moongen_host_ip - specifies moongen host ssh ip address
+ type: string
+ default NA
+ moongen_dir - specifies where is the moongen installtion dir
+ type: string
+ default NA
+ moongen_runBidirec - specifies moongen will run in one traffic
+ or two traffic.
+ type: string
+ default true
+ Package_Loss - specifies the package_Loss number in moongen server.
+ type: int
+ default 0(0%)
+ SearchRuntime - specifies the SearchRuntime and validation time
+ on moongen server.
+ type: int
+ default 60(s)
+ moongen_port1_mac - moongen server port1 mac address.
+ type: string
+ default NA
+ moongen_port2_mac - moongen server port2 mac address.
+ type: string
+ default NA
+ forward_type - VM forward type is l2fwd or testpmd.
+ type: string
+ default: testpmd
+ """
+ __scenario_type__ = "MoongenTestPMD"
+
+ TESTPMD_SCRIPT = 'moongen_testpmd.bash'
+ VSPERF_CONFIG = '/tmp/opnfv-vsperf-cfg.lua'
+
+ def __init__(self, scenario_cfg, context_cfg):
+ self.scenario_cfg = scenario_cfg
+ self.context_cfg = context_cfg
+ self.forward_setup_done = False
+ self.options = scenario_cfg.get('options', {})
+ self.moongen_host_user = \
+ self.options.get('moongen_host_user', "root")
+ self.moongen_host_passwd = \
+ self.options.get('moongen_host_passwd', "r00t")
+ self.moongen_dir = \
+ self.options.get('moongen_dir', '~/moongen.py')
+ self.testpmd_queue = \
+ self.options.get('testpmd_queue', 1)
+ self.moongen_host_ip = \
+ self.options.get('moongen_host_ip', "127.0.0.1")
+ self.moongen_port1_mac = \
+ self.options.get('moongen_port1_mac', None)
+ self.moongen_port2_mac = \
+ self.options.get('moongen_port2_mac', None)
+ self.tg_port1 = \
+ self.options.get('trafficgen_port1', "enp2s0f0")
+ self.tg_port2 = \
+ self.options.get('trafficgen_port2', "enp2s0f1")
+ self.forward_type = \
+ self.options.get('forward_type', 'testpmd')
+ self.tgen_port1_mac = None
+ self.tgen_port2_mac = None
+
+ def setup(self):
+ """scenario setup"""
+ host = self.context_cfg['host']
+
+ task_id = self.scenario_cfg['task_id']
+ context_number = task_id.split('-')[0]
+ self.tg_port1_nw = 'demo' + \
+ "-" + context_number + "-" + \
+ self.options.get('trafficgen_port1_nw', 'test2')
+ self.tg_port2_nw = 'demo' + \
+ "-" + context_number + "-" + \
+ self.options.get('trafficgen_port2_nw', 'test3')
+
+ # copy vsperf conf to VM
+ self.client = ssh.SSH.from_node(host, defaults={"user": "ubuntu"})
+ # traffic generation could last long
+ self.client.wait(timeout=1800)
+
+ self.server = ssh.SSH(
+ self.moongen_host_user,
+ self.moongen_host_ip,
+ password=self.moongen_host_passwd
+ )
+ # traffic generation could last long
+ self.server.wait(timeout=1800)
+
+ self.setup_done = True
+
+ def forward_setup(self):
+ """forward tool setup"""
+
+ # setup forward loopback in VM
+ self.testpmd_script = pkg_resources.resource_filename(
+ 'yardstick.benchmark.scenarios.networking',
+ self.TESTPMD_SCRIPT)
+
+ self.client._put_file_shell(self.testpmd_script,
+ '~/testpmd_vsperf.sh')
+
+ # disable Address Space Layout Randomization (ASLR)
+ cmd = "echo 0 | sudo tee /proc/sys/kernel/randomize_va_space"
+ self.client.send_command(cmd)
+
+ if not self._is_forward_setup():
+ self.tgen_port1_ip = \
+ utils.get_port_ip(self.client, self.tg_port1)
+ self.tgen_port1_mac = \
+ utils.get_port_mac(self.client, self.tg_port1)
+ self.client.run("tee ~/.testpmd.ipaddr.port1 > /dev/null",
+ stdin=self.tgen_port1_ip)
+ self.client.run("tee ~/.testpmd.macaddr.port1 > /dev/null",
+ stdin=self.tgen_port1_mac)
+ self.tgen_port2_ip = \
+ utils.get_port_ip(self.client, self.tg_port2)
+ self.tgen_port2_mac = \
+ utils.get_port_mac(self.client, self.tg_port2)
+ self.client.run("tee ~/.testpmd.ipaddr.port2 > /dev/null",
+ stdin=self.tgen_port2_ip)
+ self.client.run("tee ~/.testpmd.macaddr.port2 > /dev/null",
+ stdin=self.tgen_port2_mac)
+ else:
+ cmd = "cat ~/.testpmd.macaddr.port1"
+ status, stdout, stderr = self.client.execute(cmd)
+ if status:
+ raise RuntimeError(stderr)
+ self.tgen_port1_mac = stdout
+ cmd = "cat ~/.testpmd.ipaddr.port1"
+ status, stdout, stderr = self.client.execute(cmd)
+ if status:
+ raise RuntimeError(stderr)
+ self.tgen_port1_ip = stdout
+ cmd = "cat ~/.testpmd.macaddr.port2"
+ status, stdout, stderr = self.client.execute(cmd)
+ if status:
+ raise RuntimeError(stderr)
+ self.tgen_port2_mac = stdout
+ cmd = "cat ~/.testpmd.ipaddr.port2"
+ status, stdout, stderr = self.client.execute(cmd)
+ if status:
+ raise RuntimeError(stderr)
+ self.tgen_port2_ip = stdout
+
+ LOG.info("forward type is %s", self.forward_type)
+ if self.forward_type == 'testpmd':
+ cmd = "sudo ip link set %s down" % (self.tg_port1)
+ LOG.debug("Executing command: %s", cmd)
+ self.client.execute(cmd)
+ cmd = "sudo ip link set %s down" % (self.tg_port2)
+ LOG.debug("Executing command: %s", cmd)
+ self.client.execute(cmd)
+ cmd = "screen -d -m sudo -E bash ~/testpmd_vsperf.sh %s %s %d" % \
+ (self.moongen_port1_mac, self.moongen_port2_mac,
+ self.testpmd_queue)
+ LOG.debug("Executing command: %s", cmd)
+ status, stdout, stderr = self.client.execute(cmd)
+ if status:
+ raise RuntimeError(stderr)
+
+ elif self.forward_type == 'l2fwd':
+ cmd = ('sed -i "s/static char *net1 = \\\"eth1\\\";'
+ '/static char *net1 = \\\"%s %s %s\\\";/g" /home/l2fwd/l2fwd.c'
+ % (self.tg_port1, self.tgen_port1_ip, self.moongen_port1_mac))
+ LOG.debug("Executing command: %s", cmd)
+ status, stdout, stderr = self.client.execute(cmd)
+
+ cmd = ('sed -i "s/static char *net2 = \\\"eth2\\\";'
+ '/static char *net2 = \\\"%s %s %s\\\";/g" /home/l2fwd/l2fwd.c'
+ % (self.tg_port2, self.tgen_port2_ip, self.moongen_port2_mac))
+ LOG.debug("Executing command: %s", cmd)
+ status, stdout, stderr = self.client.execute(cmd)
+
+ cmd = ('cd /home/l2fwd/;make;./gen_debian_package.sh;'
+ 'sudo dpkg -i *.deb;'
+ 'sudo modprobe l2fwd')
+ LOG.debug("Executing command: %s", cmd)
+ status, stdout, stderr = self.client.execute(cmd)
+
+ time.sleep(1)
+
+ self.forward_setup_done = True
+
+ def _is_forward_setup(self):
+ """Is forward already setup in the host?"""
+ if self.forward_type is 'testpmd':
+ is_run = True
+ cmd = "ip a | grep %s 2>/dev/null" % (self.tg_port1)
+ LOG.debug("Executing command: %s", cmd)
+ _, stdout, _ = self.client.execute(cmd)
+ if stdout:
+ is_run = False
+ return is_run
+ elif self.forward_type is 'l2fwd':
+ cmd = ('sudo lsmod |grep l2fwd')
+ LOG.debug("Executing command: %s", cmd)
+ _, stdout, _ = self.client.execute(cmd)
+ if stdout:
+ return True
+ else:
+ return False
+
+ def generate_config_file(self, frame_size, multistream,
+ runBidirec, tg_port1_vlan, tg_port2_vlan,
+ SearchRuntime, Package_Loss):
+ out_text = """\
+VSPERF {
+testType = 'throughput',
+nrFlows = %d,
+runBidirec = %s,
+frameSize = %d,
+srcMacs = {\'%s\', \'%s\'},
+dstMacs = {\'%s\', \'%s\'},
+vlanIds = {%d, %d},
+searchRunTime = %d,
+validationRunTime = %d,
+acceptableLossPct = %d,
+ports = {0,1},
+}
+""" % (multistream, runBidirec, frame_size, self.moongen_port1_mac,
+ self.moongen_port2_mac, self.tgen_port1_mac, self.tgen_port2_mac,
+ tg_port1_vlan, tg_port2_vlan, SearchRuntime, SearchRuntime, Package_Loss)
+ with open(self.VSPERF_CONFIG, "wt") as out_file:
+ out_file.write(out_text)
+ self.CONFIG_FILE = True
+
+ def result_to_data(self, result):
+ search_pattern = re.compile(
+ r'\[REPORT\]\s+total\:\s+'
+ r'Tx\s+frames\:\s+(\d+)\s+'
+ r'Rx\s+Frames\:\s+(\d+)\s+'
+ r'frame\s+loss\:\s+(\d+)\,'
+ r'\s+(\d+\.\d+|\d+)%\s+'
+ r'Tx\s+Mpps\:\s+(\d+.\d+|\d+)\s+'
+ r'Rx\s+Mpps\:\s+(\d+\.\d+|\d+)',
+ re.IGNORECASE)
+ results_match = search_pattern.search(result)
+ if results_match:
+ rx_mpps = float(results_match.group(6))
+ tx_mpps = float(results_match.group(5))
+ else:
+ rx_mpps = 0
+ tx_mpps = 0
+ test_result = {"rx_mpps": rx_mpps, "tx_mpps": tx_mpps}
+ self.TO_DATA = True
+ return test_result
+
+ def run(self, result):
+ """ execute the vsperf benchmark and return test results
+ within result dictionary
+ """
+
+ if not self.setup_done:
+ self.setup()
+
+ # get vsperf options
+ multistream = self.options.get("multistream", 1)
+
+ if not self.forward_setup_done:
+ self.forward_setup()
+
+ if 'frame_size' in self.options:
+ frame_size = self.options.get("frame_size", 64)
+ Package_Loss = self.options.get("Package_Loss", 0)
+ runBidirec = self.options.get("moongen_runBidirec",
+ "true")
+ SearchRuntime = self.options.get("SearchRuntime", 10)
+
+ cmd = "openstack network show %s --format json -c " \
+ "provider:segmentation_id" % (self.tg_port1_nw)
+ LOG.debug("Executing command: %s", cmd)
+ output = subprocess.check_output(cmd, shell=True)
+ try:
+ tg_port1_vlan = jsonutils.loads(output).get("provider:segmentation_id", 1)
+ except TypeError:
+ tg_port1_vlan = 1
+
+ cmd = "openstack network show %s --format json -c " \
+ "provider:segmentation_id" % (self.tg_port2_nw)
+ LOG.debug("Executing command: %s", cmd)
+ output = subprocess.check_output(cmd, shell=True)
+ try:
+ tg_port2_vlan = jsonutils.loads(output).get("provider:segmentation_id", 2)
+ except TypeError:
+ tg_port2_vlan = 2
+
+ self.generate_config_file(frame_size, multistream,
+ runBidirec, tg_port1_vlan,
+ tg_port2_vlan, SearchRuntime, Package_Loss)
+
+ self.server.execute("rm -f -- %s/opnfv-vsperf-cfg.lua" %
+ (self.moongen_dir))
+ self.server._put_file_shell(self.VSPERF_CONFIG,
+ "%s/opnfv-vsperf-cfg.lua"
+ % (self.moongen_dir))
+
+ # execute moongen
+ cmd = ("cd %s;./MoonGen/build/MoonGen ./trafficgen.lua"
+ % (self.moongen_dir))
+ status, stdout, stderr = self.server.execute(cmd)
+ if status:
+ raise RuntimeError(stderr)
+
+ moongen_result = self.result_to_data(stdout)
+ LOG.info(moongen_result)
+ result.update(moongen_result)
+
+ if "sla" in self.scenario_cfg:
+ throughput_rx_mpps = int(
+ self.scenario_cfg["sla"]["throughput_rx_mpps"])
+
+ self.verify_SLA(
+ throughput_rx_mpps <= moongen_result["tx_mpps"],
+ "sla_throughput_rx_mpps %f > throughput_rx_mpps(%f); "
+ % (throughput_rx_mpps, moongen_result["tx_mpps"]))
+
+ def teardown(self):
+ """cleanup after the test execution"""
+
+ # execute external setup script
+ self.setup_done = False
diff --git a/yardstick/benchmark/scenarios/networking/netperf.py b/yardstick/benchmark/scenarios/networking/netperf.py
index a8d9010ed..9f1a81413 100755
--- a/yardstick/benchmark/scenarios/networking/netperf.py
+++ b/yardstick/benchmark/scenarios/networking/netperf.py
@@ -104,7 +104,9 @@ class Netperf(base.Scenario):
cmd_args = "-H %s -l %s -t %s" % (ipaddr, testlen, testname)
# get test specific options
- default_args = "-O 'THROUGHPUT,THROUGHPUT_UNITS,MEAN_LATENCY'"
+ output_opt = options.get(
+ "output_opt", "THROUGHPUT,THROUGHPUT_UNITS,MEAN_LATENCY")
+ default_args = "-O %s" % output_opt
cmd_args += " -- %s" % default_args
option_pair_list = [("send_msg_size", "-m"),
("recv_msg_size", "-M"),
@@ -136,9 +138,9 @@ class Netperf(base.Scenario):
sla_max_mean_latency = int(
self.scenario_cfg["sla"]["mean_latency"])
- assert mean_latency <= sla_max_mean_latency, \
- "mean_latency %f > sla_max_mean_latency(%f); " % \
- (mean_latency, sla_max_mean_latency)
+ self.verify_SLA(mean_latency <= sla_max_mean_latency,
+ "mean_latency %f > sla_max_mean_latency(%f); "
+ % (mean_latency, sla_max_mean_latency))
def _test():
diff --git a/yardstick/benchmark/scenarios/networking/netperf_node.py b/yardstick/benchmark/scenarios/networking/netperf_node.py
index d52e6b9e1..0ad2ecff5 100755
--- a/yardstick/benchmark/scenarios/networking/netperf_node.py
+++ b/yardstick/benchmark/scenarios/networking/netperf_node.py
@@ -156,9 +156,10 @@ class NetperfNode(base.Scenario):
sla_max_mean_latency = int(
self.scenario_cfg["sla"]["mean_latency"])
- assert mean_latency <= sla_max_mean_latency, \
- "mean_latency %f > sla_max_mean_latency(%f); " % \
- (mean_latency, sla_max_mean_latency)
+ self.verify_SLA(
+ mean_latency <= sla_max_mean_latency,
+ "mean_latency %f > sla_max_mean_latency(%f); "
+ % (mean_latency, sla_max_mean_latency))
def teardown(self):
"""remove netperf from nodes after test"""
diff --git a/yardstick/benchmark/scenarios/networking/nstat.py b/yardstick/benchmark/scenarios/networking/nstat.py
index 10c560769..ea067f8ab 100644
--- a/yardstick/benchmark/scenarios/networking/nstat.py
+++ b/yardstick/benchmark/scenarios/networking/nstat.py
@@ -121,4 +121,4 @@ class Nstat(base.Scenario):
if rate > sla_rate:
sla_error += "%s rate %f > sla:%s_rate(%f); " % \
(i, rate, i, sla_rate)
- assert sla_error == "", sla_error
+ self.verify_SLA(sla_error == "", sla_error)
diff --git a/yardstick/benchmark/scenarios/networking/ping.py b/yardstick/benchmark/scenarios/networking/ping.py
index e7d9beea8..1c9510220 100644
--- a/yardstick/benchmark/scenarios/networking/ping.py
+++ b/yardstick/benchmark/scenarios/networking/ping.py
@@ -91,9 +91,10 @@ class Ping(base.Scenario):
result.update(utils.flatten_dict_key(ping_result))
if sla_max_rtt is not None:
sla_max_rtt = float(sla_max_rtt)
- assert rtt_result[target_vm_name] <= sla_max_rtt,\
- "rtt %f > sla: max_rtt(%f); " % \
- (rtt_result[target_vm_name], sla_max_rtt)
+ self.verify_SLA(
+ rtt_result[target_vm_name] <= sla_max_rtt,
+ "rtt %f > sla: max_rtt(%f); "
+ % (rtt_result[target_vm_name], sla_max_rtt))
else:
LOG.error("ping '%s' '%s' timeout", options, target_vm)
# we need to specify a result to satisfy influxdb schema
@@ -103,12 +104,13 @@ class Ping(base.Scenario):
# store result before potential AssertionError
result.update(utils.flatten_dict_key(ping_result))
if sla_max_rtt is not None:
- raise AssertionError("packet dropped rtt {:f} > sla: max_rtt({:f})".format(
- rtt_result[target_vm_name], sla_max_rtt))
-
+ self.verify_SLA(rtt_result[target_vm_name] <= sla_max_rtt,
+ "packet dropped rtt %f > sla: max_rtt(%f)"
+ % (rtt_result[target_vm_name], sla_max_rtt))
else:
- raise AssertionError(
- "packet dropped rtt {:f}".format(rtt_result[target_vm_name]))
+ self.verify_SLA(False,
+ "packet dropped rtt %f"
+ % (rtt_result[target_vm_name]))
def _test(): # pragma: no cover
diff --git a/yardstick/benchmark/scenarios/networking/ping6.py b/yardstick/benchmark/scenarios/networking/ping6.py
index 74855a10f..377278004 100644
--- a/yardstick/benchmark/scenarios/networking/ping6.py
+++ b/yardstick/benchmark/scenarios/networking/ping6.py
@@ -59,8 +59,7 @@ class Ping6(base.Scenario): # pragma: no cover
self._ssh_host(node_name)
self.client._put_file_shell(
self.pre_setup_script, '~/pre_setup.sh')
- status, stdout, stderr = self.client.execute(
- "sudo bash pre_setup.sh")
+ self.client.execute("sudo bash pre_setup.sh")
def _get_controller_node(self, host_list):
for host_name in host_list:
@@ -122,7 +121,7 @@ class Ping6(base.Scenario): # pragma: no cover
cmd = "sudo bash %s %s %s" % \
(setup_bash_file, self.openrc, self.external_network)
LOG.debug("Executing setup command: %s", cmd)
- status, stdout, stderr = self.client.execute(cmd)
+ self.client.execute(cmd)
self.setup_done = True
@@ -171,8 +170,9 @@ class Ping6(base.Scenario): # pragma: no cover
result["rtt"] = float(stdout)
if "sla" in self.scenario_cfg:
sla_max_rtt = int(self.scenario_cfg["sla"]["max_rtt"])
- assert result["rtt"] <= sla_max_rtt, \
- "rtt %f > sla:max_rtt(%f); " % (result["rtt"], sla_max_rtt)
+ self.verify_SLA(result["rtt"] <= sla_max_rtt,
+ "rtt %f > sla:max_rtt(%f); "
+ % (result["rtt"], sla_max_rtt))
else:
LOG.error("ping6 timeout!!!")
self.run_done = True
@@ -216,5 +216,4 @@ class Ping6(base.Scenario): # pragma: no cover
self._ssh_host(node_name)
self.client._put_file_shell(
self.post_teardown_script, '~/post_teardown.sh')
- status, stdout, stderr = self.client.execute(
- "sudo bash post_teardown.sh")
+ self.client.execute("sudo bash post_teardown.sh")
diff --git a/yardstick/benchmark/scenarios/networking/pktgen.py b/yardstick/benchmark/scenarios/networking/pktgen.py
index b79b91539..c78108adb 100644
--- a/yardstick/benchmark/scenarios/networking/pktgen.py
+++ b/yardstick/benchmark/scenarios/networking/pktgen.py
@@ -87,7 +87,7 @@ class Pktgen(base.Scenario):
self.server.send_command(cmd)
self.client.send_command(cmd)
- """multiqueue setup"""
+ # multiqueue setup
if not self._is_irqbalance_disabled():
self._disable_irqbalance()
@@ -112,18 +112,14 @@ class Pktgen(base.Scenario):
def _get_vnic_driver_name(self):
cmd = "readlink /sys/class/net/%s/device/driver" % self.vnic_name
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
return os.path.basename(stdout.strip())
def _is_irqbalance_disabled(self):
"""Did we disable irqbalance already in the guest?"""
is_disabled = False
cmd = "grep ENABLED /etc/default/irqbalance"
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
if "0" in stdout:
is_disabled = True
@@ -132,49 +128,35 @@ class Pktgen(base.Scenario):
def _disable_irqbalance(self):
cmd = "sudo sed -i -e 's/ENABLED=\"1\"/ENABLED=\"0\"/g' " \
"/etc/default/irqbalance"
- status, stdout, stderr = self.server.execute(cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd)
+ self.client.run(cmd)
cmd = "sudo service irqbalance stop"
- status, stdout, stderr = self.server.execute(cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd)
+ self.client.run(cmd)
cmd = "sudo service irqbalance disable"
- status, stdout, stderr = self.server.execute(cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd)
+ self.client.run(cmd)
def _setup_irqmapping_ovs(self, queue_number):
cmd = "grep 'virtio0-input.0' /proc/interrupts |" \
"awk '{match($0,/ +[0-9]+/)} " \
"{print substr($1,RSTART,RLENGTH-1)}'"
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
cmd = "echo 1 | sudo tee /proc/irq/%s/smp_affinity" % (int(stdout))
- status, stdout, stderr = self.server.execute(cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd)
+ self.client.run(cmd)
cmd = "grep 'virtio0-output.0' /proc/interrupts |" \
"awk '{match($0,/ +[0-9]+/)} " \
"{print substr($1,RSTART,RLENGTH-1)}'"
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
cmd = "echo 1 | sudo tee /proc/irq/%s/smp_affinity" % (int(stdout))
- status, stdout, stderr = self.server.execute(cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd)
+ self.client.run(cmd)
if queue_number == 1:
return
@@ -186,44 +168,32 @@ class Pktgen(base.Scenario):
cmd = "grep 'virtio0-input.%s' /proc/interrupts |" \
"awk '{match($0,/ +[0-9]+/)} " \
"{print substr($1,RSTART,RLENGTH-1)}'" % (i)
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
cmd = "echo %s | sudo tee /proc/irq/%s/smp_affinity" \
% (smp_affinity_mask, int(stdout))
- status, stdout, stderr = self.server.execute(cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd)
+ self.client.run(cmd)
cmd = "grep 'virtio0-output.%s' /proc/interrupts |" \
"awk '{match($0,/ +[0-9]+/)} " \
"{print substr($1,RSTART,RLENGTH-1)}'" % (i)
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
cmd = "echo %s | sudo tee /proc/irq/%s/smp_affinity" \
% (smp_affinity_mask, int(stdout))
- status, stdout, stderr = self.server.execute(cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd)
+ self.client.run(cmd)
def _setup_irqmapping_sriov(self, queue_number):
cmd = "grep '%s-TxRx-0' /proc/interrupts |" \
"awk '{match($0,/ +[0-9]+/)} " \
"{print substr($1,RSTART,RLENGTH-1)}'" % self.vnic_name
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
cmd = "echo 1 | sudo tee /proc/irq/%s/smp_affinity" % (int(stdout))
- status, stdout, stderr = self.server.execute(cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd)
+ self.client.run(cmd)
if queue_number == 1:
return
@@ -234,24 +204,18 @@ class Pktgen(base.Scenario):
cmd = "grep '%s-TxRx-%s' /proc/interrupts |" \
"awk '{match($0,/ +[0-9]+/)} " \
"{print substr($1,RSTART,RLENGTH-1)}'" % (self.vnic_name, i)
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
cmd = "echo %s | sudo tee /proc/irq/%s/smp_affinity" \
% (smp_affinity_mask, int(stdout))
- status, stdout, stderr = self.server.execute(cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd)
+ self.client.run(cmd)
def _get_sriov_queue_number(self):
"""Get queue number from server as both VMs are the same"""
cmd = "grep %s-TxRx- /proc/interrupts | wc -l" % self.vnic_name
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
return int(stdout)
def _get_available_queue_number(self):
@@ -259,9 +223,7 @@ class Pktgen(base.Scenario):
cmd = "sudo ethtool -l %s | grep Combined | head -1 |" \
"awk '{printf $2}'" % self.vnic_name
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
return int(stdout)
def _get_usable_queue_number(self):
@@ -269,9 +231,7 @@ class Pktgen(base.Scenario):
cmd = "sudo ethtool -l %s | grep Combined | tail -1 |" \
"awk '{printf $2}'" % self.vnic_name
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
return int(stdout)
def _enable_ovs_multiqueue(self):
@@ -282,10 +242,8 @@ class Pktgen(base.Scenario):
cmd = "sudo ethtool -L %s combined %s" % \
(self.vnic_name, available_queue_number)
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.server.execute(cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd)
+ self.client.run(cmd)
return available_queue_number
def _iptables_setup(self):
@@ -294,9 +252,7 @@ class Pktgen(base.Scenario):
"sudo iptables -A INPUT -p udp --dport 1000:%s -j DROP" \
% (1000 + self.number_of_ports)
LOG.debug("Executing command: %s", cmd)
- status, _, stderr = self.server.execute(cmd, timeout=SSH_TIMEOUT)
- if status:
- raise RuntimeError(stderr)
+ self.server.run(cmd, timeout=SSH_TIMEOUT)
def _iptables_get_result(self):
"""Get packet statistics from server"""
@@ -304,9 +260,7 @@ class Pktgen(base.Scenario):
"awk '/dpts:1000:%s/ {{printf \"%%s\", $1}}'" \
% (1000 + self.number_of_ports)
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.server.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.server.execute(cmd, raise_on_error=True)
return int(stdout)
def run(self, result):
@@ -356,10 +310,8 @@ class Pktgen(base.Scenario):
duration, queue_number, pps)
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.client.execute(cmd, timeout=SSH_TIMEOUT)
-
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.client.execute(cmd, raise_on_error=True,
+ timeout=SSH_TIMEOUT)
result.update(jsonutils.loads(stdout))
@@ -374,8 +326,8 @@ class Pktgen(base.Scenario):
if "sla" in self.scenario_cfg:
LOG.debug("Lost packets %d - Lost ppm %d", (sent - received), ppm)
sla_max_ppm = int(self.scenario_cfg["sla"]["max_ppm"])
- assert ppm <= sla_max_ppm, "ppm %d > sla_max_ppm %d; " \
- % (ppm, sla_max_ppm)
+ self.verify_SLA(ppm <= sla_max_ppm,
+ "ppm %d > sla_max_ppm %d; " % (ppm, sla_max_ppm))
def _test(): # pragma: no cover
diff --git a/yardstick/benchmark/scenarios/networking/pktgen_dpdk.py b/yardstick/benchmark/scenarios/networking/pktgen_dpdk.py
index ce8a7f497..efb7d8b5d 100644
--- a/yardstick/benchmark/scenarios/networking/pktgen_dpdk.py
+++ b/yardstick/benchmark/scenarios/networking/pktgen_dpdk.py
@@ -70,39 +70,42 @@ class PktgenDPDKLatency(base.Scenario):
def run(self, result):
"""execute the benchmark"""
+ options = self.scenario_cfg['options']
+ eth1 = options.get("eth1", "ens4")
+ eth2 = options.get("eth2", "ens5")
if not self.setup_done:
self.setup()
if not self.testpmd_args:
- self.testpmd_args = utils.get_port_mac(self.client, 'eth2')
+ self.testpmd_args = utils.get_port_mac(self.client, eth2)
if not self.pktgen_args:
- server_rev_mac = utils.get_port_mac(self.server, 'eth1')
- server_send_mac = utils.get_port_mac(self.server, 'eth2')
- client_src_ip = utils.get_port_ip(self.client, 'eth1')
- client_dst_ip = utils.get_port_ip(self.client, 'eth2')
+ server_rev_mac = utils.get_port_mac(self.server, eth1)
+ server_send_mac = utils.get_port_mac(self.server, eth2)
+ client_src_ip = utils.get_port_ip(self.client, eth1)
+ client_dst_ip = utils.get_port_ip(self.client, eth2)
self.pktgen_args = [client_src_ip, client_dst_ip,
server_rev_mac, server_send_mac]
- options = self.scenario_cfg['options']
packetsize = options.get("packetsize", 64)
rate = options.get("rate", 100)
- cmd = "screen sudo -E bash ~/testpmd_fwd.sh %s " % (self.testpmd_args)
+ cmd = "screen sudo -E bash ~/testpmd_fwd.sh %s %s %s" % \
+ (self.testpmd_args, eth1, eth2)
LOG.debug("Executing command: %s", cmd)
self.server.send_command(cmd)
time.sleep(1)
- cmd = "screen sudo -E bash ~/pktgen_dpdk.sh %s %s %s %s %s %s" % \
+ cmd = "screen sudo -E bash ~/pktgen_dpdk.sh %s %s %s %s %s %s %s %s" % \
(self.pktgen_args[0], self.pktgen_args[1], self.pktgen_args[2],
- self.pktgen_args[3], rate, packetsize)
+ self.pktgen_args[3], rate, packetsize, eth1, eth2)
LOG.debug("Executing command: %s", cmd)
self.client.send_command(cmd)
# wait for finishing test
- time.sleep(1)
+ time.sleep(60)
cmd = r"""\
cat ~/result.log -vT \
@@ -110,10 +113,7 @@ cat ~/result.log -vT \
{print substr($0,RSTART,RLENGTH)}' \
|grep -v ^$ |awk '{if ($2 != 0) print $2}'\
"""
- client_status, client_stdout, client_stderr = self.client.execute(cmd)
-
- if client_status:
- raise RuntimeError(client_stderr)
+ _, client_stdout, _ = self.client.execute(cmd, raise_on_error=True)
avg_latency = 0
if client_stdout:
@@ -132,4 +132,4 @@ cat ~/result.log -vT \
LOG.info("sla_max_latency: %d", sla_max_latency)
debug_info = "avg_latency %d > sla_max_latency %d" \
% (avg_latency, sla_max_latency)
- assert avg_latency <= sla_max_latency, debug_info
+ self.verify_SLA(avg_latency <= sla_max_latency, debug_info)
diff --git a/yardstick/benchmark/scenarios/networking/pktgen_dpdk_latency_benchmark.bash b/yardstick/benchmark/scenarios/networking/pktgen_dpdk_latency_benchmark.bash
index b872aa3df..dcd5a9bfb 100644
--- a/yardstick/benchmark/scenarios/networking/pktgen_dpdk_latency_benchmark.bash
+++ b/yardstick/benchmark/scenarios/networking/pktgen_dpdk_latency_benchmark.bash
@@ -7,7 +7,7 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-!/bin/sh
+#!/bin/sh
set -e
@@ -18,6 +18,11 @@ FWD_REV_MAC=$3 # MAC address of forwarding receiver in VM B
FWD_SEND_MAC=$4 # MAC address of forwarding sender in VM B
RATE=$5 # packet rate in percentage
PKT_SIZE=$6 # packet size
+ETH1=$7
+ETH2=$8
+
+DPDK_VERSION="dpdk-17.02"
+PKTGEN_VERSION="pktgen-3.2.12"
load_modules()
@@ -31,13 +36,13 @@ load_modules()
if lsmod | grep "igb_uio" &> /dev/null ; then
echo "igb_uio module is loaded"
else
- insmod /dpdk/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
+ insmod /opt/tempT/$DPDK_VERSION/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
fi
if lsmod | grep "rte_kni" &> /dev/null ; then
echo "rte_kni module is loaded"
else
- insmod /dpdk/x86_64-native-linuxapp-gcc/kmod/rte_kni.ko
+ insmod /opt/tempT/$DPDK_VERSION/x86_64-native-linuxapp-gcc/kmod/rte_kni.ko
fi
}
@@ -48,8 +53,10 @@ change_permissions()
}
add_interface_to_dpdk(){
+ ip link set $ETH1 down
+ ip link set $ETH2 down
interfaces=$(lspci |grep Eth |tail -n +2 |awk '{print $1}')
- /dpdk/tools/dpdk-devbind.py --bind=igb_uio $interfaces
+ /opt/tempT/$DPDK_VERSION/usertools/dpdk-devbind.py --bind=igb_uio $interfaces
}
@@ -106,20 +113,14 @@ spawn ./app/app/x86_64-native-linuxapp-gcc/pktgen -c 0x07 -n 4 -b $blacklist --
expect "Pktgen>"
send "\n"
expect "Pktgen>"
-send "screen on\n"
+send "on\n"
expect "Pktgen>"
set count 10
while { $count } {
send "page latency\n"
- expect {
- timeout { send "\n" }
- -regexp {..*} {
- set result "${result}$expect_out(0,string)"
- set timeout 1
- exp_continue
- }
- "Pktgen>"
- }
+ expect -re "(..*)"
+ set result "${result}$expect_out(0,string)"
+ set timeout 1
set count [expr $count-1]
}
send "stop 0\n"
@@ -136,7 +137,7 @@ EOF
run_pktgen()
{
blacklist=$(lspci |grep Eth |awk '{print $1}'|head -1)
- cd /pktgen-dpdk
+ cd /opt/tempT/$PKTGEN_VERSION
touch /home/ubuntu/result.log
result_log="/home/ubuntu/result.log"
sudo expect /home/ubuntu/pktgen.exp $blacklist $result_log
@@ -153,4 +154,3 @@ main()
}
main
-
diff --git a/yardstick/benchmark/scenarios/networking/pktgen_dpdk_throughput.py b/yardstick/benchmark/scenarios/networking/pktgen_dpdk_throughput.py
index 497e59ee8..97b9cf73f 100644
--- a/yardstick/benchmark/scenarios/networking/pktgen_dpdk_throughput.py
+++ b/yardstick/benchmark/scenarios/networking/pktgen_dpdk_throughput.py
@@ -143,11 +143,11 @@ class PktgenDPDK(base.Scenario):
cmd = "ip a | grep eth1 2>/dev/null"
LOG.debug("Executing command: %s in %s", cmd, host)
if "server" in host:
- status, stdout, stderr = self.server.execute(cmd)
+ _, stdout, _ = self.server.execute(cmd)
if stdout:
is_run = False
else:
- status, stdout, stderr = self.client.execute(cmd)
+ _, stdout, _ = self.client.execute(cmd)
if stdout:
is_run = False
@@ -222,5 +222,5 @@ class PktgenDPDK(base.Scenario):
ppm += (sent - received) % sent > 0
LOG.debug("Lost packets %d - Lost ppm %d", (sent - received), ppm)
sla_max_ppm = int(self.scenario_cfg["sla"]["max_ppm"])
- assert ppm <= sla_max_ppm, "ppm %d > sla_max_ppm %d; " \
- % (ppm, sla_max_ppm)
+ self.verify_SLA(ppm <= sla_max_ppm, "ppm %d > sla_max_ppm %d; "
+ % (ppm, sla_max_ppm))
diff --git a/yardstick/benchmark/scenarios/networking/sfc_openstack.py b/yardstick/benchmark/scenarios/networking/sfc_openstack.py
index d5feabbbe..aaab2131a 100644
--- a/yardstick/benchmark/scenarios/networking/sfc_openstack.py
+++ b/yardstick/benchmark/scenarios/networking/sfc_openstack.py
@@ -34,11 +34,13 @@ def get_credentials(service): # pragma: no cover
# The most common way to pass these info to the script is to do it through
# environment variables.
+ # NOTE(ralonsoh): OS_TENANT_NAME is deprecated.
+ project_name = os.environ.get('OS_PROJECT_NAME', 'admin')
creds.update({
"username": os.environ.get('OS_USERNAME', "admin"),
password: os.environ.get("OS_PASSWORD", 'admin'),
"auth_url": os.environ.get("OS_AUTH_URL"),
- tenant: os.environ.get("OS_TENANT_NAME", "admin"),
+ tenant: os.environ.get("OS_TENANT_NAME", project_name),
})
cacert = os.environ.get("OS_CACERT")
if cacert is not None:
@@ -59,7 +61,7 @@ def get_instances(nova_client): # pragma: no cover
try:
instances = nova_client.servers.list(search_opts={'all_tenants': 1})
return instances
- except Exception as e:
+ except Exception as e: # pylint: disable=broad-except
print("Error [get_instances(nova_client)]:", e)
return None
@@ -72,7 +74,7 @@ def get_SFs(nova_client): # pragma: no cover
if "sfc_test" not in instance.name:
SFs.append(instance)
return SFs
- except Exception as e:
+ except Exception as e: # pylint: disable=broad-except
print("Error [get_SFs(nova_client)]:", e)
return None
@@ -93,7 +95,7 @@ def create_floating_ips(neutron_client): # pragma: no cover
ip_json = neutron_client.create_floatingip({'floatingip': props})
fip_addr = ip_json['floatingip']['floating_ip_address']
ips.append(fip_addr)
- except Exception as e:
+ except Exception as e: # pylint: disable=broad-except
print("Error [create_floating_ip(neutron_client)]:", e)
return None
return ips
@@ -106,7 +108,7 @@ def floatIPtoSFs(SFs, floatips): # pragma: no cover
SF.add_floating_ip(floatips[i])
i = i + 1
return True
- except Exception as e:
+ except Exception as e: # pylint: disable=broad-except
print(("Error [add_floating_ip(nova_client, '%s', '%s')]:" %
(SF, floatips[i]), e))
return False
@@ -122,7 +124,3 @@ def get_an_IP(): # pragma: no cover
floatips = create_floating_ips(neutron_client)
floatIPtoSFs(SFs, floatips)
return floatips
-
-
-if __name__ == '__main__': # pragma: no cover
- get_an_IP()
diff --git a/yardstick/benchmark/scenarios/networking/testpmd_fwd.bash b/yardstick/benchmark/scenarios/networking/testpmd_fwd.bash
index 247a8a833..30b63a734 100644
--- a/yardstick/benchmark/scenarios/networking/testpmd_fwd.bash
+++ b/yardstick/benchmark/scenarios/networking/testpmd_fwd.bash
@@ -13,6 +13,10 @@ set -e
# Commandline arguments
DST_MAC=$1 # MAC address of the peer port
+ETH1=$2
+ETH2=$3
+
+DPDK_VERSION="dpdk-17.02"
load_modules()
{
@@ -25,13 +29,13 @@ load_modules()
if lsmod | grep "igb_uio" &> /dev/null ; then
echo "igb_uio module is loaded"
else
- insmod /dpdk/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
+ insmod /opt/tempT/$DPDK_VERSION/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
fi
if lsmod | grep "rte_kni" &> /dev/null ; then
echo "rte_kni module is loaded"
else
- insmod /dpdk/x86_64-native-linuxapp-gcc/kmod/rte_kni.ko
+ insmod /opt/tempT/$DPDK_VERSION/x86_64-native-linuxapp-gcc/kmod/rte_kni.ko
fi
}
@@ -42,15 +46,17 @@ change_permissions()
}
add_interface_to_dpdk(){
+ ip link set $ETH1 down
+ ip link set $ETH2 down
interfaces=$(lspci |grep Eth |tail -n +2 |awk '{print $1}')
- /dpdk/tools/dpdk-devbind.py --bind=igb_uio $interfaces
+ /opt/tempT/$DPDK_VERSION/usertools//dpdk-devbind.py --bind=igb_uio $interfaces
}
run_testpmd()
{
blacklist=$(lspci |grep Eth |awk '{print $1}'|head -1)
- cd /dpdk
- sudo ./destdir/bin/testpmd -c 0x07 -n 4 -b $blacklist -- -a --eth-peer=1,$DST_MAC --forward-mode=mac
+ cd /opt/tempT/$DPDK_VERSION/x86_64-native-linuxapp-gcc/app
+ sudo ./testpmd -c 0x07 -n 4 -b $blacklist -- -a --eth-peer=1,$DST_MAC --forward-mode=mac
}
main()
diff --git a/yardstick/benchmark/scenarios/networking/vnf_generic.py b/yardstick/benchmark/scenarios/networking/vnf_generic.py
index b94bfc9ab..c5e75d093 100644
--- a/yardstick/benchmark/scenarios/networking/vnf_generic.py
+++ b/yardstick/benchmark/scenarios/networking/vnf_generic.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,168 +11,116 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-""" NSPerf specific scenario definition """
-
-from __future__ import absolute_import
-
-import logging
-import errno
-
-import ipaddress
import copy
+import ipaddress
+from itertools import chain
+import logging
import os
import sys
-import re
-from itertools import chain
+import time
import six
import yaml
-from collections import defaultdict
-from yardstick.benchmark.scenarios import base
+from yardstick.benchmark.contexts import base as context_base
+from yardstick.benchmark.scenarios import base as scenario_base
from yardstick.common.constants import LOG_DIR
+from yardstick.common import exceptions
from yardstick.common.process import terminate_children
-from yardstick.common.utils import import_modules_from_package, itersubclasses
-from yardstick.common.yaml_loader import yaml_load
+from yardstick.common import utils
from yardstick.network_services.collector.subscriber import Collector
from yardstick.network_services.vnf_generic import vnfdgen
from yardstick.network_services.vnf_generic.vnf.base import GenericVNF
-from yardstick.network_services.traffic_profile.base import TrafficProfile
+from yardstick.network_services import traffic_profile
+from yardstick.network_services.traffic_profile import base as tprofile_base
from yardstick.network_services.utils import get_nsb_option
from yardstick import ssh
-LOG = logging.getLogger(__name__)
-
-
-class SSHError(Exception):
- """Class handles ssh connection error exception"""
- pass
-
-
-class SSHTimeout(SSHError):
- """Class handles ssh connection timeout exception"""
- pass
+traffic_profile.register_modules()
-class IncorrectConfig(Exception):
- """Class handles incorrect configuration during setup"""
- pass
-
-
-class IncorrectSetup(Exception):
- """Class handles incorrect setup during setup"""
- pass
-
-
-class SshManager(object):
- def __init__(self, node, timeout=120):
- super(SshManager, self).__init__()
- self.node = node
- self.conn = None
- self.timeout = timeout
-
- def __enter__(self):
- """
- args -> network device mappings
- returns -> ssh connection ready to be used
- """
- try:
- self.conn = ssh.SSH.from_node(self.node)
- self.conn.wait(timeout=self.timeout)
- except SSHError as error:
- LOG.info("connect failed to %s, due to %s", self.node["ip"], error)
- # self.conn defaults to None
- return self.conn
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- if self.conn:
- self.conn.close()
-
-
-def find_relative_file(path, task_path):
- """
- Find file in one of places: in abs of path or
- relative to TC scenario file. In this order.
-
- :param path:
- :param task_path:
- :return str: full path to file
- """
- # fixme: create schema to validate all fields have been provided
- for lookup in [os.path.abspath(path), os.path.join(task_path, path)]:
- try:
- with open(lookup):
- return lookup
- except IOError:
- pass
- raise IOError(errno.ENOENT, 'Unable to find {} file'.format(path))
-
-
-def open_relative_file(path, task_path):
- try:
- return open(path)
- except IOError as e:
- if e.errno == errno.ENOENT:
- return open(os.path.join(task_path, path))
- raise
+LOG = logging.getLogger(__name__)
-class NetworkServiceTestCase(base.Scenario):
- """Class handles Generic framework to do pre-deployment VNF &
- Network service testing """
+class NetworkServiceBase(scenario_base.Scenario):
+ """Base class for Network service testing scenarios"""
- __scenario_type__ = "NSPerf"
+ __scenario_type__ = ""
- def __init__(self, scenario_cfg, context_cfg): # Yardstick API
- super(NetworkServiceTestCase, self).__init__()
+ def __init__(self, scenario_cfg, context_cfg): # pragma: no cover
+ super(NetworkServiceBase, self).__init__()
self.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- # fixme: create schema to validate all fields have been provided
- with open_relative_file(scenario_cfg["topology"],
- scenario_cfg['task_path']) as stream:
- topology_yaml = yaml_load(stream)
-
- self.topology = topology_yaml["nsd:nsd-catalog"]["nsd"][0]
+ self._render_topology()
self.vnfs = []
self.collector = None
self.traffic_profile = None
self.node_netdevs = {}
+ self.bin_path = get_nsb_option('bin_path', '')
+
+ def run(self, *args):
+ pass
+
+ def teardown(self):
+ """ Stop the collector and terminate VNF & TG instance
+
+ :return
+ """
+
+ try:
+ try:
+ self.collector.stop()
+ for vnf in self.vnfs:
+ LOG.info("Stopping %s", vnf.name)
+ vnf.terminate()
+ LOG.debug("all VNFs terminated: %s", ", ".join(vnf.name for vnf in self.vnfs))
+ finally:
+ terminate_children()
+ except Exception:
+ # catch any exception in teardown and convert to simple exception
+ # never pass exceptions back to multiprocessing, because some exceptions can
+ # be unpicklable
+ # https://bugs.python.org/issue9400
+ LOG.exception("")
+ raise RuntimeError("Error in teardown")
+
+ def is_ended(self):
+ return self.traffic_profile is not None and self.traffic_profile.is_ended()
def _get_ip_flow_range(self, ip_start_range):
+ """Retrieve a CIDR first and last viable IPs
- # IP range is specified as 'x.x.x.x-y.y.y.y'
+ :param ip_start_range: could be the IP range itself or a dictionary
+ with the host name and the port.
+ :return: (str) IP range (min, max) with this format "x.x.x.x-y.y.y.y"
+ """
if isinstance(ip_start_range, six.string_types):
return ip_start_range
- node_name, range_or_interface = next(iter(ip_start_range.items()), (None, '0.0.0.0'))
+ node_name, range_or_interface = next(iter(ip_start_range.items()),
+ (None, '0.0.0.0'))
if node_name is None:
- # we are manually specifying the range
- ip_addr_range = range_or_interface
+ return range_or_interface
+
+ node = self.context_cfg['nodes'].get(node_name, {})
+ interface = node.get('interfaces', {}).get(range_or_interface)
+ if interface:
+ ip = interface['local_ip']
+ mask = interface['netmask']
else:
- node = self.context_cfg["nodes"].get(node_name, {})
- try:
- # the ip_range is the interface name
- interface = node.get("interfaces", {})[range_or_interface]
- except KeyError:
- ip = "0.0.0.0"
- mask = "255.255.255.0"
- else:
- ip = interface["local_ip"]
- # we can't default these values, they must both exist to be valid
- mask = interface["netmask"]
-
- ipaddr = ipaddress.ip_network(six.text_type('{}/{}'.format(ip, mask)), strict=False)
- hosts = list(ipaddr.hosts())
- if len(hosts) > 2:
- # skip the first host in case of gateway
- ip_addr_range = "{}-{}".format(hosts[1], hosts[-1])
- else:
- LOG.warning("Only single IP in range %s", ipaddr)
- # fall back to single IP range
- ip_addr_range = ip
+ ip = '0.0.0.0'
+ mask = '255.255.255.0'
+
+ ipaddr = ipaddress.ip_network(
+ six.text_type('{}/{}'.format(ip, mask)), strict=False)
+ if ipaddr.prefixlen + 2 < ipaddr.max_prefixlen:
+ ip_addr_range = '{}-{}'.format(ipaddr[2], ipaddr[-2])
+ else:
+ LOG.warning('Only single IP in range %s', ipaddr)
+ ip_addr_range = ip
return ip_addr_range
def _get_traffic_flow(self):
@@ -196,7 +144,15 @@ class NetworkServiceTestCase(base.Scenario):
for index, dst_port in enumerate(fflow.get("dst_port", [])):
flow["dst_port_{}".format(index)] = dst_port
- flow["count"] = fflow["count"]
+ if "count" in fflow:
+ flow["count"] = fflow["count"]
+
+ if "srcseed" in fflow:
+ flow["srcseed"] = fflow["srcseed"]
+
+ if "dstseed" in fflow:
+ flow["dstseed"] = fflow["dstseed"]
+
except KeyError:
flow = {}
return {"flow": flow}
@@ -208,43 +164,95 @@ class NetworkServiceTestCase(base.Scenario):
imix = {}
return imix
+ def _get_ip_priority(self):
+ try:
+ priority = self.scenario_cfg['options']['priority']
+ except KeyError:
+ priority = {}
+ return priority
+
def _get_traffic_profile(self):
profile = self.scenario_cfg["traffic_profile"]
path = self.scenario_cfg["task_path"]
- with open_relative_file(profile, path) as infile:
+ with utils.open_relative_file(profile, path) as infile:
return infile.read()
+ def _get_duration(self):
+ options = self.scenario_cfg.get('options', {})
+ return options.get('duration',
+ tprofile_base.TrafficProfileConfig.DEFAULT_DURATION)
+
+ def _key_list_to_dict(self, key, value_list):
+ value_dict = {}
+ try:
+ for index, count in enumerate(value_list[key]):
+ value_dict["{}_{}".format(key, index)] = count
+ except KeyError:
+ value_dict = {}
+
+ return value_dict
+
+ def _get_simulated_users(self):
+ users = self.scenario_cfg.get("options", {}).get("simulated_users", {})
+ simulated_users = self._key_list_to_dict("uplink", users)
+ return {"simulated_users": simulated_users}
+
+ def _get_page_object(self):
+ objects = self.scenario_cfg.get("options", {}).get("page_object", {})
+ page_object = self._key_list_to_dict("uplink", objects)
+ return {"page_object": page_object}
+
def _fill_traffic_profile(self):
- traffic_mapping = self._get_traffic_profile()
- traffic_map_data = {
+ tprofile = self._get_traffic_profile()
+ extra_args = self.scenario_cfg.get('extra_args', {})
+ tprofile_data = {
'flow': self._get_traffic_flow(),
'imix': self._get_traffic_imix(),
- TrafficProfile.UPLINK: {},
- TrafficProfile.DOWNLINK: {},
- }
+ 'priority': self._get_ip_priority(),
+ tprofile_base.TrafficProfile.UPLINK: {},
+ tprofile_base.TrafficProfile.DOWNLINK: {},
+ 'extra_args': extra_args,
+ 'duration': self._get_duration(),
+ 'page_object': self._get_page_object(),
+ 'simulated_users': self._get_simulated_users()}
+ traffic_vnfd = vnfdgen.generate_vnfd(tprofile, tprofile_data)
+
+ traffic_config = \
+ self.scenario_cfg.get("options", {}).get("traffic_config", {})
+
+ traffic_vnfd.setdefault("traffic_profile", {})
+ traffic_vnfd["traffic_profile"].update(traffic_config)
+
+ self.traffic_profile = \
+ tprofile_base.TrafficProfile.get(traffic_vnfd)
+
+ def _get_topology(self):
+ topology = self.scenario_cfg["topology"]
+ path = self.scenario_cfg["task_path"]
+ with utils.open_relative_file(topology, path) as infile:
+ return infile.read()
- traffic_vnfd = vnfdgen.generate_vnfd(traffic_mapping, traffic_map_data)
- self.traffic_profile = TrafficProfile.get(traffic_vnfd)
- return self.traffic_profile
+ def _render_topology(self):
+ topology = self._get_topology()
+ topology_args = self.scenario_cfg.get('extra_args', {})
+ topolgy_data = {
+ 'extra_args': topology_args
+ }
+ topology_yaml = vnfdgen.generate_vnfd(topology, topolgy_data)
+ self.topology = topology_yaml["nsd:nsd-catalog"]["nsd"][0]
- def _find_vnf_name_from_id(self, vnf_id):
+ def _find_vnf_name_from_id(self, vnf_id): # pragma: no cover
return next((vnfd["vnfd-id-ref"]
for vnfd in self.topology["constituent-vnfd"]
if vnf_id == vnfd["member-vnf-index"]), None)
- @staticmethod
- def get_vld_networks(networks):
- # network name is vld_id
- vld_map = {}
- for name, n in networks.items():
- try:
- vld_map[n['vld_id']] = n
- except KeyError:
- vld_map[name] = n
- return vld_map
+ def _find_vnfd_from_vnf_idx(self, vnf_id): # pragma: no cover
+ return next((vnfd
+ for vnfd in self.topology["constituent-vnfd"]
+ if vnf_id == vnfd["member-vnf-index"]), None)
@staticmethod
- def find_node_if(nodes, name, if_name, vld_id):
+ def find_node_if(nodes, name, if_name, vld_id): # pragma: no cover
try:
# check for xe0, xe1
intf = nodes[name]["interfaces"][if_name]
@@ -260,8 +268,9 @@ class NetworkServiceTestCase(base.Scenario):
try:
node0_data, node1_data = vld["vnfd-connection-point-ref"]
except (ValueError, TypeError):
- raise IncorrectConfig("Topology file corrupted, "
- "wrong endpoint count for connection")
+ raise exceptions.IncorrectConfig(
+ error_msg='Topology file corrupted, wrong endpoint count '
+ 'for connection')
node0_name = self._find_vnf_name_from_id(node0_data["member-vnf-index-ref"])
node1_name = self._find_vnf_name_from_id(node1_data["member-vnf-index-ref"])
@@ -293,7 +302,9 @@ class NetworkServiceTestCase(base.Scenario):
node1_if["peer_ifname"] = node0_if_name
# just load the network
- vld_networks = self.get_vld_networks(self.context_cfg["networks"])
+ vld_networks = {n.get('vld_id', name): n for name, n in
+ self.context_cfg["networks"].items()}
+
node0_if["network"] = vld_networks.get(vld["id"], {})
node1_if["network"] = vld_networks.get(vld["id"], {})
@@ -305,15 +316,17 @@ class NetworkServiceTestCase(base.Scenario):
except KeyError:
LOG.exception("")
- raise IncorrectConfig("Required interface not found, "
- "topology file corrupted")
+ raise exceptions.IncorrectConfig(
+ error_msg='Required interface not found, topology file '
+ 'corrupted')
for vld in self.topology['vld']:
try:
node0_data, node1_data = vld["vnfd-connection-point-ref"]
except (ValueError, TypeError):
- raise IncorrectConfig("Topology file corrupted, "
- "wrong endpoint count for connection")
+ raise exceptions.IncorrectConfig(
+ error_msg='Topology file corrupted, wrong endpoint count '
+ 'for connection')
node0_name = self._find_vnf_name_from_id(node0_data["member-vnf-index-ref"])
node1_name = self._find_vnf_name_from_id(node1_data["member-vnf-index-ref"])
@@ -332,55 +345,14 @@ class NetworkServiceTestCase(base.Scenario):
node0_if["peer_intf"] = node1_copy
node1_if["peer_intf"] = node0_copy
- def _find_vnfd_from_vnf_idx(self, vnf_idx):
- return next((vnfd for vnfd in self.topology["constituent-vnfd"]
- if vnf_idx == vnfd["member-vnf-index"]), None)
-
- def _update_context_with_topology(self):
+ def _update_context_with_topology(self): # pragma: no cover
for vnfd in self.topology["constituent-vnfd"]:
vnf_idx = vnfd["member-vnf-index"]
vnf_name = self._find_vnf_name_from_id(vnf_idx)
vnfd = self._find_vnfd_from_vnf_idx(vnf_idx)
self.context_cfg["nodes"][vnf_name].update(vnfd)
- def _probe_netdevs(self, node, node_dict, timeout=120):
- try:
- return self.node_netdevs[node]
- except KeyError:
- pass
-
- netdevs = {}
- cmd = "PATH=$PATH:/sbin:/usr/sbin ip addr show"
-
- with SshManager(node_dict, timeout=timeout) as conn:
- if conn:
- exit_status = conn.execute(cmd)[0]
- if exit_status != 0:
- raise IncorrectSetup("Node's %s lacks ip tool." % node)
- exit_status, stdout, _ = conn.execute(
- self.FIND_NETDEVICE_STRING)
- if exit_status != 0:
- raise IncorrectSetup(
- "Cannot find netdev info in sysfs" % node)
- netdevs = node_dict['netdevs'] = self.parse_netdev_info(stdout)
-
- self.node_netdevs[node] = netdevs
- return netdevs
-
- @classmethod
- def _probe_missing_values(cls, netdevs, network):
-
- mac_lower = network['local_mac'].lower()
- for netdev in netdevs.values():
- if netdev['address'].lower() != mac_lower:
- continue
- network.update({
- 'driver': netdev['driver'],
- 'vpci': netdev['pci_bus_id'],
- 'ifindex': netdev['ifindex'],
- })
-
- def _generate_pod_yaml(self):
+ def _generate_pod_yaml(self): # pragma: no cover
context_yaml = os.path.join(LOG_DIR, "pod-{}.yaml".format(self.scenario_cfg['task_id']))
# convert OrderedDict to a list
# pod.yaml nodes is a list
@@ -394,7 +366,7 @@ class NetworkServiceTestCase(base.Scenario):
explicit_start=True)
@staticmethod
- def _serialize_node(node):
+ def _serialize_node(node): # pragma: no cover
new_node = copy.deepcopy(node)
# name field is required
# remove context suffix
@@ -405,96 +377,31 @@ class NetworkServiceTestCase(base.Scenario):
pass
return new_node
- TOPOLOGY_REQUIRED_KEYS = frozenset({
- "vpci", "local_ip", "netmask", "local_mac", "driver"})
-
def map_topology_to_infrastructure(self):
""" This method should verify if the available resources defined in pod.yaml
match the topology.yaml file.
:return: None. Side effect: context_cfg is updated
"""
- num_nodes = len(self.context_cfg["nodes"])
- # OpenStack instance creation time is probably proportional to the number
- # of instances
- timeout = 120 * num_nodes
- for node, node_dict in self.context_cfg["nodes"].items():
-
- for network in node_dict["interfaces"].values():
- missing = self.TOPOLOGY_REQUIRED_KEYS.difference(network)
- if not missing:
- continue
-
- # only ssh probe if there are missing values
- # ssh probe won't work on Ixia, so we had better define all our values
- try:
- netdevs = self._probe_netdevs(node, node_dict, timeout=timeout)
- except (SSHError, SSHTimeout):
- raise IncorrectConfig(
- "Unable to probe missing interface fields '%s', on node %s "
- "SSH Error" % (', '.join(missing), node))
- try:
- self._probe_missing_values(netdevs, network)
- except KeyError:
- pass
- else:
- missing = self.TOPOLOGY_REQUIRED_KEYS.difference(
- network)
- if missing:
- raise IncorrectConfig(
- "Require interface fields '%s' not found, topology file "
- "corrupted" % ', '.join(missing))
-
- # we have to generate pod.yaml here so we have vpci and driver
- self._generate_pod_yaml()
# 3. Use topology file to find connections & resolve dest address
self._resolve_topology()
self._update_context_with_topology()
- FIND_NETDEVICE_STRING = r"""find /sys/devices/pci* -type d -name net -exec sh -c '{ grep -sH ^ \
-$1/ifindex $1/address $1/operstate $1/device/vendor $1/device/device \
-$1/device/subsystem_vendor $1/device/subsystem_device ; \
-printf "%s/driver:" $1 ; basename $(readlink -s $1/device/driver); } \
-' sh \{\}/* \;
-"""
- BASE_ADAPTER_RE = re.compile(
- '^/sys/devices/(.*)/net/([^/]*)/([^:]*):(.*)$', re.M)
-
- @classmethod
- def parse_netdev_info(cls, stdout):
- network_devices = defaultdict(dict)
- matches = cls.BASE_ADAPTER_RE.findall(stdout)
- for bus_path, interface_name, name, value in matches:
- dirname, bus_id = os.path.split(bus_path)
- if 'virtio' in bus_id:
- # for some stupid reason VMs include virtio1/
- # in PCI device path
- bus_id = os.path.basename(dirname)
- # remove extra 'device/' from 'device/vendor,
- # device/subsystem_vendor', etc.
- if 'device/' in name:
- name = name.split('/')[1]
- network_devices[interface_name][name] = value
- network_devices[interface_name][
- 'interface_name'] = interface_name
- network_devices[interface_name]['pci_bus_id'] = bus_id
- # convert back to regular dict
- return dict(network_devices)
-
@classmethod
- def get_vnf_impl(cls, vnf_model_id):
+ def get_vnf_impl(cls, vnf_model_id): # pragma: no cover
""" Find the implementing class from vnf_model["vnf"]["name"] field
:param vnf_model_id: parsed vnfd model ID field
:return: subclass of GenericVNF
"""
- import_modules_from_package(
+ utils.import_modules_from_package(
"yardstick.network_services.vnf_generic.vnf")
expected_name = vnf_model_id
classes_found = []
def impl():
- for name, class_ in ((c.__name__, c) for c in itersubclasses(GenericVNF)):
+ for name, class_ in ((c.__name__, c) for c in
+ utils.itersubclasses(GenericVNF)):
if name == expected_name:
yield class_
classes_found.append(name)
@@ -504,11 +411,12 @@ printf "%s/driver:" $1 ; basename $(readlink -s $1/device/driver); } \
except StopIteration:
pass
- raise IncorrectConfig("No implementation for %s found in %s" %
- (expected_name, classes_found))
+ message = ('No implementation for %s found in %s'
+ % (expected_name, classes_found))
+ raise exceptions.IncorrectConfig(error_msg=message)
@staticmethod
- def create_interfaces_from_node(vnfd, node):
+ def create_interfaces_from_node(vnfd, node): # pragma: no cover
ext_intfs = vnfd["vdu"][0]["external-interface"] = []
# have to sort so xe0 goes first
for intf_name, intf in sorted(node['interfaces'].items()):
@@ -547,7 +455,7 @@ printf "%s/driver:" $1 ; basename $(readlink -s $1/device/driver); } \
context_cfg = self.context_cfg
vnfs = []
- # we assume OrderedDict for consistenct in instantiation
+ # we assume OrderedDict for consistency in instantiation
for node_name, node in context_cfg["nodes"].items():
LOG.debug(node)
try:
@@ -556,7 +464,7 @@ printf "%s/driver:" $1 ; basename $(readlink -s $1/device/driver); } \
LOG.debug("no model for %s, skipping", node_name)
continue
file_path = scenario_cfg['task_path']
- with open_relative_file(file_name, file_path) as stream:
+ with utils.open_relative_file(file_name, file_path) as stream:
vnf_model = stream.read()
vnfd = vnfdgen.generate_vnfd(vnf_model, node)
# TODO: here add extra context_cfg["nodes"] regardless of template
@@ -576,11 +484,26 @@ printf "%s/driver:" $1 ; basename $(readlink -s $1/device/driver); } \
self.vnfs = vnfs
return vnfs
- def setup(self):
- """ Setup infrastructure, provission VNFs & start traffic
+ def pre_run_wait_time(self, time_seconds): # pragma: no cover
+ """Time waited before executing the run method"""
+ time.sleep(time_seconds)
- :return:
- """
+ def post_run_wait_time(self, time_seconds): # pragma: no cover
+ """Time waited after executing the run method"""
+ pass
+
+
+class NetworkServiceTestCase(NetworkServiceBase):
+ """Class handles Generic framework to do pre-deployment VNF &
+ Network service testing """
+
+ __scenario_type__ = "NSPerf"
+
+ def __init__(self, scenario_cfg, context_cfg): # pragma: no cover
+ super(NetworkServiceTestCase, self).__init__(scenario_cfg, context_cfg)
+
+ def setup(self):
+ """Setup infrastructure, provission VNFs & start traffic"""
# 1. Verify if infrastructure mapping can meet topology
self.map_topology_to_infrastructure()
# 1a. Load VNF models
@@ -606,13 +529,16 @@ printf "%s/driver:" $1 ; basename $(readlink -s $1/device/driver); } \
vnf.terminate()
raise
+ # we have to generate pod.yaml here after VNF has probed so we know vpci and driver
+ self._generate_pod_yaml()
+
# 3. Run experiment
# Start listeners first to avoid losing packets
for traffic_gen in traffic_runners:
traffic_gen.listen_traffic(self.traffic_profile)
# register collector with yardstick for KPI collection.
- self.collector = Collector(self.vnfs, self.context_cfg["nodes"], self.traffic_profile)
+ self.collector = Collector(self.vnfs, context_base.Context.get_physical_nodes())
self.collector.start()
# Start the actual traffic
@@ -634,25 +560,125 @@ printf "%s/driver:" $1 ; basename $(readlink -s $1/device/driver); } \
result.update(self.collector.get_kpi())
- def teardown(self):
- """ Stop the collector and terminate VNF & TG instance
- :return
+class NetworkServiceRFC2544(NetworkServiceBase):
+ """Class handles RFC2544 Network service testing"""
+
+ __scenario_type__ = "NSPerf-RFC2544"
+
+ def __init__(self, scenario_cfg, context_cfg): # pragma: no cover
+ super(NetworkServiceRFC2544, self).__init__(scenario_cfg, context_cfg)
+
+ def setup(self):
+ """Setup infrastructure, provision VNFs"""
+ self.map_topology_to_infrastructure()
+ self.load_vnf_models()
+
+ traffic_runners = [vnf for vnf in self.vnfs if vnf.runs_traffic]
+ non_traffic_runners = [vnf for vnf in self.vnfs if not vnf.runs_traffic]
+ try:
+ for vnf in chain(traffic_runners, non_traffic_runners):
+ LOG.info("Instantiating %s", vnf.name)
+ vnf.instantiate(self.scenario_cfg, self.context_cfg)
+ LOG.info("Waiting for %s to instantiate", vnf.name)
+ vnf.wait_for_instantiate()
+ except:
+ LOG.exception("")
+ for vnf in self.vnfs:
+ vnf.terminate()
+ raise
+
+ self._generate_pod_yaml()
+
+ def run(self, output):
+ """ Run experiment
+
+ :param output: scenario output to push results
+ :return: None
"""
+ self._fill_traffic_profile()
+
+ traffic_runners = [vnf for vnf in self.vnfs if vnf.runs_traffic]
+
+ for traffic_gen in traffic_runners:
+ traffic_gen.listen_traffic(self.traffic_profile)
+
+ self.collector = Collector(self.vnfs,
+ context_base.Context.get_physical_nodes())
+ self.collector.start()
+
+ test_completed = False
+ while not test_completed:
+ for traffic_gen in traffic_runners:
+ LOG.info("Run traffic on %s", traffic_gen.name)
+ traffic_gen.run_traffic_once(self.traffic_profile)
+
+ test_completed = True
+ for traffic_gen in traffic_runners:
+ # wait for all tg to complete running traffic
+ status = traffic_gen.wait_on_traffic()
+ LOG.info("Run traffic on %s complete status=%s",
+ traffic_gen.name, status)
+ if status == 'CONTINUE':
+ # continue running if at least one tg is running
+ test_completed = False
+
+ output.push(self.collector.get_kpi())
+
+ self.collector.stop()
+
+class NetworkServiceRFC3511(NetworkServiceBase):
+ """Class handles RFC3511 Network service testing"""
+
+ __scenario_type__ = "NSPerf-RFC3511"
+
+ def __init__(self, scenario_cfg, context_cfg): # pragma: no cover
+ super(NetworkServiceRFC3511, self).__init__(scenario_cfg, context_cfg)
+
+ def setup(self):
+ """Setup infrastructure, provision VNFs"""
+ self.map_topology_to_infrastructure()
+ self.load_vnf_models()
+
+ traffic_runners = [vnf for vnf in self.vnfs if vnf.runs_traffic]
+ non_traffic_runners = [vnf for vnf in self.vnfs if not vnf.runs_traffic]
try:
- try:
- self.collector.stop()
- for vnf in self.vnfs:
- LOG.info("Stopping %s", vnf.name)
- vnf.terminate()
- LOG.debug("all VNFs terminated: %s", ", ".join(vnf.name for vnf in self.vnfs))
- finally:
- terminate_children()
- except Exception:
- # catch any exception in teardown and convert to simple exception
- # never pass exceptions back to multiprocessing, because some exceptions can
- # be unpicklable
- # https://bugs.python.org/issue9400
+ for vnf in chain(traffic_runners, non_traffic_runners):
+ LOG.info("Instantiating %s", vnf.name)
+ vnf.instantiate(self.scenario_cfg, self.context_cfg)
+ LOG.info("Waiting for %s to instantiate", vnf.name)
+ vnf.wait_for_instantiate()
+ except:
LOG.exception("")
- raise RuntimeError("Error in teardown")
+ for vnf in self.vnfs:
+ vnf.terminate()
+ raise
+
+ self._generate_pod_yaml()
+
+ def run(self, output):
+ """ Run experiment
+
+ :param output: scenario output to push results
+ :return: None
+ """
+
+ self._fill_traffic_profile()
+
+ traffic_runners = [vnf for vnf in self.vnfs if vnf.runs_traffic]
+
+ for traffic_gen in traffic_runners:
+ traffic_gen.listen_traffic(self.traffic_profile)
+
+ self.collector = Collector(self.vnfs,
+ context_base.Context.get_physical_nodes())
+ self.collector.start()
+
+ for traffic_gen in traffic_runners:
+ LOG.info("Run traffic on %s", traffic_gen.name)
+ traffic_gen.run_traffic(self.traffic_profile)
+
+ output.push(self.collector.get_kpi())
+
+ self.collector.stop()
diff --git a/yardstick/benchmark/scenarios/networking/vsperf.py b/yardstick/benchmark/scenarios/networking/vsperf.py
index 705544c41..8344b1595 100644
--- a/yardstick/benchmark/scenarios/networking/vsperf.py
+++ b/yardstick/benchmark/scenarios/networking/vsperf.py
@@ -193,37 +193,34 @@ class Vsperf(base.Scenario):
cmd += "--conf-file ~/vsperf.conf "
cmd += "--test-params=\"%s\"" % (';'.join(test_params))
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.client.execute(cmd)
-
- if status:
- raise RuntimeError(stderr)
+ self.client.run(cmd)
# get test results
cmd = "cat /tmp/results*/result.csv"
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.client.execute(cmd)
-
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.client.execute(cmd, raise_on_error=True)
# convert result.csv to JSON format
- reader = csv.DictReader(stdout.split('\r\n'))
- result.update(next(reader))
+ reader = csv.DictReader(stdout.split('\r\n'), strict=True)
+ try:
+ result.update(next(reader))
+ except StopIteration:
+ pass
# sla check; go through all defined SLAs and check if values measured
# by VSPERF are higher then those defined by SLAs
if 'sla' in self.scenario_cfg and \
'metrics' in self.scenario_cfg['sla']:
for metric in self.scenario_cfg['sla']['metrics'].split(','):
- assert metric in result, \
- '%s is not collected by VSPERF' % (metric)
- assert metric in self.scenario_cfg['sla'], \
- '%s is not defined in SLA' % (metric)
+ self.verify_SLA(metric in result,
+ '%s was not collected by VSPERF' % metric)
+ self.verify_SLA(metric in self.scenario_cfg['sla'],
+ '%s is not defined in SLA' % metric)
vs_res = float(result[metric])
sla_res = float(self.scenario_cfg['sla'][metric])
- assert vs_res >= sla_res, \
- 'VSPERF_%s(%f) < SLA_%s(%f)' % \
- (metric, vs_res, metric, sla_res)
+ self.verify_SLA(vs_res >= sla_res,
+ 'VSPERF_%s(%f) < SLA_%s(%f)'
+ % (metric, vs_res, metric, sla_res))
def teardown(self):
"""cleanup after the test execution"""
diff --git a/yardstick/benchmark/scenarios/networking/vsperf_dpdk.py b/yardstick/benchmark/scenarios/networking/vsperf_dpdk.py
index 454587829..d5c8a3bfe 100644
--- a/yardstick/benchmark/scenarios/networking/vsperf_dpdk.py
+++ b/yardstick/benchmark/scenarios/networking/vsperf_dpdk.py
@@ -205,22 +205,17 @@ class VsperfDPDK(base.Scenario):
self.client.send_command(cmd)
else:
cmd = "cat ~/.testpmd.macaddr.port1"
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.client.execute(cmd, raise_on_error=True)
self.tgen_port1_mac = stdout
+
cmd = "cat ~/.testpmd.macaddr.port2"
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.client.execute(cmd, raise_on_error=True)
self.tgen_port2_mac = stdout
cmd = "screen -d -m sudo -E bash ~/testpmd_vsperf.sh %s %s" % \
(self.moongen_port1_mac, self.moongen_port2_mac)
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.client.run(cmd)
time.sleep(1)
@@ -231,7 +226,7 @@ class VsperfDPDK(base.Scenario):
is_run = True
cmd = "ip a | grep %s 2>/dev/null" % (self.tg_port1)
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.client.execute(cmd)
+ _, stdout, _ = self.client.execute(cmd)
if stdout:
is_run = False
return is_run
@@ -245,7 +240,7 @@ class VsperfDPDK(base.Scenario):
self.setup()
# remove results from previous tests
- self.client.execute("rm -rf /tmp/results*")
+ self.client.run("rm -rf /tmp/results*", raise_on_error=False)
# get vsperf options
options = self.scenario_cfg['options']
@@ -291,9 +286,7 @@ class VsperfDPDK(base.Scenario):
cmd = "sshpass -p yardstick ssh-copy-id -o StrictHostKeyChecking=no " \
"root@%s -p 22" % (self.moongen_host_ip)
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.client.execute(cmd)
- if status:
- raise RuntimeError(stderr)
+ self.client.run(cmd)
# execute vsperf
cmd = "source ~/vsperfenv/bin/activate ; cd vswitchperf ; "
@@ -302,22 +295,19 @@ class VsperfDPDK(base.Scenario):
cmd += "--conf-file ~/vsperf.conf "
cmd += "--test-params=\"%s\"" % (';'.join(test_params))
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.client.execute(cmd)
-
- if status:
- raise RuntimeError(stderr)
+ self.client.run(cmd)
# get test results
cmd = "cat /tmp/results*/result.csv"
LOG.debug("Executing command: %s", cmd)
- status, stdout, stderr = self.client.execute(cmd)
-
- if status:
- raise RuntimeError(stderr)
+ _, stdout, _ = self.client.execute(cmd, raise_on_error=True)
# convert result.csv to JSON format
reader = csv.DictReader(stdout.split('\r\n'))
- result.update(next(reader))
+ try:
+ result.update(next(reader))
+ except StopIteration:
+ pass
result['nrFlows'] = multistream
# sla check; go through all defined SLAs and check if values measured
@@ -325,15 +315,15 @@ class VsperfDPDK(base.Scenario):
if 'sla' in self.scenario_cfg and \
'metrics' in self.scenario_cfg['sla']:
for metric in self.scenario_cfg['sla']['metrics'].split(','):
- assert metric in result, \
- '%s is not collected by VSPERF' % (metric)
- assert metric in self.scenario_cfg['sla'], \
- '%s is not defined in SLA' % (metric)
+ self.verify_SLA(metric in result,
+ '%s was not collected by VSPERF' % metric)
+ self.verify_SLA(metric in self.scenario_cfg['sla'],
+ '%s is not defined in SLA' % metric)
vs_res = float(result[metric])
sla_res = float(self.scenario_cfg['sla'][metric])
- assert vs_res >= sla_res, \
- 'VSPERF_%s(%f) < SLA_%s(%f)' % \
- (metric, vs_res, metric, sla_res)
+ self.verify_SLA(vs_res >= sla_res,
+ 'VSPERF_%s(%f) < SLA_%s(%f)'
+ % (metric, vs_res, metric, sla_res))
def teardown(self):
"""cleanup after the test execution"""
diff --git a/yardstick/benchmark/scenarios/parser/parser.py b/yardstick/benchmark/scenarios/parser/parser.py
index eb16833e5..a0f8e9e72 100644
--- a/yardstick/benchmark/scenarios/parser/parser.py
+++ b/yardstick/benchmark/scenarios/parser/parser.py
@@ -6,13 +6,13 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import print_function
-from __future__ import absolute_import
+
import pkg_resources
import logging
import subprocess
from yardstick.benchmark.scenarios import base
+
LOG = logging.getLogger(__name__)
@@ -20,7 +20,7 @@ class Parser(base.Scenario):
"""running Parser Yang-to-Tosca module as a tool
validating output against expected outcome
- more info https://wiki.opnfv.org/parser
+ more info https://wiki.opnfv.org/display/parser
"""
__scenario_type__ = "Parser"
@@ -63,7 +63,7 @@ class Parser(base.Scenario):
p = subprocess.Popen(cmd1, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
p.communicate()
- print("yangtotosca finished")
+ LOG.info("yangtotosca finished")
result['yangtotosca'] = "success" if p.returncode == 0 else "fail"
diff --git a/yardstick/benchmark/scenarios/storage/fio.py b/yardstick/benchmark/scenarios/storage/fio.py
index 125bc7ed4..c57c6edf2 100644
--- a/yardstick/benchmark/scenarios/storage/fio.py
+++ b/yardstick/benchmark/scenarios/storage/fio.py
@@ -124,12 +124,16 @@ class Fio(base.Scenario):
if mount_dir:
LOG.debug("Formating volume...")
- self.client.execute("sudo mkfs.ext4 /dev/vdb")
- cmd = "sudo mkdir %s" % mount_dir
- self.client.execute(cmd)
- LOG.debug("Mounting volume at: %s", mount_dir)
- cmd = "sudo mount /dev/vdb %s" % mount_dir
- self.client.execute(cmd)
+ _, stdout, _ = self.client.execute(
+ "lsblk -dps | grep -m 1 disk | awk '{print $1}'")
+ block_device = stdout.strip()
+ if block_device:
+ self.client.execute("sudo mkfs.ext4 %s" % block_device)
+ cmd = "sudo mkdir %s" % mount_dir
+ self.client.execute(cmd)
+ LOG.debug("Mounting volume at: %s", mount_dir)
+ cmd = "sudo mount %s %s" % (block_device, mount_dir)
+ self.client.execute(cmd)
self.setup_done = True
@@ -219,7 +223,7 @@ class Fio(base.Scenario):
sla_error += "%s %d < " \
"sla:%s(%d); " % (k, v, k, min_v)
- assert sla_error == "", sla_error
+ self.verify_SLA(sla_error == "", sla_error)
def _test():
diff --git a/yardstick/benchmark/scenarios/storage/storperf.py b/yardstick/benchmark/scenarios/storage/storperf.py
index f0b2361d6..5b8b00075 100644
--- a/yardstick/benchmark/scenarios/storage/storperf.py
+++ b/yardstick/benchmark/scenarios/storage/storperf.py
@@ -8,15 +8,16 @@
##############################################################################
from __future__ import absolute_import
-import os
import logging
+import os
import time
-import requests
from oslo_serialization import jsonutils
+import requests
from yardstick.benchmark.scenarios import base
+
LOG = logging.getLogger(__name__)
@@ -43,12 +44,6 @@ class StorPerf(base.Scenario):
wr: 100% Write, random access
rw: 70% Read / 30% write, random access
- nossd (Optional):
- Do not perform SSD style preconditioning.
-
- nowarm (Optional):
- Do not perform a warmup prior to measurements.
-
report = [job_id] (Optional):
Query the status of the supplied job_id and report on metrics.
If a workload is supplied, will report on only that subset.
@@ -79,17 +74,22 @@ class StorPerf(base.Scenario):
setup_query_content = jsonutils.loads(
setup_query.content)
- if setup_query_content["stack_created"]:
- self.setup_done = True
+ if ("stack_created" in setup_query_content and
+ setup_query_content["stack_created"]):
LOG.debug("stack_created: %s",
setup_query_content["stack_created"])
+ return True
+
+ return False
def setup(self):
"""Set the configuration."""
env_args = {}
env_args_payload_list = ["agent_count", "agent_flavor",
"public_network", "agent_image",
- "volume_size"]
+ "volume_size", "volume_type",
+ "volume_count", "availability_zone",
+ "stack_name", "subnet_CIDR"]
for env_argument in env_args_payload_list:
try:
@@ -102,30 +102,36 @@ class StorPerf(base.Scenario):
setup_res = requests.post('http://%s:5000/api/v1.0/configurations'
% self.target, json=env_args)
- setup_res_content = jsonutils.loads(
- setup_res.content)
if setup_res.status_code != 200:
- raise RuntimeError("Failed to create a stack, error message:",
- setup_res_content["message"])
+ LOG.error("Failed to create stack. %s: %s",
+ setup_res.status_code, setup_res.content)
+ raise RuntimeError("Failed to create stack. %s: %s" %
+ (setup_res.status_code, setup_res.content))
elif setup_res.status_code == 200:
+ setup_res_content = jsonutils.loads(setup_res.content)
LOG.info("stack_id: %s", setup_res_content["stack_id"])
- while not self.setup_done:
- self._query_setup_state()
- time.sleep(self.query_interval)
+ while not self._query_setup_state():
+ time.sleep(self.query_interval)
+
+ # We do not want to load the results of the disk initialization,
+ # so it is not added to the results here.
+ self.initialize_disks()
+ self.setup_done = True
def _query_job_state(self, job_id):
"""Query the status of the supplied job_id and report on metrics"""
LOG.info("Fetching report for %s...", job_id)
- report_res = requests.get('http://{}:5000/api/v1.0/jobs'.format
- (self.target),
+ report_res = requests.get('http://%s:5000/api/v1.0/jobs' % self.target,
params={'id': job_id, 'type': 'status'})
report_res_content = jsonutils.loads(
report_res.content)
if report_res.status_code != 200:
+ LOG.error("Failed to fetch report, error message: %s",
+ report_res_content["message"])
raise RuntimeError("Failed to fetch report, error message:",
report_res_content["message"])
else:
@@ -149,7 +155,8 @@ class StorPerf(base.Scenario):
if not self.setup_done:
self.setup()
- metadata = {"build_tag": "latest", "test_case": "opnfv_yardstick_tc074"}
+ metadata = {"build_tag": "latest",
+ "test_case": "opnfv_yardstick_tc074"}
metadata_payload_dict = {"pod_name": "NODE_NAME",
"scenario_name": "DEPLOY_SCENARIO",
"version": "YARDSTICK_BRANCH"}
@@ -162,7 +169,9 @@ class StorPerf(base.Scenario):
job_args = {"metadata": metadata}
job_args_payload_list = ["block_sizes", "queue_depths", "deadline",
- "target", "nossd", "nowarm", "workload"]
+ "target", "workload", "workloads",
+ "agent_count", "steady_state_samples"]
+ job_args["deadline"] = self.options["timeout"]
for job_argument in job_args_payload_list:
try:
@@ -170,16 +179,24 @@ class StorPerf(base.Scenario):
except KeyError:
pass
- LOG.info("Starting a job with parameters %s", job_args)
- job_res = requests.post('http://%s:5000/api/v1.0/jobs' % self.target,
- json=job_args)
+ api_version = "v1.0"
- job_res_content = jsonutils.loads(job_res.content)
+ if ("workloads" in job_args and
+ job_args["workloads"] is not None and
+ len(job_args["workloads"])) > 0:
+ api_version = "v2.0"
+
+ LOG.info("Starting a job with parameters %s", job_args)
+ job_res = requests.post('http://%s:5000/api/%s/jobs' % (self.target,
+ api_version), json=job_args)
if job_res.status_code != 200:
- raise RuntimeError("Failed to start a job, error message:",
- job_res_content["message"])
+ LOG.error("Failed to start job. %s: %s",
+ job_res.status_code, job_res.content)
+ raise RuntimeError("Failed to start job. %s: %s" %
+ (job_res.status_code, job_res.content))
elif job_res.status_code == 200:
+ job_res_content = jsonutils.loads(job_res.content)
job_id = job_res_content["job_id"]
LOG.info("Started job id: %s...", job_id)
@@ -187,15 +204,6 @@ class StorPerf(base.Scenario):
self._query_job_state(job_id)
time.sleep(self.query_interval)
- terminate_res = requests.delete('http://%s:5000/api/v1.0/jobs' %
- self.target)
-
- if terminate_res.status_code != 200:
- terminate_res_content = jsonutils.loads(
- terminate_res.content)
- raise RuntimeError("Failed to start a job, error message:",
- terminate_res_content["message"])
-
# TODO: Support using ETA to polls for completion.
# Read ETA, next poll in 1/2 ETA time slot.
# If ETA is greater than the maximum allowed job time,
@@ -209,21 +217,65 @@ class StorPerf(base.Scenario):
# else:
# time.sleep(int(esti_time)/2)
+ result_res = requests.get('http://%s:5000/api/v1.0/jobs?type='
+ 'metadata&id=%s' % (self.target, job_id))
+ result_res_content = jsonutils.loads(result_res.content)
+ if 'report' in result_res_content and \
+ 'steady_state' in result_res_content['report']['details']:
+ res = result_res_content['report']['details']['steady_state']
+ steady_state = res.values()[0]
+ LOG.info("Job %s completed with steady state %s",
+ job_id, steady_state)
+
result_res = requests.get('http://%s:5000/api/v1.0/jobs?id=%s' %
(self.target, job_id))
result_res_content = jsonutils.loads(
result_res.content)
-
result.update(result_res_content)
+ def initialize_disks(self):
+ """Fills the target with random data prior to executing workloads"""
+
+ job_args = {}
+ job_args_payload_list = ["target"]
+
+ for job_argument in job_args_payload_list:
+ try:
+ job_args[job_argument] = self.options[job_argument]
+ except KeyError:
+ pass
+
+ LOG.info("Starting initialization with parameters %s", job_args)
+ job_res = requests.post('http://%s:5000/api/v1.0/initializations' %
+ self.target, json=job_args)
+
+
+ if job_res.status_code != 200:
+ LOG.error("Failed to start initialization job, error message: %s: %s",
+ job_res.status_code, job_res.content)
+ raise RuntimeError("Failed to start initialization job, error message: %s: %s" %
+ (job_res.status_code, job_res.content))
+ elif job_res.status_code == 200:
+ job_res_content = jsonutils.loads(job_res.content)
+ job_id = job_res_content["job_id"]
+ LOG.info("Started initialization as job id: %s...", job_id)
+
+ while not self.job_completed:
+ self._query_job_state(job_id)
+ time.sleep(self.query_interval)
+
+ self.job_completed = False
+
def teardown(self):
"""Deletes the agent configuration and the stack"""
- teardown_res = requests.delete('http://%s:5000/api/v1.0/\
- configurations' % self.target)
+ teardown_res = requests.delete(
+ 'http://%s:5000/api/v1.0/configurations' % self.target)
if teardown_res.status_code == 400:
teardown_res_content = jsonutils.loads(
- teardown_res.content)
+ teardown_res.json_data)
+ LOG.error("Failed to reset environment, error message: %s",
+ teardown_res_content['message'])
raise RuntimeError("Failed to reset environment, error message:",
teardown_res_content['message'])
diff --git a/yardstick/cmd/cli.py b/yardstick/cmd/cli.py
index 67ce11451..0bc7c1617 100644
--- a/yardstick/cmd/cli.py
+++ b/yardstick/cmd/cli.py
@@ -28,6 +28,8 @@ from yardstick.cmd.commands import testcase
from yardstick.cmd.commands import plugin
from yardstick.cmd.commands import env
from yardstick.cmd.commands import report
+from yardstick.common import import_tools
+
CONF = cfg.CONF
cli_opts = [
@@ -53,7 +55,8 @@ def find_config_files(path_list):
return None
-class YardstickCLI(): # pragma: no cover
+@import_tools.decorator_banned_modules
+class YardstickCLI(object): # pragma: no cover
"""Command-line interface to yardstick"""
# Command categories
@@ -108,7 +111,7 @@ class YardstickCLI(): # pragma: no cover
# register subcommands to parse additional command line arguments
def parser(subparsers):
- self._add_command_parsers(YardstickCLI.categories, subparsers)
+ self._add_command_parsers(self.categories, subparsers)
category_opt = cfg.SubCommandOpt("category",
title="Command categories",
diff --git a/yardstick/cmd/commands/report.py b/yardstick/cmd/commands/report.py
index 47bf22a1f..4f057a05d 100644
--- a/yardstick/cmd/commands/report.py
+++ b/yardstick/cmd/commands/report.py
@@ -1,7 +1,7 @@
##############################################################################
-# Copyright (c) 2017 Rajesh Kudaka.
+# Copyright (c) 2017 Rajesh Kudaka <4k.rajesh@gmail.com>
+# Copyright (c) 2018 Intel Corporation.
#
-# Author: Rajesh Kudaka (4k.rajesh@gmail.com)
# 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
@@ -10,11 +10,7 @@
""" Handler for yardstick command 'report' """
-from __future__ import print_function
-
-from __future__ import absolute_import
-
-from yardstick.benchmark.core.report import Report
+from yardstick.benchmark.core import report
from yardstick.cmd.commands import change_osloobj_to_paras
from yardstick.common.utils import cliargs
@@ -22,12 +18,19 @@ from yardstick.common.utils import cliargs
class ReportCommands(object): # pragma: no cover
"""Report commands.
- Set of commands to manage benchmark tasks.
+ Set of commands to manage reports.
"""
@cliargs("task_id", type=str, help=" task id", nargs=1)
@cliargs("yaml_name", type=str, help=" Yaml file Name", nargs=1)
def do_generate(self, args):
- """Start a benchmark scenario."""
+ """Generate a report."""
+ param = change_osloobj_to_paras(args)
+ report.Report().generate(param)
+
+ @cliargs("task_id", type=str, help=" task id", nargs=1)
+ @cliargs("yaml_name", type=str, help=" Yaml file Name", nargs=1)
+ def do_generate_nsb(self, args):
+ """Generate a report using the NSB template."""
param = change_osloobj_to_paras(args)
- Report().generate(param)
+ report.Report().generate_nsb(param)
diff --git a/yardstick/cmd/commands/task.py b/yardstick/cmd/commands/task.py
index e2e8bf67d..c6379e586 100644
--- a/yardstick/cmd/commands/task.py
+++ b/yardstick/cmd/commands/task.py
@@ -7,10 +7,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-""" Handler for yardstick command 'task' """
-from __future__ import print_function
-from __future__ import absolute_import
-
import logging
from yardstick.benchmark.core.task import Task
@@ -29,6 +25,7 @@ class TaskCommands(object): # pragma: no cover
Set of commands to manage benchmark tasks.
"""
+ EXIT_TEST_FAILED = 2
@cliargs("inputfile", type=str, help="path to task or suite file", nargs=1)
@cliargs("--task-args", dest="task_args",
@@ -42,6 +39,8 @@ class TaskCommands(object): # pragma: no cover
action="store_true")
@cliargs("--parse-only", help="parse the config file and exit",
action="store_true")
+ @cliargs("--render-only", help="Render the tasks files, store the result "
+ "in the directory given and exit", type=str, dest="render_only")
@cliargs("--output-file", help="file where output is stored, default %s" %
output_file_default, default=output_file_default)
@cliargs("--suite", help="process test suite file instead of a task file",
@@ -50,19 +49,20 @@ class TaskCommands(object): # pragma: no cover
param = change_osloobj_to_paras(args)
self.output_file = param.output_file
- result = {}
LOG.info('Task START')
try:
result = Task().start(param, **kwargs)
- except Exception as e:
+ except Exception as e: # pylint: disable=broad-except
self._write_error_data(e)
- LOG.exception("")
-
- if result.get('result', {}).get('criteria') == 'PASS':
- LOG.info('Task SUCCESS')
- else:
LOG.info('Task FAILED')
- raise RuntimeError('Task Failed')
+ raise
+ else:
+ if result.get('result', {}).get('criteria') == 'PASS':
+ LOG.info('Task SUCCESS')
+ else:
+ LOG.info('Task FAILED')
+ # exit without backtrace
+ raise SystemExit(self.EXIT_TEST_FAILED)
def _write_error_data(self, error):
data = {'status': 2, 'result': str(error)}
diff --git a/yardstick/common/ansible_common.py b/yardstick/common/ansible_common.py
index 9a4426bf9..dee7044a5 100644
--- a/yardstick/common/ansible_common.py
+++ b/yardstick/common/ansible_common.py
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
-
import cgitb
import collections
import contextlib as cl
@@ -23,17 +21,18 @@ import os
from collections import Mapping, MutableMapping, Iterable, Callable, deque
from functools import partial
from itertools import chain
-from subprocess import CalledProcessError, Popen, PIPE
-from tempfile import NamedTemporaryFile
+import subprocess
+import tempfile
import six
-import six.moves.configparser as ConfigParser
+from six.moves import configparser
import yaml
from six import StringIO
from chainmap import ChainMap
+from oslo_serialization import jsonutils
from yardstick.common.utils import Timer
-
+from yardstick.common import constants as consts
cgitb.enable(format="text")
@@ -133,10 +132,9 @@ class CustomTemporaryFile(object):
else:
self.data_types = self.DEFAULT_DATA_TYPES
# must open "w+" so unicode is encoded correctly
- self.creator = partial(NamedTemporaryFile, mode="w+", delete=False,
- dir=directory,
- prefix=prefix,
- suffix=self.suffix)
+ self.creator = partial(
+ tempfile.NamedTemporaryFile, mode="w+", delete=False,
+ dir=directory, prefix=prefix, suffix=self.suffix)
def make_context(self, data, write_func, descriptor='data'):
return TempfileContext(data, write_func, descriptor, self.data_types,
@@ -190,8 +188,8 @@ class FileNameGenerator(object):
if not prefix.endswith('_'):
prefix += '_'
- temp_file = NamedTemporaryFile(delete=False, dir=directory,
- prefix=prefix, suffix=suffix)
+ temp_file = tempfile.NamedTemporaryFile(delete=False, dir=directory,
+ prefix=prefix, suffix=suffix)
with cl.closing(temp_file):
return temp_file.name
@@ -435,6 +433,7 @@ class AnsibleCommon(object):
ansible_dict = dict(os.environ, **{
"ANSIBLE_LOG_PATH": os.path.join(directory, log_file),
"ANSIBLE_LOG_BASE": directory,
+ "ANSIBLE_ROLES_PATH": consts.ANSIBLE_ROLES_PATH,
# # required for SSH to work
# "ANSIBLE_SSH_ARGS": "-o UserKnownHostsFile=/dev/null "
# "-o GSSAPIAuthentication=no "
@@ -472,7 +471,7 @@ class AnsibleCommon(object):
prefix = '_'.join([self.prefix, prefix, 'inventory'])
ini_temp_file = IniMapTemporaryFile(directory=directory, prefix=prefix)
- inventory_config = ConfigParser.ConfigParser(allow_no_value=True)
+ inventory_config = configparser.ConfigParser(allow_no_value=True)
# disable default lowercasing
inventory_config.optionxform = str
return ini_temp_file.make_context(self.inventory_dict, write_func,
@@ -507,6 +506,58 @@ class AnsibleCommon(object):
timeout = 1200.0
return timeout
+ def _generate_ansible_cfg(self, directory):
+ parser = configparser.ConfigParser()
+ parser.add_section('defaults')
+ parser.set('defaults', 'host_key_checking', 'False')
+
+ cfg_path = os.path.join(directory, 'ansible.cfg')
+ with open(cfg_path, 'w') as f:
+ parser.write(f)
+
+ def get_sut_info(self, directory, sut_dir='sut'):
+ if not os.path.isdir(directory):
+ raise OSError('No such directory: %s' % directory)
+
+ self._generate_ansible_cfg(directory)
+
+ prefix = 'tmp'
+ self.gen_inventory_ini_dict()
+ ini_file = self._gen_ansible_inventory_file(directory, prefix=prefix)
+ with ini_file as f:
+ inventory_path = str(f)
+
+ self._exec_get_sut_info_cmd(directory, inventory_path, sut_dir)
+
+ sut_dir = os.path.join(directory, sut_dir)
+ sut_info = self._gen_sut_info_dict(sut_dir)
+
+ return sut_info
+
+ def _exec_get_sut_info_cmd(self, directory, inventory_path, sut_dir):
+ cmd = ['ansible', 'all', '-m', 'setup', '-i',
+ inventory_path, '--tree', sut_dir]
+
+ proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, cwd=directory)
+ output, _ = proc.communicate()
+ retcode = proc.wait()
+ LOG.debug("exit status = %s", retcode)
+ if retcode != 0:
+ raise subprocess.CalledProcessError(retcode, cmd, output)
+
+ def _gen_sut_info_dict(self, sut_dir):
+ sut_info = {}
+
+ if os.path.isdir(sut_dir):
+ root, _, files = next(os.walk(sut_dir))
+ for filename in files:
+ abs_path = os.path.join(root, filename)
+ with open(abs_path) as f:
+ data = jsonutils.load(f)
+ sut_info[filename] = data
+
+ return sut_info
+
def execute_ansible(self, playbooks, directory, timeout=None,
extra_vars=None, ansible_check=False, prefix='tmp',
verbose=False):
@@ -516,7 +567,7 @@ class AnsibleCommon(object):
# playbook dir: use include to point to files in consts.ANSIBLE_DIR
if not os.path.isdir(directory):
- raise OSError("Not a directory, %s", directory)
+ raise OSError("Not a directory, %s" % directory)
timeout = self.get_timeout(timeout, self.default_timeout)
self.counter += 1
@@ -563,12 +614,13 @@ class AnsibleCommon(object):
# 'timeout': timeout / 2,
})
with Timer() as timer:
- proc = Popen(cmd, stdout=PIPE, **exec_args)
+ proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
+ **exec_args)
output, _ = proc.communicate()
retcode = proc.wait()
LOG.debug("exit status = %s", retcode)
if retcode != 0:
- raise CalledProcessError(retcode, cmd, output)
+ raise subprocess.CalledProcessError(retcode, cmd, output)
timeout -= timer.total_seconds()
cmd.remove("--syntax-check")
@@ -578,10 +630,10 @@ class AnsibleCommon(object):
# TODO: add timeout support of use subprocess32 backport
# 'timeout': timeout,
})
- proc = Popen(cmd, stdout=PIPE, **exec_args)
+ proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, **exec_args)
output, _ = proc.communicate()
retcode = proc.wait()
LOG.debug("exit status = %s", retcode)
if retcode != 0:
- raise CalledProcessError(retcode, cmd, output)
+ raise subprocess.CalledProcessError(retcode, cmd, output)
return output
diff --git a/yardstick/common/constants.py b/yardstick/common/constants.py
index 32ed746df..03733b6da 100644
--- a/yardstick/common/constants.py
+++ b/yardstick/common/constants.py
@@ -6,19 +6,16 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import absolute_import
-import os
-import errno
+import errno
+import os
from functools import reduce
import pkg_resources
-# this module must only import other modules that do
-# not require loggers to be created, so this cannot
-# include yardstick.common.utils
from yardstick.common.yaml_loader import yaml_load
+
dirname = os.path.dirname
abspath = os.path.abspath
join = os.path.join
@@ -40,10 +37,8 @@ def get_param(key, default=''):
try:
with open(conf_file) as f:
value = yaml_load(f)
- except IOError:
- pass
- except OSError as e:
- if e.errno != errno.EEXIST:
+ except (IOError, OSError) as e:
+ if e.errno != errno.ENOENT:
raise
else:
CONF.update(value)
@@ -85,6 +80,7 @@ YARDSTICK_ROOT_PATH = dirname(
TASK_LOG_DIR = get_param('dir.tasklog', '/var/log/yardstick/')
CONF_SAMPLE_DIR = join(REPOS_DIR, 'etc/yardstick/')
ANSIBLE_DIR = join(REPOS_DIR, 'ansible')
+ANSIBLE_ROLES_PATH = join(REPOS_DIR, 'ansible/roles/')
SAMPLE_CASE_DIR = join(REPOS_DIR, 'samples')
TESTCASE_DIR = join(YARDSTICK_ROOT_PATH, 'tests/opnfv/test_cases/')
TESTSUITE_DIR = join(YARDSTICK_ROOT_PATH, 'tests/opnfv/test_suites/')
@@ -120,6 +116,7 @@ INFLUXDB_DB_NAME = get_param('influxdb.db_name', 'yardstick')
INFLUXDB_IMAGE = get_param('influxdb.image', 'tutum/influxdb')
INFLUXDB_TAG = get_param('influxdb.tag', '0.13')
INFLUXDB_DASHBOARD_PORT = 8083
+QUEUE_PUT_TIMEOUT = 10
# grafana
GRAFANA_IP = get_param('grafana.ip', SERVER_IP)
@@ -146,6 +143,40 @@ BASE_URL = 'http://localhost:5000'
ENV_ACTION_API = BASE_URL + '/yardstick/env/action'
ASYNC_TASK_API = BASE_URL + '/yardstick/asynctask'
+API_ERRORS = {
+ 'UploadOpenrcError': {
+ 'message': "Upload openrc ERROR!",
+ 'status': API_ERROR,
+ },
+ 'UpdateOpenrcError': {
+ 'message': "Update openrc ERROR!",
+ 'status': API_ERROR,
+ },
+ 'ApiServerError': {
+ 'message': "An unkown exception happened to Api Server!",
+ 'status': API_ERROR,
+ },
+}
+
+# flags
+IS_EXISTING = 'is_existing'
+IS_PUBLIC = 'is_public'
+
# general
TESTCASE_PRE = 'opnfv_yardstick_'
TESTSUITE_PRE = 'opnfv_'
+
+# OpenStack cloud default config parameters
+OS_CLOUD_DEFAULT_CONFIG = {'verify': False}
+
+# Kubernetes
+SCOPE_NAMESPACED = 'Namespaced'
+SCOPE_CLUSTER = 'Cluster'
+
+# VNF definition
+SSH_PORT = 22
+LUA_PORT = 22022
+
+# IMIX mode
+DISTRIBUTION_IN_PACKETS = 'mode_DIP'
+DISTRIBUTION_IN_BYTES = 'mode_DIB'
diff --git a/yardstick/common/exceptions.py b/yardstick/common/exceptions.py
index 4780822a4..010ec6a51 100644
--- a/yardstick/common/exceptions.py
+++ b/yardstick/common/exceptions.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,6 +14,8 @@
from oslo_utils import excutils
+from yardstick.common import constants
+
class ProcessExecutionError(RuntimeError):
def __init__(self, message, returncode):
@@ -21,6 +23,16 @@ class ProcessExecutionError(RuntimeError):
self.returncode = returncode
+class ErrorClass(object):
+
+ def __init__(self, *args, **kwargs):
+ if 'test' not in kwargs:
+ raise RuntimeError
+
+ def __getattr__(self, item):
+ raise AttributeError
+
+
class YardstickException(Exception):
"""Base Yardstick Exception.
@@ -54,6 +66,364 @@ class YardstickException(Exception):
return False
+class ResourceCommandError(YardstickException):
+ message = 'Command: "%(command)s" Failed, stderr: "%(stderr)s"'
+
+
+class ContextUpdateCollectdForNodeError(YardstickException):
+ message = 'Cannot find node %(attr_name)s'
+
+
class FunctionNotImplemented(YardstickException):
message = ('The function "%(function_name)s" is not implemented in '
'"%(class_name)" class.')
+
+
+class InvalidType(YardstickException):
+ message = 'Type "%(type_to_convert)s" is not valid'
+
+
+class InfluxDBConfigurationMissing(YardstickException):
+ message = ('InfluxDB configuration is not available. Add "influxdb" as '
+ 'a dispatcher and the configuration section')
+
+
+class YardstickBannedModuleImported(YardstickException):
+ message = 'Module "%(module)s" cannnot be imported. Reason: "%(reason)s"'
+
+
+class IXIAUnsupportedProtocol(YardstickException):
+ message = 'Protocol "%(protocol)" is not supported in IXIA'
+
+
+class PayloadMissingAttributes(YardstickException):
+ message = ('Error instantiating a Payload class, missing attributes: '
+ '%(missing_attributes)s')
+
+
+class HeatTemplateError(YardstickException):
+ message = ('Error in Heat during the creation of the OpenStack stack '
+ '"%(stack_name)s"')
+
+
+class IPv6RangeError(YardstickException):
+ message = 'Start IP "%(start_ip)s" is greater than end IP "%(end_ip)s"'
+
+
+class TrafficProfileNotImplemented(YardstickException):
+ message = 'No implementation for traffic profile %(profile_class)s.'
+
+
+class TrafficProfileRate(YardstickException):
+ message = 'Traffic profile rate must be "<number>[fps|%]"'
+
+
+class DPDKSetupDriverError(YardstickException):
+ message = '"igb_uio" driver is not loaded'
+
+
+class OVSUnsupportedVersion(YardstickException):
+ message = ('Unsupported OVS version "%(ovs_version)s". Please check the '
+ 'config. OVS to DPDK version map: %(ovs_to_dpdk_map)s.')
+
+
+class OVSHugepagesInfoError(YardstickException):
+ message = 'MemInfo cannnot be retrieved.'
+
+
+class OVSHugepagesNotConfigured(YardstickException):
+ message = 'HugePages are not configured in this system.'
+
+
+class OVSHugepagesZeroFree(YardstickException):
+ message = ('There are no HugePages free in this system. Total HugePages '
+ 'configured: %(total_hugepages)s')
+
+
+class OVSDeployError(YardstickException):
+ message = 'OVS deploy tool failed with error: %(stderr)s.'
+
+
+class OVSSetupError(YardstickException):
+ message = 'OVS setup error. Command: %(command)s. Error: %(error)s.'
+
+
+class LibvirtCreateError(YardstickException):
+ message = 'Error creating the virtual machine. Error: %(error)s.'
+
+
+class LibvirtQemuImageBaseImageNotPresent(YardstickException):
+ message = ('Error creating the qemu image for %(vm_image)s. Base image: '
+ '%(base_image)s. Base image not present in execution host or '
+ 'remote host.')
+
+
+class LibvirtQemuImageCreateError(YardstickException):
+ message = ('Error creating the qemu image for %(vm_image)s. Base image: '
+ '%(base_image)s. Error: %(error)s.')
+
+
+class SSHError(YardstickException):
+ message = '%(error_msg)s'
+
+
+class SSHTimeout(SSHError):
+ pass
+
+
+class IncorrectConfig(YardstickException):
+ message = '%(error_msg)s'
+
+
+class IncorrectSetup(YardstickException):
+ message = '%(error_msg)s'
+
+
+class IncorrectNodeSetup(IncorrectSetup):
+ pass
+
+
+class ScenarioConfigContextNameNotFound(YardstickException):
+ message = 'Context for host name "%(host_name)s" not found'
+
+
+class StackCreationInterrupt(YardstickException):
+ message = 'Stack create interrupted.'
+
+
+class TaskRenderArgumentError(YardstickException):
+ message = 'Error reading the task input arguments'
+
+
+class TaskReadError(YardstickException):
+ message = 'Failed to read task %(task_file)s'
+
+
+class TaskRenderError(YardstickException):
+ message = 'Failed to render template:\n%(input_task)s'
+
+
+class TimerTimeout(YardstickException):
+ message = 'Timer timeout expired, %(timeout)s seconds'
+
+
+class WaitTimeout(YardstickException):
+ message = 'Wait timeout while waiting for condition'
+
+
+class PktgenActionError(YardstickException):
+ message = 'Error in "%(action)s" action'
+
+
+class KubernetesApiException(YardstickException):
+ message = ('Kubernetes API errors. Action: %(action)s, '
+ 'resource: %(resource)s')
+
+
+class KubernetesConfigFileNotFound(YardstickException):
+ message = 'Config file (%s) not found' % constants.K8S_CONF_FILE
+
+
+class KubernetesTemplateInvalidVolumeType(YardstickException):
+ message = 'No valid "volume" types present in %(volume)s'
+
+
+class KubernetesSSHPortNotDefined(YardstickException):
+ message = 'Port 22 needs to be defined'
+
+
+class KubernetesServiceObjectNotDefined(YardstickException):
+ message = 'ServiceObject is not defined'
+
+
+class KubernetesServiceObjectDefinitionError(YardstickException):
+ message = ('Kubernetes Service object definition error, missing '
+ 'parameters: %(missing_parameters)s')
+
+
+class KubernetesServiceObjectNameError(YardstickException):
+ message = ('Kubernetes Service object name "%(name)s" does not comply'
+ 'naming convention')
+
+
+class KubernetesCRDObjectDefinitionError(YardstickException):
+ message = ('Kubernetes Custom Resource Definition Object error, missing '
+ 'parameters: %(missing_parameters)s')
+
+
+class KubernetesNetworkObjectDefinitionError(YardstickException):
+ message = ('Kubernetes Network object definition error, missing '
+ 'parameters: %(missing_parameters)s')
+
+
+class KubernetesNetworkObjectKindMissing(YardstickException):
+ message = 'Kubernetes kind "Network" is not defined'
+
+
+class KubernetesWrongRestartPolicy(YardstickException):
+ message = 'Restart policy "%(rpolicy)s" is not valid'
+
+
+class KubernetesContainerPortNotDefined(YardstickException):
+ message = 'Container port not defined in "%(port)s"'
+
+
+class KubernetesContainerWrongImagePullPolicy(YardstickException):
+ message = 'Image pull policy must be "Always", "IfNotPresent" or "Never"'
+
+
+class KubernetesContainerCommandType(YardstickException):
+ message = '"args" and "command" must be string or list of strings'
+
+
+class ScenarioCreateNetworkError(YardstickException):
+ message = 'Create Neutron Network Scenario failed'
+
+
+class ScenarioCreateSubnetError(YardstickException):
+ message = 'Create Neutron Subnet Scenario failed'
+
+
+class ScenarioDeleteRouterError(YardstickException):
+ message = 'Delete Neutron Router Scenario failed'
+
+
+class MissingPodInfoError(YardstickException):
+ message = 'Missing pod args, please check'
+
+
+class UnsupportedPodFormatError(YardstickException):
+ message = 'Failed to load pod info, unsupported format'
+
+
+class ScenarioCreateRouterError(YardstickException):
+ message = 'Create Neutron Router Scenario failed'
+
+
+class ScenarioRemoveRouterIntError(YardstickException):
+ message = 'Remove Neutron Router Interface Scenario failed'
+
+
+class ScenarioCreateFloatingIPError(YardstickException):
+ message = 'Create Neutron Floating IP Scenario failed'
+
+
+class ScenarioDeleteFloatingIPError(YardstickException):
+ message = 'Delete Neutron Floating IP Scenario failed'
+
+
+class ScenarioCreateSecurityGroupError(YardstickException):
+ message = 'Create Neutron Security Group Scenario failed'
+
+
+class ScenarioDeleteNetworkError(YardstickException):
+ message = 'Delete Neutron Network Scenario failed'
+
+
+class ScenarioCreateServerError(YardstickException):
+ message = 'Nova Create Server Scenario failed'
+
+
+class ScenarioDeleteServerError(YardstickException):
+ message = 'Delete Server Scenario failed'
+
+
+class ScenarioCreateKeypairError(YardstickException):
+ message = 'Nova Create Keypair Scenario failed'
+
+
+class ScenarioDeleteKeypairError(YardstickException):
+ message = 'Nova Delete Keypair Scenario failed'
+
+
+class ScenarioAttachVolumeError(YardstickException):
+ message = 'Nova Attach Volume Scenario failed'
+
+
+class ScenarioGetServerError(YardstickException):
+ message = 'Nova Get Server Scenario failed'
+
+
+class ScenarioGetFlavorError(YardstickException):
+ message = 'Nova Get Falvor Scenario failed'
+
+
+class ScenarioCreateVolumeError(YardstickException):
+ message = 'Cinder Create Volume Scenario failed'
+
+
+class ScenarioDeleteVolumeError(YardstickException):
+ message = 'Cinder Delete Volume Scenario failed'
+
+
+class ScenarioDetachVolumeError(YardstickException):
+ message = 'Cinder Detach Volume Scenario failed'
+
+
+class ApiServerError(YardstickException):
+ message = 'An unkown exception happened to Api Server!'
+
+
+class UploadOpenrcError(ApiServerError):
+ message = 'Upload openrc ERROR!'
+
+
+class UpdateOpenrcError(ApiServerError):
+ message = 'Update openrc ERROR!'
+
+
+class ScenarioCreateImageError(YardstickException):
+ message = 'Glance Create Image Scenario failed'
+
+
+class ScenarioDeleteImageError(YardstickException):
+ message = 'Glance Delete Image Scenario failed'
+
+
+class IxNetworkClientNotConnected(YardstickException):
+ message = 'IxNetwork client not connected to a TCL server'
+
+
+class IxNetworkFlowNotPresent(YardstickException):
+ message = 'Flow Group "%(flow_group)s" is not present'
+
+
+class IxNetworkFieldNotPresentInStackItem(YardstickException):
+ message = 'Field "%(field_name)s" not present in stack item %(stack_item)s'
+
+
+class IncorrectFlowOption(YardstickException):
+ message = 'Flow option {option} for {link} is incorrect'
+
+
+class SLAValidationError(YardstickException):
+ message = '%(case_name)s SLA validation failed. Error: %(error_msg)s'
+
+
+class AclMissingActionArguments(YardstickException):
+ message = ('Missing ACL action parameter '
+ '[action=%(action_name)s parameter=%(action_param)s]')
+
+
+class AclUnknownActionTemplate(YardstickException):
+ message = 'No ACL CLI template found for "%(action_name)s" action'
+
+
+class InvalidMacAddress(YardstickException):
+ message = 'Mac address "%(mac_address)s" is invalid'
+
+
+class ValueCheckError(YardstickException):
+ message = 'Constraint "%(value1)s %(operator)s %(value2)s" does not hold'
+
+
+class RestApiError(RuntimeError):
+ def __init__(self, message):
+ self._message = message
+ super(RestApiError, self).__init__(message)
+
+
+class LandslideTclException(RuntimeError):
+ def __init__(self, message):
+ self._message = message
+ super(LandslideTclException, self).__init__(message)
diff --git a/yardstick/common/html_template.py b/yardstick/common/html_template.py
index e17c76637..c15dd8238 100644
--- a/yardstick/common/html_template.py
+++ b/yardstick/common/html_template.py
@@ -8,130 +8,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
#############################################################################
-template = """
-<html>
-<body>
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1">
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7\
-/css/bootstrap.min.css">
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1\
-/jquery.min.js"></script>
-<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7\
-/js/bootstrap.min.js"></script>
-<script src="https://code.highcharts.com/highcharts.js"></script>
-<script src="jquery.min.js"></script>
-<script src="highcharts.js"></script>
-</head>
-<style>
-
-table{
- overflow-y: scroll;
- height: 360px;
- display: block;
- }
-
- header,h3{
- font-family:Frutiger;
- clear: left;
- text-align: center;
-}
-</style>
-<header class="jumbotron text-center">
- <h1>Yardstick User Interface</h1>
- <h4>Report of {{task_id}} Generated</h4>
-</header>
-
-<div class="container">
- <div class="row">
- <div class="col-md-4">
- <div class="table-responsive" >
- <table class="table table-hover" > </table>
- </div>
- </div>
- <div class="col-md-8" >
- <div id="container" ></div>
- </div>
- </div>
-</div>
-<script>
- var arr, tab, th, tr, td, tn, row, col, thead, tbody;
- arr={{table|safe}}
- tab = document.getElementsByTagName('table')[0];
- thead=document.createElement('thead');
- tr = document.createElement('tr');
- for(row=0;row<Object.keys(arr).length;row++)
- {
- th = document.createElement('th');
- tn = document.createTextNode(Object.keys(arr).sort()[row]);
- th.appendChild(tn);
- tr.appendChild(th);
- thead.appendChild(tr);
- }
- tab.appendChild(thead);
- tbody=document.createElement('tbody');
-
- for (col = 0; col < arr[Object.keys(arr)[0]].length; col++){
- tr = document.createElement('tr');
- for(row=0;row<Object.keys(arr).length;row++)
- {
- td = document.createElement('td');
- tn = document.createTextNode(arr[Object.keys(arr).sort()[row]][col]);
- td.appendChild(tn);
- tr.appendChild(td);
- }
- tbody.appendChild(tr);
- }
-tab.appendChild(tbody);
-
-</script>
-
-<script language="JavaScript">
-
-$(function() {
- $('#container').highcharts({
- title: {
- text: 'Yardstick test results',
- x: -20 //center
- },
- subtitle: {
- text: 'Report of {{task_id}} Task Generated',
- x: -20
- },
- xAxis: {
- title: {
- text: 'Timestamp'
- },
- categories:{{Timestamp|safe}}
- },
- yAxis: {
-
- plotLines: [{
- value: 0,
- width: 1,
- color: '#808080'
- }]
- },
- tooltip: {
- valueSuffix: ''
- },
- legend: {
- layout: 'vertical',
- align: 'right',
- verticalAlign: 'middle',
- borderWidth: 0
- },
- series: {{series|safe}}
- });
-});
-
-</script>
-
-
-</body>
-</html>"""
-
report_template = """
<html>
<head>
diff --git a/yardstick/common/httpClient.py b/yardstick/common/httpClient.py
index 54f7be670..5b7831144 100644
--- a/yardstick/common/httpClient.py
+++ b/yardstick/common/httpClient.py
@@ -26,10 +26,11 @@ class HttpClient(object):
while True:
try:
response = requests.post(url, data=data, headers=headers)
+ response.raise_for_status()
result = response.json()
logger.debug('The result is: %s', result)
return result
- except Exception:
+ except Exception: # pylint: disable=broad-except
if time.time() > t_end:
logger.exception('')
raise
@@ -37,4 +38,5 @@ class HttpClient(object):
def get(self, url):
response = requests.get(url)
+ response.raise_for_status()
return response.json()
diff --git a/yardstick/common/import_tools.py b/yardstick/common/import_tools.py
new file mode 100644
index 000000000..bf8dc7e07
--- /dev/null
+++ b/yardstick/common/import_tools.py
@@ -0,0 +1,31 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import sys
+
+from yardstick.common import exceptions
+
+
+BANNED_MODULES = {'ansible': 'Module with GPLv3 license'}
+
+
+def decorator_banned_modules(cls):
+ def _class(*args, **kwargs):
+ for module in sys.modules:
+ for banned_module, reason in BANNED_MODULES.items():
+ if module.startswith(banned_module):
+ raise exceptions.YardstickBannedModuleImported(
+ module=banned_module, reason=reason)
+ return cls(*args, **kwargs)
+ return _class
diff --git a/yardstick/common/kubernetes_utils.py b/yardstick/common/kubernetes_utils.py
index 0cf7b9eab..323f13abb 100644
--- a/yardstick/common/kubernetes_utils.py
+++ b/yardstick/common/kubernetes_utils.py
@@ -13,6 +13,8 @@ from kubernetes import config
from kubernetes.client.rest import ApiException
from yardstick.common import constants as consts
+from yardstick.common import exceptions
+
LOG = logging.getLogger(__name__)
LOG.setLevel(logging.DEBUG)
@@ -22,12 +24,26 @@ def get_core_api(): # pragma: no cover
try:
config.load_kube_config(config_file=consts.K8S_CONF_FILE)
except IOError:
- LOG.exception('config file not found')
- raise
-
+ raise exceptions.KubernetesConfigFileNotFound()
return client.CoreV1Api()
+def get_extensions_v1beta_api():
+ try:
+ config.load_kube_config(config_file=consts.K8S_CONF_FILE)
+ except IOError:
+ raise exceptions.KubernetesConfigFileNotFound()
+ return client.ApiextensionsV1beta1Api()
+
+
+def get_custom_objects_api():
+ try:
+ config.load_kube_config(config_file=consts.K8S_CONF_FILE)
+ except IOError:
+ raise exceptions.KubernetesConfigFileNotFound()
+ return client.CustomObjectsApi()
+
+
def get_node_list(**kwargs): # pragma: no cover
core_v1_api = get_core_api()
try:
@@ -41,6 +57,7 @@ def create_service(template,
namespace='default',
wait=False,
**kwargs): # pragma: no cover
+ # pylint: disable=unused-argument
core_v1_api = get_core_api()
metadata = client.V1ObjectMeta(**template.get('metadata', {}))
@@ -58,14 +75,18 @@ def create_service(template,
raise
-def delete_service(name,
- namespace='default',
- **kwargs): # pragma: no cover
+def delete_service(name, namespace='default', skip_codes=None, **kwargs):
+ skip_codes = [] if not skip_codes else skip_codes
core_v1_api = get_core_api()
try:
- core_v1_api.delete_namespaced_service(name, namespace, **kwargs)
- except ApiException:
- LOG.exception('Delete Service failed')
+ body = client.V1DeleteOptions()
+ core_v1_api.delete_namespaced_service(name, namespace, body, **kwargs)
+ except ApiException as e:
+ if e.status in skip_codes:
+ LOG.info(e.reason)
+ else:
+ raise exceptions.KubernetesApiException(
+ action='delete', resource='Service')
def get_service_list(namespace='default', **kwargs):
@@ -86,7 +107,7 @@ def create_replication_controller(template,
namespace='default',
wait=False,
**kwargs): # pragma: no cover
-
+ # pylint: disable=unused-argument
core_v1_api = get_core_api()
try:
core_v1_api.create_namespaced_replication_controller(namespace,
@@ -100,8 +121,10 @@ def create_replication_controller(template,
def delete_replication_controller(name,
namespace='default',
wait=False,
- **kwargs): # pragma: no cover
-
+ skip_codes=None,
+ **kwargs):
+ # pylint: disable=unused-argument
+ skip_codes = [] if not skip_codes else skip_codes
core_v1_api = get_core_api()
body = kwargs.get('body', client.V1DeleteOptions())
kwargs.pop('body', None)
@@ -110,16 +133,21 @@ def delete_replication_controller(name,
namespace,
body,
**kwargs)
- except ApiException:
- LOG.exception('Delete replication controller failed')
- raise
+ except ApiException as e:
+ if e.status in skip_codes:
+ LOG.info(e.reason)
+ else:
+ raise exceptions.KubernetesApiException(
+ action='delete', resource='ReplicationController')
def delete_pod(name,
namespace='default',
wait=False,
+ skip_codes=None,
**kwargs): # pragma: no cover
-
+ # pylint: disable=unused-argument
+ skip_codes = [] if not skip_codes else skip_codes
core_v1_api = get_core_api()
body = kwargs.get('body', client.V1DeleteOptions())
kwargs.pop('body', None)
@@ -128,9 +156,12 @@ def delete_pod(name,
namespace,
body,
**kwargs)
- except ApiException:
- LOG.exception('Delete pod failed')
- raise
+ except ApiException as e:
+ if e.status in skip_codes:
+ LOG.info(e.reason)
+ else:
+ raise exceptions.KubernetesApiException(
+ action='delete', resource='Pod')
def read_pod(name,
@@ -147,6 +178,7 @@ def read_pod(name,
def read_pod_status(name, namespace='default', **kwargs): # pragma: no cover
+ # pylint: disable=unused-argument
return read_pod(name).status.phase
@@ -155,6 +187,7 @@ def create_config_map(name,
namespace='default',
wait=False,
**kwargs): # pragma: no cover
+ # pylint: disable=unused-argument
core_v1_api = get_core_api()
metadata = client.V1ObjectMeta(name=name)
body = client.V1ConfigMap(data=data, metadata=metadata)
@@ -168,7 +201,10 @@ def create_config_map(name,
def delete_config_map(name,
namespace='default',
wait=False,
- **kwargs): # pragma: no cover
+ skip_codes=None,
+ **kwargs):
+ # pylint: disable=unused-argument
+ skip_codes = [] if not skip_codes else skip_codes
core_v1_api = get_core_api()
body = kwargs.get('body', client.V1DeleteOptions())
kwargs.pop('body', None)
@@ -177,9 +213,104 @@ def delete_config_map(name,
namespace,
body,
**kwargs)
+ except ApiException as e:
+ if e.status in skip_codes:
+ LOG.info(e.reason)
+ else:
+ raise exceptions.KubernetesApiException(
+ action='delete', resource='ConfigMap')
+
+
+def create_custom_resource_definition(body):
+ api = get_extensions_v1beta_api()
+ body_obj = client.V1beta1CustomResourceDefinition(
+ spec=body['spec'], metadata=body['metadata'])
+ try:
+ api.create_custom_resource_definition(body_obj)
+ except ValueError:
+ # NOTE(ralonsoh): bug in kubernetes-client/python 6.0.0
+ # https://github.com/kubernetes-client/python/issues/491
+ pass
except ApiException:
- LOG.exception('Delete config map failed')
- raise
+ raise exceptions.KubernetesApiException(
+ action='create', resource='CustomResourceDefinition')
+
+
+def delete_custom_resource_definition(name, skip_codes=None):
+ skip_codes = [] if not skip_codes else skip_codes
+ api = get_extensions_v1beta_api()
+ body_obj = client.V1DeleteOptions()
+ try:
+ api.delete_custom_resource_definition(name, body_obj)
+ except ApiException as e:
+ if e.status in skip_codes:
+ LOG.info(e.reason)
+ else:
+ raise exceptions.KubernetesApiException(
+ action='delete', resource='CustomResourceDefinition')
+
+
+def get_custom_resource_definition(kind):
+ api = get_extensions_v1beta_api()
+ try:
+ crd_list = api.list_custom_resource_definition()
+ for crd_obj in (crd_obj for crd_obj in crd_list.items
+ if crd_obj.spec.names.kind == kind):
+ return crd_obj
+ return None
+ except ApiException:
+ raise exceptions.KubernetesApiException(
+ action='delete', resource='CustomResourceDefinition')
+
+
+def get_network(scope, group, version, plural, name, namespace='default'):
+ api = get_custom_objects_api()
+ try:
+ if scope == consts.SCOPE_CLUSTER:
+ network = api.get_cluster_custom_object(group, version, plural, name)
+ else:
+ network = api.get_namespaced_custom_object(
+ group, version, namespace, plural, name)
+ except ApiException as e:
+ if e.status in [404]:
+ return
+ else:
+ raise exceptions.KubernetesApiException(
+ action='get', resource='Custom Object: Network')
+ return network
+
+
+def create_network(scope, group, version, plural, body, name, namespace='default'):
+ api = get_custom_objects_api()
+ if get_network(scope, group, version, plural, name, namespace):
+ logging.info('Network %s already exists', name)
+ return
+ try:
+ if scope == consts.SCOPE_CLUSTER:
+ api.create_cluster_custom_object(group, version, plural, body)
+ else:
+ api.create_namespaced_custom_object(
+ group, version, namespace, plural, body)
+ except ApiException:
+ raise exceptions.KubernetesApiException(
+ action='create', resource='Custom Object: Network')
+
+
+def delete_network(scope, group, version, plural, name, namespace='default', skip_codes=None):
+ skip_codes = [] if not skip_codes else skip_codes
+ api = get_custom_objects_api()
+ try:
+ if scope == consts.SCOPE_CLUSTER:
+ api.delete_cluster_custom_object(group, version, plural, name, {})
+ else:
+ api.delete_namespaced_custom_object(
+ group, version, namespace, plural, name, {})
+ except ApiException as e:
+ if e.status in skip_codes:
+ LOG.info(e.reason)
+ else:
+ raise exceptions.KubernetesApiException(
+ action='delete', resource='Custom Object: Network')
def get_pod_list(namespace='default'): # pragma: no cover
@@ -194,3 +325,9 @@ def get_pod_list(namespace='default'): # pragma: no cover
def get_pod_by_name(name): # pragma: no cover
pod_list = get_pod_list()
return next((n for n in pod_list.items if n.metadata.name.startswith(name)), None)
+
+
+def get_volume_types():
+ """Return the "volume" types supported by the current API"""
+ return [vtype for vtype in client.V1Volume.attribute_map.values()
+ if vtype != 'name']
diff --git a/yardstick/common/messaging/__init__.py b/yardstick/common/messaging/__init__.py
new file mode 100644
index 000000000..089c99c9f
--- /dev/null
+++ b/yardstick/common/messaging/__init__.py
@@ -0,0 +1,28 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# MQ is statically configured:
+# - MQ service: RabbitMQ
+# - user/password: yardstick/yardstick
+# - host:port: localhost:5672
+MQ_USER = 'yardstick'
+MQ_PASS = 'yardstick'
+MQ_SERVICE = 'rabbit'
+SERVER = 'localhost'
+PORT = 5672
+TRANSPORT_URL = (MQ_SERVICE + '://' + MQ_USER + ':' + MQ_PASS + '@' + SERVER +
+ ':' + str(PORT) + '/')
+
+# RPC server.
+RPC_SERVER_EXECUTOR = 'threading'
diff --git a/yardstick/common/messaging/consumer.py b/yardstick/common/messaging/consumer.py
new file mode 100644
index 000000000..7ce9bdaf7
--- /dev/null
+++ b/yardstick/common/messaging/consumer.py
@@ -0,0 +1,86 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import abc
+import logging
+
+from oslo_config import cfg
+import oslo_messaging
+import six
+
+from yardstick.common import messaging
+
+
+LOG = logging.getLogger(__name__)
+
+
+@six.add_metaclass(abc.ABCMeta)
+class NotificationHandler(object):
+ """Abstract class to define a endpoint object for a MessagingConsumer"""
+
+ def __init__(self, _id, ctx_ids, queue):
+ super(NotificationHandler, self).__init__()
+ self._id = _id
+ self._ctx_ids = ctx_ids
+ self._queue = queue
+
+
+@six.add_metaclass(abc.ABCMeta)
+class MessagingConsumer(object):
+ """Abstract class to implement a MQ consumer
+
+ This abstract class allows a class implementing this interface to receive
+ the messages published by a `MessagingNotifier`.
+ """
+
+ def __init__(self, topic, ids, endpoints, fanout=True):
+ """Init function.
+
+ :param topic: (string) MQ exchange topic
+ :param ids: (list of int) list of IDs of the processes implementing
+ the MQ Notifier which will be in the message context
+ :param endpoints: (list of class) list of classes implementing the
+ methods (see `MessagingNotifier.send_message) used by
+ the Notifier
+ :param fanout: (bool) MQ clients may request that a copy of the message
+ be delivered to all servers listening on a topic by
+ setting fanout to ``True``, rather than just one of them
+ :returns: `MessagingConsumer` class object
+ """
+
+ self._ids = ids
+ self._endpoints = endpoints
+ self._transport = oslo_messaging.get_rpc_transport(
+ cfg.CONF, url=messaging.TRANSPORT_URL)
+ self._target = oslo_messaging.Target(topic=topic, fanout=fanout,
+ server=messaging.SERVER)
+ self._server = oslo_messaging.get_rpc_server(
+ self._transport, self._target, self._endpoints,
+ executor=messaging.RPC_SERVER_EXECUTOR,
+ access_policy=oslo_messaging.DefaultRPCAccessPolicy)
+
+ def start_rpc_server(self):
+ """Start the RPC server."""
+ if self._server:
+ self._server.start()
+
+ def stop_rpc_server(self):
+ """Stop the RPC server."""
+ if self._server:
+ self._server.stop()
+
+ def wait(self):
+ """Wait for message processing to complete (blocking)."""
+ if self._server:
+ self._server.wait()
diff --git a/yardstick/common/messaging/payloads.py b/yardstick/common/messaging/payloads.py
new file mode 100644
index 000000000..8ede1e58e
--- /dev/null
+++ b/yardstick/common/messaging/payloads.py
@@ -0,0 +1,73 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import abc
+
+import six
+
+from yardstick.common import exceptions
+
+
+@six.add_metaclass(abc.ABCMeta)
+class Payload(object):
+ """Base Payload class to transfer data through the MQ service"""
+
+ REQUIRED_FIELDS = {'version'}
+
+ def __init__(self, **kwargs):
+ """Init method
+
+ :param kwargs: (dictionary) attributes and values of the object
+ :returns: Payload object
+ """
+
+ if not all(req_field in kwargs for req_field in self.REQUIRED_FIELDS):
+ _attrs = set(kwargs) - self.REQUIRED_FIELDS
+ missing_attributes = ', '.join(str(_attr) for _attr in _attrs)
+ raise exceptions.PayloadMissingAttributes(
+ missing_attributes=missing_attributes)
+
+ for name, value in kwargs.items():
+ setattr(self, name, value)
+
+ self._fields = set(kwargs.keys())
+
+ def obj_to_dict(self):
+ """Returns a dictionary with the attributes of the object"""
+ return {field: getattr(self, field) for field in self._fields}
+
+ @classmethod
+ def dict_to_obj(cls, _dict):
+ """Returns a Payload object built from the dictionary elements"""
+ return cls(**_dict)
+
+
+class TrafficGeneratorPayload(Payload):
+ """Base traffic generator payload class"""
+ REQUIRED_FIELDS = {
+ 'version', # (str) version of the payload transmitted.
+ 'iteration', # (int) iteration index during the traffic injection,
+ # starting from 1.
+ 'kpi' # (dict) collection of KPIs collected from the traffic
+ # injection. The content will depend on the generator and the
+ # traffic type.
+ }
+
+
+class RunnerPayload(Payload):
+ """Base runner payload class"""
+ REQUIRED_FIELDS = {
+ 'version', # (str) version of the payload transmitted.
+ 'data' # (dict) generic container of data to be used if needed.
+ }
diff --git a/yardstick/common/messaging/producer.py b/yardstick/common/messaging/producer.py
new file mode 100644
index 000000000..aadab649d
--- /dev/null
+++ b/yardstick/common/messaging/producer.py
@@ -0,0 +1,75 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import abc
+import logging
+import os
+
+from oslo_config import cfg
+import oslo_messaging
+import six
+
+from yardstick.common import messaging
+
+
+LOG = logging.getLogger(__name__)
+
+
+@six.add_metaclass(abc.ABCMeta)
+class MessagingProducer(object):
+ """Abstract class to implement a MQ producer
+
+ This abstract class allows a class implementing this interface to publish
+ messages in a message queue.
+ """
+
+ def __init__(self, topic, _id=os.getpid(), fanout=True):
+ """Init function.
+
+ :param topic: (string) MQ exchange topic
+ :param id: (int) ID of the process implementing this MQ Notifier
+ :param fanout: (bool) MQ clients may request that a copy of the message
+ be delivered to all servers listening on a topic by
+ setting fanout to ``True``, rather than just one of them
+ :returns: `MessagingNotifier` class object
+ """
+ self._topic = topic
+ self._id = _id
+ self._fanout = fanout
+ self._transport = oslo_messaging.get_rpc_transport(
+ cfg.CONF, url=messaging.TRANSPORT_URL)
+ self._target = oslo_messaging.Target(topic=topic, fanout=fanout,
+ server=messaging.SERVER)
+ self._notifier = oslo_messaging.RPCClient(self._transport,
+ self._target)
+
+ def send_message(self, method, payload):
+ """Send a cast message, that will invoke a method without blocking.
+
+ The cast() method is used to invoke an RPC method that does not return
+ a value. cast() RPC requests may be broadcast to all Servers listening
+ on a given topic by setting the fanout Target property to ``True``.
+
+ :param methos: (string) method name, that must be implemented in the
+ consumer endpoints
+ :param payload: (subclass `Payload`) payload content
+ """
+ self._notifier.cast({'id': self._id},
+ method,
+ **payload.obj_to_dict())
+
+ @property
+ def id(self):
+ """Return MQ producer ID"""
+ return self._id
diff --git a/yardstick/common/nsb_report.css b/yardstick/common/nsb_report.css
new file mode 100644
index 000000000..667f865a5
--- /dev/null
+++ b/yardstick/common/nsb_report.css
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Rajesh Kudaka <4k.rajesh@gmail.com>
+ * Copyright (c) 2018 Intel Corporation.
+ *
+ * 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
+ ******************************************************************************/
+
+body {
+ font-family: Frutiger, "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+
+header {
+ padding-top: 5px;
+ text-align: center;
+ font-weight: bold;
+}
+
+#tblMetrics {
+ overflow-y: scroll;
+ height: 360px;
+ display: block;
+}
+
+#cnvGraph {
+ width: 100%;
+ height: 500px;
+}
+
+#divTree {
+ font-size: 10pt;
+}
diff --git a/yardstick/common/nsb_report.html.j2 b/yardstick/common/nsb_report.html.j2
new file mode 100644
index 000000000..a6713eb16
--- /dev/null
+++ b/yardstick/common/nsb_report.html.j2
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+
+<!--
+ Copyright (c) 2017 Rajesh Kudaka <4k.rajesh@gmail.com>
+ Copyright (c) 2018-2019 Intel Corporation.
+
+ 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
+-->
+
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.7/themes/default/style.min.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.7/jstree.min.js"></script>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.bundle.min.js"></script>
+ <style>
+ {% include 'nsb_report.css' %}
+ </style>
+ <script>
+ {% include 'nsb_report.js' %}
+ </script>
+ </head>
+
+ <body>
+ <div class="container-fluid">
+ <div class="row">
+ <header>
+ Testcase: {{report_meta.testcase}}<br>
+ Task-ID: {{report_meta.task_id}}<br>
+ </header>
+ </div>
+ <div class="row">
+ <div class="col-md-2">
+ <div id="divTree"></div>
+ </div>
+ <div class="col-md-10">
+ <canvas id="cnvGraph"></canvas>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-md-12 table-responsive">
+ <table id="tblMetrics" class="table table-condensed table-hover"></table>
+ </div>
+ </div>
+ </div>
+
+ <script>
+ // Injected metrics, timestamps, keys and hierarchy
+ var report_data = {{report_data|safe}};
+ var report_time = {{report_time|safe}};
+ var report_keys = {{report_keys|safe}};
+ var report_tree = {{report_tree|safe}};
+ var table_data = {{table_data|safe}};
+
+ // Wait for DOM to be loaded
+ $(function() {
+ var tblMetrics = $('#tblMetrics');
+ var cnvGraph = $('#cnvGraph');
+ var divTree = $('#divTree');
+
+ create_table(tblMetrics, table_data, report_time, report_keys);
+ var objGraph = create_graph(cnvGraph, report_time);
+ create_tree(divTree, report_tree);
+ handle_tree(divTree, tblMetrics, objGraph, report_data, table_data, report_time);
+ });
+ </script>
+ </body>
+</html>
diff --git a/yardstick/common/nsb_report.js b/yardstick/common/nsb_report.js
new file mode 100644
index 000000000..18141900b
--- /dev/null
+++ b/yardstick/common/nsb_report.js
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Rajesh Kudaka <4k.rajesh@gmail.com>
+ * Copyright (c) 2018-2019 Intel Corporation.
+ *
+ * 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
+ ******************************************************************************/
+
+var None = null;
+
+function create_tree(divTree, jstree_data)
+{
+ divTree.jstree({
+ plugins: ['checkbox'],
+ checkbox: {
+ three_state: false,
+ whole_node: true,
+ tie_selection: false,
+ },
+ core: {
+ themes: {
+ icons: false,
+ stripes: true,
+ },
+ data: jstree_data,
+ },
+ });
+}
+
+function create_table(tblMetrics, table_data, timestamps, table_keys)
+{
+ var tbody = $('<tbody></tbody>');
+ var tr0 = $('<tr></tr>');
+ var th0 = $('<th></th>');
+ var td0 = $('<td></td>');
+ var tr;
+
+ // create table headings using timestamps
+ tr = tr0.clone().append(th0.clone().text('Timestamp'));
+ timestamps.forEach(function(t) {
+ tr.append(th0.clone().text(t));
+ });
+ tbody.append(tr);
+
+ // for each metric
+ table_keys.forEach(function(key) {
+ tr = tr0.clone().append(td0.clone().text(key));
+ // add each piece of data as its own column
+ table_data[key].forEach(function(val) {
+ tr.append(td0.clone().text(val === None ? '' : val));
+ });
+ tbody.append(tr);
+ });
+
+ // re-create table
+ tblMetrics.empty().append(tbody);
+}
+
+function create_graph(cnvGraph, timestamps)
+{
+ return new Chart(cnvGraph, {
+ type: 'line',
+ data: {
+ labels: timestamps,
+ datasets: [],
+ },
+ options: {
+ elements: {
+ line: {
+ borderWidth: 2,
+ fill: false,
+ tension: 0,
+ showline: true,
+ spanGaps: true,
+ },
+ },
+ scales: {
+ xAxes: [{
+ type: 'category',
+ display: true,
+ labels: timestamps,
+ autoSkip: true,
+ }],
+ yAxes: [{
+ type: 'linear',
+ }],
+ },
+ tooltips: {
+ mode: 'point',
+ intersect: true,
+ },
+ hover: {
+ mode: 'index',
+ intersect: false,
+ animationDuration: 0,
+ },
+ legend: {
+ position: 'bottom',
+ labels: {
+ usePointStyle: true,
+ },
+ },
+ animation: {
+ duration: 0,
+ },
+ responsive: true,
+ responsiveAnimationDuration: 0,
+ maintainAspectRatio: false,
+ },
+ });
+}
+
+function update_graph(objGraph, datasets)
+{
+ var colors = [
+ '#FF0000', // Red
+ '#228B22', // ForestGreen
+ '#FF8C00', // DarkOrange
+ '#00008B', // DarkBlue
+ '#FF00FF', // Fuchsia
+ '#9ACD32', // YellowGreen
+ '#FFD700', // Gold
+ '#4169E1', // RoyalBlue
+ '#A0522D', // Sienna
+ '#20B2AA', // LightSeaGreen
+ '#8A2BE2', // BlueViolet
+ ];
+
+ var points = [
+ {s: 'circle', r: 3},
+ {s: 'rect', r: 4},
+ {s: 'triangle', r: 4},
+ {s: 'star', r: 4},
+ {s: 'rectRot', r: 5},
+ ];
+
+ datasets.forEach(function(d, i) {
+ var color = colors[i % colors.length];
+ var point = points[i % points.length];
+ d.borderColor = color;
+ d.backgroundColor = color;
+ d.pointStyle = point.s;
+ d.pointRadius = point.r;
+ d.pointHoverRadius = point.r + 1;
+ });
+ objGraph.data.datasets = datasets;
+ objGraph.update();
+}
+
+function handle_tree(divTree, tblMetrics, objGraph, graph_data, table_data, timestamps)
+{
+ divTree.on('check_node.jstree uncheck_node.jstree', function(e, data) {
+ var selected_keys = [];
+ var selected_datasets = [];
+ data.selected.forEach(function(sel) {
+ var node = data.instance.get_node(sel);
+ if (node.children.length == 0) {
+ selected_keys.push(node.id);
+ selected_datasets.push({
+ label: node.id,
+ data: graph_data[node.id],
+ });
+ }
+ });
+ create_table(tblMetrics, table_data, timestamps, selected_keys);
+ update_graph(objGraph, selected_datasets);
+ });
+}
diff --git a/yardstick/common/openstack_utils.py b/yardstick/common/openstack_utils.py
index d1223edd2..541061351 100644
--- a/yardstick/common/openstack_utils.py
+++ b/yardstick/common/openstack_utils.py
@@ -7,19 +7,21 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import absolute_import
-
-import os
-import time
-import sys
+import copy
import logging
+import os
-from keystoneauth1 import loading
-from keystoneauth1 import session
from cinderclient import client as cinderclient
from novaclient import client as novaclient
from glanceclient import client as glanceclient
+from keystoneauth1 import loading
+from keystoneauth1 import session
from neutronclient.neutron import client as neutronclient
+import shade
+from shade import exc
+
+from yardstick.common import constants
+
log = logging.getLogger(__name__)
@@ -31,38 +33,22 @@ DEFAULT_API_VERSION = '2'
# CREDENTIALS
# *********************************************
def get_credentials():
- """Returns a creds dictionary filled with parsed from env"""
- creds = {}
-
- keystone_api_version = os.getenv('OS_IDENTITY_API_VERSION')
-
- if keystone_api_version is None or keystone_api_version == '2':
- keystone_v3 = False
- tenant_env = 'OS_TENANT_NAME'
- tenant = 'tenant_name'
- else:
- keystone_v3 = True
- tenant_env = 'OS_PROJECT_NAME'
- tenant = 'project_name'
-
- # The most common way to pass these info to the script is to do it
- # through environment variables.
- creds.update({
- "username": os.environ.get("OS_USERNAME"),
- "password": os.environ.get("OS_PASSWORD"),
- "auth_url": os.environ.get("OS_AUTH_URL"),
- tenant: os.environ.get(tenant_env)
- })
-
- if keystone_v3:
- if os.getenv('OS_USER_DOMAIN_NAME') is not None:
- creds.update({
- "user_domain_name": os.getenv('OS_USER_DOMAIN_NAME')
- })
- if os.getenv('OS_PROJECT_DOMAIN_NAME') is not None:
- creds.update({
- "project_domain_name": os.getenv('OS_PROJECT_DOMAIN_NAME')
- })
+ """Returns a creds dictionary filled with parsed from env
+
+ Keystone API version used is 3; v2 was deprecated in 2014 (Icehouse). Along
+ with this deprecation, environment variable 'OS_TENANT_NAME' is replaced by
+ 'OS_PROJECT_NAME'.
+ """
+ creds = {'username': os.environ.get('OS_USERNAME'),
+ 'password': os.environ.get('OS_PASSWORD'),
+ 'auth_url': os.environ.get('OS_AUTH_URL'),
+ 'project_name': os.environ.get('OS_PROJECT_NAME')
+ }
+
+ if os.getenv('OS_USER_DOMAIN_NAME'):
+ creds['user_domain_name'] = os.getenv('OS_USER_DOMAIN_NAME')
+ if os.getenv('OS_PROJECT_DOMAIN_NAME'):
+ creds['project_domain_name'] = os.getenv('OS_PROJECT_DOMAIN_NAME')
return creds
@@ -170,217 +156,226 @@ def get_glance_client(): # pragma: no cover
return glanceclient.Client(get_glance_client_version(), session=sess)
-# *********************************************
-# NOVA
-# *********************************************
-def get_instances(nova_client): # pragma: no cover
- try:
- return nova_client.servers.list(search_opts={'all_tenants': 1})
- except Exception:
- log.exception("Error [get_instances(nova_client)]")
-
-
-def get_instance_status(nova_client, instance): # pragma: no cover
- try:
- return nova_client.servers.get(instance.id).status
- except Exception:
- log.exception("Error [get_instance_status(nova_client)]")
-
-
-def get_instance_by_name(nova_client, instance_name): # pragma: no cover
- try:
- return nova_client.servers.find(name=instance_name)
- except Exception:
- log.exception("Error [get_instance_by_name(nova_client, '%s')]",
- instance_name)
-
-
-def get_aggregates(nova_client): # pragma: no cover
- try:
- return nova_client.aggregates.list()
- except Exception:
- log.exception("Error [get_aggregates(nova_client)]")
-
-
-def get_availability_zones(nova_client): # pragma: no cover
- try:
- return nova_client.availability_zones.list()
- except Exception:
- log.exception("Error [get_availability_zones(nova_client)]")
+def get_shade_client(**os_cloud_config):
+ """Get Shade OpenStack cloud client
+ By default, the input parameters given to "shade.openstack_cloud" method
+ are stored in "constants.OS_CLOUD_DEFAULT_CONFIG". The input parameters
+ passed in this function, "os_cloud_config", will overwrite the default
+ ones.
-def get_availability_zone_names(nova_client): # pragma: no cover
- try:
- return [az.zoneName for az in get_availability_zones(nova_client)]
- except Exception:
- log.exception("Error [get_availability_zone_names(nova_client)]")
+ :param os_cloud_config: (kwargs) input arguments for
+ "shade.openstack_cloud" method.
+ :return: ``shade.OpenStackCloud`` object.
+ """
+ params = copy.deepcopy(constants.OS_CLOUD_DEFAULT_CONFIG)
+ params.update(os_cloud_config)
+ return shade.openstack_cloud(**params)
+def get_shade_operator_client(**os_cloud_config):
+ """Get Shade Operator cloud client
-def create_aggregate(nova_client, aggregate_name, av_zone): # pragma: no cover
- try:
- nova_client.aggregates.create(aggregate_name, av_zone)
- except Exception:
- log.exception("Error [create_aggregate(nova_client, %s, %s)]",
- aggregate_name, av_zone)
- return False
- else:
- return True
-
+ :return: ``shade.OperatorCloud`` object.
+ """
+ params = copy.deepcopy(constants.OS_CLOUD_DEFAULT_CONFIG)
+ params.update(os_cloud_config)
+ return shade.operator_cloud(**params)
-def get_aggregate_id(nova_client, aggregate_name): # pragma: no cover
- try:
- aggregates = get_aggregates(nova_client)
- _id = next((ag.id for ag in aggregates if ag.name == aggregate_name))
- except Exception:
- log.exception("Error [get_aggregate_id(nova_client, %s)]",
- aggregate_name)
- else:
- return _id
-
-def add_host_to_aggregate(nova_client, aggregate_name,
- compute_host): # pragma: no cover
- try:
- aggregate_id = get_aggregate_id(nova_client, aggregate_name)
- nova_client.aggregates.add_host(aggregate_id, compute_host)
- except Exception:
- log.exception("Error [add_host_to_aggregate(nova_client, %s, %s)]",
- aggregate_name, compute_host)
- return False
- else:
- return True
-
-
-def create_aggregate_with_host(nova_client, aggregate_name, av_zone,
- compute_host): # pragma: no cover
- try:
- create_aggregate(nova_client, aggregate_name, av_zone)
- add_host_to_aggregate(nova_client, aggregate_name, compute_host)
- except Exception:
- log.exception("Error [create_aggregate_with_host("
- "nova_client, %s, %s, %s)]",
- aggregate_name, av_zone, compute_host)
- return False
- else:
- return True
-
-
-def create_keypair(nova_client, name, key_path=None): # pragma: no cover
- try:
- with open(key_path) as fpubkey:
- keypair = get_nova_client().keypairs.create(name=name, public_key=fpubkey.read())
- return keypair
- except Exception:
- log.exception("Error [create_keypair(nova_client)]")
-
-
-def create_instance(json_body): # pragma: no cover
- try:
- return get_nova_client().servers.create(**json_body)
- except Exception:
- log.exception("Error create instance failed")
- return None
-
-
-def create_instance_and_wait_for_active(json_body): # pragma: no cover
- SLEEP = 3
- VM_BOOT_TIMEOUT = 180
- nova_client = get_nova_client()
- instance = create_instance(json_body)
- count = VM_BOOT_TIMEOUT / SLEEP
- for n in range(count, -1, -1):
- status = get_instance_status(nova_client, instance)
- if status.lower() == "active":
- return instance
- elif status.lower() == "error":
- log.error("The instance went to ERROR status.")
- return None
- time.sleep(SLEEP)
- log.error("Timeout booting the instance.")
- return None
-
-
-def attach_server_volume(server_id, volume_id, device=None): # pragma: no cover
- try:
- get_nova_client().volumes.create_server_volume(server_id, volume_id, device)
- except Exception:
- log.exception("Error [attach_server_volume(nova_client, '%s', '%s')]",
- server_id, volume_id)
- return False
- else:
+# *********************************************
+# NOVA
+# *********************************************
+def create_keypair(shade_client, name, public_key=None):
+ """Create a new keypair.
+
+ :param name: Name of the keypair being created.
+ :param public_key: Public key for the new keypair.
+
+ :return: Created keypair.
+ """
+ try:
+ return shade_client.create_keypair(name, public_key=public_key)
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [create_keypair(shade_client)]. "
+ "Exception message, '%s'", o_exc.orig_message)
+
+
+def create_instance_and_wait_for_active(shade_client, name, image,
+ flavor, auto_ip=True, ips=None,
+ ip_pool=None, root_volume=None,
+ terminate_volume=False, wait=True,
+ timeout=180, reuse_ips=True,
+ network=None, boot_from_volume=False,
+ volume_size='20', boot_volume=None,
+ volumes=None, nat_destination=None,
+ **kwargs):
+ """Create a virtual server instance.
+
+ :param name:(string) Name of the server.
+ :param image:(dict) Image dict, name or ID to boot with. Image is required
+ unless boot_volume is given.
+ :param flavor:(dict) Flavor dict, name or ID to boot onto.
+ :param auto_ip: Whether to take actions to find a routable IP for
+ the server.
+ :param ips: List of IPs to attach to the server.
+ :param ip_pool:(string) Name of the network or floating IP pool to get an
+ address from.
+ :param root_volume:(string) Name or ID of a volume to boot from.
+ (defaults to None - deprecated, use boot_volume)
+ :param boot_volume:(string) Name or ID of a volume to boot from.
+ :param terminate_volume:(bool) If booting from a volume, whether it should
+ be deleted when the server is destroyed.
+ :param volumes:(optional) A list of volumes to attach to the server.
+ :param wait:(optional) Wait for the address to appear as assigned to the server.
+ :param timeout: Seconds to wait, defaults to 60.
+ :param reuse_ips:(bool)Whether to attempt to reuse pre-existing
+ floating ips should a floating IP be needed.
+ :param network:(dict) Network dict or name or ID to attach the server to.
+ Mutually exclusive with the nics parameter. Can also be be
+ a list of network names or IDs or network dicts.
+ :param boot_from_volume:(bool) Whether to boot from volume. 'boot_volume'
+ implies True, but boot_from_volume=True with
+ no boot_volume is valid and will create a
+ volume from the image and use that.
+ :param volume_size: When booting an image from volume, how big should
+ the created volume be?
+ :param nat_destination: Which network should a created floating IP
+ be attached to, if it's not possible to infer from
+ the cloud's configuration.
+ :param meta:(optional) A dict of arbitrary key/value metadata to store for
+ this server. Both keys and values must be <=255 characters.
+ :param reservation_id: A UUID for the set of servers being requested.
+ :param min_count:(optional extension) The minimum number of servers to
+ launch.
+ :param max_count:(optional extension) The maximum number of servers to
+ launch.
+ :param security_groups: A list of security group names.
+ :param userdata: User data to pass to be exposed by the metadata server
+ this can be a file type object as well or a string.
+ :param key_name:(optional extension) Name of previously created keypair to
+ inject into the instance.
+ :param availability_zone: Name of the availability zone for instance
+ placement.
+ :param block_device_mapping:(optional) A dict of block device mappings for
+ this server.
+ :param block_device_mapping_v2:(optional) A dict of block device mappings
+ for this server.
+ :param nics:(optional extension) An ordered list of nics to be added to
+ this server, with information about connected networks, fixed
+ IPs, port etc.
+ :param scheduler_hints:(optional extension) Arbitrary key-value pairs
+ specified by the client to help boot an instance.
+ :param config_drive:(optional extension) Value for config drive either
+ boolean, or volume-id.
+ :param disk_config:(optional extension) Control how the disk is partitioned
+ when the server is created. Possible values are 'AUTO'
+ or 'MANUAL'.
+ :param admin_pass:(optional extension) Add a user supplied admin password.
+
+ :returns: The created server.
+ """
+ try:
+ return shade_client.create_server(
+ name, image, flavor, auto_ip=auto_ip, ips=ips, ip_pool=ip_pool,
+ root_volume=root_volume, terminate_volume=terminate_volume,
+ wait=wait, timeout=timeout, reuse_ips=reuse_ips, network=network,
+ boot_from_volume=boot_from_volume, volume_size=volume_size,
+ boot_volume=boot_volume, volumes=volumes,
+ nat_destination=nat_destination, **kwargs)
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [create_instance(shade_client)]. "
+ "Exception message, '%s'", o_exc.orig_message)
+
+
+def attach_volume_to_server(shade_client, server_name_or_id, volume_name_or_id,
+ device=None, wait=True, timeout=None):
+ """Attach a volume to a server.
+
+ This will attach a volume, described by the passed in volume
+ dict, to the server described by the passed in server dict on the named
+ device on the server.
+
+ If the volume is already attached to the server, or generally not
+ available, then an exception is raised. To re-attach to a server,
+ but under a different device, the user must detach it first.
+
+ :param server_name_or_id:(string) The server name or id to attach to.
+ :param volume_name_or_id:(string) The volume name or id to attach.
+ :param device:(string) The device name where the volume will attach.
+ :param wait:(bool) If true, waits for volume to be attached.
+ :param timeout: Seconds to wait for volume attachment. None is forever.
+
+ :returns: True if attached successful, False otherwise.
+ """
+ try:
+ server = shade_client.get_server(name_or_id=server_name_or_id)
+ volume = shade_client.get_volume(volume_name_or_id)
+ shade_client.attach_volume(
+ server, volume, device=device, wait=wait, timeout=timeout)
return True
-
-
-def delete_instance(nova_client, instance_id): # pragma: no cover
- try:
- nova_client.servers.force_delete(instance_id)
- except Exception:
- log.exception("Error [delete_instance(nova_client, '%s')]",
- instance_id)
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [attach_volume_to_server(shade_client)]. "
+ "Exception message: %s", o_exc.orig_message)
return False
- else:
- return True
-def remove_host_from_aggregate(nova_client, aggregate_name,
- compute_host): # pragma: no cover
- try:
- aggregate_id = get_aggregate_id(nova_client, aggregate_name)
- nova_client.aggregates.remove_host(aggregate_id, compute_host)
- except Exception:
- log.exception("Error remove_host_from_aggregate(nova_client, %s, %s)",
- aggregate_name, compute_host)
+def delete_instance(shade_client, name_or_id, wait=False, timeout=180,
+ delete_ips=False, delete_ip_retry=1):
+ """Delete a server instance.
+
+ :param name_or_id: name or ID of the server to delete
+ :param wait:(bool) If true, waits for server to be deleted.
+ :param timeout:(int) Seconds to wait for server deletion.
+ :param delete_ips:(bool) If true, deletes any floating IPs associated with
+ the instance.
+ :param delete_ip_retry:(int) Number of times to retry deleting
+ any floating ips, should the first try be
+ unsuccessful.
+ :returns: True if delete succeeded, False otherwise.
+ """
+ try:
+ return shade_client.delete_server(
+ name_or_id, wait=wait, timeout=timeout, delete_ips=delete_ips,
+ delete_ip_retry=delete_ip_retry)
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [delete_instance(shade_client, '%s')]. "
+ "Exception message: %s", name_or_id,
+ o_exc.orig_message)
return False
- else:
- return True
-
-
-def remove_hosts_from_aggregate(nova_client,
- aggregate_name): # pragma: no cover
- aggregate_id = get_aggregate_id(nova_client, aggregate_name)
- hosts = nova_client.aggregates.get(aggregate_id).hosts
- assert(
- all(remove_host_from_aggregate(nova_client, aggregate_name, host)
- for host in hosts))
-def delete_aggregate(nova_client, aggregate_name): # pragma: no cover
- try:
- remove_hosts_from_aggregate(nova_client, aggregate_name)
- nova_client.aggregates.delete(aggregate_name)
- except Exception:
- log.exception("Error [delete_aggregate(nova_client, %s)]",
- aggregate_name)
- return False
- else:
- return True
+def get_server(shade_client, name_or_id=None, filters=None, detailed=False,
+ bare=False):
+ """Get a server by name or ID.
+ :param name_or_id: Name or ID of the server.
+ :param filters:(dict) A dictionary of meta data to use for further
+ filtering.
+ :param detailed:(bool) Whether or not to add detailed additional
+ information.
+ :param bare:(bool) Whether to skip adding any additional information to the
+ server record.
-def get_server_by_name(name): # pragma: no cover
+ :returns: A server ``munch.Munch`` or None if no matching server is found.
+ """
try:
- return get_nova_client().servers.list(search_opts={'name': name})[0]
- except IndexError:
- log.exception('Failed to get nova client')
- raise
+ return shade_client.get_server(name_or_id=name_or_id, filters=filters,
+ detailed=detailed, bare=bare)
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [get_server(shade_client, '%s')]. "
+ "Exception message: %s", name_or_id, o_exc.orig_message)
def create_flavor(name, ram, vcpus, disk, **kwargs): # pragma: no cover
try:
- return get_nova_client().flavors.create(name, ram, vcpus, disk, **kwargs)
- except Exception:
+ return get_nova_client().flavors.create(name, ram, vcpus,
+ disk, **kwargs)
+ except Exception: # pylint: disable=broad-except
log.exception("Error [create_flavor(nova_client, %s, %s, %s, %s, %s)]",
name, ram, disk, vcpus, kwargs['is_public'])
return None
-def get_image_by_name(name): # pragma: no cover
- images = get_nova_client().images.list()
- try:
- return next((a for a in images if a.name == name))
- except StopIteration:
- log.exception('No image matched')
-
-
def get_flavor_id(nova_client, flavor_name): # pragma: no cover
flavors = nova_client.flavors.list(detailed=True)
flavor_id = ''
@@ -391,107 +386,167 @@ def get_flavor_id(nova_client, flavor_name): # pragma: no cover
return flavor_id
-def get_flavor_by_name(name): # pragma: no cover
- flavors = get_nova_client().flavors.list()
- try:
- return next((a for a in flavors if a.name == name))
- except StopIteration:
- log.exception('No flavor matched')
-
-
-def check_status(status, name, iterations, interval): # pragma: no cover
- for i in range(iterations):
- try:
- server = get_server_by_name(name)
- except IndexError:
- log.error('Cannot found %s server', name)
- raise
+def get_flavor(shade_client, name_or_id, filters=None, get_extra=True):
+ """Get a flavor by name or ID.
- if server.status == status:
- return True
+ :param name_or_id: Name or ID of the flavor.
+ :param filters: A dictionary of meta data to use for further filtering.
+ :param get_extra: Whether or not the list_flavors call should get the extra
+ flavor specs.
- time.sleep(interval)
- return False
+ :returns: A flavor ``munch.Munch`` or None if no matching flavor is found.
+ """
+ try:
+ return shade_client.get_flavor(name_or_id, filters=filters,
+ get_extra=get_extra)
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [get_flavor(shade_client, '%s')]. "
+ "Exception message: %s", name_or_id, o_exc.orig_message)
def delete_flavor(flavor_id): # pragma: no cover
try:
get_nova_client().flavors.delete(flavor_id)
- except Exception:
+ except Exception: # pylint: disable=broad-except
log.exception("Error [delete_flavor(nova_client, %s)]", flavor_id)
return False
else:
return True
-def delete_keypair(nova_client, key): # pragma: no cover
+def delete_keypair(shade_client, name):
+ """Delete a keypair.
+
+ :param name: Name of the keypair to delete.
+
+ :returns: True if delete succeeded, False otherwise.
+ """
try:
- nova_client.keypairs.delete(key=key)
- return True
- except Exception:
- log.exception("Error [delete_keypair(nova_client)]")
+ return shade_client.delete_keypair(name)
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [delete_neutron_router(shade_client, '%s')]. "
+ "Exception message: %s", name, o_exc.orig_message)
return False
# *********************************************
# NEUTRON
# *********************************************
-def get_network_id(neutron_client, network_name): # pragma: no cover
- networks = neutron_client.list_networks()['networks']
- return next((n['id'] for n in networks if n['name'] == network_name), None)
-
-
-def get_port_id_by_ip(neutron_client, ip_address): # pragma: no cover
- ports = neutron_client.list_ports()['ports']
- return next((i['id'] for i in ports for j in i.get(
- 'fixed_ips') if j['ip_address'] == ip_address), None)
-
-
-def create_neutron_net(neutron_client, json_body): # pragma: no cover
- try:
- network = neutron_client.create_network(body=json_body)
- return network['network']['id']
- except Exception:
- log.error("Error [create_neutron_net(neutron_client)]")
- raise Exception("operation error")
+def create_neutron_net(shade_client, network_name, shared=False,
+ admin_state_up=True, external=False, provider=None,
+ project_id=None):
+ """Create a neutron network.
+
+ :param network_name:(string) name of the network being created.
+ :param shared:(bool) whether the network is shared.
+ :param admin_state_up:(bool) set the network administrative state.
+ :param external:(bool) whether this network is externally accessible.
+ :param provider:(dict) a dict of network provider options.
+ :param project_id:(string) specify the project ID this network
+ will be created on (admin-only).
+ :returns:(string) the network id.
+ """
+ try:
+ networks = shade_client.create_network(
+ name=network_name, shared=shared, admin_state_up=admin_state_up,
+ external=external, provider=provider, project_id=project_id)
+ return networks['id']
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [create_neutron_net(shade_client)]."
+ "Exception message, '%s'", o_exc.orig_message)
return None
-def delete_neutron_net(neutron_client, network_id): # pragma: no cover
+def delete_neutron_net(shade_client, network_id):
try:
- neutron_client.delete_network(network_id)
- return True
- except Exception:
- log.error("Error [delete_neutron_net(neutron_client, '%s')]" % network_id)
+ return shade_client.delete_network(network_id)
+ except exc.OpenStackCloudException:
+ log.error("Error [delete_neutron_net(shade_client, '%s')]", network_id)
return False
-def create_neutron_subnet(neutron_client, json_body): # pragma: no cover
- try:
- subnet = neutron_client.create_subnet(body=json_body)
- return subnet['subnets'][0]['id']
- except Exception:
- log.error("Error [create_neutron_subnet")
- raise Exception("operation error")
+def create_neutron_subnet(shade_client, network_name_or_id, cidr=None,
+ ip_version=4, enable_dhcp=False, subnet_name=None,
+ tenant_id=None, allocation_pools=None,
+ gateway_ip=None, disable_gateway_ip=False,
+ dns_nameservers=None, host_routes=None,
+ ipv6_ra_mode=None, ipv6_address_mode=None,
+ use_default_subnetpool=False):
+ """Create a subnet on a specified network.
+
+ :param network_name_or_id:(string) the unique name or ID of the
+ attached network. If a non-unique name is
+ supplied, an exception is raised.
+ :param cidr:(string) the CIDR.
+ :param ip_version:(int) the IP version.
+ :param enable_dhcp:(bool) whether DHCP is enable.
+ :param subnet_name:(string) the name of the subnet.
+ :param tenant_id:(string) the ID of the tenant who owns the network.
+ :param allocation_pools: A list of dictionaries of the start and end
+ addresses for the allocation pools.
+ :param gateway_ip:(string) the gateway IP address.
+ :param disable_gateway_ip:(bool) whether gateway IP address is enabled.
+ :param dns_nameservers: A list of DNS name servers for the subnet.
+ :param host_routes: A list of host route dictionaries for the subnet.
+ :param ipv6_ra_mode:(string) IPv6 Router Advertisement mode.
+ Valid values are: 'dhcpv6-stateful',
+ 'dhcpv6-stateless', or 'slaac'.
+ :param ipv6_address_mode:(string) IPv6 address mode.
+ Valid values are: 'dhcpv6-stateful',
+ 'dhcpv6-stateless', or 'slaac'.
+ :param use_default_subnetpool:(bool) use the default subnetpool for
+ ``ip_version`` to obtain a CIDR. It is
+ required to pass ``None`` to the ``cidr``
+ argument when enabling this option.
+ :returns:(string) the subnet id.
+ """
+ try:
+ subnet = shade_client.create_subnet(
+ network_name_or_id, cidr=cidr, ip_version=ip_version,
+ enable_dhcp=enable_dhcp, subnet_name=subnet_name,
+ tenant_id=tenant_id, allocation_pools=allocation_pools,
+ gateway_ip=gateway_ip, disable_gateway_ip=disable_gateway_ip,
+ dns_nameservers=dns_nameservers, host_routes=host_routes,
+ ipv6_ra_mode=ipv6_ra_mode, ipv6_address_mode=ipv6_address_mode,
+ use_default_subnetpool=use_default_subnetpool)
+ return subnet['id']
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [create_neutron_subnet(shade_client)]. "
+ "Exception message: %s", o_exc.orig_message)
return None
-def create_neutron_router(neutron_client, json_body): # pragma: no cover
+def create_neutron_router(shade_client, name=None, admin_state_up=True,
+ ext_gateway_net_id=None, enable_snat=None,
+ ext_fixed_ips=None, project_id=None):
+ """Create a logical router.
+
+ :param name:(string) the router name.
+ :param admin_state_up:(bool) the administrative state of the router.
+ :param ext_gateway_net_id:(string) network ID for the external gateway.
+ :param enable_snat:(bool) enable Source NAT (SNAT) attribute.
+ :param ext_fixed_ips: List of dictionaries of desired IP and/or subnet
+ on the external network.
+ :param project_id:(string) project ID for the router.
+
+ :returns:(string) the router id.
+ """
try:
- router = neutron_client.create_router(json_body)
- return router['router']['id']
- except Exception:
- log.error("Error [create_neutron_router(neutron_client)]")
- raise Exception("operation error")
- return None
+ router = shade_client.create_router(
+ name, admin_state_up, ext_gateway_net_id, enable_snat,
+ ext_fixed_ips, project_id)
+ return router['id']
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [create_neutron_router(shade_client)]. "
+ "Exception message: %s", o_exc.orig_message)
-def delete_neutron_router(neutron_client, router_id): # pragma: no cover
+def delete_neutron_router(shade_client, router_id):
try:
- neutron_client.delete_router(router=router_id)
- return True
- except Exception:
- log.error("Error [delete_neutron_router(neutron_client, '%s')]" % router_id)
+ return shade_client.delete_router(router_id)
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [delete_neutron_router(shade_client, '%s')]. "
+ "Exception message: %s", router_id, o_exc.orig_message)
return False
@@ -499,260 +554,344 @@ def remove_gateway_router(neutron_client, router_id): # pragma: no cover
try:
neutron_client.remove_gateway_router(router_id)
return True
- except Exception:
- log.error("Error [remove_gateway_router(neutron_client, '%s')]" % router_id)
+ except Exception: # pylint: disable=broad-except
+ log.error("Error [remove_gateway_router(neutron_client, '%s')]",
+ router_id)
return False
-def remove_interface_router(neutron_client, router_id, subnet_id,
- **json_body): # pragma: no cover
- json_body.update({"subnet_id": subnet_id})
+def remove_router_interface(shade_client, router, subnet_id=None,
+ port_id=None):
+ """Detach a subnet from an internal router interface.
+
+ At least one of subnet_id or port_id must be supplied. If you specify both
+ subnet and port ID, the subnet ID must correspond to the subnet ID of the
+ first IP address on the port specified by the port ID.
+ Otherwise an error occurs.
+
+ :param router: The dict object of the router being changed
+ :param subnet_id:(string) The ID of the subnet to use for the interface
+ :param port_id:(string) The ID of the port to use for the interface
+ :returns: True on success
+ """
try:
- neutron_client.remove_interface_router(router=router_id,
- body=json_body)
+ shade_client.remove_router_interface(
+ router, subnet_id=subnet_id, port_id=port_id)
return True
- except Exception:
- log.error("Error [remove_interface_router(neutron_client, '%s', "
- "'%s')]" % (router_id, subnet_id))
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [remove_interface_router(shade_client)]. "
+ "Exception message: %s", o_exc.orig_message)
return False
-def create_floating_ip(neutron_client, extnet_id): # pragma: no cover
- props = {'floating_network_id': extnet_id}
- try:
- ip_json = neutron_client.create_floatingip({'floatingip': props})
- fip_addr = ip_json['floatingip']['floating_ip_address']
- fip_id = ip_json['floatingip']['id']
- except Exception:
- log.error("Error [create_floating_ip(neutron_client)]")
- return None
- return {'fip_addr': fip_addr, 'fip_id': fip_id}
+def create_floating_ip(shade_client, network_name_or_id=None, server=None,
+ fixed_address=None, nat_destination=None,
+ port=None, wait=False, timeout=60):
+ """Allocate a new floating IP from a network or a pool.
+
+ :param network_name_or_id: Name or ID of the network
+ that the floating IP should come from.
+ :param server: Server dict for the server to create
+ the IP for and to which it should be attached.
+ :param fixed_address: Fixed IP to attach the floating ip to.
+ :param nat_destination: Name or ID of the network
+ that the fixed IP to attach the floating
+ IP to should be on.
+ :param port: The port ID that the floating IP should be
+ attached to. Specifying a port conflicts with specifying a
+ server,fixed_address or nat_destination.
+ :param wait: Whether to wait for the IP to be active.Only applies
+ if a server is provided.
+ :param timeout: How long to wait for the IP to be active.Only
+ applies if a server is provided.
+
+ :returns:Floating IP id and address
+ """
+ try:
+ fip = shade_client.create_floating_ip(
+ network=network_name_or_id, server=server,
+ fixed_address=fixed_address, nat_destination=nat_destination,
+ port=port, wait=wait, timeout=timeout)
+ return {'fip_addr': fip['floating_ip_address'], 'fip_id': fip['id']}
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [create_floating_ip(shade_client)]. "
+ "Exception message: %s", o_exc.orig_message)
+
+
+def delete_floating_ip(shade_client, floating_ip_id, retry=1):
+ try:
+ return shade_client.delete_floating_ip(floating_ip_id=floating_ip_id,
+ retry=retry)
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [delete_floating_ip(shade_client,'%s')]. "
+ "Exception message: %s", floating_ip_id, o_exc.orig_message)
+ return False
-def delete_floating_ip(nova_client, floatingip_id): # pragma: no cover
- try:
- nova_client.floating_ips.delete(floatingip_id)
+def create_security_group_rule(shade_client, secgroup_name_or_id,
+ port_range_min=None, port_range_max=None,
+ protocol=None, remote_ip_prefix=None,
+ remote_group_id=None, direction='ingress',
+ ethertype='IPv4', project_id=None):
+ """Create a new security group rule
+
+ :param secgroup_name_or_id:(string) The security group name or ID to
+ associate with this security group rule. If a
+ non-unique group name is given, an exception is
+ raised.
+ :param port_range_min:(int) The minimum port number in the range that is
+ matched by the security group rule. If the protocol
+ is TCP or UDP, this value must be less than or equal
+ to the port_range_max attribute value. If nova is
+ used by the cloud provider for security groups, then
+ a value of None will be transformed to -1.
+ :param port_range_max:(int) The maximum port number in the range that is
+ matched by the security group rule. The
+ port_range_min attribute constrains the
+ port_range_max attribute. If nova is used by the
+ cloud provider for security groups, then a value of
+ None will be transformed to -1.
+ :param protocol:(string) The protocol that is matched by the security group
+ rule. Valid values are None, tcp, udp, and icmp.
+ :param remote_ip_prefix:(string) The remote IP prefix to be associated with
+ this security group rule. This attribute matches
+ the specified IP prefix as the source IP address of
+ the IP packet.
+ :param remote_group_id:(string) The remote group ID to be associated with
+ this security group rule.
+ :param direction:(string) Ingress or egress: The direction in which the
+ security group rule is applied.
+ :param ethertype:(string) Must be IPv4 or IPv6, and addresses represented
+ in CIDR must match the ingress or egress rules.
+ :param project_id:(string) Specify the project ID this security group will
+ be created on (admin-only).
+
+ :returns: True on success.
+ """
+
+ try:
+ shade_client.create_security_group_rule(
+ secgroup_name_or_id, port_range_min=port_range_min,
+ port_range_max=port_range_max, protocol=protocol,
+ remote_ip_prefix=remote_ip_prefix, remote_group_id=remote_group_id,
+ direction=direction, ethertype=ethertype, project_id=project_id)
return True
- except Exception:
- log.error("Error [delete_floating_ip(nova_client, '%s')]" % floatingip_id)
+ except exc.OpenStackCloudException as op_exc:
+ log.error("Failed to create_security_group_rule(shade_client). "
+ "Exception message: %s", op_exc.orig_message)
return False
-def get_security_groups(neutron_client): # pragma: no cover
- try:
- security_groups = neutron_client.list_security_groups()[
- 'security_groups']
- return security_groups
- except Exception:
- log.error("Error [get_security_groups(neutron_client)]")
- return None
+def create_security_group_full(shade_client, sg_name,
+ sg_description, project_id=None):
+ security_group = shade_client.get_security_group(sg_name)
+
+ if security_group:
+ log.info("Using existing security group '%s'...", sg_name)
+ return security_group['id']
+
+ log.info("Creating security group '%s'...", sg_name)
+ try:
+ security_group = shade_client.create_security_group(
+ sg_name, sg_description, project_id=project_id)
+ except (exc.OpenStackCloudException,
+ exc.OpenStackCloudUnavailableFeature) as op_exc:
+ log.error("Error [create_security_group(shade_client, %s, %s)]. "
+ "Exception message: %s", sg_name, sg_description,
+ op_exc.orig_message)
+ return
+
+ log.debug("Security group '%s' with ID=%s created successfully.",
+ security_group['name'], security_group['id'])
+
+ log.debug("Adding ICMP rules in security group '%s'...", sg_name)
+ if not create_security_group_rule(shade_client, security_group['id'],
+ direction='ingress', protocol='icmp'):
+ log.error("Failed to create the security group rule...")
+ shade_client.delete_security_group(sg_name)
+ return
+
+ log.debug("Adding SSH rules in security group '%s'...", sg_name)
+ if not create_security_group_rule(shade_client, security_group['id'],
+ direction='ingress', protocol='tcp',
+ port_range_min='22',
+ port_range_max='22'):
+ log.error("Failed to create the security group rule...")
+ shade_client.delete_security_group(sg_name)
+ return
+
+ if not create_security_group_rule(shade_client, security_group['id'],
+ direction='egress', protocol='tcp',
+ port_range_min='22',
+ port_range_max='22'):
+ log.error("Failed to create the security group rule...")
+ shade_client.delete_security_group(sg_name)
+ return
+ return security_group['id']
-def get_security_group_id(neutron_client, sg_name): # pragma: no cover
- security_groups = get_security_groups(neutron_client)
- id = ''
- for sg in security_groups:
- if sg['name'] == sg_name:
- id = sg['id']
- break
- return id
+# *********************************************
+# GLANCE
+# *********************************************
+def create_image(shade_client, name, filename=None, container='images',
+ md5=None, sha256=None, disk_format=None,
+ container_format=None, disable_vendor_agent=True,
+ wait=False, timeout=3600, allow_duplicates=False, meta=None,
+ volume=None, **kwargs):
+ """Upload an image.
+
+ :param name:(str) Name of the image to create. If it is a pathname of an
+ image, the name will be constructed from the extensionless
+ basename of the path.
+ :param filename:(str) The path to the file to upload, if needed.
+ :param container:(str) Name of the container in swift where images should
+ be uploaded for import if the cloud requires such a thing.
+ :param md5:(str) md5 sum of the image file. If not given, an md5 will
+ be calculated.
+ :param sha256:(str) sha256 sum of the image file. If not given, an md5
+ will be calculated.
+ :param disk_format:(str) The disk format the image is in.
+ :param container_format:(str) The container format the image is in.
+ :param disable_vendor_agent:(bool) Whether or not to append metadata
+ flags to the image to inform the cloud in
+ question to not expect a vendor agent to be running.
+ :param wait:(bool) If true, waits for image to be created.
+ :param timeout:(str) Seconds to wait for image creation.
+ :param allow_duplicates:(bool) If true, skips checks that enforce unique
+ image name.
+ :param meta:(dict) A dict of key/value pairs to use for metadata that
+ bypasses automatic type conversion.
+ :param volume:(str) Name or ID or volume object of a volume to create an
+ image from.
+ Additional kwargs will be passed to the image creation as additional
+ metadata for the image and will have all values converted to string
+ except for min_disk, min_ram, size and virtual_size which will be
+ converted to int.
+ If you are sure you have all of your data types correct or have an
+ advanced need to be explicit, use meta. If you are just a normal
+ consumer, using kwargs is likely the right choice.
+ If a value is in meta and kwargs, meta wins.
+ :returns: Image id
+ """
+ try:
+ image_id = shade_client.get_image_id(name)
+ if image_id is not None:
+ log.info("Image %s already exists.", name)
+ return image_id
+ log.info("Creating image '%s'", name)
+ image = shade_client.create_image(
+ name, filename=filename, container=container, md5=md5, sha256=sha256,
+ disk_format=disk_format, container_format=container_format,
+ disable_vendor_agent=disable_vendor_agent, wait=wait, timeout=timeout,
+ allow_duplicates=allow_duplicates, meta=meta, volume=volume, **kwargs)
+ image_id = image["id"]
+ return image_id
+ except exc.OpenStackCloudException as op_exc:
+ log.error("Failed to create_image(shade_client). "
+ "Exception message: %s", op_exc.orig_message)
-def create_security_group(neutron_client, sg_name, sg_description): # pragma: no cover
- json_body = {'security_group': {'name': sg_name,
- 'description': sg_description}}
+def delete_image(shade_client, name_or_id, wait=False, timeout=3600,
+ delete_objects=True):
try:
- secgroup = neutron_client.create_security_group(json_body)
- return secgroup['security_group']
- except Exception:
- log.error("Error [create_security_group(neutron_client, '%s', "
- "'%s')]" % (sg_name, sg_description))
- return None
-
+ return shade_client.delete_image(name_or_id, wait=wait,
+ timeout=timeout,
+ delete_objects=delete_objects)
-def create_secgroup_rule(neutron_client, sg_id, direction, protocol,
- port_range_min=None, port_range_max=None,
- **json_body): # pragma: no cover
- # We create a security group in 2 steps
- # 1 - we check the format and set the json body accordingly
- # 2 - we call neturon client to create the security group
-
- # Format check
- json_body.update({'security_group_rule': {'direction': direction,
- 'security_group_id': sg_id, 'protocol': protocol}})
- # parameters may be
- # - both None => we do nothing
- # - both Not None => we add them to the json description
- # but one cannot be None is the other is not None
- if (port_range_min is not None and port_range_max is not None):
- # add port_range in json description
- json_body['security_group_rule']['port_range_min'] = port_range_min
- json_body['security_group_rule']['port_range_max'] = port_range_max
- log.debug("Security_group format set (port range included)")
- else:
- # either both port range are set to None => do nothing
- # or one is set but not the other => log it and return False
- if port_range_min is None and port_range_max is None:
- log.debug("Security_group format set (no port range mentioned)")
- else:
- log.error("Bad security group format."
- "One of the port range is not properly set:"
- "range min: {},"
- "range max: {}".format(port_range_min,
- port_range_max))
- return False
-
- # Create security group using neutron client
- try:
- neutron_client.create_security_group_rule(json_body)
- return True
- except Exception:
- log.exception("Impossible to create_security_group_rule,"
- "security group rule probably already exists")
+ except exc.OpenStackCloudException as op_exc:
+ log.error("Failed to delete_image(shade_client). "
+ "Exception message: %s", op_exc.orig_message)
return False
-def create_security_group_full(neutron_client,
- sg_name, sg_description): # pragma: no cover
- sg_id = get_security_group_id(neutron_client, sg_name)
- if sg_id != '':
- log.info("Using existing security group '%s'..." % sg_name)
- else:
- log.info("Creating security group '%s'..." % sg_name)
- SECGROUP = create_security_group(neutron_client,
- sg_name,
- sg_description)
- if not SECGROUP:
- log.error("Failed to create the security group...")
- return None
-
- sg_id = SECGROUP['id']
-
- log.debug("Security group '%s' with ID=%s created successfully."
- % (SECGROUP['name'], sg_id))
-
- log.debug("Adding ICMP rules in security group '%s'..."
- % sg_name)
- if not create_secgroup_rule(neutron_client, sg_id,
- 'ingress', 'icmp'):
- log.error("Failed to create the security group rule...")
- return None
-
- log.debug("Adding SSH rules in security group '%s'..."
- % sg_name)
- if not create_secgroup_rule(
- neutron_client, sg_id, 'ingress', 'tcp', '22', '22'):
- log.error("Failed to create the security group rule...")
- return None
-
- if not create_secgroup_rule(
- neutron_client, sg_id, 'egress', 'tcp', '22', '22'):
- log.error("Failed to create the security group rule...")
- return None
- return sg_id
+def list_images(shade_client=None):
+ if shade_client is None:
+ shade_client = get_shade_client()
+
+ try:
+ return shade_client.list_images()
+ except exc.OpenStackCloudException as o_exc:
+ log.error("Error [list_images(shade_client)]."
+ "Exception message, '%s'", o_exc.orig_message)
+ return False
# *********************************************
-# GLANCE
+# CINDER
# *********************************************
-def get_image_id(glance_client, image_name): # pragma: no cover
- images = glance_client.images.list()
- return next((i.id for i in images if i.name == image_name), None)
+def get_volume_id(shade_client, volume_name):
+ return shade_client.get_volume_id(volume_name)
-def create_image(glance_client, image_name, file_path, disk_format,
- container_format, min_disk, min_ram, protected, tag,
- public, **kwargs): # pragma: no cover
- if not os.path.isfile(file_path):
- log.error("Error: file %s does not exist." % file_path)
- return None
- try:
- image_id = get_image_id(glance_client, image_name)
- if image_id is not None:
- log.info("Image %s already exists." % image_name)
- else:
- log.info("Creating image '%s' from '%s'...", image_name, file_path)
-
- image = glance_client.images.create(name=image_name,
- visibility=public,
- disk_format=disk_format,
- container_format=container_format,
- min_disk=min_disk,
- min_ram=min_ram,
- tags=tag,
- protected=protected,
- **kwargs)
- image_id = image.id
- with open(file_path) as image_data:
- glance_client.images.upload(image_id, image_data)
- return image_id
- except Exception:
- log.error("Error [create_glance_image(glance_client, '%s', '%s', '%s')]",
- image_name, file_path, public)
- return None
+def get_volume(shade_client, name_or_id, filters=None):
+ """Get a volume by name or ID.
+ :param name_or_id: Name or ID of the volume.
+ :param filters: A dictionary of meta data to use for further filtering.
-def delete_image(glance_client, image_id): # pragma: no cover
- try:
- glance_client.images.delete(image_id)
+ :returns: A volume ``munch.Munch`` or None if no matching volume is found.
+ """
+ return shade_client.get_volume(name_or_id, filters=filters)
- except Exception:
- log.exception("Error [delete_flavor(glance_client, %s)]", image_id)
- return False
- else:
- return True
+def create_volume(shade_client, size, wait=True, timeout=None,
+ image=None, **kwargs):
+ """Create a volume.
-# *********************************************
-# CINDER
-# *********************************************
-def get_volume_id(volume_name): # pragma: no cover
- volumes = get_cinder_client().volumes.list()
- return next((v.id for v in volumes if v.name == volume_name), None)
-
-
-def create_volume(cinder_client, volume_name, volume_size,
- volume_image=False): # pragma: no cover
- try:
- if volume_image:
- volume = cinder_client.volumes.create(name=volume_name,
- size=volume_size,
- imageRef=volume_image)
- else:
- volume = cinder_client.volumes.create(name=volume_name,
- size=volume_size)
- return volume
- except Exception:
- log.exception("Error [create_volume(cinder_client, %s)]",
- (volume_name, volume_size))
- return None
+ :param size: Size, in GB of the volume to create.
+ :param name: (optional) Name for the volume.
+ :param description: (optional) Name for the volume.
+ :param wait: If true, waits for volume to be created.
+ :param timeout: Seconds to wait for volume creation. None is forever.
+ :param image: (optional) Image name, ID or object from which to create
+ the volume.
+ :returns: The created volume object.
-def delete_volume(cinder_client, volume_id, forced=False): # pragma: no cover
- try:
- if forced:
- try:
- cinder_client.volumes.detach(volume_id)
- except:
- log.error(sys.exc_info()[0])
- cinder_client.volumes.force_delete(volume_id)
- else:
- while True:
- volume = get_cinder_client().volumes.get(volume_id)
- if volume.status.lower() == 'available':
- break
- cinder_client.volumes.delete(volume_id)
- return True
- except Exception:
- log.exception("Error [delete_volume(cinder_client, '%s')]" % volume_id)
+ """
+ try:
+ return shade_client.create_volume(size, wait=wait, timeout=timeout,
+ image=image, **kwargs)
+ except (exc.OpenStackCloudException, exc.OpenStackCloudTimeout) as op_exc:
+ log.error("Failed to create_volume(shade_client). "
+ "Exception message: %s", op_exc.orig_message)
+
+
+def delete_volume(shade_client, name_or_id=None, wait=True, timeout=None):
+ """Delete a volume.
+
+ :param name_or_id:(string) Name or unique ID of the volume.
+ :param wait:(bool) If true, waits for volume to be deleted.
+ :param timeout:(string) Seconds to wait for volume deletion. None is forever.
+
+ :return: True on success, False otherwise.
+ """
+ try:
+ return shade_client.delete_volume(name_or_id=name_or_id,
+ wait=wait, timeout=timeout)
+ except (exc.OpenStackCloudException, exc.OpenStackCloudTimeout) as o_exc:
+ log.error("Error [delete_volume(shade_client,'%s')]. "
+ "Exception message: %s", name_or_id, o_exc.orig_message)
return False
-def detach_volume(server_id, volume_id): # pragma: no cover
+def detach_volume(shade_client, server_name_or_id, volume_name_or_id,
+ wait=True, timeout=None):
+ """Detach a volume from a server.
+
+ :param server_name_or_id: The server name or id to detach from.
+ :param volume_name_or_id: The volume name or id to detach.
+ :param wait: If true, waits for volume to be detached.
+ :param timeout: Seconds to wait for volume detachment. None is forever.
+
+ :return: True on success.
+ """
try:
- get_nova_client().volumes.delete_server_volume(server_id, volume_id)
+ volume = shade_client.get_volume(volume_name_or_id)
+ server = get_server(shade_client, name_or_id=server_name_or_id)
+ shade_client.detach_volume(server, volume, wait=wait, timeout=timeout)
return True
- except Exception:
- log.exception("Error [detach_server_volume(nova_client, '%s', '%s')]",
- server_id, volume_id)
+ except (exc.OpenStackCloudException, exc.OpenStackCloudTimeout) as o_exc:
+ log.error("Error [detach_volume(shade_client)]. "
+ "Exception message: %s", o_exc.orig_message)
return False
diff --git a/yardstick/common/packages.py b/yardstick/common/packages.py
new file mode 100644
index 000000000..c65eab2ba
--- /dev/null
+++ b/yardstick/common/packages.py
@@ -0,0 +1,87 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+import re
+
+from pip._internal.main import main
+from pip._internal import exceptions as pip_exceptions
+from pip._internal.operations import freeze
+
+from yardstick.common import privsep
+
+
+LOG = logging.getLogger(__name__)
+
+ACTION_INSTALL = 'install'
+ACTION_UNINSTALL = 'uninstall'
+
+
+@privsep.yardstick_root.entrypoint
+def _pip_main(package, action, target=None):
+ if action == ACTION_UNINSTALL:
+ cmd = [action, package, '-y']
+ elif action == ACTION_INSTALL:
+ cmd = [action, package, '--upgrade']
+ if target:
+ cmd.append('--target=%s' % target)
+ return main(cmd)
+
+
+def _pip_execute_action(package, action=ACTION_INSTALL, target=None):
+ """Execute an action with a PIP package.
+
+ According to [1], a package could be a URL, a local directory, a local dist
+ file or a requirements file.
+
+ [1] https://pip.pypa.io/en/stable/reference/pip_install/#argument-handling
+ """
+ try:
+ status = _pip_main(package, action, target)
+ except pip_exceptions.PipError:
+ status = 1
+
+ if not status:
+ LOG.info('Action "%s" executed, package %s', package, action)
+ else:
+ LOG.info('Error executing action "%s", package %s', package, action)
+ return status
+
+
+def pip_remove(package):
+ """Remove an installed PIP package"""
+ return _pip_execute_action(package, action=ACTION_UNINSTALL)
+
+
+def pip_install(package, target=None):
+ """Install a PIP package"""
+ return _pip_execute_action(package, action=ACTION_INSTALL, target=target)
+
+
+def pip_list(pkg_name=None):
+ """Dict of installed PIP packages with version.
+
+ If 'pkg_name' is not None, will return only those packages matching the
+ name."""
+ pip_regex = re.compile(r"(?P<name>.*)==(?P<version>[\w\.]+)")
+ git_regex = re.compile(r".*@(?P<version>[\w]+)#egg=(?P<name>[\w]+)")
+
+ pkg_dict = {}
+ for _pkg in freeze.freeze(local_only=True):
+ match = pip_regex.match(_pkg) or git_regex.match(_pkg)
+ if match and (not pkg_name or (
+ pkg_name and match.group('name').find(pkg_name) != -1)):
+ pkg_dict[match.group('name')] = match.group('version')
+
+ return pkg_dict
diff --git a/yardstick/common/privsep.py b/yardstick/common/privsep.py
new file mode 100644
index 000000000..4ae510489
--- /dev/null
+++ b/yardstick/common/privsep.py
@@ -0,0 +1,23 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from oslo_privsep import capabilities as c
+from oslo_privsep import priv_context
+
+yardstick_root = priv_context.PrivContext(
+ "yardstick",
+ cfg_section="yardstick_privileged",
+ pypath=__name__ + ".yardstick_root",
+ capabilities=[c.CAP_SYS_ADMIN]
+)
diff --git a/yardstick/common/report.html.j2 b/yardstick/common/report.html.j2
new file mode 100644
index 000000000..1dc7b1db1
--- /dev/null
+++ b/yardstick/common/report.html.j2
@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html>
+
+<!--
+ Copyright (c) 2017 Rajesh Kudaka <4k.rajesh@gmail.com>
+ Copyright (c) 2018 Intel Corporation.
+
+ 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
+-->
+
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.bundle.min.js"></script>
+
+ <style>
+ table {
+ overflow-y: scroll;
+ height: 360px;
+ display: block;
+ }
+ header {
+ font-family: Frutiger, "Helvetica Neue", Helvetica, Arial, sans-serif;
+ clear: left;
+ text-align: center;
+ }
+ </style>
+ </head>
+
+ <body>
+ <header class="jumbotron text-center">
+ <h1>Yardstick User Interface</h1>
+ <h4>Report of {{task_id}} Generated</h4>
+ </header>
+
+ <div class="container">
+ <div class="row">
+ <div class="col-md-4">
+ <div class="table-responsive">
+ <table class="table table-hover"></table>
+ </div>
+ </div>
+ <div class="col-md-8">
+ <canvas id="cnvGraph" style="width: 100%; height: 500px"></canvas>
+ </div>
+ </div>
+ </div>
+
+ <script>
+ var None = null;
+ var arr, tab, th, tr, td, tn, row, col, thead, tbody, val;
+ arr = {{table|safe}};
+ tab = document.getElementsByTagName('table')[0];
+
+ thead = document.createElement('thead');
+ tr = document.createElement('tr');
+ for (col = 0; col < Object.keys(arr).length; col++) {
+ th = document.createElement('th');
+ tn = document.createTextNode(Object.keys(arr).sort()[col]);
+ th.appendChild(tn);
+ tr.appendChild(th);
+ }
+ thead.appendChild(tr);
+ tab.appendChild(thead);
+
+ tbody = document.createElement('tbody');
+ for (row = 0; row < arr[Object.keys(arr)[0]].length; row++) {
+ tr = document.createElement('tr');
+ for (col = 0; col < Object.keys(arr).length; col++) {
+ val = arr[Object.keys(arr).sort()[col]][row];
+ td = document.createElement('td');
+ tn = document.createTextNode(val === None ? '' : val);
+ td.appendChild(tn);
+ tr.appendChild(td);
+ }
+ tbody.appendChild(tr);
+ }
+ tab.appendChild(tbody);
+
+ $(function() {
+ var datasets = {{datasets|safe}};
+
+ var colors = [
+ '#FF0000', // Red
+ '#228B22', // ForestGreen
+ '#FF8C00', // DarkOrange
+ '#00008B', // DarkBlue
+ '#FF00FF', // Fuchsia
+ '#9ACD32', // YellowGreen
+ '#FFD700', // Gold
+ '#4169E1', // RoyalBlue
+ '#A0522D', // Sienna
+ '#20B2AA', // LightSeaGreen
+ '#8A2BE2', // BlueViolet
+ ];
+
+ var points = [
+ {s: 'circle', r: 3},
+ {s: 'rect', r: 4},
+ {s: 'triangle', r: 4},
+ {s: 'star', r: 4},
+ {s: 'rectRot', r: 5},
+ ];
+
+ datasets.forEach(function(d, i) {
+ var color = colors[i % colors.length];
+ var point = points[i % points.length];
+ d.borderColor = color;
+ d.backgroundColor = color;
+ d.pointStyle = point.s;
+ d.pointRadius = point.r;
+ d.pointHoverRadius = point.r + 1;
+ });
+
+ new Chart($('#cnvGraph'), {
+ type: 'line',
+ data: {
+ labels: {{Timestamps|safe}},
+ datasets: datasets,
+ },
+ options: {
+ elements: {
+ line: {
+ borderWidth: 2,
+ fill: false,
+ tension: 0,
+ },
+ },
+ title: {
+ text: [
+ 'Yardstick test results',
+ 'Report of {{task_id}} Task Generated',
+ ],
+ display: true,
+ },
+ scales: {
+ xAxes: [{
+ type: 'category',
+ scaleLabel: {
+ display: true,
+ labelString: 'Timestamp',
+ },
+ }],
+ yAxes: [{
+ type: 'linear',
+ scaleLabel: {
+ display: true,
+ labelString: 'Values',
+ },
+ }],
+ },
+ tooltips: {
+ mode: 'point',
+ intersect: true,
+ },
+ hover: {
+ mode: 'index',
+ intersect: false,
+ animationDuration: 0,
+ },
+ legend: {
+ position: 'right',
+ labels: {
+ usePointStyle: true,
+ },
+ },
+ animation: {
+ duration: 0,
+ },
+ responsive: true,
+ responsiveAnimationDuration: 0,
+ maintainAspectRatio: false,
+ },
+ });
+ });
+ </script>
+ </body>
+</html>
diff --git a/yardstick/common/utils.py b/yardstick/common/utils.py
index 82e20bec7..7475f6991 100644
--- a/yardstick/common/utils.py
+++ b/yardstick/common/utils.py
@@ -13,30 +13,35 @@
# License for the specific language governing permissions and limitations
# under the License.
-# yardstick comment: this is a modified copy of rally/rally/common/utils.py
-
-from __future__ import absolute_import
-from __future__ import print_function
-
+import collections
+from contextlib import closing
import datetime
import errno
+import importlib
+import ipaddress
+import json
import logging
import os
+import pydoc
+import random
+import re
+import signal
+import socket
import subprocess
import sys
-import collections
-import socket
-import random
-import ipaddress
-from contextlib import closing
+import time
+import threading
+import math
import six
from flask import jsonify
from six.moves import configparser
-from oslo_utils import importutils
from oslo_serialization import jsonutils
+from oslo_utils import encodeutils
import yardstick
+from yardstick.common import exceptions
+
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
@@ -69,28 +74,46 @@ def itersubclasses(cls, _seen=None):
yield sub
-def import_modules_from_package(package):
- """Import modules from package and append into sys.modules
+def import_modules_from_package(package, raise_exception=False):
+ """Import modules given a package name
:param: package - Full package name. For example: rally.deploy.engines
"""
yardstick_root = os.path.dirname(os.path.dirname(yardstick.__file__))
- path = os.path.join(yardstick_root, *package.split("."))
+ path = os.path.join(yardstick_root, *package.split('.'))
for root, _, files in os.walk(path):
- matches = (filename for filename in files if filename.endswith(".py") and
- not filename.startswith("__"))
- new_package = os.path.relpath(root, yardstick_root).replace(os.sep, ".")
+ matches = (filename for filename in files if filename.endswith('.py')
+ and not filename.startswith('__'))
+ new_package = os.path.relpath(root, yardstick_root).replace(os.sep,
+ '.')
module_names = set(
- ("{}.{}".format(new_package, filename.rsplit(".py", 1)[0]) for filename in matches))
- # find modules which haven't already been imported
+ '{}.{}'.format(new_package, filename.rsplit('.py', 1)[0])
+ for filename in matches)
+ # Find modules which haven't already been imported
missing_modules = module_names.difference(sys.modules)
- logger.debug("importing %s", missing_modules)
- # we have already checked for already imported modules, so we don't need to check again
+ logger.debug('Importing modules: %s', missing_modules)
for module_name in missing_modules:
try:
- sys.modules[module_name] = importutils.import_module(module_name)
- except (ImportError, SyntaxError):
- logger.exception("unable to import %s", module_name)
+ importlib.import_module(module_name)
+ except (ImportError, SyntaxError) as exc:
+ if raise_exception:
+ raise exc
+ logger.exception('Unable to import module %s', module_name)
+
+
+NON_NONE_DEFAULT = object()
+
+
+def get_key_with_default(data, key, default=NON_NONE_DEFAULT):
+ value = data.get(key, default)
+ if value is NON_NONE_DEFAULT:
+ raise KeyError(key)
+ return value
+
+
+def make_dict_from_map(data, key_map):
+ return {dest_key: get_key_with_default(data, src_key, default)
+ for dest_key, (src_key, default) in key_map.items()}
def makedirs(d):
@@ -109,19 +132,23 @@ def remove_file(path):
raise
-def execute_command(cmd):
+def execute_command(cmd, **kwargs):
exec_msg = "Executing command: '%s'" % cmd
logger.debug(exec_msg)
- output = subprocess.check_output(cmd.split()).split(os.linesep)
-
- return output
+ output = subprocess.check_output(cmd.split(), **kwargs)
+ return encodeutils.safe_decode(output, incoming='utf-8').split(os.linesep)
def source_env(env_file):
p = subprocess.Popen(". %s; env" % env_file, stdout=subprocess.PIPE,
shell=True)
output = p.communicate()[0]
+
+ # sometimes output type would be binary_type, and it don't have splitlines
+ # method, so we need to decode
+ if isinstance(output, six.binary_type):
+ output = encodeutils.safe_decode(output)
env = dict(line.split('=', 1) for line in output.splitlines() if '=' in line)
os.environ.update(env)
return env
@@ -170,20 +197,16 @@ def parse_ini_file(path):
def get_port_mac(sshclient, port):
cmd = "ifconfig |grep HWaddr |grep %s |awk '{print $5}' " % port
- status, stdout, stderr = sshclient.execute(cmd)
+ _, stdout, _ = sshclient.execute(cmd, raise_on_error=True)
- if status:
- raise RuntimeError(stderr)
return stdout.rstrip()
def get_port_ip(sshclient, port):
cmd = "ifconfig %s |grep 'inet addr' |awk '{print $2}' " \
"|cut -d ':' -f2 " % port
- status, stdout, stderr = sshclient.execute(cmd)
+ _, stdout, _ = sshclient.execute(cmd, raise_on_error=True)
- if status:
- raise RuntimeError(stderr)
return stdout.rstrip()
@@ -258,11 +281,30 @@ def get_free_port(ip):
def mac_address_to_hex_list(mac):
- octets = ["0x{:02x}".format(int(elem, 16)) for elem in mac.split(':')]
- assert len(octets) == 6 and all(len(octet) == 4 for octet in octets)
+ try:
+ octets = ["0x{:02x}".format(int(elem, 16)) for elem in mac.split(':')]
+ except ValueError:
+ raise exceptions.InvalidMacAddress(mac_address=mac)
+ if len(octets) != 6 or all(len(octet) != 4 for octet in octets):
+ raise exceptions.InvalidMacAddress(mac_address=mac)
return octets
+def make_ipv4_address(ip_addr):
+ return ipaddress.IPv4Address(six.text_type(ip_addr))
+
+
+def get_ip_range_count(iprange):
+ start_range, end_range = iprange.split("-")
+ start = int(make_ipv4_address(start_range))
+ end = int(make_ipv4_address(end_range))
+ return end - start
+
+
+def get_ip_range_start(iprange):
+ return str(make_ipv4_address(iprange.split("-")[0]))
+
+
def safe_ip_address(ip_addr):
""" get ip address version v6 or v4 """
try:
@@ -283,6 +325,19 @@ def get_ip_version(ip_addr):
return address.version
+def make_ip_addr(ip, mask):
+ """
+ :param ip[str]: ip adddress
+ :param mask[str]: /24 prefix of 255.255.255.0 netmask
+ :return: IPv4Interface object
+ """
+ try:
+ return ipaddress.ip_interface(six.text_type('/'.join([ip, mask])))
+ except (TypeError, ValueError):
+ # None so we can skip later
+ return None
+
+
def ip_to_hex(ip_addr, separator=''):
try:
address = ipaddress.ip_address(six.text_type(ip_addr))
@@ -299,6 +354,14 @@ def ip_to_hex(ip_addr, separator=''):
return separator.join('{:02x}'.format(octet) for octet in address.packed)
+def get_mask_from_ip_range(ip_low, ip_high):
+ _ip_low = ipaddress.ip_address(ip_low)
+ _ip_high = ipaddress.ip_address(ip_high)
+ _ip_low_int = int(_ip_low)
+ _ip_high_int = int(_ip_high)
+ return _ip_high.max_prefixlen - (_ip_high_int ^ _ip_low_int).bit_length()
+
+
def try_int(s, *args):
"""Convert to integer if possible."""
try:
@@ -386,16 +449,228 @@ class ErrorClass(object):
class Timer(object):
- def __init__(self):
+ def __init__(self, timeout=None, raise_exception=True):
super(Timer, self).__init__()
self.start = self.delta = None
+ self._timeout = int(timeout) if timeout else None
+ self._timeout_flag = False
+ self._raise_exception = raise_exception
+
+ def _timeout_handler(self, *args):
+ self._timeout_flag = True
+ if self._raise_exception:
+ raise exceptions.TimerTimeout(timeout=self._timeout)
+ self.__exit__()
def __enter__(self):
self.start = datetime.datetime.now()
+ if self._timeout:
+ signal.signal(signal.SIGALRM, self._timeout_handler)
+ signal.alarm(self._timeout)
return self
def __exit__(self, *_):
+ if self._timeout:
+ signal.alarm(0)
self.delta = datetime.datetime.now() - self.start
def __getattr__(self, item):
return getattr(self.delta, item)
+
+ def __iter__(self):
+ self._raise_exception = False
+ return self.__enter__()
+
+ def next(self): # pragma: no cover
+ # NOTE(ralonsoh): Python 2 support.
+ if not self._timeout_flag:
+ return datetime.datetime.now()
+ raise StopIteration()
+
+ def __next__(self): # pragma: no cover
+ # NOTE(ralonsoh): Python 3 support.
+ return self.next()
+
+ def __del__(self): # pragma: no cover
+ signal.alarm(0)
+
+ def delta_time_sec(self):
+ return (datetime.datetime.now() - self.start).total_seconds()
+
+
+def read_meminfo(ssh_client):
+ """Read "/proc/meminfo" file and parse all keys and values"""
+
+ cpuinfo = six.BytesIO()
+ ssh_client.get_file_obj('/proc/meminfo', cpuinfo)
+ lines = cpuinfo.getvalue().decode('utf-8')
+ matches = re.findall(r"([\w\(\)]+):\s+(\d+)( kB)*", lines)
+ output = {}
+ for match in matches:
+ output[match[0]] = match[1]
+
+ return output
+
+
+def setup_hugepages(ssh_client, size_kb):
+ """Setup needed number of hugepages for the size specified"""
+
+ NR_HUGEPAGES_PATH = '/proc/sys/vm/nr_hugepages'
+ meminfo = read_meminfo(ssh_client)
+ hp_size_kb = int(meminfo['Hugepagesize'])
+ hp_number = int(math.ceil(size_kb / float(hp_size_kb)))
+ ssh_client.execute(
+ 'echo %s | sudo tee %s' % (hp_number, NR_HUGEPAGES_PATH))
+ hp = six.BytesIO()
+ ssh_client.get_file_obj(NR_HUGEPAGES_PATH, hp)
+ hp_number_set = int(hp.getvalue().decode('utf-8').splitlines()[0])
+ logger.info('Hugepages size (kB): %s, number claimed: %s, number set: %s',
+ hp_size_kb, hp_number, hp_number_set)
+ return hp_size_kb, hp_number, hp_number_set
+
+
+def find_relative_file(path, task_path):
+ """
+ Find file in one of places: in abs of path or relative to a directory path,
+ in this order.
+
+ :param path:
+ :param task_path:
+ :return str: full path to file
+ """
+ # fixme: create schema to validate all fields have been provided
+ for lookup in [os.path.abspath(path), os.path.join(task_path, path)]:
+ try:
+ with open(lookup):
+ return lookup
+ except IOError:
+ pass
+ raise IOError(errno.ENOENT, 'Unable to find {} file'.format(path))
+
+
+def open_relative_file(path, task_path):
+ try:
+ return open(path)
+ except IOError as e:
+ if e.errno == errno.ENOENT:
+ return open(os.path.join(task_path, path))
+ raise
+
+
+def wait_until_true(predicate, timeout=60, sleep=1, exception=None):
+ """Wait until callable predicate is evaluated as True
+
+ When in a thread different from the main one, Timer(timeout) will fail
+ because signal is not handled. In this case
+
+ :param predicate: (func) callable deciding whether waiting should continue
+ :param timeout: (int) timeout in seconds how long should function wait
+ :param sleep: (int) polling interval for results in seconds
+ :param exception: exception instance to raise on timeout. If None is passed
+ (default) then WaitTimeout exception is raised.
+ """
+ if isinstance(threading.current_thread(), threading._MainThread):
+ try:
+ with Timer(timeout=timeout):
+ while not predicate():
+ time.sleep(sleep)
+ except exceptions.TimerTimeout:
+ if exception and issubclass(exception, Exception):
+ raise exception # pylint: disable=raising-bad-type
+ raise exceptions.WaitTimeout
+ else:
+ with Timer() as timer:
+ while timer.delta_time_sec() < timeout:
+ if predicate():
+ return
+ time.sleep(sleep)
+ if exception and issubclass(exception, Exception):
+ raise exception # pylint: disable=raising-bad-type
+ raise exceptions.WaitTimeout
+
+
+def send_socket_command(host, port, command):
+ """Send a string command to a specific port in a host
+
+ :param host: (str) ip or hostname of the host
+ :param port: (int) port number
+ :param command: (str) command to send
+ :return: 0 if success, error number if error
+ """
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ ret = 0
+ try:
+ err_number = sock.connect_ex((host, int(port)))
+ if err_number != 0:
+ return err_number
+ sock.sendall(six.b(command))
+ except Exception: # pylint: disable=broad-except
+ ret = 1
+ finally:
+ sock.close()
+ return ret
+
+
+def safe_cast(value, type_to_convert, default_value):
+ """Convert value to type, in case of error return default_value
+
+ :param value: value to convert
+ :param type_to_convert: type to convert, could be "type" or "string"
+ :param default_value: default value to return
+ :return: converted value or default_value
+ """
+ if isinstance(type_to_convert, type):
+ _type = type_to_convert
+ else:
+ _type = pydoc.locate(type_to_convert)
+ if not _type:
+ raise exceptions.InvalidType(type_to_convert=type_to_convert)
+
+ try:
+ return _type(value)
+ except ValueError:
+ return default_value
+
+
+def get_os_version(ssh_client):
+ """Return OS version.
+
+ :param ssh_client: SSH
+ :return str: Linux OS versions
+ """
+ os_ver = ssh_client.execute("cat /etc/lsb-release")[1]
+ return os_ver
+
+
+def get_kernel_version(ssh_client):
+ """Return kernel version.
+
+ :param ssh_client: SSH
+ :return str: Linux kernel versions
+ """
+ kernel_ver = ssh_client.execute("uname -a")[1]
+ return kernel_ver
+
+
+def get_sample_vnf_info(ssh_client,
+ json_file='/opt/nsb_bin/yardstick_sample_vnf.json'):
+ """Return sample VNF data.
+
+ :param ssh_client: SSH
+ :param json_file: str
+ :return dict: information about sample VNF
+ """
+ rc, json_str, err = ssh_client.execute("cat %s" % json_file)
+ logger.debug("cat %s: %s, rc: %s, err: %s", json_file, json_str, rc, err)
+
+ if rc:
+ return {}
+ json_data = json.loads(json_str)
+ for vnf_data in json_data.values():
+ out = ssh_client.execute("md5sum %s" % vnf_data["path_vnf"])[1]
+ md5 = out.split()[0].strip()
+ if md5 == vnf_data["md5"]:
+ vnf_data["md5_result"] = "MD5 checksum is valid"
+ else:
+ vnf_data["md5_result"] = "MD5 checksum is invalid"
+ return json_data
diff --git a/yardstick/common/yaml_loader.py b/yardstick/common/yaml_loader.py
index 0572bd582..18673be7c 100644
--- a/yardstick/common/yaml_loader.py
+++ b/yardstick/common/yaml_loader.py
@@ -10,10 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-# yardstick: this file is copied from python-heatclient and slightly modified
-
-from __future__ import absolute_import
-
import yaml
@@ -23,6 +19,7 @@ if hasattr(yaml, 'CSafeLoader'):
else:
yaml_loader = type('CustomLoader', (yaml.SafeLoader,), {})
+
if hasattr(yaml, 'CSafeDumper'):
yaml_dumper = yaml.CSafeDumper
else:
@@ -31,3 +28,10 @@ else:
def yaml_load(tmpl_str):
return yaml.load(tmpl_str, Loader=yaml_loader)
+
+
+def read_yaml_file(path):
+ """Read yaml file"""
+ with open(path) as stream:
+ data = yaml_load(stream)
+ return data
diff --git a/yardstick/dispatcher/__init__.py b/yardstick/dispatcher/__init__.py
index dfb130760..837a4397c 100644
--- a/yardstick/dispatcher/__init__.py
+++ b/yardstick/dispatcher/__init__.py
@@ -7,12 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import absolute_import
from oslo_config import cfg
import yardstick.common.utils as utils
-utils.import_modules_from_package("yardstick.dispatcher")
+utils.import_modules_from_package('yardstick.dispatcher')
+
CONF = cfg.CONF
OPTS = [
@@ -21,3 +21,8 @@ OPTS = [
help='Dispatcher to store data.'),
]
CONF.register_opts(OPTS)
+
+# Dispatchers
+FILE = 'file'
+HTTP = 'http'
+INFLUXDB = 'influxdb'
diff --git a/yardstick/dispatcher/influxdb.py b/yardstick/dispatcher/influxdb.py
index 632b433b5..e8c7cf57b 100644
--- a/yardstick/dispatcher/influxdb.py
+++ b/yardstick/dispatcher/influxdb.py
@@ -11,8 +11,10 @@ from __future__ import absolute_import
import logging
import time
+import os
import requests
+from requests import ConnectionError
from yardstick.common import utils
from third_party.influxdb.influxdb_line_protocol import make_lines
@@ -38,7 +40,8 @@ class InfluxdbDispatcher(DispatchBase):
self.influxdb_url = "%s/write?db=%s" % (self.target, self.db_name)
- self.task_id = -1
+ self.task_id = None
+ self.tags = None
def flush_result_data(self, data):
LOG.debug('Test result all : %s', data)
@@ -57,28 +60,41 @@ class InfluxdbDispatcher(DispatchBase):
for record in data['tc_data']:
# skip results with no data because we influxdb encode empty dicts
if record.get("data"):
- self._upload_one_record(record, case, tc_criteria)
+ self.upload_one_record(record, case, tc_criteria)
return 0
- def _upload_one_record(self, data, case, tc_criteria):
+ def upload_one_record(self, data, case, tc_criteria, task_id=None):
+ if task_id:
+ self.task_id = task_id
+
+ line = self._data_to_line_protocol(data, case, tc_criteria)
+ LOG.debug('Test result line format : %s', line)
+
try:
- line = self._data_to_line_protocol(data, case, tc_criteria)
- LOG.debug('Test result line format : %s', line)
res = requests.post(self.influxdb_url,
data=line,
auth=(self.username, self.password),
timeout=self.timeout)
+ except ConnectionError as err:
+ LOG.exception('Failed to record result data: %s', err)
+ else:
if res.status_code != 204:
LOG.error('Test result posting finished with status code'
' %d.', res.status_code)
LOG.error(res.text)
- except Exception as err:
- LOG.exception('Failed to record result data: %s', err)
-
def _data_to_line_protocol(self, data, case, criteria):
msg = {}
+
+ if not self.tags:
+ self.tags = {
+ 'deploy_scenario': os.environ.get('DEPLOY_SCENARIO', 'unknown'),
+ 'installer': os.environ.get('INSTALLER_TYPE', 'unknown'),
+ 'pod_name': os.environ.get('NODE_NAME', 'unknown'),
+ 'version': os.environ.get('YARDSTICK_BRANCH', 'unknown')
+ }
+
point = {
"measurement": case,
"fields": utils.flatten_dict_key(data["data"]),
@@ -93,7 +109,7 @@ class InfluxdbDispatcher(DispatchBase):
def _get_nano_timestamp(self, results):
try:
timestamp = results["timestamp"]
- except Exception:
+ except KeyError:
timestamp = time.time()
return str(int(float(timestamp) * 1000000000))
diff --git a/yardstick/network_services/collector/subscriber.py b/yardstick/network_services/collector/subscriber.py
index 4dc5a796e..0c6d97771 100644
--- a/yardstick/network_services/collector/subscriber.py
+++ b/yardstick/network_services/collector/subscriber.py
@@ -11,63 +11,66 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-"""This module implements stub for publishing results in yardstick format."""
+
import logging
from yardstick.network_services.nfvi.resource import ResourceProfile
from yardstick.network_services.utils import get_nsb_option
+
LOG = logging.getLogger(__name__)
class Collector(object):
"""Class that handles dictionary of results in yardstick-plot format."""
- def __init__(self, vnfs, nodes, traffic_profile, timeout=3600):
+ def __init__(self, vnfs, contexts_nodes, timeout=3600):
super(Collector, self).__init__()
- self.traffic_profile = traffic_profile
self.vnfs = vnfs
- self.nodes = nodes
- self.timeout = timeout
+ self.nodes = contexts_nodes
self.bin_path = get_nsb_option('bin_path', '')
- self.resource_profiles = {node_name: ResourceProfile.make_from_node(node, self.timeout)
- for node_name, node in self.nodes.items()
- if node.get("collectd")}
+ self.resource_profiles = {}
+
+ for ctx_name, nodes in ((ctx_name, nodes) for (ctx_name, nodes)
+ in contexts_nodes.items() if nodes):
+ for node in (node for node in nodes
+ if node and node.get('collectd')):
+ name = ".".join([node['name'], ctx_name])
+ self.resource_profiles.update(
+ {name: ResourceProfile.make_from_node(node, timeout)})
def start(self):
- """Nothing to do, yet"""
for resource in self.resource_profiles.values():
resource.initiate_systemagent(self.bin_path)
resource.start()
resource.amqp_process_for_nfvi_kpi()
+ for vnf in self.vnfs:
+ vnf.start_collect()
+
def stop(self):
- """Nothing to do, yet"""
+ for vnf in self.vnfs:
+ vnf.stop_collect()
+
for resource in self.resource_profiles.values():
resource.stop()
def get_kpi(self):
"""Returns dictionary of results in yardstick-plot format
- :return:
+ :return: (dict) dictionary of kpis collected from the VNFs;
+ the keys are the names of the VNFs.
"""
results = {}
for vnf in self.vnfs:
# Result example:
# {"VNF1: { "tput" : [1000, 999] }, "VNF2": { "latency": 100 }}
- LOG.debug("collect KPI for %s", vnf.name)
+ LOG.debug("collect KPI for vnf %s", vnf.name)
results[vnf.name] = vnf.collect_kpi()
for node_name, resource in self.resource_profiles.items():
- # Result example:
- # {"VNF1: { "tput" : [1000, 999] }, "VNF2": { "latency": 100 }}
- LOG.debug("collect KPI for %s", node_name)
- if resource.check_if_sa_running("collectd")[0] != 0:
- continue
-
- try:
- results[node_name] = {"core": resource.amqp_collect_nfvi_kpi()}
- LOG.debug("%s collect KPIs %s", node_name, results[node_name]['core'])
- except Exception:
- LOG.exception("")
+ LOG.debug("collect KPI for nfvi_node %s", node_name)
+ results[node_name] = {"core": resource.amqp_collect_nfvi_kpi()}
+ LOG.debug("%s collect KPIs %s", node_name, results[node_name]['core'])
+
return results
diff --git a/yardstick/network_services/constants.py b/yardstick/network_services/constants.py
new file mode 100644
index 000000000..5a186be42
--- /dev/null
+++ b/yardstick/network_services/constants.py
@@ -0,0 +1,20 @@
+# Copyright (c) 2016-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+REMOTE_TMP = "/tmp"
+DEFAULT_VNF_TIMEOUT = 3600
+PROCESS_JOIN_TIMEOUT = 3
+ONE_GIGABIT_IN_BITS = 1000000000
+NIC_GBPS_DEFAULT = 10
+RETRY_TIMEOUT = 5
diff --git a/yardstick/network_services/helpers/cpu.py b/yardstick/network_services/helpers/cpu.py
index 8c21754ff..279af204a 100644
--- a/yardstick/network_services/helpers/cpu.py
+++ b/yardstick/network_services/helpers/cpu.py
@@ -15,11 +15,15 @@
import io
+# Number of threads per core.
+NR_OF_THREADS = 2
+
class CpuSysCores(object):
def __init__(self, connection=""):
self.core_map = {}
+ self.cpuinfo = {}
self.connection = connection
def _open_cpuinfo(self):
@@ -33,11 +37,11 @@ class CpuSysCores(object):
core_lines = {}
for line in lines:
if line.strip():
- name, value = line.split(":", 1)
- core_lines[name.strip()] = value.strip()
+ name, value = line.split(":", 1)
+ core_lines[name.strip()] = value.strip()
else:
- core_details.append(core_lines)
- core_lines = {}
+ core_details.append(core_lines)
+ core_lines = {}
return core_details
@@ -51,7 +55,7 @@ class CpuSysCores(object):
lines = self._open_cpuinfo()
core_details = self._get_core_details(lines)
for core in core_details:
- for k, v in core.items():
+ for k, _ in core.items():
if k == "physical id":
if core["physical id"] not in self.core_map:
self.core_map[core['physical id']] = []
@@ -60,6 +64,17 @@ class CpuSysCores(object):
return self.core_map
+ def get_cpu_layout(self):
+ _, stdout, _ = self.connection.execute("lscpu -p")
+ self.cpuinfo = {}
+ self.cpuinfo['cpuinfo'] = list()
+ for line in stdout.split("\n"):
+ if line and line[0] != "#":
+ self.cpuinfo['cpuinfo'].append(
+ [CpuSysCores._str2int(x) for x in
+ line.split(",")])
+ return self.cpuinfo
+
def validate_cpu_cfg(self, vnf_cfg=None):
if vnf_cfg is None:
vnf_cfg = {
@@ -78,3 +93,81 @@ class CpuSysCores(object):
return -1
return 0
+
+ def is_smt_enabled(self):
+ return CpuSysCores.smt_enabled(self.cpuinfo)
+
+ def cpu_list_per_node(self, cpu_node, smt_used=False):
+ cpu_node = int(cpu_node)
+ cpu_info = self.cpuinfo.get("cpuinfo")
+ if cpu_info is None:
+ raise RuntimeError("Node cpuinfo not available.")
+
+ smt_enabled = self.is_smt_enabled()
+ if not smt_enabled and smt_used:
+ raise RuntimeError("SMT is not enabled.")
+
+ cpu_list = []
+ for cpu in cpu_info:
+ if cpu[3] == cpu_node:
+ cpu_list.append(cpu[0])
+
+ if not smt_enabled or smt_enabled and smt_used:
+ pass
+
+ if smt_enabled and not smt_used:
+ cpu_list_len = len(cpu_list)
+ cpu_list = cpu_list[:int(cpu_list_len / NR_OF_THREADS)]
+
+ return cpu_list
+
+ def cpu_slice_of_list_per_node(self, cpu_node, skip_cnt=0, cpu_cnt=0,
+ smt_used=False):
+ cpu_list = self.cpu_list_per_node(cpu_node, smt_used)
+
+ cpu_list_len = len(cpu_list)
+ if cpu_cnt + skip_cnt > cpu_list_len:
+ raise RuntimeError("cpu_cnt + skip_cnt > length(cpu list).")
+
+ if cpu_cnt == 0:
+ cpu_cnt = cpu_list_len - skip_cnt
+
+ if smt_used:
+ cpu_list_0 = cpu_list[:int(cpu_list_len / NR_OF_THREADS)]
+ cpu_list_1 = cpu_list[int(cpu_list_len / NR_OF_THREADS):]
+ cpu_list = [cpu for cpu in cpu_list_0[skip_cnt:skip_cnt + cpu_cnt]]
+ cpu_list_ex = [cpu for cpu in
+ cpu_list_1[skip_cnt:skip_cnt + cpu_cnt]]
+ cpu_list.extend(cpu_list_ex)
+ else:
+ cpu_list = [cpu for cpu in cpu_list[skip_cnt:skip_cnt + cpu_cnt]]
+
+ return cpu_list
+
+ def cpu_list_per_node_str(self, cpu_node, skip_cnt=0, cpu_cnt=0, sep=",",
+ smt_used=False):
+ cpu_list = self.cpu_slice_of_list_per_node(cpu_node,
+ skip_cnt=skip_cnt,
+ cpu_cnt=cpu_cnt,
+ smt_used=smt_used)
+ return sep.join(str(cpu) for cpu in cpu_list)
+
+ @staticmethod
+ def _str2int(string):
+ try:
+ return int(string)
+ except ValueError:
+ return 0
+
+ @staticmethod
+ def smt_enabled(cpuinfo):
+ cpu_info = cpuinfo.get("cpuinfo")
+ if cpu_info is None:
+ raise RuntimeError("Node cpuinfo not available.")
+ cpu_mems = [item[-4:] for item in cpu_info]
+ cpu_mems_len = int(len(cpu_mems) / NR_OF_THREADS)
+ count = 0
+ for cpu_mem in cpu_mems[:cpu_mems_len]:
+ if cpu_mem in cpu_mems[cpu_mems_len:]:
+ count += 1
+ return count == cpu_mems_len
diff --git a/yardstick/network_services/helpers/dpdkbindnic_helper.py b/yardstick/network_services/helpers/dpdkbindnic_helper.py
index c07613147..33a5e8c1d 100644
--- a/yardstick/network_services/helpers/dpdkbindnic_helper.py
+++ b/yardstick/network_services/helpers/dpdkbindnic_helper.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2018 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,11 +12,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import logging
-
+import os
import re
-import itertools
+from collections import defaultdict
+from itertools import chain
-import six
+from yardstick.common import exceptions
+from yardstick.common.utils import validate_non_string_sequence
NETWORK_KERNEL = 'network_kernel'
NETWORK_DPDK = 'network_dpdk'
@@ -25,7 +27,6 @@ CRYPTO_KERNEL = 'crypto_kernel'
CRYPTO_DPDK = 'crypto_dpdk'
CRYPTO_OTHER = 'crypto_other'
-
LOG = logging.getLogger(__name__)
@@ -33,15 +34,180 @@ class DpdkBindHelperException(Exception):
pass
+class DpdkInterface(object):
+ TOPOLOGY_REQUIRED_KEYS = frozenset({
+ "vpci", "local_ip", "netmask", "local_mac", "driver"})
+
+ def __init__(self, dpdk_node, interface):
+ super(DpdkInterface, self).__init__()
+ self.dpdk_node = dpdk_node
+ self.interface = interface
+
+ try:
+ assert self.local_mac
+ except (AssertionError, KeyError):
+ raise exceptions.IncorrectConfig(error_msg='')
+
+ @property
+ def local_mac(self):
+ return self.interface['local_mac']
+
+ @property
+ def mac_lower(self):
+ return self.local_mac.lower()
+
+ @property
+ def missing_fields(self):
+ return self.TOPOLOGY_REQUIRED_KEYS.difference(self.interface)
+
+ @staticmethod
+ def _detect_socket(netdev):
+ try:
+ socket = netdev['numa_node']
+ except KeyError:
+ # Where is this documented?
+ # It seems for dual-sockets systems the second socket PCI bridge
+ # will have an address > 0x0f, e.g.
+ # Bridge PCI->PCI (P#524320 busid=0000:80:02.0 id=8086:6f04
+ if netdev['pci_bus_id'][5] == "0":
+ socket = 0
+ else:
+ # this doesn't handle quad-sockets
+ # TODO: fix this for quad-socket
+ socket = 1
+ return socket
+
+ def probe_missing_values(self):
+ try:
+ for netdev in self.dpdk_node.netdevs.values():
+ if netdev['address'].lower() == self.mac_lower:
+ socket = self._detect_socket(netdev)
+ self.interface.update({
+ 'vpci': netdev['pci_bus_id'],
+ 'driver': netdev['driver'],
+ 'socket': socket,
+ # don't need ifindex
+ })
+
+ except KeyError:
+ # if we don't find all the keys then don't update
+ pass
+
+ except (exceptions.IncorrectNodeSetup, exceptions.SSHError,
+ exceptions.SSHTimeout):
+ message = ('Unable to probe missing interface fields "%s", on '
+ 'node %s SSH Error' % (', '.join(self.missing_fields),
+ self.dpdk_node.node_key))
+ raise exceptions.IncorrectConfig(error_msg=message)
+
+
+class DpdkNode(object):
+
+ def __init__(self, node_name, interfaces, ssh_helper, timeout=120):
+ super(DpdkNode, self).__init__()
+ self.interfaces = interfaces
+ self.ssh_helper = ssh_helper
+ self.node_key = node_name
+ self.timeout = timeout
+ self._dpdk_helper = None
+ self.netdevs = {}
+
+ try:
+ self.dpdk_interfaces = {intf['name']: DpdkInterface(self, intf['virtual-interface'])
+ for intf in self.interfaces}
+ except exceptions.IncorrectConfig:
+ template = "MAC address is required for all interfaces, missing on: {}"
+ errors = (intf['name'] for intf in self.interfaces if
+ 'local_mac' not in intf['virtual-interface'])
+ raise exceptions.IncorrectSetup(
+ error_msg=template.format(", ".join(errors)))
+
+ @property
+ def dpdk_helper(self):
+ if not isinstance(self._dpdk_helper, DpdkBindHelper):
+ self._dpdk_helper = DpdkBindHelper(self.ssh_helper)
+ return self._dpdk_helper
+
+ @property
+ def _interface_missing_iter(self):
+ return chain.from_iterable(self._interface_missing_map.values())
+
+ @property
+ def _interface_missing_map(self):
+ return {name: intf.missing_fields for name, intf in self.dpdk_interfaces.items()}
+
+ def _probe_netdevs(self):
+ self.netdevs.update(self.dpdk_helper.find_net_devices())
+
+ def _force_rebind(self):
+ return self.dpdk_helper.force_dpdk_rebind()
+
+ def _probe_dpdk_drivers(self):
+ self.dpdk_helper.probe_real_kernel_drivers()
+ for pci, driver in self.dpdk_helper.real_kernel_interface_driver_map.items():
+ for intf in self.interfaces:
+ vintf = intf['virtual-interface']
+ # stupid substring matches
+ # don't use netdev use interface
+ if vintf['vpci'].endswith(pci):
+ vintf['driver'] = driver
+ # we can't update netdevs because we may not have netdev info
+
+ def _probe_missing_values(self):
+ for intf in self.dpdk_interfaces.values():
+ intf.probe_missing_values()
+
+ def check(self):
+ # only ssh probe if there are missing values
+ # ssh probe won't work on Ixia, so we had better define all our values
+ try:
+ missing_fields_set = set(self._interface_missing_iter)
+
+ # if we are only missing driver then maybe we can get kernel module
+ # this requires vpci
+ if missing_fields_set == {'driver'}:
+ self._probe_dpdk_drivers()
+ # we can't reprobe missing values because we may not have netdev info
+
+ # if there are any other missing then we have to netdev probe
+ if missing_fields_set.difference({'driver'}):
+ self._probe_netdevs()
+ try:
+ self._probe_missing_values()
+ except exceptions.IncorrectConfig:
+ # ignore for now
+ pass
+
+ # check again and verify we have all the fields
+ if set(self._interface_missing_iter):
+ # last chance fallback, rebind everything and probe
+ # this probably won't work
+ self._force_rebind()
+ self._probe_netdevs()
+ self._probe_missing_values()
+
+ errors = ("{} missing: {}".format(name, ", ".join(missing_fields)) for
+ name, missing_fields in self._interface_missing_map.items() if
+ missing_fields)
+ errors = "\n".join(errors)
+ if errors:
+ raise exceptions.IncorrectSetup(error_msg=errors)
+
+ finally:
+ self._dpdk_helper = None
+
+
class DpdkBindHelper(object):
- DPDK_STATUS_CMD = "{dpdk_nic_bind} --status"
- DPDK_BIND_CMD = "sudo {dpdk_nic_bind} {force} -b {driver} {vpci}"
+ DPDK_STATUS_CMD = "{dpdk_devbind} --status"
+ DPDK_BIND_CMD = "sudo {dpdk_devbind} {force} -b {driver} {vpci}"
- NIC_ROW_RE = re.compile("([^ ]+) '([^']+)' (?:if=([^ ]+) )?drv=([^ ]+) "
- "unused=([^ ]*)(?: (\*Active\*))?")
+ NIC_ROW_RE = re.compile(r"([^ ]+) '([^']+)' (?:if=([^ ]+) )?drv=([^ ]+) "
+ r"unused=([^ ]*)(?: (\*Active\*))?")
SKIP_RE = re.compile('(====|<none>|^$)')
NIC_ROW_FIELDS = ['vpci', 'dev_type', 'iface', 'driver', 'unused', 'active']
+ UIO_DRIVER = "uio"
+
HEADER_DICT_PAIRS = [
(re.compile('^Network.*DPDK.*$'), NETWORK_DPDK),
(re.compile('^Network.*kernel.*$'), NETWORK_KERNEL),
@@ -51,6 +217,42 @@ class DpdkBindHelper(object):
(re.compile('^Other crypto.*$'), CRYPTO_OTHER),
]
+ FIND_NETDEVICE_STRING = r"""\
+find /sys/devices/pci* -type d -name net -exec sh -c '{ grep -sH ^ \
+$1/ifindex $1/address $1/operstate $1/device/vendor $1/device/device \
+$1/device/subsystem_vendor $1/device/subsystem_device $1/device/numa_node ; \
+printf "%s/driver:" $1 ; basename $(readlink -s $1/device/driver); } \
+' sh \{\}/* \;
+"""
+
+ BASE_ADAPTER_RE = re.compile('^/sys/devices/(.*)/net/([^/]*)/([^:]*):(.*)$', re.M)
+ DPDK_DEVBIND = "dpdk-devbind.py"
+
+ @classmethod
+ def parse_netdev_info(cls, stdout):
+ network_devices = defaultdict(dict)
+ match_iter = (match.groups() for match in cls.BASE_ADAPTER_RE.finditer(stdout))
+ for bus_path, interface_name, name, value in match_iter:
+ dir_name, bus_id = os.path.split(bus_path)
+ if 'virtio' in bus_id:
+ # for some stupid reason VMs include virtio1/
+ # in PCI device path
+ bus_id = os.path.basename(dir_name)
+
+ # remove extra 'device/' from 'device/vendor,
+ # device/subsystem_vendor', etc.
+ if 'device' in name:
+ name = name.split('/')[1]
+
+ network_devices[interface_name].update({
+ name: value,
+ 'interface_name': interface_name,
+ 'pci_bus_id': bus_id,
+ })
+
+ # convert back to regular dict
+ return dict(network_devices)
+
def clean_status(self):
self.dpdk_status = {
NETWORK_KERNEL: [],
@@ -61,11 +263,17 @@ class DpdkBindHelper(object):
CRYPTO_OTHER: [],
}
- def __init__(self, ssh_helper):
+ # TODO: add support for driver other than igb_uio
+ def __init__(self, ssh_helper, dpdk_driver="igb_uio"):
+ self.ssh_helper = ssh_helper
+ self.real_kernel_interface_driver_map = {}
+ self.dpdk_driver = dpdk_driver
self.dpdk_status = None
self.status_nic_row_re = None
- self._dpdk_nic_bind_attr = None
+ self.dpdk_devbind = self.ssh_helper.join_bin_path(self.DPDK_DEVBIND)
self._status_cmd_attr = None
+ self.used_drivers = None
+ self.real_kernel_drivers = {}
self.ssh_helper = ssh_helper
self.clean_status()
@@ -73,28 +281,38 @@ class DpdkBindHelper(object):
def _dpdk_execute(self, *args, **kwargs):
res = self.ssh_helper.execute(*args, **kwargs)
if res[0] != 0:
- raise DpdkBindHelperException('{} command failed with rc={}'.format(
- self._dpdk_nic_bind, res[0]))
+ template = '{} command failed with rc={}'
+ LOG.critical("DPDK_DEVBIND Failure %s", res[1])
+ raise DpdkBindHelperException(template.format(self.dpdk_devbind, res[0]))
return res
- @property
- def _dpdk_nic_bind(self):
- if self._dpdk_nic_bind_attr is None:
- self._dpdk_nic_bind_attr = self.ssh_helper.provision_tool(tool_file="dpdk-devbind.py")
- return self._dpdk_nic_bind_attr
+ def load_dpdk_driver(self, dpdk_driver=None):
+ if dpdk_driver is None:
+ dpdk_driver = self.dpdk_driver
+ cmd_template = "sudo modprobe {} && sudo modprobe {}"
+ self.ssh_helper.execute(
+ cmd_template.format(self.UIO_DRIVER, dpdk_driver))
+
+ def check_dpdk_driver(self, dpdk_driver=None):
+ if dpdk_driver is None:
+ dpdk_driver = self.dpdk_driver
+ return \
+ self.ssh_helper.execute("lsmod | grep -i {}".format(dpdk_driver))[0]
@property
def _status_cmd(self):
if self._status_cmd_attr is None:
- self._status_cmd_attr = self.DPDK_STATUS_CMD.format(dpdk_nic_bind=self._dpdk_nic_bind)
+ self._status_cmd_attr = self.DPDK_STATUS_CMD.format(dpdk_devbind=self.dpdk_devbind)
return self._status_cmd_attr
- def _addline(self, active_list, line):
+ def _add_line(self, active_list, line):
if active_list is None:
return
+
res = self.NIC_ROW_RE.match(line)
if res is None:
return
+
new_data = {k: v for k, v in zip(self.NIC_ROW_FIELDS, res.groups())}
new_data['active'] = bool(new_data['active'])
self.dpdk_status[active_list].append(new_data)
@@ -106,14 +324,14 @@ class DpdkBindHelper(object):
return a_dict
return active_dict
- def parse_dpdk_status_output(self, input):
+ def _parse_dpdk_status_output(self, output):
active_dict = None
self.clean_status()
- for a_row in input.splitlines():
+ for a_row in output.splitlines():
if self.SKIP_RE.match(a_row):
continue
active_dict = self._switch_active_dict(a_row, active_dict)
- self._addline(active_dict, a_row)
+ self._add_line(active_dict, a_row)
return self.dpdk_status
def _get_bound_pci_addresses(self, active_dict):
@@ -130,31 +348,85 @@ class DpdkBindHelper(object):
@property
def interface_driver_map(self):
return {interface['vpci']: interface['driver']
- for interface in itertools.chain.from_iterable(self.dpdk_status.values())}
+ for interface in chain.from_iterable(self.dpdk_status.values())}
def read_status(self):
- return self.parse_dpdk_status_output(self._dpdk_execute(self._status_cmd)[1])
+ return self._parse_dpdk_status_output(self._dpdk_execute(self._status_cmd)[1])
+
+ def find_net_devices(self):
+ exit_status, stdout, _ = self.ssh_helper.execute(self.FIND_NETDEVICE_STRING)
+ if exit_status != 0:
+ return {}
+
+ return self.parse_netdev_info(stdout)
def bind(self, pci_addresses, driver, force=True):
- # accept single PCI or list of PCI
- if isinstance(pci_addresses, six.string_types):
- pci_addresses = [pci_addresses]
- cmd = self.DPDK_BIND_CMD.format(dpdk_nic_bind=self._dpdk_nic_bind,
+ # accept single PCI or sequence of PCI
+ pci_addresses = validate_non_string_sequence(pci_addresses, [pci_addresses])
+
+ cmd = self.DPDK_BIND_CMD.format(dpdk_devbind=self.dpdk_devbind,
driver=driver,
vpci=' '.join(list(pci_addresses)),
force='--force' if force else '')
LOG.debug(cmd)
self._dpdk_execute(cmd)
+
# update the inner status dict
self.read_status()
+ def probe_real_kernel_drivers(self):
+ self.read_status()
+ self.save_real_kernel_interface_driver_map()
+
+ def force_dpdk_rebind(self):
+ self.load_dpdk_driver()
+ self.read_status()
+ self.save_real_kernel_interface_driver_map()
+ self.save_used_drivers()
+
+ real_driver_map = {}
+ # only rebind devices that are bound to DPDK
+ for pci in self.dpdk_bound_pci_addresses:
+ # messy
+ real_driver = self.real_kernel_interface_driver_map[pci]
+ real_driver_map.setdefault(real_driver, []).append(pci)
+ for real_driver, pcis in real_driver_map.items():
+ self.bind(pcis, real_driver, force=True)
+
def save_used_drivers(self):
# invert the map, so we can bind by driver type
self.used_drivers = {}
- # sort for stabililty
+ # sort for stability
for vpci, driver in sorted(self.interface_driver_map.items()):
self.used_drivers.setdefault(driver, []).append(vpci)
+ KERNEL_DRIVER_RE = re.compile(r"Kernel modules: (\S+)", re.M)
+ VIRTIO_DRIVER_RE = re.compile(r"Ethernet.*Virtio network device", re.M)
+ VIRTIO_DRIVER = "virtio-pci"
+
+ def save_real_kernel_drivers(self):
+ # invert the map, so we can bind by driver type
+ self.real_kernel_drivers = {}
+ # sort for stability
+ for vpci, driver in sorted(self.real_kernel_interface_driver_map.items()):
+ self.used_drivers.setdefault(driver, []).append(vpci)
+
+ def get_real_kernel_driver(self, pci):
+ out = self.ssh_helper.execute('lspci -k -s %s' % pci)[1]
+ match = self.KERNEL_DRIVER_RE.search(out)
+ if match:
+ return match.group(1)
+
+ match = self.VIRTIO_DRIVER_RE.search(out)
+ if match:
+ return self.VIRTIO_DRIVER
+
+ return None
+
+ def save_real_kernel_interface_driver_map(self):
+ iter1 = ((pci, self.get_real_kernel_driver(pci)) for pci in self.interface_driver_map)
+ self.real_kernel_interface_driver_map = {pci: driver for pci, driver in iter1 if driver}
+
def rebind_drivers(self, force=True):
for driver, vpcis in self.used_drivers.items():
self.bind(vpcis, driver, force)
diff --git a/yardstick/network_services/helpers/samplevnf_helper.py b/yardstick/network_services/helpers/samplevnf_helper.py
index 0ab10d7b7..8e6a3a3ea 100644
--- a/yardstick/network_services/helpers/samplevnf_helper.py
+++ b/yardstick/network_services/helpers/samplevnf_helper.py
@@ -23,8 +23,7 @@ from itertools import chain, repeat
import six
from six.moves.configparser import ConfigParser
-
-from yardstick.common.utils import ip_to_hex
+from yardstick.common import utils
LOG = logging.getLogger(__name__)
@@ -34,19 +33,6 @@ link {0} config {1} {2}
link {0} up
"""
-ACTION_TEMPLATE = """\
-p action add {0} accept
-p action add {0} fwd {0}
-p action add {0} count
-"""
-
-FW_ACTION_TEMPLATE = """\
-p action add {0} accept
-p action add {0} fwd {0}
-p action add {0} count
-p action add {0} conntrack
-"""
-
# This sets up a basic passthrough with no rules
SCRIPT_TPL = """
{link_config}
@@ -59,9 +45,7 @@ SCRIPT_TPL = """
{arp_route_tbl6}
-{actions}
-
-{rules}
+{flows}
"""
@@ -182,26 +166,9 @@ class MultiPortConfig(object):
return parser.get(section, key)
return default
- @staticmethod
- def make_ip_addr(ip, mask):
- """
- :param ip: ip adddress
- :type ip: str
- :param mask: /24 prefix of 255.255.255.0 netmask
- :type mask: str
- :return: interface
- :rtype: IPv4Interface
- """
-
- try:
- return ipaddress.ip_interface(six.text_type('/'.join([ip, mask])))
- except (TypeError, ValueError):
- # None so we can skip later
- return None
-
@classmethod
def validate_ip_and_prefixlen(cls, ip_addr, prefixlen):
- ip_addr = cls.make_ip_addr(ip_addr, prefixlen)
+ ip_addr = utils.make_ip_addr(ip_addr, prefixlen)
return ip_addr.ip.exploded, ip_addr.network.prefixlen
def __init__(self, topology_file, config_tpl, tmp_file, vnfd_helper,
@@ -245,7 +212,7 @@ class MultiPortConfig(object):
self.ports_len = 0
self.prv_que_handler = None
self.vnfd = None
- self.rules = None
+ self.flows = None
self.pktq_out = []
@staticmethod
@@ -360,7 +327,7 @@ class MultiPortConfig(object):
"%s/%s" % (interface["dst_ip"], interface["netmask"])))
arp_vars = {
- "port_netmask_hex": ip_to_hex(dst_port_ip.network.netmask.exploded),
+ "port_netmask_hex": utils.ip_to_hex(dst_port_ip.network.netmask.exploded),
# this is the port num that contains port0 subnet and next_hop_ip_hex
# this is LINKID which should be based on DPDK port number
"port_num": dpdk_port_num,
@@ -542,7 +509,7 @@ class MultiPortConfig(object):
self.update_write_parser(self.loadb_tpl)
self.start_core += 1
- for i in range(self.worker_threads):
+ for _ in range(self.worker_threads):
vnf_data = self.generate_vnf_data()
if not self.vnf_tpl:
self.vnf_tpl = {}
@@ -637,65 +604,8 @@ class MultiPortConfig(object):
return '\n'.join(('p {3} arpadd {0} {1} {2}'.format(*values) for values in arp_config6))
- def generate_action_config(self):
- port_list = (self.vnfd_helper.port_num(p) for p in self.all_ports)
- if self.vnf_type == "VFW":
- template = FW_ACTION_TEMPLATE
- else:
- template = ACTION_TEMPLATE
-
- return ''.join((template.format(port) for port in port_list))
-
- def get_ip_from_port(self, port):
- # we can't use gateway because in OpenStack gateways interfer with floating ip routing
- # return self.make_ip_addr(self.get_ports_gateway(port), self.get_netmask_gateway(port))
- vintf = self.vnfd_helper.find_interface(name=port)["virtual-interface"]
- ip = vintf["local_ip"]
- netmask = vintf["netmask"]
- return self.make_ip_addr(ip, netmask)
-
- def get_network_and_prefixlen_from_ip_of_port(self, port):
- ip_addr = self.get_ip_from_port(port)
- # handle cases with no gateway
- if ip_addr:
- return ip_addr.network.network_address.exploded, ip_addr.network.prefixlen
- else:
- return None, None
-
- def generate_rule_config(self):
- cmd = 'acl' if self.vnf_type == "ACL" else "vfw"
- rules_config = self.rules if self.rules else ''
- new_rules = []
- new_ipv6_rules = []
- pattern = 'p {0} add {1} {2} {3} {4} {5} 0 65535 0 65535 0 0 {6}'
- for src_intf, dst_intf in self.port_pair_list:
- src_port = self.vnfd_helper.port_num(src_intf)
- dst_port = self.vnfd_helper.port_num(dst_intf)
-
- src_net, src_prefix_len = self.get_network_and_prefixlen_from_ip_of_port(src_intf)
- dst_net, dst_prefix_len = self.get_network_and_prefixlen_from_ip_of_port(dst_intf)
- # ignore entires with empty values
- if all((src_net, src_prefix_len, dst_net, dst_prefix_len)):
- new_rules.append((cmd, self.txrx_pipeline, src_net, src_prefix_len,
- dst_net, dst_prefix_len, dst_port))
- new_rules.append((cmd, self.txrx_pipeline, dst_net, dst_prefix_len,
- src_net, src_prefix_len, src_port))
-
- # src_net = self.get_ports_gateway6(port_pair[0])
- # src_prefix_len = self.get_netmask_gateway6(port_pair[0])
- # dst_net = self.get_ports_gateway6(port_pair[1])
- # dst_prefix_len = self.get_netmask_gateway6(port_pair[0])
- # # ignore entires with empty values
- # if all((src_net, src_prefix_len, dst_net, dst_prefix_len)):
- # new_ipv6_rules.append((cmd, self.txrx_pipeline, src_net, src_prefix_len,
- # dst_net, dst_prefix_len, dst_port))
- # new_ipv6_rules.append((cmd, self.txrx_pipeline, dst_net, dst_prefix_len,
- # src_net, src_prefix_len, src_port))
-
- acl_apply = "\np %s applyruleset" % cmd
- new_rules_config = '\n'.join(pattern.format(*values) for values
- in chain(new_rules, new_ipv6_rules))
- return ''.join([rules_config, new_rules_config, acl_apply])
+ def get_flows_config(self):
+ return self.flows if self.flows else ''
def generate_script_data(self):
self._port_pairs = PortPairs(self.vnfd_helper.interfaces)
@@ -707,24 +617,15 @@ class MultiPortConfig(object):
# disable IPv6 for now
# 'arp_config6': self.generate_arp_config6(),
'arp_config6': "",
- 'arp_config': self.generate_arp_config(),
'arp_route_tbl': self.generate_arp_route_tbl(),
'arp_route_tbl6': "",
- 'actions': '',
- 'rules': '',
+ 'flows': self.get_flows_config()
}
-
- if self.vnf_type in ('ACL', 'VFW'):
- script_data.update({
- 'actions': self.generate_action_config(),
- 'rules': self.generate_rule_config(),
- })
-
return script_data
- def generate_script(self, vnfd, rules=None):
+ def generate_script(self, vnfd, flows=None):
self.vnfd = vnfd
- self.rules = rules
+ self.flows = flows
script_data = self.generate_script_data()
script = SCRIPT_TPL.format(**script_data)
if self.lb_config == self.HW_LB:
diff --git a/tests/unit/apiserver/resources/__init__.py b/yardstick/network_services/helpers/vpp_helpers/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/apiserver/resources/__init__.py
+++ b/yardstick/network_services/helpers/vpp_helpers/__init__.py
diff --git a/yardstick/network_services/helpers/vpp_helpers/abstract_search_algorithm.py b/yardstick/network_services/helpers/vpp_helpers/abstract_search_algorithm.py
new file mode 100644
index 000000000..fced05833
--- /dev/null
+++ b/yardstick/network_services/helpers/vpp_helpers/abstract_search_algorithm.py
@@ -0,0 +1,53 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# This is a modified copy of
+# https://gerrit.fd.io/r/gitweb?p=csit.git;a=blob_plain;f=resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py;hb=HEAD
+
+
+from abc import ABCMeta, abstractmethod
+
+
+class AbstractSearchAlgorithm(object):
+ """Abstract class defining common API for search algorithms."""
+
+ __metaclass__ = ABCMeta
+
+ def __init__(self, measurer):
+ """Store the rate provider.
+
+ :param measurer: Object able to perform trial or composite measurements.
+ :type measurer: AbstractMeasurer.AbstractMeasurer
+ """
+ # TODO: Type check for AbstractMeasurer?
+ self.measurer = measurer
+
+ @abstractmethod
+ def narrow_down_ndr_and_pdr(
+ self, fail_rate, line_rate, packet_loss_ratio):
+ """Perform measurements to narrow down intervals, return them.
+
+ This will be renamed when custom loss ratio lists are supported.
+
+ :param fail_rate: Minimal target transmit rate [pps].
+ :param line_rate: Maximal target transmit rate [pps].
+ :param packet_loss_ratio: Fraction of packets lost, for PDR [1].
+ :type fail_rate: float
+ :type line_rate: float
+ :type packet_loss_ratio: float
+ :returns: Structure containing narrowed down intervals
+ and their measurements.
+ :rtype: NdrPdrResult.NdrPdrResult
+ """
+ # TODO: Do we agree on arguments related to precision or trial duration?
diff --git a/yardstick/network_services/helpers/vpp_helpers/multiple_loss_ratio_search.py b/yardstick/network_services/helpers/vpp_helpers/multiple_loss_ratio_search.py
new file mode 100644
index 000000000..582e3dc27
--- /dev/null
+++ b/yardstick/network_services/helpers/vpp_helpers/multiple_loss_ratio_search.py
@@ -0,0 +1,688 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# This is a modified copy of
+# https://gerrit.fd.io/r/gitweb?p=csit.git;a=blob_plain;f=resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py;hb=HEAD
+
+import datetime
+import logging
+import math
+import time
+
+from yardstick.network_services.helpers.vpp_helpers.abstract_search_algorithm import \
+ AbstractSearchAlgorithm
+from yardstick.network_services.helpers.vpp_helpers.ndr_pdr_result import \
+ NdrPdrResult
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_interval import \
+ ReceiveRateInterval
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_measurement import \
+ ReceiveRateMeasurement
+
+LOGGING = logging.getLogger(__name__)
+
+
+class MultipleLossRatioSearch(AbstractSearchAlgorithm):
+ """Optimized binary search algorithm for finding NDR and PDR bounds.
+
+ Traditional binary search algorithm needs initial interval
+ (lower and upper bound), and returns final interval after bisecting
+ (until some exit condition is met).
+ The exit condition is usually related to the interval width,
+ (upper bound value minus lower bound value).
+
+ The optimized algorithm contains several improvements
+ aimed to reduce overall search time.
+
+ One improvement is searching for two intervals at once.
+ The intervals are for NDR (No Drop Rate) and PDR (Partial Drop Rate).
+
+ Next improvement is that the initial interval does not need to be valid.
+ Imagine initial interval (10, 11) where 11 is smaller
+ than the searched value.
+ The algorithm will try (11, 13) interval next, and if 13 is still smaller,
+ (13, 17) and so on, doubling width until the upper bound is valid.
+ The part when interval expands is called external search,
+ the part when interval is bisected is called internal search.
+
+ Next improvement is that trial measurements at small trial duration
+ can be used to find a reasonable interval for full trial duration search.
+ This results in more trials performed, but smaller overall duration
+ in general.
+
+ Next improvement is bisecting in logarithmic quantities,
+ so that exit criteria can be independent of measurement units.
+
+ Next improvement is basing the initial interval on receive rates.
+
+ Final improvement is exiting early if the minimal value
+ is not a valid lower bound.
+
+ The complete search consist of several phases,
+ each phase performing several trial measurements.
+ Initial phase creates initial interval based on receive rates
+ at maximum rate and at maximum receive rate (MRR).
+ Final phase and preceding intermediate phases are performing
+ external and internal search steps,
+ each resulting interval is the starting point for the next phase.
+ The resulting interval of final phase is the result of the whole algorithm.
+
+ Each non-initial phase uses its own trial duration and width goal.
+ Any non-initial phase stops searching (for NDR or PDR independently)
+ when minimum is not a valid lower bound (at current duration),
+ or all of the following is true:
+ Both bounds are valid, bound bounds are measured at the current phase
+ trial duration, interval width is less than the width goal
+ for current phase.
+
+ TODO: Review and update this docstring according to rst docs.
+ TODO: Support configurable number of Packet Loss Ratios.
+ """
+
+ class ProgressState(object):
+ """Structure containing data to be passed around in recursion."""
+
+ def __init__(
+ self, result, phases, duration, width_goal, packet_loss_ratio,
+ minimum_transmit_rate, maximum_transmit_rate):
+ """Convert and store the argument values.
+
+ :param result: Current measured NDR and PDR intervals.
+ :param phases: How many intermediate phases to perform
+ before the current one.
+ :param duration: Trial duration to use in the current phase [s].
+ :param width_goal: The goal relative width for the curreent phase.
+ :param packet_loss_ratio: PDR fraction for the current search.
+ :param minimum_transmit_rate: Minimum target transmit rate
+ for the current search [pps].
+ :param maximum_transmit_rate: Maximum target transmit rate
+ for the current search [pps].
+ :type result: NdrPdrResult.NdrPdrResult
+ :type phases: int
+ :type duration: float
+ :type width_goal: float
+ :type packet_loss_ratio: float
+ :type minimum_transmit_rate: float
+ :type maximum_transmit_rate: float
+ """
+ self.result = result
+ self.phases = int(phases)
+ self.duration = float(duration)
+ self.width_goal = float(width_goal)
+ self.packet_loss_ratio = float(packet_loss_ratio)
+ self.minimum_transmit_rate = float(minimum_transmit_rate)
+ self.maximum_transmit_rate = float(maximum_transmit_rate)
+
+ def __init__(self, measurer, latency=False, pkt_size=64,
+ final_relative_width=0.005,
+ final_trial_duration=30.0, initial_trial_duration=1.0,
+ number_of_intermediate_phases=2, timeout=600.0, doublings=1):
+ """Store the measurer object and additional arguments.
+
+ :param measurer: Rate provider to use by this search object.
+ :param final_relative_width: Final lower bound transmit rate
+ cannot be more distant that this multiple of upper bound [1].
+ :param final_trial_duration: Trial duration for the final phase [s].
+ :param initial_trial_duration: Trial duration for the initial phase
+ and also for the first intermediate phase [s].
+ :param number_of_intermediate_phases: Number of intermediate phases
+ to perform before the final phase [1].
+ :param timeout: The search will fail itself when not finished
+ before this overall time [s].
+ :param doublings: How many doublings to do in external search step.
+ Default 1 is suitable for fairly stable tests,
+ less stable tests might get better overal duration with 2 or more.
+ :type measurer: AbstractMeasurer.AbstractMeasurer
+ :type final_relative_width: float
+ :type final_trial_duration: float
+ :type initial_trial_duration: int
+ :type number_of_intermediate_phases: int
+ :type timeout: float
+ :type doublings: int
+ """
+ super(MultipleLossRatioSearch, self).__init__(measurer)
+ self.latency = latency
+ self.pkt_size = int(pkt_size)
+ self.final_trial_duration = float(final_trial_duration)
+ self.final_relative_width = float(final_relative_width)
+ self.number_of_intermediate_phases = int(number_of_intermediate_phases)
+ self.initial_trial_duration = float(initial_trial_duration)
+ self.timeout = float(timeout)
+ self.doublings = int(doublings)
+
+ self.queue = None
+ self.port_pg_id = None
+ self.ports = []
+ self.test_data = {}
+ self.profiles = {}
+
+ @staticmethod
+ def double_relative_width(relative_width):
+ """Return relative width corresponding to double logarithmic width.
+
+ :param relative_width: The base relative width to double.
+ :type relative_width: float
+ :returns: The relative width of double logarithmic size.
+ :rtype: float
+ """
+ return 1.999 * relative_width - relative_width * relative_width
+ # The number should be 2.0, but we want to avoid rounding errors,
+ # and ensure half of double is not larger than the original value.
+
+ @staticmethod
+ def double_step_down(relative_width, current_bound):
+ """Return rate of double logarithmic width below.
+
+ :param relative_width: The base relative width to double.
+ :param current_bound: The current target transmit rate to move [pps].
+ :type relative_width: float
+ :type current_bound: float
+ :returns: Transmit rate smaller by logarithmically double width [pps].
+ :rtype: float
+ """
+ return current_bound * (
+ 1.0 - MultipleLossRatioSearch.double_relative_width(
+ relative_width))
+
+ @staticmethod
+ def expand_down(relative_width, doublings, current_bound):
+ """Return rate of expanded logarithmic width below.
+
+ :param relative_width: The base relative width to double.
+ :param doublings: How many doublings to do for expansion.
+ :param current_bound: The current target transmit rate to move [pps].
+ :type relative_width: float
+ :type doublings: int
+ :type current_bound: float
+ :returns: Transmit rate smaller by logarithmically double width [pps].
+ :rtype: float
+ """
+ for _ in range(doublings):
+ relative_width = MultipleLossRatioSearch.double_relative_width(
+ relative_width)
+ return current_bound * (1.0 - relative_width)
+
+ @staticmethod
+ def double_step_up(relative_width, current_bound):
+ """Return rate of double logarithmic width above.
+
+ :param relative_width: The base relative width to double.
+ :param current_bound: The current target transmit rate to move [pps].
+ :type relative_width: float
+ :type current_bound: float
+ :returns: Transmit rate larger by logarithmically double width [pps].
+ :rtype: float
+ """
+ return current_bound / (
+ 1.0 - MultipleLossRatioSearch.double_relative_width(
+ relative_width))
+
+ @staticmethod
+ def expand_up(relative_width, doublings, current_bound):
+ """Return rate of expanded logarithmic width above.
+
+ :param relative_width: The base relative width to double.
+ :param doublings: How many doublings to do for expansion.
+ :param current_bound: The current target transmit rate to move [pps].
+ :type relative_width: float
+ :type doublings: int
+ :type current_bound: float
+ :returns: Transmit rate smaller by logarithmically double width [pps].
+ :rtype: float
+ """
+ for _ in range(doublings):
+ relative_width = MultipleLossRatioSearch.double_relative_width(
+ relative_width)
+ return current_bound / (1.0 - relative_width)
+
+ @staticmethod
+ def half_relative_width(relative_width):
+ """Return relative width corresponding to half logarithmic width.
+
+ :param relative_width: The base relative width to halve.
+ :type relative_width: float
+ :returns: The relative width of half logarithmic size.
+ :rtype: float
+ """
+ return 1.0 - math.sqrt(1.0 - relative_width)
+
+ @staticmethod
+ def half_step_up(relative_width, current_bound):
+ """Return rate of half logarithmic width above.
+
+ :param relative_width: The base relative width to halve.
+ :param current_bound: The current target transmit rate to move [pps].
+ :type relative_width: float
+ :type current_bound: float
+ :returns: Transmit rate larger by logarithmically half width [pps].
+ :rtype: float
+ """
+ return current_bound / (
+ 1.0 - MultipleLossRatioSearch.half_relative_width(
+ relative_width))
+
+ def init_generator(self, ports, port_pg_id, profiles, test_data, queue):
+ self.ports = ports
+ self.port_pg_id = port_pg_id
+ self.profiles = profiles
+ self.test_data = test_data
+ self.queue = queue
+ self.queue.cancel_join_thread()
+
+ def collect_kpi(self, stats, test_value):
+ samples = self.measurer.generate_samples(stats, self.ports,
+ self.port_pg_id, self.latency)
+ samples.update(self.test_data)
+ LOGGING.info("Collect TG KPIs %s %s %s", datetime.datetime.now(),
+ test_value, samples)
+ self.queue.put(samples)
+
+ def narrow_down_ndr_and_pdr(
+ self, minimum_transmit_rate, maximum_transmit_rate,
+ packet_loss_ratio):
+ """Perform initial phase, create state object, proceed with next phases.
+
+ :param minimum_transmit_rate: Minimal target transmit rate [pps].
+ :param maximum_transmit_rate: Maximal target transmit rate [pps].
+ :param packet_loss_ratio: Fraction of packets lost, for PDR [1].
+ :type minimum_transmit_rate: float
+ :type maximum_transmit_rate: float
+ :type packet_loss_ratio: float
+ :returns: Structure containing narrowed down intervals
+ and their measurements.
+ :rtype: NdrPdrResult.NdrPdrResult
+ :raises RuntimeError: If total duration is larger than timeout.
+ """
+ minimum_transmit_rate = float(minimum_transmit_rate)
+ maximum_transmit_rate = float(maximum_transmit_rate)
+ packet_loss_ratio = float(packet_loss_ratio)
+ line_measurement = self.measure(
+ self.initial_trial_duration, maximum_transmit_rate, self.latency)
+ initial_width_goal = self.final_relative_width
+ for _ in range(self.number_of_intermediate_phases):
+ initial_width_goal = self.double_relative_width(initial_width_goal)
+ max_lo = maximum_transmit_rate * (1.0 - initial_width_goal)
+ mrr = max(
+ minimum_transmit_rate,
+ min(max_lo, line_measurement.receive_rate))
+ mrr_measurement = self.measure(
+ self.initial_trial_duration, mrr, self.latency)
+ # Attempt to get narrower width.
+ if mrr_measurement.loss_fraction > 0.0:
+ max2_lo = mrr * (1.0 - initial_width_goal)
+ mrr2 = min(max2_lo, mrr_measurement.receive_rate)
+ else:
+ mrr2 = mrr / (1.0 - initial_width_goal)
+ if mrr2 > minimum_transmit_rate and mrr2 < maximum_transmit_rate:
+ line_measurement = mrr_measurement
+ mrr_measurement = self.measure(
+ self.initial_trial_duration, mrr2, self.latency)
+ if mrr2 > mrr:
+ buf = line_measurement
+ line_measurement = mrr_measurement
+ mrr_measurement = buf
+ starting_interval = ReceiveRateInterval(
+ mrr_measurement, line_measurement)
+ starting_result = NdrPdrResult(starting_interval, starting_interval)
+ state = self.ProgressState(
+ starting_result, self.number_of_intermediate_phases,
+ self.final_trial_duration, self.final_relative_width,
+ packet_loss_ratio, minimum_transmit_rate, maximum_transmit_rate)
+ state = self.ndrpdr(state)
+ result = state.result
+ # theor_max_thruput = 0
+ result_samples = {}
+
+ MultipleLossRatioSearch.display_single_bound(result_samples,
+ 'NDR_LOWER', result.ndr_interval.measured_low.transmit_rate,
+ self.pkt_size, result.ndr_interval.measured_low.latency)
+ MultipleLossRatioSearch.display_single_bound(result_samples,
+ 'NDR_UPPER', result.ndr_interval.measured_high.transmit_rate,
+ self.pkt_size)
+ MultipleLossRatioSearch.display_single_bound(result_samples,
+ 'PDR_LOWER', result.pdr_interval.measured_low.transmit_rate,
+ self.pkt_size, result.pdr_interval.measured_low.latency)
+ MultipleLossRatioSearch.display_single_bound(result_samples,
+ 'PDR_UPPER', result.pdr_interval.measured_high.transmit_rate,
+ self.pkt_size)
+ pdr_msg = self.check_ndrpdr_interval_validity(result_samples, "PDR",
+ result.pdr_interval,
+ packet_loss_ratio)
+ ndr_msg = self.check_ndrpdr_interval_validity(result_samples, "NDR",
+ result.ndr_interval)
+ self.queue.put(result_samples)
+
+ LOGGING.debug("result_samples: %s", result_samples)
+ LOGGING.info(pdr_msg)
+ LOGGING.info(ndr_msg)
+
+ self.perform_additional_measurements_based_on_ndrpdr_result(result)
+
+ return result_samples
+
+ def _measure_and_update_state(self, state, transmit_rate):
+ """Perform trial measurement, update bounds, return new state.
+
+ :param state: State before this measurement.
+ :param transmit_rate: Target transmit rate for this measurement [pps].
+ :type state: ProgressState
+ :type transmit_rate: float
+ :returns: State after the measurement.
+ :rtype: ProgressState
+ """
+ # TODO: Implement https://stackoverflow.com/a/24683360
+ # to avoid the string manipulation if log verbosity is too low.
+ LOGGING.info("result before update: %s", state.result)
+ LOGGING.debug(
+ "relative widths in goals: %s", state.result.width_in_goals(
+ self.final_relative_width))
+ measurement = self.measure(state.duration, transmit_rate, self.latency)
+ ndr_interval = self._new_interval(
+ state.result.ndr_interval, measurement, 0.0)
+ pdr_interval = self._new_interval(
+ state.result.pdr_interval, measurement, state.packet_loss_ratio)
+ state.result = NdrPdrResult(ndr_interval, pdr_interval)
+ return state
+
+ @staticmethod
+ def _new_interval(old_interval, measurement, packet_loss_ratio):
+ """Return new interval with bounds updated according to the measurement.
+
+ :param old_interval: The current interval before the measurement.
+ :param measurement: The new meaqsurement to take into account.
+ :param packet_loss_ratio: Fraction for PDR (or zero for NDR).
+ :type old_interval: ReceiveRateInterval.ReceiveRateInterval
+ :type measurement: ReceiveRateMeasurement.ReceiveRateMeasurement
+ :type packet_loss_ratio: float
+ :returns: The updated interval.
+ :rtype: ReceiveRateInterval.ReceiveRateInterval
+ """
+ old_lo, old_hi = old_interval.measured_low, old_interval.measured_high
+ # Priority zero: direct replace if the target Tr is the same.
+ if measurement.target_tr in (old_lo.target_tr, old_hi.target_tr):
+ if measurement.target_tr == old_lo.target_tr:
+ return ReceiveRateInterval(measurement, old_hi)
+ else:
+ return ReceiveRateInterval(old_lo, measurement)
+ # Priority one: invalid lower bound allows only one type of update.
+ if old_lo.loss_fraction > packet_loss_ratio:
+ # We can only expand down, old bound becomes valid upper one.
+ if measurement.target_tr < old_lo.target_tr:
+ return ReceiveRateInterval(measurement, old_lo)
+ else:
+ return old_interval
+ # Lower bound is now valid.
+ # Next priorities depend on target Tr.
+ if measurement.target_tr < old_lo.target_tr:
+ # Lower external measurement, relevant only
+ # if the new measurement has high loss rate.
+ if measurement.loss_fraction > packet_loss_ratio:
+ # Returning the broader interval as old_lo
+ # would be invalid upper bound.
+ return ReceiveRateInterval(measurement, old_hi)
+ elif measurement.target_tr > old_hi.target_tr:
+ # Upper external measurement, only relevant for invalid upper bound.
+ if old_hi.loss_fraction <= packet_loss_ratio:
+ # Old upper bound becomes valid new lower bound.
+ return ReceiveRateInterval(old_hi, measurement)
+ else:
+ # Internal measurement, replaced boundary
+ # depends on measured loss fraction.
+ if measurement.loss_fraction > packet_loss_ratio:
+ # We have found a narrow valid interval,
+ # regardless of whether old upper bound was valid.
+ return ReceiveRateInterval(old_lo, measurement)
+ else:
+ # In ideal world, we would not want to shrink interval
+ # if upper bound is not valid.
+ # In the real world, we want to shrink it for
+ # "invalid upper bound at maximal rate" case.
+ return ReceiveRateInterval(measurement, old_hi)
+ # Fallback, the interval is unchanged by the measurement.
+ return old_interval
+
+ def ndrpdr(self, state):
+ """Pefrom trials for this phase. Return the new state when done.
+
+ :param state: State before this phase.
+ :type state: ProgressState
+ :returns: The updated state.
+ :rtype: ProgressState
+ :raises RuntimeError: If total duration is larger than timeout.
+ """
+ start_time = time.time()
+ if state.phases > 0:
+ # We need to finish preceding intermediate phases first.
+ saved_phases = state.phases
+ state.phases -= 1
+ # Preceding phases have shorter duration.
+ saved_duration = state.duration
+ duration_multiplier = state.duration / self.initial_trial_duration
+ phase_exponent = float(state.phases) / saved_phases
+ state.duration = self.initial_trial_duration * math.pow(
+ duration_multiplier, phase_exponent)
+ # Shorter durations do not need that narrow widths.
+ saved_width = state.width_goal
+ state.width_goal = self.double_relative_width(state.width_goal)
+ # Recurse.
+ state = self.ndrpdr(state)
+ # Restore the state for current phase.
+ state.duration = saved_duration
+ state.width_goal = saved_width
+ state.phases = saved_phases # Not needed, but just in case.
+ LOGGING.info(
+ "starting iterations with duration %s and relative width goal %s",
+ state.duration, state.width_goal)
+ while 1:
+ if time.time() > start_time + self.timeout:
+ raise RuntimeError("Optimized search takes too long.")
+ # Order of priorities: invalid bounds (nl, pl, nh, ph),
+ # then narrowing relative Tr widths.
+ # Durations are not priorities yet,
+ # they will settle on their own hopefully.
+ ndr_lo = state.result.ndr_interval.measured_low
+ ndr_hi = state.result.ndr_interval.measured_high
+ pdr_lo = state.result.pdr_interval.measured_low
+ pdr_hi = state.result.pdr_interval.measured_high
+ ndr_rel_width = max(
+ state.width_goal, state.result.ndr_interval.rel_tr_width)
+ pdr_rel_width = max(
+ state.width_goal, state.result.pdr_interval.rel_tr_width)
+ # If we are hitting maximal or minimal rate, we cannot shift,
+ # but we can re-measure.
+ if ndr_lo.loss_fraction > 0.0:
+ if ndr_lo.target_tr > state.minimum_transmit_rate:
+ new_tr = max(
+ state.minimum_transmit_rate,
+ self.expand_down(
+ ndr_rel_width, self.doublings, ndr_lo.target_tr))
+ LOGGING.info("ndr lo external %s", new_tr)
+ state = self._measure_and_update_state(state, new_tr)
+ continue
+ elif ndr_lo.duration < state.duration:
+ LOGGING.info("ndr lo minimal re-measure")
+ state = self._measure_and_update_state(
+ state, state.minimum_transmit_rate)
+ continue
+ if pdr_lo.loss_fraction > state.packet_loss_ratio:
+ if pdr_lo.target_tr > state.minimum_transmit_rate:
+ new_tr = max(
+ state.minimum_transmit_rate,
+ self.expand_down(
+ pdr_rel_width, self.doublings, pdr_lo.target_tr))
+ LOGGING.info("pdr lo external %s", new_tr)
+ state = self._measure_and_update_state(state, new_tr)
+ continue
+ elif pdr_lo.duration < state.duration:
+ LOGGING.info("pdr lo minimal re-measure")
+ state = self._measure_and_update_state(
+ state, state.minimum_transmit_rate)
+ continue
+ if ndr_hi.loss_fraction <= 0.0:
+ if ndr_hi.target_tr < state.maximum_transmit_rate:
+ new_tr = min(
+ state.maximum_transmit_rate,
+ self.expand_up(
+ ndr_rel_width, self.doublings, ndr_hi.target_tr))
+ LOGGING.info("ndr hi external %s", new_tr)
+ state = self._measure_and_update_state(state, new_tr)
+ continue
+ elif ndr_hi.duration < state.duration:
+ LOGGING.info("ndr hi maximal re-measure")
+ state = self._measure_and_update_state(
+ state, state.maximum_transmit_rate)
+ continue
+ if pdr_hi.loss_fraction <= state.packet_loss_ratio:
+ if pdr_hi.target_tr < state.maximum_transmit_rate:
+ new_tr = min(
+ state.maximum_transmit_rate,
+ self.expand_up(
+ pdr_rel_width, self.doublings, pdr_hi.target_tr))
+ LOGGING.info("pdr hi external %s", new_tr)
+ state = self._measure_and_update_state(state, new_tr)
+ continue
+ elif pdr_hi.duration < state.duration:
+ LOGGING.info("ndr hi maximal re-measure")
+ state = self._measure_and_update_state(
+ state, state.maximum_transmit_rate)
+ continue
+ # If we are hitting maximum_transmit_rate,
+ # it is still worth narrowing width,
+ # hoping large enough loss fraction will happen.
+ # But if we are hitting the minimal rate (at current duration),
+ # no additional measurement will help with that,
+ # so we can stop narrowing in this phase.
+ if (ndr_lo.target_tr <= state.minimum_transmit_rate
+ and ndr_lo.loss_fraction > 0.0):
+ ndr_rel_width = 0.0
+ if (pdr_lo.target_tr <= state.minimum_transmit_rate
+ and pdr_lo.loss_fraction > state.packet_loss_ratio):
+ pdr_rel_width = 0.0
+ if ndr_rel_width > state.width_goal:
+ # We have to narrow NDR width first, as NDR internal search
+ # can invalidate PDR (but not vice versa).
+ new_tr = self.half_step_up(ndr_rel_width, ndr_lo.target_tr)
+ LOGGING.info("Bisecting for NDR at %s", new_tr)
+ state = self._measure_and_update_state(state, new_tr)
+ continue
+ if pdr_rel_width > state.width_goal:
+ # PDR iternal search.
+ new_tr = self.half_step_up(pdr_rel_width, pdr_lo.target_tr)
+ LOGGING.info("Bisecting for PDR at %s", new_tr)
+ state = self._measure_and_update_state(state, new_tr)
+ continue
+ # We do not need to improve width, but there still might be
+ # some measurements with smaller duration.
+ # We need to re-measure with full duration, possibly
+ # creating invalid bounds to resolve (thus broadening width).
+ if ndr_lo.duration < state.duration:
+ LOGGING.info("re-measuring NDR lower bound")
+ state = self._measure_and_update_state(state, ndr_lo.target_tr)
+ continue
+ if pdr_lo.duration < state.duration:
+ LOGGING.info("re-measuring PDR lower bound")
+ state = self._measure_and_update_state(state, pdr_lo.target_tr)
+ continue
+ # Except when lower bounds have high loss fraction, in that case
+ # we do not need to re-measure _upper_ bounds.
+ if ndr_hi.duration < state.duration and ndr_rel_width > 0.0:
+ LOGGING.info("re-measuring NDR upper bound")
+ state = self._measure_and_update_state(state, ndr_hi.target_tr)
+ continue
+ if pdr_hi.duration < state.duration and pdr_rel_width > 0.0:
+ LOGGING.info("re-measuring PDR upper bound")
+ state = self._measure_and_update_state(state, pdr_hi.target_tr)
+ continue
+ # Widths are narrow (or lower bound minimal), bound measurements
+ # are long enough, we can return.
+ LOGGING.info("phase done")
+ break
+ return state
+
+ def measure(self, duration, transmit_rate, latency):
+ duration = float(duration)
+ transmit_rate = float(transmit_rate)
+ # Trex needs target Tr per stream, but reports aggregate Tx and Dx.
+ unit_rate = str(transmit_rate / 2.0) + "pps"
+ stats = self.measurer.send_traffic_on_tg(self.ports, self.port_pg_id,
+ duration, unit_rate,
+ latency=latency)
+ self.measurer.client.reset(ports=self.ports)
+ self.measurer.client.clear_stats(ports=self.ports)
+ self.measurer.client.remove_all_streams(ports=self.ports)
+ for port, profile in self.profiles.items():
+ self.measurer.client.add_streams(profile, ports=[port])
+ self.collect_kpi(stats, unit_rate)
+ transmit_count = int(self.measurer.sent)
+ loss_count = int(self.measurer.loss)
+ measurement = ReceiveRateMeasurement(
+ duration, transmit_rate, transmit_count, loss_count)
+ measurement.latency = self.measurer.latency
+ return measurement
+
+ def perform_additional_measurements_based_on_ndrpdr_result(self, result):
+ duration = 5.0
+ rate = "{}{}".format(result.ndr_interval.measured_low.target_tr / 2.0,
+ 'pps')
+ for _ in range(0, 1):
+ stats = self.measurer.send_traffic_on_tg(self.ports,
+ self.port_pg_id, duration,
+ rate)
+ self.collect_kpi(stats, rate)
+ LOGGING.info('Traffic loss occurred: %s', self.measurer.loss)
+
+ @staticmethod
+ def display_single_bound(result_samples, result_type, rate_total, pkt_size,
+ latency=None):
+ bandwidth_total = float(rate_total) * (pkt_size + 20) * 8 / (10 ** 9)
+
+ result_samples["Result_{}".format(result_type)] = {
+ "rate_total_pps": float(rate_total),
+ "bandwidth_total_Gbps": float(bandwidth_total),
+ }
+
+ if latency:
+ for item in latency:
+ if latency.index(item) == 0:
+ name = "Result_{}_{}".format("stream0", result_type)
+ else:
+ name = "Result_{}_{}".format("stream1", result_type)
+ lat_min, lat_avg, lat_max = item.split('/')
+ result_samples[name] = {
+ "min_latency": float(lat_min),
+ "avg_latency": float(lat_avg),
+ "max_latency": float(lat_max),
+ }
+
+ @staticmethod
+ def check_ndrpdr_interval_validity(result_samples, result_type, interval,
+ packet_loss_ratio=0.0):
+ lower_bound = interval.measured_low
+ lower_bound_lf = lower_bound.loss_fraction
+
+ result_samples["Result_{}_packets_lost".format(result_type)] = {
+ "packet_loss_ratio": float(lower_bound_lf),
+ "packets_lost": float(lower_bound.loss_count),
+ }
+
+ if lower_bound_lf <= packet_loss_ratio:
+ return "Minimal rate loss fraction {} reach target {}".format(
+ lower_bound_lf, packet_loss_ratio)
+ else:
+ message = "Minimal rate loss fraction {} does not reach target {}".format(
+ lower_bound_lf, packet_loss_ratio)
+ if lower_bound_lf >= 1.0:
+ return '{}\nZero packets forwarded!'.format(message)
+ else:
+ return '{}\n{} packets lost.'.format(message,
+ lower_bound.loss_count)
diff --git a/yardstick/network_services/helpers/vpp_helpers/ndr_pdr_result.py b/yardstick/network_services/helpers/vpp_helpers/ndr_pdr_result.py
new file mode 100644
index 000000000..34a97f9fb
--- /dev/null
+++ b/yardstick/network_services/helpers/vpp_helpers/ndr_pdr_result.py
@@ -0,0 +1,68 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# This is a modified copy of
+# https://gerrit.fd.io/r/gitweb?p=csit.git;a=blob_plain;f=resources/libraries/python/MLRsearch/NdrPdrResult.py;hb=HEAD
+
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_interval import \
+ ReceiveRateInterval
+
+
+class NdrPdrResult(object):
+ """Two measurement intervals, return value of search algorithms.
+
+ Partial fraction is NOT part of the result. Pdr interval should be valid
+ for all partial fractions implied by the interval."""
+
+ def __init__(self, ndr_interval, pdr_interval):
+ """Store the measured intervals after checking argument types.
+
+ :param ndr_interval: Object containing data for NDR part of the result.
+ :param pdr_interval: Object containing data for PDR part of the result.
+ :type ndr_interval: ReceiveRateInterval.ReceiveRateInterval
+ :type pdr_interval: ReceiveRateInterval.ReceiveRateInterval
+ """
+ # TODO: Type checking is not very pythonic,
+ # perhaps users can fix wrong usage without it?
+ if not isinstance(ndr_interval, ReceiveRateInterval):
+ raise TypeError("ndr_interval, is not a ReceiveRateInterval: "
+ "{ndr!r}".format(ndr=ndr_interval))
+ if not isinstance(pdr_interval, ReceiveRateInterval):
+ raise TypeError("pdr_interval, is not a ReceiveRateInterval: "
+ "{pdr!r}".format(pdr=pdr_interval))
+ self.ndr_interval = ndr_interval
+ self.pdr_interval = pdr_interval
+
+ def width_in_goals(self, relative_width_goal):
+ """Return a debug string related to current widths in logarithmic scale.
+
+ :param relative_width_goal: Upper bound times this is the goal
+ difference between upper bound and lower bound.
+ :type relative_width_goal: float
+ :returns: Message containing NDR and PDR widths in goals.
+ :rtype: str
+ """
+ return "ndr {ndr_in_goals}; pdr {pdr_in_goals}".format(
+ ndr_in_goals=self.ndr_interval.width_in_goals(relative_width_goal),
+ pdr_in_goals=self.pdr_interval.width_in_goals(relative_width_goal))
+
+ def __str__(self):
+ """Return string as tuple of named values."""
+ return "NDR={ndr!s};PDR={pdr!s}".format(
+ ndr=self.ndr_interval, pdr=self.pdr_interval)
+
+ def __repr__(self):
+ """Return string evaluable as a constructor call."""
+ return "NdrPdrResult(ndr_interval={ndr!r},pdr_interval={pdr!r})".format(
+ ndr=self.ndr_interval, pdr=self.pdr_interval)
diff --git a/yardstick/network_services/helpers/vpp_helpers/receive_rate_interval.py b/yardstick/network_services/helpers/vpp_helpers/receive_rate_interval.py
new file mode 100644
index 000000000..517a99c1f
--- /dev/null
+++ b/yardstick/network_services/helpers/vpp_helpers/receive_rate_interval.py
@@ -0,0 +1,88 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# This is a modified copy of
+# https://gerrit.fd.io/r/gitweb?p=csit.git;a=blob_plain;f=resources/libraries/python/MLRsearch/ReceiveRateInterval.py;hb=HEAD
+
+import math
+
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_measurement import \
+ ReceiveRateMeasurement
+
+
+class ReceiveRateInterval(object):
+ """Structure defining two Rr measurements, and their relation."""
+
+ def __init__(self, measured_low, measured_high):
+ """Store the bound measurements after checking argument types.
+
+ :param measured_low: Measurement for the lower bound.
+ :param measured_high: Measurement for the upper bound.
+ :type measured_low: ReceiveRateMeasurement.ReceiveRateMeasurement
+ :type measured_high: ReceiveRateMeasurement.ReceiveRateMeasurement
+ """
+ # TODO: Type checking is not very pythonic,
+ # perhaps users can fix wrong usage without it?
+ if not isinstance(measured_low, ReceiveRateMeasurement):
+ raise TypeError("measured_low is not a ReceiveRateMeasurement: "
+ "{low!r}".format(low=measured_low))
+ if not isinstance(measured_high, ReceiveRateMeasurement):
+ raise TypeError("measured_high is not a ReceiveRateMeasurement: "
+ "{high!r}".format(high=measured_high))
+ self.measured_low = measured_low
+ self.measured_high = measured_high
+ # Declare secondary quantities to appease pylint.
+ self.abs_tr_width = None
+ """Absolute width of target transmit rate. Upper minus lower."""
+ self.rel_tr_width = None
+ """Relative width of target transmit rate. Absolute divided by upper."""
+ self.sort()
+
+ def sort(self):
+ """Sort bounds by target Tr, compute secondary quantities."""
+ if self.measured_low.target_tr > self.measured_high.target_tr:
+ self.measured_low, self.measured_high = (
+ self.measured_high, self.measured_low)
+ self.abs_tr_width = (
+ self.measured_high.target_tr - self.measured_low.target_tr)
+ self.rel_tr_width = round(
+ self.abs_tr_width / self.measured_high.target_tr, 5)
+
+ def width_in_goals(self, relative_width_goal):
+ """Return float value.
+
+ Relative width goal is some (negative) value on logarithmic scale.
+ Current relative width is another logarithmic value.
+ Return the latter divided by the former.
+ This is useful when investigating how did surprising widths come to be.
+
+ :param relative_width_goal: Upper bound times this is the goal
+ difference between upper bound and lower bound.
+ :type relative_width_goal: float
+ :returns: Current width as logarithmic multiple of goal width [1].
+ :rtype: float
+ """
+ return round(math.log(1.0 - self.rel_tr_width) / math.log(
+ 1.0 - relative_width_goal), 5)
+
+ def __str__(self):
+ """Return string as half-open interval."""
+ return "[{low!s};{high!s})".format(
+ low=self.measured_low, high=self.measured_high)
+
+ def __repr__(self):
+ """Return string evaluable as a constructor call."""
+ return ("ReceiveRateInterval(measured_low={low!r}"
+ ",measured_high={high!r})".format(low=self.measured_low,
+ high=self.measured_high))
diff --git a/yardstick/network_services/helpers/vpp_helpers/receive_rate_measurement.py b/yardstick/network_services/helpers/vpp_helpers/receive_rate_measurement.py
new file mode 100644
index 000000000..2c59ea104
--- /dev/null
+++ b/yardstick/network_services/helpers/vpp_helpers/receive_rate_measurement.py
@@ -0,0 +1,58 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# This is a modified copy of
+# https://gerrit.fd.io/r/gitweb?p=csit.git;a=blob_plain;f=resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py;hb=HEAD
+
+
+class ReceiveRateMeasurement(object):
+ """Structure defining the result of single Rr measurement."""
+
+ def __init__(self, duration, target_tr, transmit_count, loss_count):
+ """Constructor, normalize primary and compute secondary quantities.
+
+ :param duration: Measurement duration [s].
+ :param target_tr: Target transmit rate [pps].
+ If bidirectional traffic is measured, this is bidirectional rate.
+ :param transmit_count: Number of packets transmitted [1].
+ :param loss_count: Number of packets transmitted but not received [1].
+ :type duration: float
+ :type target_tr: float
+ :type transmit_count: int
+ :type loss_count: int
+ """
+ self.duration = float(duration)
+ self.target_tr = float(target_tr)
+ self.transmit_count = int(transmit_count)
+ self.loss_count = int(loss_count)
+ self.receive_count = round(transmit_count - loss_count, 5)
+ self.transmit_rate = round(transmit_count / self.duration, 5)
+ self.loss_rate = round(loss_count / self.duration, 5)
+ self.receive_rate = round(self.receive_count / self.duration, 5)
+ self.loss_fraction = round(
+ float(self.loss_count) / self.transmit_count, 5)
+ # TODO: Do we want to store also the real time (duration + overhead)?
+
+ def __str__(self):
+ """Return string reporting input and loss fraction."""
+ return "d={dur!s},Tr={rate!s},Df={frac!s}".format(
+ dur=self.duration, rate=self.target_tr, frac=self.loss_fraction)
+
+ def __repr__(self):
+ """Return string evaluable as a constructor call."""
+ return ("ReceiveRateMeasurement(duration={dur!r},target_tr={rate!r}"
+ ",transmit_count={trans!r},loss_count={loss!r})".format(
+ dur=self.duration, rate=self.target_tr,
+ trans=self.transmit_count,
+ loss=self.loss_count))
diff --git a/yardstick/network_services/libs/ixia_libs/IxNet/IxNet.py b/yardstick/network_services/libs/ixia_libs/IxNet/IxNet.py
deleted file mode 100644
index 70ce4ff03..000000000
--- a/yardstick/network_services/libs/ixia_libs/IxNet/IxNet.py
+++ /dev/null
@@ -1,344 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import absolute_import
-from __future__ import print_function
-import sys
-import logging
-
-import re
-from itertools import product
-
-log = logging.getLogger(__name__)
-
-IP_VERSION_4 = 4
-IP_VERSION_6 = 6
-
-
-class TrafficStreamHelper(object):
-
- TEMPLATE = '{0.traffic_item}/{0.stream}:{0.param_id}/{1}'
-
- def __init__(self, traffic_item, stream, param_id):
- super(TrafficStreamHelper, self).__init__()
- self.traffic_item = traffic_item
- self.stream = stream
- self.param_id = param_id
-
- def __getattr__(self, item):
- return self.TEMPLATE.format(self, item)
-
-
-class FramesizeHelper(object):
-
- def __init__(self):
- super(FramesizeHelper, self).__init__()
- self.weighted_pairs = []
- self.weighted_range_pairs = []
-
- @property
- def weighted_pairs_arg(self):
- return '-weightedPairs', self.weighted_pairs
-
- @property
- def weighted_range_pairs_arg(self):
- return '-weightedRangePairs', self.weighted_range_pairs
-
- def make_args(self, *args):
- return self.weighted_pairs_arg + self.weighted_range_pairs_arg + args
-
- def populate_data(self, framesize_data):
- for key, value in framesize_data.items():
- if value == '0':
- continue
-
- replaced = re.sub('[Bb]', '', key)
- self.weighted_pairs.extend([
- replaced,
- value,
- ])
- pairs = [
- replaced,
- replaced,
- value,
- ]
- self.weighted_range_pairs.append(pairs)
-
-
-class IxNextgen(object):
-
- STATS_NAME_MAP = {
- "traffic_item": 'Traffic Item',
- "Tx_Frames": 'Tx Frames',
- "Rx_Frames": 'Rx Frames',
- "Tx_Frame_Rate": 'Tx Frame Rate',
- "Rx_Frame_Rate": 'Tx Frame Rate',
- "Store-Forward_Avg_latency_ns": 'Store-Forward Avg Latency (ns)',
- "Store-Forward_Min_latency_ns": 'Store-Forward Min Latency (ns)',
- "Store-Forward_Max_latency_ns": 'Store-Forward Max Latency (ns)',
- }
-
- PORT_STATS_NAME_MAP = {
- "stat_name": 'Stat Name',
- "Frames_Tx": 'Frames Tx.',
- "Valid_Frames_Rx": 'Valid Frames Rx.',
- "Frames_Tx_Rate": 'Frames Tx. Rate',
- "Valid_Frames_Rx_Rate": 'Valid Frames Rx. Rate',
- "Tx_Rate_Kbps": 'Tx. Rate (Kbps)',
- "Rx_Rate_Kbps": 'Rx. Rate (Kbps)',
- "Tx_Rate_Mbps": 'Tx. Rate (Mbps)',
- "Rx_Rate_Mbps": 'Rx. Rate (Mbps)',
- }
-
- LATENCY_NAME_MAP = {
- "Store-Forward_Avg_latency_ns": 'Store-Forward Avg Latency (ns)',
- "Store-Forward_Min_latency_ns": 'Store-Forward Min Latency (ns)',
- "Store-Forward_Max_latency_ns": 'Store-Forward Max Latency (ns)',
- }
-
- RANDOM_MASK_MAP = {
- IP_VERSION_4: '0.0.0.255',
- IP_VERSION_6: '0:0:0:0:0:0:0:ff',
- }
-
- MODE_SEEDS_MAP = {
- 0: ('uplink', ['256', '2048']),
- }
-
- MODE_SEEDS_DEFAULT = 'downlink', ['2048', '256']
-
- @staticmethod
- def find_view_obj(view_name, views):
- edited_view_name = '::ixNet::OBJ-/statistics/view:"{}"'.format(view_name)
- return next((view for view in views if edited_view_name == view), '')
-
- @staticmethod
- def get_config(tg_cfg):
- card = []
- port = []
- external_interface = tg_cfg["vdu"][0]["external-interface"]
- for intf in external_interface:
- card_port0 = intf["virtual-interface"]["vpci"]
- card0, port0 = card_port0.split(':')[:2]
- card.append(card0)
- port.append(port0)
-
- cfg = {
- 'py_lib_path': tg_cfg["mgmt-interface"]["tg-config"]["py_lib_path"],
- 'machine': tg_cfg["mgmt-interface"]["ip"],
- 'port': tg_cfg["mgmt-interface"]["tg-config"]["tcl_port"],
- 'chassis': tg_cfg["mgmt-interface"]["tg-config"]["ixchassis"],
- 'cards': card,
- 'ports': port,
- 'output_dir': tg_cfg["mgmt-interface"]["tg-config"]["dut_result_dir"],
- 'version': tg_cfg["mgmt-interface"]["tg-config"]["version"],
- 'bidir': True,
- }
-
- return cfg
-
- def __init__(self, ixnet=None):
- self.ixnet = ixnet
- self._objRefs = dict()
- self._cfg = None
- self._logger = logging.getLogger(__name__)
- self._params = None
- self._bidir = None
-
- def iter_over_get_lists(self, x1, x2, y2, offset=0):
- for x in self.ixnet.getList(x1, x2):
- y_list = self.ixnet.getList(x, y2)
- for i, y in enumerate(y_list, offset):
- yield x, y, i
-
- def set_random_ip_multi_attribute(self, ipv4, seed, fixed_bits, random_mask, l3_count):
- self.ixnet.setMultiAttribute(
- ipv4,
- '-seed', str(seed),
- '-fixedBits', str(fixed_bits),
- '-randomMask', str(random_mask),
- '-valueType', 'random',
- '-countValue', str(l3_count))
-
- def set_random_ip_multi_attributes(self, ip, version, seeds, l3):
- try:
- random_mask = self.RANDOM_MASK_MAP[version]
- except KeyError:
- raise ValueError('Unknown version %s' % version)
-
- l3_count = l3['count']
- if "srcIp" in ip:
- fixed_bits = l3['srcip4']
- self.set_random_ip_multi_attribute(ip, seeds[0], fixed_bits, random_mask, l3_count)
- if "dstIp" in ip:
- fixed_bits = l3['dstip4']
- self.set_random_ip_multi_attribute(ip, seeds[1], fixed_bits, random_mask, l3_count)
-
- def add_ip_header(self, params, version):
- for it, ep, i in self.iter_over_get_lists('/traffic', 'trafficItem', "configElement", 1):
- iter1 = (v['outer_l3'] for v in params.values() if str(v['id']) == str(i))
- try:
- l3 = next(iter1, {})
- seeds = self.MODE_SEEDS_MAP.get(i, self.MODE_SEEDS_DEFAULT)[1]
- except (KeyError, IndexError):
- continue
-
- for ip, ip_bits, _ in self.iter_over_get_lists(ep, 'stack', 'field'):
- self.set_random_ip_multi_attributes(ip_bits, version, seeds, l3)
-
- self.ixnet.commit()
-
- def _connect(self, tg_cfg):
- self._cfg = self.get_config(tg_cfg)
-
- sys.path.append(self._cfg["py_lib_path"])
- # Import IxNetwork after getting ixia lib path
- try:
- import IxNetwork
- except ImportError:
- raise
-
- self.ixnet = IxNetwork.IxNet()
-
- machine = self._cfg['machine']
- port = str(self._cfg['port'])
- version = str(self._cfg['version'])
- result = self.ixnet.connect(machine, '-port', port, '-version', version)
- return result
-
- def clear_ixia_config(self):
- self.ixnet.execute('newConfig')
-
- def load_ixia_profile(self, profile):
- self.ixnet.execute('loadConfig', self.ixnet.readFrom(profile))
-
- def ix_load_config(self, profile):
- self.clear_ixia_config()
- self.load_ixia_profile(profile)
-
- def ix_assign_ports(self):
- vports = self.ixnet.getList(self.ixnet.getRoot(), 'vport')
- ports = []
-
- chassis = self._cfg['chassis']
- ports = [(chassis, card, port) for card, port in
- zip(self._cfg['cards'], self._cfg['ports'])]
-
- vport_list = self.ixnet.getList("/", "vport")
- self.ixnet.execute('assignPorts', ports, [], vport_list, True)
- self.ixnet.commit()
-
- for vport in vports:
- if self.ixnet.getAttribute(vport, '-state') != 'up':
- log.error("Both thr ports are down...")
-
- def ix_update_frame(self, params):
- streams = ["configElement"]
-
- for param in params.values():
- framesize_data = FramesizeHelper()
- traffic_items = self.ixnet.getList('/traffic', 'trafficItem')
- param_id = param['id']
- for traffic_item, stream in product(traffic_items, streams):
- helper = TrafficStreamHelper(traffic_item, stream, param_id)
-
- self.ixnet.setMultiAttribute(helper.transmissionControl,
- '-type', '{0}'.format(param.get('traffic_type',
- 'continuous')),
- '-duration', '{0}'.format(param.get('duration',
- "30")))
-
- stream_frame_rate_path = helper.frameRate
- self.ixnet.setMultiAttribute(stream_frame_rate_path, '-rate', param['iload'])
- if param['outer_l2']['framesPerSecond']:
- self.ixnet.setMultiAttribute(stream_frame_rate_path,
- '-type', 'framesPerSecond')
-
- framesize_data.populate_data(param['outer_l2']['framesize'])
-
- make_attr_args = framesize_data.make_args('-incrementFrom', '66',
- '-randomMin', '66',
- '-quadGaussian', [],
- '-type', 'weightedPairs',
- '-presetDistribution', 'cisco',
- '-incrementTo', '1518')
-
- self.ixnet.setMultiAttribute(helper.frameSize, *make_attr_args)
-
- self.ixnet.commit()
-
- def update_ether_multi_attribute(self, ether, mac_addr):
- self.ixnet.setMultiAttribute(ether,
- '-singleValue', mac_addr,
- '-fieldValue', mac_addr,
- '-valueType', 'singleValue')
-
- def update_ether_multi_attributes(self, ether, l2):
- if "ethernet.header.destinationAddress" in ether:
- self.update_ether_multi_attribute(ether, str(l2.get('dstmac', "00:00:00:00:00:02")))
-
- if "ethernet.header.sourceAddress" in ether:
- self.update_ether_multi_attribute(ether, str(l2.get('srcmac', "00:00:00:00:00:01")))
-
- def ix_update_ether(self, params):
- for ti, ep, index in self.iter_over_get_lists('/traffic', 'trafficItem',
- "configElement", 1):
- iter1 = (v['outer_l2'] for v in params.values() if str(v['id']) == str(index))
- try:
- l2 = next(iter1, {})
- except KeyError:
- continue
-
- for ip, ether, _ in self.iter_over_get_lists(ep, 'stack', 'field'):
- self.update_ether_multi_attributes(ether, l2)
-
- self.ixnet.commit()
-
- def ix_update_udp(self, params):
- pass
-
- def ix_update_tcp(self, params):
- pass
-
- def ix_start_traffic(self):
- tis = self.ixnet.getList('/traffic', 'trafficItem')
- for ti in tis:
- self.ixnet.execute('generate', [ti])
- self.ixnet.execute('apply', '/traffic')
- self.ixnet.execute('start', '/traffic')
-
- def ix_stop_traffic(self):
- tis = self.ixnet.getList('/traffic', 'trafficItem')
- for _ in tis:
- self.ixnet.execute('stop', '/traffic')
-
- def build_stats_map(self, view_obj, name_map):
- return {kl: self.execute_get_column_values(view_obj, kr) for kl, kr in name_map.items()}
-
- def execute_get_column_values(self, view_obj, name):
- return self.ixnet.execute('getColumnValues', view_obj, name)
-
- def ix_get_statistics(self):
- views = self.ixnet.getList('/statistics', 'view')
- stats = {}
- view_obj = self.find_view_obj("Traffic Item Statistics", views)
- stats = self.build_stats_map(view_obj, self.STATS_NAME_MAP)
-
- view_obj = self.find_view_obj("Port Statistics", views)
- ports_stats = self.build_stats_map(view_obj, self.PORT_STATS_NAME_MAP)
-
- view_obj = self.find_view_obj("Flow Statistics", views)
- stats["latency"] = self.build_stats_map(view_obj, self.LATENCY_NAME_MAP)
-
- return stats, ports_stats
diff --git a/tests/unit/benchmark/__init__.py b/yardstick/network_services/libs/ixia_libs/ixnet/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/__init__.py
+++ b/yardstick/network_services/libs/ixia_libs/ixnet/__init__.py
diff --git a/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py b/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py
new file mode 100644
index 000000000..89a855480
--- /dev/null
+++ b/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py
@@ -0,0 +1,1132 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import ipaddress
+import logging
+import re
+import collections
+
+import IxNetwork
+
+from yardstick.common import exceptions
+from yardstick.common import utils
+from yardstick.network_services.traffic_profile import base as tp_base
+
+
+log = logging.getLogger(__name__)
+
+IP_VERSION_4 = 4
+IP_VERSION_6 = 6
+
+PROTO_ETHERNET = 'ethernet'
+PROTO_IPV4 = 'ipv4'
+PROTO_IPV6 = 'ipv6'
+PROTO_UDP = 'udp'
+PROTO_TCP = 'tcp'
+PROTO_VLAN = 'vlan'
+
+SINGLE_VALUE = "singleValue"
+
+S_VLAN = 0
+C_VLAN = 1
+
+ETHER_TYPE_802_1ad = '0x88a8'
+
+TRAFFIC_STATUS_STARTED = 'started'
+TRAFFIC_STATUS_STOPPED = 'stopped'
+
+PROTOCOL_STATUS_UP = 'up'
+PROTOCOL_STATUS_DOWN = ['down', 'notStarted']
+
+SUPPORTED_PROTO = [PROTO_UDP]
+
+SUPPORTED_DSCP_CLASSES = [
+ 'defaultPHB',
+ 'classSelectorPHB',
+ 'assuredForwardingPHB',
+ 'expeditedForwardingPHB']
+
+SUPPORTED_TOS_FIELDS = [
+ 'precedence',
+ 'delay',
+ 'throughput',
+ 'reliability'
+]
+
+IP_PRIORITY_PATTERN = r'[^\w+]*.+(Raw priority|' \
+ 'Precedence|' \
+ 'Default PHB|' \
+ 'Class selector PHB|' \
+ 'Assured forwarding selector PHB|' \
+ 'Expedited forwarding PHB)'
+
+
+class Vlan(object):
+ def __init__(self,
+ vlan_id, vlan_id_step=None, vlan_id_direction='increment',
+ prio=None, prio_step=None, prio_direction='increment',
+ tp_id=None):
+ self.vlan_id = vlan_id
+ self.vlan_id_step = vlan_id_step
+ self.vlan_id_direction = vlan_id_direction
+ self.prio = prio
+ self.prio_step = prio_step
+ self.prio_direction = prio_direction
+ self.tp_id = tp_id
+
+
+# NOTE(ralonsoh): this pragma will be removed in the last patch of this series
+class IxNextgen(object): # pragma: no cover
+
+ PORT_STATS_NAME_MAP = {
+ "stat_name": 'Stat Name',
+ "port_name": 'Port Name',
+ "Frames_Tx": 'Frames Tx.',
+ "Valid_Frames_Rx": 'Valid Frames Rx.',
+ "Bytes_Tx": 'Bytes Tx.',
+ "Bytes_Rx": 'Bytes Rx.'
+ }
+
+ LATENCY_NAME_MAP = {
+ "Store-Forward_Avg_latency_ns": 'Store-Forward Avg Latency (ns)',
+ "Store-Forward_Min_latency_ns": 'Store-Forward Min Latency (ns)',
+ "Store-Forward_Max_latency_ns": 'Store-Forward Max Latency (ns)',
+ }
+
+ FLOWS_STATS_NAME_MAP = {
+ "Tx_Port": 'Tx Port',
+ "VLAN-ID": 'VLAN:VLAN-ID',
+ "IP_Priority": re.compile(IP_PRIORITY_PATTERN),
+ "Flow_Group": 'Flow Group',
+ "Tx_Frames": 'Tx Frames',
+ "Rx_Frames": 'Rx Frames',
+ "Store-Forward_Avg_latency_ns": 'Store-Forward Avg Latency (ns)',
+ "Store-Forward_Min_latency_ns": 'Store-Forward Min Latency (ns)',
+ "Store-Forward_Max_latency_ns": 'Store-Forward Max Latency (ns)'
+ }
+
+ PPPOX_CLIENT_PER_PORT_NAME_MAP = {
+ 'subs_port': 'Port',
+ 'Sessions_Up': 'Sessions Up',
+ 'Sessions_Down': 'Sessions Down',
+ 'Sessions_Not_Started': 'Sessions Not Started',
+ 'Sessions_Total': 'Sessions Total'
+ }
+
+ PORT_STATISTICS = '::ixNet::OBJ-/statistics/view:"Port Statistics"'
+ FLOW_STATISTICS = '::ixNet::OBJ-/statistics/view:"Flow Statistics"'
+ PPPOX_CLIENT_PER_PORT = '::ixNet::OBJ-/statistics/view:"PPPoX Client Per Port"'
+
+ PPPOE_SCENARIO_STATS = {
+ 'port_statistics': PORT_STATISTICS,
+ 'flow_statistic': FLOW_STATISTICS,
+ 'pppox_client_per_port': PPPOX_CLIENT_PER_PORT
+ }
+
+ PPPOE_SCENARIO_STATS_MAP = {
+ 'port_statistics': PORT_STATS_NAME_MAP,
+ 'flow_statistic': FLOWS_STATS_NAME_MAP,
+ 'pppox_client_per_port': PPPOX_CLIENT_PER_PORT_NAME_MAP
+ }
+
+ @staticmethod
+ def get_config(tg_cfg):
+ card = []
+ port = []
+ external_interface = tg_cfg["vdu"][0]["external-interface"]
+ for intf in external_interface:
+ card_port0 = intf["virtual-interface"]["vpci"]
+ card0, port0 = card_port0.split(':')[:2]
+ card.append(card0)
+ port.append(port0)
+
+ cfg = {
+ 'machine': tg_cfg["mgmt-interface"]["ip"],
+ 'port': tg_cfg["mgmt-interface"]["tg-config"]["tcl_port"],
+ 'chassis': tg_cfg["mgmt-interface"]["tg-config"]["ixchassis"],
+ 'cards': card,
+ 'ports': port,
+ 'output_dir': tg_cfg["mgmt-interface"]["tg-config"]["dut_result_dir"],
+ 'version': tg_cfg["mgmt-interface"]["tg-config"]["version"],
+ 'bidir': True,
+ }
+
+ return cfg
+
+ def __init__(self): # pragma: no cover
+ self._ixnet = None
+ self._cfg = None
+ self._params = None
+ self._bidir = None
+
+ @property
+ def ixnet(self): # pragma: no cover
+ if self._ixnet:
+ return self._ixnet
+ raise exceptions.IxNetworkClientNotConnected()
+
+ def get_vports(self):
+ """Return the list of assigned ports (vport objects)"""
+ vports = self.ixnet.getList(self.ixnet.getRoot(), 'vport')
+ return vports
+
+ def get_static_interface(self, vport):
+ return self.ixnet.getList(vport, 'interface')
+
+ def _get_config_element_by_flow_group_name(self, flow_group_name):
+ """Get a config element using the flow group name
+
+ Each named flow group contains one config element (by configuration).
+ According to the documentation, "configElements" is a list and "each
+ item in this list is aligned to the sequential order of your endpoint
+ list".
+
+ :param flow_group_name: (str) flow group name; this parameter is
+ always a number (converted to string) starting
+ from "1".
+ :return: (str) config element reference ID or None.
+ """
+ traffic_item = self.ixnet.getList(self.ixnet.getRoot() + '/traffic',
+ 'trafficItem')[0]
+ flow_groups = self.ixnet.getList(traffic_item, 'endpointSet')
+ for flow_group in flow_groups:
+ if (str(self.ixnet.getAttribute(flow_group, '-name')) ==
+ flow_group_name):
+ return traffic_item + '/configElement:' + flow_group_name
+
+ def _get_stack_item(self, flow_group_name, protocol_name):
+ """Return the stack item given the flow group name and the proto name
+
+ :param flow_group_name: (str) flow group name
+ :param protocol_name: (str) protocol name, referred to PROTO_*
+ constants
+ :return: list of stack item descriptors
+ """
+ celement = self._get_config_element_by_flow_group_name(flow_group_name)
+ if not celement:
+ raise exceptions.IxNetworkFlowNotPresent(
+ flow_group=flow_group_name)
+ stack_items = self.ixnet.getList(celement, 'stack')
+ return [s_i for s_i in stack_items if protocol_name in s_i]
+
+ def _get_field_in_stack_item(self, stack_item, field_name):
+ """Return the field in a stack item given the name
+
+ :param stack_item: (str) stack item descriptor
+ :param field_name: (str) field name
+ :return: (str) field descriptor
+ """
+ fields = self.ixnet.getList(stack_item, 'field')
+ for field in (field for field in fields if field_name in field):
+ return field
+ raise exceptions.IxNetworkFieldNotPresentInStackItem(
+ field_name=field_name, stack_item=stack_item)
+
+ def _get_traffic_state(self):
+ """Get traffic state"""
+ return self.ixnet.getAttribute(self.ixnet.getRoot() + 'traffic',
+ '-state')
+
+ def _get_protocol_status(self, proto):
+ """Get protocol status
+
+ :param proto: IxNet protocol str representation, e.g.:
+ '::ixNet::OBJ-/topology:2/deviceGroup:1/ethernet:1/ipv4:L14'
+ :return: (list) protocol status: list of sessions protocol
+ statuses which include states 'up', 'down' and 'notStarted'
+ """
+ return self.ixnet.getAttribute(proto, '-sessionStatus')
+
+ def get_topology_device_groups(self, topology):
+ """Get list of device groups in topology
+
+ :param topology: (str) topology descriptor
+ :return: (list) list of device groups descriptors
+ """
+ return self.ixnet.getList(topology, 'deviceGroup')
+
+ def is_traffic_running(self):
+ """Returns true if traffic state == TRAFFIC_STATUS_STARTED"""
+ return self._get_traffic_state() == TRAFFIC_STATUS_STARTED
+
+ def is_traffic_stopped(self):
+ """Returns true if traffic state == TRAFFIC_STATUS_STOPPED"""
+ return self._get_traffic_state() == TRAFFIC_STATUS_STOPPED
+
+ def is_protocols_running(self, protocols):
+ """Returns true if all protocols statuses are PROTOCOL_STATUS_UP
+
+ :param protocols: list of protocols str representations, e.g.:
+ ['::ixNet::OBJ-/topology:2/deviceGroup:1/ethernet:1/ipv4:L14', ...]
+ :return: (bool) True if all protocols status is 'up', False if any
+ protocol status is 'down' or 'notStarted'
+ """
+ return all(session_status is PROTOCOL_STATUS_UP for proto in protocols
+ for session_status in self._get_protocol_status(proto))
+
+ def is_protocols_stopped(self, protocols):
+ """Returns true if all protocols statuses are in PROTOCOL_STATUS_DOWN
+
+ :param protocols: list of protocols str representations, e.g.:
+ ['::ixNet::OBJ-/topology:2/deviceGroup:1/ethernet:1/ipv4:L14', ...]
+ :return: (bool) True if all protocols status is 'down' or 'notStarted',
+ False if any protocol status is 'up'
+ """
+ return all(session_status in PROTOCOL_STATUS_DOWN for proto in protocols
+ for session_status in self._get_protocol_status(proto))
+
+ @staticmethod
+ def _parse_framesize(framesize):
+ """Parse "framesize" config param. to return a list of weighted pairs
+
+ :param framesize: dictionary of frame sizes and weights
+ :return: list of paired frame sizes and weights
+ """
+ weighted_range_pairs = []
+ for size, weight in ((s, w) for (s, w) in framesize.items()
+ if int(w) != 0):
+ size = int(size.upper().replace('B', ''))
+ weighted_range_pairs.append([size, size, int(weight)])
+ return weighted_range_pairs
+
+ def iter_over_get_lists(self, x1, x2, y2, offset=0):
+ for x in self.ixnet.getList(x1, x2):
+ y_list = self.ixnet.getList(x, y2)
+ for i, y in enumerate(y_list, offset):
+ yield x, y, i
+
+ def connect(self, tg_cfg):
+ self._cfg = self.get_config(tg_cfg)
+ self._ixnet = IxNetwork.IxNet()
+
+ machine = self._cfg['machine']
+ port = str(self._cfg['port'])
+ version = str(self._cfg['version'])
+ return self.ixnet.connect(machine, '-port', port,
+ '-version', version)
+
+ def clear_config(self):
+ """Wipe out any possible configuration present in the client"""
+ self.ixnet.execute('newConfig')
+
+ def assign_ports(self):
+ """Create and assign vports for each physical port defined in config
+
+ This configuration is present in the IXIA profile file. E.g.:
+ name: trafficgen_1
+ role: IxNet
+ interfaces:
+ xe0:
+ vpci: "2:15" # Card:port
+ driver: "none"
+ dpdk_port_num: 0
+ local_ip: "152.16.100.20"
+ netmask: "255.255.0.0"
+ local_mac: "00:98:10:64:14:00"
+ xe1:
+ ...
+ """
+ chassis_ip = self._cfg['chassis']
+ ports = [(chassis_ip, card, port) for card, port in
+ zip(self._cfg['cards'], self._cfg['ports'])]
+
+ log.info('Create and assign vports: %s', ports)
+
+ vports = []
+ for _ in ports:
+ vports.append(self.ixnet.add(self.ixnet.getRoot(), 'vport'))
+ self.ixnet.commit()
+
+ self.ixnet.execute('assignPorts', ports, [], vports, True)
+ self.ixnet.commit()
+
+ for vport in vports:
+ if self.ixnet.getAttribute(vport, '-state') != 'up':
+ log.warning('Port %s is down', vport)
+
+ def _create_traffic_item(self, traffic_type='raw'):
+ """Create the traffic item to hold the flow groups
+
+ The traffic item tracking by "Traffic Item" is enabled to retrieve the
+ latency statistics.
+ """
+ log.info('Create the traffic item "RFC2544"')
+ traffic_item = self.ixnet.add(self.ixnet.getRoot() + '/traffic',
+ 'trafficItem')
+ self.ixnet.setMultiAttribute(traffic_item, '-name', 'RFC2544',
+ '-trafficType', traffic_type)
+ self.ixnet.commit()
+
+ traffic_item_id = self.ixnet.remapIds(traffic_item)[0]
+ self.ixnet.setAttribute(traffic_item_id + '/tracking',
+ '-trackBy', 'trafficGroupId0')
+ self.ixnet.commit()
+
+ def _create_flow_groups(self, uplink, downlink):
+ """Create the flow groups between the endpoints"""
+ traffic_item_id = self.ixnet.getList(self.ixnet.getRoot() + 'traffic',
+ 'trafficItem')[0]
+ log.info('Create the flow groups')
+
+ index = 0
+ for up, down in zip(uplink, downlink):
+ log.info('FGs: %s <--> %s', up, down)
+ endpoint_set_1 = self.ixnet.add(traffic_item_id, 'endpointSet')
+ endpoint_set_2 = self.ixnet.add(traffic_item_id, 'endpointSet')
+ self.ixnet.setMultiAttribute(
+ endpoint_set_1, '-name', str(index + 1),
+ '-sources', [up],
+ '-destinations', [down])
+ self.ixnet.setMultiAttribute(
+ endpoint_set_2, '-name', str(index + 2),
+ '-sources', [down],
+ '-destinations', [up])
+ self.ixnet.commit()
+ index += 2
+
+ def _append_procotol_to_stack(self, protocol_name, previous_element):
+ """Append a new element in the packet definition stack"""
+ protocol = (self.ixnet.getRoot() +
+ '/traffic/protocolTemplate:"{}"'.format(protocol_name))
+ self.ixnet.execute('append', previous_element, protocol)
+
+ def is_qinq(self, flow_data):
+ for traffic_type in flow_data:
+ if flow_data[traffic_type]['outer_l2'].get('QinQ'):
+ return True
+ return False
+
+ def _flows_settings(self, cfg):
+ flows_data = []
+ res = [key for key in cfg.keys() if key.split('_')[0] in ['uplink', 'downlink']]
+ for i in range(len(res)):
+ uplink = 'uplink_{}'.format(i)
+ downlink = 'downlink_{}'.format(i)
+ if uplink in res:
+ flows_data.append(cfg[uplink])
+ if downlink in res:
+ flows_data.append(cfg[downlink])
+ return flows_data
+
+ def _setup_config_elements(self, traffic_profile, add_default_proto=True):
+ """Setup the config elements
+
+ The traffic item is configured to allow individual configurations per
+ config element. The default frame configuration is applied:
+ Ethernet II: added by default
+ IPv4: element to add
+ UDP: element to add
+ Payload: added by default
+ Ethernet II (Trailer): added by default
+ :return:
+ """
+ traffic_item_id = self.ixnet.getList(self.ixnet.getRoot() + 'traffic',
+ 'trafficItem')[0]
+ log.info('Split the frame rate distribution per config element')
+ config_elements = self.ixnet.getList(traffic_item_id, 'configElement')
+ flows = self._flows_settings(traffic_profile.params)
+ # TODO: check length of both lists, it should be equal!!!
+ for config_element, flow_data in zip(config_elements, flows):
+ self.ixnet.setAttribute(config_element + '/frameRateDistribution',
+ '-portDistribution', 'splitRateEvenly')
+ self.ixnet.setAttribute(config_element + '/frameRateDistribution',
+ '-streamDistribution', 'splitRateEvenly')
+ self.ixnet.commit()
+ if add_default_proto:
+ self._append_procotol_to_stack(
+ PROTO_UDP, config_element + '/stack:"ethernet-1"')
+ self._append_procotol_to_stack(
+ PROTO_IPV4, config_element + '/stack:"ethernet-1"')
+ if self.is_qinq(flow_data):
+ self._append_procotol_to_stack(
+ PROTO_VLAN, config_element + '/stack:"ethernet-1"')
+ self._append_procotol_to_stack(
+ PROTO_VLAN, config_element + '/stack:"ethernet-1"')
+
+ def create_traffic_model(self, uplink_ports, downlink_ports, traffic_profile):
+ """Create a traffic item and the needed flow groups
+
+ Each flow group inside the traffic item (only one is present)
+ represents the traffic between two ports:
+ (uplink) (downlink)
+ FlowGroup1: port1 -> port2
+ FlowGroup2: port1 <- port2
+ FlowGroup3: port3 -> port4
+ FlowGroup4: port3 <- port4
+ """
+ self._create_traffic_item('raw')
+ uplink_endpoints = [port + '/protocols' for port in uplink_ports]
+ downlink_endpoints = [port + '/protocols' for port in downlink_ports]
+ self._create_flow_groups(uplink_endpoints, downlink_endpoints)
+ self._setup_config_elements(traffic_profile=traffic_profile)
+
+ def create_ipv4_traffic_model(self, uplink_endpoints, downlink_endpoints,
+ traffic_profile):
+ """Create a traffic item and the needed flow groups
+
+ Each flow group inside the traffic item (only one is present)
+ represents the traffic between two topologies:
+ (uplink) (downlink)
+ FlowGroup1: uplink1 -> downlink1
+ FlowGroup2: uplink1 <- downlink1
+ FlowGroup3: uplink2 -> downlink2
+ FlowGroup4: uplink2 <- downlink2
+ """
+ self._create_traffic_item('ipv4')
+ self._create_flow_groups(uplink_endpoints, downlink_endpoints)
+ self._setup_config_elements(traffic_profile=traffic_profile,
+ add_default_proto=False)
+
+ def _update_frame_mac(self, ethernet_descriptor, field, mac_address):
+ """Set the MAC address in a config element stack Ethernet field
+
+ :param ethernet_descriptor: (str) ethernet descriptor, e.g.:
+ /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"
+ :param field: (str) field name, e.g.: destinationAddress
+ :param mac_address: (str) MAC address
+ """
+ field_descriptor = self._get_field_in_stack_item(ethernet_descriptor,
+ field)
+ self.ixnet.setMultiAttribute(field_descriptor,
+ '-singleValue', mac_address,
+ '-fieldValue', mac_address,
+ '-valueType', 'singleValue')
+ self.ixnet.commit()
+
+ def update_frame(self, traffic, duration):
+ """Update the L2 frame
+
+ This function updates the L2 frame options:
+ - Traffic type: "continuous", "fixedDuration".
+ - Duration: in case of traffic_type="fixedDuration", amount of seconds
+ to inject traffic.
+ - Rate: in frames per seconds or percentage.
+ - Type of rate: "framesPerSecond" or "percentLineRate" ("bitsPerSecond"
+ no used)
+ - Frame size: custom IMIX [1] definition; a list of packet size in
+ bytes and the weight. E.g.:
+ [[64, 64, 10], [128, 128, 15], [512, 512, 5]]
+
+ [1] https://en.wikipedia.org/wiki/Internet_Mix
+
+ :param traffic: list of traffic elements; each traffic element contains
+ the injection parameter for each flow group.
+ :param duration: (int) injection time in seconds.
+ """
+ for traffic_param in traffic.values():
+ fg_id = str(traffic_param['id'])
+ config_element = self._get_config_element_by_flow_group_name(fg_id)
+ if not config_element:
+ raise exceptions.IxNetworkFlowNotPresent(flow_group=fg_id)
+
+ type = traffic_param.get('traffic_type', 'fixedDuration')
+ rate_unit = (
+ 'framesPerSecond' if traffic_param['rate_unit'] ==
+ tp_base.TrafficProfileConfig.RATE_FPS else 'percentLineRate')
+ weighted_range_pairs = self._parse_framesize(
+ traffic_param['outer_l2'].get('framesize', {}))
+ srcmac = str(traffic_param['outer_l2'].get('srcmac', '00:00:00:00:00:01'))
+ dstmac = str(traffic_param['outer_l2'].get('dstmac', '00:00:00:00:00:02'))
+
+ if traffic_param['outer_l2'].get('QinQ'):
+ s_vlan = traffic_param['outer_l2']['QinQ']['S-VLAN']
+ c_vlan = traffic_param['outer_l2']['QinQ']['C-VLAN']
+
+ field_descriptor = self._get_field_in_stack_item(
+ self._get_stack_item(fg_id, PROTO_ETHERNET)[0],
+ 'etherType')
+
+ self.ixnet.setMultiAttribute(field_descriptor,
+ '-auto', 'false',
+ '-singleValue', ETHER_TYPE_802_1ad,
+ '-fieldValue', ETHER_TYPE_802_1ad,
+ '-valueType', SINGLE_VALUE)
+
+ self._update_vlan_tag(fg_id, s_vlan, S_VLAN)
+ self._update_vlan_tag(fg_id, c_vlan, C_VLAN)
+
+ self.ixnet.setMultiAttribute(
+ config_element + '/transmissionControl',
+ '-type', type, '-duration', duration)
+
+ self.ixnet.setMultiAttribute(
+ config_element + '/frameRate',
+ '-rate', traffic_param['rate'], '-type', rate_unit)
+
+ if len(weighted_range_pairs):
+ self.ixnet.setMultiAttribute(
+ config_element + '/frameSize',
+ '-type', 'weightedPairs',
+ '-weightedRangePairs', weighted_range_pairs)
+
+ self.ixnet.commit()
+
+ if dstmac:
+ self._update_frame_mac(
+ self._get_stack_item(fg_id, PROTO_ETHERNET)[0],
+ 'destinationAddress', dstmac)
+ if srcmac:
+ self._update_frame_mac(
+ self._get_stack_item(fg_id, PROTO_ETHERNET)[0],
+ 'sourceAddress', srcmac)
+
+ def _update_vlan_tag(self, fg_id, params, vlan=0):
+ field_to_param_map = {
+ 'vlanUserPriority': 'priority',
+ 'cfi': 'cfi',
+ 'vlanID': 'id'
+ }
+ for field, param in field_to_param_map.items():
+ value = params.get(param)
+ if value:
+ field_descriptor = self._get_field_in_stack_item(
+ self._get_stack_item(fg_id, PROTO_VLAN)[vlan],
+ field)
+
+ self.ixnet.setMultiAttribute(field_descriptor,
+ '-auto', 'false',
+ '-singleValue', value,
+ '-fieldValue', value,
+ '-valueType', SINGLE_VALUE)
+
+ self.ixnet.commit()
+
+ def _update_ipv4_address(self, ip_descriptor, field, ip_address, seed,
+ mask, count):
+ """Set the IPv4 address in a config element stack IP field
+
+ :param ip_descriptor: (str) IP descriptor, e.g.:
+ /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"
+ :param field: (str) field name, e.g.: scrIp, dstIp
+ :param ip_address: (str) IP address
+ :param seed: (int) seed length
+ :param mask: (int) IP address mask length
+ :param count: (int) number of random IPs to generate
+ """
+ field_descriptor = self._get_field_in_stack_item(ip_descriptor,
+ field)
+ random_mask = str(ipaddress.IPv4Address(
+ 2**(ipaddress.IPV4LENGTH - mask) - 1).compressed)
+ self.ixnet.setMultiAttribute(field_descriptor,
+ '-seed', seed,
+ '-fixedBits', ip_address,
+ '-randomMask', random_mask,
+ '-valueType', 'random',
+ '-countValue', count)
+ self.ixnet.commit()
+
+ def update_ip_packet(self, traffic):
+ """Update the IP packet
+
+ NOTE: Only IPv4 is currently supported.
+ :param traffic: list of traffic elements; each traffic element contains
+ the injection parameter for each flow group.
+ """
+ # NOTE(ralonsoh): L4 configuration is not set.
+ for traffic_param in traffic.values():
+ fg_id = str(traffic_param['id'])
+ if not self._get_config_element_by_flow_group_name(fg_id):
+ raise exceptions.IxNetworkFlowNotPresent(flow_group=fg_id)
+
+ if traffic_param['outer_l3']:
+ count = traffic_param['outer_l3']['count']
+ srcip = traffic_param['outer_l3']['srcip']
+ dstip = traffic_param['outer_l3']['dstip']
+ srcseed = traffic_param['outer_l3']['srcseed']
+ dstseed = traffic_param['outer_l3']['dstseed']
+ srcmask = traffic_param['outer_l3']['srcmask'] \
+ or ipaddress.IPV4LENGTH
+ dstmask = traffic_param['outer_l3']['dstmask'] \
+ or ipaddress.IPV4LENGTH
+ priority = traffic_param['outer_l3']['priority']
+
+ if srcip:
+ self._update_ipv4_address(
+ self._get_stack_item(fg_id, PROTO_IPV4)[0],
+ 'srcIp', str(srcip), srcseed, srcmask, count)
+ if dstip:
+ self._update_ipv4_address(
+ self._get_stack_item(fg_id, PROTO_IPV4)[0],
+ 'dstIp', str(dstip), dstseed, dstmask, count)
+ if priority:
+ self._update_ipv4_priority(
+ self._get_stack_item(fg_id, PROTO_IPV4)[0], priority)
+
+ def _update_ipv4_priority(self, ip_descriptor, priority):
+ """Set the IPv4 priority in a config element stack IP field
+
+ :param ip_descriptor: (str) IP descriptor, e.g.:
+ /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"
+ :param priority: (dict) priority configuration from traffic profile, e.g.:
+ {'tos':
+ 'precedence': [1, 4, 7]
+ }
+ """
+ if priority.get('raw'):
+ priority_field = self._get_field_in_stack_item(ip_descriptor,
+ 'priority.raw')
+ self._set_priority_field(priority_field, priority['raw'])
+
+ elif priority.get('dscp'):
+ for field, value in priority['dscp'].items():
+ if field in SUPPORTED_DSCP_CLASSES:
+ priority_field = self._get_field_in_stack_item(
+ ip_descriptor,
+ 'priority.ds.phb.{field}.{field}'.format(field=field))
+ self._set_priority_field(priority_field, value)
+
+ elif priority.get('tos'):
+ for field, value in priority['tos'].items():
+ if field in SUPPORTED_TOS_FIELDS:
+ priority_field = self._get_field_in_stack_item(
+ ip_descriptor, 'priority.tos.' + field)
+ self._set_priority_field(priority_field, value)
+
+ def _set_priority_field(self, field_descriptor, value):
+ """Set the priority field described by field_descriptor
+
+ :param field_descriptor: (str) field descriptor, e.g.:
+ /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/ \
+ field:"ipv4.header.priority.raw-3
+ :param value: (list, int) list of integers or single integer value
+ """
+ if isinstance(value, list):
+ self.ixnet.setMultiAttribute(field_descriptor,
+ '-valueList', value,
+ '-activeFieldChoice', 'true',
+ '-valueType', 'valueList')
+ else:
+ self.ixnet.setMultiAttribute(field_descriptor,
+ '-activeFieldChoice', 'true',
+ '-singleValue', str(value))
+ self.ixnet.commit()
+
+ def update_l4(self, traffic):
+ """Update the L4 headers
+
+ NOTE: Only UDP is currently supported
+ :param traffic: list of traffic elements; each traffic element contains
+ the injection parameter for each flow group
+ """
+ for traffic_param in traffic.values():
+ fg_id = str(traffic_param['id'])
+ if not self._get_config_element_by_flow_group_name(fg_id):
+ raise exceptions.IxNetworkFlowNotPresent(flow_group=fg_id)
+
+ proto = traffic_param['outer_l3'].get('proto')
+ if not (proto and traffic_param['outer_l4']):
+ continue
+
+ if proto not in SUPPORTED_PROTO:
+ raise exceptions.IXIAUnsupportedProtocol(protocol=proto)
+
+ count = traffic_param['outer_l4']['count']
+ seed = traffic_param['outer_l4']['seed']
+
+ srcport = traffic_param['outer_l4']['srcport']
+ srcmask = traffic_param['outer_l4']['srcportmask']
+
+ dstport = traffic_param['outer_l4']['dstport']
+ dstmask = traffic_param['outer_l4']['dstportmask']
+
+ if proto == PROTO_UDP:
+ if srcport:
+ self._update_udp_port(
+ self._get_stack_item(fg_id, proto)[0],
+ 'srcPort', srcport, seed, srcmask, count)
+ if dstport:
+ self._update_udp_port(
+ self._get_stack_item(fg_id, proto)[0],
+ 'dstPort', dstport, seed, dstmask, count)
+
+ def _update_udp_port(self, descriptor, field, value,
+ seed=1, mask=0, count=1):
+ """Set the UDP port in a config element stack UDP field
+
+ :param udp_descriptor: (str) UDP descriptor, e.g.:
+ /traffic/trafficItem:1/configElement:1/stack:"udp-3"
+ :param field: (str) field name, e.g.: scrPort, dstPort
+ :param value: (int) UDP port fixed bits
+ :param seed: (int) seed length
+ :param mask: (int) UDP port mask
+ :param count: (int) number of random ports to generate
+ """
+ field_descriptor = self._get_field_in_stack_item(descriptor, field)
+
+ if mask == 0:
+ seed = count = 1
+
+ self.ixnet.setMultiAttribute(field_descriptor,
+ '-auto', 'false',
+ '-seed', seed,
+ '-fixedBits', value,
+ '-randomMask', mask,
+ '-valueType', 'random',
+ '-countValue', count)
+
+ self.ixnet.commit()
+
+ def _build_stats_map(self, view_obj, name_map):
+ return {data_yardstick: self.ixnet.execute(
+ 'getColumnValues', view_obj, data_ixia)
+ for data_yardstick, data_ixia in name_map.items()}
+
+ def _get_view_page_stats(self, view_obj):
+ """Get full view page stats
+
+ :param view_obj: view object, e.g.
+ '::ixNet::OBJ-/statistics/view:"Port Statistics"'
+ :return: (list) List of dicts. Each dict represents view page row
+ """
+ view = view_obj + '/page'
+ column_headers = self.ixnet.getAttribute(view, '-columnCaptions')
+ view_rows = self.ixnet.getAttribute(view, '-rowValues')
+ view_page = [dict(zip(column_headers, row[0])) for row in view_rows]
+ return view_page
+
+ def _set_egress_flow_tracking(self, encapsulation, offset):
+ """Set egress flow tracking options
+
+ :param encapsulation: encapsulation type
+ :type encapsulation: str, e.g. 'Ethernet'
+ :param offset: offset type
+ :type offset: str, e.g. 'IPv4 TOS Precedence (3 bits)'
+ """
+ traffic_item = self.ixnet.getList(self.ixnet.getRoot() + '/traffic',
+ 'trafficItem')[0]
+ # Enable Egress Tracking
+ self.ixnet.setAttribute(traffic_item, '-egressEnabled', True)
+ self.ixnet.commit()
+
+ # Set encapsulation type
+ enc_obj = self.ixnet.getList(traffic_item, 'egressTracking')[0]
+ self.ixnet.setAttribute(enc_obj, '-encapsulation', encapsulation)
+
+ # Set offset
+ self.ixnet.setAttribute(enc_obj, '-offset', offset)
+ self.ixnet.commit()
+
+ def set_flow_tracking(self, track_by):
+ """Set flow tracking options
+
+ :param track_by: list of tracking fields
+ :type track_by: list, e.g. ['vlanVlanId0','ipv4Precedence0']
+ """
+ traffic_item = self.ixnet.getList(self.ixnet.getRoot() + '/traffic',
+ 'trafficItem')[0]
+ self.ixnet.setAttribute(traffic_item + '/tracking', '-trackBy', track_by)
+ self.ixnet.commit()
+
+ def get_statistics(self):
+ """Retrieve port and flow statistics
+
+ "Port Statistics" parameters are stored in self.PORT_STATS_NAME_MAP.
+ "Flow Statistics" parameters are stored in self.LATENCY_NAME_MAP.
+
+ :return: dictionary with the statistics; the keys of this dictionary
+ are PORT_STATS_NAME_MAP and LATENCY_NAME_MAP keys.
+ """
+ stats = self._build_stats_map(self.PORT_STATISTICS,
+ self.PORT_STATS_NAME_MAP)
+ stats.update(self._build_stats_map(self.FLOW_STATISTICS,
+ self.LATENCY_NAME_MAP))
+ return stats
+
+ def get_pppoe_scenario_statistics(self):
+ """Retrieve port, flow and PPPoE subscribers statistics"""
+ stats = collections.defaultdict(list)
+ result = collections.defaultdict(list)
+ for stat, view in self.PPPOE_SCENARIO_STATS.items():
+ # Get view total pages number
+ total_pages = self.ixnet.getAttribute(
+ view + '/page', '-totalPages')
+ # Collect stats from all view pages
+ for page in range(1, int(total_pages) + 1):
+ current_page = int(self.ixnet.getAttribute(
+ view + '/page', '-currentPage'))
+ if page != int(current_page):
+ self.ixnet.setAttribute(view + '/page', '-currentPage',
+ str(page))
+ self.ixnet.commit()
+ page_data = self._get_view_page_stats(view)
+ stats[stat].extend(page_data)
+ # Filter collected views stats
+ for stat in stats:
+ for view_row in stats[stat]:
+ filtered_row = {}
+ for key, value in self.PPPOE_SCENARIO_STATS_MAP[stat].items():
+ if isinstance(value, str):
+ filtered_row.update({key: view_row[value]})
+ # Handle keys which values are represented by regex
+ else:
+ for k in view_row.keys():
+ if value.match(k):
+ value = value.match(k).group()
+ filtered_row.update({key: view_row[value]})
+ break
+ result[stat].append(filtered_row)
+ return result
+
+ def start_protocols(self):
+ self.ixnet.execute('startAllProtocols')
+
+ def stop_protocols(self):
+ self.ixnet.execute('stopAllProtocols')
+
+ def start_traffic(self):
+ """Start the traffic injection in the traffic item
+
+ By configuration, there is only one traffic item. This function returns
+ when the traffic state is TRAFFIC_STATUS_STARTED.
+ """
+ traffic_items = self.ixnet.getList('/traffic', 'trafficItem')
+ if self.is_traffic_running():
+ self.ixnet.execute('stop', '/traffic')
+ # pylint: disable=unnecessary-lambda
+ utils.wait_until_true(lambda: self.is_traffic_stopped())
+
+ self.ixnet.execute('generate', traffic_items)
+ self.ixnet.execute('apply', '/traffic')
+ self.ixnet.execute('start', '/traffic')
+ # pylint: disable=unnecessary-lambda
+ utils.wait_until_true(lambda: self.is_traffic_running())
+
+ def add_topology(self, name, vports):
+ log.debug("add_topology: name='%s' ports='%s'", name, vports)
+ obj = self.ixnet.add(self.ixnet.getRoot(), 'topology')
+ self.ixnet.setMultiAttribute(obj, '-name', name, '-vports', vports)
+ self.ixnet.commit()
+ return obj
+
+ def add_device_group(self, topology, name, multiplier):
+ log.debug("add_device_group: tpl='%s', name='%s', multiplier='%s'",
+ topology, name, multiplier)
+
+ obj = self.ixnet.add(topology, 'deviceGroup')
+ self.ixnet.setMultiAttribute(obj, '-name', name, '-multiplier',
+ multiplier)
+ self.ixnet.commit()
+ return obj
+
+ def add_ethernet(self, dev_group, name):
+ log.debug(
+ "add_ethernet: device_group='%s' name='%s'", dev_group, name)
+ obj = self.ixnet.add(dev_group, 'ethernet')
+ self.ixnet.setMultiAttribute(obj, '-name', name)
+ self.ixnet.commit()
+ return obj
+
+ def _create_vlans(self, ethernet, count):
+ self.ixnet.setMultiAttribute(ethernet, '-useVlans', 'true')
+ self.ixnet.setMultiAttribute(ethernet, '-vlanCount', count)
+ self.ixnet.commit()
+
+ def _configure_vlans(self, ethernet, vlans):
+ vlans_obj = self.ixnet.getList(ethernet, 'vlan')
+ for i, vlan_obj in enumerate(vlans_obj):
+ if vlans[i].vlan_id_step is not None:
+ vlan_id_obj = self.ixnet.getAttribute(vlan_obj, '-vlanId')
+ self.ixnet.setMultiAttribute(vlan_id_obj, '-clearOverlays',
+ 'true', '-pattern', 'counter')
+ vlan_id_counter = self.ixnet.add(vlan_id_obj, 'counter')
+ self.ixnet.setMultiAttribute(vlan_id_counter, '-start',
+ vlans[i].vlan_id, '-step',
+ vlans[i].vlan_id_step,
+ '-direction',
+ vlans[i].vlan_id_direction)
+ else:
+ vlan_id_obj = self.ixnet.getAttribute(vlan_obj, '-vlanId')
+ self.ixnet.setMultiAttribute(vlan_id_obj + '/singleValue',
+ '-value', vlans[i].vlan_id)
+
+ if vlans[i].prio_step is not None:
+ prio_obj = self.ixnet.getAttribute(vlan_obj, '-priority')
+ self.ixnet.setMultiAttribute(prio_obj, '-clearOverlays', 'true',
+ '-pattern', 'counter')
+ prio_counter = self.ixnet.add(prio_obj, 'counter')
+ self.ixnet.setMultiAttribute(prio_counter,
+ '-start', vlans[i].prio,
+ '-step', vlans[i].prio_step,
+ '-direction', vlans[i].prio_direction)
+ elif vlans[i].prio is not None:
+ prio_obj = self.ixnet.getAttribute(vlan_obj, '-priority')
+ self.ixnet.setMultiAttribute(prio_obj + '/singleValue',
+ '-value', vlans[i].prio)
+
+ if vlans[i].tp_id is not None:
+ tp_id_obj = self.ixnet.getAttribute(vlan_obj, '-tpid')
+ self.ixnet.setMultiAttribute(tp_id_obj + '/singleValue',
+ '-value', vlans[i].tp_id)
+
+ self.ixnet.commit()
+
+ def add_vlans(self, ethernet, vlans):
+ log.debug("add_vlans: ethernet='%s'", ethernet)
+
+ if vlans is None or len(vlans) == 0:
+ raise RuntimeError(
+ "Invalid 'vlans' argument. Expected list of Vlan instances.")
+
+ self._create_vlans(ethernet, len(vlans))
+ self._configure_vlans(ethernet, vlans)
+
+ def add_ipv4(self, ethernet, name='',
+ addr=None, addr_step=None, addr_direction='increment',
+ prefix=None, prefix_step=None, prefix_direction='increment',
+ gateway=None, gw_step=None, gw_direction='increment'):
+ log.debug("add_ipv4: ethernet='%s' name='%s'", ethernet, name)
+ obj = self.ixnet.add(ethernet, 'ipv4')
+ if name != '':
+ self.ixnet.setAttribute(obj, '-name', name)
+ self.ixnet.commit()
+
+ if addr_step is not None:
+ # handle counter pattern
+ _address = self.ixnet.getAttribute(obj, '-address')
+ self.ixnet.setMultiAttribute(_address, '-clearOverlays', 'true',
+ '-pattern', 'counter')
+
+ address_counter = self.ixnet.add(_address, 'counter')
+ self.ixnet.setMultiAttribute(address_counter,
+ '-start', addr,
+ '-step', addr_step,
+ '-direction', addr_direction)
+ elif addr is not None:
+ # handle single value
+ _address = self.ixnet.getAttribute(obj, '-address')
+ self.ixnet.setMultiAttribute(_address + '/singleValue', '-value',
+ addr)
+
+ if prefix_step is not None:
+ # handle counter pattern
+ _prefix = self.ixnet.getAttribute(obj, '-prefix')
+ self.ixnet.setMultiAttribute(_prefix, '-clearOverlays', 'true',
+ '-pattern', 'counter')
+ prefix_counter = self.ixnet.add(_prefix, 'counter')
+ self.ixnet.setMultiAttribute(prefix_counter,
+ '-start', prefix,
+ '-step', prefix_step,
+ '-direction', prefix_direction)
+ elif prefix is not None:
+ # handle single value
+ _prefix = self.ixnet.getAttribute(obj, '-prefix')
+ self.ixnet.setMultiAttribute(_prefix + '/singleValue', '-value',
+ prefix)
+
+ if gw_step is not None:
+ # handle counter pattern
+ _gateway = self.ixnet.getAttribute(obj, '-gatewayIp')
+ self.ixnet.setMultiAttribute(_gateway, '-clearOverlays', 'true',
+ '-pattern', 'counter')
+
+ gateway_counter = self.ixnet.add(_gateway, 'counter')
+ self.ixnet.setMultiAttribute(gateway_counter,
+ '-start', gateway,
+ '-step', gw_step,
+ '-direction', gw_direction)
+ elif gateway is not None:
+ # handle single value
+ _gateway = self.ixnet.getAttribute(obj, '-gatewayIp')
+ self.ixnet.setMultiAttribute(_gateway + '/singleValue', '-value',
+ gateway)
+
+ self.ixnet.commit()
+ return obj
+
+ def add_pppox_client(self, xproto, auth, user, pwd, enable_redial=True):
+ log.debug(
+ "add_pppox_client: xproto='%s', auth='%s', user='%s', pwd='%s'",
+ xproto, auth, user, pwd)
+ obj = self.ixnet.add(xproto, 'pppoxclient')
+ self.ixnet.commit()
+
+ if auth == 'pap':
+ auth_type = self.ixnet.getAttribute(obj, '-authType')
+ self.ixnet.setMultiAttribute(auth_type + '/singleValue', '-value',
+ auth)
+ pap_user = self.ixnet.getAttribute(obj, '-papUser')
+ self.ixnet.setMultiAttribute(pap_user + '/singleValue', '-value',
+ user)
+ pap_pwd = self.ixnet.getAttribute(obj, '-papPassword')
+ self.ixnet.setMultiAttribute(pap_pwd + '/singleValue', '-value',
+ pwd)
+ else:
+ raise NotImplementedError()
+
+ if enable_redial:
+ redial = self.ixnet.getAttribute(obj, '-enableRedial')
+ self.ixnet.setAttribute(redial + '/singleValue', '-value', 'true')
+
+ self.ixnet.commit()
+ return obj
+
+ def add_bgp(self, ipv4, dut_ip, local_as, bgp_type=None):
+ """Add BGP protocol"""
+ log.debug("add_bgp: ipv4='%s', dut_ip='%s', local_as='%s'", ipv4,
+ dut_ip, local_as)
+ obj = self.ixnet.add(ipv4, 'bgpIpv4Peer')
+ self.ixnet.commit()
+
+ # Set DUT IP address
+ dut_ip_addr = self.ixnet.getAttribute(obj, '-dutIp')
+ self.ixnet.setAttribute(dut_ip_addr + '/singleValue',
+ '-value', dut_ip)
+
+ # Set local AS number
+ local_as_number = self.ixnet.getAttribute(obj, '-localAs2Bytes')
+ self.ixnet.setAttribute(local_as_number + '/singleValue',
+ '-value', local_as)
+
+ if bgp_type:
+ # Set BGP type. If not specified, default value is using.
+ # Default type is "internal"
+ bgp_type_field = self.ixnet.getAttribute(obj, '-type')
+ self.ixnet.setAttribute(bgp_type_field + '/singleValue',
+ '-value', bgp_type)
+ self.ixnet.commit()
+ return obj
+
+ def add_interface(self, vport, ip, mac=None, gateway=None):
+ """Add protocol interface to the vport"""
+ log.debug("add_interface: mac='%s', ip='%s', gateway='%s'", mac, ip,
+ gateway)
+ obj = self.ixnet.add(vport, 'interface')
+ self.ixnet.commit()
+
+ if mac is not None:
+ self.ixnet.setMultiAttribute(obj + '/ethernet', '-macAddress', mac)
+
+ ipv4 = self.ixnet.add(obj, 'ipv4')
+ self.ixnet.setMultiAttribute(ipv4, '-ip', ip)
+
+ if gateway is not None:
+ self.ixnet.setMultiAttribute(ipv4, '-gateway', gateway)
+
+ self.ixnet.commit()
+
+ self.ixnet.setMultiAttribute(obj, '-enabled', 'true')
+ self.ixnet.commit()
+
+ return obj
+
+ def add_static_ipv4(self, iface, vport, start_ip, count, mask='24'):
+ """Add static IP range to the interface"""
+ log.debug("add_static_ipv4: start_ip:'%s', count:'%s'",
+ start_ip, count)
+ obj = self.ixnet.add(vport + '/protocols/static', 'ip')
+
+ self.ixnet.setMultiAttribute(obj, '-protocolInterface', iface,
+ '-ipStart', start_ip, '-count', count,
+ '-mask', mask, '-enabled', 'true')
+ self.ixnet.commit()
diff --git a/yardstick/network_services/nfvi/resource.py b/yardstick/network_services/nfvi/resource.py
index adf4d8ae6..ba49ab5b4 100644
--- a/yardstick/network_services/nfvi/resource.py
+++ b/yardstick/network_services/nfvi/resource.py
@@ -13,27 +13,25 @@
# limitations under the License.
""" Resource collection definitions """
-from __future__ import absolute_import
-from __future__ import print_function
-
-import logging
-from itertools import chain
-
import errno
-import jinja2
+from itertools import chain
+import logging
+import multiprocessing
import os
import os.path
import re
-import multiprocessing
-import pkg_resources
+import jinja2
+import pkg_resources
from oslo_config import cfg
from oslo_utils.encodeutils import safe_decode
from yardstick import ssh
+from yardstick.common.exceptions import ResourceCommandError
from yardstick.common.task_template import finalize_for_yaml
from yardstick.common.utils import validate_non_string_sequence
from yardstick.network_services.nfvi.collectd import AmqpConsumer
+from yardstick.benchmark.contexts import heat
LOG = logging.getLogger(__name__)
@@ -50,12 +48,14 @@ class ResourceProfile(object):
This profile adds a resource at the beginning of the test session
"""
COLLECTD_CONF = "collectd.conf"
+ BAR_COLLECTD_CONF_PATH = "/opt/collectd/etc/collectd.conf.d/"
AMPQ_PORT = 5672
DEFAULT_INTERVAL = 25
DEFAULT_TIMEOUT = 3600
OVS_SOCKET_PATH = "/usr/local/var/run/openvswitch/db.sock"
- def __init__(self, mgmt, port_names=None, plugins=None, interval=None, timeout=None):
+ def __init__(self, mgmt, port_names=None, plugins=None,
+ interval=None, timeout=None, reset_mq_flag=True):
if plugins is None:
self.plugins = {}
@@ -80,6 +80,7 @@ class ResourceProfile(object):
# we need to save mgmt so we can connect to port 5672
self.mgmt = mgmt
self.connection = ssh.AutoConnectSSH.from_node(mgmt)
+ self._reset_mq_flag = reset_mq_flag
@classmethod
def make_from_node(cls, node, timeout):
@@ -90,9 +91,12 @@ class ResourceProfile(object):
plugins = collectd_options.get("plugins", {})
interval = collectd_options.get("interval")
- return cls(node, plugins=plugins, interval=interval, timeout=timeout)
+ reset_mq_flag = (False if node.get("ctx_type") == heat.HeatContext.__context_type__
+ else True)
+ return cls(node, plugins=plugins, interval=interval,
+ timeout=timeout, reset_mq_flag=reset_mq_flag)
- def check_if_sa_running(self, process):
+ def check_if_system_agent_running(self, process):
""" verify if system agent is running """
try:
err, pid, _ = self.connection.execute("pgrep -f %s" % process)
@@ -101,7 +105,7 @@ class ResourceProfile(object):
except OSError as e:
if e.errno in {errno.ECONNRESET}:
# if we can't connect to check, then we won't be able to connect to stop it
- LOG.exception("can't connect to host to check collectd status")
+ LOG.exception("Can't connect to host to check %s status", process)
return 1, None
raise
@@ -213,11 +217,14 @@ class ResourceProfile(object):
if not self.enable:
return {}
+ if self.check_if_system_agent_running("collectd")[0] != 0:
+ return {}
+
metric = {}
while not self._queue.empty():
metric.update(self._queue.get())
- msg = self.parse_collectd_result(metric)
- return msg
+
+ return self.parse_collectd_result(metric)
def _provide_config_file(self, config_file_path, nfvi_cfg, template_kwargs):
template = pkg_resources.resource_string("yardstick.network_services.nfvi",
@@ -242,6 +249,8 @@ class ResourceProfile(object):
"plugins": self.plugins,
}
self._provide_config_file(config_file_path, self.COLLECTD_CONF, kwargs)
+ self._provide_config_file(self.BAR_COLLECTD_CONF_PATH,
+ self.COLLECTD_CONF, kwargs)
def _setup_ovs_stats(self, connection):
try:
@@ -253,59 +262,93 @@ class ResourceProfile(object):
if status != 0:
LOG.error("cannot find OVS socket %s", socket_path)
+ def _reset_rabbitmq(self, connection):
+ # Reset amqp queue
+ LOG.debug("reset and setup amqp to collect data from collectd")
+ # ensure collectd.conf.d exists to avoid error/warning
+ cmd_list = ["sudo mkdir -p /etc/collectd/collectd.conf.d",
+ "sudo service rabbitmq-server restart",
+ "sudo rabbitmqctl stop_app",
+ "sudo rabbitmqctl reset",
+ "sudo rabbitmqctl start_app",
+ "sudo rabbitmqctl add_user admin admin",
+ "sudo rabbitmqctl authenticate_user admin admin",
+ "sudo rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'"
+ ]
+
+ for cmd in cmd_list:
+ exit_status, _, stderr = connection.execute(cmd)
+ if exit_status != 0:
+ raise ResourceCommandError(command=cmd, stderr=stderr)
+
+ def _check_rabbitmq_user(self, connection, user='admin'):
+ exit_status, stdout, _ = connection.execute("sudo rabbitmqctl list_users")
+ if exit_status == 0:
+ for line in stdout.split('\n')[1:]:
+ if line.split('\t')[0] == user:
+ return True
+
+ def _set_rabbitmq_admin_user(self, connection):
+ LOG.debug("add admin user to amqp")
+ cmd_list = ["sudo rabbitmqctl add_user admin admin",
+ "sudo rabbitmqctl authenticate_user admin admin",
+ "sudo rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'"
+ ]
+
+ for cmd in cmd_list:
+ exit_status, stdout, stderr = connection.execute(cmd)
+ if exit_status != 0:
+ raise ResourceCommandError(command=cmd, stdout=stdout, stderr=stderr)
+
+ def _start_rabbitmq(self, connection):
+ if self._reset_mq_flag:
+ self._reset_rabbitmq(connection)
+ else:
+ if not self._check_rabbitmq_user(connection):
+ self._set_rabbitmq_admin_user(connection)
+
+ # check stdout for "sudo rabbitmqctl status" command
+ cmd = "sudo rabbitmqctl status"
+ _, stdout, stderr = connection.execute(cmd)
+ if not re.search("RabbitMQ", stdout):
+ LOG.error("rabbitmqctl status don't have RabbitMQ in running apps")
+ raise ResourceCommandError(command=cmd, stderr=stderr)
+
def _start_collectd(self, connection, bin_path):
LOG.debug("Starting collectd to collect NFVi stats")
- connection.execute('sudo pkill -x -9 collectd')
collectd_path = os.path.join(bin_path, "collectd", "sbin", "collectd")
config_file_path = os.path.join(bin_path, "collectd", "etc")
- exit_status = connection.execute("which %s > /dev/null 2>&1" % collectd_path)[0]
+ self._prepare_collectd_conf(config_file_path)
+
+ connection.execute('sudo pkill -x -9 collectd')
+ cmd = "which %s > /dev/null 2>&1" % collectd_path
+ exit_status, _, stderr = connection.execute(cmd)
if exit_status != 0:
- LOG.warning("%s is not present disabling", collectd_path)
- # disable auto-provisioning because it requires Internet access
- # collectd_installer = os.path.join(bin_path, "collectd.sh")
- # provision_tool(connection, collectd)
- # http_proxy = os.environ.get('http_proxy', '')
- # https_proxy = os.environ.get('https_proxy', '')
- # connection.execute("sudo %s '%s' '%s'" % (
- # collectd_installer, http_proxy, https_proxy))
- return
+ raise ResourceCommandError(command=cmd, stderr=stderr)
+
if "ovs_stats" in self.plugins:
self._setup_ovs_stats(connection)
LOG.debug("Starting collectd to collect NFVi stats")
- # ensure collectd.conf.d exists to avoid error/warning
- connection.execute("sudo mkdir -p /etc/collectd/collectd.conf.d")
- self._prepare_collectd_conf(config_file_path)
-
- # Reset amqp queue
- LOG.debug("reset and setup amqp to collect data from collectd")
- connection.execute("sudo rm -rf /var/lib/rabbitmq/mnesia/rabbit*")
- connection.execute("sudo service rabbitmq-server start")
- connection.execute("sudo rabbitmqctl stop_app")
- connection.execute("sudo rabbitmqctl reset")
- connection.execute("sudo rabbitmqctl start_app")
- connection.execute("sudo service rabbitmq-server restart")
-
- LOG.debug("Creating admin user for rabbitmq in order to collect data from collectd")
- connection.execute("sudo rabbitmqctl delete_user guest")
- connection.execute("sudo rabbitmqctl add_user admin admin")
- connection.execute("sudo rabbitmqctl authenticate_user admin admin")
- connection.execute("sudo rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'")
-
LOG.debug("Start collectd service..... %s second timeout", self.timeout)
# intel_pmu plug requires large numbers of files open, so try to set
# ulimit -n to a large value
- connection.execute("sudo bash -c 'ulimit -n 1000000 ; %s'" % collectd_path,
- timeout=self.timeout)
+
+ cmd = "sudo bash -c 'ulimit -n 1000000 ; %s'" % collectd_path
+ exit_status, _, stderr = connection.execute(cmd, timeout=self.timeout)
+ if exit_status != 0:
+ raise ResourceCommandError(command=cmd, stderr=stderr)
+
LOG.debug("Done")
def initiate_systemagent(self, bin_path):
""" Start system agent for NFVi collection on host """
if self.enable:
try:
+ self._start_rabbitmq(self.connection)
self._start_collectd(self.connection, bin_path)
- except Exception:
- LOG.exception("Exception during collectd start")
+ except ResourceCommandError as e:
+ LOG.exception("Exception during collectd and rabbitmq start: %s", str(e))
raise
def start(self):
@@ -327,7 +370,7 @@ class ResourceProfile(object):
self.amqp_client.terminate()
LOG.debug("Check if %s is running", agent)
- status, pid = self.check_if_sa_running(agent)
+ status, pid = self.check_if_system_agent_running(agent)
LOG.debug("status %s pid %s", status, pid)
if status != 0:
return
@@ -335,5 +378,7 @@ class ResourceProfile(object):
if pid:
self.connection.execute('sudo kill -9 "%s"' % pid)
self.connection.execute('sudo pkill -9 "%s"' % agent)
- self.connection.execute('sudo service rabbitmq-server stop')
- self.connection.execute("sudo rabbitmqctl stop_app")
+
+ if self._reset_mq_flag:
+ self.connection.execute('sudo service rabbitmq-server stop')
+ self.connection.execute("sudo rabbitmqctl stop_app")
diff --git a/yardstick/network_services/pipeline.py b/yardstick/network_services/pipeline.py
index d781ba0cd..4fbe7967f 100644
--- a/yardstick/network_services/pipeline.py
+++ b/yardstick/network_services/pipeline.py
@@ -18,9 +18,11 @@ import itertools
from six.moves import zip
+from yardstick.common import utils
+
FIREWALL_ADD_DEFAULT = "p {0} firewall add default 1"
FIREWALL_ADD_PRIO = """\
-p {0} firewall add priority 1 ipv4 {1} 24 0.0.0.0 0 0 65535 0 65535 6 0xFF port 0"""
+p {0} firewall add priority 1 ipv4 {1} 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0"""
FLOW_ADD_QINQ_RULES = """\
p {0} flow add qinq 128 512 port 0 id 1
@@ -59,8 +61,7 @@ class PipelineRules(object):
self.add_rule(FIREWALL_ADD_PRIO, ip)
def add_firewall_script(self, ip):
- ip_addr = ip.split('.')
- assert len(ip_addr) == 4
+ ip_addr = str(utils.make_ipv4_address(ip)).split('.')
ip_addr[-1] = '0'
for i in range(256):
ip_addr[-2] = str(i)
@@ -87,8 +88,7 @@ class PipelineRules(object):
self.add_rule(ROUTE_ADD_ETHER_MPLS, ip, mac_addr, index)
def add_route_script(self, ip, mac_addr):
- ip_addr = ip.split('.')
- assert len(ip_addr) == 4
+ ip_addr = str(utils.make_ipv4_address(ip)).split('.')
ip_addr[-1] = '0'
for index in range(0, 256, 8):
ip_addr[-2] = str(index)
@@ -101,8 +101,7 @@ class PipelineRules(object):
self.add_rule(ROUTE_ADD_ETHER_QINQ, ip, mask, mac_addr, index)
def add_route_script2(self, ip, mac_addr):
- ip_addr = ip.split('.')
- assert len(ip_addr) == 4
+ ip_addr = str(utils.make_ipv4_address(ip)).split('.')
ip_addr[-1] = '0'
mask = 24
for i in range(0, 256):
diff --git a/yardstick/network_services/traffic_profile/__init__.py b/yardstick/network_services/traffic_profile/__init__.py
index e69de29bb..85b3d54a0 100644
--- a/yardstick/network_services/traffic_profile/__init__.py
+++ b/yardstick/network_services/traffic_profile/__init__.py
@@ -0,0 +1,38 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import importlib
+
+
+def register_modules():
+ modules = [
+ 'yardstick.network_services.traffic_profile.trex_traffic_profile',
+ 'yardstick.network_services.traffic_profile.fixed',
+ 'yardstick.network_services.traffic_profile.http',
+ 'yardstick.network_services.traffic_profile.http_ixload',
+ 'yardstick.network_services.traffic_profile.ixia_rfc2544',
+ 'yardstick.network_services.traffic_profile.prox_ACL',
+ 'yardstick.network_services.traffic_profile.prox_irq',
+ 'yardstick.network_services.traffic_profile.prox_binsearch',
+ 'yardstick.network_services.traffic_profile.prox_profile',
+ 'yardstick.network_services.traffic_profile.prox_ramp',
+ 'yardstick.network_services.traffic_profile.rfc2544',
+ 'yardstick.network_services.traffic_profile.pktgen',
+ 'yardstick.network_services.traffic_profile.landslide_profile',
+ 'yardstick.network_services.traffic_profile.vpp_rfc2544',
+ 'yardstick.network_services.traffic_profile.sip',
+ ]
+
+ for module in modules:
+ importlib.import_module(module)
diff --git a/yardstick/network_services/traffic_profile/base.py b/yardstick/network_services/traffic_profile/base.py
index ad256b444..2fdf6ce4a 100644
--- a/yardstick/network_services/traffic_profile/base.py
+++ b/yardstick/network_services/traffic_profile/base.py
@@ -11,10 +11,61 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-""" Base class for the generic traffic profile implementation """
-from __future__ import absolute_import
-from yardstick.common.utils import import_modules_from_package, itersubclasses
+import re
+
+from yardstick.common import exceptions
+from yardstick.common import utils
+
+
+class TrafficProfileConfig(object):
+ """Class to contain the TrafficProfile class information
+
+ This object will parse and validate the traffic profile information.
+ """
+ DEFAULT_SCHEMA = 'nsb:traffic_profile:0.1'
+ DEFAULT_FRAME_RATE = '100'
+ DEFAULT_DURATION = 30
+ RATE_FPS = 'fps'
+ RATE_PERCENTAGE = '%'
+ RATE_REGEX = re.compile(r'([0-9]*\.[0-9]+|[0-9]+)\s*(fps|%)*(.*)')
+
+ def __init__(self, tp_config):
+ self.schema = tp_config.get('schema', self.DEFAULT_SCHEMA)
+ self.name = tp_config.get('name')
+ self.description = tp_config.get('description')
+ tprofile = tp_config['traffic_profile']
+ self.traffic_type = tprofile.get('traffic_type')
+ self.frame_rate, self.rate_unit = self.parse_rate(
+ tprofile.get('frame_rate', self.DEFAULT_FRAME_RATE))
+ self.test_precision = tprofile.get('test_precision')
+ self.packet_sizes = tprofile.get('packet_sizes')
+ self.duration = tprofile.get('duration', self.DEFAULT_DURATION)
+ self.lower_bound = tprofile.get('lower_bound')
+ self.upper_bound = tprofile.get('upper_bound')
+ self.step_interval = tprofile.get('step_interval')
+ self.enable_latency = tprofile.get('enable_latency', False)
+
+ def parse_rate(self, rate):
+ """Parse traffic profile rate
+
+ The line rate can be defined in fps or percentage over the maximum line
+ rate:
+ - frame_rate = 5000 (by default, unit is 'fps')
+ - frame_rate = 5000fps
+ - frame_rate = 25%
+
+ :param rate: (string, int) line rate in fps or %
+ :return: (tuple: int, string) line rate number and unit
+ """
+ match = self.RATE_REGEX.match(str(rate))
+ if not match:
+ exceptions.TrafficProfileRate()
+ rate = float(match.group(1))
+ unit = match.group(2) if match.group(2) else self.RATE_FPS
+ if match.group(3):
+ raise exceptions.TrafficProfileRate()
+ return rate, unit
class TrafficProfile(object):
@@ -33,20 +84,23 @@ class TrafficProfile(object):
:return:
"""
profile_class = tp_config["traffic_profile"]["traffic_type"]
- import_modules_from_package(
- "yardstick.network_services.traffic_profile")
try:
- return next(c for c in itersubclasses(TrafficProfile)
+ return next(c for c in utils.itersubclasses(TrafficProfile)
if c.__name__ == profile_class)(tp_config)
except StopIteration:
- raise RuntimeError("No implementation for %s", profile_class)
+ raise exceptions.TrafficProfileNotImplemented(
+ profile_class=profile_class)
def __init__(self, tp_config):
# e.g. RFC2544 start_ip, stop_ip, drop_rate,
# IMIX = {"10K": 0.1, "100M": 0.5}
self.params = tp_config
+ self.config = TrafficProfileConfig(tp_config)
+
+ def is_ended(self):
+ return False
- def execute_traffic(self, traffic_generator):
+ def execute_traffic(self, traffic_generator, **kawrgs):
""" This methods defines the behavior of the traffic generator.
It will be called in a loop until the traffic generator exits.
diff --git a/yardstick/network_services/traffic_profile/http.py b/yardstick/network_services/traffic_profile/http.py
index 2d00fb849..31ab17ef7 100644
--- a/yardstick/network_services/traffic_profile/http.py
+++ b/yardstick/network_services/traffic_profile/http.py
@@ -24,6 +24,10 @@ class TrafficProfileGenericHTTP(TrafficProfile):
def __init__(self, TrafficProfile):
super(TrafficProfileGenericHTTP, self).__init__(TrafficProfile)
+ def get_links_param(self):
+ return {k: v for k, v in self.params.items() if
+ "uplink" in k or "downlink" in k}
+
def execute(self, traffic_generator):
''' send run traffic for a selected traffic generator'''
pass
diff --git a/yardstick/network_services/traffic_profile/http_ixload.py b/yardstick/network_services/traffic_profile/http_ixload.py
index 348056551..ec0762500 100644
--- a/yardstick/network_services/traffic_profile/http_ixload.py
+++ b/yardstick/network_services/traffic_profile/http_ixload.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,9 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
-from __future__ import print_function
-
import sys
import os
import logging
@@ -38,6 +35,10 @@ class ErrorClass(object):
raise AttributeError
+class InvalidRxfFile(Exception):
+ message = 'Loaded rxf file has unexpected format'
+
+
try:
from IxLoad import IxLoad, StatCollectorUtils
except ImportError:
@@ -93,7 +94,7 @@ def validate_non_string_sequence(value, default=None, raise_exc=None):
if isinstance(value, collections.Sequence) and not isinstance(value, str):
return value
if raise_exc:
- raise raise_exc
+ raise raise_exc # pylint: disable=raising-bad-type
return default
@@ -117,8 +118,10 @@ class IXLOADHttpTest(object):
self.chassis = None
self.card = None
self.ports_to_reassign = None
+ self.links_param = None
self.test_input = jsonutils.loads(test_input)
self.parse_run_test()
+ self.test = None
@staticmethod
def format_ports_for_reassignment(ports):
@@ -182,6 +185,145 @@ class IXLOADHttpTest(object):
LOG.error('Error: IxLoad config file not found: %s', config_file)
raise
+ def update_network_address(self, net_traffic, address, gateway, prefix):
+ """Update ip address and gateway for net_traffic object
+
+ This function update field which configure source addresses for
+ traffic which is described by net_traffic object.
+ Do not return anything
+
+ :param net_traffic: (IxLoadObjectProxy) proxy obj to tcl net_traffic object
+ :param address: (str) Ipv4 range start address
+ :param gateway: (str) Ipv4 address of gateway
+ :param prefix: (int) subnet prefix
+ :return:
+ """
+ try:
+ ethernet = net_traffic.network.getL1Plugin()
+ ix_net_l2_ethernet_plugin = ethernet.childrenList[0]
+ ix_net_ip_v4_v6_plugin = ix_net_l2_ethernet_plugin.childrenList[0]
+ ix_net_ip_v4_v6_range = ix_net_ip_v4_v6_plugin.rangeList[0]
+
+ ix_net_ip_v4_v6_range.config(
+ prefix=prefix,
+ ipAddress=address,
+ gatewayAddress=gateway)
+ except Exception:
+ raise InvalidRxfFile
+
+ def update_network_mac_address(self, net_traffic, mac):
+ """Update MACaddress for net_traffic object
+
+ This function update field which configure MACaddresses for
+ traffic which is described by net_traffic object.
+ If mac == "auto" then will be configured auto generated mac
+ Do not return anything.
+
+ :param net_traffic: (IxLoadObjectProxy) proxy obj to tcl net_traffic object
+ :param mac: (str) MAC
+ :return:
+ """
+ try:
+ ethernet = net_traffic.network.getL1Plugin()
+ ix_net_l2_ethernet_plugin = ethernet.childrenList[0]
+ ix_net_ip_v4_v6_plugin = ix_net_l2_ethernet_plugin.childrenList[0]
+ ix_net_ip_v4_v6_range = ix_net_ip_v4_v6_plugin.rangeList[0]
+
+ if str(mac).lower() == "auto":
+ ix_net_ip_v4_v6_range.config(autoMacGeneration=True)
+ else:
+ ix_net_ip_v4_v6_range.config(autoMacGeneration=False)
+ mac_range = ix_net_ip_v4_v6_range.getLowerRelatedRange(
+ "MacRange")
+ mac_range.config(mac=mac)
+ except Exception:
+ raise InvalidRxfFile
+
+ def update_network_param(self, net_traffic, param):
+ """Update net_traffic by parameters specified in param"""
+
+ self.update_network_address(net_traffic, param["address"],
+ param["gateway"], param["subnet_prefix"])
+
+ self.update_network_mac_address(net_traffic, param["mac"])
+
+ def update_config(self):
+ """Update some fields by parameters from traffic profile"""
+
+ net_traffics = {}
+ # self.test.communityList is a IxLoadObjectProxy to some tcl object
+ # which contain all net_traffic objects in scenario.
+ # net_traffic item has a name in format "activity_name@item_name"
+ try:
+ for item in self.test.communityList:
+ net_traffics[item.name.split('@')[1]] = item
+ except Exception: # pylint: disable=broad-except
+ pass
+
+ for name, net_traffic in net_traffics.items():
+ try:
+ param = self.links_param[name]
+ except KeyError:
+ LOG.debug('There is no param for net_traffic %s', name)
+ continue
+
+ self.update_network_param(net_traffic, param["ip"])
+ if "uplink" in name:
+ self.update_http_client_param(net_traffic, param["http_client"])
+
+ def update_http_client_param(self, net_traffic, param):
+ """Update http client object in net_traffic
+
+ Update http client object in net_traffic by parameters
+ specified in param.
+ Do not return anything.
+
+ :param net_traffic: (IxLoadObjectProxy) proxy obj to tcl net_traffic object
+ :param param: (dict) http_client section from traffic profile
+ :return:
+ """
+ page = param.get("page_object")
+ if page:
+ self.update_page_size(net_traffic, page)
+ users = param.get("simulated_users")
+ if users:
+ self.update_user_count(net_traffic, users)
+
+ def update_page_size(self, net_traffic, page_object):
+ """Update page_object field in http client object in net_traffic
+
+ This function update field which configure page_object
+ which will be loaded from server
+ Do not return anything.
+
+ :param net_traffic: (IxLoadObjectProxy) proxy obj to tcl net_traffic object
+ :param page_object: (str) path to object on server e.g. "/4k.html"
+ :return:
+ """
+ try:
+ activity = net_traffic.activityList[0]
+ ix_http_command = activity.agent.actionList[0]
+ ix_http_command.config(pageObject=page_object)
+ except Exception:
+ raise InvalidRxfFile
+
+ def update_user_count(self, net_traffic, user_count):
+ """Update userObjectiveValue field in activity object in net_traffic
+
+ This function update field which configure users count
+ which will be simulated by client.
+ Do not return anything.
+
+ :param net_traffic: (IxLoadObjectProxy) proxy obj to tcl net_traffic object
+ :param user_count: (int) number of simulated users
+ :return:
+ """
+ try:
+ activity = net_traffic.activityList[0]
+ activity.config(userObjectiveValue=user_count)
+ except Exception:
+ raise InvalidRxfFile
+
def start_http_test(self):
self.ix_load = IxLoad()
@@ -208,17 +350,19 @@ class IXLOADHttpTest(object):
# Get the first test on the testList
test_name = repository.testList[0].cget("name")
- test = repository.testList.getItem(test_name)
+ self.test = repository.testList.getItem(test_name)
self.set_results_dir(test_controller, self.results_on_windows)
- test.config(statsRequired=1, enableResetPorts=1, csvInterval=2,
- enableForceOwnership=True)
+ self.test.config(statsRequired=1, enableResetPorts=1, csvInterval=2,
+ enableForceOwnership=True)
+
+ self.update_config()
# ---- Remap ports ----
try:
- self.reassign_ports(test, repository, self.ports_to_reassign)
- except Exception:
+ self.reassign_ports(self.test, repository, self.ports_to_reassign)
+ except Exception: # pylint: disable=broad-except
LOG.exception("Exception occurred during reassign_ports")
# -----------------------------------------------------------------------
@@ -257,7 +401,7 @@ class IXLOADHttpTest(object):
self.stat_utils.StartCollector(self.IxL_StatCollectorCommand)
- test_controller.run(test)
+ test_controller.run(self.test)
self.ix_load.waitForTestFinish()
test_controller.releaseConfigWaitFinish()
@@ -269,7 +413,7 @@ class IXLOADHttpTest(object):
test_controller.generateReport(detailedReport=1, format="PDF;HTML")
test_controller.releaseConfigWaitFinish()
- self.ix_load.delete(test)
+ self.ix_load.delete(self.test)
self.ix_load.delete(test_controller)
self.ix_load.delete(logger)
self.ix_load.delete(log_engine)
@@ -307,6 +451,9 @@ class IXLOADHttpTest(object):
LOG.debug("Ports to be reassigned: %s", self.ports_to_reassign)
+ self.links_param = self.test_input["links_param"]
+ LOG.debug("Links param to be applied: %s", self.links_param)
+
def main(args):
# Get the args from cmdline and parse and run the test
diff --git a/yardstick/network_services/traffic_profile/ixia_rfc2544.py b/yardstick/network_services/traffic_profile/ixia_rfc2544.py
index 7881131a7..ca45b500d 100644
--- a/yardstick/network_services/traffic_profile/ixia_rfc2544.py
+++ b/yardstick/network_services/traffic_profile/ixia_rfc2544.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,83 +12,149 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
import logging
+import collections
+
+from yardstick.common import utils
+from yardstick.network_services.traffic_profile import base as tp_base
+from yardstick.network_services.traffic_profile import trex_traffic_profile
-from yardstick.network_services.traffic_profile.traffic_profile import \
- TrexProfile
LOG = logging.getLogger(__name__)
-class IXIARFC2544Profile(TrexProfile):
+class IXIARFC2544Profile(trex_traffic_profile.TrexProfile):
UPLINK = 'uplink'
DOWNLINK = 'downlink'
+ DROP_PERCENT_ROUND = 6
+ STATUS_SUCCESS = "Success"
+ STATUS_FAIL = "Failure"
+
+ def __init__(self, yaml_data):
+ super(IXIARFC2544Profile, self).__init__(yaml_data)
+ self.rate = self.config.frame_rate
+ self.rate_unit = self.config.rate_unit
+ self.iteration = 0
+ self.full_profile = {}
+
+ def _get_ip_and_mask(self, ip_range):
+ _ip_range = ip_range.split('-')
+ if len(_ip_range) == 1:
+ return _ip_range[0], None
+
+ mask = utils.get_mask_from_ip_range(_ip_range[0], _ip_range[1])
+ return _ip_range[0], mask
+
+ def _get_fixed_and_mask(self, port_range):
+ _port_range = str(port_range).split('-')
+ if len(_port_range) == 1:
+ return int(_port_range[0]), 0
- def _get_ixia_traffic_profile(self, profile_data, mac=None, xfile=None, static_traffic=None):
- if mac is None:
- mac = {}
+ return int(_port_range[0]), int(_port_range[1])
+ def _get_ixia_traffic_profile(self, profile_data, mac=None):
+ mac = {} if mac is None else mac
result = {}
for traffickey, values in profile_data.items():
if not traffickey.startswith((self.UPLINK, self.DOWNLINK)):
continue
+ # values should be single-item dict, so just grab the first item
try:
- # values should be single-item dict, so just grab the first item
- try:
- key, value = next(iter(values.items()))
- except StopIteration:
- result[traffickey] = {}
- continue
-
- port_id = value.get('id', 1)
- port_index = port_id - 1
- try:
- ip = value['outer_l3v6']
- except KeyError:
- ip = value['outer_l3v4']
- src_key, dst_key = 'srcip4', 'dstip4'
- else:
- src_key, dst_key = 'srcip6', 'dstip6'
-
- result[traffickey] = {
- 'bidir': False,
- 'iload': '100',
- 'id': port_id,
- 'outer_l2': {
- 'framesize': value['outer_l2']['framesize'],
- 'framesPerSecond': True,
- 'srcmac': mac['src_mac_{}'.format(port_index)],
- 'dstmac': mac['dst_mac_{}'.format(port_index)],
- },
- 'outer_l3': {
- 'count': ip['count'],
- 'dscp': ip['dscp'],
- 'ttl': ip['ttl'],
- src_key: ip[src_key].split("-")[0],
- dst_key: ip[dst_key].split("-")[0],
- 'type': key,
- 'proto': ip['proto'],
- },
- 'outer_l4': value['outer_l4'],
- }
- except Exception:
+ key, value = next(iter(values.items()))
+ except StopIteration:
+ result[traffickey] = {}
continue
+ port_id = value.get('id', 1)
+ port_index = port_id - 1
+
+ result[traffickey] = {
+ 'bidir': False,
+ 'id': port_id,
+ 'rate': self.rate,
+ 'rate_unit': self.rate_unit,
+ 'outer_l2': {},
+ 'outer_l3': {},
+ 'outer_l4': {},
+ }
+
+ frame_rate = value.get('frame_rate')
+ if frame_rate:
+ flow_rate, flow_rate_unit = self.config.parse_rate(frame_rate)
+ result[traffickey]['rate'] = flow_rate
+ result[traffickey]['rate_unit'] = flow_rate_unit
+
+ outer_l2 = value.get('outer_l2')
+ if outer_l2:
+ result[traffickey]['outer_l2'].update({
+ 'framesize': outer_l2.get('framesize'),
+ 'framesPerSecond': True,
+ 'QinQ': outer_l2.get('QinQ'),
+ 'srcmac': mac.get('src_mac_{}'.format(port_index)),
+ 'dstmac': mac.get('dst_mac_{}'.format(port_index)),
+ })
+
+ if value.get('outer_l3v4'):
+ outer_l3 = value['outer_l3v4']
+ src_key, dst_key = 'srcip4', 'dstip4'
+ else:
+ outer_l3 = value.get('outer_l3v6')
+ src_key, dst_key = 'srcip6', 'dstip6'
+ if outer_l3:
+ srcip = srcmask = dstip = dstmask = None
+ if outer_l3.get(src_key):
+ srcip, srcmask = self._get_ip_and_mask(outer_l3[src_key])
+ if outer_l3.get(dst_key):
+ dstip, dstmask = self._get_ip_and_mask(outer_l3[dst_key])
+
+ result[traffickey]['outer_l3'].update({
+ 'count': outer_l3.get('count', 1),
+ 'dscp': outer_l3.get('dscp'),
+ 'ttl': outer_l3.get('ttl'),
+ 'srcseed': outer_l3.get('srcseed', 1),
+ 'dstseed': outer_l3.get('dstseed', 1),
+ 'srcip': srcip,
+ 'dstip': dstip,
+ 'srcmask': srcmask,
+ 'dstmask': dstmask,
+ 'type': key,
+ 'proto': outer_l3.get('proto'),
+ 'priority': outer_l3.get('priority')
+ })
+
+ outer_l4 = value.get('outer_l4')
+ if outer_l4:
+ src_port = src_port_mask = dst_port = dst_port_mask = None
+ if outer_l4.get('srcport'):
+ src_port, src_port_mask = (
+ self._get_fixed_and_mask(outer_l4['srcport']))
+
+ if outer_l4.get('dstport'):
+ dst_port, dst_port_mask = (
+ self._get_fixed_and_mask(outer_l4['dstport']))
+
+ result[traffickey]['outer_l4'].update({
+ 'srcport': src_port,
+ 'dstport': dst_port,
+ 'srcportmask': src_port_mask,
+ 'dstportmask': dst_port_mask,
+ 'count': outer_l4.get('count', 1),
+ 'seed': outer_l4.get('seed', 1),
+ })
+
return result
- def _ixia_traffic_generate(self, traffic_generator, traffic, ixia_obj):
- for key, value in traffic.items():
- if key.startswith((self.UPLINK, self.DOWNLINK)):
- value["iload"] = str(self.rate)
- ixia_obj.ix_update_frame(traffic)
- ixia_obj.ix_update_ether(traffic)
- ixia_obj.add_ip_header(traffic, 4)
- ixia_obj.ix_start_traffic()
- self.tmp_drop = 0
- self.tmp_throughput = 0
+ def _ixia_traffic_generate(self, traffic, ixia_obj, traffic_gen):
+ ixia_obj.update_frame(traffic, self.config.duration)
+ ixia_obj.update_ip_packet(traffic)
+ ixia_obj.update_l4(traffic)
+ self._update_traffic_tracking_options(traffic_gen)
+ ixia_obj.start_traffic()
+
+ def _update_traffic_tracking_options(self, traffic_gen):
+ traffic_gen.update_tracking_options()
def update_traffic_profile(self, traffic_generator):
def port_generator():
@@ -99,86 +165,261 @@ class IXIARFC2544Profile(TrexProfile):
if not profile_data:
continue
self.profile_data = profile_data
- self.get_streams(self.profile_data)
self.full_profile.update({vld_id: self.profile_data})
for intf in intfs:
yield traffic_generator.vnfd_helper.port_num(intf)
self.ports = [port for port in port_generator()]
- def execute_traffic(self, traffic_generator, ixia_obj, mac=None, xfile=None):
- if mac is None:
- mac = {}
+ def execute_traffic(self, traffic_generator, ixia_obj=None, mac=None):
+ mac = {} if mac is None else mac
+ first_run = self.first_run
if self.first_run:
- self.full_profile = {}
+ self.first_run = False
self.pg_id = 0
- self.update_traffic_profile(traffic_generator)
- traffic = \
- self._get_ixia_traffic_profile(self.full_profile, mac, xfile)
self.max_rate = self.rate
- self.min_rate = 0
- self.get_multiplier()
- self._ixia_traffic_generate(traffic_generator, traffic, ixia_obj)
-
- def get_multiplier(self):
- self.rate = round((self.max_rate + self.min_rate) / 2.0, 2)
- multiplier = round(self.rate / self.pps, 2)
- return str(multiplier)
-
- def start_ixia_latency(self, traffic_generator, ixia_obj,
- mac=None, xfile=None):
- if mac is None:
- mac = {}
- self.update_traffic_profile(traffic_generator)
- traffic = \
- self._get_ixia_traffic_profile(self.full_profile, mac, xfile)
- self._ixia_traffic_generate(traffic_generator, traffic, ixia_obj)
-
- def get_drop_percentage(self, traffic_generator, samples, tol_min,
- tolerance, ixia_obj, mac=None, xfile=None):
- if mac is None:
- mac = {}
- status = 'Running'
+ self.min_rate = 0.0
+ else:
+ self.rate = self._get_next_rate()
+
+ self.iteration = traffic_generator.rfc_helper.iteration.value
+ traffic = self._get_ixia_traffic_profile(self.full_profile, mac)
+ self._ixia_traffic_generate(traffic, ixia_obj, traffic_generator)
+ return first_run
+
+ # pylint: disable=unused-argument
+ def get_drop_percentage(self, samples, tol_min, tolerance, precision,
+ resolution, first_run=False, tc_rfc2544_opts=None):
+ completed = False
+ drop_percent = 100.0
+ num_ifaces = len(samples)
+ duration = self.config.duration
+ in_packets_sum = sum(
+ [samples[iface]['InPackets'] for iface in samples])
+ out_packets_sum = sum(
+ [samples[iface]['OutPackets'] for iface in samples])
+ in_bytes_sum = sum(
+ [samples[iface]['InBytes'] for iface in samples])
+ out_bytes_sum = sum(
+ [samples[iface]['OutBytes'] for iface in samples])
+ rx_throughput = round(float(in_packets_sum) / duration, 3)
+ tx_throughput = round(float(out_packets_sum) / duration, 3)
+ # Rx throughput in Bps
+ rx_throughput_bps = round(float(in_bytes_sum) / duration, 3)
+ # Tx throughput in Bps
+ tx_throughput_bps = round(float(out_bytes_sum) / duration, 3)
+ packet_drop = abs(out_packets_sum - in_packets_sum)
+
+ try:
+ drop_percent = round(
+ (packet_drop / float(out_packets_sum)) * 100,
+ self.DROP_PERCENT_ROUND)
+ except ZeroDivisionError:
+ LOG.info('No traffic is flowing')
+
+ if first_run:
+ completed = True if drop_percent <= tolerance else False
+ if (first_run and
+ self.rate_unit == tp_base.TrafficProfileConfig.RATE_FPS):
+ self.rate = float(out_packets_sum) / duration / num_ifaces
+
+ if drop_percent > tolerance:
+ self.max_rate = self.rate
+ elif drop_percent < tol_min:
+ self.min_rate = self.rate
+ else:
+ completed = True
+
+ last_rate = self.rate
+ next_rate = self._get_next_rate()
+ if abs(next_rate - self.rate) < resolution:
+ LOG.debug("rate=%s, next_rate=%s, resolution=%s", self.rate,
+ next_rate, resolution)
+ # stop test if the difference between the rate transmission
+ # in two iterations is smaller than the value of the resolution
+ completed = True
+
+ LOG.debug("tolerance=%s, tolerance_precision=%s drop_percent=%s "
+ "completed=%s", tolerance, precision, drop_percent,
+ completed)
+
+ latency_ns_avg = float(sum(
+ [samples[iface]['LatencyAvg'] for iface in samples])) / num_ifaces
+ latency_ns_min = min([samples[iface]['LatencyMin'] for iface in samples])
+ latency_ns_max = max([samples[iface]['LatencyMax'] for iface in samples])
+
+ samples['Status'] = self.STATUS_FAIL
+ if round(drop_percent, precision) <= tolerance:
+ samples['Status'] = self.STATUS_SUCCESS
+
+ samples['TxThroughput'] = tx_throughput
+ samples['RxThroughput'] = rx_throughput
+ samples['TxThroughputBps'] = tx_throughput_bps
+ samples['RxThroughputBps'] = rx_throughput_bps
+ samples['DropPercentage'] = drop_percent
+ samples['LatencyAvg'] = latency_ns_avg
+ samples['LatencyMin'] = latency_ns_min
+ samples['LatencyMax'] = latency_ns_max
+ samples['Rate'] = last_rate
+ samples['PktSize'] = self._get_framesize()
+ samples['Iteration'] = self.iteration
+
+ return completed, samples
+
+
+class IXIARFC2544PppoeScenarioProfile(IXIARFC2544Profile):
+ """Class handles BNG PPPoE scenario tests traffic profile"""
+
+ def __init__(self, yaml_data):
+ super(IXIARFC2544PppoeScenarioProfile, self).__init__(yaml_data)
+ self.full_profile = collections.OrderedDict()
+
+ def _get_flow_groups_params(self):
+ flows_data = [key for key in self.params.keys()
+ if key.split('_')[0] in [self.UPLINK, self.DOWNLINK]]
+ for i in range(len(flows_data)):
+ uplink = '_'.join([self.UPLINK, str(i)])
+ downlink = '_'.join([self.DOWNLINK, str(i)])
+ if uplink in flows_data:
+ self.full_profile.update({uplink: self.params[uplink]})
+ if downlink in flows_data:
+ self.full_profile.update({downlink: self.params[downlink]})
+
+ def update_traffic_profile(self, traffic_generator):
+
+ networks = collections.OrderedDict()
+
+ # Sort network interfaces pairs
+ for i in range(len(traffic_generator.networks)):
+ uplink = '_'.join([self.UPLINK, str(i)])
+ downlink = '_'.join([self.DOWNLINK, str(i)])
+ if uplink in traffic_generator.networks:
+ networks[uplink] = traffic_generator.networks[uplink]
+ if downlink in traffic_generator.networks:
+ networks[downlink] = traffic_generator.networks[downlink]
+
+ def port_generator():
+ for intfs in networks.values():
+ for intf in intfs:
+ yield traffic_generator.vnfd_helper.port_num(intf)
+
+ self._get_flow_groups_params()
+ self.ports = [port for port in port_generator()]
+
+ def _get_prio_flows_drop_percentage(self, stats):
drop_percent = 100
- in_packets = sum([samples[iface]['in_packets'] for iface in samples])
- out_packets = sum([samples[iface]['out_packets'] for iface in samples])
- rx_throughput = \
- sum([samples[iface]['RxThroughput'] for iface in samples])
- tx_throughput = \
- sum([samples[iface]['TxThroughput'] for iface in samples])
- packet_drop = abs(out_packets - in_packets)
+ for prio_id in stats:
+ prio_flow = stats[prio_id]
+ sum_packet_drop = abs(prio_flow['OutPackets'] - prio_flow['InPackets'])
+ try:
+ drop_percent = round(
+ (sum_packet_drop / float(prio_flow['OutPackets'])) * 100,
+ self.DROP_PERCENT_ROUND)
+ except ZeroDivisionError:
+ LOG.info('No traffic is flowing')
+ prio_flow['DropPercentage'] = drop_percent
+ return stats
+
+ def _get_summary_pppoe_subs_counters(self, samples):
+ result = {}
+ keys = ['SessionsUp',
+ 'SessionsDown',
+ 'SessionsNotStarted',
+ 'SessionsTotal']
+ for key in keys:
+ result[key] = \
+ sum([samples[port][key] for port in samples
+ if key in samples[port]])
+ return result
+
+ def get_drop_percentage(self, samples, tol_min, tolerance, precision,
+ resolution, first_run=False, tc_rfc2544_opts=None):
+ completed = False
+ sum_drop_percent = 100
+ num_ifaces = len(samples)
+ duration = self.config.duration
+ last_rate = self.rate
+ priority_stats = samples.pop('priority_stats')
+ priority_stats = self._get_prio_flows_drop_percentage(priority_stats)
+ summary_subs_stats = self._get_summary_pppoe_subs_counters(samples)
+ in_packets_sum = sum(
+ [samples[iface]['InPackets'] for iface in samples])
+ out_packets_sum = sum(
+ [samples[iface]['OutPackets'] for iface in samples])
+ in_bytes_sum = sum(
+ [samples[iface]['InBytes'] for iface in samples])
+ out_bytes_sum = sum(
+ [samples[iface]['OutBytes'] for iface in samples])
+ rx_throughput = round(float(in_packets_sum) / duration, 3)
+ tx_throughput = round(float(out_packets_sum) / duration, 3)
+ # Rx throughput in Bps
+ rx_throughput_bps = round(float(in_bytes_sum) / duration, 3)
+ # Tx throughput in Bps
+ tx_throughput_bps = round(float(out_bytes_sum) / duration, 3)
+ sum_packet_drop = abs(out_packets_sum - in_packets_sum)
+
try:
- drop_percent = round((packet_drop / float(out_packets)) * 100, 2)
+ sum_drop_percent = round(
+ (sum_packet_drop / float(out_packets_sum)) * 100,
+ self.DROP_PERCENT_ROUND)
except ZeroDivisionError:
LOG.info('No traffic is flowing')
- samples['TxThroughput'] = round(tx_throughput / 1.0, 2)
- samples['RxThroughput'] = round(rx_throughput / 1.0, 2)
- samples['CurrentDropPercentage'] = drop_percent
- samples['Throughput'] = self.tmp_throughput
- samples['DropPercentage'] = self.tmp_drop
- if drop_percent > tolerance and self.tmp_throughput == 0:
- samples['Throughput'] = round(rx_throughput / 1.0, 2)
- samples['DropPercentage'] = drop_percent
- if self.first_run:
- max_supported_rate = out_packets / 30.0
- self.rate = max_supported_rate
- self.first_run = False
- if drop_percent <= tolerance:
- status = 'Completed'
+
+ latency_ns_avg = float(sum(
+ [samples[iface]['LatencyAvg'] for iface in samples])) / num_ifaces
+ latency_ns_min = min([samples[iface]['LatencyMin'] for iface in samples])
+ latency_ns_max = max([samples[iface]['LatencyMax'] for iface in samples])
+
+ samples['TxThroughput'] = tx_throughput
+ samples['RxThroughput'] = rx_throughput
+ samples['TxThroughputBps'] = tx_throughput_bps
+ samples['RxThroughputBps'] = rx_throughput_bps
+ samples['DropPercentage'] = sum_drop_percent
+ samples['LatencyAvg'] = latency_ns_avg
+ samples['LatencyMin'] = latency_ns_min
+ samples['LatencyMax'] = latency_ns_max
+ samples['Priority'] = priority_stats
+ samples['Rate'] = last_rate
+ samples['PktSize'] = self._get_framesize()
+ samples['Iteration'] = self.iteration
+ samples.update(summary_subs_stats)
+
+ if tc_rfc2544_opts:
+ priority = tc_rfc2544_opts.get('priority')
+ if priority:
+ drop_percent = samples['Priority'][priority]['DropPercentage']
+ else:
+ drop_percent = sum_drop_percent
+ else:
+ drop_percent = sum_drop_percent
+
+ if first_run:
+ completed = True if drop_percent <= tolerance else False
+ if (first_run and
+ self.rate_unit == tp_base.TrafficProfileConfig.RATE_FPS):
+ self.rate = float(out_packets_sum) / duration / num_ifaces
+
if drop_percent > tolerance:
self.max_rate = self.rate
elif drop_percent < tol_min:
self.min_rate = self.rate
- if drop_percent >= self.tmp_drop:
- self.tmp_drop = drop_percent
- self.tmp_throughput = round((rx_throughput / 1.0), 2)
- samples['Throughput'] = round(rx_throughput / 1.0, 2)
- samples['DropPercentage'] = drop_percent
else:
- samples['Throughput'] = round(rx_throughput / 1.0, 2)
- samples['DropPercentage'] = drop_percent
- return status, samples
- self.get_multiplier()
- traffic = self._get_ixia_traffic_profile(self.full_profile, mac, xfile)
- self._ixia_traffic_generate(traffic_generator, traffic, ixia_obj)
- return status, samples
+ completed = True
+
+ next_rate = self._get_next_rate()
+ if abs(next_rate - self.rate) < resolution:
+ LOG.debug("rate=%s, next_rate=%s, resolution=%s", self.rate,
+ next_rate, resolution)
+ # stop test if the difference between the rate transmission
+ # in two iterations is smaller than the value of the resolution
+ completed = True
+
+ LOG.debug("tolerance=%s, tolerance_precision=%s drop_percent=%s "
+ "completed=%s", tolerance, precision, drop_percent,
+ completed)
+
+ samples['Status'] = self.STATUS_FAIL
+ if round(drop_percent, precision) <= tolerance:
+ samples['Status'] = self.STATUS_SUCCESS
+
+ return completed, samples
diff --git a/yardstick/network_services/traffic_profile/landslide_profile.py b/yardstick/network_services/traffic_profile/landslide_profile.py
new file mode 100644
index 000000000..f79226fb4
--- /dev/null
+++ b/yardstick/network_services/traffic_profile/landslide_profile.py
@@ -0,0 +1,47 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+""" Spirent Landslide traffic profile definitions """
+
+from yardstick.network_services.traffic_profile import base
+
+
+class LandslideProfile(base.TrafficProfile):
+ """
+ This traffic profile handles attributes of Landslide data stream
+ """
+
+ def __init__(self, tp_config):
+ super(LandslideProfile, self).__init__(tp_config)
+
+ # for backward compatibility support dict and list of dicts
+ if isinstance(tp_config["dmf_config"], dict):
+ self.dmf_config = [tp_config["dmf_config"]]
+ else:
+ self.dmf_config = tp_config["dmf_config"]
+
+ def execute(self, traffic_generator):
+ pass
+
+ def update_dmf(self, options):
+ if 'dmf' in options:
+ if isinstance(options['dmf'], dict):
+ _dmfs = [options['dmf']]
+ else:
+ _dmfs = options['dmf']
+
+ for index, _dmf in enumerate(_dmfs):
+ try:
+ self.dmf_config[index].update(_dmf)
+ except IndexError:
+ pass
diff --git a/yardstick/network_services/traffic_profile/pktgen.py b/yardstick/network_services/traffic_profile/pktgen.py
new file mode 100644
index 000000000..30f81b794
--- /dev/null
+++ b/yardstick/network_services/traffic_profile/pktgen.py
@@ -0,0 +1,61 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from yardstick.common import exceptions
+from yardstick.common import utils
+from yardstick.network_services.traffic_profile import base as tp_base
+
+
+class PktgenTrafficProfile(tp_base.TrafficProfile):
+ """This class handles Pktgen Trex Traffic profile execution"""
+
+ def __init__(self, tp_config): # pragma: no cover
+ super(PktgenTrafficProfile, self).__init__(tp_config)
+ self._host = None
+ self._port = None
+
+ def init(self, host, port): # pragma: no cover
+ """Initialize control parameters
+
+ :param host: (str) ip or host name
+ :param port: (int) TCP socket port number for Lua commands
+ """
+ self._host = host
+ self._port = port
+
+ def start(self):
+ if utils.send_socket_command(self._host, self._port,
+ 'pktgen.start("0")') != 0:
+ raise exceptions.PktgenActionError(action='start')
+
+ def stop(self):
+ if utils.send_socket_command(self._host, self._port,
+ 'pktgen.stop("0")') != 0:
+ raise exceptions.PktgenActionError(action='stop')
+
+ def rate(self, rate):
+ command = 'pktgen.set("0", "rate", ' + str(rate) + ')'
+ if utils.send_socket_command(self._host, self._port, command) != 0:
+ raise exceptions.PktgenActionError(action='rate')
+
+ def clear_all_stats(self):
+ if utils.send_socket_command(self._host, self._port, 'clr') != 0:
+ raise exceptions.PktgenActionError(action='clear all stats')
+
+ def help(self):
+ if utils.send_socket_command(self._host, self._port, 'help') != 0:
+ raise exceptions.PktgenActionError(action='help')
+
+ def execute_traffic(self, *args, **kwargs): # pragma: no cover
+ pass
diff --git a/yardstick/network_services/traffic_profile/prox_binsearch.py b/yardstick/network_services/traffic_profile/prox_binsearch.py
index 1fd6ec41a..402bf741c 100644
--- a/yardstick/network_services/traffic_profile/prox_binsearch.py
+++ b/yardstick/network_services/traffic_profile/prox_binsearch.py
@@ -16,11 +16,23 @@
from __future__ import absolute_import
import logging
+import datetime
+import time
from yardstick.network_services.traffic_profile.prox_profile import ProxProfile
+from yardstick.network_services import constants
+from yardstick.common import constants as overall_constants
LOG = logging.getLogger(__name__)
+STATUS_SUCCESS = "Success"
+STATUS_FAIL = "Failure"
+STATUS_RESULT = "Result"
+STEP_CONFIRM = "Confirm retry"
+STEP_INCREASE_LOWER = "Increase lower"
+STEP_DECREASE_LOWER = "Decrease lower"
+STEP_DECREASE_UPPER = "Decrease upper"
+
class ProxBinSearchProfile(ProxProfile):
"""
@@ -54,6 +66,9 @@ class ProxBinSearchProfile(ProxProfile):
yield test_value
test_value = self.mid_point
+ def is_ended(self):
+ return self.done.is_set()
+
def run_test_with_pkt_size(self, traffic_gen, pkt_size, duration):
"""Run the test for a single packet size.
@@ -81,19 +96,111 @@ class ProxBinSearchProfile(ProxProfile):
# success, the binary search will complete on an integer multiple
# of the precision, rather than on a fraction of it.
+ theor_max_thruput = 0.0
+
+ result_samples = {}
+
+ test_data = {
+ "test_duration": traffic_gen.scenario_helper.scenario_cfg["runner"]["duration"],
+ "test_precision": self.params["traffic_profile"]["test_precision"],
+ "tolerated_loss": self.params["traffic_profile"]["tolerated_loss"],
+ "duration": duration
+ }
+ self.prev_time = time.time()
+
# throughput and packet loss from the most recent successful test
successful_pkt_loss = 0.0
- for test_value in self.bounds_iterator(LOG):
- result, port_samples = self._profile_helper.run_test(pkt_size, duration,
- test_value, self.tolerated_loss)
-
- if result.success:
- LOG.debug("Success! Increasing lower bound")
- self.current_lower = test_value
- successful_pkt_loss = result.pkt_loss
- else:
- LOG.debug("Failure... Decreasing upper bound")
- self.current_upper = test_value
-
- samples = result.get_samples(pkt_size, successful_pkt_loss, port_samples)
- self.queue.put(samples)
+ line_speed = traffic_gen.scenario_helper.all_options.get(
+ "interface_speed_gbps", constants.NIC_GBPS_DEFAULT) * constants.ONE_GIGABIT_IN_BITS
+
+ ok_retry = traffic_gen.scenario_helper.scenario_cfg["runner"].get("confirmation", 0)
+ for step_id, test_value in enumerate(self.bounds_iterator(LOG)):
+ pos_retry = 0
+ neg_retry = 0
+ total_retry = 0
+
+ LOG.info("Checking MAX %s MIN %s TEST %s", self.current_upper,
+ self.lower_bound, test_value)
+
+ while (pos_retry <= ok_retry) and (neg_retry <= ok_retry):
+
+ total_retry = total_retry + 1
+
+ result, port_samples = self._profile_helper.run_test(pkt_size, duration,
+ test_value,
+ self.tolerated_loss,
+ line_speed)
+
+ if (total_retry > (ok_retry * 3)) and (ok_retry is not 0):
+ status = STATUS_FAIL
+ next_step = STEP_DECREASE_LOWER
+ successful_pkt_loss = result.pkt_loss
+ self.current_upper = test_value
+ neg_retry = total_retry
+ elif result.success:
+ if (pos_retry < ok_retry) and (ok_retry is not 0):
+ status = STATUS_SUCCESS
+ next_step = STEP_CONFIRM
+ successful_pkt_loss = result.pkt_loss
+ neg_retry = 0
+ else:
+ status = STATUS_SUCCESS
+ next_step = STEP_INCREASE_LOWER
+ self.current_lower = test_value
+ successful_pkt_loss = result.pkt_loss
+
+ pos_retry = pos_retry + 1
+
+ else:
+ if (neg_retry < ok_retry) and (ok_retry is not 0):
+ status = STATUS_FAIL
+ next_step = STEP_CONFIRM
+ pos_retry = 0
+ else:
+ status = STATUS_FAIL
+ next_step = STEP_DECREASE_UPPER
+ self.current_upper = test_value
+
+ neg_retry = neg_retry + 1
+
+ LOG.info(
+ "Status = '%s' Next_Step = '%s'", status, next_step)
+
+ samples = result.get_samples(pkt_size, successful_pkt_loss, port_samples)
+
+ if theor_max_thruput < samples["RequestedTxThroughput"]:
+ theor_max_thruput = samples['RequestedTxThroughput']
+ samples['theor_max_throughput'] = theor_max_thruput
+
+ samples["rx_total"] = int(result.rx_total)
+ samples["tx_total"] = int(result.tx_total)
+ samples["can_be_lost"] = int(result.can_be_lost)
+ samples["drop_total"] = int(result.drop_total)
+ samples["RxThroughput_gbps"] = \
+ (samples["RxThroughput"] / 1000) * ((pkt_size + 20) * 8)
+ samples['Status'] = status
+ samples['Next_Step'] = next_step
+ samples["MAX_Rate"] = self.current_upper
+ samples["MIN_Rate"] = self.current_lower
+ samples["Test_Rate"] = test_value
+ samples["Step_Id"] = step_id
+ samples["Confirmation_Retry"] = total_retry
+
+ samples.update(test_data)
+
+ if status == STATUS_SUCCESS and next_step == STEP_INCREASE_LOWER:
+ # Store success samples for result samples
+ result_samples = samples
+
+ LOG.info(">>>##>>Collect TG KPIs %s %s", datetime.datetime.now(), samples)
+
+ self.queue.put(samples, True, overall_constants.QUEUE_PUT_TIMEOUT)
+
+ LOG.info(
+ ">>>##>> Result Reached PktSize %s Theor_Max_Thruput %s Actual_throughput %s",
+ pkt_size, theor_max_thruput, result_samples.get("RxThroughput", 0.0))
+ result_samples["Status"] = STATUS_RESULT
+ result_samples["Next_Step"] = ""
+ result_samples["Actual_throughput"] = result_samples.get("RxThroughput", 0.0)
+ result_samples["theor_max_throughput"] = theor_max_thruput
+ self.queue.put(result_samples)
diff --git a/yardstick/network_services/traffic_profile/prox_irq.py b/yardstick/network_services/traffic_profile/prox_irq.py
new file mode 100644
index 000000000..0ea294914
--- /dev/null
+++ b/yardstick/network_services/traffic_profile/prox_irq.py
@@ -0,0 +1,48 @@
+# Copyright (c) 2016-2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+""" Fixed traffic profile definitions """
+
+import logging
+import time
+
+from yardstick.network_services.traffic_profile.prox_profile import ProxProfile
+
+LOG = logging.getLogger(__name__)
+
+
+class ProxIrqProfile(ProxProfile):
+ """
+ This profile adds a single stream at the beginning of the traffic session
+ """
+
+ def __init__(self, tp_config):
+ super(ProxIrqProfile, self).__init__(tp_config)
+
+ def init(self, queue):
+ self.queue = queue
+ self.queue.cancel_join_thread()
+
+ def execute_traffic(self, traffic_generator):
+ LOG.debug("Prox_IRQ Execute Traffic....")
+ time.sleep(5)
+
+ def is_ended(self):
+ return False
+
+ def run_test(self):
+ """Run the test
+ """
+
+ LOG.info("Prox_IRQ ....")
diff --git a/yardstick/network_services/traffic_profile/prox_profile.py b/yardstick/network_services/traffic_profile/prox_profile.py
index 170dfd96f..be450c9f7 100644
--- a/yardstick/network_services/traffic_profile/prox_profile.py
+++ b/yardstick/network_services/traffic_profile/prox_profile.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2018 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,6 +16,8 @@
from __future__ import absolute_import
import logging
+import multiprocessing
+import time
from yardstick.network_services.traffic_profile.base import TrafficProfile
from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxProfileHelper
@@ -29,8 +31,22 @@ class ProxProfile(TrafficProfile):
"""
@staticmethod
+ def sort_vpci(traffic_gen):
+ """Return the list of external interfaces ordered by vpci and name
+
+ :param traffic_gen: (ProxTrafficGen) traffic generator
+ :return: list of ordered interfaces
+ """
+ def key_func(interface):
+ return interface['virtual-interface']['vpci'], interface['name']
+
+ return sorted(traffic_gen.vnfd_helper['vdu'][0]['external-interface'],
+ key=key_func)
+
+ @staticmethod
def fill_samples(samples, traffic_gen):
- for vpci_idx, intf in enumerate(traffic_gen.vpci_if_name_ascending):
+ vpci_if_name_ascending = ProxProfile.sort_vpci(traffic_gen)
+ for vpci_idx, intf in enumerate(vpci_if_name_ascending):
name = intf[1]
# TODO: VNFDs KPIs values needs to be mapped to TRex structure
xe_port = traffic_gen.resource_helper.sut.port_stats([vpci_idx])
@@ -42,7 +58,7 @@ class ProxProfile(TrafficProfile):
def __init__(self, tp_config):
super(ProxProfile, self).__init__(tp_config)
self.queue = None
- self.done = False
+ self.done = multiprocessing.Event()
self.results = []
# TODO: get init values from tp_config
@@ -102,7 +118,8 @@ class ProxProfile(TrafficProfile):
try:
pkt_size = next(self.pkt_size_iterator)
except StopIteration:
- self.done = True
+ time.sleep(5)
+ self.done.set()
return
# Adjust packet size upwards if it's less than the minimum
diff --git a/yardstick/network_services/traffic_profile/rfc2544.py b/yardstick/network_services/traffic_profile/rfc2544.py
index b1ca8a345..aaa491b75 100644
--- a/yardstick/network_services/traffic_profile/rfc2544.py
+++ b/yardstick/network_services/traffic_profile/rfc2544.py
@@ -11,190 +11,352 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-""" RFC2544 Throughput implemenation """
-from __future__ import absolute_import
-from __future__ import division
import logging
-from trex_stl_lib.trex_stl_client import STLStream
-from trex_stl_lib.trex_stl_streams import STLFlowLatencyStats
-from trex_stl_lib.trex_stl_streams import STLTXCont
+from trex_stl_lib import api as Pkt
+from trex_stl_lib import trex_stl_client
+from trex_stl_lib import trex_stl_packet_builder_scapy
+from trex_stl_lib import trex_stl_streams
-from yardstick.network_services.traffic_profile.traffic_profile \
- import TrexProfile
+from yardstick.common import constants
+from yardstick.network_services.traffic_profile import trex_traffic_profile
-LOGGING = logging.getLogger(__name__)
+LOG = logging.getLogger(__name__)
+SRC_PORT = 'sport'
+DST_PORT = 'dport'
-class RFC2544Profile(TrexProfile):
- """ This class handles rfc2544 implemenation. """
- def __init__(self, traffic_generator):
- super(RFC2544Profile, self).__init__(traffic_generator)
- self.generator = None
- self.max_rate = None
- self.min_rate = None
- self.ports = None
- self.rate = 100
- self.drop_percent_at_max_tx = None
- self.throughput_max = None
+class PortPgIDMap(object):
+ """Port and pg_id mapping class
- def register_generator(self, generator):
- self.generator = generator
+ "pg_id" is the identification STL library gives to each stream. In the
+ RFC2544Profile class, the traffic has a STLProfile per port, which contains
+ one or several streams, one per packet size defined in the IMIX test case
+ description.
- def execute_traffic(self, traffic_generator=None):
- """ Generate the stream and run traffic on the given ports """
- if traffic_generator is not None and self.generator is None:
- self.generator = traffic_generator
+ Example of port <-> pg_id map:
+ self._port_pg_id_map = {
+ 0: [1, 2, 3, 4],
+ 1: [5, 6, 7, 8]
+ }
+ """
- if self.ports is not None:
- return
+ def __init__(self):
+ self._pg_id = 0
+ self._last_port = None
+ self._port_pg_id_map = {}
- self.ports = []
- for vld_id, intfs in sorted(self.generator.networks.items()):
- profile_data = self.params.get(vld_id)
- # no profile for this port
- if not profile_data:
- continue
- # correlated traffic doesn't use public traffic?
- if vld_id.startswith(self.DOWNLINK) and \
- self.generator.rfc2544_helper.correlated_traffic:
- continue
- for intf in intfs:
- port = self.generator.port_num(intf)
- self.ports.append(port)
- self.generator.client.add_streams(self.get_streams(profile_data), ports=port)
-
- self.max_rate = self.rate
- self.min_rate = 0
- self.generator.client.start(ports=self.ports, mult=self.get_multiplier(),
- duration=30, force=True)
- self.drop_percent_at_max_tx = 0
- self.throughput_max = 0
-
- def get_multiplier(self):
- """ Get the rate at which next iteration to run """
- self.rate = round((self.max_rate + self.min_rate) / 2.0, 2)
- multiplier = round(self.rate / self.pps, 2)
- return str(multiplier)
-
- def get_drop_percentage(self, generator=None):
- """ Calculate the drop percentage and run the traffic """
- if generator is None:
- generator = self.generator
- run_duration = self.generator.RUN_DURATION
- samples = self.generator.generate_samples(self.ports)
-
- in_packets = sum([value['in_packets'] for value in samples.values()])
- out_packets = sum([value['out_packets'] for value in samples.values()])
-
- packet_drop = abs(out_packets - in_packets)
- drop_percent = 100.0
- try:
- drop_percent = round((packet_drop / float(out_packets)) * 100, 5)
- except ZeroDivisionError:
- LOGGING.info('No traffic is flowing')
+ def add_port(self, port):
+ self._last_port = port
+ self._port_pg_id_map[port] = []
- # TODO(esm): RFC2544 doesn't tolerate packet loss, why do we?
- tolerance_low = generator.rfc2544_helper.tolerance_low
- tolerance_high = generator.rfc2544_helper.tolerance_high
+ def get_pg_ids(self, port):
+ return self._port_pg_id_map.get(port, [])
- tx_rate = out_packets / run_duration
- rx_rate = in_packets / run_duration
+ def increase_pg_id(self, port=None):
+ port = self._last_port if not port else port
+ if port is None:
+ return
+ pg_id_list = self._port_pg_id_map.get(port)
+ if not pg_id_list:
+ self.add_port(port)
+ pg_id_list = self._port_pg_id_map[port]
+ self._pg_id += 1
+ pg_id_list.append(self._pg_id)
+ return self._pg_id
- throughput_max = self.throughput_max
- drop_percent_at_max_tx = self.drop_percent_at_max_tx
- if self.drop_percent_at_max_tx is None:
- self.rate = tx_rate
- self.first_run = False
+class RFC2544Profile(trex_traffic_profile.TrexProfile):
+ """TRex RFC2544 traffic profile"""
- if drop_percent > tolerance_high:
- # TODO(esm): why don't we discard results that are out of tolerance?
- self.max_rate = self.rate
- if throughput_max == 0:
- throughput_max = rx_rate
- drop_percent_at_max_tx = drop_percent
-
- elif drop_percent >= tolerance_low:
- # TODO(esm): why do we update the samples dict in this case
- # and not update our tracking values?
- throughput_max = rx_rate
- drop_percent_at_max_tx = drop_percent
-
- elif drop_percent >= self.drop_percent_at_max_tx:
- # TODO(esm): why don't we discard results that are out of tolerance?
- self.min_rate = self.rate
- self.drop_percent_at_max_tx = drop_percent_at_max_tx = drop_percent
- self.throughput_max = throughput_max = rx_rate
+ TOLERANCE_LIMIT = 0.01
+ STATUS_SUCCESS = "Success"
+ STATUS_FAIL = "Failure"
- else:
- # TODO(esm): why don't we discard results that are out of tolerance?
- self.min_rate = self.rate
-
- generator.clear_client_stats(self.ports)
- generator.start_client(self.ports, mult=self.get_multiplier(),
- duration=run_duration, force=True)
-
- # if correlated traffic update the Throughput
- if generator.rfc2544_helper.correlated_traffic:
- throughput_max *= 2
+ def __init__(self, traffic_generator):
+ super(RFC2544Profile, self).__init__(traffic_generator)
+ self.generator = None
+ self.iteration = 0
+ self.rate = self.config.frame_rate
+ self.max_rate = self.config.frame_rate
+ self.min_rate = 0
- samples.update({
- 'TxThroughput': tx_rate,
- 'RxThroughput': rx_rate,
- 'CurrentDropPercentage': drop_percent,
- 'Throughput': throughput_max,
- 'DropPercentage': drop_percent_at_max_tx,
- })
+ def register_generator(self, generator):
+ self.generator = generator
- return samples
+ def stop_traffic(self, traffic_generator=None):
+ """"Stop traffic injection, reset counters and remove streams"""
+ if traffic_generator is not None and self.generator is None:
+ self.generator = traffic_generator
- def execute_latency(self, generator=None, samples=None):
- if generator is not None and self.generator is None:
- self.generator = generator
+ self.generator.client.stop()
+ self.generator.client.reset()
+ self.generator.client.remove_all_streams()
- if samples is None:
- samples = self.generator.generate_samples()
+ def execute_traffic(self, traffic_generator=None):
+ """Generate the stream and run traffic on the given ports
+
+ :param traffic_generator: (TrexTrafficGenRFC) traffic generator
+ :return ports: (list of int) indexes of ports
+ port_pg_id: (dict) port indexes and pg_id [1] map
+ [1] https://trex-tgn.cisco.com/trex/doc/cp_stl_docs/api/
+ profile_code.html#stlstream-modes
+ """
+ if traffic_generator is not None and self.generator is None:
+ self.generator = traffic_generator
- self.pps, multiplier = self.calculate_pps(samples)
- self.ports = []
- self.pg_id = self.params['traffic_profile'].get('pg_id', 1)
+ port_pg_id = PortPgIDMap()
+ ports = []
for vld_id, intfs in sorted(self.generator.networks.items()):
profile_data = self.params.get(vld_id)
if not profile_data:
continue
- # correlated traffic doesn't use public traffic?
- if vld_id.startswith(self.DOWNLINK) and \
- self.generator.rfc2544_helper.correlated_traffic:
+ if (vld_id.startswith(self.DOWNLINK) and
+ self.generator.rfc2544_helper.correlated_traffic):
continue
for intf in intfs:
- port = self.generator.port_num(intf)
- self.ports.append(port)
- self.generator.client.add_streams(self.get_streams(profile_data), ports=port)
-
- self.generator.start_client(ports=self.ports, mult=str(multiplier),
- duration=120, force=True)
- self.first_run = False
-
- def calculate_pps(self, samples):
- pps = round(samples['Throughput'] / 2, 2)
- multiplier = round(self.rate / self.pps, 2)
- return pps, multiplier
-
- def create_single_stream(self, packet_size, pps, isg=0):
- packet = self._create_single_packet(packet_size)
- if pps:
- stl_mode = STLTXCont(pps=pps)
+ port_num = int(self.generator.port_num(intf))
+ ports.append(port_num)
+ port_pg_id.add_port(port_num)
+ profile = self._create_profile(profile_data,
+ self.rate, port_pg_id,
+ self.config.enable_latency)
+ self.generator.client.add_streams(profile, ports=[port_num])
+
+ self.generator.client.start(ports=ports,
+ duration=self.config.duration,
+ force=True)
+ self.iteration = self.generator.rfc2544_helper.iteration.value
+ return ports, port_pg_id
+
+ def _create_profile(self, profile_data, rate, port_pg_id, enable_latency):
+ """Create a STL profile (list of streams) for a port"""
+ streams = []
+ for packet_name in profile_data:
+ imix = (profile_data[packet_name].
+ get('outer_l2', {}).get('framesize'))
+ imix_data = self._create_imix_data(imix)
+ self._create_vm(profile_data[packet_name])
+ _streams = self._create_streams(imix_data, rate, port_pg_id,
+ enable_latency)
+ streams.extend(_streams)
+ return trex_stl_streams.STLProfile(streams)
+
+ def _create_imix_data(self, imix,
+ weight_mode=constants.DISTRIBUTION_IN_BYTES):
+ """Generate the IMIX distribution for a STL profile
+
+ The input information is the framesize dictionary in a test case
+ traffic profile definition. E.g.:
+ downlink_0:
+ ipv4:
+ id: 2
+ outer_l2:
+ framesize:
+ 64B: 10
+ 128B: 20
+ ...
+
+ This function normalizes the sum of framesize weights to 100 and
+ returns a dictionary of frame sizes in bytes and weight in percentage.
+ E.g.:
+ imix_count = {64: 25, 128: 75}
+
+ The weight mode is described in [1]. There are two ways to describe the
+ weight of the packets:
+ - Distribution in packets: the weight defines the percentage of
+ packets sent per packet size. IXIA uses this definition.
+ - Distribution in bytes: the weight defines the percentage of bytes
+ sent per packet size.
+
+ Packet size # packets D. in packets Bytes D. in bytes
+ 40 7 58.33% 280 7%
+ 576 4 33.33% 2304 56%
+ 1500 1 8.33% 1500 37%
+
+ [1] https://en.wikipedia.org/wiki/Internet_Mix
+
+ :param imix: (dict) IMIX size and weight
+ """
+ imix_count = {}
+ if not imix:
+ return imix_count
+
+ imix_count = {size.upper().replace('B', ''): int(weight)
+ for size, weight in imix.items()}
+ imix_sum = sum(imix_count.values())
+ if imix_sum <= 0:
+ imix_count = {64: 100}
+ imix_sum = 100
+
+ weight_normalize = float(imix_sum) / 100
+ imix_dip = {size: float(weight) / weight_normalize
+ for size, weight in imix_count.items()}
+
+ if weight_mode == constants.DISTRIBUTION_IN_PACKETS:
+ return imix_dip
+
+ byte_total = sum([int(size) * weight
+ for size, weight in imix_count.items()])
+ return {size: float(int(size) * weight * 100) / byte_total
+ for size, weight in imix_count.items()}
+
+ def _create_vm(self, packet_definition):
+ """Create the STL Raw instructions"""
+ self.ether_packet = Pkt.Ether()
+ self.ip_packet = Pkt.IP()
+ self.ip6_packet = None
+ self.udp_packet = Pkt.UDP()
+ self.udp[DST_PORT] = 'UDP.dport'
+ self.udp[SRC_PORT] = 'UDP.sport'
+ self.qinq = False
+ self.vm_flow_vars = []
+ outer_l2 = packet_definition.get('outer_l2')
+ outer_l3v4 = packet_definition.get('outer_l3v4')
+ outer_l3v6 = packet_definition.get('outer_l3v6')
+ outer_l4 = packet_definition.get('outer_l4')
+ if outer_l2:
+ self._set_outer_l2_fields(outer_l2)
+ if outer_l3v4:
+ self._set_outer_l3v4_fields(outer_l3v4)
+ if outer_l3v6:
+ self._set_outer_l3v6_fields(outer_l3v6)
+ if outer_l4:
+ self._set_outer_l4_fields(outer_l4)
+ self.trex_vm = trex_stl_packet_builder_scapy.STLScVmRaw(
+ self.vm_flow_vars)
+
+ def _create_single_packet(self, size=64):
+ size -= 4
+ ether_packet = self.ether_packet
+ ip_packet = self.ip6_packet if self.ip6_packet else self.ip_packet
+ udp_packet = self.udp_packet
+ if self.qinq:
+ qinq_packet = self.qinq_packet
+ base_pkt = ether_packet / qinq_packet / ip_packet / udp_packet
else:
- stl_mode = STLTXCont(pps=self.pps)
- if self.pg_id:
- LOGGING.debug("pg_id: %s", self.pg_id)
- stl_flow_stats = STLFlowLatencyStats(pg_id=self.pg_id)
- stream = STLStream(isg=isg, packet=packet, mode=stl_mode,
- flow_stats=stl_flow_stats)
- self.pg_id += 1
+ base_pkt = ether_packet / ip_packet / udp_packet
+ pad = max(0, size - len(base_pkt)) * 'x'
+ return trex_stl_packet_builder_scapy.STLPktBuilder(
+ pkt=base_pkt / pad, vm=self.trex_vm)
+
+ def _create_streams(self, imix_data, rate, port_pg_id, enable_latency):
+ """Create a list of streams per packet size
+
+ The STL TX mode speed of the generated streams will depend on the frame
+ weight and the frame rate. Both the frame weight and the total frame
+ rate are normalized to 100. The STL TX mode speed, defined in
+ percentage, is the combitation of both percentages. E.g.:
+ frame weight = 100
+ rate = 90
+ --> STLTXmode percentage = 10 (%)
+
+ frame weight = 80
+ rate = 50
+ --> STLTXmode percentage = 40 (%)
+
+ :param imix_data: (dict) IMIX size and weight
+ :param rate: (float) normalized [0..100] total weight
+ :param pg_id: (PortPgIDMap) port / pg_id (list) map
+ """
+ streams = []
+ for size, weight in ((int(size), float(weight)) for (size, weight)
+ in imix_data.items() if float(weight) > 0):
+ packet = self._create_single_packet(size)
+ pg_id = port_pg_id.increase_pg_id()
+ stl_flow = (trex_stl_streams.STLFlowLatencyStats(pg_id=pg_id) if
+ enable_latency else None)
+ mode = trex_stl_streams.STLTXCont(percentage=weight * rate / 100)
+ streams.append(trex_stl_client.STLStream(
+ packet=packet, flow_stats=stl_flow, mode=mode))
+ return streams
+
+ def get_drop_percentage(self, samples, tol_low, tol_high,
+ correlated_traffic, resolution): # pylint: disable=unused-argument
+ """Calculate the drop percentage and run the traffic"""
+ completed = False
+ status = self.STATUS_FAIL
+ out_pkt_end = sum(port['out_packets'] for port in samples[-1].values())
+ in_pkt_end = sum(port['in_packets'] for port in samples[-1].values())
+ out_pkt_ini = sum(port['out_packets'] for port in samples[0].values())
+ in_pkt_ini = sum(port['in_packets'] for port in samples[0].values())
+ in_bytes_ini = sum(port['in_bytes'] for port in samples[0].values())
+ out_bytes_ini = sum(port['out_bytes'] for port in samples[0].values())
+ in_bytes_end = sum(port['in_bytes'] for port in samples[-1].values())
+ out_bytes_end = sum(port['out_bytes'] for port in samples[-1].values())
+ time_diff = (list(samples[-1].values())[0]['timestamp'] -
+ list(samples[0].values())[0]['timestamp']).total_seconds()
+ out_packets = out_pkt_end - out_pkt_ini
+ in_packets = in_pkt_end - in_pkt_ini
+ out_bytes = out_bytes_end - out_bytes_ini
+ in_bytes = in_bytes_end - in_bytes_ini
+ tx_rate_fps = float(out_packets) / time_diff
+ rx_rate_fps = float(in_packets) / time_diff
+ drop_percent = 100.0
+
+ # https://tools.ietf.org/html/rfc2544#section-26.3
+ if out_packets:
+ drop_percent = round(
+ (float(abs(out_packets - in_packets)) / out_packets) * 100, 5)
+
+ tol_high = max(tol_high, self.TOLERANCE_LIMIT)
+ tol_low = min(tol_low, self.TOLERANCE_LIMIT)
+ if drop_percent > tol_high:
+ self.max_rate = self.rate
+ elif drop_percent < tol_low:
+ self.min_rate = self.rate
else:
- stream = STLStream(isg=isg, packet=packet, mode=stl_mode)
- return stream
+ status = self.STATUS_SUCCESS
+ completed = True
+
+ last_rate = self.rate
+ self.rate = self._get_next_rate()
+ if abs(last_rate - self.rate) < resolution:
+ # stop test if the difference between the rate transmission
+ # in two iterations is smaller than the value of the resolution
+ completed = True
+ LOG.debug("rate=%s, next_rate=%s, resolution=%s, completed=%s",
+ last_rate, self.rate, resolution, completed)
+
+ ports = samples[-1].keys()
+ num_ports = len(ports)
+
+ output = {}
+ for port in ports:
+ output[port] = {}
+ first = samples[0][port]
+ last = samples[-1][port]
+ output[port]['InPackets'] = last['in_packets'] - first['in_packets']
+ output[port]['OutPackets'] = last['out_packets'] - first['out_packets']
+ output[port]['InBytes'] = last['in_bytes'] - first['in_bytes']
+ output[port]['OutBytes'] = last['out_bytes'] - first['out_bytes']
+ if self.config.enable_latency:
+ output[port]['LatencyAvg'] = float(sum(
+ [last['latency'][id]['average'] for id in
+ last['latency']]) * 1000) / len(last['latency'])
+ output[port]['LatencyMin'] = min(
+ [last['latency'][id]['total_min'] for id in
+ last['latency']]) * 1000
+ output[port]['LatencyMax'] = max(
+ [last['latency'][id]['total_max'] for id in
+ last['latency']]) * 1000
+
+ output['TxThroughput'] = tx_rate_fps
+ output['RxThroughput'] = rx_rate_fps
+ output['RxThroughputBps'] = round(float(in_bytes) / time_diff, 3)
+ output['TxThroughputBps'] = round(float(out_bytes) / time_diff, 3)
+ output['DropPercentage'] = drop_percent
+ output['Rate'] = last_rate
+ output['PktSize'] = self._get_framesize()
+ output['Iteration'] = self.iteration
+ output['Status'] = status
+
+ if self.config.enable_latency:
+ output['LatencyAvg'] = float(
+ sum([output[port]['LatencyAvg'] for port in ports])) / num_ports
+ output['LatencyMin'] = min([output[port]['LatencyMin'] for port in ports])
+ output['LatencyMax'] = max([output[port]['LatencyMax'] for port in ports])
+
+ return completed, output
diff --git a/yardstick/network_services/traffic_profile/sip.py b/yardstick/network_services/traffic_profile/sip.py
new file mode 100644
index 000000000..d18574090
--- /dev/null
+++ b/yardstick/network_services/traffic_profile/sip.py
@@ -0,0 +1,32 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from yardstick.network_services.traffic_profile import base
+
+
+class SipProfile(base.TrafficProfile):
+ """ Sipp Traffic profile """
+
+ def __init__(self, yaml_data):
+ super(SipProfile, self).__init__(yaml_data)
+ self.generator = None
+
+ def execute_traffic(self, traffic_generator=None):
+ if traffic_generator is not None and self.generator is None:
+ self.generator = traffic_generator
+
+ def is_ended(self):
+ if self.generator is not None:
+ return self.generator.is_ended()
+ return False
diff --git a/yardstick/network_services/traffic_profile/traffic_profile.py b/yardstick/network_services/traffic_profile/trex_traffic_profile.py
index 2f97945c0..cf538d488 100644
--- a/yardstick/network_services/traffic_profile/traffic_profile.py
+++ b/yardstick/network_services/traffic_profile/trex_traffic_profile.py
@@ -11,29 +11,24 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-""" Trex Traffic Profile definitions """
-from __future__ import absolute_import
import struct
import socket
import logging
from random import SystemRandom
-import six
import ipaddress
-from yardstick.network_services.traffic_profile.base import TrafficProfile
-from trex_stl_lib.trex_stl_client import STLStream
-from trex_stl_lib.trex_stl_streams import STLFlowLatencyStats
-from trex_stl_lib.trex_stl_streams import STLTXCont
-from trex_stl_lib.trex_stl_streams import STLProfile
+import six
from trex_stl_lib.trex_stl_packet_builder_scapy import STLVmWrFlowVar
from trex_stl_lib.trex_stl_packet_builder_scapy import STLVmFlowVarRepeatableRandom
from trex_stl_lib.trex_stl_packet_builder_scapy import STLVmFlowVar
-from trex_stl_lib.trex_stl_packet_builder_scapy import STLPktBuilder
-from trex_stl_lib.trex_stl_packet_builder_scapy import STLScVmRaw
from trex_stl_lib.trex_stl_packet_builder_scapy import STLVmFixIpv4
from trex_stl_lib import api as Pkt
+from yardstick.common import exceptions as y_exc
+from yardstick.network_services.traffic_profile import base
+
+
SRC = 'src'
DST = 'dst'
ETHERNET = 'Ethernet'
@@ -48,7 +43,7 @@ TYPE_OF_SERVICE = 'tos'
LOG = logging.getLogger(__name__)
-class TrexProfile(TrafficProfile):
+class TrexProfile(base.TrafficProfile):
""" This class handles Trex Traffic profile generation and execution """
PROTO_MAP = {
@@ -57,6 +52,7 @@ class TrexProfile(TrafficProfile):
IPv6: ('ip6_packet', Pkt.IPv6),
UDP: ('udp_packet', Pkt.UDP),
}
+ RATE_ROUND = 5
def _general_single_action_partial(self, protocol):
def f(field):
@@ -70,6 +66,7 @@ class TrexProfile(TrafficProfile):
def _ethernet_range_action_partial(self, direction, _):
def partial(min_value, max_value, count):
+ # pylint: disable=unused-argument
stl_vm_flow_var = STLVmFlowVar(name="mac_{}".format(direction),
min_value=1,
max_value=30,
@@ -77,30 +74,32 @@ class TrexProfile(TrafficProfile):
op='inc',
step=1)
self.vm_flow_vars.append(stl_vm_flow_var)
- stl_vm_wr_flow_var = STLVmWrFlowVar(fv_name='mac_{}'.format(direction),
- pkt_offset='Ether.{}'.format(direction))
+ stl_vm_wr_flow_var = STLVmWrFlowVar(
+ fv_name='mac_{}'.format(direction),
+ pkt_offset='Ether.{}'.format(direction))
self.vm_flow_vars.append(stl_vm_wr_flow_var)
return partial
def _ip_range_action_partial(self, direction, count=1):
+ # pylint: disable=unused-argument
def partial(min_value, max_value, count):
- ip1 = int(ipaddress.IPv4Address(min_value))
- ip2 = int(ipaddress.IPv4Address(max_value))
- actual_count = (ip2 - ip1)
+ _, _, actual_count = self._count_ip(min_value, max_value)
if not actual_count:
count = 1
elif actual_count < int(count):
count = actual_count
- stl_vm_flow_var = STLVmFlowVarRepeatableRandom(name="ip4_{}".format(direction),
- min_value=min_value,
- max_value=max_value,
- size=4,
- limit=int(count),
- seed=0x1235)
+ stl_vm_flow_var = STLVmFlowVarRepeatableRandom(
+ name="ip4_{}".format(direction),
+ min_value=min_value,
+ max_value=max_value,
+ size=4,
+ limit=int(count),
+ seed=0x1235)
self.vm_flow_vars.append(stl_vm_flow_var)
- stl_vm_wr_flow_var = STLVmWrFlowVar(fv_name='ip4_{}'.format(direction),
- pkt_offset='IP.{}'.format(direction))
+ stl_vm_wr_flow_var = STLVmWrFlowVar(
+ fv_name='ip4_{}'.format(direction),
+ pkt_offset='IP.{}'.format(direction))
self.vm_flow_vars.append(stl_vm_wr_flow_var)
stl_vm_fix_ipv4 = STLVmFixIpv4(offset="IP")
self.vm_flow_vars.append(stl_vm_fix_ipv4)
@@ -108,7 +107,8 @@ class TrexProfile(TrafficProfile):
def _ip6_range_action_partial(self, direction, _):
def partial(min_value, max_value, count):
- min_value, max_value = self._get_start_end_ipv6(min_value, max_value)
+ # pylint: disable=unused-argument
+ min_value, max_value, _ = self._count_ip(min_value, max_value)
stl_vm_flow_var = STLVmFlowVar(name="ip6_{}".format(direction),
min_value=min_value,
max_value=max_value,
@@ -116,14 +116,16 @@ class TrexProfile(TrafficProfile):
op='random',
step=1)
self.vm_flow_vars.append(stl_vm_flow_var)
- stl_vm_wr_flow_var = STLVmWrFlowVar(fv_name='ip6_{}'.format(direction),
- pkt_offset='IPv6.{}'.format(direction),
- offset_fixup=8)
+ stl_vm_wr_flow_var = STLVmWrFlowVar(
+ fv_name='ip6_{}'.format(direction),
+ pkt_offset='IPv6.{}'.format(direction),
+ offset_fixup=8)
self.vm_flow_vars.append(stl_vm_wr_flow_var)
return partial
- def _dscp_range_action_partial(self, *_):
+ def _dscp_range_action_partial(self, *args):
def partial(min_value, max_value, count):
+ # pylint: disable=unused-argument
stl_vm_flow_var = STLVmFlowVar(name="dscp",
min_value=min_value,
max_value=max_value,
@@ -134,8 +136,10 @@ class TrexProfile(TrafficProfile):
stl_vm_wr_flow_var = STLVmWrFlowVar(fv_name='dscp',
pkt_offset='IP.tos')
self.vm_flow_vars.append(stl_vm_wr_flow_var)
+ return partial
def _udp_range_action_partial(self, field, count=1):
+ # pylint: disable=unused-argument
def partial(min_value, max_value, count):
actual_count = int(max_value) - int(min_value)
if not actual_count:
@@ -143,15 +147,17 @@ class TrexProfile(TrafficProfile):
elif int(count) > actual_count:
count = actual_count
- stl_vm_flow_var = STLVmFlowVarRepeatableRandom(name="port_{}".format(field),
- min_value=min_value,
- max_value=max_value,
- size=2,
- limit=int(count),
- seed=0x1235)
+ stl_vm_flow_var = STLVmFlowVarRepeatableRandom(
+ name="port_{}".format(field),
+ min_value=min_value,
+ max_value=max_value,
+ size=2,
+ limit=int(count),
+ seed=0x1235)
self.vm_flow_vars.append(stl_vm_flow_var)
- stl_vm_wr_flow_var = STLVmWrFlowVar(fv_name='port_{}'.format(field),
- pkt_offset=self.udp[field])
+ stl_vm_wr_flow_var = STLVmWrFlowVar(
+ fv_name='port_{}'.format(field),
+ pkt_offset=self.udp[field])
self.vm_flow_vars.append(stl_vm_wr_flow_var)
return partial
@@ -181,6 +187,8 @@ class TrexProfile(TrafficProfile):
self.qinq = False
self.vm_flow_vars = []
self.packets = []
+ self.max_rate = 0
+ self.min_rate = 0
self._map_proto_actions = {
# the tuple is (single value function, range value function, if the values should be
@@ -332,130 +340,38 @@ class TrexProfile(TrafficProfile):
if 'dstport' in outer_l4:
self._set_proto_addr(UDP, DST_PORT, outer_l4['dstport'], outer_l4['count'])
- def generate_imix_data(self, packet_definition):
- """ generate packet size for a given traffic profile """
- imix_count = {}
- imix_data = {}
- if not packet_definition:
- return imix_count
- imix = packet_definition.get('framesize')
- if imix:
- for size in imix:
- data = imix[size]
- imix_data[int(size[:-1])] = int(data)
- imix_sum = sum(imix_data.values())
- if imix_sum > 100:
- raise SystemExit("Error in IMIX data")
- elif imix_sum < 100:
- imix_data[64] = imix_data.get(64, 0) + (100 - imix_sum)
-
- avg_size = 0.0
- for size in imix_data:
- count = int(imix_data[size])
- if count:
- avg_size += round(size * count / 100, 2)
- pps = round(self.pps * count / 100, 0)
- imix_count[size] = pps
- self.rate = round(1342177280 / avg_size, 0) * 2
- logging.debug("Imax: %s rate: %s", imix_count, self.rate)
- return imix_count
-
- def get_streams(self, profile_data):
- """ generate trex stream
- :param profile_data:
- :type profile_data:
- """
- self.streams = []
- self.pps = self.params['traffic_profile'].get('frame_rate', 100)
- for packet_name in profile_data:
- outer_l2 = profile_data[packet_name].get('outer_l2')
- imix_data = self.generate_imix_data(outer_l2)
- if not imix_data:
- imix_data = {64: self.pps}
- self.generate_vm(profile_data[packet_name])
- for size in imix_data:
- self._generate_streams(size, imix_data[size])
- self._generate_profile()
- return self.profile
-
- def generate_vm(self, packet_definition):
- """ generate trex vm with flows setup """
- self.ether_packet = Pkt.Ether()
- self.ip_packet = Pkt.IP()
- self.ip6_packet = None
- self.udp_packet = Pkt.UDP()
- self.udp[DST_PORT] = 'UDP.dport'
- self.udp[SRC_PORT] = 'UDP.sport'
- self.qinq = False
- self.vm_flow_vars = []
- outer_l2 = packet_definition.get('outer_l2', None)
- outer_l3v4 = packet_definition.get('outer_l3v4', None)
- outer_l3v6 = packet_definition.get('outer_l3v6', None)
- outer_l4 = packet_definition.get('outer_l4', None)
- if outer_l2:
- self._set_outer_l2_fields(outer_l2)
- if outer_l3v4:
- self._set_outer_l3v4_fields(outer_l3v4)
- if outer_l3v6:
- self._set_outer_l3v6_fields(outer_l3v6)
- if outer_l4:
- self._set_outer_l4_fields(outer_l4)
- self.trex_vm = STLScVmRaw(self.vm_flow_vars)
-
- def generate_packets(self):
- """ generate packets from trex TG """
- base_pkt = self.base_pkt
- size = self.fsize - 4
- pad = max(0, size - len(base_pkt)) * 'x'
- self.packets = [STLPktBuilder(pkt=base_pkt / pad,
- vm=vm) for vm in self.vms]
-
- def _create_single_packet(self, size=64):
- size = size - 4
- ether_packet = self.ether_packet
- ip_packet = self.ip6_packet if self.ip6_packet else self.ip_packet
- udp_packet = self.udp_packet
- if self.qinq:
- qinq_packet = self.qinq_packet
- base_pkt = ether_packet / qinq_packet / ip_packet / udp_packet
- else:
- base_pkt = ether_packet / ip_packet / udp_packet
- pad = max(0, size - len(base_pkt)) * 'x'
- packet = STLPktBuilder(pkt=base_pkt / pad, vm=self.trex_vm)
- return packet
-
- def _create_single_stream(self, packet_size, pps, isg=0):
- packet = self._create_single_packet(packet_size)
- if self.pg_id:
- self.pg_id += 1
- stl_flow = STLFlowLatencyStats(pg_id=self.pg_id)
- stream = STLStream(isg=isg, packet=packet, mode=STLTXCont(pps=pps),
- flow_stats=stl_flow)
- else:
- stream = STLStream(isg=isg, packet=packet, mode=STLTXCont(pps=pps))
- return stream
-
- def _generate_streams(self, packet_size, pps):
- self.streams.append(self._create_single_stream(packet_size, pps))
-
- def _generate_profile(self):
- self.profile = STLProfile(self.streams)
+ def _get_next_rate(self):
+ rate = round(float(self.max_rate + self.min_rate)/2.0, self.RATE_ROUND)
+ return rate
+
+ def _get_framesize(self):
+ framesizes = []
+ for traffickey, value in self.params.items():
+ if not traffickey.startswith((self.UPLINK, self.DOWNLINK)):
+ continue
+ for _, data in value.items():
+ framesize = data['outer_l2']['framesize']
+ for size in (s for s, w in framesize.items() if int(w) != 0):
+ framesizes.append(size)
+ if len(set(framesizes)) == 0:
+ return ''
+ elif len(set(framesizes)) == 1:
+ return framesizes[0]
+ return 'IMIX'
@classmethod
- def _get_start_end_ipv6(cls, start_ip, end_ip):
- try:
- ip1 = socket.inet_pton(socket.AF_INET6, start_ip)
- ip2 = socket.inet_pton(socket.AF_INET6, end_ip)
- hi1, lo1 = struct.unpack('!QQ', ip1)
- hi2, lo2 = struct.unpack('!QQ', ip2)
- if ((hi1 << 64) | lo1) > ((hi2 << 64) | lo2):
- raise SystemExit("IPv6: start_ip is greater then end_ip")
- max_p1 = abs(int(lo1) - int(lo2))
- base_p1 = lo1
- except Exception as ex_error:
- raise SystemExit(ex_error)
- else:
- return base_p1, max_p1 + base_p1
+ def _count_ip(cls, start_ip, end_ip):
+ start = ipaddress.ip_address(six.u(start_ip))
+ end = ipaddress.ip_address(six.u(end_ip))
+ if start.version == 4:
+ return start, end, int(end) - int(start)
+ elif start.version == 6:
+ if int(start) > int(end):
+ raise y_exc.IPv6RangeError(start_ip=str(start),
+ end_ip=str(end))
+ _, lo1 = struct.unpack('!QQ', start.packed)
+ _, lo2 = struct.unpack('!QQ', end.packed)
+ return lo1, lo2, lo2 - lo1
@classmethod
def _get_random_value(cls, min_port, max_port):
diff --git a/yardstick/network_services/traffic_profile/vpp_rfc2544.py b/yardstick/network_services/traffic_profile/vpp_rfc2544.py
new file mode 100644
index 000000000..412e4e69a
--- /dev/null
+++ b/yardstick/network_services/traffic_profile/vpp_rfc2544.py
@@ -0,0 +1,339 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import datetime
+import ipaddress
+import logging
+import random
+import string
+
+from trex_stl_lib import api as Pkt
+from trex_stl_lib import trex_stl_client
+from trex_stl_lib import trex_stl_packet_builder_scapy
+from trex_stl_lib import trex_stl_streams
+
+from yardstick.common import constants
+from yardstick.network_services.helpers.vpp_helpers.multiple_loss_ratio_search import \
+ MultipleLossRatioSearch
+from yardstick.network_services.traffic_profile.rfc2544 import RFC2544Profile, \
+ PortPgIDMap
+from yardstick.network_services.traffic_profile.trex_traffic_profile import IP, \
+ DST
+
+LOGGING = logging.getLogger(__name__)
+
+
+class VppRFC2544Profile(RFC2544Profile):
+
+ def __init__(self, traffic_generator):
+ super(VppRFC2544Profile, self).__init__(traffic_generator)
+
+ tp_cfg = traffic_generator["traffic_profile"]
+ self.number_of_intermediate_phases = tp_cfg.get("intermediate_phases",
+ 2)
+
+ self.duration = self.config.duration
+ self.precision = self.config.test_precision
+ self.lower_bound = self.config.lower_bound
+ self.upper_bound = self.config.upper_bound
+ self.step_interval = self.config.step_interval
+ self.enable_latency = self.config.enable_latency
+
+ self.pkt_size = None
+ self.flow = None
+
+ self.tolerance_low = 0
+ self.tolerance_high = 0
+
+ self.queue = None
+ self.port_pg_id = None
+
+ self.current_lower = self.lower_bound
+ self.current_upper = self.upper_bound
+
+ self.ports = []
+ self.profiles = {}
+
+ @property
+ def delta(self):
+ return self.current_upper - self.current_lower
+
+ @property
+ def mid_point(self):
+ return (self.current_lower + self.current_upper) / 2
+
+ @staticmethod
+ def calculate_frame_size(imix):
+ if not imix:
+ return 64, 100
+
+ imix_count = {size.upper().replace('B', ''): int(weight)
+ for size, weight in imix.items()}
+ imix_sum = sum(imix_count.values())
+ if imix_sum <= 0:
+ return 64, 100
+ packets_total = sum([int(size) * weight
+ for size, weight in imix_count.items()])
+ return packets_total / imix_sum, imix_sum
+
+ @staticmethod
+ def _gen_payload(length):
+ payload = ""
+ for _ in range(length):
+ payload += random.choice(string.ascii_letters)
+
+ return payload
+
+ def bounds_iterator(self, logger=None):
+ self.current_lower = self.lower_bound
+ self.current_upper = self.upper_bound
+
+ test_value = self.current_upper
+ while abs(self.delta) >= self.precision:
+ if logger:
+ logger.debug("New interval [%s, %s), precision: %d",
+ self.current_lower,
+ self.current_upper, self.step_interval)
+ logger.info("Testing with value %s", test_value)
+
+ yield test_value
+ test_value = self.mid_point
+
+ def register_generator(self, generator):
+ super(VppRFC2544Profile, self).register_generator(generator)
+ self.init_traffic_params(generator)
+
+ def init_queue(self, queue):
+ self.queue = queue
+ self.queue.cancel_join_thread()
+
+ def init_traffic_params(self, generator):
+ if generator.rfc2544_helper.latency:
+ self.enable_latency = True
+ self.tolerance_low = generator.rfc2544_helper.tolerance_low
+ self.tolerance_high = generator.rfc2544_helper.tolerance_high
+ self.max_rate = generator.scenario_helper.all_options.get('vpp_config',
+ {}).get(
+ 'max_rate', self.rate)
+
+ def create_profile(self, profile_data, current_port):
+ streams = []
+ for packet_name in profile_data:
+ imix = (profile_data[packet_name].
+ get('outer_l2', {}).get('framesize'))
+ self.pkt_size, imix_sum = self.calculate_frame_size(imix)
+ self._create_vm(profile_data[packet_name])
+ if self.max_rate > 100:
+ imix_data = self._create_imix_data(imix,
+ constants.DISTRIBUTION_IN_PACKETS)
+ else:
+ imix_data = self._create_imix_data(imix)
+ _streams = self._create_single_stream(current_port, imix_data,
+ imix_sum)
+ streams.extend(_streams)
+ return trex_stl_streams.STLProfile(streams)
+
+ def _set_outer_l3v4_fields(self, outer_l3v4):
+ """ setup outer l3v4 fields from traffic profile """
+ ip_params = {}
+ if 'proto' in outer_l3v4:
+ ip_params['proto'] = outer_l3v4['proto']
+ self._set_proto_fields(IP, **ip_params)
+
+ self.flow = int(outer_l3v4['count'])
+ src_start_ip, _ = outer_l3v4['srcip4'].split('-')
+ dst_start_ip, _ = outer_l3v4['dstip4'].split('-')
+
+ self.ip_packet = Pkt.IP(src=src_start_ip,
+ dst=dst_start_ip,
+ proto=outer_l3v4['proto'])
+ if self.flow > 1:
+ dst_start_int = int(ipaddress.ip_address(str(dst_start_ip)))
+ dst_end_ip_new = ipaddress.ip_address(
+ dst_start_int + self.flow - 1)
+ # self._set_proto_addr(IP, SRC, outer_l3v4['srcip4'], outer_l3v4['count'])
+ self._set_proto_addr(IP, DST,
+ "{start_ip}-{end_ip}".format(
+ start_ip=dst_start_ip,
+ end_ip=str(dst_end_ip_new)),
+ self.flow)
+
+ def _create_single_packet(self, size=64):
+ ether_packet = self.ether_packet
+ ip_packet = self.ip6_packet if self.ip6_packet else self.ip_packet
+ base_pkt = ether_packet / ip_packet
+ payload_len = max(0, size - len(base_pkt) - 4)
+ packet = trex_stl_packet_builder_scapy.STLPktBuilder(
+ pkt=base_pkt / self._gen_payload(payload_len),
+ vm=self.trex_vm)
+ packet_lat = trex_stl_packet_builder_scapy.STLPktBuilder(
+ pkt=base_pkt / self._gen_payload(payload_len))
+
+ return packet, packet_lat
+
+ def _create_single_stream(self, current_port, imix_data, imix_sum,
+ isg=0.0):
+ streams = []
+ for size, weight in ((int(size), float(weight)) for (size, weight)
+ in imix_data.items() if float(weight) > 0):
+ if current_port == 1:
+ isg += 10.0
+ if self.max_rate > 100:
+ mode = trex_stl_streams.STLTXCont(
+ pps=int(weight * imix_sum / 100))
+ mode_lat = mode
+ else:
+ mode = trex_stl_streams.STLTXCont(
+ percentage=weight * self.max_rate / 100)
+ mode_lat = trex_stl_streams.STLTXCont(pps=9000)
+
+ packet, packet_lat = self._create_single_packet(size)
+ streams.append(
+ trex_stl_client.STLStream(isg=isg, packet=packet, mode=mode))
+ if self.enable_latency:
+ pg_id = self.port_pg_id.increase_pg_id(current_port)
+ stl_flow = trex_stl_streams.STLFlowLatencyStats(pg_id=pg_id)
+ stream_lat = trex_stl_client.STLStream(isg=isg,
+ packet=packet_lat,
+ mode=mode_lat,
+ flow_stats=stl_flow)
+ streams.append(stream_lat)
+ return streams
+
+ def execute_traffic(self, traffic_generator=None):
+ if traffic_generator is not None and self.generator is None:
+ self.generator = traffic_generator
+
+ self.ports = []
+ self.profiles = {}
+ self.port_pg_id = PortPgIDMap()
+ for vld_id, intfs in sorted(self.generator.networks.items()):
+ profile_data = self.params.get(vld_id)
+ if not profile_data:
+ continue
+ if (vld_id.startswith(self.DOWNLINK) and
+ self.generator.rfc2544_helper.correlated_traffic):
+ continue
+ for intf in intfs:
+ current_port = int(self.generator.port_num(intf))
+ self.port_pg_id.add_port(current_port)
+ profile = self.create_profile(profile_data, current_port)
+ self.generator.client.add_streams(profile,
+ ports=[current_port])
+
+ self.ports.append(current_port)
+ self.profiles[current_port] = profile
+
+ timeout = self.generator.scenario_helper.scenario_cfg["runner"][
+ "duration"]
+ test_data = {
+ "test_duration": timeout,
+ "test_precision": self.precision,
+ "tolerated_loss": self.tolerance_high,
+ "duration": self.duration,
+ "packet_size": self.pkt_size,
+ "flow": self.flow
+ }
+
+ if self.max_rate > 100:
+ self.binary_search_with_optimized(self.generator, self.duration,
+ timeout, test_data)
+ else:
+ self.binary_search(self.generator, self.duration,
+ self.tolerance_high, test_data)
+
+ def binary_search_with_optimized(self, traffic_generator, duration,
+ timeout, test_data):
+ self.queue.cancel_join_thread()
+ algorithm = MultipleLossRatioSearch(
+ measurer=traffic_generator, latency=self.enable_latency,
+ pkt_size=self.pkt_size,
+ final_trial_duration=duration,
+ final_relative_width=self.step_interval / 100,
+ number_of_intermediate_phases=self.number_of_intermediate_phases,
+ initial_trial_duration=1,
+ timeout=timeout)
+ algorithm.init_generator(self.ports, self.port_pg_id, self.profiles,
+ test_data, self.queue)
+ return algorithm.narrow_down_ndr_and_pdr(10000, self.max_rate,
+ self.tolerance_high)
+
+ def binary_search(self, traffic_generator, duration, tolerance_value,
+ test_data):
+ theor_max_thruput = 0
+ result_samples = {}
+
+ for test_value in self.bounds_iterator(LOGGING):
+ stats = traffic_generator.send_traffic_on_tg(self.ports,
+ self.port_pg_id,
+ duration,
+ str(
+ test_value / self.max_rate / 2),
+ latency=self.enable_latency)
+ traffic_generator.client.reset(ports=self.ports)
+ traffic_generator.client.clear_stats(ports=self.ports)
+ traffic_generator.client.remove_all_streams(ports=self.ports)
+ for port, profile in self.profiles.items():
+ traffic_generator.client.add_streams(profile, ports=[port])
+
+ loss_ratio = (float(traffic_generator.loss) / float(
+ traffic_generator.sent)) * 100
+
+ samples = traffic_generator.generate_samples(stats, self.ports,
+ self.port_pg_id,
+ self.enable_latency)
+ samples.update(test_data)
+ LOGGING.info("Collect TG KPIs %s %s %s", datetime.datetime.now(),
+ test_value, samples)
+ self.queue.put(samples)
+
+ if float(loss_ratio) > float(tolerance_value):
+ LOGGING.debug("Failure... Decreasing upper bound")
+ self.current_upper = test_value
+ else:
+ LOGGING.debug("Success! Increasing lower bound")
+ self.current_lower = test_value
+
+ rate_total = float(traffic_generator.sent) / float(duration)
+ bandwidth_total = float(rate_total) * (
+ float(self.pkt_size) + 20) * 8 / (10 ** 9)
+
+ success_samples = {'Result_' + key: value for key, value in
+ samples.items()}
+ success_samples["Result_{}".format('PDR')] = {
+ "rate_total_pps": float(rate_total),
+ "bandwidth_total_Gbps": float(bandwidth_total),
+ "packet_loss_ratio": float(loss_ratio),
+ "packets_lost": int(traffic_generator.loss),
+ }
+ self.queue.put(success_samples)
+
+ # Store Actual throughput for result samples
+ for intf in traffic_generator.vnfd_helper.interfaces:
+ name = intf["name"]
+ result_samples[name] = {
+ "Result_Actual_throughput": float(
+ success_samples["Result_{}".format(name)][
+ "rx_throughput_bps"]),
+ }
+
+ for intf in traffic_generator.vnfd_helper.interfaces:
+ name = intf["name"]
+ if theor_max_thruput < samples[name]["tx_throughput_bps"]:
+ theor_max_thruput = samples[name]['tx_throughput_bps']
+ self.queue.put({'theor_max_throughput': theor_max_thruput})
+
+ result_samples["Result_theor_max_throughput"] = theor_max_thruput
+ self.queue.put(result_samples)
+ return result_samples
diff --git a/yardstick/network_services/utils.py b/yardstick/network_services/utils.py
index 7a1815eb9..9c64fecde 100644
--- a/yardstick/network_services/utils.py
+++ b/yardstick/network_services/utils.py
@@ -36,6 +36,9 @@ OPTS = [
cfg.StrOpt('trex_client_lib',
default=os.path.join(NSB_ROOT, 'trex_client/stl'),
help='trex python library path.'),
+ cfg.StrOpt('jre_path_i386',
+ default='',
+ help='path to installation of 32-bit Java 1.7+.'),
]
CONF.register_opts(OPTS, group="nsb")
@@ -121,7 +124,6 @@ def provision_tool(connection, tool_path, tool_file=None):
tool_path = get_nsb_option('tool_path')
if tool_file:
tool_path = os.path.join(tool_path, tool_file)
- bin_path = get_nsb_option("bin_path")
exit_status = connection.execute("which %s > /dev/null 2>&1" % tool_path)[0]
if exit_status == 0:
return encodeutils.safe_decode(tool_path, incoming='utf-8').rstrip()
diff --git a/yardstick/network_services/vnf_generic/vnf/acl_vnf.py b/yardstick/network_services/vnf_generic/vnf/acl_vnf.py
index 1390dd02e..69d29bf76 100644
--- a/yardstick/network_services/vnf_generic/vnf/acl_vnf.py
+++ b/yardstick/network_services/vnf_generic/vnf/acl_vnf.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,19 +12,21 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
-from __future__ import print_function
import logging
+import ipaddress
+import six
+from yardstick.common import utils
+from yardstick.common import exceptions
-from yardstick.benchmark.scenarios.networking.vnf_generic import find_relative_file
from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF, DpdkVnfSetupEnvHelper
-from yardstick.network_services.yang_model import YangModel
+from yardstick.network_services.helpers.samplevnf_helper import PortPairs
+from itertools import chain
LOG = logging.getLogger(__name__)
# ACL should work the same on all systems, we can provide the binary
ACL_PIPELINE_COMMAND = \
- 'sudo {tool_path} -p {port_mask_hex} -f {cfg_file} -s {script}'
+ 'sudo {tool_path} -p {port_mask_hex} -f {cfg_file} -s {script} {hwlb}'
ACL_COLLECT_KPI = r"""\
ACL TOTAL:[^p]+pkts_processed"?:\s(\d+),[^p]+pkts_drop"?:\s(\d+),[^p]+pkts_received"?:\s(\d+),"""
@@ -40,6 +42,196 @@ class AclApproxSetupEnvSetupEnvHelper(DpdkVnfSetupEnvHelper):
SW_DEFAULT_CORE = 5
DEFAULT_CONFIG_TPL_CFG = "acl.cfg"
VNF_TYPE = "ACL"
+ RULE_CMD = "acl"
+
+ DEFAULT_PRIORITY = 1
+ DEFAULT_PROTOCOL = 0
+ DEFAULT_PROTOCOL_MASK = 0
+ # Default actions to be applied to SampleVNF. Please note,
+ # that this list is extended with `fwd` action when default
+ # actions are generated.
+ DEFAULT_FWD_ACTIONS = ["accept", "count"]
+
+ def __init__(self, vnfd_helper, ssh_helper, scenario_helper):
+ super(AclApproxSetupEnvSetupEnvHelper, self).__init__(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self._action_id = 0
+
+ def get_ip_from_port(self, port):
+ # we can't use gateway because in OpenStack gateways interfere with floating ip routing
+ # return self.make_ip_addr(self.get_ports_gateway(port), self.get_netmask_gateway(port))
+ vintf = self.vnfd_helper.find_interface(name=port)["virtual-interface"]
+ return utils.make_ip_addr(vintf["local_ip"], vintf["netmask"])
+
+ def get_network_and_prefixlen_from_ip_of_port(self, port):
+ ip_addr = self.get_ip_from_port(port)
+ # handle cases with no gateway
+ if ip_addr:
+ return ip_addr.network.network_address.exploded, ip_addr.network.prefixlen
+ else:
+ return None, None
+
+ @property
+ def new_action_id(self):
+ """Get new action id"""
+ self._action_id += 1
+ return self._action_id
+
+ def get_default_flows(self):
+ """Get default actions/rules
+ Returns: (<actions>, <rules>)
+ <actions>:
+ { <action_id>: [ <list of actions> ]}
+ Example:
+ { 0 : [ "accept", "count", {"fwd" : "port": 0} ], ... }
+ <rules>:
+ [ {"src_ip": "x.x.x.x", "src_ip_mask", 24, ...}, ... ]
+ Note:
+ See `generate_rule_cmds()` to get list of possible map keys.
+ """
+ actions, rules = {}, []
+ _port_pairs = PortPairs(self.vnfd_helper.interfaces)
+ port_pair_list = _port_pairs.port_pair_list
+ for src_intf, dst_intf in port_pair_list:
+ # get port numbers of the interfaces
+ src_port = self.vnfd_helper.port_num(src_intf)
+ dst_port = self.vnfd_helper.port_num(dst_intf)
+ # get interface addresses and prefixes
+ src_net, src_prefix_len = self.get_network_and_prefixlen_from_ip_of_port(src_intf)
+ dst_net, dst_prefix_len = self.get_network_and_prefixlen_from_ip_of_port(dst_intf)
+ # ignore entries with empty values
+ if all((src_net, src_prefix_len, dst_net, dst_prefix_len)):
+ # flow: src_net:dst_net -> dst_port
+ action_id = self.new_action_id
+ actions[action_id] = self.DEFAULT_FWD_ACTIONS[:]
+ actions[action_id].append({"fwd": {"port": dst_port}})
+ rules.append({"priority": 1, 'cmd': self.RULE_CMD,
+ "src_ip": src_net, "src_ip_mask": src_prefix_len,
+ "dst_ip": dst_net, "dst_ip_mask": dst_prefix_len,
+ "src_port_from": 0, "src_port_to": 65535,
+ "dst_port_from": 0, "dst_port_to": 65535,
+ "protocol": 0, "protocol_mask": 0,
+ "action_id": action_id})
+ # flow: dst_net:src_net -> src_port
+ action_id = self.new_action_id
+ actions[action_id] = self.DEFAULT_FWD_ACTIONS[:]
+ actions[action_id].append({"fwd": {"port": src_port}})
+ rules.append({"cmd":self.RULE_CMD, "priority": 1,
+ "src_ip": dst_net, "src_ip_mask": dst_prefix_len,
+ "dst_ip": src_net, "dst_ip_mask": src_prefix_len,
+ "src_port_from": 0, "src_port_to": 65535,
+ "dst_port_from": 0, "dst_port_to": 65535,
+ "protocol": 0, "protocol_mask": 0,
+ "action_id": action_id})
+ return actions, rules
+
+ def get_flows(self, options):
+ """Get actions/rules based on provided options.
+ The `options` is a dict representing the ACL rules configuration
+ file. Result is the same as described in `get_default_flows()`.
+ """
+ actions, rules = {}, []
+ for ace in options['access-list-entries']:
+ # Generate list of actions
+ action_id = self.new_action_id
+ actions[action_id] = ace['actions']
+ # Destination nestwork
+ matches = ace['matches']
+ dst_ipv4_net = matches['destination-ipv4-network']
+ dst_ipv4_net_ip = ipaddress.ip_interface(six.text_type(dst_ipv4_net))
+ # Source network
+ src_ipv4_net = matches['source-ipv4-network']
+ src_ipv4_net_ip = ipaddress.ip_interface(six.text_type(src_ipv4_net))
+ # Append the rule
+ rules.append({'action_id': action_id, 'cmd': self.RULE_CMD,
+ 'dst_ip': dst_ipv4_net_ip.network.network_address.exploded,
+ 'dst_ip_mask': dst_ipv4_net_ip.network.prefixlen,
+ 'src_ip': src_ipv4_net_ip.network.network_address.exploded,
+ 'src_ip_mask': src_ipv4_net_ip.network.prefixlen,
+ 'dst_port_from': matches['destination-port-range']['lower-port'],
+ 'dst_port_to': matches['destination-port-range']['upper-port'],
+ 'src_port_from': matches['source-port-range']['lower-port'],
+ 'src_port_to': matches['source-port-range']['upper-port'],
+ 'priority': matches.get('priority', self.DEFAULT_PRIORITY),
+ 'protocol': matches.get('protocol', self.DEFAULT_PROTOCOL),
+ 'protocol_mask': matches.get('protocol_mask',
+ self.DEFAULT_PROTOCOL_MASK)
+ })
+ return actions, rules
+
+ def generate_rule_cmds(self, rules, apply_rules=False):
+ """Convert rules into list of SampleVNF CLI commands"""
+ rule_template = ("p {cmd} add {priority} {src_ip} {src_ip_mask} "
+ "{dst_ip} {dst_ip_mask} {src_port_from} {src_port_to} "
+ "{dst_port_from} {dst_port_to} {protocol} "
+ "{protocol_mask} {action_id}")
+ rule_cmd_list = []
+ for rule in rules:
+ rule_cmd_list.append(rule_template.format(**rule))
+ if apply_rules:
+ # add command to apply all rules at the end
+ rule_cmd_list.append("p {cmd} applyruleset".format(cmd=self.RULE_CMD))
+ return rule_cmd_list
+
+ def generate_action_cmds(self, actions):
+ """Convert actions into list of SampleVNF CLI commands.
+ These method doesn't validate the provided list of actions. Supported
+ list of actions are limited by SampleVNF. Thus, the user should be
+ responsible to specify correct action name(s). Yardstick should take
+ the provided action by user and apply it to SampleVNF.
+ Anyway, some of the actions require addition parameters to be
+ specified. In case of `fwd` & `nat` action used have to specify
+ the port attribute.
+ """
+ _action_template_map = {
+ "fwd": "p action add {action_id} fwd {port}",
+ "nat": "p action add {action_id} nat {port}"
+ }
+ action_cmd_list = []
+ for action_id, actions in actions.items():
+ for action in actions:
+ if isinstance(action, dict):
+ for action_name in action.keys():
+ # user provided an action name with addition options
+ # e.g.: {"fwd": {"port": 0}}
+ # format action CLI command and add it to the list
+ if action_name not in _action_template_map.keys():
+ raise exceptions.AclUnknownActionTemplate(
+ action_name=action_name)
+ template = _action_template_map[action_name]
+ try:
+ action_cmd_list.append(template.format(
+ action_id=action_id, **action[action_name]))
+ except KeyError as exp:
+ raise exceptions.AclMissingActionArguments(
+ action_name=action_name,
+ action_param=exp.args[0])
+ else:
+ # user provided an action name w/o addition options
+ # e.g.: "accept", "count"
+ action_cmd_list.append(
+ "p action add {action_id} {action}".format(
+ action_id=action_id, action=action))
+ return action_cmd_list
+
+ def get_flows_config(self, options=None):
+ """Get action/rules configuration commands (string) to be
+ applied to SampleVNF to configure ACL rules (flows).
+ """
+ action_cmd_list, rule_cmd_list = [], []
+ if options:
+ # if file name is set, read actions/rules from the file
+ actions, rules = self.get_flows(options)
+ action_cmd_list = self.generate_action_cmds(actions)
+ rule_cmd_list = self.generate_rule_cmds(rules)
+ # default actions/rules
+ dft_actions, dft_rules = self.get_default_flows()
+ dft_action_cmd_list = self.generate_action_cmds(dft_actions)
+ dft_rule_cmd_list = self.generate_rule_cmds(dft_rules, apply_rules=True)
+ # generate multi-line commands to add actions/rules
+ return '\n'.join(chain(action_cmd_list, dft_action_cmd_list,
+ rule_cmd_list, dft_rule_cmd_list))
class AclApproxVnf(SampleVNF):
@@ -59,11 +251,7 @@ class AclApproxVnf(SampleVNF):
setup_env_helper_type = AclApproxSetupEnvSetupEnvHelper
super(AclApproxVnf, self).__init__(name, vnfd, setup_env_helper_type, resource_helper_type)
- self.acl_rules = None
-
- def _start_vnf(self):
- yang_model_path = find_relative_file(self.scenario_helper.options['rules'],
- self.scenario_helper.task_path)
- yang_model = YangModel(yang_model_path)
- self.acl_rules = yang_model.get_rules()
- super(AclApproxVnf, self)._start_vnf()
+
+ def wait_for_instantiate(self):
+ """Wait for VNF to initialize"""
+ self.wait_for_initialize()
diff --git a/yardstick/network_services/vnf_generic/vnf/agnostic_vnf.py b/yardstick/network_services/vnf_generic/vnf/agnostic_vnf.py
new file mode 100644
index 000000000..d1d9667db
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/agnostic_vnf.py
@@ -0,0 +1,46 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+
+from yardstick.network_services.vnf_generic.vnf import base
+
+LOG = logging.getLogger(__name__)
+
+
+class AgnosticVnf(base.GenericVNF):
+ """ AgnosticVnf implementation. """
+ def __init__(self, name, vnfd):
+ super(AgnosticVnf, self).__init__(name, vnfd)
+
+ def instantiate(self, scenario_cfg, context_cfg):
+ pass
+
+ def wait_for_instantiate(self):
+ pass
+
+ def terminate(self):
+ pass
+
+ def scale(self, flavor=""):
+ pass
+
+ def collect_kpi(self):
+ pass
+
+ def start_collect(self):
+ pass
+
+ def stop_collect(self):
+ pass
diff --git a/yardstick/network_services/vnf_generic/vnf/base.py b/yardstick/network_services/vnf_generic/vnf/base.py
index a776b0989..8ef96b744 100644
--- a/yardstick/network_services/vnf_generic/vnf/base.py
+++ b/yardstick/network_services/vnf_generic/vnf/base.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,7 +11,6 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-""" Base class implementation for generic vnf implementation """
import abc
@@ -95,7 +94,7 @@ class VnfdHelper(dict):
for interface in self.interfaces:
virtual_intf = interface["virtual-interface"]
if virtual_intf[key] == value:
- return interface
+ return virtual_intf
raise KeyError()
def find_interface(self, **kwargs):
@@ -195,10 +194,22 @@ class GenericVNF(object):
:return: {"kpi": value, "kpi2": value}
"""
+ @abc.abstractmethod
+ def start_collect(self):
+ """Start KPI collection
+ :return: None
+ """
+
+ @abc.abstractmethod
+ def stop_collect(self):
+ """Stop KPI collection
+ :return: None
+ """
+
@six.add_metaclass(abc.ABCMeta)
class GenericTrafficGen(GenericVNF):
- """ Class providing file-like API for generic traffic generator """
+ """Class providing file-like API for generic traffic generator"""
def __init__(self, name, vnfd):
super(GenericTrafficGen, self).__init__(name, vnfd)
@@ -254,3 +265,23 @@ class GenericTrafficGen(GenericVNF):
:return: True/False
"""
pass
+
+ def start_collect(self):
+ """Start KPI collection.
+
+ Traffic measurements are always collected during injection.
+
+ Optional.
+
+ :return: True/False
+ """
+ pass
+
+ def stop_collect(self):
+ """Stop KPI collection.
+
+ Optional.
+
+ :return: True/False
+ """
+ pass
diff --git a/yardstick/network_services/vnf_generic/vnf/cgnapt_vnf.py b/yardstick/network_services/vnf_generic/vnf/cgnapt_vnf.py
index 53f73b4d7..ee4a581b1 100644
--- a/yardstick/network_services/vnf_generic/vnf/cgnapt_vnf.py
+++ b/yardstick/network_services/vnf_generic/vnf/cgnapt_vnf.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -21,10 +21,10 @@ from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF, Dpd
LOG = logging.getLogger(__name__)
# CGNAPT should work the same on all systems, we can provide the binary
-CGNAPT_PIPELINE_COMMAND = 'sudo {tool_path} -p {port_mask_hex} -f {cfg_file} -s {script}'
+CGNAPT_PIPELINE_COMMAND = 'sudo {tool_path} -p {port_mask_hex} -f {cfg_file} -s {script} {hwlb}'
WAIT_FOR_STATIC_NAPT = 4
-CGNAPT_COLLECT_KPI = """\
+CGNAPT_COLLECT_KPI = r"""\
CG-NAPT(.*\n)*\
Received\s(\d+),\
Missed\s(\d+),\
@@ -120,3 +120,7 @@ class CgnaptApproxVnf(SampleVNF):
self.vnf_execute(cmd)
time.sleep(WAIT_FOR_STATIC_NAPT)
+
+ def wait_for_instantiate(self):
+ """Wait for VNF to initialize"""
+ self.wait_for_initialize()
diff --git a/yardstick/network_services/vnf_generic/vnf/epc_vnf.py b/yardstick/network_services/vnf_generic/vnf/epc_vnf.py
new file mode 100644
index 000000000..8112963e9
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/epc_vnf.py
@@ -0,0 +1,53 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+
+from yardstick.network_services.vnf_generic.vnf import base
+
+LOG = logging.getLogger(__name__)
+
+
+class EPCVnf(base.GenericVNF):
+
+ def __init__(self, name, vnfd):
+ super(EPCVnf, self).__init__(name, vnfd)
+
+ def instantiate(self, scenario_cfg, context_cfg):
+ """Prepare VNF for operation and start the VNF process/VM
+
+ :param scenario_cfg: Scenario config
+ :param context_cfg: Context config
+ """
+ pass
+
+ def wait_for_instantiate(self):
+ """Wait for VNF to start"""
+ pass
+
+ def terminate(self):
+ """Kill all VNF processes"""
+ pass
+
+ def scale(self, flavor=""):
+ pass
+
+ def collect_kpi(self):
+ pass
+
+ def start_collect(self):
+ pass
+
+ def stop_collect(self):
+ pass
diff --git a/yardstick/network_services/vnf_generic/vnf/ipsec_vnf.py b/yardstick/network_services/vnf_generic/vnf/ipsec_vnf.py
new file mode 100644
index 000000000..1961ac1b1
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/ipsec_vnf.py
@@ -0,0 +1,498 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+import re
+import time
+from collections import Counter
+from enum import Enum
+
+from yardstick.benchmark.contexts.base import Context
+from yardstick.common.process import check_if_process_failed
+from yardstick.network_services import constants
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF
+from yardstick.network_services.vnf_generic.vnf.vpp_helpers import \
+ VppSetupEnvHelper, VppConfigGenerator
+
+LOG = logging.getLogger(__name__)
+
+
+class CryptoAlg(Enum):
+ """Encryption algorithms."""
+ AES_CBC_128 = ('aes-cbc-128', 'AES-CBC', 16)
+ AES_CBC_192 = ('aes-cbc-192', 'AES-CBC', 24)
+ AES_CBC_256 = ('aes-cbc-256', 'AES-CBC', 32)
+ AES_GCM_128 = ('aes-gcm-128', 'AES-GCM', 20)
+
+ def __init__(self, alg_name, scapy_name, key_len):
+ self.alg_name = alg_name
+ self.scapy_name = scapy_name
+ self.key_len = key_len
+
+
+class IntegAlg(Enum):
+ """Integrity algorithms."""
+ SHA1_96 = ('sha1-96', 'HMAC-SHA1-96', 20)
+ SHA_256_128 = ('sha-256-128', 'SHA2-256-128', 32)
+ SHA_384_192 = ('sha-384-192', 'SHA2-384-192', 48)
+ SHA_512_256 = ('sha-512-256', 'SHA2-512-256', 64)
+ AES_GCM_128 = ('aes-gcm-128', 'AES-GCM', 20)
+
+ def __init__(self, alg_name, scapy_name, key_len):
+ self.alg_name = alg_name
+ self.scapy_name = scapy_name
+ self.key_len = key_len
+
+
+class VipsecApproxSetupEnvHelper(VppSetupEnvHelper):
+ DEFAULT_IPSEC_VNF_CFG = {
+ 'crypto_type': 'SW_cryptodev',
+ 'rxq': 1,
+ 'worker_config': '1C/1T',
+ 'worker_threads': 1,
+ }
+
+ def __init__(self, vnfd_helper, ssh_helper, scenario_helper):
+ super(VipsecApproxSetupEnvHelper, self).__init__(
+ vnfd_helper, ssh_helper, scenario_helper)
+
+ def _get_crypto_type(self):
+ vnf_cfg = self.scenario_helper.options.get('vnf_config',
+ self.DEFAULT_IPSEC_VNF_CFG)
+ return vnf_cfg.get('crypto_type', 'SW_cryptodev')
+
+ def _get_crypto_algorithms(self):
+ vpp_cfg = self.scenario_helper.all_options.get('vpp_config', {})
+ return vpp_cfg.get('crypto_algorithms', 'aes-gcm')
+
+ def _get_n_tunnels(self):
+ vpp_cfg = self.scenario_helper.all_options.get('vpp_config', {})
+ return vpp_cfg.get('tunnels', 1)
+
+ def _get_n_connections(self):
+ try:
+ flow_cfg = self.scenario_helper.all_options['flow']
+ return flow_cfg['count']
+ except KeyError:
+ raise KeyError("Missing flow definition in scenario section" +
+ " of the task definition file")
+
+ def _get_flow_src_start_ip(self):
+ node_name = self.find_encrypted_data_interface()["node_name"]
+ try:
+ flow_cfg = self.scenario_helper.all_options['flow']
+ src_ips = flow_cfg['src_ip']
+ dst_ips = flow_cfg['dst_ip']
+ except KeyError:
+ raise KeyError("Missing flow definition in scenario section" +
+ " of the task definition file")
+
+ for src, dst in zip(src_ips, dst_ips):
+ flow_src_start_ip, _ = src.split('-')
+ flow_dst_start_ip, _ = dst.split('-')
+
+ if node_name == "vnf__0":
+ return flow_src_start_ip
+ elif node_name == "vnf__1":
+ return flow_dst_start_ip
+
+ def _get_flow_dst_start_ip(self):
+ node_name = self.find_encrypted_data_interface()["node_name"]
+ try:
+ flow_cfg = self.scenario_helper.all_options['flow']
+ src_ips = flow_cfg['src_ip']
+ dst_ips = flow_cfg['dst_ip']
+ except KeyError:
+ raise KeyError("Missing flow definition in scenario section" +
+ " of the task definition file")
+
+ for src, dst in zip(src_ips, dst_ips):
+ flow_src_start_ip, _ = src.split('-')
+ flow_dst_start_ip, _ = dst.split('-')
+
+ if node_name == "vnf__0":
+ return flow_dst_start_ip
+ elif node_name == "vnf__1":
+ return flow_src_start_ip
+
+ def build_config(self):
+ vnf_cfg = self.scenario_helper.options.get('vnf_config',
+ self.DEFAULT_IPSEC_VNF_CFG)
+ rxq = vnf_cfg.get('rxq', 1)
+ phy_cores = vnf_cfg.get('worker_threads', 1)
+ # worker_config = vnf_cfg.get('worker_config', '1C/1T').split('/')[1].lower()
+
+ vpp_cfg = self.create_startup_configuration_of_vpp()
+ self.add_worker_threads_and_rxqueues(vpp_cfg, phy_cores, rxq)
+ self.add_pci_devices(vpp_cfg)
+
+ frame_size_cfg = self.scenario_helper.all_options.get('framesize', {})
+ uplink_cfg = frame_size_cfg.get('uplink', {})
+ downlink_cfg = frame_size_cfg.get('downlink', {})
+ framesize = min(self.calculate_frame_size(uplink_cfg),
+ self.calculate_frame_size(downlink_cfg))
+ if framesize < 1522:
+ vpp_cfg.add_dpdk_no_multi_seg()
+
+ crypto_algorithms = self._get_crypto_algorithms()
+ if crypto_algorithms == 'aes-gcm':
+ self.add_dpdk_cryptodev(vpp_cfg, 'aesni_gcm', phy_cores)
+ elif crypto_algorithms == 'cbc-sha1':
+ self.add_dpdk_cryptodev(vpp_cfg, 'aesni_mb', phy_cores)
+
+ vpp_cfg.add_dpdk_dev_default_rxd(2048)
+ vpp_cfg.add_dpdk_dev_default_txd(2048)
+ self.apply_config(vpp_cfg, True)
+ self.update_vpp_interface_data()
+
+ def setup_vnf_environment(self):
+ resource = super(VipsecApproxSetupEnvHelper,
+ self).setup_vnf_environment()
+
+ self.start_vpp_service()
+ # for QAT device DH895xCC, the number of VFs is required as 32
+ if self._get_crypto_type() == 'HW_cryptodev':
+ sriov_numvfs = self.get_sriov_numvfs(
+ self.find_encrypted_data_interface()["vpci"])
+ if sriov_numvfs != 32:
+ self.crypto_device_init(
+ self.find_encrypted_data_interface()["vpci"], 32)
+
+ self._update_vnfd_helper(self.sys_cores.get_cpu_layout())
+ self.update_vpp_interface_data()
+ self.iface_update_numa()
+
+ return resource
+
+ @staticmethod
+ def calculate_frame_size(frame_cfg):
+ if not frame_cfg:
+ return 64
+
+ imix_count = {size.upper().replace('B', ''): int(weight)
+ for size, weight in frame_cfg.items()}
+ imix_sum = sum(imix_count.values())
+ if imix_sum <= 0:
+ return 64
+ packets_total = sum([int(size) * weight
+ for size, weight in imix_count.items()])
+ return packets_total / imix_sum
+
+ def check_status(self):
+ ipsec_created = False
+ cmd = "vppctl show int"
+ _, stdout, _ = self.ssh_helper.execute(cmd)
+ entries = re.split(r"\n+", stdout)
+ tmp = [re.split(r"\s\s+", entry, 5) for entry in entries]
+
+ for item in tmp:
+ if isinstance(item, list):
+ if item[0] and item[0] != 'local0':
+ if "ipsec" in item[0] and not ipsec_created:
+ ipsec_created = True
+ if len(item) > 2 and item[2] == 'down':
+ return False
+ return ipsec_created
+
+ def get_vpp_statistics(self):
+ cmd = "vppctl show int {intf}"
+ result = {}
+ for interface in self.vnfd_helper.interfaces:
+ iface_name = self.get_value_by_interface_key(
+ interface["virtual-interface"]["ifname"], "vpp_name")
+ command = cmd.format(intf=iface_name)
+ _, stdout, _ = self.ssh_helper.execute(command)
+ result.update(
+ self.parser_vpp_stats(interface["virtual-interface"]["ifname"],
+ iface_name, stdout))
+ self.ssh_helper.execute("vppctl clear interfaces")
+ return result
+
+ @staticmethod
+ def parser_vpp_stats(interface, iface_name, stats):
+ packets_in = 0
+ packets_fwd = 0
+ packets_dropped = 0
+ result = {}
+
+ entries = re.split(r"\n+", stats)
+ tmp = [re.split(r"\s\s+", entry, 5) for entry in entries]
+
+ for item in tmp:
+ if isinstance(item, list):
+ if item[0] == iface_name and len(item) >= 5:
+ if item[3] == 'rx packets':
+ packets_in = int(item[4])
+ elif item[4] == 'rx packets':
+ packets_in = int(item[5])
+ elif len(item) == 3:
+ if item[1] == 'tx packets':
+ packets_fwd = int(item[2])
+ elif item[1] == 'drops' or item[1] == 'rx-miss':
+ packets_dropped = int(item[2])
+ if packets_dropped == 0 and packets_in > 0 and packets_fwd > 0:
+ packets_dropped = abs(packets_fwd - packets_in)
+
+ result[interface] = {
+ 'packets_in': packets_in,
+ 'packets_fwd': packets_fwd,
+ 'packets_dropped': packets_dropped,
+ }
+
+ return result
+
+ def create_ipsec_tunnels(self):
+ self.initialize_ipsec()
+
+ # TODO generate the same key
+ crypto_algorithms = self._get_crypto_algorithms()
+ if crypto_algorithms == 'aes-gcm':
+ encr_alg = CryptoAlg.AES_GCM_128
+ auth_alg = IntegAlg.AES_GCM_128
+ encr_key = 'LNYZXMBQDKESNLREHJMS'
+ auth_key = 'SWGLDTYZSQKVBZZMPIEV'
+ elif crypto_algorithms == 'cbc-sha1':
+ encr_alg = CryptoAlg.AES_CBC_128
+ auth_alg = IntegAlg.SHA1_96
+ encr_key = 'IFEMSHYLCZIYFUTT'
+ auth_key = 'PEALEIPSCPTRHYJSDXLY'
+
+ self.execute_script("enable_dpdk_traces.vat", json_out=False)
+ self.execute_script("enable_vhost_user_traces.vat", json_out=False)
+ self.execute_script("enable_memif_traces.vat", json_out=False)
+
+ node_name = self.find_encrypted_data_interface()["node_name"]
+ n_tunnels = self._get_n_tunnels()
+ n_connections = self._get_n_connections()
+ flow_dst_start_ip = self._get_flow_dst_start_ip()
+ if node_name == "vnf__0":
+ self.vpp_create_ipsec_tunnels(
+ self.find_encrypted_data_interface()["local_ip"],
+ self.find_encrypted_data_interface()["peer_intf"]["local_ip"],
+ self.find_encrypted_data_interface()["ifname"],
+ n_tunnels, n_connections, encr_alg, encr_key, auth_alg,
+ auth_key, flow_dst_start_ip)
+ elif node_name == "vnf__1":
+ self.vpp_create_ipsec_tunnels(
+ self.find_encrypted_data_interface()["local_ip"],
+ self.find_encrypted_data_interface()["peer_intf"]["local_ip"],
+ self.find_encrypted_data_interface()["ifname"],
+ n_tunnels, n_connections, encr_alg, encr_key, auth_alg,
+ auth_key, flow_dst_start_ip, 20000, 10000)
+
+ def find_raw_data_interface(self):
+ try:
+ return self.vnfd_helper.find_virtual_interface(vld_id="uplink_0")
+ except KeyError:
+ return self.vnfd_helper.find_virtual_interface(vld_id="downlink_0")
+
+ def find_encrypted_data_interface(self):
+ return self.vnfd_helper.find_virtual_interface(vld_id="ciphertext")
+
+ def create_startup_configuration_of_vpp(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_unix_log()
+ vpp_config_generator.add_unix_cli_listen()
+ vpp_config_generator.add_unix_nodaemon()
+ vpp_config_generator.add_unix_coredump()
+ vpp_config_generator.add_dpdk_socketmem('1024,1024')
+ vpp_config_generator.add_dpdk_no_tx_checksum_offload()
+ vpp_config_generator.add_dpdk_log_level('debug')
+ for interface in self.vnfd_helper.interfaces:
+ vpp_config_generator.add_dpdk_uio_driver(
+ interface["virtual-interface"]["driver"])
+ vpp_config_generator.add_heapsize('4G')
+ # TODO Enable configuration depend on VPP version
+ vpp_config_generator.add_statseg_size('4G')
+ vpp_config_generator.add_plugin('disable', ['default'])
+ vpp_config_generator.add_plugin('enable', ['dpdk_plugin.so'])
+ vpp_config_generator.add_ip6_hash_buckets('2000000')
+ vpp_config_generator.add_ip6_heap_size('4G')
+ vpp_config_generator.add_ip_heap_size('4G')
+ return vpp_config_generator
+
+ def add_worker_threads_and_rxqueues(self, vpp_cfg, phy_cores,
+ rx_queues=None):
+ thr_count_int = phy_cores
+ cpu_count_int = phy_cores
+ num_mbufs_int = 32768
+
+ numa_list = []
+
+ if_list = [self.find_encrypted_data_interface()["ifname"],
+ self.find_raw_data_interface()["ifname"]]
+ for if_key in if_list:
+ try:
+ numa_list.append(
+ self.get_value_by_interface_key(if_key, 'numa_node'))
+ except KeyError:
+ pass
+ numa_cnt_mc = Counter(numa_list).most_common()
+
+ if numa_cnt_mc and numa_cnt_mc[0][0] is not None and \
+ numa_cnt_mc[0][0] != -1:
+ numa = numa_cnt_mc[0][0]
+ elif len(numa_cnt_mc) > 1 and numa_cnt_mc[0][0] == -1:
+ numa = numa_cnt_mc[1][0]
+ else:
+ numa = 0
+
+ try:
+ smt_used = self.sys_cores.is_smt_enabled()
+ except KeyError:
+ smt_used = False
+
+ cpu_main = self.sys_cores.cpu_list_per_node_str(numa, skip_cnt=1,
+ cpu_cnt=1)
+ cpu_wt = self.sys_cores.cpu_list_per_node_str(numa, skip_cnt=2,
+ cpu_cnt=cpu_count_int,
+ smt_used=smt_used)
+
+ if smt_used:
+ thr_count_int = 2 * cpu_count_int
+
+ if rx_queues is None:
+ rxq_count_int = int(thr_count_int / 2)
+ else:
+ rxq_count_int = rx_queues
+
+ if rxq_count_int == 0:
+ rxq_count_int = 1
+
+ num_mbufs_int = num_mbufs_int * rxq_count_int
+
+ vpp_cfg.add_cpu_main_core(cpu_main)
+ vpp_cfg.add_cpu_corelist_workers(cpu_wt)
+ vpp_cfg.add_dpdk_dev_default_rxq(rxq_count_int)
+ vpp_cfg.add_dpdk_num_mbufs(num_mbufs_int)
+
+ def add_pci_devices(self, vpp_cfg):
+ pci_devs = [self.find_encrypted_data_interface()["vpci"],
+ self.find_raw_data_interface()["vpci"]]
+ vpp_cfg.add_dpdk_dev(*pci_devs)
+
+ def add_dpdk_cryptodev(self, vpp_cfg, sw_pmd_type, count):
+ crypto_type = self._get_crypto_type()
+ smt_used = self.sys_cores.is_smt_enabled()
+ cryptodev = self.find_encrypted_data_interface()["vpci"]
+ socket_id = self.get_value_by_interface_key(
+ self.find_encrypted_data_interface()["ifname"], "numa_node")
+
+ if smt_used:
+ thr_count_int = count * 2
+ if crypto_type == 'HW_cryptodev':
+ vpp_cfg.add_dpdk_cryptodev(thr_count_int, cryptodev)
+ else:
+ vpp_cfg.add_dpdk_sw_cryptodev(sw_pmd_type, socket_id,
+ thr_count_int)
+ else:
+ thr_count_int = count
+ if crypto_type == 'HW_cryptodev':
+ vpp_cfg.add_dpdk_cryptodev(thr_count_int, cryptodev)
+ else:
+ vpp_cfg.add_dpdk_sw_cryptodev(sw_pmd_type, socket_id,
+ thr_count_int)
+
+ def initialize_ipsec(self):
+ flow_src_start_ip = self._get_flow_src_start_ip()
+
+ self.set_interface_state(
+ self.find_encrypted_data_interface()["ifname"], 'up')
+ self.set_interface_state(self.find_raw_data_interface()["ifname"],
+ 'up')
+ self.vpp_interfaces_ready_wait()
+ self.vpp_set_interface_mtu(
+ self.find_encrypted_data_interface()["ifname"])
+ self.vpp_set_interface_mtu(self.find_raw_data_interface()["ifname"])
+ self.vpp_interfaces_ready_wait()
+
+ self.set_ip(self.find_encrypted_data_interface()["ifname"],
+ self.find_encrypted_data_interface()["local_ip"], 24)
+ self.set_ip(self.find_raw_data_interface()["ifname"],
+ self.find_raw_data_interface()["local_ip"],
+ 24)
+
+ self.add_arp_on_dut(self.find_encrypted_data_interface()["ifname"],
+ self.find_encrypted_data_interface()["peer_intf"][
+ "local_ip"],
+ self.find_encrypted_data_interface()["peer_intf"][
+ "local_mac"])
+ self.add_arp_on_dut(self.find_raw_data_interface()["ifname"],
+ self.find_raw_data_interface()["peer_intf"][
+ "local_ip"],
+ self.find_raw_data_interface()["peer_intf"][
+ "local_mac"])
+
+ self.vpp_route_add(flow_src_start_ip, 8,
+ self.find_raw_data_interface()["peer_intf"][
+ "local_ip"],
+ self.find_raw_data_interface()["ifname"])
+
+
+class VipsecApproxVnf(SampleVNF):
+ """ This class handles vIPSEC VNF model-driver definitions """
+
+ APP_NAME = 'vIPSEC'
+ APP_WORD = 'vipsec'
+ WAIT_TIME = 20
+
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ if setup_env_helper_type is None:
+ setup_env_helper_type = VipsecApproxSetupEnvHelper
+ super(VipsecApproxVnf, self).__init__(
+ name, vnfd, setup_env_helper_type,
+ resource_helper_type)
+
+ def _run(self):
+ # we can't share ssh paramiko objects to force new connection
+ self.ssh_helper.drop_connection()
+ # kill before starting
+ self.setup_helper.kill_vnf()
+ self._build_config()
+ self.setup_helper.create_ipsec_tunnels()
+
+ def wait_for_instantiate(self):
+ time.sleep(self.WAIT_TIME)
+ while True:
+ status = self.setup_helper.check_status()
+ if not self._vnf_process.is_alive() and not status:
+ raise RuntimeError("%s VNF process died." % self.APP_NAME)
+ LOG.info("Waiting for %s VNF to start.. ", self.APP_NAME)
+ time.sleep(self.WAIT_TIME_FOR_SCRIPT)
+ status = self.setup_helper.check_status()
+ if status:
+ LOG.info("%s VNF is up and running.", self.APP_NAME)
+ self._vnf_up_post()
+ return self._vnf_process.exitcode
+
+ def terminate(self):
+ self.setup_helper.kill_vnf()
+ self._tear_down()
+ self.resource_helper.stop_collect()
+ if self._vnf_process is not None:
+ # be proper and join first before we kill
+ LOG.debug("joining before terminate %s", self._vnf_process.name)
+ self._vnf_process.join(constants.PROCESS_JOIN_TIMEOUT)
+ self._vnf_process.terminate()
+
+ def collect_kpi(self):
+ # we can't get KPIs if the VNF is down
+ check_if_process_failed(self._vnf_process, 0.01)
+ physical_node = Context.get_physical_node_from_server(
+ self.scenario_helper.nodes[self.name])
+ result = {"physical_node": physical_node}
+ result["collect_stats"] = self.setup_helper.get_vpp_statistics()
+ LOG.debug("%s collect KPIs %s", self.APP_NAME, result)
+ return result
diff --git a/yardstick/network_services/vnf_generic/vnf/prox_helpers.py b/yardstick/network_services/vnf_generic/vnf/prox_helpers.py
index 285ead3b6..3507315f2 100644
--- a/yardstick/network_services/vnf_generic/vnf/prox_helpers.py
+++ b/yardstick/network_services/vnf_generic/vnf/prox_helpers.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2018-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@ import re
import select
import socket
import time
+
from collections import OrderedDict, namedtuple
from contextlib import contextmanager
from itertools import repeat, chain
@@ -30,12 +31,12 @@ import six
from six.moves import cStringIO
from six.moves import zip, StringIO
-from yardstick.benchmark.scenarios.networking.vnf_generic import find_relative_file
from yardstick.common import utils
from yardstick.common.utils import SocketTopology, join_non_strings, try_int
from yardstick.network_services.helpers.iniparser import ConfigParser
from yardstick.network_services.vnf_generic.vnf.sample_vnf import ClientResourceHelper
from yardstick.network_services.vnf_generic.vnf.sample_vnf import DpdkVnfSetupEnvHelper
+from yardstick.network_services import constants
PROX_PORT = 8474
@@ -44,8 +45,9 @@ SECTION_CONTENTS = 1
LOG = logging.getLogger(__name__)
LOG.setLevel(logging.DEBUG)
+LOG_RESULT = logging.getLogger('yardstick')
+LOG_RESULT.setLevel(logging.DEBUG)
-TEN_GIGABIT = 1e10
BITS_PER_BYTE = 8
RETRY_SECONDS = 60
RETRY_INTERVAL = 1
@@ -124,7 +126,8 @@ class TotStatsTuple(namedtuple('TotStats', 'rx,tx,tsc,hz')):
class ProxTestDataTuple(namedtuple('ProxTestDataTuple', 'tolerated,tsc_hz,delta_rx,'
'delta_tx,delta_tsc,'
- 'latency,rx_total,tx_total,pps')):
+ 'latency,rx_total,tx_total,'
+ 'requested_pps')):
@property
def pkt_loss(self):
try:
@@ -133,11 +136,16 @@ class ProxTestDataTuple(namedtuple('ProxTestDataTuple', 'tolerated,tsc_hz,delta_
return 100.0
@property
- def mpps(self):
+ def tx_mpps(self):
# calculate the effective throughput in Mpps
return float(self.delta_tx) * self.tsc_hz / self.delta_tsc / 1e6
@property
+ def rx_mpps(self):
+ # calculate the effective throughput in Mpps
+ return float(self.delta_rx) * self.tsc_hz / self.delta_tsc / 1e6
+
+ @property
def can_be_lost(self):
return int(self.tx_total * self.tolerated / 1e2)
@@ -163,11 +171,12 @@ class ProxTestDataTuple(namedtuple('ProxTestDataTuple', 'tolerated,tsc_hz,delta_
]
samples = {
- "Throughput": self.mpps,
+ "Throughput": self.rx_mpps,
+ "RxThroughput": self.rx_mpps,
"DropPackets": pkt_loss,
"CurrentDropPackets": pkt_loss,
- "TxThroughput": self.pps / 1e6,
- "RxThroughput": self.mpps,
+ "RequestedTxThroughput": self.requested_pps / 1e6,
+ "TxThroughput": self.tx_mpps,
"PktSize": pkt_size,
}
if port_samples:
@@ -178,11 +187,12 @@ class ProxTestDataTuple(namedtuple('ProxTestDataTuple', 'tolerated,tsc_hz,delta_
def log_data(self, logger=None):
if logger is None:
- logger = LOG
+ logger = LOG_RESULT
template = "RX: %d; TX: %d; dropped: %d (tolerated: %d)"
- logger.debug(template, self.rx_total, self.tx_total, self.drop_total, self.can_be_lost)
- logger.debug("Mpps configured: %f; Mpps effective %f", self.pps / 1e6, self.mpps)
+ logger.info(template, self.rx_total, self.tx_total, self.drop_total, self.can_be_lost)
+ logger.info("Mpps configured: %f; Mpps generated %f; Mpps received %f",
+ self.requested_pps / 1e6, self.tx_mpps, self.rx_mpps)
class PacketDump(object):
@@ -289,7 +299,7 @@ class ProxSocketHelper(object):
if mode != 'pktdump':
# Regular 1-line message. Stop reading from the socket.
LOG.debug("Regular response read")
- return ret_str
+ return ret_str, True
LOG.debug("Packet dump header read: [%s]", ret_str)
@@ -310,13 +320,34 @@ class ProxSocketHelper(object):
# Return boolean instead of string to signal
# successful reception of the packet dump.
LOG.debug("Packet dump stored, returning")
- return True
+ return True, False
index = data_end + 1
- return ret_str
+ return ret_str, False
- def get_data(self, pkt_dump_only=False, timeout=1):
+ def get_string(self, pkt_dump_only=False, timeout=0.01):
+
+ def is_ready_string():
+ # recv() is blocking, so avoid calling it when no data is waiting.
+ ready = select.select([self._sock], [], [], timeout)
+ return bool(ready[0])
+
+ status = False
+ ret_str = ""
+ while status is False:
+ for status in iter(is_ready_string, False):
+ decoded_data = self._sock.recv(256).decode('utf-8')
+ ret_str, done = self._parse_socket_data(decoded_data,
+ pkt_dump_only)
+ if (done):
+ status = True
+ break
+
+ LOG.debug("Received data from socket: [%s]", ret_str)
+ return status, ret_str
+
+ def get_data(self, pkt_dump_only=False, timeout=10.0):
""" read data from the socket """
# This method behaves slightly differently depending on whether it is
@@ -353,7 +384,9 @@ class ProxSocketHelper(object):
ret_str = ""
for status in iter(is_ready, False):
decoded_data = self._sock.recv(256).decode('utf-8')
- ret_str = self._parse_socket_data(decoded_data, pkt_dump_only)
+ ret_str, done = self._parse_socket_data(decoded_data, pkt_dump_only)
+ if (done):
+ break
LOG.debug("Received data from socket: [%s]", ret_str)
return ret_str if status else ''
@@ -383,13 +416,17 @@ class ProxSocketHelper(object):
""" stop all cores on the remote instance """
LOG.debug("Stop all")
self.put_command("stop all\n")
- time.sleep(3)
def stop(self, cores, task=''):
""" stop specific cores on the remote instance """
- LOG.debug("Stopping cores %s", cores)
- self.put_command("stop {} {}\n".format(join_non_strings(',', cores), task))
- time.sleep(3)
+
+ tmpcores = []
+ for core in cores:
+ if core not in tmpcores:
+ tmpcores.append(core)
+
+ LOG.debug("Stopping cores %s", tmpcores)
+ self.put_command("stop {} {}\n".format(join_non_strings(',', tmpcores), task))
def start_all(self):
""" start all cores on the remote instance """
@@ -398,15 +435,19 @@ class ProxSocketHelper(object):
def start(self, cores):
""" start specific cores on the remote instance """
- LOG.debug("Starting cores %s", cores)
- self.put_command("start {}\n".format(join_non_strings(',', cores)))
- time.sleep(3)
+
+ tmpcores = []
+ for core in cores:
+ if core not in tmpcores:
+ tmpcores.append(core)
+
+ LOG.debug("Starting cores %s", tmpcores)
+ self.put_command("start {}\n".format(join_non_strings(',', tmpcores)))
def reset_stats(self):
""" reset the statistics on the remote instance """
LOG.debug("Reset stats")
self.put_command("reset stats\n")
- time.sleep(1)
def _run_template_over_cores(self, template, cores, *args):
for core in cores:
@@ -417,7 +458,6 @@ class ProxSocketHelper(object):
LOG.debug("Set packet size for core(s) %s to %d", cores, pkt_size)
pkt_size -= 4
self._run_template_over_cores("pkt_size {} 0 {}\n", cores, pkt_size)
- time.sleep(1)
def set_value(self, cores, offset, value, length):
""" set value on the remote instance """
@@ -467,13 +507,14 @@ class ProxSocketHelper(object):
core_data['current'] = core_data[key1] + core_data[key2]
self.set_speed(core_data['cores'], core_data['current'])
- def set_pps(self, cores, pps, pkt_size):
+ def set_pps(self, cores, pps, pkt_size,
+ line_speed=(constants.ONE_GIGABIT_IN_BITS * constants.NIC_GBPS_DEFAULT)):
""" set packets per second for specific cores on the remote instance """
msg = "Set packets per sec for core(s) %s to %g%% of line rate (packet size: %d)"
LOG.debug(msg, cores, pps, pkt_size)
# speed in percent of line-rate
- speed = float(pps) * (pkt_size + 20) / TEN_GIGABIT / BITS_PER_BYTE
+ speed = float(pps) * (pkt_size + 20) / line_speed / BITS_PER_BYTE
self._run_template_over_cores("speed {} 0 {}\n", cores, speed)
def lat_stats(self, cores, task=0):
@@ -520,6 +561,174 @@ class ProxSocketHelper(object):
tsc = int(ret[3])
return rx, tx, drop, tsc
+ def irq_core_stats(self, cores_tasks):
+ """ get IRQ stats per core"""
+
+ stat = {}
+ core = 0
+ task = 0
+ for core, task in cores_tasks:
+ self.put_command("stats task.core({}).task({}).max_irq,task.core({}).task({}).irq(0),"
+ "task.core({}).task({}).irq(1),task.core({}).task({}).irq(2),"
+ "task.core({}).task({}).irq(3),task.core({}).task({}).irq(4),"
+ "task.core({}).task({}).irq(5),task.core({}).task({}).irq(6),"
+ "task.core({}).task({}).irq(7),task.core({}).task({}).irq(8),"
+ "task.core({}).task({}).irq(9),task.core({}).task({}).irq(10),"
+ "task.core({}).task({}).irq(11),task.core({}).task({}).irq(12)"
+ "\n".format(core, task, core, task, core, task, core, task,
+ core, task, core, task, core, task, core, task,
+ core, task, core, task, core, task, core, task,
+ core, task, core, task))
+ in_data_str = self.get_data().split(",")
+ ret = [try_int(s, 0) for s in in_data_str]
+ key = "core_" + str(core)
+ try:
+ stat[key] = {"cpu": core, "max_irq": ret[0], "bucket_0" : ret[1],
+ "bucket_1" : ret[2], "bucket_2" : ret[3],
+ "bucket_3" : ret[4], "bucket_4" : ret[5],
+ "bucket_5" : ret[6], "bucket_6" : ret[7],
+ "bucket_7" : ret[8], "bucket_8" : ret[9],
+ "bucket_9" : ret[10], "bucket_10" : ret[11],
+ "bucket_11" : ret[12], "bucket_12" : ret[13],
+ "overflow": ret[10] + ret[11] + ret[12] + ret[13]}
+ except (KeyError, IndexError):
+ LOG.error("Corrupted PACKET %s", in_data_str)
+
+ return stat
+
+ def multi_port_stats(self, ports):
+ """get counter values from all ports at once"""
+
+ ports_str = ",".join(map(str, ports))
+ ports_all_data = []
+ tot_result = [0] * len(ports)
+
+ port_index = 0
+ while (len(ports) is not len(ports_all_data)):
+ self.put_command("multi port stats {}\n".format(ports_str))
+ status, ports_all_data_str = self.get_string()
+
+ if not status:
+ return False, []
+
+ ports_all_data = ports_all_data_str.split(";")
+
+ if len(ports) is len(ports_all_data):
+ for port_data_str in ports_all_data:
+
+ tmpdata = []
+ try:
+ tmpdata = [try_int(s, 0) for s in port_data_str.split(",")]
+ except (IndexError, TypeError):
+ LOG.error("Unpacking data error %s", port_data_str)
+ return False, []
+
+ if (len(tmpdata) < 6) or tmpdata[0] not in ports:
+ LOG.error("Corrupted PACKET %s - retrying", port_data_str)
+ return False, []
+ else:
+ tot_result[port_index] = tmpdata
+ port_index = port_index + 1
+ else:
+ LOG.error("Empty / too much data - retry -%s-", ports_all_data)
+ return False, []
+
+ LOG.debug("Multi port packet ..OK.. %s", tot_result)
+ return True, tot_result
+
+ @staticmethod
+ def multi_port_stats_tuple(stats, ports):
+ """
+ Create a statistics tuple from port stats.
+
+ Returns a dict with contains the port stats indexed by port name
+
+ :param stats: (List) - List of List of port stats in pps
+ :param ports (Iterator) - to List of Ports
+
+ :return: (Dict) of port stats indexed by port_name
+ """
+
+ samples = {}
+ port_names = {}
+ try:
+ port_names = {port_num: port_name for port_name, port_num in ports}
+ except (TypeError, IndexError, KeyError):
+ LOG.critical("Ports are not initialized or number of port is ZERO ... CRITICAL ERROR")
+ return {}
+
+ try:
+ for stat in stats:
+ port_num = stat[0]
+ samples[port_names[port_num]] = {
+ "in_packets": stat[1],
+ "out_packets": stat[2]}
+ except (TypeError, IndexError, KeyError):
+ LOG.error("Ports data and samples data is incompatable ....")
+ return {}
+
+ return samples
+
+ @staticmethod
+ def multi_port_stats_diff(prev_stats, new_stats, hz):
+ """
+ Create a statistics tuple from difference between prev port stats
+ and current port stats. And store results in pps.
+
+ :param prev_stats: (List) - Previous List of port statistics
+ :param new_stats: (List) - Current List of port statistics
+ :param hz (float) - speed of system in Hz
+
+ :return: sample (List) - Difference of prev_port_stats and
+ new_port_stats in pps
+ """
+
+ RX_TOTAL_INDEX = 1
+ TX_TOTAL_INDEX = 2
+ TSC_INDEX = 5
+
+ stats = []
+
+ if len(prev_stats) is not len(new_stats):
+ for port_index, stat in enumerate(new_stats):
+ stats.append([port_index, float(0), float(0), 0, 0, 0])
+ return stats
+
+ try:
+ for port_index, stat in enumerate(new_stats):
+ if stat[RX_TOTAL_INDEX] > prev_stats[port_index][RX_TOTAL_INDEX]:
+ rx_total = stat[RX_TOTAL_INDEX] - \
+ prev_stats[port_index][RX_TOTAL_INDEX]
+ else:
+ rx_total = stat[RX_TOTAL_INDEX]
+
+ if stat[TX_TOTAL_INDEX] > prev_stats[port_index][TX_TOTAL_INDEX]:
+ tx_total = stat[TX_TOTAL_INDEX] - prev_stats[port_index][TX_TOTAL_INDEX]
+ else:
+ tx_total = stat[TX_TOTAL_INDEX]
+
+ if stat[TSC_INDEX] > prev_stats[port_index][TSC_INDEX]:
+ tsc = stat[TSC_INDEX] - prev_stats[port_index][TSC_INDEX]
+ else:
+ tsc = stat[TSC_INDEX]
+
+ if tsc is 0:
+ rx_total = tx_total = float(0)
+ else:
+ if hz is 0:
+ LOG.error("HZ is ZERO ..")
+ rx_total = tx_total = float(0)
+ else:
+ rx_total = float(rx_total * hz / tsc)
+ tx_total = float(tx_total * hz / tsc)
+
+ stats.append([port_index, rx_total, tx_total, 0, 0, tsc])
+ except (TypeError, IndexError, KeyError):
+ stats = []
+ LOG.info("Current Port Stats incompatable to previous Port stats .. Discarded")
+
+ return stats
+
def port_stats(self, ports):
"""get counter values from a specific port"""
tot_result = [0] * 12
@@ -580,7 +789,6 @@ class ProxSocketHelper(object):
self.put_command("quit_force\n")
time.sleep(3)
-
_LOCAL_OBJECT = object()
@@ -662,6 +870,30 @@ class ProxDpdkVnfSetupEnvHelper(DpdkVnfSetupEnvHelper):
file_str[1] = self.additional_files[base_name]
return '"'.join(file_str)
+ def _make_core_list(self, inputStr):
+
+ my_input = inputStr.split("core ", 1)[1]
+ ok_list = set()
+
+ substrs = [x.strip() for x in my_input.split(',')]
+ for i in substrs:
+ try:
+ ok_list.add(int(i))
+
+ except ValueError:
+ try:
+ substr = [int(k.strip()) for k in i.split('-')]
+ if len(substr) > 1:
+ startstr = substr[0]
+ endstr = substr[len(substr) - 1]
+ for z in range(startstr, endstr + 1):
+ ok_list.add(z)
+ except ValueError:
+ LOG.error("Error in cores list ... resuming ")
+ return ok_list
+
+ return ok_list
+
def generate_prox_config_file(self, config_path):
sections = []
prox_config = ConfigParser(config_path, sections)
@@ -681,6 +913,18 @@ class ProxDpdkVnfSetupEnvHelper(DpdkVnfSetupEnvHelper):
if section_data[0] == "mac":
section_data[1] = "hardware"
+ # adjust for range of cores
+ new_sections = []
+ for section_name, section in sections:
+ if section_name.startswith('core') and section_name.find('$') == -1:
+ core_list = self._make_core_list(section_name)
+ for core in core_list:
+ new_sections.append(["core " + str(core), section])
+ else:
+ new_sections.append([section_name, section])
+
+ sections = new_sections
+
# search for dst mac
for _, section in sections:
for section_data in section:
@@ -699,6 +943,20 @@ class ProxDpdkVnfSetupEnvHelper(DpdkVnfSetupEnvHelper):
mac = intf["virtual-interface"]["dst_mac"]
section_data[1] = mac
+ if item_val.startswith("@@src_mac"):
+ tx_port_iter = re.finditer(r'\d+', item_val)
+ tx_port_no = int(next(tx_port_iter).group(0))
+ intf = self.vnfd_helper.find_interface_by_port(tx_port_no)
+ mac = intf["virtual-interface"]["local_mac"]
+ section_data[1] = mac.replace(":", " ", 6)
+
+ if item_key == "src mac" and item_val.startswith("@@"):
+ tx_port_iter = re.finditer(r'\d+', item_val)
+ tx_port_no = int(next(tx_port_iter).group(0))
+ intf = self.vnfd_helper.find_interface_by_port(tx_port_no)
+ mac = intf["virtual-interface"]["local_mac"]
+ section_data[1] = mac
+
# if addition file specified in prox config
if not self.additional_files:
return sections
@@ -798,7 +1056,7 @@ class ProxDpdkVnfSetupEnvHelper(DpdkVnfSetupEnvHelper):
options = self.scenario_helper.options
config_path = options['prox_config']
config_file = os.path.basename(config_path)
- config_path = find_relative_file(config_path, task_path)
+ config_path = utils.find_relative_file(config_path, task_path)
self.additional_files = {}
try:
@@ -815,7 +1073,7 @@ class ProxDpdkVnfSetupEnvHelper(DpdkVnfSetupEnvHelper):
prox_files = [prox_files]
for key_prox_file in prox_files:
base_prox_file = os.path.basename(key_prox_file)
- key_prox_path = find_relative_file(key_prox_file, task_path)
+ key_prox_path = utils.find_relative_file(key_prox_file, task_path)
remote_prox_file = self.copy_to_target(key_prox_path, base_prox_file)
self.additional_files[base_prox_file] = remote_prox_file
@@ -873,6 +1131,8 @@ class ProxResourceHelper(ClientResourceHelper):
self.step_delta = 1
self.step_time = 0.5
self._test_type = None
+ self.prev_multi_port = []
+ self.prev_hz = 0
@property
def sut(self):
@@ -901,7 +1161,7 @@ class ProxResourceHelper(ClientResourceHelper):
def _run_traffic_once(self, traffic_profile):
traffic_profile.execute_traffic(self)
- if traffic_profile.done:
+ if traffic_profile.done.is_set():
self._queue.put({'done': True})
LOG.debug("tg_prox done")
self._terminated.value = 1
@@ -911,11 +1171,40 @@ class ProxResourceHelper(ClientResourceHelper):
def collect_collectd_kpi(self):
return self._collect_resource_kpi()
+ def collect_live_stats(self):
+ ports = []
+ for _, port_num in self.vnfd_helper.ports_iter():
+ ports.append(port_num)
+
+ ok, curr_port_stats = self.sut.multi_port_stats(ports)
+ if not ok:
+ return False, {}
+
+ hz = self.sut.hz()
+ if hz is 0:
+ hz = self.prev_hz
+ else:
+ self.prev_hz = hz
+
+ new_all_port_stats = \
+ self.sut.multi_port_stats_diff(self.prev_multi_port, curr_port_stats, hz)
+
+ self.prev_multi_port = curr_port_stats
+
+ live_stats = self.sut.multi_port_stats_tuple(new_all_port_stats,
+ self.vnfd_helper.ports_iter())
+ return True, live_stats
+
def collect_kpi(self):
result = super(ProxResourceHelper, self).collect_kpi()
# add in collectd kpis manually
if result:
result['collect_stats'] = self._collect_resource_kpi()
+
+ ok, live_stats = self.collect_live_stats()
+ if ok:
+ result.update({'live_stats': live_stats})
+
return result
def terminate(self):
@@ -929,6 +1218,7 @@ class ProxResourceHelper(ClientResourceHelper):
func = getattr(self.sut, cmd, None)
if func:
return func(*args, **kwargs)
+ return None
def _connect(self, client=None):
"""Run and connect to prox on the remote system """
@@ -967,12 +1257,13 @@ class ProxResourceHelper(ClientResourceHelper):
class ProxDataHelper(object):
- def __init__(self, vnfd_helper, sut, pkt_size, value, tolerated_loss):
+ def __init__(self, vnfd_helper, sut, pkt_size, value, tolerated_loss, line_speed):
super(ProxDataHelper, self).__init__()
self.vnfd_helper = vnfd_helper
self.sut = sut
self.pkt_size = pkt_size
self.value = value
+ self.line_speed = line_speed
self.tolerated_loss = tolerated_loss
self.port_count = len(self.vnfd_helper.port_pairs.all_ports)
self.tsc_hz = None
@@ -984,32 +1275,71 @@ class ProxDataHelper(object):
@property
def totals_and_pps(self):
if self._totals_and_pps is None:
- rx_total, tx_total = self.sut.port_stats(range(self.port_count))[6:8]
- pps = self.value / 100.0 * self.line_rate_to_pps()
- self._totals_and_pps = rx_total, tx_total, pps
+ rx_total = tx_total = 0
+ ok = False
+ timeout = time.time() + constants.RETRY_TIMEOUT
+ while not ok:
+ ok, all_ports = self.sut.multi_port_stats([
+ self.vnfd_helper.port_num(port_name)
+ for port_name in self.vnfd_helper.port_pairs.all_ports])
+ if time.time() > timeout:
+ break
+ if ok:
+ for port in all_ports:
+ rx_total = rx_total + port[1]
+ tx_total = tx_total + port[2]
+ requested_pps = self.value / 100.0 * self.line_rate_to_pps()
+ self._totals_and_pps = rx_total, tx_total, requested_pps
return self._totals_and_pps
@property
def rx_total(self):
- return self.totals_and_pps[0]
+ try:
+ ret_val = self.totals_and_pps[0]
+ except (AttributeError, ValueError, TypeError, LookupError):
+ ret_val = 0
+ return ret_val
@property
def tx_total(self):
- return self.totals_and_pps[1]
+ try:
+ ret_val = self.totals_and_pps[1]
+ except (AttributeError, ValueError, TypeError, LookupError):
+ ret_val = 0
+ return ret_val
@property
- def pps(self):
- return self.totals_and_pps[2]
+ def requested_pps(self):
+ try:
+ ret_val = self.totals_and_pps[2]
+ except (AttributeError, ValueError, TypeError, LookupError):
+ ret_val = 0
+ return ret_val
@property
def samples(self):
samples = {}
+ ports = []
+ port_names = {}
for port_name, port_num in self.vnfd_helper.ports_iter():
- port_rx_total, port_tx_total = self.sut.port_stats([port_num])[6:8]
- samples[port_name] = {
- "in_packets": port_rx_total,
- "out_packets": port_tx_total,
- }
+ ports.append(port_num)
+ port_names[port_num] = port_name
+
+ ok = False
+ timeout = time.time() + constants.RETRY_TIMEOUT
+ while not ok:
+ ok, results = self.sut.multi_port_stats(ports)
+ if time.time() > timeout:
+ break
+ if ok:
+ for result in results:
+ port_num = result[0]
+ try:
+ samples[port_names[port_num]] = {
+ "in_packets": result[1],
+ "out_packets": result[2]}
+ except (IndexError, KeyError):
+ pass
return samples
def __enter__(self):
@@ -1032,7 +1362,7 @@ class ProxDataHelper(object):
self.latency,
self.rx_total,
self.tx_total,
- self.pps,
+ self.requested_pps,
)
self.result_tuple.log_data()
@@ -1051,9 +1381,7 @@ class ProxDataHelper(object):
self.tsc_hz = float(self.sut.hz())
def line_rate_to_pps(self):
- # NOTE: to fix, don't hardcode 10Gb/s
- return self.port_count * TEN_GIGABIT / BITS_PER_BYTE / (self.pkt_size + 20)
-
+ return self.port_count * self.line_speed / BITS_PER_BYTE / (self.pkt_size + 20)
class ProxProfileHelper(object):
@@ -1113,6 +1441,7 @@ class ProxProfileHelper(object):
self.sut.set_pkt_size(self.test_cores, pkt_size)
self.sut.set_speed(self.test_cores, value)
self.sut.start_all()
+ time.sleep(1)
yield
finally:
self.sut.stop_all()
@@ -1127,15 +1456,37 @@ class ProxProfileHelper(object):
for key, value in section:
if key == "mode" and value == mode:
core_tuple = CoreSocketTuple(section_name)
- core = core_tuple.find_in_topology(self.cpu_topology)
+ core = core_tuple.core_id
cores.append(core)
return cores
- def run_test(self, pkt_size, duration, value, tolerated_loss=0.0):
- data_helper = ProxDataHelper(self.vnfd_helper, self.sut, pkt_size, value, tolerated_loss)
+ def pct_10gbps(self, percent, line_speed):
+ """Get rate in percent of 10 Gbps.
+
+ Returns the rate in percent of 10 Gbps.
+ For instance 100.0 = 10 Gbps; 400.0 = 40 Gbps.
+
+ This helper method isrequired when setting interface_speed option in
+ the testcase because NSB/PROX considers 10Gbps as 100% of line rate,
+ this means that the line rate must be expressed as a percentage of
+ 10Gbps.
+
+ :param percent: (float) Percent of line rate (100.0 = line rate).
+ :param line_speed: (int) line rate speed, in bits per second.
+
+ :return: (float) Represents the rate in percent of 10Gbps.
+ """
+ return (percent * line_speed / (
+ constants.ONE_GIGABIT_IN_BITS * constants.NIC_GBPS_DEFAULT))
- with data_helper, self.traffic_context(pkt_size, value):
+ def run_test(self, pkt_size, duration, value, tolerated_loss=0.0,
+ line_speed=(constants.ONE_GIGABIT_IN_BITS * constants.NIC_GBPS_DEFAULT)):
+ data_helper = ProxDataHelper(self.vnfd_helper, self.sut, pkt_size,
+ value, tolerated_loss, line_speed)
+
+ with data_helper, self.traffic_context(pkt_size,
+ self.pct_10gbps(value, line_speed)):
with data_helper.measure_tot_stats():
time.sleep(duration)
# Getting statistics to calculate PPS at right speed....
@@ -1149,6 +1500,10 @@ class ProxProfileHelper(object):
:return: return lat_min, lat_max, lat_avg
:rtype: list
"""
+
+ if not self._latency_cores:
+ self._latency_cores = self.get_cores(self.PROX_CORE_LAT_MODE)
+
if self._latency_cores:
return self.sut.lat_stats(self._latency_cores)
return []
@@ -1198,12 +1553,12 @@ class ProxMplsProfileHelper(ProxProfileHelper):
if item_value.startswith("tag"):
core_tuple = CoreSocketTuple(section_name)
- core_tag = core_tuple.find_in_topology(self.cpu_topology)
+ core_tag = core_tuple.core_id
cores_tagged.append(core_tag)
elif item_value.startswith("udp"):
core_tuple = CoreSocketTuple(section_name)
- core_udp = core_tuple.find_in_topology(self.cpu_topology)
+ core_udp = core_tuple.core_id
cores_plain.append(core_udp)
return cores_tagged, cores_plain
@@ -1219,6 +1574,7 @@ class ProxMplsProfileHelper(ProxProfileHelper):
ratio = 1.0 * (pkt_size - 4 + 20) / (pkt_size + 20)
self.sut.set_speed(self.plain_cores, value * ratio)
self.sut.start_all()
+ time.sleep(1)
yield
finally:
self.sut.stop_all()
@@ -1276,23 +1632,23 @@ class ProxBngProfileHelper(ProxProfileHelper):
if item_value.startswith("cpe"):
core_tuple = CoreSocketTuple(section_name)
- cpe_core = core_tuple.find_in_topology(self.cpu_topology)
+ cpe_core = core_tuple.core_id
cpe_cores.append(cpe_core)
elif item_value.startswith("inet"):
core_tuple = CoreSocketTuple(section_name)
- inet_core = core_tuple.find_in_topology(self.cpu_topology)
+ inet_core = core_tuple.core_id
inet_cores.append(inet_core)
elif item_value.startswith("arp"):
core_tuple = CoreSocketTuple(section_name)
- arp_core = core_tuple.find_in_topology(self.cpu_topology)
+ arp_core = core_tuple.core_id
arp_cores.append(arp_core)
# We check the tasks/core separately
if item_value.startswith("arp_task"):
core_tuple = CoreSocketTuple(section_name)
- arp_task_core = core_tuple.find_in_topology(self.cpu_topology)
+ arp_task_core = core_tuple.core_id
arp_tasks_core.append(arp_task_core)
return cpe_cores, inet_cores, arp_cores, arp_tasks_core
@@ -1385,10 +1741,13 @@ class ProxBngProfileHelper(ProxProfileHelper):
time.sleep(3)
self.sut.stop(self.all_rx_cores)
- def run_test(self, pkt_size, duration, value, tolerated_loss=0.0):
- data_helper = ProxDataHelper(self.vnfd_helper, self.sut, pkt_size, value, tolerated_loss)
+ def run_test(self, pkt_size, duration, value, tolerated_loss=0.0,
+ line_speed=(constants.ONE_GIGABIT_IN_BITS * constants.NIC_GBPS_DEFAULT)):
+ data_helper = ProxDataHelper(self.vnfd_helper, self.sut, pkt_size,
+ value, tolerated_loss, line_speed)
- with data_helper, self.traffic_context(pkt_size, value):
+ with data_helper, self.traffic_context(pkt_size,
+ self.pct_10gbps(value, line_speed)):
with data_helper.measure_tot_stats():
time.sleep(duration)
# Getting statistics to calculate PPS at right speed....
@@ -1455,12 +1814,12 @@ class ProxVpeProfileHelper(ProxProfileHelper):
if item_value.startswith("cpe"):
core_tuple = CoreSocketTuple(section_name)
- core_tag = core_tuple.find_in_topology(self.cpu_topology)
+ core_tag = core_tuple.core_id
cpe_cores.append(core_tag)
elif item_value.startswith("inet"):
core_tuple = CoreSocketTuple(section_name)
- inet_core = core_tuple.find_in_topology(self.cpu_topology)
+ inet_core = core_tuple.core_id
inet_cores.append(inet_core)
return cpe_cores, inet_cores
@@ -1572,10 +1931,13 @@ class ProxVpeProfileHelper(ProxProfileHelper):
time.sleep(3)
self.sut.stop(self.all_rx_cores)
- def run_test(self, pkt_size, duration, value, tolerated_loss=0.0):
- data_helper = ProxDataHelper(self.vnfd_helper, self.sut, pkt_size, value, tolerated_loss)
+ def run_test(self, pkt_size, duration, value, tolerated_loss=0.0,
+ line_speed=(constants.ONE_GIGABIT_IN_BITS * constants.NIC_GBPS_DEFAULT)):
+ data_helper = ProxDataHelper(self.vnfd_helper, self.sut, pkt_size,
+ value, tolerated_loss, line_speed)
- with data_helper, self.traffic_context(pkt_size, value):
+ with data_helper, self.traffic_context(pkt_size,
+ self.pct_10gbps(value, line_speed)):
with data_helper.measure_tot_stats():
time.sleep(duration)
# Getting statistics to calculate PPS at right speed....
@@ -1639,7 +2001,7 @@ class ProxlwAFTRProfileHelper(ProxProfileHelper):
continue
core_tuple = CoreSocketTuple(section_name)
- core_tag = core_tuple.find_in_topology(self.cpu_topology)
+ core_tag = core_tuple.core_id
for item_value in (v for k, v in section if k == 'name'):
if item_value.startswith('tun'):
tun_cores.append(core_tag)
@@ -1761,10 +2123,13 @@ class ProxlwAFTRProfileHelper(ProxProfileHelper):
time.sleep(3)
self.sut.stop(self.all_rx_cores)
- def run_test(self, pkt_size, duration, value, tolerated_loss=0.0):
- data_helper = ProxDataHelper(self.vnfd_helper, self.sut, pkt_size, value, tolerated_loss)
+ def run_test(self, pkt_size, duration, value, tolerated_loss=0.0,
+ line_speed=(constants.ONE_GIGABIT_IN_BITS * constants.NIC_GBPS_DEFAULT)):
+ data_helper = ProxDataHelper(self.vnfd_helper, self.sut, pkt_size,
+ value, tolerated_loss, line_speed)
- with data_helper, self.traffic_context(pkt_size, value):
+ with data_helper, self.traffic_context(pkt_size,
+ self.pct_10gbps(value, line_speed)):
with data_helper.measure_tot_stats():
time.sleep(duration)
# Getting statistics to calculate PPS at right speed....
@@ -1772,3 +2137,15 @@ class ProxlwAFTRProfileHelper(ProxProfileHelper):
data_helper.latency = self.get_latency()
return data_helper.result_tuple, data_helper.samples
+
+
+class ProxIrqProfileHelper(ProxProfileHelper):
+
+ __prox_profile_type__ = "IRQ Query"
+
+ def __init__(self, resource_helper):
+ super(ProxIrqProfileHelper, self).__init__(resource_helper)
+ self._cores_tuple = None
+ self._ports_tuple = None
+ self.step_delta = 5
+ self.step_time = 0.5
diff --git a/yardstick/network_services/vnf_generic/vnf/prox_irq.py b/yardstick/network_services/vnf_generic/vnf/prox_irq.py
new file mode 100644
index 000000000..614066e46
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/prox_irq.py
@@ -0,0 +1,200 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import errno
+import logging
+import copy
+import time
+
+from yardstick.common.process import check_if_process_failed
+from yardstick.network_services.utils import get_nsb_option
+from yardstick.network_services.vnf_generic.vnf.prox_vnf import ProxApproxVnf
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNFTrafficGen
+from yardstick.benchmark.contexts.base import Context
+from yardstick.network_services.vnf_generic.vnf.prox_helpers import CoreSocketTuple
+LOG = logging.getLogger(__name__)
+
+
+class ProxIrq(SampleVNFTrafficGen):
+
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ vnfd_cpy = copy.deepcopy(vnfd)
+ super(ProxIrq, self).__init__(name, vnfd_cpy)
+
+ self._vnf_wrapper = ProxApproxVnf(
+ name, vnfd, setup_env_helper_type, resource_helper_type)
+ self.bin_path = get_nsb_option('bin_path', '')
+ self.name = self._vnf_wrapper.name
+ self.ssh_helper = self._vnf_wrapper.ssh_helper
+ self.setup_helper = self._vnf_wrapper.setup_helper
+ self.resource_helper = self._vnf_wrapper.resource_helper
+ self.scenario_helper = self._vnf_wrapper.scenario_helper
+ self.irq_cores = None
+
+ def terminate(self):
+ self._vnf_wrapper.terminate()
+ super(ProxIrq, self).terminate()
+
+ def instantiate(self, scenario_cfg, context_cfg):
+ self._vnf_wrapper.instantiate(scenario_cfg, context_cfg)
+ self._tg_process = self._vnf_wrapper._vnf_process
+
+ def wait_for_instantiate(self):
+ self._vnf_wrapper.wait_for_instantiate()
+
+ def get_irq_cores(self):
+ cores = []
+ mode = "irq"
+
+ for section_name, section in self.setup_helper.prox_config_data:
+ if not section_name.startswith("core"):
+ continue
+ irq_mode = task_present = False
+ task_present_task = 0
+ for key, value in section:
+ if key == "mode" and value == mode:
+ irq_mode = True
+ if key == "task":
+ task_present = True
+ task_present_task = int(value)
+
+ if irq_mode:
+ if not task_present:
+ task_present_task = 0
+ core_tuple = CoreSocketTuple(section_name)
+ core = core_tuple.core_id
+ cores.append((core, task_present_task))
+
+ return cores
+
+class ProxIrqVNF(ProxIrq, SampleVNFTrafficGen):
+
+ APP_NAME = 'ProxIrqVNF'
+
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ ProxIrq.__init__(self, name, vnfd, setup_env_helper_type,
+ resource_helper_type)
+
+ self.start_test_time = None
+ self.end_test_time = None
+
+ def vnf_execute(self, cmd, *args, **kwargs):
+ ignore_errors = kwargs.pop("_ignore_errors", False)
+ try:
+ return self.resource_helper.execute(cmd, *args, **kwargs)
+ except OSError as e:
+ if e.errno in {errno.EPIPE, errno.ESHUTDOWN, errno.ECONNRESET}:
+ if ignore_errors:
+ LOG.debug("ignoring vnf_execute exception %s for command %s", e, cmd)
+ else:
+ raise
+ else:
+ raise
+
+ def collect_kpi(self):
+ # check if the tg processes have exited
+ physical_node = Context.get_physical_node_from_server(
+ self.scenario_helper.nodes[self.name])
+
+ result = {"physical_node": physical_node}
+ for proc in (self._tg_process, self._traffic_process):
+ check_if_process_failed(proc)
+
+ if self.resource_helper is None:
+ return result
+
+ if self.irq_cores is None:
+ self.setup_helper.build_config_file()
+ self.irq_cores = self.get_irq_cores()
+
+ data = self.vnf_execute('irq_core_stats', self.irq_cores)
+ new_data = copy.deepcopy(data)
+
+ self.end_test_time = time.time()
+ self.vnf_execute('reset_stats')
+
+ if self.start_test_time is None:
+ new_data = {}
+ else:
+ test_time = self.end_test_time - self.start_test_time
+ for index, item in data.items():
+ for counter, value in item.items():
+ if counter.startswith("bucket_")or \
+ counter.startswith("overflow"):
+ if value is 0:
+ del new_data[index][counter]
+ else:
+ new_data[index][counter] = float(value) / test_time
+
+ self.start_test_time = time.time()
+
+ result["collect_stats"] = new_data
+ LOG.debug("%s collect KPIs %s", self.APP_NAME, result)
+
+ return result
+
+class ProxIrqGen(ProxIrq, SampleVNFTrafficGen):
+
+ APP_NAME = 'ProxIrqGen'
+
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ ProxIrq.__init__(self, name, vnfd, setup_env_helper_type,
+ resource_helper_type)
+ self.start_test_time = None
+ self.end_test_time = None
+
+ def collect_kpi(self):
+ # check if the tg processes have exited
+ physical_node = Context.get_physical_node_from_server(
+ self.scenario_helper.nodes[self.name])
+
+ result = {"physical_node": physical_node}
+ for proc in (self._tg_process, self._traffic_process):
+ check_if_process_failed(proc)
+
+ if self.resource_helper is None:
+ return result
+
+ if self.irq_cores is None:
+ self.setup_helper.build_config_file()
+ self.irq_cores = self.get_irq_cores()
+
+ data = self.resource_helper.sut.irq_core_stats(self.irq_cores)
+ new_data = copy.deepcopy(data)
+
+ self.end_test_time = time.time()
+ self.resource_helper.sut.reset_stats()
+
+ if self.start_test_time is None:
+ new_data = {}
+ else:
+ test_time = self.end_test_time - self.start_test_time
+ for index, item in data.items():
+ for counter, value in item.items():
+ if counter.startswith("bucket_") or \
+ counter.startswith("overflow"):
+ if value is 0:
+ del new_data[index][counter]
+ else:
+ new_data[index][counter] = float(value) / test_time
+
+ self.start_test_time = time.time()
+
+ result["collect_stats"] = new_data
+ LOG.debug("%s collect KPIs %s", self.APP_NAME, result)
+
+ return result
diff --git a/yardstick/network_services/vnf_generic/vnf/prox_vnf.py b/yardstick/network_services/vnf_generic/vnf/prox_vnf.py
index b7d295eee..c9abc757e 100644
--- a/yardstick/network_services/vnf_generic/vnf/prox_vnf.py
+++ b/yardstick/network_services/vnf_generic/vnf/prox_vnf.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2018-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,12 +14,15 @@
import errno
import logging
-
+import datetime
+import time
from yardstick.common.process import check_if_process_failed
from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxDpdkVnfSetupEnvHelper
from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxResourceHelper
-from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF, PROCESS_JOIN_TIMEOUT
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF
+from yardstick.network_services import constants
+from yardstick.benchmark.contexts import base as context_base
LOG = logging.getLogger(__name__)
@@ -39,6 +42,10 @@ class ProxApproxVnf(SampleVNF):
if resource_helper_type is None:
resource_helper_type = ProxResourceHelper
+ self.prev_packets_in = 0
+ self.prev_packets_sent = 0
+ self.prev_tsc = 0
+ self.tsc_hz = 0
super(ProxApproxVnf, self).__init__(name, vnfd, setup_env_helper_type,
resource_helper_type)
@@ -62,41 +69,90 @@ class ProxApproxVnf(SampleVNF):
def collect_kpi(self):
# we can't get KPIs if the VNF is down
- check_if_process_failed(self._vnf_process)
+ check_if_process_failed(self._vnf_process, 0.01)
+
+ physical_node = context_base.Context.get_physical_node_from_server(
+ self.scenario_helper.nodes[self.name])
+
+ result = {"physical_node": physical_node}
if self.resource_helper is None:
- result = {
+ result.update({
"packets_in": 0,
"packets_dropped": 0,
"packets_fwd": 0,
+ "curr_packets_in": 0,
+ "curr_packets_fwd": 0,
"collect_stats": {"core": {}},
- }
+ })
return result
+ if (self.tsc_hz == 0):
+ self.tsc_hz = float(self.resource_helper.sut.hz())
+ LOG.debug("TSC = %f", self.tsc_hz)
+ if (self.tsc_hz == 0):
+ raise RuntimeError("Unable to retrieve TSC")
+
# use all_ports so we only use ports matched in topology
port_count = len(self.vnfd_helper.port_pairs.all_ports)
if port_count not in {1, 2, 4}:
raise RuntimeError("Failed ..Invalid no of ports .. "
"1, 2 or 4 ports only supported at this time")
- port_stats = self.vnf_execute('port_stats', range(port_count))
- try:
- rx_total = port_stats[6]
- tx_total = port_stats[7]
- except IndexError:
- LOG.error("port_stats parse fail %s", port_stats)
- # return empty dict so we don't mess up existing KPIs
+ tmpPorts = [self.vnfd_helper.port_num(port_name)
+ for port_name in self.vnfd_helper.port_pairs.all_ports]
+ ok = False
+ timeout = time.time() + constants.RETRY_TIMEOUT
+ while not ok:
+ ok, all_port_stats = self.vnf_execute('multi_port_stats', tmpPorts)
+ if time.time() > timeout:
+ break
+
+ if ok:
+ rx_total = tx_total = tsc = 0
+ try:
+ for single_port_stats in all_port_stats:
+ rx_total = rx_total + single_port_stats[1]
+ tx_total = tx_total + single_port_stats[2]
+ tsc = tsc + single_port_stats[5]
+ except (TypeError, IndexError):
+ LOG.error("Invalid data ...")
+ return {}
+ else:
return {}
- result = {
+ tsc = tsc / port_count
+
+ result.update({
"packets_in": rx_total,
"packets_dropped": max((tx_total - rx_total), 0),
"packets_fwd": tx_total,
# we share ProxResourceHelper with TG, but we want to collect
# collectd KPIs here and not TG KPIs, so use a different method name
"collect_stats": self.resource_helper.collect_collectd_kpi(),
- }
- LOG.debug("%s collect KPIs %s", self.APP_NAME, result)
+ })
+ try:
+ curr_packets_in = int(((rx_total - self.prev_packets_in) * self.tsc_hz)
+ / (tsc - self.prev_tsc))
+ except ZeroDivisionError:
+ LOG.error("Error.... Divide by Zero")
+ curr_packets_in = 0
+
+ try:
+ curr_packets_fwd = int(((tx_total - self.prev_packets_sent) * self.tsc_hz)
+ / (tsc - self.prev_tsc))
+ except ZeroDivisionError:
+ LOG.error("Error.... Divide by Zero")
+ curr_packets_fwd = 0
+
+ result["curr_packets_in"] = curr_packets_in
+ result["curr_packets_fwd"] = curr_packets_fwd
+
+ self.prev_packets_in = rx_total
+ self.prev_packets_sent = tx_total
+ self.prev_tsc = tsc
+
+ LOG.debug("%s collect KPIs %s %s", self.APP_NAME, datetime.datetime.now(), result)
return result
def _tear_down(self):
@@ -119,5 +175,5 @@ class ProxApproxVnf(SampleVNF):
self._tear_down()
if self._vnf_process is not None:
LOG.debug("joining before terminate %s", self._vnf_process.name)
- self._vnf_process.join(PROCESS_JOIN_TIMEOUT)
+ self._vnf_process.join(constants.PROCESS_JOIN_TIMEOUT)
self._vnf_process.terminate()
diff --git a/yardstick/network_services/vnf_generic/vnf/router_vnf.py b/yardstick/network_services/vnf_generic/vnf/router_vnf.py
index aea27ffa6..f1486bdb4 100644
--- a/yardstick/network_services/vnf_generic/vnf/router_vnf.py
+++ b/yardstick/network_services/vnf_generic/vnf/router_vnf.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -47,7 +47,6 @@ class RouterVNF(SampleVNF):
def instantiate(self, scenario_cfg, context_cfg):
self.scenario_helper.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.nfvi_context = Context.get_context_from_server(self.scenario_helper.nodes[self.name])
self.configure_routes(self.name, scenario_cfg, context_cfg)
def wait_for_instantiate(self):
@@ -107,8 +106,11 @@ class RouterVNF(SampleVNF):
stdout = self.ssh_helper.execute(ip_link_stats)[1]
link_stats = self.get_stats(stdout)
# get RX/TX from link_stats and assign to results
+ physical_node = Context.get_physical_node_from_server(
+ self.scenario_helper.nodes[self.name])
result = {
+ "physical_node": physical_node,
"packets_in": 0,
"packets_dropped": 0,
"packets_fwd": 0,
diff --git a/yardstick/network_services/vnf_generic/vnf/sample_vnf.py b/yardstick/network_services/vnf_generic/vnf/sample_vnf.py
index 5eeb6c889..a369a3ae6 100644
--- a/yardstick/network_services/vnf_generic/vnf/sample_vnf.py
+++ b/yardstick/network_services/vnf_generic/vnf/sample_vnf.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,91 +11,43 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-""" Base class implementation for generic vnf implementation """
-from __future__ import absolute_import
-
-import posixpath
-import time
import logging
+import decimal
+from multiprocessing import Queue, Value, Process, JoinableQueue
import os
+import posixpath
import re
import subprocess
-from collections import Mapping
-from multiprocessing import Queue, Value, Process
+import time
-from six.moves import cStringIO
+from trex_stl_lib.trex_stl_client import LoggerApi
+from trex_stl_lib.trex_stl_client import STLClient
+from trex_stl_lib.trex_stl_exceptions import STLError
from yardstick.benchmark.contexts.base import Context
-from yardstick.benchmark.scenarios.networking.vnf_generic import find_relative_file
from yardstick.common import exceptions as y_exceptions
from yardstick.common.process import check_if_process_failed
-from yardstick.network_services.helpers.samplevnf_helper import PortPairs
+from yardstick.common import utils
+from yardstick.common import yaml_loader
+from yardstick.network_services import constants
+from yardstick.network_services.helpers.dpdkbindnic_helper import DpdkBindHelper, DpdkNode
from yardstick.network_services.helpers.samplevnf_helper import MultiPortConfig
-from yardstick.network_services.helpers.dpdkbindnic_helper import DpdkBindHelper
from yardstick.network_services.nfvi.resource import ResourceProfile
+from yardstick.network_services.utils import get_nsb_option
+from yardstick.network_services.vnf_generic.vnf.base import GenericTrafficGen
from yardstick.network_services.vnf_generic.vnf.base import GenericVNF
from yardstick.network_services.vnf_generic.vnf.base import QueueFileWrapper
-from yardstick.network_services.vnf_generic.vnf.base import GenericTrafficGen
-from yardstick.network_services.utils import get_nsb_option
-
-from trex_stl_lib.trex_stl_client import STLClient
-from trex_stl_lib.trex_stl_client import LoggerApi
-from trex_stl_lib.trex_stl_exceptions import STLError
-
-from yardstick.ssh import AutoConnectSSH
-
-DPDK_VERSION = "dpdk-16.07"
+from yardstick.network_services.vnf_generic.vnf.vnf_ssh_helper import VnfSshHelper
+from yardstick.benchmark.contexts.node import NodeContext
LOG = logging.getLogger(__name__)
-REMOTE_TMP = "/tmp"
-DEFAULT_VNF_TIMEOUT = 3600
-PROCESS_JOIN_TIMEOUT = 3
-
-
-class VnfSshHelper(AutoConnectSSH):
-
- def __init__(self, node, bin_path, wait=None):
- self.node = node
- kwargs = self.args_from_node(self.node)
- if wait:
- kwargs.setdefault('wait', wait)
-
- super(VnfSshHelper, self).__init__(**kwargs)
- self.bin_path = bin_path
-
- @staticmethod
- def get_class():
- # must return static class name, anything else refers to the calling class
- # i.e. the subclass, not the superclass
- return VnfSshHelper
-
- def copy(self):
- # this copy constructor is different from SSH classes, since it uses node
- return self.get_class()(self.node, self.bin_path)
-
- def upload_config_file(self, prefix, content):
- cfg_file = os.path.join(REMOTE_TMP, prefix)
- LOG.debug(content)
- file_obj = cStringIO(content)
- self.put_file_obj(file_obj, cfg_file)
- return cfg_file
-
- def join_bin_path(self, *args):
- return os.path.join(self.bin_path, *args)
-
- def provision_tool(self, tool_path=None, tool_file=None):
- if tool_path is None:
- tool_path = self.bin_path
- return super(VnfSshHelper, self).provision_tool(tool_path, tool_file)
-
-
class SetupEnvHelper(object):
- CFG_CONFIG = os.path.join(REMOTE_TMP, "sample_config")
- CFG_SCRIPT = os.path.join(REMOTE_TMP, "sample_script")
+ CFG_CONFIG = os.path.join(constants.REMOTE_TMP, "sample_config")
+ CFG_SCRIPT = os.path.join(constants.REMOTE_TMP, "sample_script")
DEFAULT_CONFIG_TPL_CFG = "sample.cfg"
PIPELINE_COMMAND = ''
VNF_TYPE = "SAMPLE"
@@ -105,6 +57,7 @@ class SetupEnvHelper(object):
self.vnfd_helper = vnfd_helper
self.ssh_helper = ssh_helper
self.scenario_helper = scenario_helper
+ self.collectd_options = {}
def build_config(self):
raise NotImplementedError
@@ -123,6 +76,7 @@ class DpdkVnfSetupEnvHelper(SetupEnvHelper):
APP_NAME = 'DpdkVnf'
FIND_NET_CMD = "find /sys/class/net -lname '*{}*' -printf '%f'"
+ NR_HUGEPAGES_PATH = '/proc/sys/vm/nr_hugepages'
@staticmethod
def _update_packet_type(ip_pipeline_cfg, traffic_options):
@@ -158,25 +112,11 @@ class DpdkVnfSetupEnvHelper(SetupEnvHelper):
self.used_drivers = None
self.dpdk_bind_helper = DpdkBindHelper(ssh_helper)
- def _setup_hugepages(self):
- cmd = "awk '/Hugepagesize/ { print $2$3 }' < /proc/meminfo"
- hugepages = self.ssh_helper.execute(cmd)[1].rstrip()
-
- memory_path = \
- '/sys/kernel/mm/hugepages/hugepages-%s/nr_hugepages' % hugepages
- self.ssh_helper.execute("awk -F: '{ print $1 }' < %s" % memory_path)
-
- if hugepages == "2048kB":
- pages = 8192
- else:
- pages = 16
-
- self.ssh_helper.execute("echo %s | sudo tee %s" % (pages, memory_path))
-
def build_config(self):
vnf_cfg = self.scenario_helper.vnf_cfg
task_path = self.scenario_helper.task_path
+ config_file = vnf_cfg.get('file')
lb_count = vnf_cfg.get('lb_count', 3)
lb_config = vnf_cfg.get('lb_config', 'SW')
worker_config = vnf_cfg.get('worker_config', '1C/1T')
@@ -189,7 +129,15 @@ class DpdkVnfSetupEnvHelper(SetupEnvHelper):
'vnf_type': self.VNF_TYPE,
}
- config_tpl_cfg = find_relative_file(self.DEFAULT_CONFIG_TPL_CFG, task_path)
+ # read actions/rules from file
+ acl_options = None
+ acl_file_name = self.scenario_helper.options.get('rules')
+ if acl_file_name:
+ with utils.open_relative_file(acl_file_name, task_path) as infile:
+ acl_options = yaml_loader.yaml_load(infile)
+
+ config_tpl_cfg = utils.find_relative_file(self.DEFAULT_CONFIG_TPL_CFG,
+ task_path)
config_basename = posixpath.basename(self.CFG_CONFIG)
script_basename = posixpath.basename(self.CFG_SCRIPT)
multiport = MultiPortConfig(self.scenario_helper.topology,
@@ -204,21 +152,34 @@ class DpdkVnfSetupEnvHelper(SetupEnvHelper):
self.socket)
multiport.generate_config()
- with open(self.CFG_CONFIG) as handle:
- new_config = handle.read()
-
- new_config = self._update_traffic_type(new_config, traffic_options)
- new_config = self._update_packet_type(new_config, traffic_options)
-
+ if config_file:
+ with utils.open_relative_file(config_file, task_path) as infile:
+ new_config = ['[EAL]']
+ vpci = []
+ for port in self.vnfd_helper.port_pairs.all_ports:
+ interface = self.vnfd_helper.find_interface(name=port)
+ vpci.append(interface['virtual-interface']["vpci"])
+ new_config.extend('w = {0}'.format(item) for item in vpci)
+ new_config = '\n'.join(new_config) + '\n' + infile.read()
+ else:
+ with open(self.CFG_CONFIG) as handle:
+ new_config = handle.read()
+ new_config = self._update_traffic_type(new_config, traffic_options)
+ new_config = self._update_packet_type(new_config, traffic_options)
self.ssh_helper.upload_config_file(config_basename, new_config)
self.ssh_helper.upload_config_file(script_basename,
- multiport.generate_script(self.vnfd_helper))
+ multiport.generate_script(self.vnfd_helper,
+ self.get_flows_config(acl_options)))
LOG.info("Provision and start the %s", self.APP_NAME)
self._build_pipeline_kwargs()
return self.PIPELINE_COMMAND.format(**self.pipeline_kwargs)
- def _build_pipeline_kwargs(self):
+ def get_flows_config(self, options=None): # pylint: disable=unused-argument
+ """No actions/rules (flows) by default"""
+ return None
+
+ def _build_pipeline_kwargs(self, cfg_file=None, script=None):
tool_path = self.ssh_helper.provision_tool(tool_file=self.APP_NAME)
# count the number of actual ports in the list of pairs
# remove duplicate ports
@@ -229,16 +190,24 @@ class DpdkVnfSetupEnvHelper(SetupEnvHelper):
port_nums = self.vnfd_helper.port_nums(ports)
# create mask from all the dpdk port numbers
ports_mask_hex = hex(sum(2 ** num for num in port_nums))
+
+ vnf_cfg = self.scenario_helper.vnf_cfg
+ lb_config = vnf_cfg.get('lb_config', 'SW')
+ worker_threads = vnf_cfg.get('worker_threads', 3)
+ hwlb = ''
+ if lb_config == 'HW':
+ hwlb = ' --hwlb %s' % worker_threads
+
self.pipeline_kwargs = {
- 'cfg_file': self.CFG_CONFIG,
- 'script': self.CFG_SCRIPT,
+ 'cfg_file': cfg_file if cfg_file else self.CFG_CONFIG,
+ 'script': script if script else self.CFG_SCRIPT,
'port_mask_hex': ports_mask_hex,
'tool_path': tool_path,
+ 'hwlb': hwlb,
}
def setup_vnf_environment(self):
self._setup_dpdk()
- self.bound_pci = [v['virtual-interface']["vpci"] for v in self.vnfd_helper.interfaces]
self.kill_vnf()
# bind before _setup_resources so we can use dpdk_port_num
self._detect_and_bind_drivers()
@@ -254,26 +223,17 @@ class DpdkVnfSetupEnvHelper(SetupEnvHelper):
self.ssh_helper.execute("sudo killall %s" % self.APP_NAME)
def _setup_dpdk(self):
- """ setup dpdk environment needed for vnf to run """
-
- self._setup_hugepages()
- self.ssh_helper.execute("sudo modprobe uio && sudo modprobe igb_uio")
+ """Setup DPDK environment needed for VNF to run"""
+ hugepages_gb = self.scenario_helper.all_options.get('hugepages_gb', 16)
+ utils.setup_hugepages(self.ssh_helper, hugepages_gb * 1024 * 1024)
+ self.dpdk_bind_helper.load_dpdk_driver()
- exit_status = self.ssh_helper.execute("lsmod | grep -i igb_uio")[0]
+ exit_status = self.dpdk_bind_helper.check_dpdk_driver()
if exit_status == 0:
return
-
- dpdk = self.ssh_helper.join_bin_path(DPDK_VERSION)
- dpdk_setup = self.ssh_helper.provision_tool(tool_file="nsb_setup.sh")
- exit_status = self.ssh_helper.execute("which {} >/dev/null 2>&1".format(dpdk))[0]
- if exit_status != 0:
- self.ssh_helper.execute("bash %s dpdk >/dev/null 2>&1" % dpdk_setup)
-
- def get_collectd_options(self):
- options = self.scenario_helper.all_options.get("collectd", {})
- # override with specific node settings
- options.update(self.scenario_helper.options.get("collectd", {}))
- return options
+ else:
+ LOG.critical("DPDK Driver not installed")
+ return
def _setup_resources(self):
# what is this magic? how do we know which socket is for which port?
@@ -287,16 +247,29 @@ class DpdkVnfSetupEnvHelper(SetupEnvHelper):
# this won't work because we don't have DPDK port numbers yet
ports = sorted(self.vnfd_helper.interfaces, key=self.vnfd_helper.port_num)
port_names = (intf["name"] for intf in ports)
- collectd_options = self.get_collectd_options()
- plugins = collectd_options.get("plugins", {})
+ plugins = self.collectd_options.get("plugins", {})
+ interval = self.collectd_options.get("interval")
# we must set timeout to be the same as the VNF otherwise KPIs will die before VNF
return ResourceProfile(self.vnfd_helper.mgmt_interface, port_names=port_names,
- plugins=plugins, interval=collectd_options.get("interval"),
+ plugins=plugins, interval=interval,
timeout=self.scenario_helper.timeout)
+ def _check_interface_fields(self):
+ num_nodes = len(self.scenario_helper.nodes)
+ # OpenStack instance creation time is probably proportional to the number
+ # of instances
+ timeout = 120 * num_nodes
+ dpdk_node = DpdkNode(self.scenario_helper.name, self.vnfd_helper.interfaces,
+ self.ssh_helper, timeout)
+ dpdk_node.check()
+
def _detect_and_bind_drivers(self):
interfaces = self.vnfd_helper.interfaces
+ self._check_interface_fields()
+ # check for bound after probe
+ self.bound_pci = [v['virtual-interface']["vpci"] for v in interfaces]
+
self.dpdk_bind_helper.read_status()
self.dpdk_bind_helper.save_used_drivers()
@@ -337,6 +310,7 @@ class ResourceHelper(object):
self.resource = None
self.setup_helper = setup_helper
self.ssh_helper = setup_helper.ssh_helper
+ self._enable = True
def setup(self):
self.resource = self.setup_helper.setup_vnf_environment()
@@ -344,22 +318,33 @@ class ResourceHelper(object):
def generate_cfg(self):
pass
+ def update_from_context(self, context, attr_name):
+ """Disable resource helper in case of baremetal context.
+
+ And update appropriate node collectd options in context
+ """
+ if isinstance(context, NodeContext):
+ self._enable = False
+ context.update_collectd_options_for_node(self.setup_helper.collectd_options,
+ attr_name)
+
def _collect_resource_kpi(self):
result = {}
- status = self.resource.check_if_sa_running("collectd")[0]
- if status == 0:
+ status = self.resource.check_if_system_agent_running("collectd")[0]
+ if status == 0 and self._enable:
result = self.resource.amqp_collect_nfvi_kpi()
result = {"core": result}
return result
def start_collect(self):
- self.resource.initiate_systemagent(self.ssh_helper.bin_path)
- self.resource.start()
- self.resource.amqp_process_for_nfvi_kpi()
+ if self._enable:
+ self.resource.initiate_systemagent(self.ssh_helper.bin_path)
+ self.resource.start()
+ self.resource.amqp_process_for_nfvi_kpi()
def stop_collect(self):
- if self.resource:
+ if self.resource and self._enable:
self.resource.stop()
def collect_kpi(self):
@@ -400,42 +385,17 @@ class ClientResourceHelper(ResourceHelper):
try:
return self.client.get_stats(*args, **kwargs)
except STLError:
- LOG.exception("TRex client not connected")
- return {}
-
- def generate_samples(self, ports, key=None, default=None):
- # needs to be used ports
- last_result = self.get_stats(ports)
- key_value = last_result.get(key, default)
-
- if not isinstance(last_result, Mapping): # added for mock unit test
- self._terminated.value = 1
+ LOG.error('TRex client not connected')
return {}
- samples = {}
- # recalculate port for interface and see if it matches ports provided
- for intf in self.vnfd_helper.interfaces:
- name = intf["name"]
- port = self.vnfd_helper.port_num(name)
- if port in ports:
- xe_value = last_result.get(port, {})
- samples[name] = {
- "rx_throughput_fps": float(xe_value.get("rx_pps", 0.0)),
- "tx_throughput_fps": float(xe_value.get("tx_pps", 0.0)),
- "rx_throughput_mbps": float(xe_value.get("rx_bps", 0.0)),
- "tx_throughput_mbps": float(xe_value.get("tx_bps", 0.0)),
- "in_packets": int(xe_value.get("ipackets", 0)),
- "out_packets": int(xe_value.get("opackets", 0)),
- }
- if key:
- samples[name][key] = key_value
- return samples
+ def _get_samples(self, ports, port_pg_id=False):
+ raise NotImplementedError()
def _run_traffic_once(self, traffic_profile):
traffic_profile.execute_traffic(self)
self.client_started.value = 1
time.sleep(self.RUN_DURATION)
- samples = self.generate_samples(traffic_profile.ports)
+ samples = self._get_samples(traffic_profile.ports)
time.sleep(self.QUEUE_WAIT_TIME)
self._queue.put(samples)
@@ -448,12 +408,17 @@ class ClientResourceHelper(ResourceHelper):
try:
self._build_ports()
self.client = self._connect()
+ if self.client is None:
+ LOG.critical("Failure to Connect ... unable to continue")
+ return
+
self.client.reset(ports=self.all_ports)
self.client.remove_all_streams(self.all_ports) # remove all streams
traffic_profile.register_generator(self)
while self._terminated.value == 0:
- self._run_traffic_once(traffic_profile)
+ if self._run_traffic_once(traffic_profile):
+ self._terminated.value = 1
self.client.stop(self.all_ports)
self.client.disconnect()
@@ -496,22 +461,35 @@ class ClientResourceHelper(ResourceHelper):
server=self.vnfd_helper.mgmt_interface["ip"],
verbose_level=LoggerApi.VERBOSE_QUIET)
- # try to connect with 5s intervals, 30s max
+ # try to connect with 5s intervals
for idx in range(6):
try:
client.connect()
- break
+ for idx2 in range(6):
+ if client.is_connected():
+ return client
+ LOG.info("Waiting to confirm connection %s .. Attempt %s",
+ idx, idx2)
+ time.sleep(1)
+ client.disconnect(stop_traffic=True, release_ports=True)
except STLError:
LOG.info("Unable to connect to Trex Server.. Attempt %s", idx)
time.sleep(5)
- return client
+ if client.is_connected():
+ return client
+ else:
+ LOG.critical("Connection failure ..TRex username: %s server: %s",
+ self.vnfd_helper.mgmt_interface["user"],
+ self.vnfd_helper.mgmt_interface["ip"])
+ return None
class Rfc2544ResourceHelper(object):
DEFAULT_CORRELATED_TRAFFIC = False
DEFAULT_LATENCY = False
DEFAULT_TOLERANCE = '0.0001 - 0.0001'
+ DEFAULT_RESOLUTION = '0.1'
def __init__(self, scenario_helper):
super(Rfc2544ResourceHelper, self).__init__()
@@ -522,6 +500,8 @@ class Rfc2544ResourceHelper(object):
self._rfc2544 = None
self._tolerance_low = None
self._tolerance_high = None
+ self._tolerance_precision = None
+ self._resolution = None
@property
def rfc2544(self):
@@ -542,6 +522,12 @@ class Rfc2544ResourceHelper(object):
return self._tolerance_high
@property
+ def tolerance_precision(self):
+ if self._tolerance_precision is None:
+ self.get_rfc_tolerance()
+ return self._tolerance_precision
+
+ @property
def correlated_traffic(self):
if self._correlated_traffic is None:
self._correlated_traffic = \
@@ -555,14 +541,25 @@ class Rfc2544ResourceHelper(object):
self._latency = self.get_rfc2544('latency', self.DEFAULT_LATENCY)
return self._latency
+ @property
+ def resolution(self):
+ if self._resolution is None:
+ self._resolution = float(self.get_rfc2544('resolution',
+ self.DEFAULT_RESOLUTION))
+ return self._resolution
+
def get_rfc2544(self, name, default=None):
return self.rfc2544.get(name, default)
def get_rfc_tolerance(self):
tolerance_str = self.get_rfc2544('allowed_drop_rate', self.DEFAULT_TOLERANCE)
- tolerance_iter = iter(sorted(float(t.strip()) for t in tolerance_str.split('-')))
- self._tolerance_low = next(tolerance_iter)
- self._tolerance_high = next(tolerance_iter, self.tolerance_low)
+ tolerance_iter = iter(sorted(
+ decimal.Decimal(t.strip()) for t in tolerance_str.split('-')))
+ tolerance_low = next(tolerance_iter)
+ tolerance_high = next(tolerance_iter, tolerance_low)
+ self._tolerance_precision = abs(tolerance_high.as_tuple().exponent)
+ self._tolerance_high = float(tolerance_high)
+ self._tolerance_low = float(tolerance_low)
class SampleVNFDeployHelper(object):
@@ -638,8 +635,10 @@ class ScenarioHelper(object):
@property
def timeout(self):
- return self.options.get('timeout', DEFAULT_VNF_TIMEOUT)
-
+ test_duration = self.scenario_cfg.get('runner', {}).get('duration',
+ self.options.get('timeout', constants.DEFAULT_VNF_TIMEOUT))
+ test_timeout = self.options.get('timeout', constants.DEFAULT_VNF_TIMEOUT)
+ return test_duration if test_duration > test_timeout else test_timeout
class SampleVNF(GenericVNF):
""" Class providing file-like API for generic VNF implementation """
@@ -672,7 +671,6 @@ class SampleVNF(GenericVNF):
self.resource_helper = resource_helper_type(self.setup_helper)
self.context_cfg = None
- self.nfvi_context = None
self.pipeline_kwargs = {}
self.uplink_ports = None
self.downlink_ports = None
@@ -686,49 +684,6 @@ class SampleVNF(GenericVNF):
self.vnf_port_pairs = None
self._vnf_process = None
- def _build_ports(self):
- self._port_pairs = PortPairs(self.vnfd_helper.interfaces)
- self.networks = self._port_pairs.networks
- self.uplink_ports = self.vnfd_helper.port_nums(self._port_pairs.uplink_ports)
- self.downlink_ports = self.vnfd_helper.port_nums(self._port_pairs.downlink_ports)
- self.my_ports = self.vnfd_helper.port_nums(self._port_pairs.all_ports)
-
- def _get_route_data(self, route_index, route_type):
- route_iter = iter(self.vnfd_helper.vdu0.get('nd_route_tbl', []))
- for _ in range(route_index):
- next(route_iter, '')
- return next(route_iter, {}).get(route_type, '')
-
- def _get_port0localip6(self):
- return_value = self._get_route_data(0, 'network')
- LOG.info("_get_port0localip6 : %s", return_value)
- return return_value
-
- def _get_port1localip6(self):
- return_value = self._get_route_data(1, 'network')
- LOG.info("_get_port1localip6 : %s", return_value)
- return return_value
-
- def _get_port0prefixlen6(self):
- return_value = self._get_route_data(0, 'netmask')
- LOG.info("_get_port0prefixlen6 : %s", return_value)
- return return_value
-
- def _get_port1prefixlen6(self):
- return_value = self._get_route_data(1, 'netmask')
- LOG.info("_get_port1prefixlen6 : %s", return_value)
- return return_value
-
- def _get_port0gateway6(self):
- return_value = self._get_route_data(0, 'network')
- LOG.info("_get_port0gateway6 : %s", return_value)
- return return_value
-
- def _get_port1gateway6(self):
- return_value = self._get_route_data(1, 'network')
- LOG.info("_get_port1gateway6 : %s", return_value)
- return return_value
-
def _start_vnf(self):
self.queue_wrapper = QueueFileWrapper(self.q_in, self.q_out, self.VNF_PROMPT)
name = "{}-{}-{}".format(self.name, self.APP_NAME, os.getpid())
@@ -739,10 +694,13 @@ class SampleVNF(GenericVNF):
pass
def instantiate(self, scenario_cfg, context_cfg):
+ self._update_collectd_options(scenario_cfg, context_cfg)
self.scenario_helper.scenario_cfg = scenario_cfg
self.context_cfg = context_cfg
- self.nfvi_context = Context.get_context_from_server(self.scenario_helper.nodes[self.name])
- # self.nfvi_context = None
+ self.resource_helper.update_from_context(
+ Context.get_context_from_server(self.scenario_helper.nodes[self.name]),
+ self.scenario_helper.nodes[self.name]
+ )
# vnf deploy is unsupported, use ansible playbooks
if self.scenario_helper.options.get("vnf_deploy", False):
@@ -750,6 +708,54 @@ class SampleVNF(GenericVNF):
self.resource_helper.setup()
self._start_vnf()
+ def _update_collectd_options(self, scenario_cfg, context_cfg):
+ """Update collectd configuration options
+ This function retrieves all collectd options contained in the test case
+
+ definition builds a single dictionary combining them. The following fragment
+ represents a test case with the collectd options and priorities (1 highest, 3 lowest):
+ ---
+ schema: yardstick:task:0.1
+ scenarios:
+ - type: NSPerf
+ nodes:
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
+ options:
+ collectd:
+ <options> # COLLECTD priority 3
+ vnf__0:
+ collectd:
+ plugins:
+ load
+ <options> # COLLECTD priority 2
+ context:
+ type: Node
+ name: yardstick
+ nfvi_type: baremetal
+ file: /etc/yardstick/nodes/pod_ixia.yaml # COLLECTD priority 1
+ """
+ scenario_options = scenario_cfg.get('options', {})
+ generic_options = scenario_options.get('collectd', {})
+ scenario_node_options = scenario_options.get(self.name, {})\
+ .get('collectd', {})
+ context_node_options = context_cfg.get('nodes', {})\
+ .get(self.name, {}).get('collectd', {})
+
+ options = generic_options
+ self._update_options(options, scenario_node_options)
+ self._update_options(options, context_node_options)
+
+ self.setup_helper.collectd_options = options
+
+ def _update_options(self, options, additional_options):
+ """Update collectd options and plugins dictionary"""
+ for k, v in additional_options.items():
+ if isinstance(v, dict) and k in options:
+ options[k].update(v)
+ else:
+ options[k] = v
+
def wait_for_instantiate(self):
buf = []
time.sleep(self.WAIT_TIME) # Give some time for config to load
@@ -765,7 +771,6 @@ class SampleVNF(GenericVNF):
LOG.info("%s VNF is up and running.", self.APP_NAME)
self._vnf_up_post()
self.queue_wrapper.clear()
- self.resource_helper.start_collect()
return self._vnf_process.exitcode
if "PANIC" in message:
@@ -778,6 +783,59 @@ class SampleVNF(GenericVNF):
# by other VNF output
self.q_in.put('\r\n')
+ def wait_for_initialize(self):
+ buf = []
+ vnf_prompt_found = False
+ prompt_command = '\r\n'
+ script_name = 'non_existent_script_name'
+ done_string = 'Cannot open file "{}"'.format(script_name)
+ time.sleep(self.WAIT_TIME) # Give some time for config to load
+ while True:
+ if not self._vnf_process.is_alive():
+ raise RuntimeError("%s VNF process died." % self.APP_NAME)
+ while self.q_out.qsize() > 0:
+ buf.append(self.q_out.get())
+ message = ''.join(buf)
+
+ if self.VNF_PROMPT in message and not vnf_prompt_found:
+ # Once we got VNF promt, it doesn't mean that the VNF is
+ # up and running/initialized completely. But we can run
+ # addition (any) VNF command and wait for it to complete
+ # as it will be finished ONLY at the end of the VNF
+ # initialization. So, this approach can be used to
+ # indentify that VNF is completely initialized.
+ LOG.info("Got %s VNF prompt.", self.APP_NAME)
+ prompt_command = "run {}\r\n".format(script_name)
+ self.q_in.put(prompt_command)
+ # Cut the buffer since we are not interesting to find
+ # the VNF prompt anymore
+ prompt_pos = message.find(self.VNF_PROMPT)
+ buf = [message[prompt_pos + len(self.VNF_PROMPT):]]
+ vnf_prompt_found = True
+ continue
+
+ if done_string in message:
+ LOG.info("%s VNF is up and running.", self.APP_NAME)
+ self._vnf_up_post()
+ self.queue_wrapper.clear()
+ return self._vnf_process.exitcode
+
+ if "PANIC" in message:
+ raise RuntimeError("Error starting %s VNF." %
+ self.APP_NAME)
+
+ LOG.info("Waiting for %s VNF to start.. ", self.APP_NAME)
+ time.sleep(self.WAIT_TIME_FOR_SCRIPT)
+ # Send command again to display the expected prompt in case the
+ # expected text was corrupted by other VNF output
+ self.q_in.put(prompt_command)
+
+ def start_collect(self):
+ self.resource_helper.start_collect()
+
+ def stop_collect(self):
+ self.resource_helper.stop_collect()
+
def _build_run_kwargs(self):
self.run_kwargs = {
'stdin': self.queue_wrapper,
@@ -823,7 +881,7 @@ class SampleVNF(GenericVNF):
if self._vnf_process is not None:
# be proper and join first before we kill
LOG.debug("joining before terminate %s", self._vnf_process.name)
- self._vnf_process.join(PROCESS_JOIN_TIMEOUT)
+ self._vnf_process.join(constants.PROCESS_JOIN_TIMEOUT)
self._vnf_process.terminate()
# no terminate children here because we share processes with tg
@@ -840,18 +898,21 @@ class SampleVNF(GenericVNF):
def collect_kpi(self):
# we can't get KPIs if the VNF is down
- check_if_process_failed(self._vnf_process)
+ check_if_process_failed(self._vnf_process, 0.01)
stats = self.get_stats()
m = re.search(self.COLLECT_KPI, stats, re.MULTILINE)
+ physical_node = Context.get_physical_node_from_server(
+ self.scenario_helper.nodes[self.name])
+
+ result = {"physical_node": physical_node}
if m:
- result = {k: int(m.group(v)) for k, v in self.COLLECT_MAP.items()}
+ result.update({k: int(m.group(v)) for k, v in self.COLLECT_MAP.items()})
result["collect_stats"] = self.resource_helper.collect_kpi()
else:
- result = {
- "packets_in": 0,
- "packets_fwd": 0,
- "packets_dropped": 0,
- }
+ result.update({"packets_in": 0,
+ "packets_fwd": 0,
+ "packets_dropped": 0})
+
LOG.debug("%s collect KPIs %s", self.APP_NAME, result)
return result
@@ -890,6 +951,39 @@ class SampleVNFTrafficGen(GenericTrafficGen):
self.traffic_finished = False
self._tg_process = None
self._traffic_process = None
+ self._tasks_queue = JoinableQueue()
+ self._result_queue = Queue()
+
+ def _test_runner(self, traffic_profile, tasks, results):
+ self.resource_helper.run_test(traffic_profile, tasks, results)
+
+ def _init_traffic_process(self, traffic_profile):
+ name = '{}-{}-{}-{}'.format(self.name, self.APP_NAME,
+ traffic_profile.__class__.__name__,
+ os.getpid())
+ self._traffic_process = Process(name=name, target=self._test_runner,
+ args=(
+ traffic_profile, self._tasks_queue,
+ self._result_queue))
+
+ self._traffic_process.start()
+ while self.resource_helper.client_started.value == 0:
+ time.sleep(1)
+ if not self._traffic_process.is_alive():
+ break
+
+ def run_traffic_once(self, traffic_profile):
+ if self.resource_helper.client_started.value == 0:
+ self._init_traffic_process(traffic_profile)
+
+ # continue test - run next iteration
+ LOG.info("Run next iteration ...")
+ self._tasks_queue.put('RUN_TRAFFIC')
+
+ def wait_on_traffic(self):
+ self._tasks_queue.join()
+ result = self._result_queue.get()
+ return result
def _start_server(self):
# we can't share ssh paramiko objects to force new connection
@@ -897,6 +991,13 @@ class SampleVNFTrafficGen(GenericTrafficGen):
def instantiate(self, scenario_cfg, context_cfg):
self.scenario_helper.scenario_cfg = scenario_cfg
+ self.resource_helper.update_from_context(
+ Context.get_context_from_server(self.scenario_helper.nodes[self.name]),
+ self.scenario_helper.nodes[self.name]
+ )
+
+ self.resource_helper.context_cfg = context_cfg
+
self.resource_helper.setup()
# must generate_cfg after DPDK bind because we need port number
self.resource_helper.generate_cfg()
@@ -951,9 +1052,14 @@ class SampleVNFTrafficGen(GenericTrafficGen):
def collect_kpi(self):
# check if the tg processes have exited
+ physical_node = Context.get_physical_node_from_server(
+ self.scenario_helper.nodes[self.name])
+
+ result = {"physical_node": physical_node}
for proc in (self._tg_process, self._traffic_process):
check_if_process_failed(proc)
- result = self.resource_helper.collect_kpi()
+
+ result["collect_stats"] = self.resource_helper.collect_kpi()
LOG.debug("%s collect KPIs %s", self.APP_NAME, result)
return result
@@ -967,12 +1073,12 @@ class SampleVNFTrafficGen(GenericTrafficGen):
if self._traffic_process is not None:
# be proper and try to join before terminating
LOG.debug("joining before terminate %s", self._traffic_process.name)
- self._traffic_process.join(PROCESS_JOIN_TIMEOUT)
+ self._traffic_process.join(constants.PROCESS_JOIN_TIMEOUT)
self._traffic_process.terminate()
if self._tg_process is not None:
# be proper and try to join before terminating
LOG.debug("joining before terminate %s", self._tg_process.name)
- self._tg_process.join(PROCESS_JOIN_TIMEOUT)
+ self._tg_process.join(constants.PROCESS_JOIN_TIMEOUT)
self._tg_process.terminate()
# no terminate children here because we share processes with vnf
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_imsbench_sipp.py b/yardstick/network_services/vnf_generic/vnf/tg_imsbench_sipp.py
new file mode 100644
index 000000000..70557b848
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/tg_imsbench_sipp.py
@@ -0,0 +1,143 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+from collections import deque
+
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+
+LOG = logging.getLogger(__name__)
+
+
+class SippSetupEnvHelper(sample_vnf.SetupEnvHelper):
+ APP_NAME = "ImsbenchSipp"
+
+
+class SippResourceHelper(sample_vnf.ClientResourceHelper):
+ pass
+
+
+class SippVnf(sample_vnf.SampleVNFTrafficGen):
+ """
+ This class calls the test script from TG machine, then gets the result file
+ from IMS machine. After that, the result file is handled line by line, and
+ is updated to database.
+ """
+
+ APP_NAME = "ImsbenchSipp"
+ APP_WORD = "ImsbenchSipp"
+ VNF_TYPE = "ImsbenchSipp"
+ HW_OFFLOADING_NFVI_TYPES = {'baremetal', 'sriov'}
+ RESULT = "/tmp/final_result.dat"
+ SIPP_RESULT = "/tmp/sipp_dat_files/final_result.dat"
+ LOCAL_PATH = "/tmp"
+ CMD = "./SIPp_benchmark.bash {} {} {} '{}'"
+
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ if resource_helper_type is None:
+ resource_helper_type = SippResourceHelper
+ if setup_env_helper_type is None:
+ setup_env_helper_type = SippSetupEnvHelper
+ super(SippVnf, self).__init__(
+ name, vnfd, setup_env_helper_type, resource_helper_type)
+ self.params = ""
+ self.pcscf_ip = self.vnfd_helper.interfaces[0]["virtual-interface"]\
+ ["peer_intf"]["local_ip"]
+ self.sipp_ip = self.vnfd_helper.interfaces[0]["virtual-interface"]\
+ ["local_ip"]
+ self.media_ip = self.vnfd_helper.interfaces[1]["virtual-interface"]\
+ ["local_ip"]
+ self.queue = ""
+ self.count = 0
+
+ def instantiate(self, scenario_cfg, context_cfg):
+ super(SippVnf, self).instantiate(scenario_cfg, context_cfg)
+ scenario_cfg = {}
+ _params = [("port", 5060), ("start_user", 1), ("end_user", 10000),
+ ("init_reg_cps", 50), ("init_reg_max", 5000), ("reg_cps", 50),
+ ("reg_step", 10), ("rereg_cps", 10), ("rereg_step", 5),
+ ("dereg_cps", 10), ("dereg_step", 5), ("msgc_cps", 10),
+ ("msgc_step", 2), ("run_mode", "rtp"), ("call_cps", 10),
+ ("hold_time", 15), ("call_step", 5)]
+
+ self.params = ';'.join([str(scenario_cfg.get("options", {}).get(k, v))
+ for k, v in dict(_params).items()])
+
+ def wait_for_instantiate(self):
+ pass
+
+ def get_result_files(self):
+ self.ssh_helper.get(self.SIPP_RESULT, self.LOCAL_PATH, True)
+
+ # Example of result file:
+ # cat /tmp/final_result.dat
+ # timestamp:1000 reg:100 reg_saps:0
+ # timestamp:2000 reg:100 reg_saps:50
+ # timestamp:3000 reg:100 reg_saps:50
+ # timestamp:4000 reg:100 reg_saps:50
+ # ...
+ # reg_Requested_prereg:50
+ # reg_Effective_prereg:49.49
+ # reg_DOC:0
+ # ...
+ @staticmethod
+ def handle_result_files(filename):
+ with open(filename, 'r') as f:
+ content = f.readlines()
+ result = [{k: round(float(v), 2) for k, v in [i.split(":", 1) for i in x.split()]}
+ for x in content if x]
+ return deque(result)
+
+ def run_traffic(self, traffic_profile):
+ traffic_profile.execute_traffic(self)
+ cmd = self.CMD.format(self.sipp_ip, self.media_ip,
+ self.pcscf_ip, self.params)
+ self.ssh_helper.execute(cmd, None, 3600, False)
+ self.get_result_files()
+ self.queue = self.handle_result_files(self.RESULT)
+
+ def collect_kpi(self):
+ result = {}
+ try:
+ result = self.queue.popleft()
+ except IndexError:
+ pass
+ return result
+
+ @staticmethod
+ def count_line_num(fname):
+ try:
+ with open(fname, 'r') as f:
+ return sum(1 for line in f)
+ except IOError:
+ return 0
+
+ def is_ended(self):
+ """
+ The test will end when the results are pushed into database.
+ It does not depend on the "duration" value, so this value will be set
+ enough big to make sure that the test will end before duration.
+ """
+ num_lines = self.count_line_num(self.RESULT)
+ if self.count == num_lines:
+ LOG.debug('TG IS ENDED.....................')
+ self.count = 0
+ return True
+ self.count += 1
+ return False
+
+ def terminate(self):
+ LOG.debug('TERMINATE:.....................')
+ self.resource_helper.terminate()
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_ixload.py b/yardstick/network_services/vnf_generic/vnf/tg_ixload.py
index 61c045405..38b00a4b2 100644
--- a/yardstick/network_services/vnf_generic/vnf/tg_ixload.py
+++ b/yardstick/network_services/vnf_generic/vnf/tg_ixload.py
@@ -12,20 +12,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
+import collections
import csv
import glob
import logging
import os
import shutil
+import subprocess
+
+from oslo_serialization import jsonutils
+
+from yardstick.common import utils
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
-from collections import OrderedDict
-from subprocess import call
-from yardstick.common.utils import makedirs
-from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNFTrafficGen
-from yardstick.network_services.vnf_generic.vnf.sample_vnf import ClientResourceHelper
-from yardstick.benchmark.scenarios.networking.vnf_generic import find_relative_file
LOG = logging.getLogger(__name__)
@@ -45,7 +45,8 @@ IXLOAD_CONFIG_TEMPLATE = '''\
},
"remote_server": "%s",
"result_dir": "%s",
- "ixload_cfg": "C:/Results/%s"
+ "ixload_cfg": "C:/Results/%s",
+ "links_param": %s
}'''
IXLOAD_CMD = "{ixloadpy} {http_ixload} {args}"
@@ -61,11 +62,11 @@ class ResourceDataHelper(list):
}
-class IxLoadResourceHelper(ClientResourceHelper):
+class IxLoadResourceHelper(sample_vnf.ClientResourceHelper):
RESULTS_MOUNT = "/mnt/Results"
- KPI_LIST = OrderedDict((
+ KPI_LIST = collections.OrderedDict((
('http_throughput', 'HTTP Total Throughput (Kbps)'),
('simulated_users', 'HTTP Simulated Users'),
('concurrent_connections', 'HTTP Concurrent Connections'),
@@ -75,7 +76,8 @@ class IxLoadResourceHelper(ClientResourceHelper):
def __init__(self, setup_helper):
super(IxLoadResourceHelper, self).__init__(setup_helper)
- self.result = OrderedDict((key, ResourceDataHelper()) for key in self.KPI_LIST)
+ self.result = collections.OrderedDict((key, ResourceDataHelper())
+ for key in self.KPI_LIST)
self.resource_file_name = ''
self.data = None
@@ -91,19 +93,20 @@ class IxLoadResourceHelper(ClientResourceHelper):
self.result[key].append(value)
def setup(self):
- # TODO: fixupt scenario_helper to hanlde ixia
+ # NOTE: fixup scenario_helper to hanlde ixia
self.resource_file_name = \
- find_relative_file(self.scenario_helper.scenario_cfg['ixia_profile'],
- self.scenario_helper.scenario_cfg["task_path"])
- makedirs(self.RESULTS_MOUNT)
+ utils.find_relative_file(
+ self.scenario_helper.scenario_cfg['ixia_profile'],
+ self.scenario_helper.scenario_cfg["task_path"])
+ utils.makedirs(self.RESULTS_MOUNT)
cmd = MOUNT_CMD.format(self.vnfd_helper.mgmt_interface, self)
LOG.debug(cmd)
if not os.path.ismount(self.RESULTS_MOUNT):
- call(cmd, shell=True)
+ subprocess.call(cmd, shell=True)
shutil.rmtree(self.RESULTS_MOUNT, ignore_errors=True)
- makedirs(self.RESULTS_MOUNT)
+ utils.makedirs(self.RESULTS_MOUNT)
shutil.copy(self.resource_file_name, self.RESULTS_MOUNT)
def make_aggregates(self):
@@ -113,7 +116,7 @@ class IxLoadResourceHelper(ClientResourceHelper):
def collect_kpi(self):
if self.data:
self._result.update(self.data)
- LOG.info("Collect {0} KPIs {1}".format(self.RESOURCE_WORD, self._result))
+ LOG.info("Collect %s KPIs %s", self.RESOURCE_WORD, self._result)
return self._result
def log(self):
@@ -121,7 +124,7 @@ class IxLoadResourceHelper(ClientResourceHelper):
LOG.debug(self.result[key])
-class IxLoadTrafficGen(SampleVNFTrafficGen):
+class IxLoadTrafficGen(sample_vnf.SampleVNFTrafficGen):
def __init__(self, name, vnfd, setup_env_helper_type=None, resource_helper_type=None):
if resource_helper_type is None:
@@ -131,6 +134,26 @@ class IxLoadTrafficGen(SampleVNFTrafficGen):
resource_helper_type)
self._result = {}
+ def update_gateways(self, links):
+ for name in links:
+ try:
+ gateway = next(intf["virtual-interface"]["dst_ip"] for intf in
+ self.setup_helper.vnfd_helper["vdu"][0][
+ "external-interface"] if
+ intf["virtual-interface"]["vld_id"] == name)
+
+ try:
+ links[name]["ip"]["gateway"] = gateway
+ except KeyError:
+ LOG.error("Invalid traffic profile: No IP section defined for %s", name)
+ raise
+
+ except StopIteration:
+ LOG.debug("Cant find gateway for link %s", name)
+ links[name]["ip"]["gateway"] = "0.0.0.0"
+
+ return links
+
def run_traffic(self, traffic_profile):
ports = []
card = None
@@ -142,11 +165,16 @@ class IxLoadTrafficGen(SampleVNFTrafficGen):
for csv_file in glob.iglob(self.ssh_helper.join_bin_path('*.csv')):
os.unlink(csv_file)
+ links_param = self.update_gateways(
+ traffic_profile.get_links_param())
+
ixia_config = self.vnfd_helper.mgmt_interface["tg-config"]
ixload_config = IXLOAD_CONFIG_TEMPLATE % (
ixia_config["ixchassis"], ports, card,
self.vnfd_helper.mgmt_interface["ip"], self.ssh_helper.bin_path,
- os.path.basename(self.resource_helper.resource_file_name))
+ os.path.basename(self.resource_helper.resource_file_name),
+ jsonutils.dumps(links_param)
+ )
http_ixload_path = os.path.join(VNF_PATH, "../../traffic_profile")
@@ -156,7 +184,7 @@ class IxLoadTrafficGen(SampleVNFTrafficGen):
args="'%s'" % ixload_config)
LOG.debug(cmd)
- call(cmd, shell=True)
+ subprocess.call(cmd, shell=True)
with open(self.ssh_helper.join_bin_path("ixLoad_HTTP_Client.csv")) as csv_file:
lines = csv_file.readlines()[10:]
@@ -170,9 +198,6 @@ class IxLoadTrafficGen(SampleVNFTrafficGen):
self.resource_helper.log()
self.resource_helper.data = self.resource_helper.make_aggregates()
- def instantiate(self, scenario_cfg, context_cfg):
- super(IxLoadTrafficGen, self).instantiate(scenario_cfg, context_cfg)
-
def terminate(self):
- call(["pkill", "-9", "http_ixload.py"])
+ subprocess.call(["pkill", "-9", "http_ixload.py"])
super(IxLoadTrafficGen, self).terminate()
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_landslide.py b/yardstick/network_services/vnf_generic/vnf/tg_landslide.py
new file mode 100644
index 000000000..285374a92
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/tg_landslide.py
@@ -0,0 +1,1226 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import collections
+import logging
+import requests
+import six
+import time
+
+from yardstick.common import exceptions
+from yardstick.common import utils as common_utils
+from yardstick.common import yaml_loader
+from yardstick.network_services import utils as net_serv_utils
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+
+try:
+ from lsapi import LsApi
+except ImportError:
+ LsApi = common_utils.ErrorClass
+
+LOG = logging.getLogger(__name__)
+
+
+class LandslideTrafficGen(sample_vnf.SampleVNFTrafficGen):
+ APP_NAME = 'LandslideTG'
+
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ if resource_helper_type is None:
+ resource_helper_type = LandslideResourceHelper
+ super(LandslideTrafficGen, self).__init__(name, vnfd,
+ setup_env_helper_type,
+ resource_helper_type)
+
+ self.bin_path = net_serv_utils.get_nsb_option('bin_path')
+ self.name = name
+ self.runs_traffic = True
+ self.traffic_finished = False
+ self.session_profile = None
+
+ def listen_traffic(self, traffic_profile):
+ pass
+
+ def terminate(self):
+ self.resource_helper.disconnect()
+
+ def instantiate(self, scenario_cfg, context_cfg):
+ super(LandslideTrafficGen, self).instantiate(scenario_cfg, context_cfg)
+ self.resource_helper.connect()
+
+ # Create test servers
+ test_servers = [x['test_server'] for x in self.vnfd_helper['config']]
+ self.resource_helper.create_test_servers(test_servers)
+
+ # Create SUTs
+ [self.resource_helper.create_suts(x['suts']) for x in
+ self.vnfd_helper['config']]
+
+ # Fill in test session based on session profile and test case options
+ self._load_session_profile()
+
+ def run_traffic(self, traffic_profile):
+ self.resource_helper.abort_running_tests()
+ # Update DMF profile with related test case options
+ traffic_profile.update_dmf(self.scenario_helper.all_options)
+ # Create DMF in test user library
+ self.resource_helper.create_dmf(traffic_profile.dmf_config)
+ # Create/update test session in test user library
+ self.resource_helper.create_test_session(self.session_profile)
+ # Start test session
+ self.resource_helper.create_running_tests(self.session_profile['name'])
+
+ def collect_kpi(self):
+ return self.resource_helper.collect_kpi()
+
+ def wait_for_instantiate(self):
+ pass
+
+ @staticmethod
+ def _update_session_suts(suts, testcase):
+ """ Create SUT entry. Update related EPC block in session profile. """
+ for sut in suts:
+ # Update session profile EPC element with SUT info from pod file
+ tc_role = testcase['parameters'].get(sut['role'])
+ if tc_role:
+ _param = {}
+ if tc_role['class'] == 'Sut':
+ _param['name'] = sut['name']
+ elif tc_role['class'] == 'TestNode':
+ _param.update({x: sut[x] for x in {'ip', 'phy', 'nextHop'}
+ if x in sut and sut[x]})
+ testcase['parameters'][sut['role']].update(_param)
+ else:
+ LOG.info('Unexpected SUT role in pod file: "%s".', sut['role'])
+ return testcase
+
+ def _update_session_test_servers(self, test_server, _tsgroup_index):
+ """ Update tsId, reservations, pre-resolved ARP in session profile """
+ # Update test server name
+ test_groups = self.session_profile['tsGroups']
+ test_groups[_tsgroup_index]['tsId'] = test_server['name']
+
+ # Update preResolvedArpAddress
+ arp_key = 'preResolvedArpAddress'
+ _preresolved_arp = test_server.get(arp_key) # list of dicts
+ if _preresolved_arp:
+ test_groups[_tsgroup_index][arp_key] = _preresolved_arp
+
+ # Update reservations
+ if 'phySubnets' in test_server:
+ reservation = {'tsId': test_server['name'],
+ 'tsIndex': _tsgroup_index,
+ 'tsName': test_server['name'],
+ 'phySubnets': test_server['phySubnets']}
+ if 'reservations' in self.session_profile:
+ self.session_profile['reservations'].append(reservation)
+ else:
+ self.session_profile['reservePorts'] = 'true'
+ self.session_profile['reservations'] = [reservation]
+
+ def _update_session_library_name(self, test_session):
+ """Update DMF library name in session profile"""
+ for _ts_group in test_session['tsGroups']:
+ for _tc in _ts_group['testCases']:
+ try:
+ for _mainflow in _tc['parameters']['Dmf']['mainflows']:
+ _mainflow['library'] = \
+ self.vnfd_helper.mgmt_interface['user']
+ except KeyError:
+ pass
+
+ @staticmethod
+ def _update_session_tc_params(tc_options, testcase):
+ for _param_key in tc_options:
+ if _param_key == 'AssociatedPhys':
+ testcase[_param_key] = tc_options[_param_key]
+ continue
+ testcase['parameters'][_param_key] = tc_options[_param_key]
+ return testcase
+
+ def _load_session_profile(self):
+
+ with common_utils.open_relative_file(
+ self.scenario_helper.scenario_cfg['session_profile'],
+ self.scenario_helper.task_path) as stream:
+ self.session_profile = yaml_loader.yaml_load(stream)
+
+ # Raise exception if number of entries differs in following files,
+ _config_files = ['pod file', 'session_profile file', 'test_case file']
+ # Count testcases number in all tsGroups of session profile
+ session_tests_num = [xx for x in self.session_profile['tsGroups']
+ for xx in x['testCases']]
+ # Create a set containing number of list elements in each structure
+ _config_files_blocks_num = [
+ len(x) for x in
+ (self.vnfd_helper['config'], # test_servers and suts info
+ session_tests_num,
+ self.scenario_helper.all_options['test_cases'])] # test case file
+
+ if len(set(_config_files_blocks_num)) != 1:
+ raise RuntimeError('Unequal number of elements. {}'.format(
+ dict(six.moves.zip_longest(_config_files,
+ _config_files_blocks_num))))
+
+ ts_names = set()
+ _tsgroup_idx = -1
+ _testcase_idx = 0
+
+ # Iterate over data structures to overwrite session profile defaults
+ # _config: single list element holding test servers and SUTs info
+ # _tc_options: single test case parameters
+ for _config, tc_options in zip(
+ self.vnfd_helper['config'], # test servers and SUTS
+ self.scenario_helper.all_options['test_cases']): # testcase
+
+ _ts_config = _config['test_server']
+
+ # Calculate test group/test case indexes based on test server name
+ if _ts_config['name'] in ts_names:
+ _testcase_idx += 1
+ else:
+ _tsgroup_idx += 1
+ _testcase_idx = 0
+
+ _testcase = \
+ self.session_profile['tsGroups'][_tsgroup_idx]['testCases'][
+ _testcase_idx]
+
+ if _testcase['type'] != _ts_config['role']:
+ raise RuntimeError(
+ 'Test type mismatch in TC#{} of test server {}'.format(
+ _testcase_idx, _ts_config['name']))
+
+ # Fill session profile with test servers parameters
+ if _ts_config['name'] not in ts_names:
+ self._update_session_test_servers(_ts_config, _tsgroup_idx)
+ ts_names.add(_ts_config['name'])
+
+ # Fill session profile with suts parameters
+ self.session_profile['tsGroups'][_tsgroup_idx]['testCases'][
+ _testcase_idx].update(
+ self._update_session_suts(_config['suts'], _testcase))
+
+ # Update test case parameters
+ self.session_profile['tsGroups'][_tsgroup_idx]['testCases'][
+ _testcase_idx].update(
+ self._update_session_tc_params(tc_options, _testcase))
+
+ self._update_session_library_name(self.session_profile)
+
+
+class LandslideResourceHelper(sample_vnf.ClientResourceHelper):
+ """Landslide TG helper class"""
+
+ REST_STATUS_CODES = {'OK': 200, 'CREATED': 201, 'NO CHANGE': 409}
+ REST_API_CODES = {'NOT MODIFIED': 500810}
+
+ def __init__(self, setup_helper):
+ super(LandslideResourceHelper, self).__init__(setup_helper)
+ self._result = {}
+ self.vnfd_helper = setup_helper.vnfd_helper
+ self.scenario_helper = setup_helper.scenario_helper
+
+ # TAS Manager config initialization
+ self._url = None
+ self._user_id = None
+ self.session = None
+ self.license_data = {}
+
+ # TCL session initialization
+ self._tcl = LandslideTclClient(LsTclHandler(), self)
+
+ self.session = requests.Session()
+ self.running_tests_uri = 'runningTests'
+ self.test_session_uri = 'testSessions'
+ self.test_serv_uri = 'testServers'
+ self.suts_uri = 'suts'
+ self.users_uri = 'users'
+ self.user_lib_uri = None
+ self.run_id = None
+
+ def abort_running_tests(self, timeout=60, delay=5):
+ """ Abort running test sessions, if any """
+ _start_time = time.time()
+ while time.time() < _start_time + timeout:
+ run_tests_states = {x['id']: x['testStateOrStep']
+ for x in self.get_running_tests()}
+ if not set(run_tests_states.values()).difference(
+ {'COMPLETE', 'COMPLETE_ERROR'}):
+ break
+ else:
+ [self.stop_running_tests(running_test_id=_id, force=True)
+ for _id, _state in run_tests_states.items()
+ if 'COMPLETE' not in _state]
+ time.sleep(delay)
+ else:
+ raise RuntimeError(
+ 'Some test runs not stopped during {} seconds'.format(timeout))
+
+ def _build_url(self, resource, action=None):
+ """ Build URL string
+
+ :param resource: REST API resource name
+ :type resource: str
+ :param action: actions name and value
+ :type action: dict('name': <str>, 'value': <str>)
+ :returns str: REST API resource name with optional action info
+ """
+ # Action is optional and accepted only in presence of resource param
+ if action and not resource:
+ raise ValueError("Resource name not provided")
+ # Concatenate actions
+ _action = ''.join(['?{}={}'.format(k, v) for k, v in
+ action.items()]) if action else ''
+
+ return ''.join([self._url, resource, _action])
+
+ def get_response_params(self, method, resource, params=None):
+ """ Retrieve params from JSON response of specific resource URL
+
+ :param method: one of supported REST API methods
+ :type method: str
+ :param resource: URI, requested resource name
+ :type resource: str
+ :param params: attributes to be found in JSON response
+ :type params: list(str)
+ """
+ _res = []
+ params = params if params else []
+ response = self.exec_rest_request(method, resource)
+ # Get substring between last slash sign and question mark (if any)
+ url_last_part = resource.rsplit('/', 1)[-1].rsplit('?', 1)[0]
+ _response_json = response.json()
+ # Expect dict(), if URL last part and top dict key don't match
+ # Else, if they match, expect list()
+ k, v = list(_response_json.items())[0]
+ if k != url_last_part:
+ v = [v] # v: list(dict(str: str))
+ # Extract params, or whole list of dicts (without top level key)
+ for x in v:
+ _res.append({param: x[param] for param in params} if params else x)
+ return _res
+
+ def _create_user(self, auth, level=1):
+ """ Create new user
+
+ :param auth: data to create user account on REST server
+ :type auth: dict
+ :param level: Landslide user permissions level
+ :type level: int
+ :returns int: user id
+ """
+ # Set expiration date in two years since account creation date
+ _exp_date = time.strftime(
+ '{}/%m/%d %H:%M %Z'.format(time.gmtime().tm_year + 2))
+ _username = auth['user']
+ _fields = {"contactInformation": "", "expiresOn": _exp_date,
+ "fullName": "Test User",
+ "isActive": "true", "level": level,
+ "password": auth['password'],
+ "username": _username}
+ _response = self.exec_rest_request('post', self.users_uri,
+ json_data=_fields, raise_exc=False)
+ _resp_json = _response.json()
+ if _response.status_code == self.REST_STATUS_CODES['CREATED']:
+ # New user created
+ _id = _resp_json['id']
+ LOG.info("New user created: username='%s', id='%s'", _username,
+ _id)
+ elif _resp_json.get('apiCode') == self.REST_API_CODES['NOT MODIFIED']:
+ # User already exists
+ LOG.info("Account '%s' already exists.", _username)
+ # Get user id
+ _id = self._modify_user(_username, {"isActive": "true"})['id']
+ else:
+ raise exceptions.RestApiError(
+ 'Error during new user "{}" creation'.format(_username))
+ return _id
+
+ def _modify_user(self, username, fields):
+ """ Modify information about existing user
+
+ :param username: user name of account to be modified
+ :type username: str
+ :param fields: data to modify user account on REST server
+ :type fields: dict
+ :returns dict: user info
+ """
+ _response = self.exec_rest_request('post', self.users_uri,
+ action={'username': username},
+ json_data=fields, raise_exc=False)
+ if _response.status_code == self.REST_STATUS_CODES['OK']:
+ _response = _response.json()
+ else:
+ raise exceptions.RestApiError(
+ 'Error during user "{}" data update: {}'.format(
+ username,
+ _response.status_code))
+ LOG.info("User account '%s' modified: '%s'", username, _response)
+ return _response
+
+ def _delete_user(self, username):
+ """ Delete user account
+
+ :param username: username field
+ :type username: str
+ :returns bool: True if succeeded
+ """
+ self.exec_rest_request('delete', self.users_uri,
+ action={'username': username})
+
+ def _get_users(self, username=None):
+ """ Get user records from REST server
+
+ :param username: username field
+ :type username: None|str
+ :returns list(dict): empty list, or user record, or list of all users
+ """
+ _response = self.get_response_params('get', self.users_uri)
+ _res = [u for u in _response if
+ u['username'] == username] if username else _response
+ return _res
+
+ def exec_rest_request(self, method, resource, action=None, json_data=None,
+ logs=True, raise_exc=True):
+ """ Execute REST API request, return response object
+
+ :param method: one of supported requests ('post', 'get', 'delete')
+ :type method: str
+ :param resource: URL of resource
+ :type resource: str
+ :param action: data used to provide URI located after question mark
+ :type action: dict
+ :param json_data: mandatory only for 'post' method
+ :type json_data: dict
+ :param logs: debug logs display flag
+ :type raise_exc: bool
+ :param raise_exc: if True, raise exception on REST API call error
+ :returns requests.Response(): REST API call response object
+ """
+ json_data = json_data if json_data else {}
+ action = action if action else {}
+ _method = method.upper()
+ method = method.lower()
+ if method not in ('post', 'get', 'delete'):
+ raise ValueError("Method '{}' not supported".format(_method))
+
+ if method == 'post' and not action:
+ if not (json_data and isinstance(json_data, collections.Mapping)):
+ raise ValueError(
+ 'JSON data missing in {} request'.format(_method))
+
+ r = getattr(self.session, method)(self._build_url(resource, action),
+ json=json_data)
+ if raise_exc and not r.ok:
+ msg = 'Failed to "{}" resource "{}". Reason: "{}"'.format(
+ method, self._build_url(resource, action), r.reason)
+ raise exceptions.RestApiError(msg)
+
+ if logs:
+ LOG.debug("RC: %s | Request: %s | URL: %s", r.status_code, method,
+ r.request.url)
+ LOG.debug("Response: %s", r.json())
+ return r
+
+ def connect(self):
+ """Connect to RESTful server using test user account"""
+ tas_info = self.vnfd_helper['mgmt-interface']
+ # Supported REST Server ports: HTTP - 8080, HTTPS - 8181
+ _port = '8080' if tas_info['proto'] == 'http' else '8181'
+ tas_info.update({'port': _port})
+ self._url = '{proto}://{ip}:{port}/api/'.format(**tas_info)
+ self.session.headers.update({'Accept': 'application/json',
+ 'Content-type': 'application/json'})
+ # Login with super user to create test user
+ self.session.auth = (
+ tas_info['super-user'], tas_info['super-user-password'])
+ LOG.info("Connect using superuser: server='%s'", self._url)
+ auth = {x: tas_info[x] for x in ('user', 'password')}
+ self._user_id = self._create_user(auth)
+ # Login with test user
+ self.session.auth = auth['user'], auth['password']
+ # Test user validity
+ self.exec_rest_request('get', '')
+
+ self.user_lib_uri = 'libraries/{{}}/{}'.format(self.test_session_uri)
+ LOG.info("Login with test user: server='%s'", self._url)
+ # Read existing license
+ self.license_data['lic_id'] = tas_info['license']
+
+ # Tcl client init
+ self._tcl.connect(tas_info['ip'], *self.session.auth)
+
+ return self.session
+
+ def disconnect(self):
+ self.session = None
+ self._tcl.disconnect()
+
+ def terminate(self):
+ self._terminated.value = 1
+
+ def create_dmf(self, dmf):
+ if isinstance(dmf, dict):
+ dmf = [dmf]
+ for _dmf in dmf:
+ # Update DMF library name in traffic profile
+ _dmf['dmf'].update(
+ {'library': self.vnfd_helper.mgmt_interface['user']})
+ # Create DMF on Landslide server
+ self._tcl.create_dmf(_dmf)
+
+ def delete_dmf(self, dmf):
+ if isinstance(dmf, list):
+ for _dmf in dmf:
+ self._tcl.delete_dmf(_dmf)
+ else:
+ self._tcl.delete_dmf(dmf)
+
+ def create_suts(self, suts):
+ # Keep only supported keys in suts object
+ for _sut in suts:
+ sut_entry = {k: v for k, v in _sut.items()
+ if k not in {'phy', 'nextHop', 'role'}}
+ _response = self.exec_rest_request(
+ 'post', self.suts_uri, json_data=sut_entry,
+ logs=False, raise_exc=False)
+ if _response.status_code != self.REST_STATUS_CODES['CREATED']:
+ LOG.info(_response.reason) # Failed to create
+ _name = sut_entry.pop('name')
+ # Modify existing SUT
+ self.configure_sut(sut_name=_name, json_data=sut_entry)
+ else:
+ LOG.info("SUT created: %s", sut_entry)
+
+ def get_suts(self, suts_id=None):
+ if suts_id:
+ _suts = self.exec_rest_request(
+ 'get', '{}/{}'.format(self.suts_uri, suts_id)).json()
+ else:
+ _suts = self.get_response_params('get', self.suts_uri)
+
+ return _suts
+
+ def configure_sut(self, sut_name, json_data):
+ """ Modify information of specific SUTs
+
+ :param sut_name: name of existing SUT
+ :type sut_name: str
+ :param json_data: SUT settings
+ :type json_data: dict()
+ """
+ LOG.info("Modifying SUT information...")
+ _response = self.exec_rest_request('post',
+ self.suts_uri,
+ action={'name': sut_name},
+ json_data=json_data,
+ raise_exc=False)
+ if _response.status_code not in {self.REST_STATUS_CODES[x] for x in
+ {'OK', 'NO CHANGE'}}:
+ raise exceptions.RestApiError(_response.reason)
+
+ LOG.info("Modified SUT: %s", sut_name)
+
+ def delete_suts(self, suts_ids=None):
+ if not suts_ids:
+ _curr_suts = self.get_response_params('get', self.suts_uri)
+ suts_ids = [x['id'] for x in _curr_suts]
+ LOG.info("Deleting SUTs with following IDs: %s", suts_ids)
+ for _id in suts_ids:
+ self.exec_rest_request('delete',
+ '{}/{}'.format(self.suts_uri, _id))
+ LOG.info("\tDone for SUT id: %s", _id)
+
+ def _check_test_servers_state(self, test_servers_ids=None, delay=10,
+ timeout=300):
+ LOG.info("Waiting for related test servers state change to READY...")
+ # Wait on state change
+ _start_time = time.time()
+ while time.time() - _start_time < timeout:
+ ts_ids_not_ready = {x['id'] for x in
+ self.get_test_servers(test_servers_ids)
+ if x['state'] != 'READY'}
+ if ts_ids_not_ready == set():
+ break
+ time.sleep(delay)
+ else:
+ raise RuntimeError(
+ 'Test servers not in READY state after {} seconds.'.format(
+ timeout))
+
+ def create_test_servers(self, test_servers):
+ """ Create test servers
+
+ :param test_servers: input data for test servers creation
+ mandatory fields: managementIp
+ optional fields: name
+ :type test_servers: list(dict)
+ """
+ _ts_ids = []
+ for _ts in test_servers:
+ _msg = 'Created test server "%(name)s"'
+ _ts_ids.append(self._tcl.create_test_server(_ts))
+ if _ts.get('thread_model'):
+ _msg += ' in mode: "%(thread_model)s"'
+ LOG.info(_msg, _ts)
+
+ self._check_test_servers_state(_ts_ids)
+
+ def get_test_servers(self, test_server_ids=None):
+ if not test_server_ids: # Get all test servers info
+ _test_servers = self.exec_rest_request(
+ 'get', self.test_serv_uri).json()[self.test_serv_uri]
+ LOG.info("Current test servers configuration: %s", _test_servers)
+ return _test_servers
+
+ _test_servers = []
+ for _id in test_server_ids:
+ _test_servers.append(self.exec_rest_request(
+ 'get', '{}/{}'.format(self.test_serv_uri, _id)).json())
+ LOG.info("Current test servers configuration: %s", _test_servers)
+ return _test_servers
+
+ def configure_test_servers(self, action, json_data=None,
+ test_server_ids=None):
+ if not test_server_ids:
+ test_server_ids = [x['id'] for x in self.get_test_servers()]
+ elif isinstance(test_server_ids, int):
+ test_server_ids = [test_server_ids]
+ for _id in test_server_ids:
+ self.exec_rest_request('post',
+ '{}/{}'.format(self.test_serv_uri, _id),
+ action=action, json_data=json_data)
+ LOG.info("Test server (id: %s) configuration done: %s", _id,
+ action)
+ return test_server_ids
+
+ def delete_test_servers(self, test_servers_ids=None):
+ # Delete test servers
+ for _ts in self.get_test_servers(test_servers_ids):
+ self.exec_rest_request('delete', '{}/{}'.format(self.test_serv_uri,
+ _ts['id']))
+ LOG.info("Deleted test server: %s", _ts['name'])
+
+ def create_test_session(self, test_session):
+ # Use tcl client to create session
+ test_session['library'] = self._user_id
+
+ # If no traffic duration set in test case, use predefined default value
+ # in session profile
+ test_session['duration'] = self.scenario_helper.all_options.get(
+ 'traffic_duration',
+ test_session['duration'])
+
+ LOG.debug("Creating session='%s'", test_session['name'])
+ self._tcl.create_test_session(test_session)
+
+ def get_test_session(self, test_session_name=None):
+ if test_session_name:
+ uri = 'libraries/{}/{}/{}'.format(self._user_id,
+ self.test_session_uri,
+ test_session_name)
+ else:
+ uri = self.user_lib_uri.format(self._user_id)
+ _test_sessions = self.exec_rest_request('get', uri).json()
+ return _test_sessions
+
+ def configure_test_session(self, template_name, test_session):
+ # Override specified test session parameters
+ LOG.info('Update test session parameters: %s', test_session['name'])
+ test_session.update({'library': self._user_id})
+ return self.exec_rest_request(
+ method='post',
+ action={'action': 'overrideAndSaveAs'},
+ json_data=test_session,
+ resource='{}/{}'.format(self.user_lib_uri.format(self._user_id),
+ template_name))
+
+ def delete_test_session(self, test_session):
+ return self.exec_rest_request('delete', '{}/{}'.format(
+ self.user_lib_uri.format(self._user_id), test_session))
+
+ def create_running_tests(self, test_session_name):
+ r = self.exec_rest_request('post',
+ self.running_tests_uri,
+ json_data={'library': self._user_id,
+ 'name': test_session_name})
+ if r.status_code != self.REST_STATUS_CODES['CREATED']:
+ raise exceptions.RestApiError('Failed to start test session.')
+ self.run_id = r.json()['id']
+
+ def get_running_tests(self, running_test_id=None):
+ """Get JSON structure of specified running test entity
+
+ :param running_test_id: ID of created running test entity
+ :type running_test_id: int
+ :returns list: running tests entity
+ """
+ if not running_test_id:
+ running_test_id = ''
+ _res_name = '{}/{}'.format(self.running_tests_uri, running_test_id)
+ _res = self.exec_rest_request('get', _res_name, logs=False).json()
+ # If no run_id specified, skip top level key in response dict.
+ # Else return JSON as list
+ return _res.get('runningTests', [_res])
+
+ def delete_running_tests(self, running_test_id=None):
+ if not running_test_id:
+ running_test_id = ''
+ _res_name = '{}/{}'.format(self.running_tests_uri, running_test_id)
+ self.get_response_params('delete', _res_name)
+ LOG.info("Deleted running test with id: %s", running_test_id)
+
+ def _running_tests_action(self, running_test_id, action, json_data=None):
+ if not json_data:
+ json_data = {}
+ # Supported actions:
+ # 'stop', 'abort', 'continue', 'update', 'sendTcCommand', 'sendOdc'
+ _res_name = '{}/{}'.format(self.running_tests_uri, running_test_id)
+ self.exec_rest_request('post', _res_name, {'action': action},
+ json_data)
+ LOG.debug("Executed action: '%s' on running test id: %s", action,
+ running_test_id)
+
+ def stop_running_tests(self, running_test_id, json_data=None, force=False):
+ _action = 'abort' if force else 'stop'
+ self._running_tests_action(running_test_id, _action,
+ json_data=json_data)
+ LOG.info('Performed action: "%s" to test run with id: %s', _action,
+ running_test_id)
+
+ def check_running_test_state(self, run_id):
+ r = self.exec_rest_request('get',
+ '{}/{}'.format(self.running_tests_uri,
+ run_id))
+ return r.json().get("testStateOrStep")
+
+ def get_running_tests_results(self, run_id):
+ _res = self.exec_rest_request(
+ 'get',
+ '{}/{}/{}'.format(self.running_tests_uri,
+ run_id,
+ 'measurements')).json()
+ return _res
+
+ def _write_results(self, results):
+ # Avoid None value at test session start
+ _elapsed_time = results['elapsedTime'] if results['elapsedTime'] else 0
+
+ _res_tabs = results.get('tabs')
+ # Avoid parsing 'tab' dict key initially (missing or empty)
+ if not _res_tabs:
+ return
+
+ # Flatten nested dict holding Landslide KPIs of current test run
+ flat_kpis_dict = {}
+ for _tab, _kpis in six.iteritems(_res_tabs):
+ for _kpi, _value in six.iteritems(_kpis):
+ # Combine table name and KPI name using delimiter "::"
+ _key = '::'.join([_tab, _kpi])
+ try:
+ # Cast value from str to float
+ # Remove comma and/or measure units, e.g. "us"
+ flat_kpis_dict[_key] = float(
+ _value.split(' ')[0].replace(',', ''))
+ except ValueError: # E.g. if KPI represents datetime
+ pass
+ LOG.info("Polling test results of test run id: %s. Elapsed time: %s "
+ "seconds", self.run_id, _elapsed_time)
+ return flat_kpis_dict
+
+ def collect_kpi(self):
+ if 'COMPLETE' in self.check_running_test_state(self.run_id):
+ self._result.update({'done': True})
+ return self._result
+ _res = self.get_running_tests_results(self.run_id)
+ _kpis = self._write_results(_res)
+ if _kpis:
+ _kpis.update({'run_id': int(self.run_id)})
+ _kpis.update({'iteration': _res['iteration']})
+ self._result.update(_kpis)
+ return self._result
+
+
+class LandslideTclClient(object):
+ """Landslide TG TCL client class"""
+
+ DEFAULT_TEST_NODE = {
+ 'ethStatsEnabled': True,
+ 'forcedEthInterface': '',
+ 'innerVlanId': 0,
+ 'ip': '',
+ 'mac': '',
+ 'mtu': 1500,
+ 'nextHop': '',
+ 'numLinksOrNodes': 1,
+ 'numVlan': 1,
+ 'phy': '',
+ 'uniqueVlanAddr': False,
+ 'vlanDynamic': 0,
+ 'vlanId': 0,
+ 'vlanUserPriority': 0,
+ 'vlanTagType': 0
+ }
+
+ TEST_NODE_CMD = \
+ 'ls::create -TestNode-{} -under $p_ -Type "eth"' \
+ ' -Phy "{phy}" -Ip "{ip}" -NumLinksOrNodes {numLinksOrNodes}' \
+ ' -NextHop "{nextHop}" -Mac "{mac}" -MTU {mtu}' \
+ ' -ForcedEthInterface "{forcedEthInterface}"' \
+ ' -EthStatsEnabled {ethStatsEnabled}' \
+ ' -VlanId {vlanId} -VlanUserPriority {vlanUserPriority}' \
+ ' -NumVlan {numVlan} -UniqueVlanAddr {uniqueVlanAddr}' \
+ ';'
+
+ def __init__(self, tcl_handler, ts_context):
+ self.tcl_server_ip = None
+ self._user = None
+ self._library_id = None
+ self._basic_library_id = None
+ self._tcl = tcl_handler
+ self._ts_context = ts_context
+ self.ts_ids = set()
+
+ # Test types names expected in session profile, test case and pod files
+ self._tc_types = {"SGW_Nodal", "SGW_Node", "MME_Nodal", "PGW_Node",
+ "PCRF_Node"}
+
+ self._class_param_config_handler = {
+ "Array": self._configure_array_param,
+ "TestNode": self._configure_test_node_param,
+ "Sut": self._configure_sut_param,
+ "Dmf": self._configure_dmf_param
+ }
+
+ def connect(self, tcl_server_ip, username, password):
+ """ Connect to TCL server with username and password
+
+ :param tcl_server_ip: TCL server IP address
+ :type tcl_server_ip: str
+ :param username: existing username on TCL server
+ :type username: str
+ :param password: password related to username on TCL server
+ :type password: str
+ """
+ LOG.info("connect: server='%s' user='%s'", tcl_server_ip, username)
+ res = self._tcl.execute(
+ "ls::login {} {} {}".format(tcl_server_ip, username, password))
+ if 'java0x' not in res: # handle assignment reflects login success
+ raise exceptions.LandslideTclException(
+ "connect: login failed ='{}'.".format(res))
+ self._library_id = self._tcl.execute(
+ "ls::get [ls::query LibraryInfo -userLibraryName {}] -Id".format(
+ username))
+ self._basic_library_id = self._get_library_id('Basic')
+ self.tcl_server_ip = tcl_server_ip
+ self._user = username
+ LOG.debug("connect: user='%s' me='%s' basic='%s'", self._user,
+ self._library_id,
+ self._basic_library_id)
+
+ def disconnect(self):
+ """ Disconnect from TCL server. Drop TCL connection configuration """
+ LOG.info("disconnect: server='%s' user='%s'",
+ self.tcl_server_ip, self._user)
+ self._tcl.execute("ls::logout")
+ self.tcl_server_ip = None
+ self._user = None
+ self._library_id = None
+ self._basic_library_id = None
+
+ def _add_test_server(self, name, ip):
+ try:
+ # Check if test server exists with name equal to _ts_name
+ ts_id = int(self.resolve_test_server_name(name))
+ except ValueError:
+ # Such test server does not exist. Attempt to create it
+ ts_id = self._tcl.execute(
+ 'ls::perform AddTs -Name "{}" -Ip "{}"'.format(name, ip))
+ try:
+ int(ts_id)
+ except ValueError:
+ # Failed to create test server, e.g. limit reached
+ raise RuntimeError(
+ 'Failed to create test server: "{}". {}'.format(name,
+ ts_id))
+ return ts_id
+
+ def _update_license(self, name):
+ """ Setup/update test server license
+
+ :param name: test server name
+ :type name: str
+ """
+ # Retrieve current TsInfo configuration, result stored in handle "ts"
+ self._tcl.execute(
+ 'set ts [ls::retrieve TsInfo -Name "{}"]'.format(name))
+
+ # Set license ID, if it differs from current one, update test server
+ _curr_lic_id = self._tcl.execute('ls::get $ts -RequestedLicense')
+ if _curr_lic_id != self._ts_context.license_data['lic_id']:
+ self._tcl.execute('ls::config $ts -RequestedLicense {}'.format(
+ self._ts_context.license_data['lic_id']))
+ self._tcl.execute('ls::perform ModifyTs $ts')
+
+ def _set_thread_model(self, name, thread_model):
+ # Retrieve test server configuration, store it in handle "tsc"
+ _cfguser_password = self._ts_context.vnfd_helper['mgmt-interface'][
+ 'cfguser_password']
+ self._tcl.execute(
+ 'set tsc [ls::perform RetrieveTsConfiguration '
+ '-name "{}" {}]'.format(name, _cfguser_password))
+ # Configure ThreadModel, if it differs from current one
+ thread_model_map = {'Legacy': 'V0',
+ 'Max': 'V1',
+ 'Fireball': 'V1_FB3'}
+ _model = thread_model_map[thread_model]
+ _curr_model = self._tcl.execute('ls::get $tsc -ThreadModel')
+ if _curr_model != _model:
+ self._tcl.execute(
+ 'ls::config $tsc -ThreadModel "{}"'.format(_model))
+ self._tcl.execute(
+ 'ls::perform ApplyTsConfiguration $tsc {}'.format(
+ _cfguser_password))
+
+ def create_test_server(self, test_server):
+ _ts_thread_model = test_server.get('thread_model')
+ _ts_name = test_server['name']
+
+ ts_id = self._add_test_server(_ts_name, test_server['ip'])
+
+ self._update_license(_ts_name)
+
+ # Skip below code modifying thread_model if it is not defined
+ if _ts_thread_model:
+ self._set_thread_model(_ts_name, _ts_thread_model)
+
+ return ts_id
+
+ def create_test_session(self, test_session):
+ """ Create, configure and save Landslide test session object.
+
+ :param test_session: Landslide TestSession object
+ :type test_session: dict
+ """
+ LOG.info("create_test_session: name='%s'", test_session['name'])
+ self._tcl.execute('set test_ [ls::create TestSession]')
+ self._tcl.execute('ls::config $test_ -Library {} -Name "{}"'.format(
+ self._library_id, test_session['name']))
+ self._tcl.execute('ls::config $test_ -Description "{}"'.format(
+ test_session['description']))
+ if 'keywords' in test_session:
+ self._tcl.execute('ls::config $test_ -Keywords "{}"'.format(
+ test_session['keywords']))
+ if 'duration' in test_session:
+ self._tcl.execute('ls::config $test_ -Duration "{}"'.format(
+ test_session['duration']))
+ if 'iterations' in test_session:
+ self._tcl.execute('ls::config $test_ -Iterations "{}"'.format(
+ test_session['iterations']))
+ if 'reservePorts' in test_session:
+ if test_session['reservePorts'] == 'true':
+ self._tcl.execute('ls::config $test_ -Reserve Ports')
+
+ if 'reservations' in test_session:
+ for _reservation in test_session['reservations']:
+ self._configure_reservation(_reservation)
+
+ if 'reportOptions' in test_session:
+ self._configure_report_options(test_session['reportOptions'])
+
+ for _index, _group in enumerate(test_session['tsGroups']):
+ self._configure_ts_group(_group, _index)
+
+ self._save_test_session()
+
+ def create_dmf(self, dmf):
+ """ Create, configure and save Landslide Data Message Flow object.
+
+ :param dmf: Landslide Data Message Flow object
+ :type: dmf: dict
+ """
+ self._tcl.execute('set dmf_ [ls::create Dmf]')
+ _lib_id = self._get_library_id(dmf['dmf']['library'])
+ self._tcl.execute('ls::config $dmf_ -Library {} -Name "{}"'.format(
+ _lib_id,
+ dmf['dmf']['name']))
+ for _param_key in dmf:
+ if _param_key == 'dmf':
+ continue
+ _param_value = dmf[_param_key]
+ if isinstance(_param_value, dict):
+ # Configure complex parameter
+ _tcl_cmd = 'ls::config $dmf_'
+ for _sub_param_key in _param_value:
+ _sub_param_value = _param_value[_sub_param_key]
+ if isinstance(_sub_param_value, str):
+ _tcl_cmd += ' -{} "{}"'.format(_sub_param_key,
+ _sub_param_value)
+ else:
+ _tcl_cmd += ' -{} {}'.format(_sub_param_key,
+ _sub_param_value)
+
+ self._tcl.execute(_tcl_cmd)
+ else:
+ # Configure simple parameter
+ if isinstance(_param_value, str):
+ self._tcl.execute(
+ 'ls::config $dmf_ -{} "{}"'.format(_param_key,
+ _param_value))
+ else:
+ self._tcl.execute(
+ 'ls::config $dmf_ -{} {}'.format(_param_key,
+ _param_value))
+ self._save_dmf()
+
+ def configure_dmf(self, dmf):
+ # Use create to reconfigure and overwrite existing dmf
+ self.create_dmf(dmf)
+
+ def delete_dmf(self, dmf):
+ raise NotImplementedError
+
+ def _save_dmf(self):
+ # Call 'Validate' to set default values for missing parameters
+ res = self._tcl.execute('ls::perform Validate -Dmf $dmf_')
+ if res == 'Invalid':
+ res = self._tcl.execute('ls::get $dmf_ -ErrorsAndWarnings')
+ LOG.error("_save_dmf: %s", res)
+ raise exceptions.LandslideTclException("_save_dmf: {}".format(res))
+ else:
+ res = self._tcl.execute('ls::save $dmf_ -overwrite')
+ LOG.debug("_save_dmf: result (%s)", res)
+
+ def _configure_report_options(self, options):
+ for _option_key in options:
+ _option_value = options[_option_key]
+ if _option_key == 'format':
+ _format = 0
+ if _option_value == 'CSV':
+ _format = 1
+ self._tcl.execute(
+ 'ls::config $test_.ReportOptions -Format {} '
+ '-Ts -3 -Tc -3'.format(_format))
+ else:
+ self._tcl.execute(
+ 'ls::config $test_.ReportOptions -{} {}'.format(
+ _option_key,
+ _option_value))
+
+ def _configure_ts_group(self, ts_group, ts_group_index):
+ try:
+ _ts_id = int(self.resolve_test_server_name(ts_group['tsId']))
+ except ValueError:
+ raise RuntimeError('Test server name "{}" does not exist.'.format(
+ ts_group['tsId']))
+ if _ts_id not in self.ts_ids:
+ self._tcl.execute(
+ 'set tss_ [ls::create TsGroup -under $test_ -tsId {} ]'.format(
+ _ts_id))
+ self.ts_ids.add(_ts_id)
+ for _case in ts_group.get('testCases', []):
+ self._configure_tc_type(_case, ts_group_index)
+
+ self._configure_preresolved_arp(ts_group.get('preResolvedArpAddress'))
+
+ def _configure_tc_type(self, tc, ts_group_index):
+ if tc['type'] not in self._tc_types:
+ raise RuntimeError('Test type {} not supported.'.format(
+ tc['type']))
+ tc['type'] = tc['type'].replace('_', ' ')
+ res = self._tcl.execute(
+ 'set tc_ [ls::retrieve testcase -libraryId {0} "{1}"]'.format(
+ self._basic_library_id, tc['type']))
+ if 'Invalid' in res:
+ raise RuntimeError('Test type {} not found in "Basic" '
+ 'library.'.format(tc['type']))
+ self._tcl.execute(
+ 'ls::config $test_.TsGroup({}) -children-Tc $tc_'.format(
+ ts_group_index))
+ self._tcl.execute('ls::config $tc_ -Library {0} -Name "{1}"'.format(
+ self._basic_library_id, tc['name']))
+ self._tcl.execute(
+ 'ls::config $tc_ -Description "{}"'.format(tc['type']))
+ self._tcl.execute(
+ 'ls::config $tc_ -Keywords "GTP LTE {}"'.format(tc['type']))
+ if 'linked' in tc:
+ self._tcl.execute(
+ 'ls::config $tc_ -Linked {}'.format(tc['linked']))
+ if 'AssociatedPhys' in tc:
+ self._tcl.execute('ls::config $tc_ -AssociatedPhys "{}"'.format(
+ tc['AssociatedPhys']))
+ if 'parameters' in tc:
+ self._configure_parameters(tc['parameters'])
+
+ def _configure_parameters(self, params):
+ self._tcl.execute('set p_ [ls::get $tc_ -children-Parameters(0)]')
+ for _param_key in sorted(params):
+ _param_value = params[_param_key]
+ if isinstance(_param_value, dict):
+ # Configure complex parameter
+ if _param_value['class'] in self._class_param_config_handler:
+ self._class_param_config_handler[_param_value['class']](
+ _param_key,
+ _param_value)
+ else:
+ # Configure simple parameter
+ self._tcl.execute(
+ 'ls::create {} -under $p_ -Value "{}"'.format(
+ _param_key,
+ _param_value))
+
+ def _configure_array_param(self, name, params):
+ self._tcl.execute('ls::create -Array-{} -under $p_ ;'.format(name))
+ for param in params['array']:
+ self._tcl.execute(
+ 'ls::create ArrayItem -under $p_.{} -Value "{}"'.format(name,
+ param))
+
+ def _configure_test_node_param(self, name, params):
+ _params = self.DEFAULT_TEST_NODE
+ _params.update(params)
+
+ # TCL command expects lower case 'true' or 'false'
+ _params['ethStatsEnabled'] = str(_params['ethStatsEnabled']).lower()
+ _params['uniqueVlanAddr'] = str(_params['uniqueVlanAddr']).lower()
+
+ cmd = self.TEST_NODE_CMD.format(name, **_params)
+ self._tcl.execute(cmd)
+
+ def _configure_sut_param(self, name, params):
+ self._tcl.execute(
+ 'ls::create -Sut-{} -under $p_ -Name "{}";'.format(name,
+ params['name']))
+
+ def _configure_dmf_param(self, name, params):
+ self._tcl.execute('ls::create -Dmf-{} -under $p_ ;'.format(name))
+
+ for _flow_index, _flow in enumerate(params['mainflows']):
+ _lib_id = self._get_library_id(_flow['library'])
+ self._tcl.execute(
+ 'ls::perform AddDmfMainflow $p_.Dmf {} "{}"'.format(
+ _lib_id,
+ _flow['name']))
+
+ if not params.get('instanceGroups'):
+ return
+
+ _instance_group = params['instanceGroups'][_flow_index]
+
+ # Traffic Mixer parameters handling
+ for _key in ['mixType', 'rate']:
+ if _key in _instance_group:
+ self._tcl.execute(
+ 'ls::config $p_.Dmf.InstanceGroup({}) -{} {}'.format(
+ _flow_index, _key, _instance_group[_key]))
+
+ # Assignments parameters handling
+ for _row_id, _row in enumerate(_instance_group.get('rows', [])):
+ self._tcl.execute(
+ 'ls::config $p_.Dmf.InstanceGroup({}).Row({}) -Node {} '
+ '-OverridePort {} -ClientPort {} -Context {} -Role {} '
+ '-PreferredTransport {} -RatingGroup {} '
+ '-ServiceID {}'.format(
+ _flow_index, _row_id, _row['node'],
+ _row['overridePort'], _row['clientPort'],
+ _row['context'], _row['role'], _row['transport'],
+ _row['ratingGroup'], _row['serviceId']))
+
+ def _configure_reservation(self, reservation):
+ _ts_id = self.resolve_test_server_name(reservation['tsId'])
+ self._tcl.execute(
+ 'set reservation_ [ls::create Reservation -under $test_]')
+ self._tcl.execute(
+ 'ls::config $reservation_ -TsIndex {} -TsId {} '
+ '-TsName "{}"'.format(reservation['tsIndex'],
+ _ts_id,
+ reservation['tsName']))
+ for _subnet in reservation['phySubnets']:
+ self._tcl.execute(
+ 'set physubnet_ [ls::create PhySubnet -under $reservation_]')
+ self._tcl.execute(
+ 'ls::config $physubnet_ -Name "{}" -Base "{}" -Mask "{}" '
+ '-NumIps {}'.format(_subnet['name'], _subnet['base'],
+ _subnet['mask'], _subnet['numIps']))
+
+ def _configure_preresolved_arp(self, pre_resolved_arp):
+ if not pre_resolved_arp: # Pre-resolved ARP configuration not found
+ return
+ for _entry in pre_resolved_arp:
+ # TsGroup handle name should correspond in _configure_ts_group()
+ self._tcl.execute(
+ 'ls::create PreResolvedArpAddress -under $tss_ '
+ '-StartingAddress "{StartingAddress}" '
+ '-NumNodes {NumNodes}'.format(**_entry))
+
+ def delete_test_session(self, test_session):
+ raise NotImplementedError
+
+ def _save_test_session(self):
+ # Call 'Validate' to set default values for missing parameters
+ res = self._tcl.execute('ls::perform Validate -TestSession $test_')
+ if res == 'Invalid':
+ res = self._tcl.execute('ls::get $test_ -ErrorsAndWarnings')
+ raise exceptions.LandslideTclException(
+ "Test session validation failed. Server response: {}".format(
+ res))
+ else:
+ self._tcl.execute('ls::save $test_ -overwrite')
+ LOG.debug("Test session saved successfully.")
+
+ def _get_library_id(self, library):
+ _library_id = self._tcl.execute(
+ "ls::get [ls::query LibraryInfo -systemLibraryName {}] -Id".format(
+ library))
+ try:
+ int(_library_id)
+ return _library_id
+ except ValueError:
+ pass
+
+ _library_id = self._tcl.execute(
+ "ls::get [ls::query LibraryInfo -userLibraryName {}] -Id".format(
+ library))
+ try:
+ int(_library_id)
+ except ValueError:
+ LOG.error("_get_library_id: library='%s' not found.", library)
+ raise exceptions.LandslideTclException(
+ "_get_library_id: library='{}' not found.".format(
+ library))
+
+ return _library_id
+
+ def resolve_test_server_name(self, ts_name):
+ return self._tcl.execute("ls::query TsId {}".format(ts_name))
+
+
+class LsTclHandler(object):
+ """Landslide TCL Handler class"""
+
+ LS_OK = "ls_ok"
+ JRE_PATH = net_serv_utils.get_nsb_option('jre_path_i386')
+
+ def __init__(self):
+ self.tcl_cmds = {}
+ self._ls = LsApi(jre_path=self.JRE_PATH)
+ self._ls.tcl(
+ "ls::config ApiOptions -NoReturnSuccessResponseString '{}'".format(
+ self.LS_OK))
+
+ def execute(self, command):
+ res = self._ls.tcl(command)
+ self.tcl_cmds[command] = res
+ return res
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_ping.py b/yardstick/network_services/vnf_generic/vnf/tg_ping.py
index a989543f5..5c8819119 100644
--- a/yardstick/network_services/vnf_generic/vnf/tg_ping.py
+++ b/yardstick/network_services/vnf_generic/vnf/tg_ping.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_pktgen.py b/yardstick/network_services/vnf_generic/vnf/tg_pktgen.py
new file mode 100644
index 000000000..5da2178af
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/tg_pktgen.py
@@ -0,0 +1,88 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+import time
+
+from yardstick.common import constants
+from yardstick.common import exceptions
+from yardstick.common import utils
+from yardstick.network_services.vnf_generic.vnf import base as vnf_base
+
+
+LOG = logging.getLogger(__name__)
+
+
+class PktgenTrafficGen(vnf_base.GenericTrafficGen):
+ """DPDK Pktgen traffic generator
+
+ Website: http://pktgen-dpdk.readthedocs.io/en/latest/index.html
+ """
+
+ TIMEOUT = 30
+
+ def __init__(self, name, vnfd):
+ vnf_base.GenericTrafficGen.__init__(self, name, vnfd)
+ self._traffic_profile = None
+ self._node_ip = vnfd['mgmt-interface'].get('ip')
+ self._lua_node_port = self._get_lua_node_port(
+ vnfd['mgmt-interface'].get('service_ports', []))
+ self._rate = 1
+
+ def instantiate(self, scenario_cfg, context_cfg): # pragma: no cover
+ pass
+
+ def run_traffic(self, traffic_profile):
+ self._traffic_profile = traffic_profile
+ self._traffic_profile.init(self._node_ip, self._lua_node_port)
+ utils.wait_until_true(self._is_running, timeout=self.TIMEOUT,
+ sleep=2)
+
+ def terminate(self): # pragma: no cover
+ pass
+
+ def collect_kpi(self): # pragma: no cover
+ pass
+
+ def scale(self, flavor=''): # pragma: no cover
+ pass
+
+ def wait_for_instantiate(self): # pragma: no cover
+ pass
+
+ def runner_method_start_iteration(self):
+ # pragma: no cover
+ LOG.debug('Start method')
+ # NOTE(ralonsoh): 'rate' should be modified between iterations. The
+ # current implementation is just for testing.
+ self._rate += 1
+ self._traffic_profile.start()
+ self._traffic_profile.rate(self._rate)
+ time.sleep(4)
+ self._traffic_profile.stop()
+
+ @staticmethod
+ def _get_lua_node_port(service_ports):
+ for port in (port for port in service_ports if
+ int(port['port']) == constants.LUA_PORT):
+ return int(port['node_port'])
+ # NOTE(ralonsoh): in case LUA port is not present, an exception should
+ # be raised.
+
+ def _is_running(self):
+ try:
+ self._traffic_profile.help()
+ return True
+ except exceptions.PktgenActionError:
+ return False
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_prox.py b/yardstick/network_services/vnf_generic/vnf/tg_prox.py
index 151252ce8..65b7bac10 100644
--- a/yardstick/network_services/vnf_generic/vnf/tg_prox.py
+++ b/yardstick/network_services/vnf_generic/vnf/tg_prox.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,9 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
-
import logging
+import copy
from yardstick.network_services.utils import get_nsb_option
from yardstick.network_services.vnf_generic.vnf.prox_vnf import ProxApproxVnf
@@ -30,23 +29,13 @@ class ProxTrafficGen(SampleVNFTrafficGen):
LUA_PARAMETER_NAME = "gen"
WAIT_TIME = 1
- @staticmethod
- def _sort_vpci(vnfd):
- """
-
- :param vnfd: vnfd.yaml
- :return: trex_cfg.yaml file
- """
-
- def key_func(interface):
- return interface["virtual-interface"]["vpci"], interface["name"]
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ vnfd_cpy = copy.deepcopy(vnfd)
+ super(ProxTrafficGen, self).__init__(name, vnfd_cpy)
- ext_intf = vnfd["vdu"][0]["external-interface"]
- return sorted(ext_intf, key=key_func)
-
- def __init__(self, name, vnfd, setup_env_helper_type=None, resource_helper_type=None):
- # don't call superclass, use custom wrapper of ProxApproxVnf
- self._vnf_wrapper = ProxApproxVnf(name, vnfd, setup_env_helper_type, resource_helper_type)
+ self._vnf_wrapper = ProxApproxVnf(
+ name, vnfd, setup_env_helper_type, resource_helper_type)
self.bin_path = get_nsb_option('bin_path', '')
self.name = self._vnf_wrapper.name
self.ssh_helper = self._vnf_wrapper.ssh_helper
@@ -59,10 +48,6 @@ class ProxTrafficGen(SampleVNFTrafficGen):
self._tg_process = None
self._traffic_process = None
- # used for generating stats
- self.vpci_if_name_ascending = self._sort_vpci(vnfd)
- self.resource_helper.vpci_if_name_ascending = self._sort_vpci(vnfd)
-
def terminate(self):
self._vnf_wrapper.terminate()
super(ProxTrafficGen, self).terminate()
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py b/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py
index 630c8b9c0..80812876d 100644
--- a/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py
+++ b/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,31 +12,624 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
-
-import time
-import os
+import ipaddress
import logging
-import sys
+import six
+import collections
-from yardstick.common.utils import ErrorClass
+from six import moves
+from yardstick.common import utils
+from yardstick.common import exceptions
+from yardstick.network_services.libs.ixia_libs.ixnet import ixnet_api
from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNFTrafficGen
from yardstick.network_services.vnf_generic.vnf.sample_vnf import ClientResourceHelper
from yardstick.network_services.vnf_generic.vnf.sample_vnf import Rfc2544ResourceHelper
-from yardstick.benchmark.scenarios.networking.vnf_generic import find_relative_file
+
LOG = logging.getLogger(__name__)
WAIT_AFTER_CFG_LOAD = 10
WAIT_FOR_TRAFFIC = 30
-IXIA_LIB = os.path.dirname(os.path.realpath(__file__))
-IXNET_LIB = os.path.join(IXIA_LIB, "../../libs/ixia_libs/IxNet")
-sys.path.append(IXNET_LIB)
+WAIT_PROTOCOLS_STARTED = 420
+
+
+class IxiaBasicScenario(object):
+ """Ixia Basic scenario for flow from port to port"""
+
+ def __init__(self, client, context_cfg, ixia_cfg):
+
+ self.client = client
+ self.context_cfg = context_cfg
+ self.ixia_cfg = ixia_cfg
+
+ self._uplink_vports = None
+ self._downlink_vports = None
+
+ def apply_config(self):
+ pass
+
+ def run_protocols(self):
+ pass
+
+ def stop_protocols(self):
+ pass
+
+ def create_traffic_model(self, traffic_profile):
+ vports = self.client.get_vports()
+ self._uplink_vports = vports[::2]
+ self._downlink_vports = vports[1::2]
+ self.client.create_traffic_model(self._uplink_vports,
+ self._downlink_vports,
+ traffic_profile)
+
+ def _get_stats(self):
+ return self.client.get_statistics()
+
+ def generate_samples(self, resource_helper, ports, duration):
+ stats = self._get_stats()
+
+ samples = {}
+ # this is not DPDK port num, but this is whatever number we gave
+ # when we selected ports and programmed the profile
+ for port_num in ports:
+ try:
+ # reverse lookup port name from port_num so the stats dict is descriptive
+ intf = resource_helper.vnfd_helper.find_interface_by_port(port_num)
+ port_name = intf['name']
+ avg_latency = stats['Store-Forward_Avg_latency_ns'][port_num]
+ min_latency = stats['Store-Forward_Min_latency_ns'][port_num]
+ max_latency = stats['Store-Forward_Max_latency_ns'][port_num]
+ samples[port_name] = {
+ 'RxThroughputBps': float(stats['Bytes_Rx'][port_num]) / duration,
+ 'TxThroughputBps': float(stats['Bytes_Tx'][port_num]) / duration,
+ 'InPackets': int(stats['Valid_Frames_Rx'][port_num]),
+ 'OutPackets': int(stats['Frames_Tx'][port_num]),
+ 'InBytes': int(stats['Bytes_Rx'][port_num]),
+ 'OutBytes': int(stats['Bytes_Tx'][port_num]),
+ 'RxThroughput': float(stats['Valid_Frames_Rx'][port_num]) / duration,
+ 'TxThroughput': float(stats['Frames_Tx'][port_num]) / duration,
+ 'LatencyAvg': utils.safe_cast(avg_latency, int, 0),
+ 'LatencyMin': utils.safe_cast(min_latency, int, 0),
+ 'LatencyMax': utils.safe_cast(max_latency, int, 0)
+ }
+ except IndexError:
+ pass
+
+ return samples
+
+ def update_tracking_options(self):
+ pass
+
+ def get_tc_rfc2544_options(self):
+ pass
+
+
+class IxiaL3Scenario(IxiaBasicScenario):
+ """Ixia scenario for L3 flow between static ip's"""
+
+ def _add_static_ips(self):
+ vports = self.client.get_vports()
+ uplink_intf_vport = [(self.client.get_static_interface(vport), vport)
+ for vport in vports[::2]]
+ downlink_intf_vport = [(self.client.get_static_interface(vport), vport)
+ for vport in vports[1::2]]
+
+ for index in range(len(uplink_intf_vport)):
+ intf, vport = uplink_intf_vport[index]
+ try:
+ iprange = self.ixia_cfg['flow'].get('src_ip')[index]
+ start_ip = utils.get_ip_range_start(iprange)
+ count = utils.get_ip_range_count(iprange)
+ self.client.add_static_ipv4(intf, vport, start_ip, count, '32')
+ except IndexError:
+ raise exceptions.IncorrectFlowOption(
+ option="src_ip", link="uplink_{}".format(index))
+
+ intf, vport = downlink_intf_vport[index]
+ try:
+ iprange = self.ixia_cfg['flow'].get('dst_ip')[index]
+ start_ip = utils.get_ip_range_start(iprange)
+ count = utils.get_ip_range_count(iprange)
+ self.client.add_static_ipv4(intf, vport, start_ip, count, '32')
+ except IndexError:
+ raise exceptions.IncorrectFlowOption(
+ option="dst_ip", link="downlink_{}".format(index))
+
+ def _add_interfaces(self):
+ vports = self.client.get_vports()
+ uplink_vports = (vport for vport in vports[::2])
+ downlink_vports = (vport for vport in vports[1::2])
+
+ ix_node = next(node for _, node in self.context_cfg['nodes'].items()
+ if node['role'] == 'IxNet')
+
+ for intf in ix_node['interfaces'].values():
+ ip = intf.get('local_ip')
+ mac = intf.get('local_mac')
+ gateway = None
+ try:
+ gateway = next(route.get('gateway')
+ for route in ix_node.get('routing_table')
+ if route.get('if') == intf.get('ifname'))
+ except StopIteration:
+ LOG.debug("Gateway not provided")
+
+ if 'uplink' in intf.get('vld_id'):
+ self.client.add_interface(next(uplink_vports),
+ ip, mac, gateway)
+ else:
+ self.client.add_interface(next(downlink_vports),
+ ip, mac, gateway)
+
+ def apply_config(self):
+ self._add_interfaces()
+ self._add_static_ips()
+
+ def create_traffic_model(self, traffic_profile):
+ vports = self.client.get_vports()
+ self._uplink_vports = vports[::2]
+ self._downlink_vports = vports[1::2]
+
+ uplink_endpoints = [port + '/protocols/static'
+ for port in self._uplink_vports]
+ downlink_endpoints = [port + '/protocols/static'
+ for port in self._downlink_vports]
+
+ self.client.create_ipv4_traffic_model(uplink_endpoints,
+ downlink_endpoints,
+ traffic_profile)
+
+
+class IxiaPppoeClientScenario(object):
+ def __init__(self, client, context_cfg, ixia_cfg):
+
+ self.client = client
+
+ self._uplink_vports = None
+ self._downlink_vports = None
+
+ self._access_topologies = []
+ self._core_topologies = []
+
+ self._context_cfg = context_cfg
+ self._ixia_cfg = ixia_cfg
+ self.protocols = []
+ self.device_groups = []
+
+ def apply_config(self):
+ vports = self.client.get_vports()
+ self._uplink_vports = vports[::2]
+ self._downlink_vports = vports[1::2]
+ self._fill_ixia_config()
+ self._apply_access_network_config()
+ self._apply_core_network_config()
+
+ def create_traffic_model(self, traffic_profile):
+ endpoints_id_pairs = self._get_endpoints_src_dst_id_pairs(
+ traffic_profile.full_profile)
+ endpoints_obj_pairs = \
+ self._get_endpoints_src_dst_obj_pairs(endpoints_id_pairs)
+ if endpoints_obj_pairs:
+ uplink_endpoints = endpoints_obj_pairs[::2]
+ downlink_endpoints = endpoints_obj_pairs[1::2]
+ else:
+ uplink_endpoints = self._access_topologies
+ downlink_endpoints = self._core_topologies
+ self.client.create_ipv4_traffic_model(uplink_endpoints,
+ downlink_endpoints,
+ traffic_profile)
+
+ def run_protocols(self):
+ LOG.info('PPPoE Scenario - Start Protocols')
+ self.client.start_protocols()
+ utils.wait_until_true(
+ lambda: self.client.is_protocols_running(self.protocols),
+ timeout=WAIT_PROTOCOLS_STARTED, sleep=2)
+
+ def stop_protocols(self):
+ LOG.info('PPPoE Scenario - Stop Protocols')
+ self.client.stop_protocols()
+
+ def _get_intf_addr(self, intf):
+ """Retrieve interface IP address and mask
+
+ :param intf: could be the string which represents IP address
+ with mask (e.g 192.168.10.2/24) or a dictionary with the host
+ name and the port (e.g. {'tg__0': 'xe1'})
+ :return: (tuple) pair of ip address and mask
+ """
+ if isinstance(intf, six.string_types):
+ ip, mask = tuple(intf.split('/'))
+ return ip, int(mask)
+
+ node_name, intf_name = next(iter(intf.items()))
+ node = self._context_cfg["nodes"].get(node_name, {})
+ interface = node.get("interfaces", {})[intf_name]
+ ip = interface["local_ip"]
+ mask = interface["netmask"]
+ ipaddr = ipaddress.ip_network(six.text_type('{}/{}'.format(ip, mask)),
+ strict=False)
+ return ip, ipaddr.prefixlen
+
+ @staticmethod
+ def _get_endpoints_src_dst_id_pairs(flows_params):
+ """Get list of flows src/dst port pairs
+
+ Create list of flows src/dst port pairs based on traffic profile
+ flows data. Each uplink/downlink pair in traffic profile represents
+ specific flows between the pair of ports.
+
+ Example ('port' key represents port on which flow will be created):
+
+ Input flows data:
+ uplink_0:
+ ipv4:
+ id: 1
+ port: xe0
+ downlink_0:
+ ipv4:
+ id: 2
+ port: xe1
+ uplink_1:
+ ipv4:
+ id: 3
+ port: xe2
+ downlink_1:
+ ipv4:
+ id: 4
+ port: xe3
+
+ Result list: ['xe0', 'xe1', 'xe2', 'xe3']
+
+ Result list means that the following flows pairs will be created:
+ - uplink 0: port xe0 <-> port xe1
+ - downlink 0: port xe1 <-> port xe0
+ - uplink 1: port xe2 <-> port xe3
+ - downlink 1: port xe3 <-> port xe2
+
+ :param flows_params: ordered dict of traffic profile flows params
+ :return: (list) list of flows src/dst ports
+ """
+ if len(flows_params) % 2:
+ raise RuntimeError('Number of uplink/downlink pairs'
+ ' in traffic profile is not equal')
+ endpoint_pairs = []
+ for flow in flows_params:
+ port = flows_params[flow]['ipv4'].get('port')
+ if port is None:
+ continue
+ endpoint_pairs.append(port)
+ return endpoint_pairs
+
+ def _get_endpoints_src_dst_obj_pairs(self, endpoints_id_pairs):
+ """Create list of uplink/downlink device groups pairs
+
+ Based on traffic profile options, create list of uplink/downlink
+ device groups pairs between which flow groups will be created:
+
+ 1. In case uplink/downlink flows in traffic profile doesn't have
+ specified 'port' key, flows will be created between topologies
+ on corresponding access and core port.
+ E.g.:
+ Access topology on xe0: topology1
+ Core topology on xe1: topology2
+ Flows will be created between:
+ topology1 -> topology2
+ topology2 -> topology1
+
+ 2. In case uplink/downlink flows in traffic profile have specified
+ 'port' key, flows will be created between device groups on this
+ port.
+ E.g., for the following traffic profile
+ uplink_0:
+ port: xe0
+ downlink_0:
+ port: xe1
+ uplink_1:
+ port: xe0
+ downlink_0:
+ port: xe3
+ Flows will be created between:
+ Port xe0 (dg1) -> Port xe1 (dg1)
+ Port xe1 (dg1) -> Port xe0 (dg1)
+ Port xe0 (dg2) -> Port xe3 (dg1)
+ Port xe3 (dg3) -> Port xe0 (dg1)
+
+ :param endpoints_id_pairs: (list) List of uplink/downlink flows ports
+ pairs
+ :return: (list) list of uplink/downlink device groups descriptors pairs
+ """
+ pppoe = self._ixia_cfg['pppoe_client']
+ sessions_per_port = pppoe['sessions_per_port']
+ sessions_per_svlan = pppoe['sessions_per_svlan']
+ svlan_count = int(sessions_per_port / sessions_per_svlan)
+
+ uplink_ports = [p['tg__0'] for p in self._ixia_cfg['flow']['src_ip']]
+ downlink_ports = [p['tg__0'] for p in self._ixia_cfg['flow']['dst_ip']]
+ uplink_port_topology_map = zip(uplink_ports, self._access_topologies)
+ downlink_port_topology_map = zip(downlink_ports, self._core_topologies)
+
+ port_to_dev_group_mapping = {}
+ for port, topology in uplink_port_topology_map:
+ topology_dgs = self.client.get_topology_device_groups(topology)
+ port_to_dev_group_mapping[port] = topology_dgs
+ for port, topology in downlink_port_topology_map:
+ topology_dgs = self.client.get_topology_device_groups(topology)
+ port_to_dev_group_mapping[port] = topology_dgs
+
+ uplink_endpoints = endpoints_id_pairs[::2]
+ downlink_endpoints = endpoints_id_pairs[1::2]
+
+ uplink_dev_groups = []
+ group_up = [uplink_endpoints[i:i + svlan_count]
+ for i in range(0, len(uplink_endpoints), svlan_count)]
+
+ for group in group_up:
+ for i, port in enumerate(group):
+ uplink_dev_groups.append(port_to_dev_group_mapping[port][i])
+
+ downlink_dev_groups = []
+ for port in downlink_endpoints:
+ downlink_dev_groups.append(port_to_dev_group_mapping[port][0])
+
+ endpoint_obj_pairs = []
+ [endpoint_obj_pairs.extend([up, down])
+ for up, down in zip(uplink_dev_groups, downlink_dev_groups)]
+
+ return endpoint_obj_pairs
+
+ def _fill_ixia_config(self):
+ pppoe = self._ixia_cfg["pppoe_client"]
+ ipv4 = self._ixia_cfg["ipv4_client"]
+
+ _ip = [self._get_intf_addr(intf)[0] for intf in pppoe["ip"]]
+ self._ixia_cfg["pppoe_client"]["ip"] = _ip
+
+ _ip = [self._get_intf_addr(intf)[0] for intf in ipv4["gateway_ip"]]
+ self._ixia_cfg["ipv4_client"]["gateway_ip"] = _ip
+
+ addrs = [self._get_intf_addr(intf) for intf in ipv4["ip"]]
+ _ip = [addr[0] for addr in addrs]
+ _prefix = [addr[1] for addr in addrs]
+
+ self._ixia_cfg["ipv4_client"]["ip"] = _ip
+ self._ixia_cfg["ipv4_client"]["prefix"] = _prefix
+
+ def _apply_access_network_config(self):
+ pppoe = self._ixia_cfg["pppoe_client"]
+ sessions_per_port = pppoe['sessions_per_port']
+ sessions_per_svlan = pppoe['sessions_per_svlan']
+ svlan_count = int(sessions_per_port / sessions_per_svlan)
+
+ # add topology per uplink port (access network)
+ for access_tp_id, vport in enumerate(self._uplink_vports):
+ name = 'Topology access {}'.format(access_tp_id)
+ tp = self.client.add_topology(name, vport)
+ self._access_topologies.append(tp)
+ # add device group per svlan
+ for dg_id in range(svlan_count):
+ s_vlan_id = int(pppoe['s_vlan']) + dg_id + access_tp_id * svlan_count
+ s_vlan = ixnet_api.Vlan(vlan_id=s_vlan_id)
+ c_vlan = ixnet_api.Vlan(vlan_id=pppoe['c_vlan'], vlan_id_step=1)
+ name = 'SVLAN {}'.format(s_vlan_id)
+ dg = self.client.add_device_group(tp, name, sessions_per_svlan)
+ self.device_groups.append(dg)
+ # add ethernet layer to device group
+ ethernet = self.client.add_ethernet(dg, 'Ethernet')
+ self.protocols.append(ethernet)
+ self.client.add_vlans(ethernet, [s_vlan, c_vlan])
+ # add ppp over ethernet
+ if 'pap_user' in pppoe:
+ ppp = self.client.add_pppox_client(ethernet, 'pap',
+ pppoe['pap_user'],
+ pppoe['pap_password'])
+ else:
+ ppp = self.client.add_pppox_client(ethernet, 'chap',
+ pppoe['chap_user'],
+ pppoe['chap_password'])
+ self.protocols.append(ppp)
+
+ def _apply_core_network_config(self):
+ ipv4 = self._ixia_cfg["ipv4_client"]
+ sessions_per_port = ipv4['sessions_per_port']
+ sessions_per_vlan = ipv4['sessions_per_vlan']
+ vlan_count = int(sessions_per_port / sessions_per_vlan)
+
+ # add topology per downlink port (core network)
+ for core_tp_id, vport in enumerate(self._downlink_vports):
+ name = 'Topology core {}'.format(core_tp_id)
+ tp = self.client.add_topology(name, vport)
+ self._core_topologies.append(tp)
+ # add device group per vlan
+ for dg_id in range(vlan_count):
+ name = 'Core port {}'.format(core_tp_id)
+ dg = self.client.add_device_group(tp, name, sessions_per_vlan)
+ self.device_groups.append(dg)
+ # add ethernet layer to device group
+ ethernet = self.client.add_ethernet(dg, 'Ethernet')
+ self.protocols.append(ethernet)
+ if 'vlan' in ipv4:
+ vlan_id = int(ipv4['vlan']) + dg_id + core_tp_id * vlan_count
+ vlan = ixnet_api.Vlan(vlan_id=vlan_id)
+ self.client.add_vlans(ethernet, [vlan])
+ # add ipv4 layer
+ gw_ip = ipv4['gateway_ip'][core_tp_id]
+ # use gw addr to generate ip addr from the same network
+ ip_addr = ipaddress.IPv4Address(gw_ip) + 1
+ ipv4_obj = self.client.add_ipv4(ethernet, name='ipv4',
+ addr=ip_addr,
+ addr_step='0.0.0.1',
+ prefix=ipv4['prefix'][core_tp_id],
+ gateway=gw_ip)
+ self.protocols.append(ipv4_obj)
+ if ipv4.get("bgp"):
+ bgp_peer_obj = self.client.add_bgp(ipv4_obj,
+ dut_ip=ipv4["bgp"]["dut_ip"],
+ local_as=ipv4["bgp"]["as_number"],
+ bgp_type=ipv4["bgp"].get("bgp_type"))
+ self.protocols.append(bgp_peer_obj)
+
+ def update_tracking_options(self):
+ priority_map = {
+ 'raw': 'ipv4Raw0',
+ 'tos': {'precedence': 'ipv4Precedence0'},
+ 'dscp': {'defaultPHB': 'ipv4DefaultPhb0',
+ 'selectorPHB': 'ipv4ClassSelectorPhb0',
+ 'assuredPHB': 'ipv4AssuredForwardingPhb0',
+ 'expeditedPHB': 'ipv4ExpeditedForwardingPhb0'}
+ }
+
+ prio_trackby_key = 'ipv4Precedence0'
+
+ try:
+ priority = list(self._ixia_cfg['priority'])[0]
+ if priority == 'raw':
+ prio_trackby_key = priority_map[priority]
+ elif priority in ['tos', 'dscp']:
+ priority_type = list(self._ixia_cfg['priority'][priority])[0]
+ prio_trackby_key = priority_map[priority][priority_type]
+ except KeyError:
+ pass
+
+ tracking_options = ['flowGroup0', 'vlanVlanId0', prio_trackby_key]
+ self.client.set_flow_tracking(tracking_options)
+
+ def get_tc_rfc2544_options(self):
+ return self._ixia_cfg.get('rfc2544')
+
+ def _get_stats(self):
+ return self.client.get_pppoe_scenario_statistics()
+
+ @staticmethod
+ def get_flow_id_data(stats, flow_id, key):
+ result = [float(flow.get(key)) for flow in stats if flow['id'] == flow_id]
+ return sum(result) / len(result)
+
+ def get_priority_flows_stats(self, samples, duration):
+ results = {}
+ priorities = set([flow['IP_Priority'] for flow in samples])
+ for priority in priorities:
+ tx_frames = sum(
+ [int(flow['Tx_Frames']) for flow in samples
+ if flow['IP_Priority'] == priority])
+ rx_frames = sum(
+ [int(flow['Rx_Frames']) for flow in samples
+ if flow['IP_Priority'] == priority])
+ prio_flows_num = len([flow for flow in samples
+ if flow['IP_Priority'] == priority])
+ avg_latency_ns = sum(
+ [int(flow['Store-Forward_Avg_latency_ns']) for flow in samples
+ if flow['IP_Priority'] == priority]) / prio_flows_num
+ min_latency_ns = min(
+ [int(flow['Store-Forward_Min_latency_ns']) for flow in samples
+ if flow['IP_Priority'] == priority])
+ max_latency_ns = max(
+ [int(flow['Store-Forward_Max_latency_ns']) for flow in samples
+ if flow['IP_Priority'] == priority])
+ tx_throughput = float(tx_frames) / duration
+ rx_throughput = float(rx_frames) / duration
+ results[priority] = {
+ 'InPackets': rx_frames,
+ 'OutPackets': tx_frames,
+ 'RxThroughput': round(rx_throughput, 3),
+ 'TxThroughput': round(tx_throughput, 3),
+ 'LatencyAvg': utils.safe_cast(avg_latency_ns, int, 0),
+ 'LatencyMin': utils.safe_cast(min_latency_ns, int, 0),
+ 'LatencyMax': utils.safe_cast(max_latency_ns, int, 0)
+ }
+ return results
+
+ def generate_samples(self, resource_helper, ports, duration):
+
+ stats = self._get_stats()
+ samples = {}
+ ports_stats = stats['port_statistics']
+ flows_stats = stats['flow_statistic']
+ pppoe_subs_per_port = stats['pppox_client_per_port']
+
+ # Get sorted list of ixia ports names
+ ixia_port_names = sorted([data['port_name'] for data in ports_stats])
+
+ # Set 'port_id' key for ports stats items
+ for item in ports_stats:
+ port_id = item.pop('port_name').split('-')[-1].strip()
+ item['port_id'] = int(port_id)
+
+ # Set 'id' key for flows stats items
+ for item in flows_stats:
+ flow_id = item.pop('Flow_Group').split('-')[1].strip()
+ item['id'] = int(flow_id)
+
+ # Set 'port_id' key for pppoe subs per port stats
+ for item in pppoe_subs_per_port:
+ port_id = item.pop('subs_port').split('-')[-1].strip()
+ item['port_id'] = int(port_id)
+
+ # Map traffic flows to ports
+ port_flow_map = collections.defaultdict(set)
+ for item in flows_stats:
+ tx_port = item.pop('Tx_Port')
+ tx_port_index = ixia_port_names.index(tx_port)
+ port_flow_map[tx_port_index].update([item['id']])
+
+ # Sort ports stats
+ ports_stats = sorted(ports_stats, key=lambda k: k['port_id'])
+
+ # Get priority flows stats
+ prio_flows_stats = self.get_priority_flows_stats(flows_stats, duration)
+ samples['priority_stats'] = prio_flows_stats
+
+ # this is not DPDK port num, but this is whatever number we gave
+ # when we selected ports and programmed the profile
+ for port_num in ports:
+ try:
+ # reverse lookup port name from port_num so the stats dict is descriptive
+ intf = resource_helper.vnfd_helper.find_interface_by_port(port_num)
+ port_name = intf['name']
+ port_id = ports_stats[port_num]['port_id']
+ port_subs_stats = \
+ [port_data for port_data in pppoe_subs_per_port
+ if port_data.get('port_id') == port_id]
+
+ avg_latency = \
+ sum([float(self.get_flow_id_data(
+ flows_stats, flow, 'Store-Forward_Avg_latency_ns'))
+ for flow in port_flow_map[port_num]]) / len(port_flow_map[port_num])
+ min_latency = \
+ min([float(self.get_flow_id_data(
+ flows_stats, flow, 'Store-Forward_Min_latency_ns'))
+ for flow in port_flow_map[port_num]])
+ max_latency = \
+ max([float(self.get_flow_id_data(
+ flows_stats, flow, 'Store-Forward_Max_latency_ns'))
+ for flow in port_flow_map[port_num]])
+
+ samples[port_name] = {
+ 'RxThroughputBps': float(ports_stats[port_num]['Bytes_Rx']) / duration,
+ 'TxThroughputBps': float(ports_stats[port_num]['Bytes_Tx']) / duration,
+ 'InPackets': int(ports_stats[port_num]['Valid_Frames_Rx']),
+ 'OutPackets': int(ports_stats[port_num]['Frames_Tx']),
+ 'InBytes': int(ports_stats[port_num]['Bytes_Rx']),
+ 'OutBytes': int(ports_stats[port_num]['Bytes_Tx']),
+ 'RxThroughput': float(ports_stats[port_num]['Valid_Frames_Rx']) / duration,
+ 'TxThroughput': float(ports_stats[port_num]['Frames_Tx']) / duration,
+ 'LatencyAvg': utils.safe_cast(avg_latency, int, 0),
+ 'LatencyMin': utils.safe_cast(min_latency, int, 0),
+ 'LatencyMax': utils.safe_cast(max_latency, int, 0)
+ }
+
+ if port_subs_stats:
+ samples[port_name].update(
+ {'SessionsUp': int(port_subs_stats[0]['Sessions_Up']),
+ 'SessionsDown': int(port_subs_stats[0]['Sessions_Down']),
+ 'SessionsNotStarted': int(port_subs_stats[0]['Sessions_Not_Started']),
+ 'SessionsTotal': int(port_subs_stats[0]['Sessions_Total'])}
+ )
+
+ except IndexError:
+ pass
-try:
- from IxNet import IxNextgen
-except ImportError:
- IxNextgen = ErrorClass
+ return samples
class IxiaRfc2544Helper(Rfc2544ResourceHelper):
@@ -53,7 +646,13 @@ class IxiaResourceHelper(ClientResourceHelper):
super(IxiaResourceHelper, self).__init__(setup_helper)
self.scenario_helper = setup_helper.scenario_helper
- self.client = IxNextgen()
+ self._ixia_scenarios = {
+ "IxiaBasic": IxiaBasicScenario,
+ "IxiaL3": IxiaL3Scenario,
+ "IxiaPppoeClient": IxiaPppoeClientScenario,
+ }
+
+ self.client = ixnet_api.IxNextgen()
if rfc_helper_type is None:
rfc_helper_type = IxiaRfc2544Helper
@@ -61,54 +660,45 @@ class IxiaResourceHelper(ClientResourceHelper):
self.rfc_helper = rfc_helper_type(self.scenario_helper)
self.uplink_ports = None
self.downlink_ports = None
+ self.context_cfg = None
+ self._ix_scenario = None
self._connect()
def _connect(self, client=None):
- self.client._connect(self.vnfd_helper)
+ self.client.connect(self.vnfd_helper)
- def get_stats(self, *args, **kwargs):
- return self.client.ix_get_statistics()
+ def setup(self):
+ super(IxiaResourceHelper, self).setup()
+ self._init_ix_scenario()
def stop_collect(self):
+ self._ix_scenario.stop_protocols()
self._terminated.value = 1
- if self.client:
- self.client.ix_stop_traffic()
- def generate_samples(self, ports, key=None, default=None):
- stats = self.get_stats()
- last_result = stats[1]
- latency = stats[0]
+ def generate_samples(self, ports, duration):
+ return self._ix_scenario.generate_samples(self, ports, duration)
- samples = {}
- # this is not DPDK port num, but this is whatever number we gave
- # when we selected ports and programmed the profile
- for port_num in ports:
- try:
- # reverse lookup port name from port_num so the stats dict is descriptive
- intf = self.vnfd_helper.find_interface_by_port(port_num)
- port_name = intf["name"]
- samples[port_name] = {
- "rx_throughput_kps": float(last_result["Rx_Rate_Kbps"][port_num]),
- "tx_throughput_kps": float(last_result["Tx_Rate_Kbps"][port_num]),
- "rx_throughput_mbps": float(last_result["Rx_Rate_Mbps"][port_num]),
- "tx_throughput_mbps": float(last_result["Tx_Rate_Mbps"][port_num]),
- "in_packets": int(last_result["Valid_Frames_Rx"][port_num]),
- "out_packets": int(last_result["Frames_Tx"][port_num]),
- "RxThroughput": int(last_result["Valid_Frames_Rx"][port_num]) / 30,
- "TxThroughput": int(last_result["Frames_Tx"][port_num]) / 30,
- }
- if key:
- avg_latency = latency["Store-Forward_Avg_latency_ns"][port_num]
- min_latency = latency["Store-Forward_Min_latency_ns"][port_num]
- max_latency = latency["Store-Forward_Max_latency_ns"][port_num]
- samples[port_name][key] = \
- {"Store-Forward_Avg_latency_ns": avg_latency,
- "Store-Forward_Min_latency_ns": min_latency,
- "Store-Forward_Max_latency_ns": max_latency}
- except IndexError:
- pass
+ def _init_ix_scenario(self):
+ ixia_config = self.scenario_helper.scenario_cfg.get('ixia_config', 'IxiaBasic')
- return samples
+ if ixia_config in self._ixia_scenarios:
+ scenario_type = self._ixia_scenarios[ixia_config]
+
+ self._ix_scenario = scenario_type(self.client, self.context_cfg,
+ self.scenario_helper.scenario_cfg['options'])
+ else:
+ raise RuntimeError(
+ "IXIA config type '{}' not supported".format(ixia_config))
+
+ def _initialize_client(self, traffic_profile):
+ """Initialize the IXIA IxNetwork client and configure the server"""
+ self.client.clear_config()
+ self.client.assign_ports()
+ self._ix_scenario.apply_config()
+ self._ix_scenario.create_traffic_model(traffic_profile)
+
+ def update_tracking_options(self):
+ self._ix_scenario.update_tracking_options()
def run_traffic(self, traffic_profile):
if self._terminated.value:
@@ -116,18 +706,13 @@ class IxiaResourceHelper(ClientResourceHelper):
min_tol = self.rfc_helper.tolerance_low
max_tol = self.rfc_helper.tolerance_high
+ precision = self.rfc_helper.tolerance_precision
+ resolution = self.rfc_helper.resolution
default = "00:00:00:00:00:00"
self._build_ports()
-
- # we don't know client_file_name until runtime as instantiate
- client_file_name = \
- find_relative_file(self.scenario_helper.scenario_cfg['ixia_profile'],
- self.scenario_helper.scenario_cfg["task_path"])
- self.client.ix_load_config(client_file_name)
- time.sleep(WAIT_AFTER_CFG_LOAD)
-
- self.client.ix_assign_ports()
+ traffic_profile.update_traffic_profile(self)
+ self._initialize_client(traffic_profile)
mac = {}
for port_name in self.vnfd_helper.port_pairs.all_ports:
@@ -139,49 +724,106 @@ class IxiaResourceHelper(ClientResourceHelper):
mac["src_mac_{}".format(port_num)] = virt_intf.get("local_mac", default)
mac["dst_mac_{}".format(port_num)] = virt_intf.get("dst_mac", default)
- samples = {}
- # Generate ixia traffic config...
+ self._ix_scenario.run_protocols()
+
try:
while not self._terminated.value:
- traffic_profile.execute_traffic(self, self.client, mac)
+ first_run = traffic_profile.execute_traffic(self, self.client,
+ mac)
self.client_started.value = 1
- time.sleep(WAIT_FOR_TRAFFIC)
- self.client.ix_stop_traffic()
- samples = self.generate_samples(traffic_profile.ports)
+ # pylint: disable=unnecessary-lambda
+ utils.wait_until_true(lambda: self.client.is_traffic_stopped(),
+ timeout=traffic_profile.config.duration * 2)
+ rfc2544_opts = self._ix_scenario.get_tc_rfc2544_options()
+ samples = self.generate_samples(traffic_profile.ports,
+ traffic_profile.config.duration)
+
+ completed, samples = traffic_profile.get_drop_percentage(
+ samples, min_tol, max_tol, precision, resolution,
+ first_run=first_run, tc_rfc2544_opts=rfc2544_opts)
self._queue.put(samples)
- status, samples = traffic_profile.get_drop_percentage(self, samples, min_tol,
- max_tol, self.client, mac)
- current = samples['CurrentDropPercentage']
- if min_tol <= current <= max_tol or status == 'Completed':
+ if completed:
self._terminated.value = 1
- self.client.ix_stop_traffic()
- self._queue.put(samples)
+ except Exception: # pylint: disable=broad-except
+ LOG.exception('Run Traffic terminated')
+
+ self._ix_scenario.stop_protocols()
+ self.client_started.value = 0
+ self._terminated.value = 1
+
+ def run_test(self, traffic_profile, tasks_queue, results_queue, *args): # pragma: no cover
+ LOG.info("Ixia resource_helper run_test")
+ if self._terminated.value:
+ return
+
+ min_tol = self.rfc_helper.tolerance_low
+ max_tol = self.rfc_helper.tolerance_high
+ precision = self.rfc_helper.tolerance_precision
+ resolution = self.rfc_helper.resolution
+ default = "00:00:00:00:00:00"
- if not self.rfc_helper.is_done():
- self._terminated.value = 1
- return
+ self._build_ports()
+ traffic_profile.update_traffic_profile(self)
+ self._initialize_client(traffic_profile)
- traffic_profile.execute_traffic(self, self.client, mac)
- for _ in range(5):
- time.sleep(self.LATENCY_TIME_SLEEP)
- self.client.ix_stop_traffic()
- samples = self.generate_samples(traffic_profile.ports, 'latency', {})
+ mac = {}
+ for port_name in self.vnfd_helper.port_pairs.all_ports:
+ intf = self.vnfd_helper.find_interface(name=port_name)
+ virt_intf = intf["virtual-interface"]
+ # we only know static traffic id by reading the json
+ # this is used by _get_ixia_trafficrofile
+ port_num = self.vnfd_helper.port_num(intf)
+ mac["src_mac_{}".format(port_num)] = virt_intf.get("local_mac", default)
+ mac["dst_mac_{}".format(port_num)] = virt_intf.get("dst_mac", default)
+
+ self._ix_scenario.run_protocols()
+
+ try:
+ completed = False
+ self.rfc_helper.iteration.value = 0
+ self.client_started.value = 1
+ while completed is False and not self._terminated.value:
+ LOG.info("Wait for task ...")
+
+ try:
+ task = tasks_queue.get(True, 5)
+ except moves.queue.Empty:
+ continue
+ else:
+ if task != 'RUN_TRAFFIC':
+ continue
+
+ self.rfc_helper.iteration.value += 1
+ LOG.info("Got %s task, start iteration %d", task,
+ self.rfc_helper.iteration.value)
+ first_run = traffic_profile.execute_traffic(self, self.client,
+ mac)
+ # pylint: disable=unnecessary-lambda
+ utils.wait_until_true(lambda: self.client.is_traffic_stopped(),
+ timeout=traffic_profile.config.duration * 2)
+ samples = self.generate_samples(traffic_profile.ports,
+ traffic_profile.config.duration)
+
+ completed, samples = traffic_profile.get_drop_percentage(
+ samples, min_tol, max_tol, precision, resolution,
+ first_run=first_run)
self._queue.put(samples)
- traffic_profile.start_ixia_latency(self, self.client, mac)
- if self._terminated.value:
- break
- self.client.ix_stop_traffic()
- except Exception: # pylint: disable=broad-except
- LOG.exception("Run Traffic terminated")
+ if completed:
+ LOG.debug("IxiaResourceHelper::run_test - test completed")
+ results_queue.put('COMPLETE')
+ else:
+ results_queue.put('CONTINUE')
+ tasks_queue.task_done()
- self._terminated.value = 1
+ except Exception: # pylint: disable=broad-except
+ LOG.exception('Run Traffic terminated')
- def collect_kpi(self):
- self.rfc_helper.iteration.value += 1
- return super(IxiaResourceHelper, self).collect_kpi()
+ self._ix_scenario.stop_protocols()
+ self.client_started.value = 0
+ LOG.debug("IxiaResourceHelper::run_test done")
class IxiaTrafficGen(SampleVNFTrafficGen):
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_trex.py b/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_trex.py
index 4e9f4bdc1..a9c0222ac 100644
--- a/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_trex.py
+++ b/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_trex.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,74 +11,49 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-""" Trex traffic generation definitions which implements rfc2544 """
-from __future__ import absolute_import
-from __future__ import print_function
-import time
import logging
-from collections import Mapping
-
-from yardstick.network_services.vnf_generic.vnf.tg_trex import TrexTrafficGen
-from yardstick.network_services.vnf_generic.vnf.sample_vnf import Rfc2544ResourceHelper
-from yardstick.network_services.vnf_generic.vnf.tg_trex import TrexResourceHelper
-
-LOGGING = logging.getLogger(__name__)
+import time
+from six import moves
+from yardstick.common import utils
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+from yardstick.network_services.vnf_generic.vnf import tg_trex
+from trex_stl_lib.trex_stl_exceptions import STLError
-class TrexRfc2544ResourceHelper(Rfc2544ResourceHelper):
- def is_done(self):
- return self.latency and self.iteration.value > 10
+LOG = logging.getLogger(__name__)
-class TrexRfcResourceHelper(TrexResourceHelper):
+class TrexRfcResourceHelper(tg_trex.TrexResourceHelper):
- LATENCY_TIME_SLEEP = 120
- RUN_DURATION = 30
- WAIT_TIME = 3
+ SAMPLING_PERIOD = 2
+ TRANSIENT_PERIOD = 10
- def __init__(self, setup_helper, rfc_helper_type=None):
+ def __init__(self, setup_helper):
super(TrexRfcResourceHelper, self).__init__(setup_helper)
-
- if rfc_helper_type is None:
- rfc_helper_type = TrexRfc2544ResourceHelper
-
- self.rfc2544_helper = rfc_helper_type(self.scenario_helper)
+ self.rfc2544_helper = sample_vnf.Rfc2544ResourceHelper(
+ self.scenario_helper)
def _run_traffic_once(self, traffic_profile):
- if self._terminated.value:
- return
-
- traffic_profile.execute_traffic(self)
self.client_started.value = 1
- time.sleep(self.RUN_DURATION)
- self.client.stop(traffic_profile.ports)
- time.sleep(self.WAIT_TIME)
- samples = traffic_profile.get_drop_percentage(self)
- self._queue.put(samples)
-
- if not self.rfc2544_helper.is_done():
- return
-
- self.client.stop(traffic_profile.ports)
- self.client.reset(ports=traffic_profile.ports)
- self.client.remove_all_streams(traffic_profile.ports)
- traffic_profile.execute_traffic_latency(samples=samples)
- multiplier = traffic_profile.calculate_pps(samples)[1]
- for _ in range(5):
- time.sleep(self.LATENCY_TIME_SLEEP)
- self.client.stop(traffic_profile.ports)
- time.sleep(self.WAIT_TIME)
- last_res = self.client.get_stats(traffic_profile.ports)
- if not isinstance(last_res, Mapping):
- self._terminated.value = 1
- continue
- self.generate_samples(traffic_profile.ports, 'latency', {})
- self._queue.put(samples)
- self.client.start(mult=str(multiplier),
- ports=traffic_profile.ports,
- duration=120, force=True)
+ ports, port_pg_id = traffic_profile.execute_traffic(self)
+
+ samples = []
+ timeout = int(traffic_profile.config.duration) - self.TRANSIENT_PERIOD
+ time.sleep(self.TRANSIENT_PERIOD)
+ for _ in utils.Timer(timeout=timeout):
+ samples.append(self._get_samples(ports, port_pg_id=port_pg_id))
+ time.sleep(self.SAMPLING_PERIOD)
+
+ traffic_profile.stop_traffic(self)
+ completed, output = traffic_profile.get_drop_percentage(
+ samples, self.rfc2544_helper.tolerance_low,
+ self.rfc2544_helper.tolerance_high,
+ self.rfc2544_helper.correlated_traffic,
+ self.rfc2544_helper.resolution)
+ self._queue.put(output)
+ return completed
def start_client(self, ports, mult=None, duration=None, force=True):
self.client.start(ports=ports, mult=mult, duration=duration, force=force)
@@ -86,12 +61,58 @@ class TrexRfcResourceHelper(TrexResourceHelper):
def clear_client_stats(self, ports):
self.client.clear_stats(ports=ports)
- def collect_kpi(self):
- self.rfc2544_helper.iteration.value += 1
- return super(TrexRfcResourceHelper, self).collect_kpi()
-
-
-class TrexTrafficGenRFC(TrexTrafficGen):
+ def run_test(self, traffic_profile, tasks_queue, results_queue, *args): # pragma: no cover
+ LOG.debug("Trex resource_helper run_test")
+ if self._terminated.value:
+ return
+ # if we don't do this we can hang waiting for the queue to drain
+ # have to do this in the subprocess
+ self._queue.cancel_join_thread()
+ try:
+ self._build_ports()
+ self.client = self._connect()
+ self.client.reset(ports=self.all_ports)
+ self.client.remove_all_streams(self.all_ports) # remove all streams
+ traffic_profile.register_generator(self)
+
+ completed = False
+ self.rfc2544_helper.iteration.value = 0
+ self.client_started.value = 1
+ while completed is False and not self._terminated.value:
+ LOG.debug("Wait for task ...")
+ try:
+ task = tasks_queue.get(True, 5)
+ except moves.queue.Empty:
+ LOG.debug("Wait for task timeout, continue waiting...")
+ continue
+ else:
+ if task != 'RUN_TRAFFIC':
+ continue
+ self.rfc2544_helper.iteration.value += 1
+ LOG.info("Got %s task, start iteration %d", task,
+ self.rfc2544_helper.iteration.value)
+ completed = self._run_traffic_once(traffic_profile)
+ if completed:
+ LOG.debug("%s::run_test - test completed",
+ self.__class__.__name__)
+ results_queue.put('COMPLETE')
+ else:
+ results_queue.put('CONTINUE')
+ tasks_queue.task_done()
+
+ self.client.stop(self.all_ports)
+ self.client.disconnect()
+ self._terminated.value = 0
+ except STLError:
+ if self._terminated.value:
+ LOG.debug("traffic generator is stopped")
+ return # return if trex/tg server is stopped.
+ raise
+
+ self.client_started.value = 0
+ LOG.debug("%s::run_test done", self.__class__.__name__)
+
+class TrexTrafficGenRFC(tg_trex.TrexTrafficGen):
"""
This class handles mapping traffic profile and generating
traffic for rfc2544 testcase.
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_trex.py b/yardstick/network_services/vnf_generic/vnf/tg_trex.py
index 0084a124c..0cb66a714 100644
--- a/yardstick/network_services/vnf_generic/vnf/tg_trex.py
+++ b/yardstick/network_services/vnf_generic/vnf/tg_trex.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,9 +11,8 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-""" Trex acts as traffic generation and vnf definitions based on IETS Spec """
-from __future__ import absolute_import
+import datetime
import logging
import os
@@ -25,6 +24,7 @@ from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNFTraff
from yardstick.network_services.vnf_generic.vnf.sample_vnf import ClientResourceHelper
from yardstick.network_services.vnf_generic.vnf.sample_vnf import DpdkVnfSetupEnvHelper
+
LOG = logging.getLogger(__name__)
@@ -165,6 +165,34 @@ class TrexResourceHelper(ClientResourceHelper):
cmd = "sudo fuser -n tcp %s %s -k > /dev/null 2>&1"
self.ssh_helper.execute(cmd % (self.SYNC_PORT, self.ASYNC_PORT))
+ def _get_samples(self, ports, port_pg_id=None):
+ stats = self.get_stats(ports)
+ timestamp = datetime.datetime.now()
+ samples = {}
+ for pname in (intf['name'] for intf in self.vnfd_helper.interfaces):
+ port_num = self.vnfd_helper.port_num(pname)
+ port_stats = stats.get(port_num, {})
+ samples[pname] = {
+ 'rx_throughput_fps': float(port_stats.get('rx_pps', 0.0)),
+ 'tx_throughput_fps': float(port_stats.get('tx_pps', 0.0)),
+ 'rx_throughput_bps': float(port_stats.get('rx_bps', 0.0)),
+ 'tx_throughput_bps': float(port_stats.get('tx_bps', 0.0)),
+ 'in_packets': int(port_stats.get('ipackets', 0)),
+ 'out_packets': int(port_stats.get('opackets', 0)),
+ 'in_bytes': int(port_stats.get('ibytes', 0)),
+ 'out_bytes': int(port_stats.get('obytes', 0)),
+ 'timestamp': timestamp
+ }
+
+ pg_id_list = port_pg_id.get_pg_ids(port_num)
+ samples[pname]['latency'] = {}
+ for pg_id in pg_id_list:
+ latency_global = stats.get('latency', {})
+ pg_latency = latency_global.get(pg_id, {}).get('latency')
+ samples[pname]['latency'][pg_id] = pg_latency
+
+ return samples
+
class TrexTrafficGen(SampleVNFTrafficGen):
"""
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_trex_vpp.py b/yardstick/network_services/vnf_generic/vnf/tg_trex_vpp.py
new file mode 100644
index 000000000..846304880
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/tg_trex_vpp.py
@@ -0,0 +1,178 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+
+from trex_stl_lib.trex_stl_exceptions import STLError
+
+from yardstick.common.utils import safe_cast
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import \
+ Rfc2544ResourceHelper
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import \
+ SampleVNFTrafficGen
+from yardstick.network_services.vnf_generic.vnf.tg_trex import \
+ TrexDpdkVnfSetupEnvHelper
+from yardstick.network_services.vnf_generic.vnf.tg_trex import \
+ TrexResourceHelper
+
+LOGGING = logging.getLogger(__name__)
+
+
+class TrexVppResourceHelper(TrexResourceHelper):
+
+ def __init__(self, setup_helper, rfc_helper_type=None):
+ super(TrexVppResourceHelper, self).__init__(setup_helper)
+
+ if rfc_helper_type is None:
+ rfc_helper_type = Rfc2544ResourceHelper
+
+ self.rfc2544_helper = rfc_helper_type(self.scenario_helper)
+
+ self.loss = None
+ self.sent = None
+ self.latency = None
+
+ def generate_samples(self, stats=None, ports=None, port_pg_id=None,
+ latency=False):
+ samples = {}
+ if stats is None:
+ stats = self.get_stats(ports)
+ for pname in (intf['name'] for intf in self.vnfd_helper.interfaces):
+ port_num = self.vnfd_helper.port_num(pname)
+ port_stats = stats.get(port_num, {})
+ samples[pname] = {
+ 'rx_throughput_fps': float(port_stats.get('rx_pps', 0.0)),
+ 'tx_throughput_fps': float(port_stats.get('tx_pps', 0.0)),
+ 'rx_throughput_bps': float(port_stats.get('rx_bps', 0.0)),
+ 'tx_throughput_bps': float(port_stats.get('tx_bps', 0.0)),
+ 'in_packets': int(port_stats.get('ipackets', 0)),
+ 'out_packets': int(port_stats.get('opackets', 0)),
+ }
+
+ if latency:
+ pg_id_list = port_pg_id.get_pg_ids(port_num)
+ samples[pname]['latency'] = {}
+ for pg_id in pg_id_list:
+ latency_global = stats.get('latency', {})
+ pg_latency = latency_global.get(pg_id, {}).get('latency')
+
+ t_min = safe_cast(pg_latency.get("total_min", 0.0), float,
+ -1.0)
+ t_avg = safe_cast(pg_latency.get("average", 0.0), float,
+ -1.0)
+ t_max = safe_cast(pg_latency.get("total_max", 0.0), float,
+ -1.0)
+
+ latency = {
+ "min_latency": t_min,
+ "max_latency": t_max,
+ "avg_latency": t_avg,
+ }
+ samples[pname]['latency'][pg_id] = latency
+
+ return samples
+
+ def _run_traffic_once(self, traffic_profile):
+ self.client_started.value = 1
+ traffic_profile.execute_traffic(self)
+ return True
+
+ def run_traffic(self, traffic_profile):
+ self._queue.cancel_join_thread()
+ traffic_profile.init_queue(self._queue)
+ super(TrexVppResourceHelper, self).run_traffic(traffic_profile)
+
+ @staticmethod
+ def fmt_latency(lat_min, lat_avg, lat_max):
+ t_min = int(round(safe_cast(lat_min, float, -1.0)))
+ t_avg = int(round(safe_cast(lat_avg, float, -1.0)))
+ t_max = int(round(safe_cast(lat_max, float, -1.0)))
+
+ return "/".join(str(tmp) for tmp in (t_min, t_avg, t_max))
+
+ def send_traffic_on_tg(self, ports, port_pg_id, duration, rate,
+ latency=False):
+ try:
+ # Choose rate and start traffic:
+ self.client.start(ports=ports, mult=rate, duration=duration)
+ # Block until done:
+ try:
+ self.client.wait_on_traffic(ports=ports, timeout=duration + 20)
+ except STLError as err:
+ self.client.stop(ports)
+ LOGGING.error("TRex stateless timeout error: %s", err)
+
+ if self.client.get_warnings():
+ for warning in self.client.get_warnings():
+ LOGGING.warning(warning)
+
+ # Read the stats after the test
+ stats = self.client.get_stats()
+
+ packets_in = []
+ packets_out = []
+ for port in ports:
+ packets_in.append(stats[port]["ipackets"])
+ packets_out.append(stats[port]["opackets"])
+
+ if latency:
+ self.latency = []
+ pg_id_list = port_pg_id.get_pg_ids(port)
+ for pg_id in pg_id_list:
+ latency_global = stats.get('latency', {})
+ pg_latency = latency_global.get(pg_id, {}).get(
+ 'latency')
+ lat = self.fmt_latency(
+ str(pg_latency.get("total_min")),
+ str(pg_latency.get("average")),
+ str(pg_latency.get("total_max")))
+ LOGGING.info(
+ "latencyStream%s(usec)=%s", pg_id, lat)
+ self.latency.append(lat)
+
+ self.sent = sum(packets_out)
+ total_rcvd = sum(packets_in)
+ self.loss = self.sent - total_rcvd
+ LOGGING.info("rate=%s, totalReceived=%s, totalSent=%s,"
+ " frameLoss=%s", rate, total_rcvd, self.sent,
+ self.loss)
+ return stats
+ except STLError as err:
+ LOGGING.error("TRex stateless runtime error: %s", err)
+ raise RuntimeError('TRex stateless runtime error')
+
+
+class TrexTrafficGenVpp(SampleVNFTrafficGen):
+ APP_NAME = 'TRex'
+ WAIT_TIME = 20
+
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ if setup_env_helper_type is None:
+ setup_env_helper_type = TrexDpdkVnfSetupEnvHelper
+ if resource_helper_type is None:
+ resource_helper_type = TrexVppResourceHelper
+
+ super(TrexTrafficGenVpp, self).__init__(
+ name, vnfd, setup_env_helper_type, resource_helper_type)
+
+ def _check_status(self):
+ return self.resource_helper.check_status()
+
+ def _start_server(self):
+ super(TrexTrafficGenVpp, self)._start_server()
+ self.resource_helper.start()
+
+ def wait_for_instantiate(self):
+ return self._wait_for_process()
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_vcmts_pktgen.py b/yardstick/network_services/vnf_generic/vnf/tg_vcmts_pktgen.py
new file mode 100755
index 000000000..c6df9d04c
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/tg_vcmts_pktgen.py
@@ -0,0 +1,215 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+import time
+import socket
+import yaml
+import os
+
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+from yardstick.common import exceptions
+
+
+LOG = logging.getLogger(__name__)
+
+
+class PktgenHelper(object):
+
+ RETRY_SECONDS = 0.5
+ RETRY_COUNT = 20
+ CONNECT_TIMEOUT = 5
+
+ def __init__(self, host, port=23000):
+ self.host = host
+ self.port = port
+ self.connected = False
+
+ def _connect(self):
+ self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ ret = True
+ try:
+ self._sock.settimeout(self.CONNECT_TIMEOUT)
+ self._sock.connect((self.host, self.port))
+ except (socket.gaierror, socket.error, socket.timeout):
+ self._sock.close()
+ ret = False
+
+ return ret
+
+ def connect(self):
+ if self.connected:
+ return True
+ LOG.info("Connecting to pktgen instance at %s...", self.host)
+ for idx in range(self.RETRY_COUNT):
+ self.connected = self._connect()
+ if self.connected:
+ return True
+ LOG.debug("Connection attempt %d: Unable to connect to %s, " \
+ "retrying in %d seconds",
+ idx, self.host, self.RETRY_SECONDS)
+ time.sleep(self.RETRY_SECONDS)
+
+ LOG.error("Unable to connect to pktgen instance on %s !",
+ self.host)
+ return False
+
+
+ def send_command(self, command):
+ if not self.connected:
+ LOG.error("Pktgen socket is not connected")
+ return False
+
+ try:
+ self._sock.sendall((command + "\n").encode())
+ time.sleep(1)
+ except (socket.timeout, socket.error):
+ LOG.error("Error sending command '%s'", command)
+ return False
+
+ return True
+
+
+class VcmtsPktgenSetupEnvHelper(sample_vnf.SetupEnvHelper):
+
+ BASE_PARAMETERS = "export LUA_PATH=/vcmts/Pktgen.lua;"\
+ + "export CMK_PROC_FS=/host/proc;"
+
+ PORTS_COUNT = 8
+
+ def generate_pcap_filename(self, port_cfg):
+ return port_cfg['traffic_type'] + "_" + port_cfg['num_subs'] \
+ + "cms_" + port_cfg['num_ofdm'] + "ofdm.pcap"
+
+ def find_port_cfg(self, ports_cfg, port_name):
+ for port_cfg in ports_cfg:
+ if port_name in port_cfg:
+ return port_cfg
+ return None
+
+ def build_pktgen_parameters(self, pod_cfg):
+ ports_cfg = pod_cfg['ports']
+ port_cfg = list()
+
+ for i in range(self.PORTS_COUNT):
+ port_cfg.append(self.find_port_cfg(ports_cfg, 'port_' + str(i)))
+
+ pktgen_parameters = self.BASE_PARAMETERS + " " \
+ + " /pktgen-config/setup.sh " + pod_cfg['pktgen_id'] \
+ + " " + pod_cfg['num_ports']
+
+ for i in range(self.PORTS_COUNT):
+ pktgen_parameters += " " + port_cfg[i]['net_pktgen']
+
+ for i in range(self.PORTS_COUNT):
+ pktgen_parameters += " " + self.generate_pcap_filename(port_cfg[i])
+
+ return pktgen_parameters
+
+ def start_pktgen(self, pod_cfg):
+ self.ssh_helper.drop_connection()
+ cmd = self.build_pktgen_parameters(pod_cfg)
+ LOG.debug("Executing: '%s'", cmd)
+ self.ssh_helper.send_command(cmd)
+ LOG.info("Pktgen executed")
+
+ def setup_vnf_environment(self):
+ pass
+
+
+class VcmtsPktgen(sample_vnf.SampleVNFTrafficGen):
+
+ TG_NAME = 'VcmtsPktgen'
+ APP_NAME = 'VcmtsPktgen'
+ RUN_WAIT = 4
+ DEFAULT_RATE = 8.0
+
+ PKTGEN_BASE_PORT = 23000
+
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ if setup_env_helper_type is None:
+ setup_env_helper_type = VcmtsPktgenSetupEnvHelper
+ super(VcmtsPktgen, self).__init__(
+ name, vnfd, setup_env_helper_type, resource_helper_type)
+
+ self.pktgen_address = vnfd['mgmt-interface']['ip']
+ LOG.info("Pktgen container '%s', IP: %s", name, self.pktgen_address)
+
+ def extract_pod_cfg(self, pktgen_pods_cfg, pktgen_id):
+ for pod_cfg in pktgen_pods_cfg:
+ if pod_cfg['pktgen_id'] == pktgen_id:
+ return pod_cfg
+ return None
+
+ def instantiate(self, scenario_cfg, context_cfg):
+ super(VcmtsPktgen, self).instantiate(scenario_cfg, context_cfg)
+ self._start_server()
+ options = scenario_cfg.get('options', {})
+ self.pktgen_rate = options.get('pktgen_rate', self.DEFAULT_RATE)
+
+ try:
+ pktgen_values_filepath = options['pktgen_values']
+ except KeyError:
+ raise KeyError("Missing pktgen_values key in scenario options" \
+ "section of the task definition file")
+
+ if not os.path.isfile(pktgen_values_filepath):
+ raise RuntimeError("The pktgen_values file path provided " \
+ "does not exists")
+
+ # The yaml_loader.py (SafeLoader) underlying regex has an issue
+ # with reading PCI addresses (processed as double). so the
+ # BaseLoader is used here.
+ with open(pktgen_values_filepath) as stream:
+ pktgen_values = yaml.load(stream, Loader=yaml.BaseLoader)
+
+ if pktgen_values == None:
+ raise RuntimeError("Error reading pktgen_values file provided (" +
+ pktgen_values_filepath + ")")
+
+ self.pktgen_id = int(options[self.name]['pktgen_id'])
+ self.resource_helper.pktgen_id = self.pktgen_id
+
+ self.pktgen_helper = PktgenHelper(self.pktgen_address,
+ self.PKTGEN_BASE_PORT + self.pktgen_id)
+
+ pktgen_pods_cfg = pktgen_values['topology']['pktgen_pods']
+
+ self.pod_cfg = self.extract_pod_cfg(pktgen_pods_cfg,
+ str(self.pktgen_id))
+
+ if self.pod_cfg == None:
+ raise KeyError("Pktgen with id " + str(self.pktgen_id) + \
+ " was not found")
+
+ self.setup_helper.start_pktgen(self.pod_cfg)
+
+ def run_traffic(self, traffic_profile):
+ if not self.pktgen_helper.connect():
+ raise exceptions.PktgenActionError(command="connect")
+ LOG.info("Connected to pktgen instance at %s", self.pktgen_address)
+
+ commands = []
+ for i in range(self.setup_helper.PORTS_COUNT):
+ commands.append('pktgen.set("' + str(i) + '", "rate", ' +
+ "%0.1f" % self.pktgen_rate + ');')
+
+ commands.append('pktgen.start("all");')
+
+ for command in commands:
+ if self.pktgen_helper.send_command(command):
+ LOG.debug("Command '%s' sent to pktgen", command)
+ LOG.info("Traffic started on %s...", self.name)
+ return True
diff --git a/yardstick/network_services/vnf_generic/vnf/udp_replay.py b/yardstick/network_services/vnf_generic/vnf/udp_replay.py
index a57f53bc7..a3b0b9fd9 100644
--- a/yardstick/network_services/vnf_generic/vnf/udp_replay.py
+++ b/yardstick/network_services/vnf_generic/vnf/udp_replay.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ from yardstick.common.process import check_if_process_failed
from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF
from yardstick.network_services.vnf_generic.vnf.sample_vnf import DpdkVnfSetupEnvHelper
from yardstick.network_services.vnf_generic.vnf.sample_vnf import ClientResourceHelper
-
+from yardstick.benchmark.contexts import base as ctx_base
LOG = logging.getLogger(__name__)
@@ -79,9 +79,11 @@ class UdpReplayApproxVnf(SampleVNF):
ports_mask_hex = hex(sum(2 ** num for num in port_nums))
# one core extra for master
cpu_mask_hex = hex(2 ** (number_of_ports + 1) - 1)
+ nfvi_context = ctx_base.Context.get_context_from_server(
+ self.scenario_helper.nodes[self.name])
hw_csum = ""
if (not self.scenario_helper.options.get('hw_csum', False) or
- self.nfvi_context.attrs.get('nfvi_type') not in self.HW_OFFLOADING_NFVI_TYPES):
+ nfvi_context.attrs.get('nfvi_type') not in self.HW_OFFLOADING_NFVI_TYPES):
hw_csum = '--no-hw-csum'
# tuples of (FLD_PORT, FLD_QUEUE, FLD_LCORE)
@@ -107,7 +109,7 @@ class UdpReplayApproxVnf(SampleVNF):
def collect_kpi(self):
def get_sum(offset):
- return sum(int(i) for i in split_stats[offset::5])
+ return sum(int(i) for i in split_stats[offset::6])
# we can't get KPIs if the VNF is down
check_if_process_failed(self._vnf_process)
@@ -115,8 +117,13 @@ class UdpReplayApproxVnf(SampleVNF):
stats = self.get_stats()
stats_words = stats.split()
- split_stats = stats_words[stats_words.index('0'):][:number_of_ports * 5]
+ split_stats = stats_words[stats_words.index('arp_pkts') + 1:][:number_of_ports * 6]
+
+ physical_node = ctx_base.Context.get_physical_node_from_server(
+ self.scenario_helper.nodes[self.name])
+
result = {
+ "physical_node": physical_node,
"packets_in": get_sum(1),
"packets_fwd": get_sum(2),
"packets_dropped": get_sum(3) + get_sum(4),
diff --git a/yardstick/network_services/vnf_generic/vnf/vcmts_vnf.py b/yardstick/network_services/vnf_generic/vnf/vcmts_vnf.py
new file mode 100755
index 000000000..0b48ef4e9
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/vcmts_vnf.py
@@ -0,0 +1,273 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+import os
+import yaml
+
+from influxdb import InfluxDBClient
+
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import SetupEnvHelper
+from yardstick.common import constants
+from yardstick.common import exceptions
+from yardstick.network_services.vnf_generic.vnf.base import GenericVNF
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import ScenarioHelper
+from yardstick.network_services.vnf_generic.vnf.vnf_ssh_helper import VnfSshHelper
+from yardstick.network_services.utils import get_nsb_option
+
+
+LOG = logging.getLogger(__name__)
+
+
+class InfluxDBHelper(object):
+
+ INITIAL_VALUE = 'now() - 1m'
+
+ def __init__(self, vcmts_influxdb_ip, vcmts_influxdb_port):
+ self._vcmts_influxdb_ip = vcmts_influxdb_ip
+ self._vcmts_influxdb_port = vcmts_influxdb_port
+ self._last_upstream_rx = self.INITIAL_VALUE
+ self._last_values_time = dict()
+
+ def start(self):
+ self._read_client = InfluxDBClient(host=self._vcmts_influxdb_ip,
+ port=self._vcmts_influxdb_port,
+ database='collectd')
+ self._write_client = InfluxDBClient(host=constants.INFLUXDB_IP,
+ port=constants.INFLUXDB_PORT,
+ database='collectd')
+
+ def _get_last_value_time(self, measurement):
+ if measurement in self._last_values_time:
+ return self._last_values_time[measurement]
+ return self.INITIAL_VALUE
+
+ def _set_last_value_time(self, measurement, time):
+ self._last_values_time[measurement] = "'" + time + "'"
+
+ def _query_measurement(self, measurement):
+ # There is a delay before influxdb flushes the data
+ query = "SELECT * FROM " + measurement + " WHERE time > " \
+ + self._get_last_value_time(measurement) \
+ + " ORDER BY time ASC;"
+ query_result = self._read_client.query(query)
+ if len(query_result.keys()) == 0:
+ return None
+ return query_result.get_points(measurement)
+
+ def _rw_measurment(self, measurement, columns):
+ query_result = self._query_measurement(measurement)
+ if query_result == None:
+ return
+
+ points_to_write = list()
+ for entry in query_result:
+ point = {
+ "measurement": measurement,
+ "tags": {
+ "type": entry['type'],
+ "host": entry['host']
+ },
+ "time": entry['time'],
+ "fields": {}
+ }
+
+ for column in columns:
+ if column == 'value':
+ point["fields"][column] = float(entry[column])
+ else:
+ point["fields"][column] = entry[column]
+
+ points_to_write.append(point)
+ self._set_last_value_time(measurement, entry['time'])
+
+ # Write the points to yardstick database
+ if self._write_client.write_points(points_to_write):
+ LOG.debug("%d new points written to '%s' measurement",
+ len(points_to_write), measurement)
+
+ def copy_kpi(self):
+ self._rw_measurment("cpu_value", ["instance", "type_instance", "value"])
+ self._rw_measurment("cpufreq_value", ["type_instance", "value"])
+ self._rw_measurment("downstream_rx", ["value"])
+ self._rw_measurment("downstream_tx", ["value"])
+ self._rw_measurment("downstream_value", ["value"])
+ self._rw_measurment("ds_per_cm_value", ["instance", "value"])
+ self._rw_measurment("intel_rdt_value", ["instance", "type_instance", "value"])
+ self._rw_measurment("turbostat_value", ["instance", "type_instance", "value"])
+ self._rw_measurment("upstream_rx", ["value"])
+ self._rw_measurment("upstream_tx", ["value"])
+ self._rw_measurment("upstream_value", ["value"])
+
+
+class VcmtsdSetupEnvHelper(SetupEnvHelper):
+
+ BASE_PARAMETERS = "export LD_LIBRARY_PATH=/opt/collectd/lib:;"\
+ + "export CMK_PROC_FS=/host/proc;"
+
+ def build_us_parameters(self, pod_cfg):
+ return self.BASE_PARAMETERS + " " \
+ + " /opt/bin/cmk isolate --conf-dir=/etc/cmk" \
+ + " --socket-id=" + pod_cfg['cpu_socket_id'] \
+ + " --pool=shared" \
+ + " /vcmts-config/run_upstream.sh " + pod_cfg['sg_id'] \
+ + " " + pod_cfg['ds_core_type'] \
+ + " " + pod_cfg['num_ofdm'] + "ofdm" \
+ + " " + pod_cfg['num_subs'] + "cm" \
+ + " " + pod_cfg['cm_crypto'] \
+ + " " + pod_cfg['qat'] \
+ + " " + pod_cfg['net_us'] \
+ + " " + pod_cfg['power_mgmt']
+
+ def build_ds_parameters(self, pod_cfg):
+ return self.BASE_PARAMETERS + " " \
+ + " /opt/bin/cmk isolate --conf-dir=/etc/cmk" \
+ + " --socket-id=" + pod_cfg['cpu_socket_id'] \
+ + " --pool=" + pod_cfg['ds_core_type'] \
+ + " /vcmts-config/run_downstream.sh " + pod_cfg['sg_id'] \
+ + " " + pod_cfg['ds_core_type'] \
+ + " " + pod_cfg['ds_core_pool_index'] \
+ + " " + pod_cfg['num_ofdm'] + "ofdm" \
+ + " " + pod_cfg['num_subs'] + "cm" \
+ + " " + pod_cfg['cm_crypto'] \
+ + " " + pod_cfg['qat'] \
+ + " " + pod_cfg['net_ds'] \
+ + " " + pod_cfg['power_mgmt']
+
+ def build_cmd(self, stream_dir, pod_cfg):
+ if stream_dir == 'ds':
+ return self.build_ds_parameters(pod_cfg)
+ else:
+ return self.build_us_parameters(pod_cfg)
+
+ def run_vcmtsd(self, stream_dir, pod_cfg):
+ cmd = self.build_cmd(stream_dir, pod_cfg)
+ LOG.debug("Executing %s", cmd)
+ self.ssh_helper.send_command(cmd)
+
+ def setup_vnf_environment(self):
+ pass
+
+
+class VcmtsVNF(GenericVNF):
+
+ RUN_WAIT = 4
+
+ def __init__(self, name, vnfd):
+ super(VcmtsVNF, self).__init__(name, vnfd)
+ self.name = name
+ self.bin_path = get_nsb_option('bin_path', '')
+ self.scenario_helper = ScenarioHelper(self.name)
+ self.ssh_helper = VnfSshHelper(self.vnfd_helper.mgmt_interface, self.bin_path)
+
+ self.setup_helper = VcmtsdSetupEnvHelper(self.vnfd_helper,
+ self.ssh_helper,
+ self.scenario_helper)
+
+ def extract_pod_cfg(self, vcmts_pods_cfg, sg_id):
+ for pod_cfg in vcmts_pods_cfg:
+ if pod_cfg['sg_id'] == sg_id:
+ return pod_cfg
+
+ def instantiate(self, scenario_cfg, context_cfg):
+ self._update_collectd_options(scenario_cfg, context_cfg)
+ self.scenario_helper.scenario_cfg = scenario_cfg
+ self.context_cfg = context_cfg
+
+ options = scenario_cfg.get('options', {})
+
+ try:
+ self.vcmts_influxdb_ip = options['vcmts_influxdb_ip']
+ self.vcmts_influxdb_port = options['vcmts_influxdb_port']
+ except KeyError:
+ raise KeyError("Missing destination InfluxDB details in scenario" \
+ " section of the task definition file")
+
+ try:
+ vcmtsd_values_filepath = options['vcmtsd_values']
+ except KeyError:
+ raise KeyError("Missing vcmtsd_values key in scenario options" \
+ "section of the task definition file")
+
+ if not os.path.isfile(vcmtsd_values_filepath):
+ raise RuntimeError("The vcmtsd_values file path provided " \
+ "does not exists")
+
+ # The yaml_loader.py (SafeLoader) underlying regex has an issue
+ # with reading PCI addresses (processed as double). so the
+ # BaseLoader is used here.
+ with open(vcmtsd_values_filepath) as stream:
+ vcmtsd_values = yaml.load(stream, Loader=yaml.BaseLoader)
+
+ if vcmtsd_values == None:
+ raise RuntimeError("Error reading vcmtsd_values file provided (" +
+ vcmtsd_values_filepath + ")")
+
+ vnf_options = options.get(self.name, {})
+ sg_id = str(vnf_options['sg_id'])
+ stream_dir = vnf_options['stream_dir']
+
+ try:
+ vcmts_pods_cfg = vcmtsd_values['topology']['vcmts_pods']
+ except KeyError:
+ raise KeyError("Missing vcmts_pods key in the " \
+ "vcmtsd_values file provided")
+
+ pod_cfg = self.extract_pod_cfg(vcmts_pods_cfg, sg_id)
+ if pod_cfg == None:
+ raise exceptions.IncorrectConfig(error_msg="Service group " + sg_id + " not found")
+
+ self.setup_helper.run_vcmtsd(stream_dir, pod_cfg)
+
+ def _update_collectd_options(self, scenario_cfg, context_cfg):
+ scenario_options = scenario_cfg.get('options', {})
+ generic_options = scenario_options.get('collectd', {})
+ scenario_node_options = scenario_options.get(self.name, {})\
+ .get('collectd', {})
+ context_node_options = context_cfg.get('nodes', {})\
+ .get(self.name, {}).get('collectd', {})
+
+ options = generic_options
+ self._update_options(options, scenario_node_options)
+ self._update_options(options, context_node_options)
+
+ self.setup_helper.collectd_options = options
+
+ def _update_options(self, options, additional_options):
+ for k, v in additional_options.items():
+ if isinstance(v, dict) and k in options:
+ options[k].update(v)
+ else:
+ options[k] = v
+
+ def wait_for_instantiate(self):
+ pass
+
+ def terminate(self):
+ pass
+
+ def scale(self, flavor=""):
+ pass
+
+ def collect_kpi(self):
+ self.influxdb_helper.copy_kpi()
+ return {"n/a": "n/a"}
+
+ def start_collect(self):
+ self.influxdb_helper = InfluxDBHelper(self.vcmts_influxdb_ip,
+ self.vcmts_influxdb_port)
+ self.influxdb_helper.start()
+
+ def stop_collect(self):
+ pass
diff --git a/yardstick/network_services/vnf_generic/vnf/vfw_vnf.py b/yardstick/network_services/vnf_generic/vnf/vfw_vnf.py
index 6c95648ce..743f2d4bb 100644
--- a/yardstick/network_services/vnf_generic/vnf/vfw_vnf.py
+++ b/yardstick/network_services/vnf_generic/vnf/vfw_vnf.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,23 +12,21 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
import logging
-from yardstick.benchmark.scenarios.networking.vnf_generic import find_relative_file
-from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF, DpdkVnfSetupEnvHelper
-from yardstick.network_services.yang_model import YangModel
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF
+from yardstick.network_services.vnf_generic.vnf.acl_vnf import AclApproxSetupEnvSetupEnvHelper
LOG = logging.getLogger(__name__)
# vFW should work the same on all systems, we can provide the binary
-FW_PIPELINE_COMMAND = """sudo {tool_path} -p {port_mask_hex} -f {cfg_file} -s {script}"""
+FW_PIPELINE_COMMAND = "sudo {tool_path} -p {port_mask_hex} -f {cfg_file} -s {script} {hwlb}"
FW_COLLECT_KPI = (r"""VFW TOTAL:[^p]+pkts_received"?:\s(\d+),[^p]+pkts_fw_forwarded"?:\s(\d+),"""
r"""[^p]+pkts_drop_fw"?:\s(\d+),\s""")
-class FWApproxSetupEnvHelper(DpdkVnfSetupEnvHelper):
+class FWApproxSetupEnvHelper(AclApproxSetupEnvSetupEnvHelper):
APP_NAME = "vFW"
CFG_CONFIG = "/tmp/vfw_config"
@@ -38,6 +36,8 @@ class FWApproxSetupEnvHelper(DpdkVnfSetupEnvHelper):
SW_DEFAULT_CORE = 5
HW_DEFAULT_CORE = 2
VNF_TYPE = "VFW"
+ RULE_CMD = "vfw"
+ DEFAULT_FWD_ACTIONS = ["accept", "count", "conntrack"]
class FWApproxVnf(SampleVNF):
@@ -57,11 +57,7 @@ class FWApproxVnf(SampleVNF):
setup_env_helper_type = FWApproxSetupEnvHelper
super(FWApproxVnf, self).__init__(name, vnfd, setup_env_helper_type, resource_helper_type)
- self.vfw_rules = None
- def _start_vnf(self):
- yang_model_path = find_relative_file(self.scenario_helper.options['rules'],
- self.scenario_helper.task_path)
- yang_model = YangModel(yang_model_path)
- self.vfw_rules = yang_model.get_rules()
- super(FWApproxVnf, self)._start_vnf()
+ def wait_for_instantiate(self):
+ """Wait for VNF to initialize"""
+ self.wait_for_initialize()
diff --git a/yardstick/network_services/vnf_generic/vnf/vims_vnf.py b/yardstick/network_services/vnf_generic/vnf/vims_vnf.py
new file mode 100644
index 000000000..0e339b171
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/vims_vnf.py
@@ -0,0 +1,105 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+import time
+
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+
+LOG = logging.getLogger(__name__)
+
+
+class VimsSetupEnvHelper(sample_vnf.SetupEnvHelper):
+
+ def setup_vnf_environment(self):
+ LOG.debug('VimsSetupEnvHelper:\n')
+
+
+class VimsResourceHelper(sample_vnf.ClientResourceHelper):
+ pass
+
+
+class VimsPcscfVnf(sample_vnf.SampleVNF):
+
+ APP_NAME = "VimsPcscf"
+ APP_WORD = "VimsPcscf"
+
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ if resource_helper_type is None:
+ resource_helper_type = VimsResourceHelper
+ if setup_env_helper_type is None:
+ setup_env_helper_type = VimsSetupEnvHelper
+ super(VimsPcscfVnf, self).__init__(name, vnfd, setup_env_helper_type,
+ resource_helper_type)
+
+ def wait_for_instantiate(self):
+ pass
+
+ def _run(self):
+ pass
+
+ def start_collect(self):
+ # TODO
+ pass
+
+ def collect_kpi(self):
+ # TODO
+ pass
+
+
+class VimsHssVnf(sample_vnf.SampleVNF):
+
+ APP_NAME = "VimsHss"
+ APP_WORD = "VimsHss"
+ CMD = "sudo /media/generate_user.sh {} {} >> /dev/null 2>&1"
+
+ def __init__(self, name, vnfd, setup_env_helper_type=None,
+ resource_helper_type=None):
+ if resource_helper_type is None:
+ resource_helper_type = VimsResourceHelper
+ if setup_env_helper_type is None:
+ setup_env_helper_type = VimsSetupEnvHelper
+ super(VimsHssVnf, self).__init__(name, vnfd, setup_env_helper_type,
+ resource_helper_type)
+ self.start_user = 1
+ self.end_user = 10000
+ self.WAIT_TIME = 600
+
+ def instantiate(self, scenario_cfg, context_cfg):
+ LOG.debug("scenario_cfg=%s\n", scenario_cfg)
+ self.start_user = scenario_cfg.get("options", {}).get("start_user", self.start_user)
+ self.end_user = scenario_cfg.get("options", {}).get("end_user", self.end_user)
+ # TODO
+ # Need to check HSS services are ready before generating user accounts
+ # Now, adding time sleep that manually configured by user
+ # to wait for HSS services.
+ # Note: for heat, waiting time is too long (~ 600s)
+ self.WAIT_TIME = scenario_cfg.get("options", {}).get("wait_time", self.WAIT_TIME)
+ time.sleep(self.WAIT_TIME)
+ LOG.debug("Generate user accounts from %d to %d\n",
+ self.start_user, self.end_user)
+ cmd = self.CMD.format(self.start_user, self.end_user)
+ self.ssh_helper.execute(cmd, None, 3600, False)
+
+ def wait_for_instantiate(self):
+ pass
+
+ def start_collect(self):
+ # TODO
+ pass
+
+ def collect_kpi(self):
+ # TODO
+ pass
diff --git a/yardstick/network_services/vnf_generic/vnf/vnf_ssh_helper.py b/yardstick/network_services/vnf_generic/vnf/vnf_ssh_helper.py
new file mode 100644
index 000000000..6c5c6c833
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/vnf_ssh_helper.py
@@ -0,0 +1,62 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+import os
+
+from six.moves import StringIO
+
+from yardstick.network_services import constants
+from yardstick.ssh import AutoConnectSSH
+
+LOG = logging.getLogger(__name__)
+
+
+class VnfSshHelper(AutoConnectSSH):
+
+ def __init__(self, node, bin_path, wait=None):
+ self.node = node
+ kwargs = self.args_from_node(self.node)
+ if wait:
+ # if wait is defined here we want to override
+ kwargs['wait'] = wait
+
+ super(VnfSshHelper, self).__init__(**kwargs)
+ self.bin_path = bin_path
+
+ @staticmethod
+ def get_class():
+ # must return static class name, anything else refers to the calling class
+ # i.e. the subclass, not the superclass
+ return VnfSshHelper
+
+ def copy(self):
+ # this copy constructor is different from SSH classes, since it uses node
+ return self.get_class()(self.node, self.bin_path)
+
+ def upload_config_file(self, prefix, content):
+ cfg_file = os.path.join(constants.REMOTE_TMP, prefix)
+ LOG.debug('Config file name: %s', cfg_file)
+ LOG.debug(content)
+ file_obj = StringIO(content)
+ self.put_file_obj(file_obj, cfg_file)
+ return cfg_file
+
+ def join_bin_path(self, *args):
+ return os.path.join(self.bin_path, *args)
+
+ def provision_tool(self, tool_path=None, tool_file=None):
+ if tool_path is None:
+ tool_path = self.bin_path
+ return super(VnfSshHelper, self).provision_tool(tool_path, tool_file)
diff --git a/yardstick/network_services/vnf_generic/vnf/vpe_vnf.py b/yardstick/network_services/vnf_generic/vnf/vpe_vnf.py
index c02c0eb27..322ecd016 100644
--- a/yardstick/network_services/vnf_generic/vnf/vpe_vnf.py
+++ b/yardstick/network_services/vnf_generic/vnf/vpe_vnf.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,40 +17,30 @@ from __future__ import absolute_import
from __future__ import print_function
-import os
import logging
import re
import posixpath
-from six.moves import configparser, zip
-
+from yardstick.common import utils
from yardstick.common.process import check_if_process_failed
from yardstick.network_services.helpers.samplevnf_helper import PortPairs
from yardstick.network_services.pipeline import PipelineRules
from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF, DpdkVnfSetupEnvHelper
+from yardstick.benchmark.contexts import base as ctx_base
LOG = logging.getLogger(__name__)
-VPE_PIPELINE_COMMAND = """sudo {tool_path} -p {port_mask_hex} -f {cfg_file} -s {script}"""
+VPE_PIPELINE_COMMAND = "sudo {tool_path} -p {port_mask_hex} -f {cfg_file} -s {script} {hwlb}"
VPE_COLLECT_KPI = """\
-Pkts in:\s(\d+)\r\n\
-\tPkts dropped by AH:\s(\d+)\r\n\
-\tPkts dropped by other:\s(\d+)\
+Pkts in:\\s(\\d+)\r\n\
+\tPkts dropped by AH:\\s(\\d+)\r\n\
+\tPkts dropped by other:\\s(\\d+)\
"""
class ConfigCreate(object):
- @staticmethod
- def vpe_tmq(config, index):
- tm_q = 'TM{0}'.format(index)
- config.add_section(tm_q)
- config.set(tm_q, 'burst_read', '24')
- config.set(tm_q, 'burst_write', '32')
- config.set(tm_q, 'cfg', '/tmp/full_tm_profile_10G.cfg')
- return config
-
def __init__(self, vnfd_helper, socket):
super(ConfigCreate, self).__init__()
self.sw_q = -1
@@ -61,122 +51,8 @@ class ConfigCreate(object):
self.downlink_ports = self.vnfd_helper.port_pairs.downlink_ports
self.pipeline_per_port = 9
self.socket = socket
+ self._dpdk_port_to_link_id_map = None
- def vpe_initialize(self, config):
- config.add_section('EAL')
- config.set('EAL', 'log_level', '0')
-
- config.add_section('PIPELINE0')
- config.set('PIPELINE0', 'type', 'MASTER')
- config.set('PIPELINE0', 'core', 's%sC0' % self.socket)
-
- config.add_section('MEMPOOL0')
- config.set('MEMPOOL0', 'pool_size', '256K')
-
- config.add_section('MEMPOOL1')
- config.set('MEMPOOL1', 'pool_size', '2M')
- return config
-
- def vpe_rxq(self, config):
- for port in self.downlink_ports:
- new_section = 'RXQ{0}.0'.format(self.vnfd_helper.port_num(port))
- config.add_section(new_section)
- config.set(new_section, 'mempool', 'MEMPOOL1')
-
- return config
-
- def get_sink_swq(self, parser, pipeline, k, index):
- sink = ""
- pktq = parser.get(pipeline, k)
- if "SINK" in pktq:
- self.sink_q += 1
- sink = " SINK{0}".format(self.sink_q)
- if "TM" in pktq:
- sink = " TM{0}".format(index)
- pktq = "SWQ{0}{1}".format(self.sw_q, sink)
- return pktq
-
- def vpe_upstream(self, vnf_cfg, index=0):
- parser = configparser.ConfigParser()
- parser.read(os.path.join(vnf_cfg, 'vpe_upstream'))
-
- for pipeline in parser.sections():
- for k, v in parser.items(pipeline):
- if k == "pktq_in":
- if "RXQ" in v:
- port = self.vnfd_helper.port_num(self.uplink_ports[index])
- value = "RXQ{0}.0".format(port)
- else:
- value = self.get_sink_swq(parser, pipeline, k, index)
-
- parser.set(pipeline, k, value)
-
- elif k == "pktq_out":
- if "TXQ" in v:
- port = self.vnfd_helper.port_num(self.downlink_ports[index])
- value = "TXQ{0}.0".format(port)
- else:
- self.sw_q += 1
- value = self.get_sink_swq(parser, pipeline, k, index)
-
- parser.set(pipeline, k, value)
-
- new_pipeline = 'PIPELINE{0}'.format(self.n_pipeline)
- if new_pipeline != pipeline:
- parser._sections[new_pipeline] = parser._sections[pipeline]
- parser._sections.pop(pipeline)
- self.n_pipeline += 1
- return parser
-
- def vpe_downstream(self, vnf_cfg, index):
- parser = configparser.ConfigParser()
- parser.read(os.path.join(vnf_cfg, 'vpe_downstream'))
- for pipeline in parser.sections():
- for k, v in parser.items(pipeline):
-
- if k == "pktq_in":
- port = self.vnfd_helper.port_num(self.downlink_ports[index])
- if "RXQ" not in v:
- value = self.get_sink_swq(parser, pipeline, k, index)
- elif "TM" in v:
- value = "RXQ{0}.0 TM{1}".format(port, index)
- else:
- value = "RXQ{0}.0".format(port)
-
- parser.set(pipeline, k, value)
-
- if k == "pktq_out":
- port = self.vnfd_helper.port_num(self.uplink_ports[index])
- if "TXQ" not in v:
- self.sw_q += 1
- value = self.get_sink_swq(parser, pipeline, k, index)
- elif "TM" in v:
- value = "TXQ{0}.0 TM{1}".format(port, index)
- else:
- value = "TXQ{0}.0".format(port)
-
- parser.set(pipeline, k, value)
-
- new_pipeline = 'PIPELINE{0}'.format(self.n_pipeline)
- if new_pipeline != pipeline:
- parser._sections[new_pipeline] = parser._sections[pipeline]
- parser._sections.pop(pipeline)
- self.n_pipeline += 1
- return parser
-
- def create_vpe_config(self, vnf_cfg):
- config = configparser.ConfigParser()
- vpe_cfg = os.path.join("/tmp/vpe_config")
- with open(vpe_cfg, 'w') as cfg_file:
- config = self.vpe_initialize(config)
- config = self.vpe_rxq(config)
- config.write(cfg_file)
- for index in range(0, len(self.uplink_ports)):
- config = self.vpe_upstream(vnf_cfg, index)
- config.write(cfg_file)
- config = self.vpe_downstream(vnf_cfg, index)
- config = self.vpe_tmq(config, index)
- config.write(cfg_file)
def generate_vpe_script(self, interfaces):
rules = PipelineRules(pipeline_id=1)
@@ -209,16 +85,10 @@ class ConfigCreate(object):
return rules.get_string()
- def generate_tm_cfg(self, vnf_cfg, index=0):
- vnf_cfg = os.path.join(vnf_cfg, "full_tm_profile_10G.cfg")
- if os.path.exists(vnf_cfg):
- return open(vnf_cfg).read()
-
class VpeApproxSetupEnvHelper(DpdkVnfSetupEnvHelper):
APP_NAME = 'vPE_vnf'
- CFG_CONFIG = "/tmp/vpe_config"
CFG_SCRIPT = "/tmp/vpe_script"
TM_CONFIG = "/tmp/full_tm_profile_10G.cfg"
CORES = ['0', '1', '2', '3', '4', '5']
@@ -231,33 +101,52 @@ class VpeApproxSetupEnvHelper(DpdkVnfSetupEnvHelper):
self.all_ports = self._port_pairs.all_ports
def build_config(self):
+ vnf_cfg = self.scenario_helper.vnf_cfg
+ task_path = self.scenario_helper.task_path
+ action_bulk_file = vnf_cfg.get('action_bulk_file', '/tmp/action_bulk_512.txt')
+ full_tm_profile_file = vnf_cfg.get('full_tm_profile_file', '/tmp/full_tm_profile_10G.cfg')
+ config_file = vnf_cfg.get('file', '/tmp/vpe_config')
+ script_file = vnf_cfg.get('script_file', None)
vpe_vars = {
"bin_path": self.ssh_helper.bin_path,
"socket": self.socket,
}
-
self._build_vnf_ports()
vpe_conf = ConfigCreate(self.vnfd_helper, self.socket)
- vpe_conf.create_vpe_config(self.scenario_helper.vnf_cfg)
- config_basename = posixpath.basename(self.CFG_CONFIG)
- script_basename = posixpath.basename(self.CFG_SCRIPT)
- tm_basename = posixpath.basename(self.TM_CONFIG)
- with open(self.CFG_CONFIG) as handle:
+ if script_file is None:
+ # autogenerate vpe_script if not given
+ vpe_script = vpe_conf.generate_vpe_script(self.vnfd_helper.interfaces)
+ script_file = self.CFG_SCRIPT
+ else:
+ with utils.open_relative_file(script_file, task_path) as handle:
+ vpe_script = handle.read()
+
+ config_basename = posixpath.basename(config_file)
+ script_basename = posixpath.basename(script_file)
+
+ with utils.open_relative_file(action_bulk_file, task_path) as handle:
+ action_bulk = handle.read()
+
+ with utils.open_relative_file(full_tm_profile_file, task_path) as handle:
+ full_tm_profile = handle.read()
+
+ with utils.open_relative_file(config_file, task_path) as handle:
vpe_config = handle.read()
+ # upload the 4 config files to the target server
self.ssh_helper.upload_config_file(config_basename, vpe_config.format(**vpe_vars))
-
- vpe_script = vpe_conf.generate_vpe_script(self.vnfd_helper.interfaces)
self.ssh_helper.upload_config_file(script_basename, vpe_script.format(**vpe_vars))
-
- tm_config = vpe_conf.generate_tm_cfg(self.scenario_helper.vnf_cfg)
- self.ssh_helper.upload_config_file(tm_basename, tm_config)
+ self.ssh_helper.upload_config_file(posixpath.basename(action_bulk_file),
+ action_bulk.format(**vpe_vars))
+ self.ssh_helper.upload_config_file(posixpath.basename(full_tm_profile_file),
+ full_tm_profile.format(**vpe_vars))
LOG.info("Provision and start the %s", self.APP_NAME)
- LOG.info(self.CFG_CONFIG)
+ LOG.info(config_file)
LOG.info(self.CFG_SCRIPT)
- self._build_pipeline_kwargs()
+ self._build_pipeline_kwargs(cfg_file='/tmp/' + config_basename,
+ script='/tmp/' + script_basename)
return self.PIPELINE_COMMAND.format(**self.pipeline_kwargs)
@@ -281,7 +170,11 @@ class VpeApproxVnf(SampleVNF):
def collect_kpi(self):
# we can't get KPIs if the VNF is down
check_if_process_failed(self._vnf_process)
+ physical_node = ctx_base.Context.get_physical_node_from_server(
+ self.scenario_helper.nodes[self.name])
+
result = {
+ "physical_node": physical_node,
'pkt_in_up_stream': 0,
'pkt_drop_up_stream': 0,
'pkt_in_down_stream': 0,
diff --git a/yardstick/network_services/vnf_generic/vnf/vpp_helpers.py b/yardstick/network_services/vnf_generic/vnf/vpp_helpers.py
new file mode 100644
index 000000000..fe8e7b2ba
--- /dev/null
+++ b/yardstick/network_services/vnf_generic/vnf/vpp_helpers.py
@@ -0,0 +1,751 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import binascii
+import ipaddress
+import json
+import logging
+import os
+import re
+import tempfile
+import time
+from collections import OrderedDict
+
+from yardstick.common import constants
+from yardstick.common import exceptions
+from yardstick.network_services.helpers.cpu import CpuSysCores
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import \
+ DpdkVnfSetupEnvHelper
+
+LOG = logging.getLogger(__name__)
+
+
+class VppConfigGenerator(object):
+ VPP_LOG_FILE = '/tmp/vpe.log'
+
+ def __init__(self):
+ self._nodeconfig = {}
+ self._vpp_config = ''
+
+ def add_config_item(self, config, value, path):
+ if len(path) == 1:
+ config[path[0]] = value
+ return
+ if path[0] not in config:
+ config[path[0]] = {}
+ elif isinstance(config[path[0]], str):
+ config[path[0]] = {} if config[path[0]] == '' \
+ else {config[path[0]]: ''}
+ self.add_config_item(config[path[0]], value, path[1:])
+
+ def add_unix_log(self, value=None):
+ path = ['unix', 'log']
+ if value is None:
+ value = self.VPP_LOG_FILE
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_unix_cli_listen(self, value='/run/vpp/cli.sock'):
+ path = ['unix', 'cli-listen']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_unix_nodaemon(self):
+ path = ['unix', 'nodaemon']
+ self.add_config_item(self._nodeconfig, '', path)
+
+ def add_unix_coredump(self):
+ path = ['unix', 'full-coredump']
+ self.add_config_item(self._nodeconfig, '', path)
+
+ def add_dpdk_dev(self, *devices):
+ for device in devices:
+ if VppConfigGenerator.pci_dev_check(device):
+ path = ['dpdk', 'dev {0}'.format(device)]
+ self.add_config_item(self._nodeconfig, '', path)
+
+ def add_dpdk_cryptodev(self, count, cryptodev):
+ for i in range(count):
+ cryptodev_config = 'dev {0}'.format(
+ re.sub(r'\d.\d$', '1.' + str(i), cryptodev))
+ path = ['dpdk', cryptodev_config]
+ self.add_config_item(self._nodeconfig, '', path)
+ self.add_dpdk_uio_driver('igb_uio')
+
+ def add_dpdk_sw_cryptodev(self, sw_pmd_type, socket_id, count):
+ for _ in range(count):
+ cryptodev_config = 'vdev cryptodev_{0}_pmd,socket_id={1}'. \
+ format(sw_pmd_type, str(socket_id))
+ path = ['dpdk', cryptodev_config]
+ self.add_config_item(self._nodeconfig, '', path)
+
+ def add_dpdk_dev_default_rxq(self, value):
+ path = ['dpdk', 'dev default', 'num-rx-queues']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_dpdk_dev_default_rxd(self, value):
+ path = ['dpdk', 'dev default', 'num-rx-desc']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_dpdk_dev_default_txd(self, value):
+ path = ['dpdk', 'dev default', 'num-tx-desc']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_dpdk_log_level(self, value):
+ path = ['dpdk', 'log-level']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_dpdk_socketmem(self, value):
+ path = ['dpdk', 'socket-mem']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_dpdk_num_mbufs(self, value):
+ path = ['dpdk', 'num-mbufs']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_dpdk_uio_driver(self, value=None):
+ path = ['dpdk', 'uio-driver']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_cpu_main_core(self, value):
+ path = ['cpu', 'main-core']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_cpu_corelist_workers(self, value):
+ path = ['cpu', 'corelist-workers']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_heapsize(self, value):
+ path = ['heapsize']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_ip6_hash_buckets(self, value):
+ path = ['ip6', 'hash-buckets']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_ip6_heap_size(self, value):
+ path = ['ip6', 'heap-size']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_ip_heap_size(self, value):
+ path = ['ip', 'heap-size']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_statseg_size(self, value):
+ path = ['statseg', 'size']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_plugin(self, state, *plugins):
+ for plugin in plugins:
+ path = ['plugins', 'plugin {0}'.format(plugin), state]
+ self.add_config_item(self._nodeconfig, ' ', path)
+
+ def add_dpdk_no_multi_seg(self):
+ path = ['dpdk', 'no-multi-seg']
+ self.add_config_item(self._nodeconfig, '', path)
+
+ def add_dpdk_no_tx_checksum_offload(self):
+ path = ['dpdk', 'no-tx-checksum-offload']
+ self.add_config_item(self._nodeconfig, '', path)
+
+ def dump_config(self, obj=None, level=-1):
+ if obj is None:
+ obj = self._nodeconfig
+ obj = OrderedDict(sorted(obj.items()))
+
+ indent = ' '
+ if level >= 0:
+ self._vpp_config += '{}{{\n'.format(level * indent)
+ if isinstance(obj, dict):
+ for key, val in obj.items():
+ if hasattr(val, '__iter__') and not isinstance(val, str):
+ self._vpp_config += '{}{}\n'.format((level + 1) * indent,
+ key)
+ self.dump_config(val, level + 1)
+ else:
+ self._vpp_config += '{}{} {}\n'.format(
+ (level + 1) * indent,
+ key, val)
+ if level >= 0:
+ self._vpp_config += '{}}}\n'.format(level * indent)
+
+ return self._vpp_config
+
+ @staticmethod
+ def pci_dev_check(pci_dev):
+ pattern = re.compile("^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{2}:"
+ "[0-9A-Fa-f]{2}\\.[0-9A-Fa-f]$")
+ if not pattern.match(pci_dev):
+ raise ValueError('PCI address {addr} is not in valid format '
+ 'xxxx:xx:xx.x'.format(addr=pci_dev))
+ return True
+
+
+class VppSetupEnvHelper(DpdkVnfSetupEnvHelper):
+ APP_NAME = "vpp"
+ CFG_CONFIG = "/etc/vpp/startup.conf"
+ CFG_SCRIPT = ""
+ PIPELINE_COMMAND = ""
+ QAT_DRIVER = "qat_dh895xcc"
+ VNF_TYPE = "IPSEC"
+ VAT_BIN_NAME = 'vpp_api_test'
+
+ def __init__(self, vnfd_helper, ssh_helper, scenario_helper):
+ super(VppSetupEnvHelper, self).__init__(vnfd_helper, ssh_helper,
+ scenario_helper)
+ self.sys_cores = CpuSysCores(self.ssh_helper)
+
+ def kill_vnf(self):
+ ret_code, _, _ = \
+ self.ssh_helper.execute(
+ 'service {name} stop'.format(name=self.APP_NAME))
+ if int(ret_code):
+ raise RuntimeError(
+ 'Failed to stop service {name}'.format(name=self.APP_NAME))
+
+ def tear_down(self):
+ pass
+
+ def start_vpp_service(self):
+ ret_code, _, _ = \
+ self.ssh_helper.execute(
+ 'service {name} restart'.format(name=self.APP_NAME))
+ if int(ret_code):
+ raise RuntimeError(
+ 'Failed to start service {name}'.format(name=self.APP_NAME))
+
+ def _update_vnfd_helper(self, additional_data, iface_key=None):
+ for k, v in additional_data.items():
+ if iface_key is None:
+ if isinstance(v, dict) and k in self.vnfd_helper:
+ self.vnfd_helper[k].update(v)
+ else:
+ self.vnfd_helper[k] = v
+ else:
+ if isinstance(v,
+ dict) and k in self.vnfd_helper.find_virtual_interface(
+ ifname=iface_key):
+ self.vnfd_helper.find_virtual_interface(ifname=iface_key)[
+ k].update(v)
+ else:
+ self.vnfd_helper.find_virtual_interface(ifname=iface_key)[
+ k] = v
+
+ def get_value_by_interface_key(self, interface, key):
+ try:
+ return self.vnfd_helper.find_virtual_interface(
+ ifname=interface).get(key)
+ except (KeyError, ValueError):
+ return None
+
+ def crypto_device_init(self, pci_addr, numvfs):
+ # QAT device must be re-bound to kernel driver before initialization.
+ self.dpdk_bind_helper.load_dpdk_driver(self.QAT_DRIVER)
+
+ # Stop VPP to prevent deadlock.
+ self.kill_vnf()
+
+ current_driver = self.get_pci_dev_driver(pci_addr.replace(':', r'\:'))
+ if current_driver is not None:
+ self.pci_driver_unbind(pci_addr)
+
+ # Bind to kernel driver.
+ self.dpdk_bind_helper.bind(pci_addr, self.QAT_DRIVER.replace('qat_', ''))
+
+ # Initialize QAT VFs.
+ if numvfs > 0:
+ self.set_sriov_numvfs(pci_addr, numvfs)
+
+ def get_sriov_numvfs(self, pf_pci_addr):
+ command = 'cat /sys/bus/pci/devices/{pci}/sriov_numvfs'. \
+ format(pci=pf_pci_addr.replace(':', r'\:'))
+ _, stdout, _ = self.ssh_helper.execute(command)
+ try:
+ return int(stdout)
+ except ValueError:
+ LOG.debug('Reading sriov_numvfs info failed')
+ return 0
+
+ def set_sriov_numvfs(self, pf_pci_addr, numvfs=0):
+ command = "sh -c 'echo {num} | tee /sys/bus/pci/devices/{pci}/sriov_numvfs'". \
+ format(num=numvfs, pci=pf_pci_addr.replace(':', r'\:'))
+ self.ssh_helper.execute(command)
+
+ def pci_driver_unbind(self, pci_addr):
+ command = "sh -c 'echo {pci} | tee /sys/bus/pci/devices/{pcie}/driver/unbind'". \
+ format(pci=pci_addr, pcie=pci_addr.replace(':', r'\:'))
+ self.ssh_helper.execute(command)
+
+ def get_pci_dev_driver(self, pci_addr):
+ cmd = 'lspci -vmmks {0}'.format(pci_addr)
+ ret_code, stdout, _ = self.ssh_helper.execute(cmd)
+ if int(ret_code):
+ raise RuntimeError("'{0}' failed".format(cmd))
+ for line in stdout.splitlines():
+ if not line:
+ continue
+ name = None
+ value = None
+ try:
+ name, value = line.split("\t", 1)
+ except ValueError:
+ if name == "Driver:":
+ return None
+ if name == 'Driver:':
+ return value
+ return None
+
+ def vpp_create_ipsec_tunnels(self, if1_ip_addr, if2_ip_addr, if_name,
+ n_tunnels, n_connections, crypto_alg,
+ crypto_key, integ_alg, integ_key, addrs_ip,
+ spi_1=10000, spi_2=20000):
+ mask_length = 32
+ if n_connections <= n_tunnels:
+ count = 1
+ else:
+ count = int(n_connections / n_tunnels)
+ addr_ip_i = int(ipaddress.ip_address(str(addrs_ip)))
+ dst_start_ip = addr_ip_i
+
+ tmp_fd, tmp_path = tempfile.mkstemp()
+
+ vpp_ifname = self.get_value_by_interface_key(if_name, 'vpp_name')
+ ckey = binascii.hexlify(crypto_key.encode())
+ ikey = binascii.hexlify(integ_key.encode())
+
+ integ = ''
+ if crypto_alg.alg_name != 'aes-gcm-128':
+ integ = 'integ_alg {integ_alg} ' \
+ 'local_integ_key {local_integ_key} ' \
+ 'remote_integ_key {remote_integ_key} ' \
+ .format(integ_alg=integ_alg.alg_name,
+ local_integ_key=ikey,
+ remote_integ_key=ikey)
+ create_tunnels_cmds = 'ipsec_tunnel_if_add_del ' \
+ 'local_spi {local_spi} ' \
+ 'remote_spi {remote_spi} ' \
+ 'crypto_alg {crypto_alg} ' \
+ 'local_crypto_key {local_crypto_key} ' \
+ 'remote_crypto_key {remote_crypto_key} ' \
+ '{integ} ' \
+ 'local_ip {local_ip} ' \
+ 'remote_ip {remote_ip}\n'
+ start_tunnels_cmds = 'ip_add_del_route {raddr}/{mask} via {addr} ipsec{i}\n' \
+ 'exec set interface unnumbered ipsec{i} use {uifc}\n' \
+ 'sw_interface_set_flags ipsec{i} admin-up\n'
+
+ with os.fdopen(tmp_fd, 'w') as tmp_file:
+ for i in range(0, n_tunnels):
+ create_tunnel = create_tunnels_cmds.format(local_spi=spi_1 + i,
+ remote_spi=spi_2 + i,
+ crypto_alg=crypto_alg.alg_name,
+ local_crypto_key=ckey,
+ remote_crypto_key=ckey,
+ integ=integ,
+ local_ip=if1_ip_addr,
+ remote_ip=if2_ip_addr)
+ tmp_file.write(create_tunnel)
+ self.execute_script(tmp_path, json_out=False, copy_on_execute=True)
+ os.remove(tmp_path)
+
+ tmp_fd, tmp_path = tempfile.mkstemp()
+
+ with os.fdopen(tmp_fd, 'w') as tmp_file:
+ for i in range(0, n_tunnels):
+ if count > 1:
+ dst_start_ip = addr_ip_i + i * count
+ dst_end_ip = ipaddress.ip_address(dst_start_ip + count - 1)
+ ips = [ipaddress.ip_address(ip) for ip in
+ [str(ipaddress.ip_address(dst_start_ip)),
+ str(dst_end_ip)]]
+ lowest_ip, highest_ip = min(ips), max(ips)
+ mask_length = self.get_prefix_length(int(lowest_ip),
+ int(highest_ip),
+ lowest_ip.max_prefixlen)
+ # TODO check duplicate route for some IPs
+ elif count == 1:
+ dst_start_ip = addr_ip_i + i
+ start_tunnel = start_tunnels_cmds.format(
+ raddr=str(ipaddress.ip_address(dst_start_ip)),
+ mask=mask_length,
+ addr=if2_ip_addr,
+ i=i, count=count,
+ uifc=vpp_ifname)
+ tmp_file.write(start_tunnel)
+ # TODO add route for remain IPs
+
+ self.execute_script(tmp_path, json_out=False, copy_on_execute=True)
+ os.remove(tmp_path)
+
+ def apply_config(self, vpp_cfg, restart_vpp=True):
+ vpp_config = vpp_cfg.dump_config()
+ ret, _, _ = \
+ self.ssh_helper.execute('echo "{config}" | sudo tee {filename}'.
+ format(config=vpp_config,
+ filename=self.CFG_CONFIG))
+ if ret != 0:
+ raise RuntimeError('Writing config file failed')
+ if restart_vpp:
+ self.start_vpp_service()
+
+ def vpp_route_add(self, network, prefix_len, gateway=None, interface=None,
+ use_sw_index=True, resolve_attempts=10,
+ count=1, vrf=None, lookup_vrf=None, multipath=False,
+ weight=None, local=False):
+ if interface:
+ if use_sw_index:
+ int_cmd = ('sw_if_index {}'.format(
+ self.get_value_by_interface_key(interface,
+ 'vpp_sw_index')))
+ else:
+ int_cmd = interface
+ else:
+ int_cmd = ''
+
+ rap = 'resolve-attempts {}'.format(resolve_attempts) \
+ if resolve_attempts else ''
+
+ via = 'via {}'.format(gateway) if gateway else ''
+
+ cnt = 'count {}'.format(count) \
+ if count else ''
+
+ vrf = 'vrf {}'.format(vrf) if vrf else ''
+
+ lookup_vrf = 'lookup-in-vrf {}'.format(
+ lookup_vrf) if lookup_vrf else ''
+
+ multipath = 'multipath' if multipath else ''
+
+ weight = 'weight {}'.format(weight) if weight else ''
+
+ local = 'local' if local else ''
+
+ with VatTerminal(self.ssh_helper, json_param=False) as vat:
+ vat.vat_terminal_exec_cmd_from_template('add_route.vat',
+ network=network,
+ prefix_length=prefix_len,
+ via=via,
+ vrf=vrf,
+ interface=int_cmd,
+ resolve_attempts=rap,
+ count=cnt,
+ lookup_vrf=lookup_vrf,
+ multipath=multipath,
+ weight=weight,
+ local=local)
+
+ def add_arp_on_dut(self, iface_key, ip_address, mac_address):
+ with VatTerminal(self.ssh_helper) as vat:
+ return vat.vat_terminal_exec_cmd_from_template(
+ 'add_ip_neighbor.vat',
+ sw_if_index=self.get_value_by_interface_key(iface_key,
+ 'vpp_sw_index'),
+ ip_address=ip_address, mac_address=mac_address)
+
+ def set_ip(self, interface, address, prefix_length):
+ with VatTerminal(self.ssh_helper) as vat:
+ return vat.vat_terminal_exec_cmd_from_template(
+ 'add_ip_address.vat',
+ sw_if_index=self.get_value_by_interface_key(interface,
+ 'vpp_sw_index'),
+ address=address, prefix_length=prefix_length)
+
+ def set_interface_state(self, interface, state):
+ sw_if_index = self.get_value_by_interface_key(interface,
+ 'vpp_sw_index')
+
+ if state == 'up':
+ state = 'admin-up link-up'
+ elif state == 'down':
+ state = 'admin-down link-down'
+ else:
+ raise ValueError('Unexpected interface state: {}'.format(state))
+ with VatTerminal(self.ssh_helper) as vat:
+ return vat.vat_terminal_exec_cmd_from_template(
+ 'set_if_state.vat', sw_if_index=sw_if_index, state=state)
+
+ def vpp_set_interface_mtu(self, interface, mtu=9200):
+ sw_if_index = self.get_value_by_interface_key(interface,
+ 'vpp_sw_index')
+ if sw_if_index:
+ with VatTerminal(self.ssh_helper, json_param=False) as vat:
+ vat.vat_terminal_exec_cmd_from_template(
+ "hw_interface_set_mtu.vat", sw_if_index=sw_if_index,
+ mtu=mtu)
+
+ def vpp_interfaces_ready_wait(self, timeout=30):
+ if_ready = False
+ not_ready = []
+ start = time.time()
+ while not if_ready:
+ out = self.vpp_get_interface_data()
+ if time.time() - start > timeout:
+ for interface in out:
+ if interface.get('admin_up_down') == 1:
+ if interface.get('link_up_down') != 1:
+ LOG.debug('%s link-down',
+ interface.get('interface_name'))
+ raise RuntimeError('timeout, not up {0}'.format(not_ready))
+ not_ready = []
+ for interface in out:
+ if interface.get('admin_up_down') == 1:
+ if interface.get('link_up_down') != 1:
+ not_ready.append(interface.get('interface_name'))
+ if not not_ready:
+ if_ready = True
+ else:
+ LOG.debug('Interfaces still in link-down state: %s, '
+ 'waiting...', not_ready)
+ time.sleep(1)
+
+ def vpp_get_interface_data(self, interface=None):
+ with VatTerminal(self.ssh_helper) as vat:
+ response = vat.vat_terminal_exec_cmd_from_template(
+ "interface_dump.vat")
+ data = response[0]
+ if interface is not None:
+ if isinstance(interface, str):
+ param = "interface_name"
+ elif isinstance(interface, int):
+ param = "sw_if_index"
+ else:
+ raise TypeError
+ for data_if in data:
+ if data_if[param] == interface:
+ return data_if
+ return dict()
+ return data
+
+ def update_vpp_interface_data(self):
+ data = {}
+ interface_dump_json = self.execute_script_json_out(
+ "dump_interfaces.vat")
+ interface_list = json.loads(interface_dump_json)
+ for interface in self.vnfd_helper.interfaces:
+ if_mac = interface['virtual-interface']['local_mac']
+ interface_dict = VppSetupEnvHelper.get_vpp_interface_by_mac(
+ interface_list, if_mac)
+ if not interface_dict:
+ LOG.debug('Interface %s not found by MAC %s', interface,
+ if_mac)
+ continue
+ data[interface['virtual-interface']['ifname']] = {
+ 'vpp_name': interface_dict["interface_name"],
+ 'vpp_sw_index': interface_dict["sw_if_index"]
+ }
+ for iface_key, updated_vnfd in data.items():
+ self._update_vnfd_helper(updated_vnfd, iface_key)
+
+ def iface_update_numa(self):
+ iface_numa = {}
+ for interface in self.vnfd_helper.interfaces:
+ cmd = "cat /sys/bus/pci/devices/{}/numa_node".format(
+ interface["virtual-interface"]["vpci"])
+ ret, out, _ = self.ssh_helper.execute(cmd)
+ if ret == 0:
+ try:
+ numa_node = int(out)
+ if numa_node < 0:
+ if self.vnfd_helper["cpuinfo"][-1][3] + 1 == 1:
+ iface_numa[
+ interface['virtual-interface']['ifname']] = {
+ 'numa_node': 0
+ }
+ else:
+ raise ValueError
+ else:
+ iface_numa[
+ interface['virtual-interface']['ifname']] = {
+ 'numa_node': numa_node
+ }
+ except ValueError:
+ LOG.debug(
+ 'Reading numa location failed for: %s',
+ interface["virtual-interface"]["vpci"])
+ for iface_key, updated_vnfd in iface_numa.items():
+ self._update_vnfd_helper(updated_vnfd, iface_key)
+
+ def execute_script(self, vat_name, json_out=True, copy_on_execute=False):
+ if copy_on_execute:
+ self.ssh_helper.put_file(vat_name, vat_name)
+ remote_file_path = vat_name
+ else:
+ vat_path = self.ssh_helper.join_bin_path("vpp", "templates")
+ remote_file_path = '{0}/{1}'.format(vat_path, vat_name)
+
+ cmd = "{vat_bin} {json} in {vat_path} script".format(
+ vat_bin=self.VAT_BIN_NAME,
+ json="json" if json_out is True else "",
+ vat_path=remote_file_path)
+
+ try:
+ return self.ssh_helper.execute(cmd=cmd)
+ except Exception:
+ raise RuntimeError("VAT script execution failed: {0}".format(cmd))
+
+ def execute_script_json_out(self, vat_name):
+ vat_path = self.ssh_helper.join_bin_path("vpp", "templates")
+ remote_file_path = '{0}/{1}'.format(vat_path, vat_name)
+
+ _, stdout, _ = self.execute_script(vat_name, json_out=True)
+ return self.cleanup_vat_json_output(stdout, vat_file=remote_file_path)
+
+ @staticmethod
+ def cleanup_vat_json_output(json_output, vat_file=None):
+ retval = json_output
+ clutter = ['vat#', 'dump_interface_table error: Misc',
+ 'dump_interface_table:6019: JSON output supported only ' \
+ 'for VPE API calls and dump_stats_table']
+ if vat_file:
+ clutter.append("{0}(2):".format(vat_file))
+ for garbage in clutter:
+ retval = retval.replace(garbage, '')
+ return retval.strip()
+
+ @staticmethod
+ def _convert_mac_to_number_list(mac_address):
+ list_mac = []
+ for num in mac_address.split(":"):
+ list_mac.append(int(num, 16))
+ return list_mac
+
+ @staticmethod
+ def get_vpp_interface_by_mac(interfaces_list, mac_address):
+ interface_dict = {}
+ list_mac_address = VppSetupEnvHelper._convert_mac_to_number_list(
+ mac_address)
+ LOG.debug("MAC address %s converted to list %s.", mac_address,
+ list_mac_address)
+ for interface in interfaces_list:
+ # TODO: create vat json integrity checking and move there
+ if "l2_address" not in interface:
+ raise KeyError(
+ "key l2_address not found in interface dict."
+ "Probably input list is not parsed from correct VAT "
+ "json output.")
+ if "l2_address_length" not in interface:
+ raise KeyError(
+ "key l2_address_length not found in interface "
+ "dict. Probably input list is not parsed from correct "
+ "VAT json output.")
+ mac_from_json = interface["l2_address"][:6]
+ if mac_from_json == list_mac_address:
+ if interface["l2_address_length"] != 6:
+ raise ValueError("l2_address_length value is not 6.")
+ interface_dict = interface
+ break
+ return interface_dict
+
+ @staticmethod
+ def get_prefix_length(number1, number2, bits):
+ for i in range(bits):
+ if number1 >> i == number2 >> i:
+ return bits - i
+ return 0
+
+
+class VatTerminal(object):
+
+ __VAT_PROMPT = ("vat# ",)
+ __LINUX_PROMPT = (":~# ", ":~$ ", "~]$ ", "~]# ")
+
+
+ def __init__(self, ssh_helper, json_param=True):
+ json_text = ' json' if json_param else ''
+ self.json = json_param
+ self.ssh_helper = ssh_helper
+ EXEC_RETRY = 3
+
+ try:
+ self._tty = self.ssh_helper.interactive_terminal_open()
+ except Exception:
+ raise RuntimeError("Cannot open interactive terminal")
+
+ for _ in range(EXEC_RETRY):
+ try:
+ self.ssh_helper.interactive_terminal_exec_command(
+ self._tty,
+ 'sudo -S {0}{1}'.format(VppSetupEnvHelper.VAT_BIN_NAME,
+ json_text),
+ self.__VAT_PROMPT)
+ except exceptions.SSHTimeout:
+ continue
+ else:
+ break
+
+ self._exec_failure = False
+ self.vat_stdout = None
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
+ self.vat_terminal_close()
+
+ def vat_terminal_exec_cmd(self, cmd):
+ try:
+ out = self.ssh_helper.interactive_terminal_exec_command(self._tty,
+ cmd,
+ self.__VAT_PROMPT)
+ self.vat_stdout = out
+ except exceptions.SSHTimeout:
+ self._exec_failure = True
+ raise RuntimeError(
+ "VPP is not running on node. VAT command {0} execution failed".
+ format(cmd))
+ if self.json:
+ obj_start = out.find('{')
+ obj_end = out.rfind('}')
+ array_start = out.find('[')
+ array_end = out.rfind(']')
+
+ if obj_start == -1 and array_start == -1:
+ raise RuntimeError(
+ "VAT command {0}: no JSON data.".format(cmd))
+
+ if obj_start < array_start or array_start == -1:
+ start = obj_start
+ end = obj_end + 1
+ else:
+ start = array_start
+ end = array_end + 1
+ out = out[start:end]
+ json_out = json.loads(out)
+ return json_out
+ else:
+ return None
+
+ def vat_terminal_close(self):
+ if not self._exec_failure:
+ try:
+ self.ssh_helper.interactive_terminal_exec_command(self._tty,
+ 'quit',
+ self.__LINUX_PROMPT)
+ except exceptions.SSHTimeout:
+ raise RuntimeError("Failed to close VAT console")
+ try:
+ self.ssh_helper.interactive_terminal_close(self._tty)
+ except Exception:
+ raise RuntimeError("Cannot close interactive terminal")
+
+ def vat_terminal_exec_cmd_from_template(self, vat_template_file, **args):
+ file_path = os.path.join(constants.YARDSTICK_ROOT_PATH,
+ 'yardstick/resources/templates/',
+ vat_template_file)
+ with open(file_path, 'r') as template_file:
+ cmd_template = template_file.readlines()
+ ret = []
+ for line_tmpl in cmd_template:
+ vat_cmd = line_tmpl.format(**args)
+ ret.append(self.vat_terminal_exec_cmd(vat_cmd.replace('\n', '')))
+ return ret
diff --git a/yardstick/network_services/yang_model.py b/yardstick/network_services/yang_model.py
deleted file mode 100644
index ec00c4513..000000000
--- a/yardstick/network_services/yang_model.py
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import absolute_import
-from __future__ import print_function
-import logging
-import ipaddress
-import six
-
-from yardstick.common.yaml_loader import yaml_load
-
-LOG = logging.getLogger(__name__)
-
-
-class YangModel(object):
-
- RULE_TEMPLATE = "p acl add 1 {0} {1} {2} {3} {4} {5} {6} {7} 0 0 {8}"
-
- def __init__(self, config_file):
- super(YangModel, self).__init__()
- self._config_file = config_file
- self._options = {}
- self._rules = ''
-
- @property
- def config_file(self):
- return self._config_file
-
- @config_file.setter
- def config_file(self, value):
- self._config_file = value
- self._options = {}
- self._rules = ''
-
- def _read_config(self):
- # TODO: add some error handling in case of empty or non-existing file
- try:
- with open(self._config_file) as f:
- self._options = yaml_load(f)
- except Exception as e:
- LOG.exception("Failed to load the yaml %s", e)
- raise
-
- def _get_entries(self):
- if not self._options:
- return ''
-
- rule_list = []
- for ace in self._options['access-list1']['acl']['access-list-entries']:
- # TODO: resolve ports using topology file and nodes'
- # ids: public or private.
- matches = ace['ace']['matches']
- dst_ipv4_net = matches['destination-ipv4-network']
- dst_ipv4_net_ip = ipaddress.ip_interface(six.text_type(dst_ipv4_net))
- port0_local_network = dst_ipv4_net_ip.network.network_address.exploded
- port0_prefix = dst_ipv4_net_ip.network.prefixlen
-
- src_ipv4_net = matches['source-ipv4-network']
- src_ipv4_net_ip = ipaddress.ip_interface(six.text_type(src_ipv4_net))
- port1_local_network = src_ipv4_net_ip.network.network_address.exploded
- port1_prefix = src_ipv4_net_ip.network.prefixlen
-
- lower_dport = matches['destination-port-range']['lower-port']
- upper_dport = matches['destination-port-range']['upper-port']
-
- lower_sport = matches['source-port-range']['lower-port']
- upper_sport = matches['source-port-range']['upper-port']
-
- # TODO: proto should be read from file also.
- # Now all rules in sample ACL file are TCP.
- rule_list.append('') # get an extra new line
- rule_list.append(self.RULE_TEMPLATE.format(port0_local_network,
- port0_prefix,
- port1_local_network,
- port1_prefix,
- lower_dport,
- upper_dport,
- lower_sport,
- upper_sport,
- 0))
- rule_list.append(self.RULE_TEMPLATE.format(port1_local_network,
- port1_prefix,
- port0_local_network,
- port0_prefix,
- lower_sport,
- upper_sport,
- lower_dport,
- upper_dport,
- 1))
-
- self._rules = '\n'.join(rule_list)
-
- def get_rules(self):
- if not self._rules:
- self._read_config()
- self._get_entries()
- return self._rules
diff --git a/yardstick/orchestrator/heat.py b/yardstick/orchestrator/heat.py
index d58ae5618..9da4948dd 100644
--- a/yardstick/orchestrator/heat.py
+++ b/yardstick/orchestrator/heat.py
@@ -10,149 +10,132 @@
"""Heat template and stack management"""
from __future__ import absolute_import
-from __future__ import print_function
-from six.moves import range
-
import collections
import datetime
import getpass
import logging
-
+import pkg_resources
+import pprint
import socket
+import tempfile
import time
-import heatclient.client
-import pkg_resources
-
+from oslo_serialization import jsonutils
from oslo_utils import encodeutils
+from shade._heat import event_utils
-import yardstick.common.openstack_utils as op_utils
+from yardstick.common import constants as consts
+from yardstick.common import exceptions
from yardstick.common import template_format
+from yardstick.common import openstack_utils as op_utils
-log = logging.getLogger(__name__)
+log = logging.getLogger(__name__)
-HEAT_KEY_UUID_LENGTH = 8
PROVIDER_SRIOV = "sriov"
+_DEPLOYED_STACKS = {}
-def get_short_key_uuid(uuid):
- return str(uuid)[:HEAT_KEY_UUID_LENGTH]
+class HeatStack(object):
+ """Represents a Heat stack (deployed template) """
-class HeatObject(object):
- """base class for template and stack"""
-
- def __init__(self):
- self._heat_client = None
- self.uuid = None
+ def __init__(self, name, os_cloud_config=None):
+ self.name = name
+ self.outputs = {}
+ os_cloud_config = {} if not os_cloud_config else os_cloud_config
+ self._cloud = op_utils.get_shade_client(**os_cloud_config)
+ self._stack = None
- @property
- def heat_client(self):
- """returns a heat client instance"""
+ def _update_stack_tracking(self):
+ outputs = self._stack.outputs
+ self.outputs = {output['output_key']: output['output_value'] for output
+ in outputs}
+ if self.uuid:
+ _DEPLOYED_STACKS[self.uuid] = self._stack
- if self._heat_client is None:
- sess = op_utils.get_session()
- heat_endpoint = op_utils.get_endpoint(service_type='orchestration')
- self._heat_client = heatclient.client.Client(
- op_utils.get_heat_api_version(),
- endpoint=heat_endpoint, session=sess)
+ def create(self, template, heat_parameters, wait, timeout):
+ """Creates an OpenStack stack from a template"""
+ with tempfile.NamedTemporaryFile('wb', delete=False) as template_file:
+ template_file.write(jsonutils.dump_as_bytes(template))
+ template_file.close()
+ self._stack = self._cloud.create_stack(
+ self.name, template_file=template_file.name, wait=wait,
+ timeout=timeout, **heat_parameters)
- return self._heat_client
+ self._update_stack_tracking()
- def status(self):
- """returns stack state as a string"""
- heat_client = self.heat_client
- stack = heat_client.stacks.get(self.uuid)
- return stack.stack_status
+ def get_failures(self):
+ return event_utils.get_events(self._cloud, self._stack.id,
+ event_args={'resource_status': 'FAILED'})
+ def get(self):
+ """Retrieves an existing stack from the target cloud
-class HeatStack(HeatObject):
- """Represents a Heat stack (deployed template) """
- stacks = []
+ Returns a bool indicating whether the stack exists in the target cloud
+ If the stack exists, it will be stored as self._stack
+ """
+ self._stack = self._cloud.get_stack(self.name)
+ if not self._stack:
+ return False
- def __init__(self, name):
- super(HeatStack, self).__init__()
- self.uuid = None
- self.name = name
- self.outputs = None
- HeatStack.stacks.append(self)
+ self._update_stack_tracking()
+ return True
@staticmethod
def stacks_exist():
- """check if any stack has been deployed"""
- return len(HeatStack.stacks) > 0
+ """Check if any stack has been deployed"""
+ return len(_DEPLOYED_STACKS) > 0
- def _delete(self):
- """deletes a stack from the target cloud using heat"""
+ def delete(self, wait=True):
+ """Deletes a stack in the target cloud"""
if self.uuid is None:
return
- log.info("Deleting stack '%s' START, uuid:%s", self.name, self.uuid)
- heat = self.heat_client
- template = heat.stacks.get(self.uuid)
- start_time = time.time()
- template.delete()
-
- for status in iter(self.status, u'DELETE_COMPLETE'):
- log.debug("Deleting stack state: %s", status)
- if status == u'DELETE_FAILED':
- raise RuntimeError(
- heat.stacks.get(self.uuid).stack_status_reason)
-
- time.sleep(2)
+ try:
+ ret = self._cloud.delete_stack(self.uuid, wait=wait)
+ except TypeError:
+ # NOTE(ralonsoh): this exception catch solves a bug in Shade, which
+ # tries to retrieve and read the stack status when it's already
+ # deleted.
+ ret = True
- end_time = time.time()
- log.info("Deleting stack '%s' DONE in %d secs", self.name,
- end_time - start_time)
- self.uuid = None
-
- def delete(self, block=True, retries=3):
- """deletes a stack in the target cloud using heat (with retry)
- Sometimes delete fail with "InternalServerError" and the next attempt
- succeeds. So it is worthwhile to test a couple of times.
- """
- if self.uuid is None:
- return
-
- if not block:
- self._delete()
- return
-
- for _ in range(retries):
- try:
- self._delete()
- break
- except RuntimeError as err:
- log.warning(err.args)
- time.sleep(2)
-
- # if still not deleted try once more and let it fail everything
- if self.uuid is not None:
- self._delete()
-
- HeatStack.stacks.remove(self)
+ _DEPLOYED_STACKS.pop(self.uuid)
+ self._stack = None
+ return ret
@staticmethod
def delete_all():
- for stack in HeatStack.stacks[:]:
+ """Delete all deployed stacks"""
+ for stack in _DEPLOYED_STACKS:
stack.delete()
- def update(self):
- """update a stack"""
- raise RuntimeError("not implemented")
+ @property
+ def status(self):
+ """Retrieve the current stack status"""
+ if self._stack:
+ return self._stack.status
+ @property
+ def uuid(self):
+ """Retrieve the current stack ID"""
+ if self._stack:
+ return self._stack.id
-class HeatTemplate(HeatObject):
+
+class HeatTemplate(object):
"""Describes a Heat template and a method to deploy template to a stack"""
- DESCRIPTION_TEMPLATE = """\
+ DESCRIPTION_TEMPLATE = """
Stack built by the yardstick framework for %s on host %s %s.
All referred generated resources are prefixed with the template
-name (i.e. %s).\
+name (i.e. %s).
"""
+ HEAT_WAIT_LOOP_INTERVAL = 2
+ HEAT_STATUS_COMPLETE = 'COMPLETE'
+
def _init_template(self):
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
self._template = {
@@ -170,12 +153,12 @@ name (i.e. %s).\
# short hand for resources part of template
self.resources = self._template['resources']
- def __init__(self, name, template_file=None, heat_parameters=None):
- super(HeatTemplate, self).__init__()
+ def __init__(self, name, template_file=None, heat_parameters=None,
+ os_cloud_config=None):
self.name = name
- self.state = "NOT_CREATED"
self.keystone_client = None
self.heat_parameters = {}
+ self._os_cloud_config = {} if not os_cloud_config else os_cloud_config
# heat_parameters is passed to heat in stack create, empty dict when
# yardstick creates the template (no get_param in resources part)
@@ -184,16 +167,13 @@ name (i.e. %s).\
if template_file:
with open(template_file) as stream:
- print("Parsing external template:", template_file)
+ log.info('Parsing external template: %s', template_file)
template_str = stream.read()
self._template = template_format.parse(template_str)
self._parameters = heat_parameters
else:
self._init_template()
- # holds results of requested output after deployment
- self.outputs = {}
-
log.debug("template object '%s' created", name)
def add_flavor(self, name, vcpus=1, ram=1024, disk=1, ephemeral=0,
@@ -202,9 +182,9 @@ name (i.e. %s).\
"""add to the template a Flavor description"""
if name is None:
name = 'auto'
- log.debug("adding Nova::Flavor '%s' vcpus '%d' ram '%d' disk '%d' " +
- "ephemeral '%d' is_public '%s' rxtx_factor '%d' " +
- "swap '%d' extra_specs '%s' ",
+ log.debug("adding Nova::Flavor '%s' vcpus '%d' ram '%d' disk '%d' "
+ "ephemeral '%d' is_public '%s' rxtx_factor '%d' "
+ "swap '%d' extra_specs '%s'",
name, vcpus, ram, disk, ephemeral, is_public,
rxtx_factor, swap, str(extra_specs))
@@ -247,14 +227,10 @@ name (i.e. %s).\
def add_volume_attachment(self, server_name, volume_name, mountpoint=None):
"""add to the template an association of volume to instance"""
- log.debug("adding Cinder::VolumeAttachment server '%s' volume '%s' ", server_name,
- volume_name)
-
+ log.debug("adding Cinder::VolumeAttachment server '%s' volume '%s' ",
+ server_name, volume_name)
name = "%s-%s" % (server_name, volume_name)
-
- volume_id = op_utils.get_volume_id(volume_name)
- if not volume_id:
- volume_id = {'get_resource': volume_name}
+ volume_id = {'get_resource': volume_name}
self.resources[name] = {
'type': 'OS::Cinder::VolumeAttachment',
'properties': {'instance_uuid': {'get_resource': server_name},
@@ -363,21 +339,24 @@ name (i.e. %s).\
}
}
- def add_port(self, name, network_name, subnet_name, vnic_type, sec_group_id=None,
+ def add_port(self, name, network, sec_group_id=None,
provider=None, allowed_address_pairs=None):
"""add to the template a named Neutron Port
"""
- log.debug("adding Neutron::Port '%s', network:'%s', subnet:'%s', vnic_type:'%s', "
- "secgroup:%s", name, network_name, subnet_name, vnic_type, sec_group_id)
+ net_is_existing = network.net_flags.get(consts.IS_EXISTING)
+ depends_on = [] if net_is_existing else [network.subnet_stack_name]
+ fixed_ips = [{'subnet': network.subnet}] if net_is_existing else [
+ {'subnet': {'get_resource': network.subnet_stack_name}}]
+ network_ = network.name if net_is_existing else {
+ 'get_resource': network.stack_name}
self.resources[name] = {
'type': 'OS::Neutron::Port',
- 'depends_on': [subnet_name],
+ 'depends_on': depends_on,
'properties': {
'name': name,
- 'binding:vnic_type': vnic_type,
- 'fixed_ips': [{'subnet': {'get_resource': subnet_name}}],
- 'network_id': {'get_resource': network_name},
- 'replacement_policy': 'AUTO',
+ 'binding:vnic_type': network.vnic_type,
+ 'fixed_ips': fixed_ips,
+ 'network': network_,
}
}
@@ -394,6 +373,8 @@ name (i.e. %s).\
self.resources[name]['properties'][
'allowed_address_pairs'] = allowed_address_pairs
+ log.debug("adding Neutron::Port %s", self.resources[name])
+
self._template['outputs'][name] = {
'description': 'Address for interface %s' % name,
'value': {'get_attr': [name, 'fixed_ips', 0, 'ip_address']}
@@ -454,7 +435,7 @@ name (i.e. %s).\
}
}
- def add_keypair(self, name, key_uuid):
+ def add_keypair(self, name, key_id):
"""add to the template a Nova KeyPair"""
log.debug("adding Nova::KeyPair '%s'", name)
self.resources[name] = {
@@ -466,7 +447,7 @@ name (i.e. %s).\
pkg_resources.resource_string(
'yardstick.resources',
'files/yardstick_key-' +
- get_short_key_uuid(key_uuid) + '.pub'),
+ key_id + '.pub'),
'utf-8')
}
}
@@ -490,39 +471,77 @@ name (i.e. %s).\
'value': {'get_resource': name}
}
- def add_security_group(self, name):
+ def add_security_group(self, name, security_group=None):
"""add to the template a Neutron SecurityGroup"""
log.debug("adding Neutron::SecurityGroup '%s'", name)
+ description = ("Group allowing IPv4 and IPv6 for icmp and upd/tcp on"
+ "all ports")
+ rules = [
+ {'remote_ip_prefix': '0.0.0.0/0',
+ 'protocol': 'tcp',
+ 'port_range_min': '1',
+ 'port_range_max': '65535'},
+ {'remote_ip_prefix': '0.0.0.0/0',
+ 'protocol': 'udp',
+ 'port_range_min': '1',
+ 'port_range_max': '65535'},
+ {'remote_ip_prefix': '0.0.0.0/0',
+ 'protocol': 'icmp'},
+ {'remote_ip_prefix': '::/0',
+ 'ethertype': 'IPv6',
+ 'protocol': 'tcp',
+ 'port_range_min': '1',
+ 'port_range_max': '65535'},
+ {'remote_ip_prefix': '::/0',
+ 'ethertype': 'IPv6',
+ 'protocol': 'udp',
+ 'port_range_min': '1',
+ 'port_range_max': '65535'},
+ {'remote_ip_prefix': '::/0',
+ 'ethertype': 'IPv6',
+ 'protocol': 'ipv6-icmp'},
+ {'remote_ip_prefix': '0.0.0.0/0',
+ 'direction': 'egress',
+ 'protocol': 'tcp',
+ 'port_range_min': '1',
+ 'port_range_max': '65535'},
+ {'remote_ip_prefix': '0.0.0.0/0',
+ 'direction': 'egress',
+ 'protocol': 'udp',
+ 'port_range_min': '1',
+ 'port_range_max': '65535'},
+ {'remote_ip_prefix': '0.0.0.0/0',
+ 'direction': 'egress',
+ 'protocol': 'icmp'},
+ {'remote_ip_prefix': '::/0',
+ 'direction': 'egress',
+ 'ethertype': 'IPv6',
+ 'protocol': 'tcp',
+ 'port_range_min': '1',
+ 'port_range_max': '65535'},
+ {'remote_ip_prefix': '::/0',
+ 'direction': 'egress',
+ 'ethertype': 'IPv6',
+ 'protocol': 'udp',
+ 'port_range_min': '1',
+ 'port_range_max': '65535'},
+ {'remote_ip_prefix': '::/0',
+ 'direction': 'egress',
+ 'ethertype': 'IPv6',
+ 'protocol': 'ipv6-icmp'},
+ ]
+ if security_group:
+ description = "Custom security group rules defined by the user"
+ rules = security_group.get('rules')
+
+ log.debug("The security group rules is %s", rules)
+
self.resources[name] = {
'type': 'OS::Neutron::SecurityGroup',
'properties': {
'name': name,
- 'description': "Group allowing IPv4 and IPv6 for icmp and upd/tcp on all ports",
- 'rules': [
- {'remote_ip_prefix': '0.0.0.0/0',
- 'protocol': 'tcp',
- 'port_range_min': '1',
- 'port_range_max': '65535'},
- {'remote_ip_prefix': '0.0.0.0/0',
- 'protocol': 'udp',
- 'port_range_min': '1',
- 'port_range_max': '65535'},
- {'remote_ip_prefix': '0.0.0.0/0',
- 'protocol': 'icmp'},
- {'remote_ip_prefix': '::/0',
- 'ethertype': 'IPv6',
- 'protocol': 'tcp',
- 'port_range_min': '1',
- 'port_range_max': '65535'},
- {'remote_ip_prefix': '::/0',
- 'ethertype': 'IPv6',
- 'protocol': 'udp',
- 'port_range_min': '1',
- 'port_range_max': '65535'},
- {'remote_ip_prefix': '::/0',
- 'ethertype': 'IPv6',
- 'protocol': 'ipv6-icmp'}
- ]
+ 'description': description,
+ 'rules': rules
}
}
@@ -600,57 +619,31 @@ name (i.e. %s).\
'value': {'get_resource': name}
}
- HEAT_WAIT_LOOP_INTERVAL = 2
- HEAT_CREATE_COMPLETE_STATUS = u'CREATE_COMPLETE'
-
def create(self, block=True, timeout=3600):
- """
- creates a template in the target cloud using heat
- returns a dict with the requested output values from the template
+ """Creates a stack in the target based on the stored template
- :param block: Wait for Heat create to finish
- :type block: bool
- :param: timeout: timeout in seconds for Heat create, default 3600s
- :type timeout: int
+ :param block: (bool) Wait for Heat create to finish
+ :param timeout: (int) Timeout in seconds for Heat create,
+ default 3600s
+ :return A dict with the requested output values from the template
"""
log.info("Creating stack '%s' START", self.name)
- # create stack early to support cleanup, e.g. ctrl-c while waiting
- stack = HeatStack(self.name)
-
- heat_client = self.heat_client
start_time = time.time()
- stack.uuid = self.uuid = heat_client.stacks.create(
- stack_name=self.name, template=self._template,
- parameters=self.heat_parameters)['stack']['id']
+ stack = HeatStack(self.name, os_cloud_config=self._os_cloud_config)
+ stack.create(self._template, self.heat_parameters, block, timeout)
if not block:
- self.outputs = stack.outputs = {}
- end_time = time.time()
log.info("Creating stack '%s' DONE in %d secs",
- self.name, end_time - start_time)
+ self.name, time.time() - start_time)
return stack
- time_limit = start_time + timeout
- for status in iter(self.status, self.HEAT_CREATE_COMPLETE_STATUS):
- log.debug("Creating stack state: %s", status)
- if status == u'CREATE_FAILED':
- stack_status_reason = heat_client.stacks.get(self.uuid).stack_status_reason
- heat_client.stacks.delete(self.uuid)
- raise RuntimeError(stack_status_reason)
- if time.time() > time_limit:
- raise RuntimeError("Heat stack create timeout")
-
- time.sleep(self.HEAT_WAIT_LOOP_INTERVAL)
+ if stack.status != self.HEAT_STATUS_COMPLETE:
+ for event in stack.get_failures():
+ log.error("%s", event.resource_status_reason)
+ log.error(pprint.pformat(self._template))
+ raise exceptions.HeatTemplateError(stack_name=self.name)
- end_time = time.time()
- outputs = heat_client.stacks.get(self.uuid).outputs
log.info("Creating stack '%s' DONE in %d secs",
- self.name, end_time - start_time)
-
- # keep outputs as unicode
- self.outputs = {output["output_key"]: output["output_value"] for output
- in outputs}
-
- stack.outputs = self.outputs
+ self.name, time.time() - start_time)
return stack
diff --git a/yardstick/orchestrator/kubernetes.py b/yardstick/orchestrator/kubernetes.py
index 198eeac6d..b0b93a3c2 100644
--- a/yardstick/orchestrator/kubernetes.py
+++ b/yardstick/orchestrator/kubernetes.py
@@ -7,25 +7,136 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import absolute_import
-from __future__ import print_function
+import copy
+import re
-from yardstick.common import utils
+from oslo_serialization import jsonutils
+import six
+
+from yardstick.common import constants
+from yardstick.common import exceptions
from yardstick.common import kubernetes_utils as k8s_utils
+from yardstick.common import utils
+
+
+class ContainerObject(object):
+
+ SSH_MOUNT_PATH = '/tmp/.ssh/'
+ IMAGE_DEFAULT = 'openretriever/yardstick'
+ COMMAND_DEFAULT = ['/bin/bash', '-c']
+ RESOURCES = ('requests', 'limits')
+ PORT_OPTIONS = ('containerPort', 'hostIP', 'hostPort', 'name', 'protocol')
+ IMAGE_PULL_POLICY = ('Always', 'IfNotPresent', 'Never')
+
+ def __init__(self, name, ssh_key, **kwargs):
+ self._name = name
+ self._ssh_key = ssh_key
+ self._image = kwargs.get('image', self.IMAGE_DEFAULT)
+ self._command = self._parse_commands(
+ kwargs.get('command', self.COMMAND_DEFAULT))
+ self._args = self._parse_commands(kwargs.get('args', []))
+ self._volume_mounts = kwargs.get('volumeMounts', [])
+ self._security_context = kwargs.get('securityContext')
+ self._env = kwargs.get('env', [])
+ self._resources = kwargs.get('resources', {})
+ self._ports = kwargs.get('ports', [])
+ self._image_pull_policy = kwargs.get('imagePullPolicy')
+ self._tty = kwargs.get('tty')
+ self._stdin = kwargs.get('stdin')
+
+ @staticmethod
+ def _parse_commands(command):
+ if isinstance(command, six.string_types):
+ return [command]
+ elif isinstance(command, list):
+ return command
+ raise exceptions.KubernetesContainerCommandType()
+
+ def _create_volume_mounts(self):
+ """Return all "volumeMounts" items per container"""
+ volume_mounts_items = [self._create_volume_mounts_item(vol)
+ for vol in self._volume_mounts]
+ ssh_vol = {'name': self._ssh_key,
+ 'mountPath': self.SSH_MOUNT_PATH}
+ volume_mounts_items.append(self._create_volume_mounts_item(ssh_vol))
+ return volume_mounts_items
+
+ @staticmethod
+ def _create_volume_mounts_item(volume_mount):
+ """Create a "volumeMounts" item"""
+ return {'name': volume_mount['name'],
+ 'mountPath': volume_mount['mountPath'],
+ 'readOnly': volume_mount.get('readOnly', False)}
+
+ def get_container_item(self):
+ """Create a "container" item"""
+ container_name = '{}-container'.format(self._name)
+ container = {'args': self._args,
+ 'command': self._command,
+ 'image': self._image,
+ 'name': container_name,
+ 'volumeMounts': self._create_volume_mounts()}
+ if self._security_context:
+ container['securityContext'] = self._security_context
+ if self._env:
+ container['env'] = []
+ for env in self._env:
+ container['env'].append({'name': env['name'],
+ 'value': env['value']})
+ if self._ports:
+ container['ports'] = []
+ for port in self._ports:
+ if 'containerPort' not in port.keys():
+ raise exceptions.KubernetesContainerPortNotDefined(
+ port=port)
+ _port = {port_option: value for port_option, value
+ in port.items() if port_option in self.PORT_OPTIONS}
+ container['ports'].append(_port)
+ if self._resources:
+ container['resources'] = {}
+ for res in (res for res in self._resources if
+ res in self.RESOURCES):
+ container['resources'][res] = self._resources[res]
+ if self._image_pull_policy:
+ if self._image_pull_policy not in self.IMAGE_PULL_POLICY:
+ raise exceptions.KubernetesContainerWrongImagePullPolicy()
+ container['imagePullPolicy'] = self._image_pull_policy
+ if self._stdin is not None:
+ container['stdin'] = self._stdin
+ if self._tty is not None:
+ container['tty'] = self._tty
+ return container
+
+class ReplicationControllerObject(object):
-class KubernetesObject(object):
+ SSHKEY_DEFAULT = 'yardstick_key'
+ RESTART_POLICY = ('Always', 'OnFailure', 'Never')
+ TOLERATIONS_KEYS = ('key', 'value', 'effect', 'operator')
def __init__(self, name, **kwargs):
- super(KubernetesObject, self).__init__()
+ super(ReplicationControllerObject, self).__init__()
+ parameters = copy.deepcopy(kwargs)
self.name = name
- self.image = kwargs.get('image', 'openretriever/yardstick')
- self.command = [kwargs.get('command', '/bin/bash')]
- self.args = kwargs.get('args', [])
- self.ssh_key = kwargs.get('ssh_key', 'yardstick_key')
- self.node_selector = kwargs.get('nodeSelector', {})
-
- self.volumes = []
+ self.node_selector = parameters.pop('nodeSelector', {})
+ self.ssh_key = parameters.pop('ssh_key', self.SSHKEY_DEFAULT)
+ self._volumes = parameters.pop('volumes', [])
+ self._security_context = parameters.pop('securityContext', None)
+ self._networks = parameters.pop('networks', [])
+ self._tolerations = parameters.pop('tolerations', [])
+ self._restart_policy = parameters.pop('restartPolicy', 'Always')
+ if self._restart_policy not in self.RESTART_POLICY:
+ raise exceptions.KubernetesWrongRestartPolicy(
+ rpolicy=self._restart_policy)
+
+ containers = parameters.pop('containers', None)
+ if containers:
+ self._containers = [
+ ContainerObject(self.name, self.ssh_key, **container)
+ for container in containers]
+ else:
+ self._containers = [
+ ContainerObject(self.name, self.ssh_key, **parameters)]
self.template = {
"apiVersion": "v1",
@@ -37,14 +148,14 @@ class KubernetesObject(object):
"replicas": 1,
"template": {
"metadata": {
- "labels": {
- "app": name
- }
+ "labels": {"app": name}
},
"spec": {
"containers": [],
"volumes": [],
- "nodeSelector": {}
+ "nodeSelector": {},
+ "restartPolicy": self._restart_policy,
+ "tolerations": []
}
}
}
@@ -53,8 +164,14 @@ class KubernetesObject(object):
self._change_value_according_name(name)
self._add_containers()
self._add_node_selector()
- self._add_ssh_key_volume()
self._add_volumes()
+ self._add_security_context()
+ self._add_networks()
+ self._add_tolerations()
+
+ @property
+ def networks(self):
+ return self._networks
def get_template(self):
return self.template
@@ -67,95 +184,291 @@ class KubernetesObject(object):
name)
def _add_containers(self):
- containers = [self._add_container()]
+ containers = [container.get_container_item()
+ for container in self._containers]
utils.set_dict_value(self.template,
'spec.template.spec.containers',
containers)
- def _add_container(self):
- container_name = '{}-container'.format(self.name)
- ssh_key_mount_path = "/root/.ssh/"
-
- container = {
- "args": self.args,
- "command": self.command,
- "image": self.image,
- "name": container_name,
- "volumeMounts": [
- {
- "mountPath": ssh_key_mount_path,
- "name": self.ssh_key
- }
- ]
- }
-
- return container
-
def _add_node_selector(self):
utils.set_dict_value(self.template,
'spec.template.spec.nodeSelector',
self.node_selector)
def _add_volumes(self):
+ """Add "volume" items to container specs, including the SSH one"""
+ volume_items = [self._create_volume_item(vol) for vol in self._volumes]
+ volume_items.append(self._create_ssh_key_volume())
utils.set_dict_value(self.template,
'spec.template.spec.volumes',
- self.volumes)
+ volume_items)
+
+ def _create_ssh_key_volume(self):
+ """Create a "volume" item of type "configMap" for the SSH key"""
+ return {'name': self.ssh_key,
+ 'configMap': {'name': self.ssh_key}}
+
+ @staticmethod
+ def _create_volume_item(volume):
+ """Create a "volume" item"""
+ volume = copy.deepcopy(volume)
+ name = volume.pop('name')
+ for key in (k for k in volume if k in k8s_utils.get_volume_types()):
+ type_name = key
+ type_data = volume[key]
+ break
+ else:
+ raise exceptions.KubernetesTemplateInvalidVolumeType(volume=volume)
+
+ return {'name': name,
+ type_name: type_data}
+
+ def _add_security_context(self):
+ if self._security_context:
+ utils.set_dict_value(self.template,
+ 'spec.template.spec.securityContext',
+ self._security_context)
+
+ def _add_networks(self):
+ networks = []
+ for net in self._networks:
+ networks.append({'name': net})
+
+ if not networks:
+ return
+
+ annotations = {'networks': jsonutils.dumps(networks)}
+ utils.set_dict_value(self.template,
+ 'spec.template.metadata.annotations',
+ annotations)
- def _add_volume(self, volume):
- self.volumes.append(volume)
+ def _add_tolerations(self):
+ tolerations = []
+ for tol in self._tolerations:
+ tolerations.append({k: tol[k] for k in tol
+ if k in self.TOLERATIONS_KEYS})
- def _add_ssh_key_volume(self):
- key_volume = {
- "configMap": {
- "name": self.ssh_key
- },
- "name": self.ssh_key
- }
- self._add_volume(key_volume)
+ tolerations = ([{'operator': 'Exists'}] if not tolerations
+ else tolerations)
+ utils.set_dict_value(self.template,
+ 'spec.template.spec.tolerations',
+ tolerations)
-class ServiceObject(object):
+class ServiceNodePortObject(object):
+
+ MANDATORY_PARAMETERS = {'port', 'name'}
+ NAME_REGEX = re.compile(r'^[a-z0-9]([-a-z0-9]*[a-z0-9])?$')
+
+ def __init__(self, name, **kwargs):
+ """Service kind "NodePort" object
- def __init__(self, name):
- self.name = '{}-service'.format(name)
+ :param name: (string) name of the Service
+ :param kwargs: (dict) node_ports -> (list) port, name, targetPort,
+ nodePort
+ """
+ self._name = '{}-service'.format(name)
self.template = {
- 'metadata': {
- 'name': '{}-service'.format(name)
- },
+ 'metadata': {'name': '{}-service'.format(name)},
'spec': {
'type': 'NodePort',
- 'ports': [
- {
- 'port': 22,
- 'protocol': 'TCP'
- }
- ],
- 'selector': {
- 'app': name
- }
+ 'ports': [],
+ 'selector': {'app': name}
}
}
+ self._add_port(22, 'ssh', protocol='TCP')
+ node_ports = copy.deepcopy(kwargs.get('node_ports', []))
+ for port in node_ports:
+ if not self.MANDATORY_PARAMETERS.issubset(port.keys()):
+ missing_parameters = ', '.join(
+ str(param) for param in
+ (self.MANDATORY_PARAMETERS - set(port.keys())))
+ raise exceptions.KubernetesServiceObjectDefinitionError(
+ missing_parameters=missing_parameters)
+ port_number = port.pop('port')
+ name = port.pop('name')
+ if not self.NAME_REGEX.match(name):
+ raise exceptions.KubernetesServiceObjectNameError(name=name)
+ self._add_port(port_number, name, **port)
+
+ def _add_port(self, port, name, protocol=None, targetPort=None,
+ nodePort=None):
+ _port = {'port': port,
+ 'name': name}
+ if protocol:
+ _port['protocol'] = protocol
+ if targetPort:
+ _port['targetPort'] = targetPort
+ if nodePort:
+ _port['nodePort'] = nodePort
+ self.template['spec']['ports'].append(_port)
+
def create(self):
k8s_utils.create_service(self.template)
def delete(self):
- k8s_utils.delete_service(self.name)
+ k8s_utils.delete_service(self._name, skip_codes=[404])
+
+
+class CustomResourceDefinitionObject(object):
+
+ MANDATORY_PARAMETERS = {'name'}
+
+ def __init__(self, ctx_name, **kwargs):
+ if not self.MANDATORY_PARAMETERS.issubset(kwargs):
+ missing_parameters = ', '.join(
+ str(param) for param in
+ (self.MANDATORY_PARAMETERS - set(kwargs)))
+ raise exceptions.KubernetesCRDObjectDefinitionError(
+ missing_parameters=missing_parameters)
+
+ singular = kwargs['name']
+ plural = singular + 's'
+ kind = singular.title()
+ version = kwargs.get('version', 'v1')
+ scope = kwargs.get('scope', constants.SCOPE_NAMESPACED)
+ group = ctx_name + '.com'
+ self._name = metadata_name = plural + '.' + group
+
+ self._template = {
+ 'metadata': {
+ 'name': metadata_name
+ },
+ 'spec': {
+ 'group': group,
+ 'version': version,
+ 'scope': scope,
+ 'names': {'plural': plural,
+ 'singular': singular,
+ 'kind': kind}
+ }
+ }
+
+ def create(self):
+ k8s_utils.create_custom_resource_definition(self._template)
+
+ def delete(self):
+ k8s_utils.delete_custom_resource_definition(self._name, skip_codes=[404])
+
+
+class NetworkObject(object):
+
+ MANDATORY_PARAMETERS = {'plugin', 'args'}
+ KIND = 'Network'
+
+ def __init__(self, name, **kwargs):
+ if not self.MANDATORY_PARAMETERS.issubset(kwargs):
+ missing_parameters = ', '.join(
+ str(param) for param in
+ (self.MANDATORY_PARAMETERS - set(kwargs)))
+ raise exceptions.KubernetesNetworkObjectDefinitionError(
+ missing_parameters=missing_parameters)
+
+ self._name = name
+ self._plugin = kwargs['plugin']
+ self._args = kwargs['args']
+ self._crd = None
+ self._template = None
+ self._group = None
+ self._version = None
+ self._plural = None
+ self._scope = None
+
+ @property
+ def crd(self):
+ if self._crd:
+ return self._crd
+ crd = k8s_utils.get_custom_resource_definition(self.KIND)
+ if not crd:
+ raise exceptions.KubernetesNetworkObjectKindMissing()
+ self._crd = crd
+ return self._crd
+
+ @property
+ def group(self):
+ if self._group:
+ return self._group
+ self._group = self.crd.spec.group
+ return self._group
+
+ @property
+ def version(self):
+ if self._version:
+ return self._version
+ self._version = self.crd.spec.version
+ return self._version
+
+ @property
+ def plural(self):
+ if self._plural:
+ return self._plural
+ self._plural = self.crd.spec.names.plural
+ return self._plural
+
+ @property
+ def scope(self):
+ if self._scope:
+ return self._scope
+ self._scope = self.crd.spec.scope
+ return self._scope
+
+ @property
+ def template(self):
+ """"Network" object template
+
+ This template can be rendered only once the CRD "Network" is created in
+ Kubernetes. This function call must be delayed until the creation of
+ the CRD "Network".
+ """
+ if self._template:
+ return self._template
+
+ self._template = {
+ 'apiVersion': '{}/{}'.format(self.group, self.version),
+ 'kind': self.KIND,
+ 'metadata': {
+ 'name': self._name
+ },
+ 'plugin': self._plugin,
+ 'args': self._args
+ }
+ return self._template
+
+ def create(self):
+ k8s_utils.create_network(self.scope, self.group, self.version,
+ self.plural, self.template, self._name)
+
+ def delete(self):
+ k8s_utils.delete_network(self.scope, self.group, self.version,
+ self.plural, self._name, skip_codes=[404])
class KubernetesTemplate(object):
- def __init__(self, name, template_cfg):
+ def __init__(self, name, context_cfg):
+ """KubernetesTemplate object initialization
+
+ :param name: (str) name of the Kubernetes context
+ :param context_cfg: (dict) context definition
+ """
+ context_cfg = copy.deepcopy(context_cfg)
+ servers_cfg = context_cfg.pop('servers', {})
+ crd_cfg = context_cfg.pop('custom_resources', [])
+ networks_cfg = context_cfg.pop('networks', {})
self.name = name
self.ssh_key = '{}-key'.format(name)
- self.rcs = [self._get_rc_name(rc) for rc in template_cfg]
- self.k8s_objs = [KubernetesObject(self._get_rc_name(rc),
- ssh_key=self.ssh_key,
- **cfg)
- for rc, cfg in template_cfg.items()]
- self.service_objs = [ServiceObject(s) for s in self.rcs]
-
+ self.rcs = {self._get_rc_name(rc): cfg
+ for rc, cfg in servers_cfg.items()}
+ self.rc_objs = [ReplicationControllerObject(
+ rc, ssh_key=self.ssh_key, **cfg) for rc, cfg in self.rcs.items()]
+ self.service_objs = [ServiceNodePortObject(rc, **cfg)
+ for rc, cfg in self.rcs.items()]
+ self.crd = [CustomResourceDefinitionObject(self.name, **crd)
+ for crd in crd_cfg]
+ self.network_objs = [NetworkObject(net_name, **net_data)
+ for net_name, net_data in networks_cfg.items()]
self.pods = []
def _get_rc_name(self, rc_name):
@@ -167,3 +480,8 @@ class KubernetesTemplate(object):
if p.metadata.name.startswith(s)]
return self.pods
+
+ def get_rc_by_name(self, rc_name):
+ """Returns a ``ReplicationControllerObject``, searching by name"""
+ for rc in (rc for rc in self.rc_objs if rc.name == rc_name):
+ return rc
diff --git a/yardstick/resources/scripts/install/ovs_deploy.bash b/yardstick/resources/scripts/install/ovs_deploy.bash
index d94f30db1..beda9a5e0 100755
--- a/yardstick/resources/scripts/install/ovs_deploy.bash
+++ b/yardstick/resources/scripts/install/ovs_deploy.bash
@@ -14,6 +14,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+set -e
+
INSTALL_OVS_BIN="/usr/src"
cd $INSTALL_OVS_BIN
@@ -22,20 +24,6 @@ if [[ $EUID -ne 0 ]]; then
exit 1;
fi
-prerequisite()
-{
- echo "Install required libraries to run collectd..."
- pkg=(git flex bison build-essential pkg-config automake autotools-dev libltdl-dev cmake qemu-kvm libvirt-bin bridge-utils numactl libnuma-dev libpcap-dev)
- for i in "${pkg[@]}"; do
- dpkg-query -W --showformat='${Status}\n' "${i}"|grep "install ok installed"
- if [ "$?" -eq "1" ]; then
- apt-get update
- apt-get -y install "${i}";
- fi
- done
- echo "Done"
-}
-
download_zip()
{
url=$1
@@ -53,6 +41,7 @@ download_zip()
dpdk_build()
{
+ echo "Build DPDK libraries"
pushd .
if [[ $DPDK_VERSION != "" ]]; then
export DPDK_DIR=$INSTALL_OVS_BIN/dpdk-stable-$DPDK_VERSION
@@ -62,13 +51,15 @@ dpdk_build()
DPDK_DOWNLOAD="http://fast.dpdk.org/rel/dpdk-$DPDK_VERSION.tar.xz"
download_zip "${DPDK_DOWNLOAD}" "DPDK"
cd dpdk-stable-"$DPDK_VERSION"
- make install -j T=$RTE_TARGET
+ make config T=$RTE_TARGET
+ make install -j $(nproc) T=$RTE_TARGET
fi
popd
}
ovs()
{
+ echo "Build and install OVS with DPDK"
pushd .
if [[ $OVS_VERSION != "" ]]; then
rm -rf openswitch-"$OVS_VERSION"
@@ -82,7 +73,7 @@ ovs()
else
./configure
fi
- make install -j
+ make install -j $(nproc)
fi
popd
}
diff --git a/yardstick/resources/templates/add_ip_address.vat b/yardstick/resources/templates/add_ip_address.vat
new file mode 100644
index 000000000..d59480c33
--- /dev/null
+++ b/yardstick/resources/templates/add_ip_address.vat
@@ -0,0 +1 @@
+sw_interface_add_del_address sw_if_index {sw_if_index} {address}/{prefix_length}
diff --git a/yardstick/resources/templates/add_ip_neighbor.vat b/yardstick/resources/templates/add_ip_neighbor.vat
new file mode 100644
index 000000000..730e7112a
--- /dev/null
+++ b/yardstick/resources/templates/add_ip_neighbor.vat
@@ -0,0 +1 @@
+ip_neighbor_add_del sw_if_index {sw_if_index} dst {ip_address} mac {mac_address}
diff --git a/yardstick/resources/templates/add_route.vat b/yardstick/resources/templates/add_route.vat
new file mode 100644
index 000000000..64c6a6c3b
--- /dev/null
+++ b/yardstick/resources/templates/add_route.vat
@@ -0,0 +1 @@
+ip_add_del_route {network}/{prefix_length} {via} {vrf} {interface} {resolve_attempts} {count} {lookup_vrf} {multipath} {weight} {local} \ No newline at end of file
diff --git a/yardstick/resources/templates/del_route.vat b/yardstick/resources/templates/del_route.vat
new file mode 100644
index 000000000..e7fe4bc1e
--- /dev/null
+++ b/yardstick/resources/templates/del_route.vat
@@ -0,0 +1 @@
+ip_add_del_route {network}/{prefix_length} via {gateway} sw_if_index {sw_if_index} del \ No newline at end of file
diff --git a/yardstick/resources/templates/flush_ip_addresses.vat b/yardstick/resources/templates/flush_ip_addresses.vat
new file mode 100644
index 000000000..f38fcf12c
--- /dev/null
+++ b/yardstick/resources/templates/flush_ip_addresses.vat
@@ -0,0 +1 @@
+sw_interface_add_del_address sw_if_index {sw_if_index} del-all \ No newline at end of file
diff --git a/yardstick/resources/templates/hw_interface_set_mtu.vat b/yardstick/resources/templates/hw_interface_set_mtu.vat
new file mode 100644
index 000000000..645d1a80c
--- /dev/null
+++ b/yardstick/resources/templates/hw_interface_set_mtu.vat
@@ -0,0 +1 @@
+hw_interface_set_mtu sw_if_index {sw_if_index} mtu {mtu}
diff --git a/yardstick/resources/templates/interface_dump.vat b/yardstick/resources/templates/interface_dump.vat
new file mode 100644
index 000000000..850c348f6
--- /dev/null
+++ b/yardstick/resources/templates/interface_dump.vat
@@ -0,0 +1 @@
+sw_interface_dump
diff --git a/yardstick/resources/templates/set_if_state.vat b/yardstick/resources/templates/set_if_state.vat
new file mode 100644
index 000000000..e2c2d4b29
--- /dev/null
+++ b/yardstick/resources/templates/set_if_state.vat
@@ -0,0 +1 @@
+sw_interface_set_flags sw_if_index {sw_if_index} {state}
diff --git a/yardstick/service/__init__.py b/yardstick/service/__init__.py
new file mode 100644
index 000000000..1c3953de6
--- /dev/null
+++ b/yardstick/service/__init__.py
@@ -0,0 +1,12 @@
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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
+##############################################################################
+
+
+class Service(object):
+ pass
diff --git a/yardstick/service/environment.py b/yardstick/service/environment.py
new file mode 100644
index 000000000..d910e31e9
--- /dev/null
+++ b/yardstick/service/environment.py
@@ -0,0 +1,101 @@
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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 tempfile
+import logging
+import collections
+
+from oslo_serialization import jsonutils
+
+from yardstick.service import Service
+from yardstick.common.exceptions import MissingPodInfoError
+from yardstick.common.exceptions import UnsupportedPodFormatError
+from yardstick.common.ansible_common import AnsibleCommon
+
+LOG = logging.getLogger(__name__)
+
+
+class Environment(Service):
+ def __init__(self, pod=None):
+ super(Environment, self).__init__()
+ # pod can be a dict or a json format string
+ self.pod = pod
+
+ def get_sut_info(self):
+ temdir = tempfile.mkdtemp(prefix='sut')
+
+ nodes = self._load_pod_info()
+ ansible = AnsibleCommon(nodes=nodes)
+ ansible.gen_inventory_ini_dict()
+ sut_info = ansible.get_sut_info(temdir)
+
+ return self._format_sut_info(sut_info)
+
+ def _load_pod_info(self): # pragma: no cover
+ if self.pod is None:
+ raise MissingPodInfoError
+
+ if isinstance(self.pod, collections.Mapping):
+ try:
+ return self.pod['nodes']
+ except KeyError:
+ raise UnsupportedPodFormatError
+
+ try:
+ return jsonutils.loads(self.pod)['nodes']
+ except (ValueError, KeyError):
+ raise UnsupportedPodFormatError
+
+ def _format_sut_info(self, sut_info): # pragma: no cover
+ return {k: self._format_node_info(v) for k, v in sut_info.items()}
+
+ def _format_node_info(self, node_info): # pragma: no cover
+ info = []
+ facts = node_info.get('ansible_facts', {})
+
+ info.append(['hostname', facts.get('ansible_hostname')])
+
+ info.append(['product_name', facts.get('ansible_product_name')])
+ info.append(['product_version', facts.get('ansible_product_version')])
+
+ processors = facts.get('ansible_processor', [])
+ try:
+ processor_type = '{} {}'.format(processors[0], processors[1])
+ except IndexError:
+ LOG.exception('No Processor in SUT data')
+ processor_type = None
+
+ info.append(['processor_type', processor_type])
+ info.append(['architecture', facts.get('ansible_architecture')])
+ info.append(['processor_cores', facts.get('ansible_processor_cores')])
+ info.append(['processor_vcpus', facts.get('ansible_processor_vcpus')])
+
+ memory = facts.get('ansible_memtotal_mb')
+ memory = round(memory * 1.0 / 1024, 2) if memory else None
+ info.append(['memory', '{} GB'.format(memory)])
+
+ devices = facts.get('ansible_devices', {})
+ info.extend([self._get_device_info(k, v) for k, v in devices.items()])
+
+ lsb_description = facts.get('ansible_lsb', {}).get('description')
+ info.append(['OS', lsb_description])
+
+ interfaces = facts.get('ansible_interfaces')
+ info.append(['interfaces', interfaces])
+ if isinstance(interfaces, collections.Sequence):
+ info.extend([self._get_interface_info(facts, i) for i in interfaces])
+ info = [i for i in info if i]
+
+ return info
+
+ def _get_interface_info(self, facts, name): # pragma: no cover
+ mac = facts.get('ansible_{}'.format(name), {}).get('macaddress')
+ return [name, mac] if mac else []
+
+ def _get_device_info(self, name, info): # pragma: no cover
+ return ['disk_{}'.format(name), info.get('size')]
diff --git a/yardstick/ssh.py b/yardstick/ssh.py
index 6ddf327f2..6bc6010f7 100644
--- a/yardstick/ssh.py
+++ b/yardstick/ssh.py
@@ -62,15 +62,13 @@ Eventlet:
sshclient = eventlet.import_patched("yardstick.ssh")
"""
-from __future__ import absolute_import
-import os
import io
+import logging
+import os
+import re
import select
import socket
import time
-import re
-
-import logging
import paramiko
from chainmap import ChainMap
@@ -78,9 +76,11 @@ from oslo_utils import encodeutils
from scp import SCPClient
import six
-from yardstick.common.utils import try_int
+from yardstick.common import exceptions
+from yardstick.common.utils import try_int, NON_NONE_DEFAULT, make_dict_from_map
from yardstick.network_services.utils import provision_tool
+LOG = logging.getLogger(__name__)
def convert_key_to_str(key):
if not isinstance(key, (paramiko.RSAKey, paramiko.DSSKey)):
@@ -90,18 +90,11 @@ def convert_key_to_str(key):
return k.getvalue()
-class SSHError(Exception):
- pass
-
-
-class SSHTimeout(SSHError):
- pass
-
-
class SSH(object):
"""Represent ssh connection."""
SSH_PORT = paramiko.config.SSH_PORT
+ DEFAULT_WAIT_TIMEOUT = 120
@staticmethod
def gen_keys(key_filename, bit_count=2048):
@@ -120,6 +113,18 @@ class SSH(object):
# i.e. the subclass, not the superclass
return SSH
+ @classmethod
+ def get_arg_key_map(cls):
+ return {
+ 'user': ('user', NON_NONE_DEFAULT),
+ 'host': ('ip', NON_NONE_DEFAULT),
+ 'port': ('ssh_port', cls.SSH_PORT),
+ 'pkey': ('pkey', None),
+ 'key_filename': ('key_filename', None),
+ 'password': ('password', None),
+ 'name': ('name', None),
+ }
+
def __init__(self, user, host, port=None, pkey=None,
key_filename=None, password=None, name=None):
"""Initialize SSH client.
@@ -137,6 +142,7 @@ class SSH(object):
else:
self.log = logging.getLogger(__name__)
+ self.wait_timeout = self.DEFAULT_WAIT_TIMEOUT
self.user = user
self.host = host
# everybody wants to debug this in the caller, do it here instead
@@ -162,16 +168,9 @@ class SSH(object):
overrides = {}
if defaults is None:
defaults = {}
+
params = ChainMap(overrides, node, defaults)
- return {
- 'user': params['user'],
- 'host': params['ip'],
- 'port': params.get('ssh_port', cls.SSH_PORT),
- 'pkey': params.get('pkey'),
- 'key_filename': params.get('key_filename'),
- 'password': params.get('password'),
- 'name': params.get('name'),
- }
+ return make_dict_from_map(params, cls.get_arg_key_map())
@classmethod
def from_node(cls, node, overrides=None, defaults=None):
@@ -186,7 +185,7 @@ class SSH(object):
return key_class.from_private_key(key)
except paramiko.SSHException as e:
errors.append(e)
- raise SSHError("Invalid pkey: %s" % (errors))
+ raise exceptions.SSHError(error_msg='Invalid pkey: %s' % errors)
@property
def is_connected(self):
@@ -207,10 +206,10 @@ class SSH(object):
return self._client
except Exception as e:
message = ("Exception %(exception_type)s was raised "
- "during connect. Exception value is: %(exception)r")
+ "during connect. Exception value is: %(exception)r" %
+ {"exception": e, "exception_type": type(e)})
self._client = False
- raise SSHError(message % {"exception": e,
- "exception_type": type(e)})
+ raise exceptions.SSHError(error_msg=message)
def _make_dict(self):
return {
@@ -287,7 +286,7 @@ class SSH(object):
while True:
# Block until data can be read/write.
- r, w, e = select.select([session], writes, [session], 1)
+ e = select.select([session], writes, [session], 1)[2]
if session.recv_ready():
data = encodeutils.safe_decode(session.recv(4096), 'utf-8')
@@ -327,11 +326,11 @@ class SSH(object):
break
if timeout and (time.time() - timeout) > start_time:
- args = {"cmd": cmd, "host": self.host}
- raise SSHTimeout("Timeout executing command "
- "'%(cmd)s' on host %(host)s" % args)
+ message = ('Timeout executing command %(cmd)s on host %(host)s'
+ % {"cmd": cmd, "host": self.host})
+ raise exceptions.SSHTimeout(error_msg=message)
if e:
- raise SSHError("Socket error.")
+ raise exceptions.SSHError(error_msg='Socket error')
exit_status = session.recv_exit_status()
if exit_status != 0 and raise_on_error:
@@ -339,15 +338,18 @@ class SSH(object):
details = fmt % {"cmd": cmd, "status": exit_status}
if stderr_data:
details += " Last stderr data: '%s'." % stderr_data
- raise SSHError(details)
+ LOG.critical("PROX ERROR: %s", details)
+ raise exceptions.SSHError(error_msg=details)
return exit_status
- def execute(self, cmd, stdin=None, timeout=3600):
+ def execute(self, cmd, stdin=None, timeout=3600, raise_on_error=False):
"""Execute the specified command on the server.
- :param cmd: Command to be executed.
- :param stdin: Open file to be sent on process stdin.
- :param timeout: Timeout for execution of the command.
+ :param cmd: (str) Command to be executed.
+ :param stdin: (StringIO) Open file to be sent on process stdin.
+ :param timeout: (int) Timeout for execution of the command.
+ :param raise_on_error: (bool) If True, then an SSHError will be raised
+ when non-zero exit code.
:returns: tuple (exit_status, stdout, stderr)
"""
@@ -356,22 +358,26 @@ class SSH(object):
exit_status = self.run(cmd, stderr=stderr,
stdout=stdout, stdin=stdin,
- timeout=timeout, raise_on_error=False)
+ timeout=timeout, raise_on_error=raise_on_error)
stdout.seek(0)
stderr.seek(0)
return exit_status, stdout.read(), stderr.read()
- def wait(self, timeout=120, interval=1):
+ def wait(self, timeout=None, interval=1):
"""Wait for the host will be available via ssh."""
- start_time = time.time()
+ if timeout is None:
+ timeout = self.wait_timeout
+
+ end_time = time.time() + timeout
while True:
try:
return self.execute("uname")
- except (socket.error, SSHError) as e:
+ except (socket.error, exceptions.SSHError) as e:
self.log.debug("Ssh is still unavailable: %r", e)
time.sleep(interval)
- if time.time() > (start_time + timeout):
- raise SSHTimeout("Timeout waiting for '%s'", self.host)
+ if time.time() > end_time:
+ raise exceptions.SSHTimeout(
+ error_msg='Timeout waiting for "%s"' % self.host)
def put(self, files, remote_path=b'.', recursive=False):
client = self._get_client()
@@ -444,35 +450,133 @@ class SSH(object):
with client.open_sftp() as sftp:
sftp.getfo(remotepath, file_obj)
+ def interactive_terminal_open(self, time_out=45):
+ """Open interactive terminal on a SSH channel.
+
+ :param time_out: Timeout in seconds.
+ :returns: SSH channel with opened terminal.
+
+ .. warning:: Interruptingcow is used here, and it uses
+ signal(SIGALRM) to let the operating system interrupt program
+ execution. This has the following limitations: Python signal
+ handlers only apply to the main thread, so you cannot use this
+ from other threads. You must not use this in a program that
+ uses SIGALRM itself (this includes certain profilers)
+ """
+ chan = self._get_client().get_transport().open_session()
+ chan.get_pty()
+ chan.invoke_shell()
+ chan.settimeout(int(time_out))
+ chan.set_combine_stderr(True)
+
+ buf = ''
+ while not buf.endswith((":~# ", ":~$ ", "~]$ ", "~]# ")):
+ try:
+ chunk = chan.recv(10 * 1024 * 1024)
+ if not chunk:
+ break
+ buf += chunk
+ if chan.exit_status_ready():
+ self.log.error('Channel exit status ready')
+ break
+ except socket.timeout:
+ raise exceptions.SSHTimeout(error_msg='Socket timeout: %s' % buf)
+ return chan
+
+ def interactive_terminal_exec_command(self, chan, cmd, prompt):
+ """Execute command on interactive terminal.
+
+ interactive_terminal_open() method has to be called first!
+
+ :param chan: SSH channel with opened terminal.
+ :param cmd: Command to be executed.
+ :param prompt: Command prompt, sequence of characters used to
+ indicate readiness to accept commands.
+ :returns: Command output.
+
+ .. warning:: Interruptingcow is used here, and it uses
+ signal(SIGALRM) to let the operating system interrupt program
+ execution. This has the following limitations: Python signal
+ handlers only apply to the main thread, so you cannot use this
+ from other threads. You must not use this in a program that
+ uses SIGALRM itself (this includes certain profilers)
+ """
+ chan.sendall('{c}\n'.format(c=cmd))
+ buf = ''
+ while not buf.endswith(prompt):
+ try:
+ chunk = chan.recv(10 * 1024 * 1024)
+ if not chunk:
+ break
+ buf += chunk
+ if chan.exit_status_ready():
+ self.log.error('Channel exit status ready')
+ break
+ except socket.timeout:
+ message = ("Socket timeout during execution of command: "
+ "%(cmd)s\nBuffer content:\n%(buf)s" % {"cmd": cmd,
+ "buf": buf})
+ raise exceptions.SSHTimeout(error_msg=message)
+ tmp = buf.replace(cmd.replace('\n', ''), '')
+ for item in prompt:
+ tmp.replace(item, '')
+ return tmp
+
+ @staticmethod
+ def interactive_terminal_close(chan):
+ """Close interactive terminal SSH channel.
+
+ :param: chan: SSH channel to be closed.
+ """
+ chan.close()
+
class AutoConnectSSH(SSH):
+ @classmethod
+ def get_arg_key_map(cls):
+ arg_key_map = super(AutoConnectSSH, cls).get_arg_key_map()
+ arg_key_map['wait'] = ('wait', True)
+ return arg_key_map
+
# always wait or we will get OpenStack SSH errors
def __init__(self, user, host, port=None, pkey=None,
key_filename=None, password=None, name=None, wait=True):
super(AutoConnectSSH, self).__init__(user, host, port, pkey, key_filename, password, name)
- self._wait = wait
+ if wait and wait is not True:
+ self.wait_timeout = int(wait)
def _make_dict(self):
data = super(AutoConnectSSH, self)._make_dict()
data.update({
- 'wait': self._wait
+ 'wait': self.wait_timeout
})
return data
def _connect(self):
if not self.is_connected:
- self._get_client()
- if self._wait:
- self.wait()
+ interval = 1
+ timeout = self.wait_timeout
+
+ end_time = time.time() + timeout
+ while True:
+ try:
+ return self._get_client()
+ except (socket.error, exceptions.SSHError) as e:
+ self.log.debug("Ssh is still unavailable: %r", e)
+ time.sleep(interval)
+ if time.time() > end_time:
+ raise exceptions.SSHTimeout(
+ error_msg='Timeout waiting for "%s"' % self.host)
def drop_connection(self):
""" Don't close anything, just force creation of a new client """
self._client = False
- def execute(self, cmd, stdin=None, timeout=3600):
+ def execute(self, cmd, stdin=None, timeout=3600, raise_on_error=False):
self._connect()
- return super(AutoConnectSSH, self).execute(cmd, stdin, timeout)
+ return super(AutoConnectSSH, self).execute(cmd, stdin, timeout,
+ raise_on_error)
def run(self, cmd, stdin=None, stdout=None, stderr=None,
raise_on_error=True, timeout=3600,
diff --git a/tests/unit/__init__.py b/yardstick/tests/__init__.py
index a468b272b..56e3106b8 100644
--- a/tests/unit/__init__.py
+++ b/yardstick/tests/__init__.py
@@ -1,76 +1,75 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import absolute_import
-import mock
-
-
-STL_MOCKS = {
- 'trex_stl_lib': mock.MagicMock(),
- 'trex_stl_lib.base64': mock.MagicMock(),
- 'trex_stl_lib.binascii': mock.MagicMock(),
- 'trex_stl_lib.collections': mock.MagicMock(),
- 'trex_stl_lib.copy': mock.MagicMock(),
- 'trex_stl_lib.datetime': mock.MagicMock(),
- 'trex_stl_lib.functools': mock.MagicMock(),
- 'trex_stl_lib.imp': mock.MagicMock(),
- 'trex_stl_lib.inspect': mock.MagicMock(),
- 'trex_stl_lib.json': mock.MagicMock(),
- 'trex_stl_lib.linecache': mock.MagicMock(),
- 'trex_stl_lib.math': mock.MagicMock(),
- 'trex_stl_lib.os': mock.MagicMock(),
- 'trex_stl_lib.platform': mock.MagicMock(),
- 'trex_stl_lib.pprint': mock.MagicMock(),
- 'trex_stl_lib.random': mock.MagicMock(),
- 'trex_stl_lib.re': mock.MagicMock(),
- 'trex_stl_lib.scapy': mock.MagicMock(),
- 'trex_stl_lib.socket': mock.MagicMock(),
- 'trex_stl_lib.string': mock.MagicMock(),
- 'trex_stl_lib.struct': mock.MagicMock(),
- 'trex_stl_lib.sys': mock.MagicMock(),
- 'trex_stl_lib.threading': mock.MagicMock(),
- 'trex_stl_lib.time': mock.MagicMock(),
- 'trex_stl_lib.traceback': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_async_client': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_client': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_exceptions': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_ext': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_jsonrpc_client': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_packet_builder_interface': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_packet_builder_scapy': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_port': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_stats': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_streams': mock.MagicMock(),
- 'trex_stl_lib.trex_stl_types': mock.MagicMock(),
- 'trex_stl_lib.types': mock.MagicMock(),
- 'trex_stl_lib.utils': mock.MagicMock(),
- 'trex_stl_lib.utils.argparse': mock.MagicMock(),
- 'trex_stl_lib.utils.collections': mock.MagicMock(),
- 'trex_stl_lib.utils.common': mock.MagicMock(),
- 'trex_stl_lib.utils.json': mock.MagicMock(),
- 'trex_stl_lib.utils.os': mock.MagicMock(),
- 'trex_stl_lib.utils.parsing_opts': mock.MagicMock(),
- 'trex_stl_lib.utils.pwd': mock.MagicMock(),
- 'trex_stl_lib.utils.random': mock.MagicMock(),
- 'trex_stl_lib.utils.re': mock.MagicMock(),
- 'trex_stl_lib.utils.string': mock.MagicMock(),
- 'trex_stl_lib.utils.sys': mock.MagicMock(),
- 'trex_stl_lib.utils.text_opts': mock.MagicMock(),
- 'trex_stl_lib.utils.text_tables': mock.MagicMock(),
- 'trex_stl_lib.utils.texttable': mock.MagicMock(),
- 'trex_stl_lib.warnings': mock.MagicMock(),
- 'trex_stl_lib.yaml': mock.MagicMock(),
- 'trex_stl_lib.zlib': mock.MagicMock(),
- 'trex_stl_lib.zmq': mock.MagicMock(),
-}
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+
+
+STL_MOCKS = {
+ 'trex_stl_lib': mock.MagicMock(),
+ 'trex_stl_lib.base64': mock.MagicMock(),
+ 'trex_stl_lib.binascii': mock.MagicMock(),
+ 'trex_stl_lib.collections': mock.MagicMock(),
+ 'trex_stl_lib.copy': mock.MagicMock(),
+ 'trex_stl_lib.datetime': mock.MagicMock(),
+ 'trex_stl_lib.functools': mock.MagicMock(),
+ 'trex_stl_lib.imp': mock.MagicMock(),
+ 'trex_stl_lib.inspect': mock.MagicMock(),
+ 'trex_stl_lib.json': mock.MagicMock(),
+ 'trex_stl_lib.linecache': mock.MagicMock(),
+ 'trex_stl_lib.math': mock.MagicMock(),
+ 'trex_stl_lib.os': mock.MagicMock(),
+ 'trex_stl_lib.platform': mock.MagicMock(),
+ 'trex_stl_lib.pprint': mock.MagicMock(),
+ 'trex_stl_lib.random': mock.MagicMock(),
+ 'trex_stl_lib.re': mock.MagicMock(),
+ 'trex_stl_lib.scapy': mock.MagicMock(),
+ 'trex_stl_lib.socket': mock.MagicMock(),
+ 'trex_stl_lib.string': mock.MagicMock(),
+ 'trex_stl_lib.struct': mock.MagicMock(),
+ 'trex_stl_lib.sys': mock.MagicMock(),
+ 'trex_stl_lib.threading': mock.MagicMock(),
+ 'trex_stl_lib.time': mock.MagicMock(),
+ 'trex_stl_lib.traceback': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_async_client': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_client': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_exceptions': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_ext': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_jsonrpc_client': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_packet_builder_interface': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_packet_builder_scapy': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_port': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_stats': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_streams': mock.MagicMock(),
+ 'trex_stl_lib.trex_stl_types': mock.MagicMock(),
+ 'trex_stl_lib.types': mock.MagicMock(),
+ 'trex_stl_lib.utils': mock.MagicMock(),
+ 'trex_stl_lib.utils.argparse': mock.MagicMock(),
+ 'trex_stl_lib.utils.collections': mock.MagicMock(),
+ 'trex_stl_lib.utils.common': mock.MagicMock(),
+ 'trex_stl_lib.utils.json': mock.MagicMock(),
+ 'trex_stl_lib.utils.os': mock.MagicMock(),
+ 'trex_stl_lib.utils.parsing_opts': mock.MagicMock(),
+ 'trex_stl_lib.utils.pwd': mock.MagicMock(),
+ 'trex_stl_lib.utils.random': mock.MagicMock(),
+ 'trex_stl_lib.utils.re': mock.MagicMock(),
+ 'trex_stl_lib.utils.string': mock.MagicMock(),
+ 'trex_stl_lib.utils.sys': mock.MagicMock(),
+ 'trex_stl_lib.utils.text_opts': mock.MagicMock(),
+ 'trex_stl_lib.utils.text_tables': mock.MagicMock(),
+ 'trex_stl_lib.utils.texttable': mock.MagicMock(),
+ 'trex_stl_lib.warnings': mock.MagicMock(),
+ 'trex_stl_lib.yaml': mock.MagicMock(),
+ 'trex_stl_lib.zlib': mock.MagicMock(),
+ 'trex_stl_lib.zmq': mock.MagicMock(),
+}
diff --git a/yardstick/tests/fixture.py b/yardstick/tests/fixture.py
new file mode 100644
index 000000000..94d20eb34
--- /dev/null
+++ b/yardstick/tests/fixture.py
@@ -0,0 +1,47 @@
+# Copyright 2017 Intel Corporation
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import fixtures
+import mock
+import six
+
+from yardstick.common import task_template
+
+
+class PluginParserFixture(fixtures.Fixture):
+ """PluginParser fixture.
+
+ This class is intended to be used as a fixture within unit tests and
+ therefore consumers must register it using useFixture() within their
+ unit test class.
+ """
+
+ def __init__(self, rendered_plugin):
+ super(PluginParserFixture, self).__init__()
+ self._rendered_plugin = rendered_plugin
+
+ def _setUp(self):
+ self.addCleanup(self._restore)
+ self._mock_tasktemplate_render = mock.patch.object(
+ task_template.TaskTemplate, 'render')
+ self.mock_tasktemplate_render = self._mock_tasktemplate_render.start()
+ self.mock_tasktemplate_render.return_value = self._rendered_plugin
+ self._mock_open = mock.patch.object(six.moves.builtins, 'open', create=True)
+ self.mock_open = self._mock_open.start()
+ self.mock_open.side_effect = mock.mock_open()
+
+ def _restore(self):
+ self._mock_tasktemplate_render.stop()
+ self._mock_open.stop()
diff --git a/tests/unit/benchmark/contexts/__init__.py b/yardstick/tests/functional/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/contexts/__init__.py
+++ b/yardstick/tests/functional/__init__.py
diff --git a/yardstick/tests/functional/base.py b/yardstick/tests/functional/base.py
new file mode 100644
index 000000000..51be013a1
--- /dev/null
+++ b/yardstick/tests/functional/base.py
@@ -0,0 +1,46 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import abc
+import six
+
+from oslo_config import cfg
+from oslotest import base
+
+
+CONF = cfg.CONF
+
+
+@six.add_metaclass(abc.ABCMeta)
+class BaseFunctionalTestCase(base.BaseTestCase):
+ """Base class for functional tests."""
+
+ def setUp(self):
+ super(BaseFunctionalTestCase, self).setUp()
+
+ def config(self, **kw):
+ """Override some configuration values.
+
+ The keyword arguments are the names of configuration options to
+ override and their values.
+
+ If a group argument is supplied, the overrides are applied to
+ the specified configuration option group.
+
+ All overrides are automatically cleared at the end of the current
+ test by the fixtures cleanup process.
+ """
+ group = kw.pop('group', None)
+ for k, v in kw.items():
+ CONF.set_override(k, v, group)
diff --git a/tests/unit/benchmark/contexts/standalone/__init__.py b/yardstick/tests/functional/benchmark/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/contexts/standalone/__init__.py
+++ b/yardstick/tests/functional/benchmark/__init__.py
diff --git a/tests/unit/benchmark/core/__init__.py b/yardstick/tests/functional/benchmark/core/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/core/__init__.py
+++ b/yardstick/tests/functional/benchmark/core/__init__.py
diff --git a/yardstick/tests/functional/benchmark/core/test_report.py b/yardstick/tests/functional/benchmark/core/test_report.py
new file mode 100644
index 000000000..832d3b3e1
--- /dev/null
+++ b/yardstick/tests/functional/benchmark/core/test_report.py
@@ -0,0 +1,314 @@
+##############################################################################
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# 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 ast
+import tempfile
+import unittest
+
+import mock
+from six.moves import configparser
+
+from yardstick.benchmark import core
+from yardstick.benchmark.core import report
+from yardstick.cmd.commands import change_osloobj_to_paras
+
+
+GOOD_YAML_NAME = 'fake_name'
+GOOD_TASK_ID = "9cbe74b6-df09-4535-8bdc-dc3a43b8a4e2"
+GOOD_DB_FIELDKEYS = [
+ {u'fieldKey': u'metric1', u'fieldType': u'integer'},
+ {u'fieldKey': u'metric4', u'fieldType': u'integer'},
+ {u'fieldKey': u'metric2', u'fieldType': u'integer'},
+ {u'fieldKey': u'metric3', u'fieldType': u'integer'},
+]
+GOOD_DB_METRICS = [
+ {u'time': u'2018-08-20T16:49:26.372662016Z',
+ u'metric1': 1, u'metric2': 0, u'metric3': 8, u'metric4': 5},
+ {u'time': u'2018-08-20T16:49:27.374208000Z',
+ u'metric1': 1, u'metric2': 1, u'metric3': 5, u'metric4': 4},
+ {u'time': u'2018-08-20T16:49:28.375742976Z',
+ u'metric1': 2, u'metric2': 2, u'metric3': 3, u'metric4': 3},
+ {u'time': u'2018-08-20T16:49:29.377299968Z',
+ u'metric1': 3, u'metric2': 3, u'metric3': 2, u'metric4': 2},
+ {u'time': u'2018-08-20T16:49:30.378252032Z',
+ u'metric1': 5, u'metric2': 4, u'metric3': 1, u'metric4': 1},
+ {u'time': u'2018-08-20T16:49:30.379359421Z',
+ u'metric1': 8, u'metric2': 5, u'metric3': 1, u'metric4': 0},
+]
+GOOD_DB_BARO_METRICS = [
+ {u'value': 324050, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-08-20T16:49:27.383698038Z',
+ u'type_instance': u'user', u'type': u'cpu'},
+ {
+ u'value': 193798, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-12-19T16:49:27.383712594Z',
+ u'type_instance': u'system', u'type': u'cpu'},
+ {
+ u'value': 324051, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-08-20T16:49:28.383696624Z',
+ u'type_instance': u'user', u'type': u'cpu'},
+ {
+ u'value': 193800, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-08-20T16:49:28.383713481Z',
+ u'type_instance': u'system', u'type': u'cpu'},
+ {
+ u'value': 324054, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-08-20T16:49:29.3836966789Z',
+ u'type_instance': u'user', u'type': u'cpu'},
+ {
+ u'value': 193801, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-08-20T16:49:29.383716296Z',
+ u'type_instance': u'system', u'type': u'cpu'}
+]
+TIMESTAMP_START = '2018-08-20T16:49:26.372662016Z'
+TIMESTAMP_END = '2018-08-20T16:49:30.379359421Z'
+
+yardstick_config = """
+[DEFAULT]
+dispatcher = influxdb
+"""
+
+
+def my_query(query_sql, db=None):
+ get_fieldkeys_cmd = 'show field keys'
+ get_metrics_cmd = 'select * from'
+ get_start_time_cmd = 'ORDER ASC limit 1'
+ get_end_time_cmd = 'ORDER DESC limit 1'
+ if db:
+ if get_start_time_cmd in query_sql:
+ return TIMESTAMP_START
+ elif get_end_time_cmd in query_sql:
+ return TIMESTAMP_END
+ else:
+ return GOOD_DB_BARO_METRICS
+ elif get_fieldkeys_cmd in query_sql:
+ return GOOD_DB_FIELDKEYS
+ elif get_metrics_cmd in query_sql:
+ return GOOD_DB_METRICS
+ return []
+
+
+class ReportTestCase(unittest.TestCase):
+
+ @mock.patch.object(report.influx, 'query', new=my_query)
+ @mock.patch.object(configparser.ConfigParser,
+ 'read', side_effect=mock.mock_open(read_data=yardstick_config))
+ def test_report_generate_nsb_simple(self, *args):
+ tmpfile = tempfile.NamedTemporaryFile(delete=True)
+
+ args = core.Param({"task_id": [GOOD_TASK_ID], "yaml_name": [GOOD_YAML_NAME]})
+ params = change_osloobj_to_paras(args)
+
+ with mock.patch.object(report.consts, 'DEFAULT_HTML_FILE', tmpfile.name):
+ report.Report().generate_nsb(params)
+
+ data_act = None
+ time_act = None
+ keys_act = None
+ tree_act = None
+ with open(tmpfile.name) as f:
+ for l in f.readlines():
+ if "var report_data = {" in l:
+ data_act = ast.literal_eval(l.strip()[18:-1])
+ elif "var report_time = [" in l:
+ time_act = ast.literal_eval(l.strip()[18:-1])
+ elif "var report_keys = [" in l:
+ keys_act = ast.literal_eval(l.strip()[18:-1])
+ elif "var report_tree = [" in l:
+ tree_act = ast.literal_eval(l.strip()[18:-1])
+ data_exp = {
+ 'metric1': [
+ {'x': '16:49:26.372662', 'y': 1},
+ {'x': '16:49:27.374208', 'y': 1},
+ {'x': '16:49:28.375742', 'y': 2},
+ {'x': '16:49:29.377299', 'y': 3},
+ {'x': '16:49:30.378252', 'y': 5},
+ {'x': '16:49:30.379359', 'y': 8}],
+ 'metric2': [
+ {'x': '16:49:26.372662', 'y': 0},
+ {'x': '16:49:27.374208', 'y': 1},
+ {'x': '16:49:28.375742', 'y': 2},
+ {'x': '16:49:29.377299', 'y': 3},
+ {'x': '16:49:30.378252', 'y': 4},
+ {'x': '16:49:30.379359', 'y': 5}],
+ 'metric3': [
+ {'x': '16:49:26.372662', 'y': 8},
+ {'x': '16:49:27.374208', 'y': 5},
+ {'x': '16:49:28.375742', 'y': 3},
+ {'x': '16:49:29.377299', 'y': 2},
+ {'x': '16:49:30.378252', 'y': 1},
+ {'x': '16:49:30.379359', 'y': 1}],
+ 'metric4': [
+ {'x': '16:49:26.372662', 'y': 5},
+ {'x': '16:49:27.374208', 'y': 4},
+ {'x': '16:49:28.375742', 'y': 3},
+ {'x': '16:49:29.377299', 'y': 2},
+ {'x': '16:49:30.378252', 'y': 1},
+ {'x': '16:49:30.379359', 'y': 0}],
+ 'myhostname.cpu_value.cpu.system.0': [
+ {'x': '16:49:27.3837', 'y': 193798},
+ {'x': '16:49:28.3837', 'y': 193800},
+ {'x': '16:49:29.3837', 'y': 193801}],
+ 'myhostname.cpu_value.cpu.user.0': [
+ {'x': '16:49:27.3836', 'y': 324050},
+ {'x': '16:49:28.3836', 'y': 324051},
+ {'x': '16:49:29.3836', 'y': 324054}],
+ 'myhostname.cpufreq_value.cpu.system.0': [
+ {'x': '16:49:27.3837', 'y': 193798},
+ {'x': '16:49:28.3837', 'y': 193800},
+ {'x': '16:49:29.3837', 'y': 193801}],
+ 'myhostname.cpufreq_value.cpu.user.0': [
+ {'x': '16:49:27.3836', 'y': 324050},
+ {'x': '16:49:28.3836', 'y': 324051},
+ {'x': '16:49:29.3836', 'y': 324054}],
+ 'myhostname.intel_pmu_value.cpu.system.0': [
+ {'x': '16:49:27.3837', 'y': 193798},
+ {'x': '16:49:28.3837', 'y': 193800},
+ {'x': '16:49:29.3837', 'y': 193801}],
+ 'myhostname.intel_pmu_value.cpu.user.0': [
+ {'x': '16:49:27.3836', 'y': 324050},
+ {'x': '16:49:28.3836', 'y': 324051},
+ {'x': '16:49:29.3836', 'y': 324054}],
+ 'myhostname.virt_value.cpu.system.0': [
+ {'x': '16:49:27.3837', 'y': 193798},
+ {'x': '16:49:28.3837', 'y': 193800},
+ {'x': '16:49:29.3837', 'y': 193801}],
+ 'myhostname.virt_value.cpu.user.0': [
+ {'x': '16:49:27.3836', 'y': 324050},
+ {'x': '16:49:28.3836', 'y': 324051},
+ {'x': '16:49:29.3836', 'y': 324054}],
+ 'myhostname.memory_value.cpu.system.0': [
+ {'x': '16:49:27.3837', 'y': 193798},
+ {'x': '16:49:28.3837', 'y': 193800},
+ {'x': '16:49:29.3837', 'y': 193801}],
+ 'myhostname.memory_value.cpu.user.0': [
+ {'x': '16:49:27.3836', 'y': 324050},
+ {'x': '16:49:28.3836', 'y': 324051},
+ {'x': '16:49:29.3836', 'y': 324054}]
+ }
+ time_exp = [
+ '16:49:26.372662', '16:49:27.374208', '16:49:27.3836',
+ '16:49:27.3837', '16:49:28.375742', '16:49:28.3836',
+ '16:49:28.3837', '16:49:29.377299', '16:49:29.3836',
+ '16:49:29.3837', '16:49:30.378252', '16:49:30.379359',
+ ]
+ keys_exp = sorted([
+ 'metric1', 'metric2', 'metric3', 'metric4',
+ 'myhostname.cpu_value.cpu.system.0',
+ 'myhostname.cpu_value.cpu.user.0',
+ 'myhostname.cpufreq_value.cpu.system.0',
+ 'myhostname.cpufreq_value.cpu.user.0',
+ 'myhostname.intel_pmu_value.cpu.system.0',
+ 'myhostname.intel_pmu_value.cpu.user.0',
+ 'myhostname.virt_value.cpu.system.0',
+ 'myhostname.virt_value.cpu.user.0',
+ 'myhostname.memory_value.cpu.system.0',
+ 'myhostname.memory_value.cpu.user.0',
+ ])
+ tree_exp = [
+ {'parent': '#', 'text': 'metric1', 'id': 'metric1'},
+ {'parent': '#', 'text': 'metric2', 'id': 'metric2'},
+ {'parent': '#', 'text': 'metric3', 'id': 'metric3'},
+ {'parent': '#', 'text': 'metric4', 'id': 'metric4'},
+ {'id': 'myhostname', 'parent': '#', 'text': 'myhostname'},
+ {'id': 'myhostname.cpu_value',
+ 'parent': 'myhostname',
+ 'text': 'cpu_value'},
+ {'id': 'myhostname.cpu_value.cpu',
+ 'parent': 'myhostname.cpu_value',
+ 'text': 'cpu'},
+ {'id': 'myhostname.cpu_value.cpu.system',
+ 'parent': 'myhostname.cpu_value.cpu',
+ 'text': 'system'},
+ {'id': 'myhostname.cpu_value.cpu.system.0',
+ 'parent': 'myhostname.cpu_value.cpu.system',
+ 'text': '0'},
+ {'id': 'myhostname.cpu_value.cpu.user',
+ 'parent': 'myhostname.cpu_value.cpu',
+ 'text': 'user'},
+ {'id': 'myhostname.cpu_value.cpu.user.0',
+ 'parent': 'myhostname.cpu_value.cpu.user',
+ 'text': '0'},
+ {'id': 'myhostname.cpufreq_value',
+ 'parent': 'myhostname',
+ 'text': 'cpufreq_value'},
+ {'id': 'myhostname.cpufreq_value.cpu',
+ 'parent': 'myhostname.cpufreq_value',
+ 'text': 'cpu'},
+ {'id': 'myhostname.cpufreq_value.cpu.system',
+ 'parent': 'myhostname.cpufreq_value.cpu',
+ 'text': 'system'},
+ {'id': 'myhostname.cpufreq_value.cpu.system.0',
+ 'parent': 'myhostname.cpufreq_value.cpu.system',
+ 'text': '0'},
+ {'id': 'myhostname.cpufreq_value.cpu.user',
+ 'parent': 'myhostname.cpufreq_value.cpu',
+ 'text': 'user'},
+ {'id': 'myhostname.cpufreq_value.cpu.user.0',
+ 'parent': 'myhostname.cpufreq_value.cpu.user',
+ 'text': '0'},
+ {'id': 'myhostname.intel_pmu_value',
+ 'parent': 'myhostname',
+ 'text': 'intel_pmu_value'},
+ {'id': 'myhostname.intel_pmu_value.cpu',
+ 'parent': 'myhostname.intel_pmu_value',
+ 'text': 'cpu'},
+ {'id': 'myhostname.intel_pmu_value.cpu.system',
+ 'parent': 'myhostname.intel_pmu_value.cpu',
+ 'text': 'system'},
+ {'id': 'myhostname.intel_pmu_value.cpu.system.0',
+ 'parent': 'myhostname.intel_pmu_value.cpu.system',
+ 'text': '0'},
+ {'id': 'myhostname.intel_pmu_value.cpu.user',
+ 'parent': 'myhostname.intel_pmu_value.cpu',
+ 'text': 'user'},
+ {'id': 'myhostname.intel_pmu_value.cpu.user.0',
+ 'parent': 'myhostname.intel_pmu_value.cpu.user',
+ 'text': '0'},
+ {'id': 'myhostname.memory_value',
+ 'parent': 'myhostname',
+ 'text': 'memory_value'},
+ {'id': 'myhostname.memory_value.cpu',
+ 'parent': 'myhostname.memory_value',
+ 'text': 'cpu'},
+ {'id': 'myhostname.memory_value.cpu.system',
+ 'parent': 'myhostname.memory_value.cpu',
+ 'text': 'system'},
+ {'id': 'myhostname.memory_value.cpu.system.0',
+ 'parent': 'myhostname.memory_value.cpu.system',
+ 'text': '0'},
+ {'id': 'myhostname.memory_value.cpu.user',
+ 'parent': 'myhostname.memory_value.cpu',
+ 'text': 'user'},
+ {'id': 'myhostname.memory_value.cpu.user.0',
+ 'parent': 'myhostname.memory_value.cpu.user',
+ 'text': '0'},
+ {'id': 'myhostname.virt_value', 'parent': 'myhostname',
+ 'text': 'virt_value'},
+ {'id': 'myhostname.virt_value.cpu',
+ 'parent': 'myhostname.virt_value',
+ 'text': 'cpu'},
+ {'id': 'myhostname.virt_value.cpu.system',
+ 'parent': 'myhostname.virt_value.cpu',
+ 'text': 'system'},
+ {'id': 'myhostname.virt_value.cpu.system.0',
+ 'parent': 'myhostname.virt_value.cpu.system',
+ 'text': '0'},
+ {'id': 'myhostname.virt_value.cpu.user',
+ 'parent': 'myhostname.virt_value.cpu',
+ 'text': 'user'},
+ {'id': 'myhostname.virt_value.cpu.user.0',
+ 'parent': 'myhostname.virt_value.cpu.user',
+ 'text': '0'}
+ ]
+
+ self.assertEqual(data_exp, data_act)
+ self.assertEqual(time_exp, time_act)
+ self.assertEqual(keys_exp, keys_act)
+ self.assertEqual(tree_exp, tree_act)
diff --git a/tests/unit/benchmark/runner/__init__.py b/yardstick/tests/functional/benchmark/scenarios/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/runner/__init__.py
+++ b/yardstick/tests/functional/benchmark/scenarios/__init__.py
diff --git a/tests/unit/benchmark/scenarios/__init__.py b/yardstick/tests/functional/benchmark/scenarios/networking/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/scenarios/__init__.py
+++ b/yardstick/tests/functional/benchmark/scenarios/networking/__init__.py
diff --git a/yardstick/tests/functional/benchmark/scenarios/networking/test_vnf_generic.py b/yardstick/tests/functional/benchmark/scenarios/networking/test_vnf_generic.py
new file mode 100644
index 000000000..38f1a978d
--- /dev/null
+++ b/yardstick/tests/functional/benchmark/scenarios/networking/test_vnf_generic.py
@@ -0,0 +1,195 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import copy
+import sys
+
+import mock
+import unittest
+
+from yardstick import tests as y_tests
+from yardstick.common import utils
+
+
+with mock.patch.dict(sys.modules, y_tests.STL_MOCKS):
+ from yardstick.benchmark.scenarios.networking import vnf_generic
+
+
+TRAFFIC_PROFILE_1 = """
+schema: nsb:traffic_profile:0.1
+name: rfc2544
+description: Traffic profile to run RFC2544 latency
+traffic_profile:
+ traffic_type : RFC2544Profile
+ frame_rate : 100
+uplink_0:
+ ipv4:
+ id: 1
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+ 128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+"""
+
+TRAFFIC_PROFILE_2 = """
+{% set vports = get(extra_args, 'vports', 1) %}
+traffic_profile:
+ traffic_type : RFC2544Profile
+{% for vport in range(vports|int) %}
+uplink_{{vport}}:
+ ipv4: 192.168.0.{{vport}}
+{% endfor %}
+"""
+
+TOPOLOGY_PROFILE = """
+{% set vports = get(extra_args, 'vports', 2) %}
+nsd:nsd-catalog:
+ nsd:
+ - id: 3tg-topology
+ vld:
+{% for vport in range(0,vports,2|int) %}
+ - id: uplink_{{loop.index0}}
+ name: tg__0 to vnf__0 link {{vport + 1}}
+ vnfd-connection-point-ref:
+ - vnfd-connection-point-ref: xe{{vport}}
+ - id: downlink_{{loop.index0}}
+ name: vnf__0 to tg__0 link {{vport + 2}}
+ vnfd-connection-point-ref:
+ - vnfd-connection-point-ref: xe{{vport+1}}
+{% endfor %}
+"""
+
+class VnfGenericTestCase(unittest.TestCase):
+
+ def setUp(self):
+ scenario_cfg = {'topology': 'fake_topology',
+ 'task_path': 'fake_path',
+ 'traffic_profile': 'fake_fprofile_path'}
+ context_cfg = {}
+ topology_yaml = {'nsd:nsd-catalog': {'nsd': [mock.Mock()]}}
+
+ with mock.patch.object(utils, 'open_relative_file') as mock_open_path:
+ mock_open_path.side_effect = mock.mock_open(read_data=str(topology_yaml))
+ self.ns_testcase = vnf_generic.NetworkServiceTestCase(scenario_cfg,
+ context_cfg)
+ self.ns_testcase._get_traffic_profile = mock.Mock()
+ self.ns_testcase._get_topology = mock.Mock()
+
+ def test__fill_traffic_profile_no_args(self):
+ traffic_profile = copy.deepcopy(TRAFFIC_PROFILE_1)
+ self.ns_testcase._get_traffic_profile.return_value = traffic_profile
+
+ self.ns_testcase._fill_traffic_profile()
+ config = self.ns_testcase.traffic_profile.params
+ self.assertEqual('nsb:traffic_profile:0.1', config['schema'])
+ self.assertEqual('rfc2544', config['name'])
+ self.assertEqual('Traffic profile to run RFC2544 latency',
+ config['description'])
+ t_profile = {'traffic_type': 'RFC2544Profile',
+ 'frame_rate': 100}
+ self.assertEqual(t_profile, config['traffic_profile'])
+ uplink_0 = {
+ 'ipv4': {'id': 1,
+ 'outer_l2': {'framesize': {'128B': '0', '64B': '0'}}
+ }
+ }
+ self.assertEqual(uplink_0, config['uplink_0'])
+
+ def test__fill_traffic_profile_with_args(self):
+ traffic_profile = copy.deepcopy(TRAFFIC_PROFILE_2)
+ self.ns_testcase._get_traffic_profile.return_value = traffic_profile
+ self.ns_testcase.scenario_cfg['extra_args'] = {'vports': 3}
+
+ self.ns_testcase._fill_traffic_profile()
+ config = self.ns_testcase.traffic_profile.params
+ self.assertEqual({'ipv4': '192.168.0.0'}, config['uplink_0'])
+ self.assertEqual({'ipv4': '192.168.0.1'}, config['uplink_1'])
+ self.assertEqual({'ipv4': '192.168.0.2'}, config['uplink_2'])
+ self.assertNotIn('uplink_3', config)
+
+ def test__fill_traffic_profile_incorrect_args(self):
+ traffic_profile = copy.deepcopy(TRAFFIC_PROFILE_2)
+ self.ns_testcase._get_traffic_profile.return_value = traffic_profile
+ self.ns_testcase.scenario_cfg['extra_args'] = {'incorrect_vports': 3}
+
+ self.ns_testcase._fill_traffic_profile()
+ config = self.ns_testcase.traffic_profile.params
+ self.assertEqual({'ipv4': '192.168.0.0'}, config['uplink_0'])
+ self.assertNotIn('uplink_1', config)
+
+ def test__render_topology_with_args(self):
+ topology_profile = copy.deepcopy(TOPOLOGY_PROFILE)
+ self.ns_testcase._get_topology.return_value = topology_profile
+ self.ns_testcase.scenario_cfg['extra_args'] = {'vports': 6}
+
+ self.ns_testcase._render_topology()
+ topology = self.ns_testcase.topology
+ self.assertEqual("3tg-topology", topology['id'])
+ vld = self.ns_testcase.topology['vld']
+ self.assertEqual(len(vld), 6)
+ for index, vport in enumerate(range(0, 6, 2)):
+ self.assertEqual('uplink_{}'.format(index), vld[vport]['id'])
+ self.assertEqual('tg__0 to vnf__0 link {}'.format(vport + 1), vld[vport]['name'])
+ self.assertEqual('xe{}'.format(vport),
+ vld[vport]['vnfd-connection-point-ref'][0]
+ ['vnfd-connection-point-ref'])
+
+ self.assertEqual('downlink_{}'.format(index), vld[vport + 1]['id'])
+ self.assertEqual('vnf__0 to tg__0 link {}'.format(vport + 2), vld[vport + 1]['name'])
+ self.assertEqual('xe{}'.format(vport + 1),
+ vld[vport + 1]['vnfd-connection-point-ref'][0]
+ ['vnfd-connection-point-ref'])
+
+ def test__render_topology_incorrect_args(self):
+ topology_profile = copy.deepcopy(TOPOLOGY_PROFILE)
+ self.ns_testcase._get_topology.return_value = topology_profile
+ self.ns_testcase.scenario_cfg['extra_args'] = {'fake_vports': 5}
+
+ self.ns_testcase._render_topology()
+
+ topology = self.ns_testcase.topology
+ self.assertEqual("3tg-topology", topology['id'])
+ vld = self.ns_testcase.topology['vld']
+ self.assertEqual(len(vld), 2)
+
+ self.assertEqual('uplink_0', vld[0]['id'])
+ self.assertEqual('tg__0 to vnf__0 link 1', vld[0]['name'])
+ self.assertEqual('xe0',
+ vld[0]['vnfd-connection-point-ref'][0]['vnfd-connection-point-ref'])
+
+ self.assertEqual('downlink_0', vld[1]['id'])
+ self.assertEqual('vnf__0 to tg__0 link 2', vld[1]['name'])
+ self.assertEqual('xe1',
+ vld[1]['vnfd-connection-point-ref'][0]['vnfd-connection-point-ref'])
+
+ def test__render_topology_no_args(self):
+ topology_profile = copy.deepcopy(TOPOLOGY_PROFILE)
+ self.ns_testcase._get_topology.return_value = topology_profile
+
+ self.ns_testcase._render_topology()
+
+ topology = self.ns_testcase.topology
+ self.assertEqual("3tg-topology", topology['id'])
+ vld = self.ns_testcase.topology['vld']
+ self.assertEqual(len(vld), 2)
+
+ self.assertEqual('uplink_0', vld[0]['id'])
+ self.assertEqual('tg__0 to vnf__0 link 1', vld[0]['name'])
+ self.assertEqual('xe0',
+ vld[0]['vnfd-connection-point-ref'][0]['vnfd-connection-point-ref'])
+
+ self.assertEqual('downlink_0', vld[1]['id'])
+ self.assertEqual('vnf__0 to tg__0 link 2', vld[1]['name'])
+ self.assertEqual('xe1',
+ vld[1]['vnfd-connection-point-ref'][0]['vnfd-connection-point-ref'])
diff --git a/tests/unit/benchmark/scenarios/availability/__init__.py b/yardstick/tests/functional/common/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/scenarios/availability/__init__.py
+++ b/yardstick/tests/functional/common/__init__.py
diff --git a/yardstick/tests/functional/common/fake_directory_package/README.md b/yardstick/tests/functional/common/fake_directory_package/README.md
new file mode 100644
index 000000000..689e47039
--- /dev/null
+++ b/yardstick/tests/functional/common/fake_directory_package/README.md
@@ -0,0 +1,2 @@
+# yardstick_new_plugin
+Yardstick plugin
diff --git a/yardstick/tests/functional/common/fake_directory_package/setup.py b/yardstick/tests/functional/common/fake_directory_package/setup.py
new file mode 100644
index 000000000..cf938ef4f
--- /dev/null
+++ b/yardstick/tests/functional/common/fake_directory_package/setup.py
@@ -0,0 +1,29 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from setuptools import setup, find_packages
+
+setup(
+ name='yardstick_new_plugin_2',
+ version='1.0.0',
+ packages=find_packages(),
+ include_package_data=True,
+ url='https://www.opnfv.org',
+ entry_points={
+ 'yardstick.scenarios': [
+ 'Dummy2 = yardstick_new_plugin.benchmark.scenarios.dummy2.dummy2:'
+ 'Dummy2',
+ ]
+ },
+)
diff --git a/tests/unit/benchmark/scenarios/compute/__init__.py b/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/scenarios/compute/__init__.py
+++ b/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/__init__.py
diff --git a/tests/unit/benchmark/scenarios/dummy/__init__.py b/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/scenarios/dummy/__init__.py
+++ b/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/__init__.py
diff --git a/tests/unit/benchmark/scenarios/lib/__init__.py b/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/scenarios/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/scenarios/lib/__init__.py
+++ b/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/scenarios/__init__.py
diff --git a/tests/unit/benchmark/scenarios/networking/__init__.py b/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/scenarios/dummy2/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/scenarios/networking/__init__.py
+++ b/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/scenarios/dummy2/__init__.py
diff --git a/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/scenarios/dummy2/dummy2.py b/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/scenarios/dummy2/dummy2.py
new file mode 100644
index 000000000..a2211ec51
--- /dev/null
+++ b/yardstick/tests/functional/common/fake_directory_package/yardstick_new_plugin_2/benchmark/scenarios/dummy2/dummy2.py
@@ -0,0 +1,40 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+
+from yardstick.benchmark.scenarios import base
+
+
+LOG = logging.getLogger(__name__)
+
+
+class Dummy2(base.Scenario):
+ """Execute Dummy (v2!) echo"""
+ __scenario_type__ = "Dummy2"
+
+ def __init__(self, scenario_cfg, context_cfg):
+ self.scenario_cfg = scenario_cfg
+ self.context_cfg = context_cfg
+ self.setup_done = False
+
+ def setup(self):
+ self.setup_done = True
+
+ def run(self, result):
+ if not self.setup_done:
+ self.setup()
+
+ result["hello"] = "yardstick"
+ LOG.info("Dummy (v2!) echo hello yardstick!")
diff --git a/tests/unit/benchmark/scenarios/parser/__init__.py b/yardstick/tests/functional/common/fake_module/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/scenarios/parser/__init__.py
+++ b/yardstick/tests/functional/common/fake_module/__init__.py
diff --git a/yardstick/tests/functional/common/fake_module/fake_library.py b/yardstick/tests/functional/common/fake_module/fake_library.py
new file mode 100644
index 000000000..28c7dc694
--- /dev/null
+++ b/yardstick/tests/functional/common/fake_module/fake_library.py
@@ -0,0 +1,17 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class FakeClassToBeImported(object):
+ pass
diff --git a/yardstick/tests/functional/common/fake_pip_package/yardstick_new_plugin-1.0.0.tar.gz b/yardstick/tests/functional/common/fake_pip_package/yardstick_new_plugin-1.0.0.tar.gz
new file mode 100644
index 000000000..e5379a78a
--- /dev/null
+++ b/yardstick/tests/functional/common/fake_pip_package/yardstick_new_plugin-1.0.0.tar.gz
Binary files differ
diff --git a/tests/unit/benchmark/scenarios/storage/__init__.py b/yardstick/tests/functional/common/messaging/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/benchmark/scenarios/storage/__init__.py
+++ b/yardstick/tests/functional/common/messaging/__init__.py
diff --git a/yardstick/tests/functional/common/messaging/test_messaging.py b/yardstick/tests/functional/common/messaging/test_messaging.py
new file mode 100644
index 000000000..f3e31e718
--- /dev/null
+++ b/yardstick/tests/functional/common/messaging/test_messaging.py
@@ -0,0 +1,99 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import multiprocessing
+import time
+
+from yardstick.common.messaging import consumer
+from yardstick.common.messaging import payloads
+from yardstick.common.messaging import producer
+from yardstick.tests.functional import base
+
+
+TOPIC = 'topic_MQ'
+METHOD_INFO = 'info'
+
+
+class DummyPayload(payloads.Payload):
+ REQUIRED_FIELDS = {'version', 'data'}
+
+
+class DummyEndpoint(consumer.NotificationHandler):
+
+ def info(self, ctxt, **kwargs):
+ if ctxt['id'] in self._ctx_ids:
+ self._queue.put('Nr {}, data: {}, id: {}'.format(
+ self._id, kwargs['data'], ctxt['id']))
+
+
+class DummyConsumer(consumer.MessagingConsumer):
+
+ def __init__(self, _id, ctx_ids, queue):
+ self._id = _id
+ endpoints = [DummyEndpoint(_id, ctx_ids, queue)]
+ super(DummyConsumer, self).__init__(TOPIC, ctx_ids, endpoints)
+
+
+class DummyProducer(producer.MessagingProducer):
+ pass
+
+
+def _run_consumer(_id, ctx_ids, queue):
+ _consumer = DummyConsumer(_id, ctx_ids, queue)
+ _consumer.start_rpc_server()
+ _consumer.wait()
+
+
+class MessagingTestCase(base.BaseFunctionalTestCase):
+
+ @staticmethod
+ def _terminate_consumers(num_consumers, processes):
+ for i in range(num_consumers):
+ processes[i].terminate()
+
+ def test_run_five_consumers(self):
+ output_queue = multiprocessing.Queue()
+ num_consumers = 10
+ ctx_1 = 100001
+ ctx_2 = 100002
+ producers = [DummyProducer(TOPIC, _id=ctx_1),
+ DummyProducer(TOPIC, _id=ctx_2)]
+
+ processes = []
+ for i in range(num_consumers):
+ processes.append(multiprocessing.Process(
+ name='consumer_{}'.format(i),
+ target=_run_consumer,
+ args=(i, [ctx_1, ctx_2], output_queue)))
+ processes[i].start()
+ self.addCleanup(self._terminate_consumers, num_consumers, processes)
+
+ time.sleep(2) # Let consumers to create the listeners
+ for producer in producers:
+ for message in ['message 0', 'message 1']:
+ producer.send_message(METHOD_INFO,
+ DummyPayload(version=1, data=message))
+
+ time.sleep(2) # Let consumers attend the calls
+ output = []
+ while not output_queue.empty():
+ output.append(output_queue.get(True, 1))
+
+ self.assertEqual(num_consumers * 4, len(output))
+ msg_template = 'Nr {}, data: {}, id: {}'
+ for i in range(num_consumers):
+ for ctx in [ctx_1, ctx_2]:
+ for message in ['message 0', 'message 1']:
+ msg = msg_template.format(i, message, ctx)
+ self.assertIn(msg, output)
diff --git a/yardstick/tests/functional/common/test_packages.py b/yardstick/tests/functional/common/test_packages.py
new file mode 100644
index 000000000..e15f72898
--- /dev/null
+++ b/yardstick/tests/functional/common/test_packages.py
@@ -0,0 +1,100 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import os
+from os import path
+import re
+import unittest
+
+from yardstick.common import packages
+from yardstick.common import utils
+from yardstick.tests.functional import base
+
+
+class PipPackagesTestCase(base.BaseFunctionalTestCase):
+
+ TMP_FOLDER = '/tmp/pip_packages/'
+ PYTHONPATH = 'PYTHONPATH=%s' % TMP_FOLDER
+
+ def setUp(self):
+ super(PipPackagesTestCase, self).setUp()
+ privsep_helper = os.path.join(
+ os.getenv('VIRTUAL_ENV'), 'bin', 'privsep-helper')
+ self.config(
+ helper_command=' '.join(['sudo', '-EH', privsep_helper]),
+ group='yardstick_privileged')
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ utils.execute_command('sudo rm -rf %s' % self.TMP_FOLDER)
+
+ def _remove_package(self, package):
+ os.system('%s python -m pip uninstall %s -y' %
+ (self.PYTHONPATH, package))
+
+ def _list_packages(self):
+ pip_list_regex = re.compile(
+ r"(?P<name>[\w\.-]+) \((?P<version>[\w\d_\.\-]+),*.*\)")
+ pip_list_regex_18 = re.compile(
+ r"(?P<name>[\w\.-]+)[\s]+(?P<version>[\w\d_\.\-]+),*.*")
+ pkg_dict = {}
+ pkgs = utils.execute_command('python -m pip list',
+ env={'PYTHONPATH': self.TMP_FOLDER})
+ for line in pkgs:
+ match = pip_list_regex.match(line)
+ if not match:
+ match = pip_list_regex_18.match(line)
+ if match and match.group('name'):
+ pkg_dict[match.group('name')] = match.group('version')
+ return pkg_dict
+
+ def test_install_from_folder(self):
+ dirname = path.dirname(__file__)
+ package_dir = dirname + '/fake_directory_package'
+ package_name = 'yardstick-new-plugin-2'
+ self.addCleanup(self._remove_package, package_name)
+ self._remove_package(package_name)
+ self.assertFalse(package_name in self._list_packages())
+
+ self.assertEqual(0, packages.pip_install(package_dir, self.TMP_FOLDER))
+ self.assertTrue(package_name in self._list_packages())
+
+ @unittest.skip("see https://github.com/pypa/pip/issues/3889")
+ def test_install_from_pip_package(self):
+ dirname = path.dirname(__file__)
+ package_path = (dirname +
+ '/fake_pip_package/yardstick_new_plugin-1.0.0.tar.gz')
+ package_name = 'yardstick-new-plugin'
+ self.addCleanup(self._remove_package, package_name)
+ self._remove_package(package_name)
+ self.assertFalse(package_name in self._list_packages())
+
+ self.assertEqual(0, packages.pip_install(package_path, self.TMP_FOLDER))
+ self.assertTrue(package_name in self._list_packages())
+
+ # NOTE(ralonsoh): an stable test plugin project is needed in OPNFV git
+ # server to execute this test.
+ # def test_install_from_url(self):
+
+ def test_pip_freeze(self):
+ # NOTE (ralonsoh): from requirements.txt file. The best way to test
+ # this function is to parse requirements.txt and test-requirements.txt
+ # and check all packages.
+ pkgs_ref = {'Babel': '2.6.0',
+ 'SQLAlchemy': '1.2.18',
+ 'influxdb': '5.1.0',
+ 'netifaces': '0.10.9'}
+ pkgs = packages.pip_list()
+ for name, version in (pkgs_ref.items()):
+ self.assertEqual(version, pkgs[name])
diff --git a/yardstick/tests/functional/common/test_utils.py b/yardstick/tests/functional/common/test_utils.py
new file mode 100644
index 000000000..b9f1f773a
--- /dev/null
+++ b/yardstick/tests/functional/common/test_utils.py
@@ -0,0 +1,72 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import multiprocessing
+import unittest
+import socket
+import sys
+import time
+
+from yardstick.common import utils
+
+
+class ImportModulesFromPackageTestCase(unittest.TestCase):
+
+ def test_import_package(self):
+ module_name = 'yardstick.tests.functional.common.fake_module'
+ library_name = 'fake_library'
+ class_name = 'FakeClassToBeImported'
+ self.assertNotIn(module_name, sys.modules)
+
+ utils.import_modules_from_package(module_name)
+ self.assertIn(module_name, sys.modules)
+ module_obj = sys.modules[module_name]
+ library_obj = getattr(module_obj, library_name)
+ class_obj = getattr(library_obj, class_name)
+ self.assertEqual(class_name, class_obj().__class__.__name__)
+
+
+class SendSocketCommandTestCase(unittest.TestCase):
+
+ @staticmethod
+ def _run_socket_server(port):
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.bind(('localhost', port))
+ sock.listen(1)
+ conn = None
+ while not conn:
+ conn, _ = sock.accept()
+ sock.close()
+
+ @staticmethod
+ def _terminate_server(socket_server):
+ # Wait until the socket server closes the open port.
+ time.sleep(1)
+ if socket_server and socket_server.is_alive():
+ socket_server.terminate()
+
+ def test_send_command(self):
+ port = 47001
+
+ socket_server = multiprocessing.Process(
+ name='run_socket_server',
+ target=SendSocketCommandTestCase._run_socket_server,
+ args=(port, )).start()
+
+ self.addCleanup(self._terminate_server, socket_server)
+
+ # Wait until the socket is open.
+ time.sleep(0.5)
+ self.assertEqual(
+ 0, utils.send_socket_command('localhost', port, 'test_command'))
diff --git a/tests/functional/test_cli_runner.py b/yardstick/tests/functional/test_cli_runner.py
index 620edc396..2f2d7fef2 100755
--- a/tests/functional/test_cli_runner.py
+++ b/yardstick/tests/functional/test_cli_runner.py
@@ -7,11 +7,9 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import absolute_import
import unittest
-from tests.functional import utils
+from yardstick.tests.functional import utils
class RunnerTestCase(unittest.TestCase):
diff --git a/tests/functional/test_cli_scenario.py b/yardstick/tests/functional/test_cli_scenario.py
index 63b533b85..7aaacad0a 100755
--- a/tests/functional/test_cli_scenario.py
+++ b/yardstick/tests/functional/test_cli_scenario.py
@@ -7,11 +7,9 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-from __future__ import absolute_import
import unittest
-from tests.functional import utils
+from yardstick.tests.functional import utils
class ScenarioTestCase(unittest.TestCase):
diff --git a/tests/functional/utils.py b/yardstick/tests/functional/utils.py
index d889c0dfa..d889c0dfa 100755
--- a/tests/functional/utils.py
+++ b/yardstick/tests/functional/utils.py
diff --git a/yardstick/tests/integration/dummy-scenario-heat-context.yaml b/yardstick/tests/integration/dummy-scenario-heat-context.yaml
new file mode 100644
index 000000000..45a39951a
--- /dev/null
+++ b/yardstick/tests/integration/dummy-scenario-heat-context.yaml
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2018 Intel
+#
+# 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
+##############################################################################
+{% set context_name = context_name or "demo" %}
+---
+# Sample Heat context config with Dummy context
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: Dummy
+
+ runner:
+ type: Duration
+ duration: 5
+ interval: 1
+
+context:
+ name: {{ context_name }}
+ image: yardstick-image
+ flavor: yardstick-flavor
+ user: ubuntu
+
+ servers:
+ athena:
+ name: athena
+ ares:
+ name: ares
+
+ networks:
+ test:
+ name: test
diff --git a/yardstick/tests/unit/__init__.py b/yardstick/tests/unit/__init__.py
new file mode 100644
index 000000000..c05f91c81
--- /dev/null
+++ b/yardstick/tests/unit/__init__.py
@@ -0,0 +1,23 @@
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import sys
+
+import mock
+
+from yardstick import tests
+
+
+mock_stl = mock.patch.dict(sys.modules, tests.STL_MOCKS)
+mock_stl.start()
diff --git a/tests/unit/apiserver/__init__.py b/yardstick/tests/unit/apiserver/__init__.py
index 5e1ed2ea1..44d163429 100644
--- a/tests/unit/apiserver/__init__.py
+++ b/yardstick/tests/unit/apiserver/__init__.py
@@ -1,3 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+"""Tests for yardstick/api/server.py"""
from __future__ import absolute_import
import mock
@@ -12,14 +21,16 @@ from yardstick.common import constants as consts
class APITestCase(unittest.TestCase):
-
+ """Tests for the YardStick API server"""
def setUp(self):
self.db_fd, self.db_path = tempfile.mkstemp()
consts.SQLITE = 'sqlite:///{}'.format(self.db_path)
- # server calls gethostbyname which takes 4 seconds, and we should mock it anyway
+ # server calls gethostbyname which takes 4 seconds, and we should mock
+ # it anyway
self.socket_mock = mock.patch.dict("sys.modules", {"socket": mock.MagicMock(
- **{"gethostbyname.return_value": "127.0.0.1", "gethostname.return_value": "localhost"})})
+ **{"gethostbyname.return_value": "127.0.0.1",
+ "gethostname.return_value": "localhost"})})
self.socket_mock.start()
try:
from api import server
diff --git a/tests/unit/cmd/__init__.py b/yardstick/tests/unit/apiserver/resources/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/cmd/__init__.py
+++ b/yardstick/tests/unit/apiserver/resources/__init__.py
diff --git a/tests/unit/apiserver/resources/test_env_action.py b/yardstick/tests/unit/apiserver/resources/test_env_action.py
index 5417ad953..657841669 100644
--- a/tests/unit/apiserver/resources/test_env_action.py
+++ b/yardstick/tests/unit/apiserver/resources/test_env_action.py
@@ -6,12 +6,11 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from __future__ import absolute_import
import time
import unittest
-from tests.unit.apiserver import APITestCase
+from yardstick.tests.unit.apiserver import APITestCase
class EnvTestCase(APITestCase):
@@ -33,12 +32,4 @@ class EnvTestCase(APITestCase):
time.sleep(0)
- self.assertTrue(u'status' in resp)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
+ self.assertIn(u'status', resp)
diff --git a/tests/unit/cmd/commands/__init__.py b/yardstick/tests/unit/apiserver/resources/v1/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/cmd/commands/__init__.py
+++ b/yardstick/tests/unit/apiserver/resources/v1/__init__.py
diff --git a/yardstick/tests/unit/apiserver/resources/v1/test_testsuites.py b/yardstick/tests/unit/apiserver/resources/v1/test_testsuites.py
new file mode 100644
index 000000000..85c045f44
--- /dev/null
+++ b/yardstick/tests/unit/apiserver/resources/v1/test_testsuites.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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 mock
+
+import unittest
+
+from yardstick.tests.unit.apiserver import APITestCase
+from api.utils.thread import TaskThread
+
+
+class TestsuiteTestCase(APITestCase):
+
+ def test_run_test_suite(self):
+ if self.app is None:
+ unittest.skip('host config error')
+ return
+
+ TaskThread.start = mock.MagicMock()
+
+ url = 'yardstick/testsuites/action'
+ data = {
+ 'action': 'run_test_suite',
+ 'args': {
+ 'opts': {},
+ 'testsuite': 'opnfv_smoke'
+ }
+ }
+ resp = self._post(url, data)
+ self.assertEqual(resp.get('status'), 1)
diff --git a/tests/unit/common/__init__.py b/yardstick/tests/unit/apiserver/resources/v2/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/common/__init__.py
+++ b/yardstick/tests/unit/apiserver/resources/v2/__init__.py
diff --git a/yardstick/tests/unit/apiserver/resources/v2/test_images.py b/yardstick/tests/unit/apiserver/resources/v2/test_images.py
new file mode 100644
index 000000000..ab131eec5
--- /dev/null
+++ b/yardstick/tests/unit/apiserver/resources/v2/test_images.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd.
+#
+# 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 mock
+
+import unittest
+
+from yardstick.tests.unit.apiserver import APITestCase
+from api.resources.v2.images import format_image_info
+
+
+class V2ImagesTestCase(APITestCase):
+ @mock.patch('yardstick.common.openstack_utils.list_images')
+ @mock.patch('yardstick.common.utils.source_env')
+ def test_get(self, _, mock_list_images):
+ if self.app is None:
+ unittest.skip('host config error')
+ return
+
+ single_image = mock.MagicMock()
+ single_image.name = 'yardstick-image'
+ single_image.size = 16384
+ single_image.status = 'active'
+ single_image.updated_at = '2018-04-08'
+
+ mock_list_images.return_value = [single_image]
+ url = 'api/v2/yardstick/images'
+ resp = self._get(url)
+ self.assertEqual(resp.get('status'), 1)
+
+
+class FormatImageInfoTestCase(unittest.TestCase):
+ def test_format_image_info(self):
+ image = mock.MagicMock()
+ image.name = 'yardstick-image'
+ image.size = 1048576
+ image.status = 'active'
+ image.updated_at = '2018-04-08'
+
+ image_dict = format_image_info(image)
+ self.assertEqual(image_dict.get('size'), 1)
diff --git a/tests/unit/dispatcher/__init__.py b/yardstick/tests/unit/apiserver/utils/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/dispatcher/__init__.py
+++ b/yardstick/tests/unit/apiserver/utils/__init__.py
diff --git a/yardstick/tests/unit/apiserver/utils/test_influx.py b/yardstick/tests/unit/apiserver/utils/test_influx.py
new file mode 100644
index 000000000..3a97ff292
--- /dev/null
+++ b/yardstick/tests/unit/apiserver/utils/test_influx.py
@@ -0,0 +1,91 @@
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+# Copyright (c) 2019 Intel Corporation.
+#
+# 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 influxdb import client as influxdb_client
+import mock
+from six.moves import configparser
+
+from api.utils import influx
+from yardstick.common import constants
+from yardstick.common import exceptions
+from yardstick import dispatcher
+from yardstick.tests.unit import base
+
+
+class GetDataDbClientTestCase(base.BaseUnitTestCase):
+
+ @mock.patch.object(influx, '_get_influxdb_client',
+ return_value='fake_client')
+ @mock.patch.object(influx.ConfigParser, 'ConfigParser')
+ def test_get_data_db_client(self, mock_parser, mock_get_client):
+ _mock_parser = mock.Mock()
+ mock_parser.return_value = _mock_parser
+
+ self.assertEqual('fake_client', influx.get_data_db_client())
+ _mock_parser.read.assert_called_once_with(constants.CONF_FILE)
+ mock_get_client.assert_called_once_with(_mock_parser, None)
+
+ @mock.patch.object(influx.logger, 'error')
+ @mock.patch.object(influx, '_get_influxdb_client',
+ return_value='fake_client')
+ @mock.patch.object(influx.ConfigParser, 'ConfigParser')
+ def test_get_data_db_client_parsing_error(
+ self, mock_parser, mock_get_client, *args):
+ _mock_parser = mock.Mock()
+ mock_parser.return_value = _mock_parser
+ mock_parser.NoOptionError = configparser.NoOptionError
+ mock_get_client.side_effect = configparser.NoOptionError('option',
+ 'section')
+ with self.assertRaises(configparser.NoOptionError):
+ influx.get_data_db_client()
+
+ _mock_parser.read.assert_called_once_with(constants.CONF_FILE)
+ mock_get_client.assert_called_once_with(_mock_parser, None)
+
+
+class GetIpTestCase(base.BaseUnitTestCase):
+
+ def test_get_url(self):
+ url = 'http://localhost:8086/hello'
+ output = influx._get_ip(url)
+
+ result = 'localhost'
+ self.assertEqual(result, output)
+
+
+class GetInfluxdbTestCase(base.BaseUnitTestCase):
+
+ @mock.patch.object(influxdb_client, 'InfluxDBClient',
+ return_value='idb_client')
+ @mock.patch.object(influx, '_get_ip', return_value='fake_ip')
+ def test_get_influxdb_client(self, mock_get_ip, mock_client):
+ mock_parser = mock.Mock()
+ mock_parser.get.side_effect = [dispatcher.INFLUXDB, 'target', 'user',
+ 'pass', 'db_name']
+
+ self.assertEqual('idb_client',
+ influx._get_influxdb_client(mock_parser))
+ mock_client.assert_called_once_with('fake_ip', constants.INFLUXDB_PORT,
+ 'user', 'pass', 'db_name')
+ mock_get_ip.assert_called_once_with('target')
+ mock_parser.get.assert_has_calls([
+ mock.call('DEFAULT', 'dispatcher'),
+ mock.call('dispatcher_influxdb', 'target'),
+ mock.call('dispatcher_influxdb', 'username'),
+ mock.call('dispatcher_influxdb', 'password'),
+ mock.call('dispatcher_influxdb', 'db_name')])
+
+ def test_get_influxdb_client_no_influxdb_client(self):
+ mock_parser = mock.Mock()
+ mock_parser.get.return_value = dispatcher.FILE
+
+ with self.assertRaises(exceptions.InfluxDBConfigurationMissing):
+ influx._get_influxdb_client(mock_parser)
+ mock_parser.get.assert_called_once_with('DEFAULT', 'dispatcher')
diff --git a/yardstick/tests/unit/base.py b/yardstick/tests/unit/base.py
new file mode 100644
index 000000000..b943efc2b
--- /dev/null
+++ b/yardstick/tests/unit/base.py
@@ -0,0 +1,23 @@
+# Copyright 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import abc
+
+import six
+import unittest
+
+
+@six.add_metaclass(abc.ABCMeta)
+class BaseUnitTestCase(unittest.TestCase):
+ """Base class for unit tests"""
diff --git a/tests/unit/network_services/__init__.py b/yardstick/tests/unit/benchmark/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/network_services/__init__.py
+++ b/yardstick/tests/unit/benchmark/__init__.py
diff --git a/tests/unit/network_services/collector/__init__.py b/yardstick/tests/unit/benchmark/contexts/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/network_services/collector/__init__.py
+++ b/yardstick/tests/unit/benchmark/contexts/__init__.py
diff --git a/tests/unit/benchmark/contexts/nodes_duplicate_sample.yaml b/yardstick/tests/unit/benchmark/contexts/nodes_duplicate_sample.yaml
index dbdd3700d..dbdd3700d 100644
--- a/tests/unit/benchmark/contexts/nodes_duplicate_sample.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/nodes_duplicate_sample.yaml
diff --git a/tests/unit/benchmark/contexts/nodes_duplicate_sample_new.yaml b/yardstick/tests/unit/benchmark/contexts/nodes_duplicate_sample_new.yaml
index 306915ca1..306915ca1 100644
--- a/tests/unit/benchmark/contexts/nodes_duplicate_sample_new.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/nodes_duplicate_sample_new.yaml
diff --git a/tests/unit/benchmark/contexts/nodes_duplicate_sample_ovs.yaml b/yardstick/tests/unit/benchmark/contexts/nodes_duplicate_sample_ovs.yaml
index 65449c91c..65449c91c 100644
--- a/tests/unit/benchmark/contexts/nodes_duplicate_sample_ovs.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/nodes_duplicate_sample_ovs.yaml
diff --git a/tests/unit/benchmark/contexts/nodes_sample.yaml b/yardstick/tests/unit/benchmark/contexts/nodes_sample.yaml
index 8d50c3aea..8d50c3aea 100644
--- a/tests/unit/benchmark/contexts/nodes_sample.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/nodes_sample.yaml
diff --git a/tests/unit/benchmark/contexts/nodes_sample_new.yaml b/yardstick/tests/unit/benchmark/contexts/nodes_sample_new.yaml
index a400bec03..a400bec03 100644
--- a/tests/unit/benchmark/contexts/nodes_sample_new.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/nodes_sample_new.yaml
diff --git a/tests/unit/benchmark/contexts/nodes_sample_new_sriov.yaml b/yardstick/tests/unit/benchmark/contexts/nodes_sample_new_sriov.yaml
index 55ff2e778..55ff2e778 100644
--- a/tests/unit/benchmark/contexts/nodes_sample_new_sriov.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/nodes_sample_new_sriov.yaml
diff --git a/tests/unit/benchmark/contexts/nodes_sample_ovs.yaml b/yardstick/tests/unit/benchmark/contexts/nodes_sample_ovs.yaml
index b1da1ea9f..b1da1ea9f 100644
--- a/tests/unit/benchmark/contexts/nodes_sample_ovs.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/nodes_sample_ovs.yaml
diff --git a/tests/unit/benchmark/contexts/nodes_sample_ovsdpdk.yaml b/yardstick/tests/unit/benchmark/contexts/nodes_sample_ovsdpdk.yaml
index c02849a05..c02849a05 100644
--- a/tests/unit/benchmark/contexts/nodes_sample_ovsdpdk.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/nodes_sample_ovsdpdk.yaml
diff --git a/tests/unit/network_services/helpers/__init__.py b/yardstick/tests/unit/benchmark/contexts/standalone/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/network_services/helpers/__init__.py
+++ b/yardstick/tests/unit/benchmark/contexts/standalone/__init__.py
diff --git a/tests/unit/benchmark/contexts/standalone/nodes_duplicate_sample.yaml b/yardstick/tests/unit/benchmark/contexts/standalone/nodes_duplicate_sample.yaml
index 2e501a6af..2e501a6af 100644
--- a/tests/unit/benchmark/contexts/standalone/nodes_duplicate_sample.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/standalone/nodes_duplicate_sample.yaml
diff --git a/tests/unit/benchmark/contexts/standalone/nodes_ovs_dpdk_sample.yaml b/yardstick/tests/unit/benchmark/contexts/standalone/nodes_ovs_dpdk_sample.yaml
index 0f51dbe63..0f51dbe63 100644
--- a/tests/unit/benchmark/contexts/standalone/nodes_ovs_dpdk_sample.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/standalone/nodes_ovs_dpdk_sample.yaml
diff --git a/tests/unit/benchmark/contexts/standalone/nodes_sample.yaml b/yardstick/tests/unit/benchmark/contexts/standalone/nodes_sample.yaml
index 8d50c3aea..8d50c3aea 100644
--- a/tests/unit/benchmark/contexts/standalone/nodes_sample.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/standalone/nodes_sample.yaml
diff --git a/tests/unit/benchmark/contexts/standalone/nodes_sriov_sample.yaml b/yardstick/tests/unit/benchmark/contexts/standalone/nodes_sriov_sample.yaml
index 1c43b8725..1c43b8725 100644
--- a/tests/unit/benchmark/contexts/standalone/nodes_sriov_sample.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/standalone/nodes_sriov_sample.yaml
diff --git a/yardstick/tests/unit/benchmark/contexts/standalone/test_model.py b/yardstick/tests/unit/benchmark/contexts/standalone/test_model.py
new file mode 100644
index 000000000..e76a3ca27
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/contexts/standalone/test_model.py
@@ -0,0 +1,640 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import copy
+import os
+import uuid
+
+import mock
+import netaddr
+import unittest
+from xml.etree import ElementTree
+
+from yardstick import ssh
+from yardstick.benchmark.contexts.standalone import model
+from yardstick.common import exceptions
+from yardstick import constants
+from yardstick.network_services import utils
+
+
+XML_SAMPLE = """<?xml version="1.0"?>
+<domain type="kvm">
+ <devices>
+ </devices>
+</domain>
+"""
+
+XML_SAMPLE_INTERFACE = """<?xml version="1.0"?>
+<domain type="kvm">
+ <devices>
+ <interface>
+ </interface>
+ </devices>
+</domain>
+"""
+
+
+class ModelLibvirtTestCase(unittest.TestCase):
+
+ XML_STR = model.VM_TEMPLATE.format(
+ vm_name="vm_name",
+ random_uuid=uuid.uuid4(),
+ mac_addr="00:01:02:03:04:05",
+ memory=2048, vcpu=2, cpu=2,
+ numa_cpus=0 - 10,
+ socket=1, threads=1,
+ vm_image="/var/lib/libvirt/images/yardstick-nsb-image.img",
+ cpuset=2 - 10, cputune='', machine='pc')
+
+ def setUp(self):
+ self.pci_address_str = '0001:04:03.2'
+ self.pci_address = utils.PciAddress(self.pci_address_str)
+ self.mac = '00:00:00:00:00:01'
+ self._mock_ssh = mock.Mock()
+ self.mock_ssh = self._mock_ssh.start()
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self._mock_ssh.stop()
+
+ # TODO: Remove mocking of yardstick.ssh.SSH (here and elsewhere)
+ # In this case, we are mocking a param to be passed into other methods
+ # It can be a generic Mock() with return values set for the right methods
+ def test_check_if_vm_exists_and_delete(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = mock.Mock(return_value=(0, "a", ""))
+ ssh.return_value = ssh_mock
+ # NOTE(ralonsoh): this test doesn't cover function execution.
+ model.Libvirt.check_if_vm_exists_and_delete('vm-0', ssh_mock)
+
+ def test_virsh_create_vm(self):
+ self.mock_ssh.execute = mock.Mock(return_value=(0, 0, 0))
+ model.Libvirt.virsh_create_vm(self.mock_ssh, 'vm-0')
+ self.mock_ssh.execute.assert_called_once_with('virsh create vm-0')
+
+ def test_virsh_create_vm_error(self):
+ self.mock_ssh.execute = mock.Mock(return_value=(1, 0, 'error_create'))
+ with self.assertRaises(exceptions.LibvirtCreateError) as exc:
+ model.Libvirt.virsh_create_vm(self.mock_ssh, 'vm-0')
+ self.assertEqual('Error creating the virtual machine. Error: '
+ 'error_create.', str(exc.exception))
+ self.mock_ssh.execute.assert_called_once_with('virsh create vm-0')
+
+ def test_virsh_destroy_vm(self):
+ self.mock_ssh.execute = mock.Mock(return_value=(0, 0, 0))
+ model.Libvirt.virsh_destroy_vm('vm-0', self.mock_ssh)
+ self.mock_ssh.execute.assert_called_once_with('virsh destroy vm-0')
+
+ @mock.patch.object(model, 'LOG')
+ def test_virsh_destroy_vm_error(self, mock_logger):
+ self.mock_ssh.execute = mock.Mock(return_value=(1, 0, 'error_destroy'))
+ mock_logger.warning = mock.Mock()
+ model.Libvirt.virsh_destroy_vm('vm-0', self.mock_ssh)
+ mock_logger.warning.assert_called_once_with(
+ 'Error destroying VM %s. Error: %s', 'vm-0', 'error_destroy')
+ self.mock_ssh.execute.assert_called_once_with('virsh destroy vm-0')
+
+ def test_add_interface_address(self):
+ xml = ElementTree.ElementTree(
+ element=ElementTree.fromstring(XML_SAMPLE_INTERFACE))
+ interface = xml.find('devices').find('interface')
+ result = model.Libvirt._add_interface_address(interface, self.pci_address)
+ self.assertEqual('pci', result.get('type'))
+ self.assertEqual('0x{}'.format(self.pci_address.domain),
+ result.get('domain'))
+ self.assertEqual('0x{}'.format(self.pci_address.bus),
+ result.get('bus'))
+ self.assertEqual('0x{}'.format(self.pci_address.slot),
+ result.get('slot'))
+ self.assertEqual('0x{}'.format(self.pci_address.function),
+ result.get('function'))
+
+ def test_add_ovs_interfaces(self):
+ xml_input = copy.deepcopy(XML_SAMPLE)
+ xml_output = model.Libvirt.add_ovs_interface(
+ '/usr/local', 0, self.pci_address_str, self.mac, xml_input, 4)
+
+ root = ElementTree.fromstring(xml_output)
+ et_out = ElementTree.ElementTree(element=root)
+ interface = et_out.find('devices').find('interface')
+ self.assertEqual('vhostuser', interface.get('type'))
+ mac = interface.find('mac')
+ self.assertEqual(self.mac, mac.get('address'))
+ source = interface.find('source')
+ self.assertEqual('unix', source.get('type'))
+ self.assertEqual('/usr/local/var/run/openvswitch/dpdkvhostuser0',
+ source.get('path'))
+ self.assertEqual('client', source.get('mode'))
+ _model = interface.find('model')
+ self.assertEqual('virtio', _model.get('type'))
+ driver = interface.find('driver')
+ self.assertEqual('4', driver.get('queues'))
+ host = driver.find('host')
+ self.assertEqual('off', host.get('mrg_rxbuf'))
+ self.assertIsNotNone(interface.find('address'))
+
+ def test_add_sriov_interfaces(self):
+ xml_input = copy.deepcopy(XML_SAMPLE)
+ vm_pci = '0001:05:04.2'
+ xml_output = model.Libvirt.add_sriov_interfaces(
+ vm_pci, self.pci_address_str, self.mac, xml_input)
+ root = ElementTree.fromstring(xml_output)
+ et_out = ElementTree.ElementTree(element=root)
+ interface = et_out.find('devices').find('interface')
+ self.assertEqual('yes', interface.get('managed'))
+ self.assertEqual('hostdev', interface.get('type'))
+ mac = interface.find('mac')
+ self.assertEqual(self.mac, mac.get('address'))
+ source = interface.find('source')
+ source_address = source.find('address')
+ self.assertIsNotNone(source.find('address'))
+
+ self.assertEqual('pci', source_address.get('type'))
+ self.assertEqual('0x' + self.pci_address_str.split(':')[0],
+ source_address.get('domain'))
+ self.assertEqual('0x' + self.pci_address_str.split(':')[1],
+ source_address.get('bus'))
+ self.assertEqual('0x' + self.pci_address_str.split(':')[2].split('.')[0],
+ source_address.get('slot'))
+ self.assertEqual('0x' + self.pci_address_str.split(':')[2].split('.')[1],
+ source_address.get('function'))
+
+ interface_address = interface.find('address')
+ self.assertEqual('pci', interface_address.get('type'))
+ self.assertEqual('0x' + vm_pci.split(':')[0],
+ interface_address.get('domain'))
+ self.assertEqual('0x' + vm_pci.split(':')[1],
+ interface_address.get('bus'))
+ self.assertEqual('0x' + vm_pci.split(':')[2].split('.')[0],
+ interface_address.get('slot'))
+ self.assertEqual('0x' + vm_pci.split(':')[2].split('.')[1],
+ interface_address.get('function'))
+
+ def test_add_cdrom(self):
+ xml_input = copy.deepcopy(XML_SAMPLE)
+ xml_output = model.Libvirt.add_cdrom('/var/lib/libvirt/images/data.img', xml_input)
+
+ root = ElementTree.fromstring(xml_output)
+ et_out = ElementTree.ElementTree(element=root)
+ disk = et_out.find('devices').find('disk')
+ self.assertEqual('file', disk.get('type'))
+ self.assertEqual('cdrom', disk.get('device'))
+ driver = disk.find('driver')
+ self.assertEqual('qemu', driver.get('name'))
+ self.assertEqual('raw', driver.get('type'))
+ source = disk.find('source')
+ self.assertEqual('/var/lib/libvirt/images/data.img', source.get('file'))
+ target = disk.find('target')
+ self.assertEqual('hdb', target.get('dev'))
+ self.assertIsNotNone(disk.find('readonly'))
+
+ def test_gen_cdrom_image(self):
+ self.mock_ssh.execute = mock.Mock(return_value=(0, 0, 0))
+ root = ElementTree.fromstring(self.XML_STR)
+ hostname = root.find('name').text
+ meta_data = "/tmp/meta-data"
+ user_data = "/tmp/user-data"
+ network_data = "/tmp/network-config"
+ file_path = "/tmp/cdrom-0.img"
+ key_filename = "id_rsa"
+ pub_key_str = "KEY"
+ user = 'root'
+ mac = "00:11:22:33:44:55"
+ ip = "1.1.1.7/24"
+ user_config = [" - name: {user_name}",
+ " ssh_authorized_keys:",
+ " - {pub_key_str}"]
+
+ user_conf = os.linesep.join(user_config).format(pub_key_str=pub_key_str, user_name=user)
+ with mock.patch('six.moves.builtins.open', mock.mock_open(read_data=pub_key_str),
+ create=True) as mock_file:
+ with open(key_filename, "r") as h:
+ result = h.read()
+ model.Libvirt.gen_cdrom_image(self.mock_ssh, file_path, hostname, user, key_filename,
+ mac, ip)
+ mock_file.assert_called_with(".".join([key_filename, "pub"]), "r")
+ self.assertEqual(result, pub_key_str)
+
+ self.mock_ssh.execute.assert_has_calls([
+ mock.call("touch %s" % meta_data),
+ mock.call(model.USER_DATA_TEMPLATE.format(user_file=user_data, host=hostname,
+ user_config=user_conf)),
+ mock.call(model.NETWORK_DATA_TEMPLATE.format(network_file=network_data,
+ mac_address=mac, ip_address=ip)),
+ mock.call("genisoimage -output {0} -volid cidata"
+ " -joliet -r {1} {2} {3}".format(file_path, meta_data, user_data,
+ network_data)),
+ mock.call("rm {0} {1} {2}".format(meta_data, user_data, network_data))
+ ])
+
+ def test_create_snapshot_qemu(self):
+ self.mock_ssh.execute = mock.Mock(return_value=(0, 0, 0))
+ index = 1
+ vm_image = '/var/lib/libvirt/images/%s.qcow2' % index
+ base_image = '/tmp/base_image'
+
+ model.Libvirt.create_snapshot_qemu(self.mock_ssh, index, base_image)
+ self.mock_ssh.execute.assert_has_calls([
+ mock.call('rm -- "%s"' % vm_image),
+ mock.call('test -r %s' % base_image),
+ mock.call('qemu-img create -f qcow2 -o backing_file=%s %s' %
+ (base_image, vm_image))
+ ])
+
+ @mock.patch.object(os.path, 'basename', return_value='base_image')
+ @mock.patch.object(os.path, 'normpath')
+ @mock.patch.object(os, 'access', return_value=True)
+ def test_create_snapshot_qemu_no_image_remote(self,
+ mock_os_access, mock_normpath, mock_basename):
+ self.mock_ssh.execute = mock.Mock(
+ side_effect=[(0, 0, 0), (1, 0, 0), (0, 0, 0), (0, 0, 0)])
+ index = 1
+ vm_image = '/var/lib/libvirt/images/%s.qcow2' % index
+ base_image = '/tmp/base_image'
+ mock_normpath.return_value = base_image
+
+ model.Libvirt.create_snapshot_qemu(self.mock_ssh, index, base_image)
+ self.mock_ssh.execute.assert_has_calls([
+ mock.call('rm -- "%s"' % vm_image),
+ mock.call('test -r %s' % base_image),
+ mock.call('mv -- "/tmp/%s" "%s"' % ('base_image', base_image)),
+ mock.call('qemu-img create -f qcow2 -o backing_file=%s %s' %
+ (base_image, vm_image))
+ ])
+ mock_os_access.assert_called_once_with(base_image, os.R_OK)
+ mock_normpath.assert_called_once_with(base_image)
+ mock_basename.assert_has_calls([mock.call(base_image)])
+ self.mock_ssh.put_file.assert_called_once_with(base_image,
+ '/tmp/base_image')
+
+ @mock.patch.object(model.Libvirt, 'gen_cdrom_image')
+ def test_check_update_key(self, mock_gen_cdrom_image):
+ node = {
+ 'user': 'defuser',
+ 'key_filename': '/home/ubuntu/id_rsa',
+ 'ip': '1.1.1.7',
+ 'netmask': '255.255.255.0'}
+ cdrom_img = "/var/lib/libvirt/images/data.img"
+ id_name = 'fake_name'
+ key_filename = node.get('key_filename')
+ root = ElementTree.fromstring(self.XML_STR)
+ hostname = root.find('name').text
+ mac = "00:11:22:33:44:55"
+ ip = "{0}/{1}".format(node.get('ip'), node.get('netmask'))
+ ip = "{0}/{1}".format(node.get('ip'), netaddr.IPNetwork(ip).prefixlen)
+ model.StandaloneContextHelper.check_update_key(self.mock_ssh, node, hostname, id_name,
+ cdrom_img, mac)
+ mock_gen_cdrom_image.assert_called_once_with(self.mock_ssh, cdrom_img, hostname,
+ node.get('user'), key_filename, mac, ip)
+
+ @mock.patch.object(os, 'access', return_value=False)
+ def test_create_snapshot_qemu_no_image_local(self, mock_os_access):
+ self.mock_ssh.execute = mock.Mock(side_effect=[(0, 0, 0), (1, 0, 0)])
+ base_image = '/tmp/base_image'
+
+ with self.assertRaises(exceptions.LibvirtQemuImageBaseImageNotPresent):
+ model.Libvirt.create_snapshot_qemu(self.mock_ssh, 3, base_image)
+ mock_os_access.assert_called_once_with(base_image, os.R_OK)
+
+ def test_create_snapshot_qemu_error_qemuimg_command(self):
+ self.mock_ssh.execute = mock.Mock(
+ side_effect=[(0, 0, 0), (0, 0, 0), (1, 0, 0)])
+ index = 1
+ vm_image = '/var/lib/libvirt/images/%s.qcow2' % index
+ base_image = '/tmp/base_image'
+
+ with self.assertRaises(exceptions.LibvirtQemuImageCreateError):
+ model.Libvirt.create_snapshot_qemu(self.mock_ssh, index,
+ base_image)
+ self.mock_ssh.execute.assert_has_calls([
+ mock.call('rm -- "%s"' % vm_image),
+ mock.call('test -r %s' % base_image),
+ mock.call('qemu-img create -f qcow2 -o backing_file=%s %s' %
+ (base_image, vm_image))
+ ])
+
+ @mock.patch.object(model.Libvirt, 'pin_vcpu_for_perf', return_value='4,5')
+ @mock.patch.object(model.Libvirt, 'create_snapshot_qemu',
+ return_value='qemu_image')
+ def test_build_vm_xml(self, mock_create_snapshot_qemu,
+ mock_pin_vcpu_for_perf):
+ extra_specs = {'hw:cpu_cores': '4',
+ 'hw:cpu_sockets': '3',
+ 'hw:cpu_threads': '2',
+ 'cputune': 'cool'}
+ flavor = {'ram': '1024',
+ 'extra_specs': extra_specs,
+ 'hw_socket': '1',
+ 'images': 'images'}
+ mac = model.StandaloneContextHelper.get_mac_address(0x00)
+ _uuid = uuid.uuid4()
+ connection = mock.Mock()
+ cdrom_img = '/tmp/cdrom-0.img'
+ with mock.patch.object(model.StandaloneContextHelper,
+ 'get_mac_address', return_value=mac) as \
+ mock_get_mac_address, \
+ mock.patch.object(uuid, 'uuid4', return_value=_uuid):
+ xml_out, mac = model.Libvirt.build_vm_xml(
+ connection, flavor, 'vm_name', 100, cdrom_img)
+
+ xml_ref = model.VM_TEMPLATE.format(vm_name='vm_name',
+ random_uuid=_uuid, mac_addr=mac, memory='1024', vcpu='8', cpu='4',
+ numa_cpus='0-7', socket='3', threads='2',
+ vm_image='qemu_image', cpuset='4,5', cputune='cool',
+ machine='pc-i440fx-xenial')
+ xml_ref = model.Libvirt.add_cdrom(cdrom_img, xml_ref)
+ self.assertEqual(xml_out, xml_ref)
+ mock_get_mac_address.assert_called_once_with(0x00)
+ mock_create_snapshot_qemu.assert_called_once_with(
+ connection, 100, 'images')
+ mock_pin_vcpu_for_perf.assert_called_once_with(connection, '1')
+
+ # TODO: Edit this test to test state instead of output
+ # update_interrupts_hugepages_perf does not return anything
+ def test_update_interrupts_hugepages_perf(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, "a", ""))
+ ssh.return_value = ssh_mock
+ # NOTE(ralonsoh): 'update_interrupts_hugepages_perf' always return
+ # None, this check is trivial.
+ #status = Libvirt.update_interrupts_hugepages_perf(ssh_mock)
+ #self.assertIsNone(status)
+ model.Libvirt.update_interrupts_hugepages_perf(ssh_mock)
+
+ @mock.patch.object(model, 'CpuSysCores')
+ @mock.patch.object(model.Libvirt, 'update_interrupts_hugepages_perf')
+ def test_pin_vcpu_for_perf(self, *args):
+ # NOTE(ralonsoh): test mocked methods/variables.
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, "a", ""))
+ ssh.return_value = ssh_mock
+ status = model.Libvirt.pin_vcpu_for_perf(ssh_mock, 4)
+ self.assertIsNotNone(status)
+
+
+class StandaloneContextHelperTestCase(unittest.TestCase):
+
+ NODE_SAMPLE = "nodes_sample.yaml"
+ NODE_SRIOV_SAMPLE = "nodes_sriov_sample.yaml"
+
+ NETWORKS = {
+ 'mgmt': {'cidr': '152.16.100.10/24'},
+ 'private_0': {
+ 'phy_port': "0000:05:00.0",
+ 'vpci': "0000:00:07.0",
+ 'cidr': '152.16.100.10/24',
+ 'gateway_ip': '152.16.100.20'},
+ 'public_0': {
+ 'phy_port': "0000:05:00.1",
+ 'vpci': "0000:00:08.0",
+ 'cidr': '152.16.40.10/24',
+ 'gateway_ip': '152.16.100.20'}
+ }
+
+ def setUp(self):
+ self.helper = model.StandaloneContextHelper()
+
+ def test___init__(self):
+ self.assertIsNone(self.helper.file_path)
+
+ def test_install_req_libs(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(1, "a", ""))
+ ssh.return_value = ssh_mock
+ # NOTE(ralonsoh): this test doesn't cover function execution. This test
+ # should also check mocked function calls.
+ model.StandaloneContextHelper.install_req_libs(ssh_mock)
+
+ def test_get_kernel_module(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(1, "i40e", ""))
+ ssh.return_value = ssh_mock
+ # NOTE(ralonsoh): this test doesn't cover function execution. This test
+ # should also check mocked function calls.
+ model.StandaloneContextHelper.get_kernel_module(
+ ssh_mock, "05:00.0", None)
+
+ @mock.patch.object(model.StandaloneContextHelper, 'get_kernel_module')
+ def test_get_nic_details(self, mock_get_kernel_module):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = mock.Mock(return_value=(1, "i40e ixgbe", ""))
+ ssh.return_value = ssh_mock
+ mock_get_kernel_module.return_value = "i40e"
+ # NOTE(ralonsoh): this test doesn't cover function execution. This test
+ # should also check mocked function calls.
+ model.StandaloneContextHelper.get_nic_details(
+ ssh_mock, self.NETWORKS, 'dpdk-devbind.py')
+
+ def test_get_virtual_devices(self):
+ pattern = "PCI_SLOT_NAME=0000:05:00.0"
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(1, pattern, ""))
+ ssh.return_value = ssh_mock
+ # NOTE(ralonsoh): this test doesn't cover function execution. This test
+ # should also check mocked function calls.
+ model.StandaloneContextHelper.get_virtual_devices(
+ ssh_mock, '0000:00:05.0')
+
+ def _get_file_abspath(self, filename):
+ curr_path = os.path.dirname(os.path.abspath(__file__))
+ file_path = os.path.join(curr_path, filename)
+ return file_path
+
+ def test_parse_pod_file(self):
+ self.helper.file_path = self._get_file_abspath("dummy")
+ self.assertRaises(IOError, self.helper.parse_pod_file,
+ self.helper.file_path)
+
+ self.helper.file_path = self._get_file_abspath(self.NODE_SAMPLE)
+ self.assertRaises(TypeError, self.helper.parse_pod_file,
+ self.helper.file_path)
+
+ self.helper.file_path = self._get_file_abspath(self.NODE_SRIOV_SAMPLE)
+ self.assertIsNotNone(self.helper.parse_pod_file(self.helper.file_path))
+
+ def test_get_mac_address(self):
+ status = model.StandaloneContextHelper.get_mac_address()
+ self.assertIsNotNone(status)
+
+ @mock.patch('yardstick.ssh.SSH')
+ def test_get_mgmt_ip(self, *args):
+ # NOTE(ralonsoh): test mocked methods/variables.
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = mock.Mock(
+ return_value=(1, "1.2.3.4 00:00:00:00:00:01", ""))
+ ssh.return_value = ssh_mock
+ # NOTE(ralonsoh): this test doesn't cover function execution. This test
+ # should also check mocked function calls.
+ status = model.StandaloneContextHelper.get_mgmt_ip(
+ ssh_mock, "00:00:00:00:00:01", "1.1.1.1/24", {})
+ self.assertIsNotNone(status)
+
+ @mock.patch('yardstick.ssh.SSH')
+ def test_get_mgmt_ip_no(self, *args):
+ # NOTE(ralonsoh): test mocked methods/variables.
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(1, "", ""))
+ ssh.return_value = ssh_mock
+ # NOTE(ralonsoh): this test doesn't cover function execution. This test
+ # should also check mocked function calls.
+ model.WAIT_FOR_BOOT = 0
+ status = model.StandaloneContextHelper.get_mgmt_ip(
+ ssh_mock, "99", "1.1.1.1/24", {})
+ self.assertIsNone(status)
+
+
+class ServerTestCase(unittest.TestCase):
+
+ NETWORKS = {
+ 'mgmt': {'cidr': '152.16.100.10/24'},
+ 'private_0': {
+ 'phy_port': "0000:05:00.0",
+ 'vpci': "0000:00:07.0",
+ 'driver': 'i40e',
+ 'mac': '',
+ 'cidr': '152.16.100.10/24',
+ 'gateway_ip': '152.16.100.20'},
+ 'public_0': {
+ 'phy_port': "0000:05:00.1",
+ 'vpci': "0000:00:08.0",
+ 'driver': 'i40e',
+ 'mac': '',
+ 'cidr': '152.16.40.10/24',
+ 'gateway_ip': '152.16.100.20'}
+ }
+
+ def setUp(self):
+ self.server = model.Server()
+
+ def test___init__(self):
+ self.assertIsNotNone(self.server)
+
+ def test_build_vnf_interfaces(self):
+ vnf = {
+ "network_ports": {
+ 'mgmt': {'cidr': '152.16.100.10/24'},
+ 'xe0': ['private_0'],
+ 'xe1': ['public_0'],
+ }
+ }
+ status = model.Server.build_vnf_interfaces(vnf, self.NETWORKS)
+ self.assertIsNotNone(status)
+
+ def test_generate_vnf_instance(self):
+ vnf = {
+ "network_ports": {
+ 'mgmt': {'cidr': '152.16.100.10/24'},
+ 'xe0': ['private_0'],
+ 'xe1': ['public_0'],
+ }
+ }
+ status = self.server.generate_vnf_instance(
+ {}, self.NETWORKS, '1.1.1.1/24', 'vm-0', vnf, '00:00:00:00:00:01')
+ self.assertIsNotNone(status)
+
+
+class OvsDeployTestCase(unittest.TestCase):
+
+ OVS_DETAILS = {'version': {'ovs': 'ovs_version', 'dpdk': 'dpdk_version'}}
+
+ def setUp(self):
+ self._mock_ssh = mock.patch.object(ssh, 'SSH')
+ self.mock_ssh = self._mock_ssh.start()
+ self.ovs_deploy = model.OvsDeploy(self.mock_ssh,
+ '/tmp/dpdk-devbind.py',
+ self.OVS_DETAILS)
+ self._mock_path_isfile = mock.patch.object(os.path, 'isfile')
+ self._mock_path_join = mock.patch.object(os.path, 'join')
+ self.mock_path_isfile = self._mock_path_isfile.start()
+ self.mock_path_join = self._mock_path_join.start()
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_ssh.stop()
+ self._mock_path_isfile.stop()
+ self._mock_path_join.stop()
+
+ @mock.patch.object(model.StandaloneContextHelper, 'install_req_libs')
+ def test_prerequisite(self, mock_install_req_libs):
+ pkgs = ["git", "build-essential", "pkg-config", "automake",
+ "autotools-dev", "libltdl-dev", "cmake", "libnuma-dev",
+ "libpcap-dev"]
+ self.ovs_deploy.prerequisite()
+ mock_install_req_libs.assert_called_once_with(
+ self.ovs_deploy.connection, pkgs)
+
+ def test_ovs_deploy_no_file(self):
+ self.mock_path_isfile.return_value = False
+ mock_file = mock.Mock()
+ self.mock_path_join.return_value = mock_file
+
+ self.ovs_deploy.ovs_deploy()
+ self.mock_path_isfile.assert_called_once_with(mock_file)
+ self.mock_path_join.assert_called_once_with(
+ constants.YARDSTICK_ROOT_PATH,
+ 'yardstick/resources/scripts/install/',
+ self.ovs_deploy.OVS_DEPLOY_SCRIPT)
+
+ @mock.patch.object(os.environ, 'get', return_value='test_proxy')
+ def test_ovs_deploy(self, mock_env_get):
+ self.mock_path_isfile.return_value = True
+ mock_deploy_file = mock.Mock()
+ mock_remove_ovs_deploy = mock.Mock()
+ self.mock_path_join.side_effect = [mock_deploy_file,
+ mock_remove_ovs_deploy]
+ dpdk_version = self.OVS_DETAILS['version']['dpdk']
+ ovs_version = self.OVS_DETAILS['version']['ovs']
+
+ with mock.patch.object(self.ovs_deploy.connection, 'put') as \
+ mock_put, \
+ mock.patch.object(self.ovs_deploy.connection, 'execute') as \
+ mock_execute, \
+ mock.patch.object(self.ovs_deploy, 'prerequisite'):
+ mock_execute.return_value = (0, 0, 0)
+ self.ovs_deploy.ovs_deploy()
+
+ self.mock_path_isfile.assert_called_once_with(mock_deploy_file)
+ self.mock_path_join.assert_has_calls([
+ mock.call(constants.YARDSTICK_ROOT_PATH,
+ 'yardstick/resources/scripts/install/',
+ self.ovs_deploy.OVS_DEPLOY_SCRIPT),
+ mock.call(self.ovs_deploy.bin_path,
+ self.ovs_deploy.OVS_DEPLOY_SCRIPT)
+ ])
+ mock_put.assert_called_once_with(mock_deploy_file,
+ mock_remove_ovs_deploy)
+ cmd = ("sudo -E %(remote_ovs_deploy)s --ovs='%(ovs_version)s' "
+ "--dpdk='%(dpdk_version)s' -p='%(proxy)s'" %
+ {'remote_ovs_deploy': mock_remove_ovs_deploy,
+ 'ovs_version': ovs_version,
+ 'dpdk_version': dpdk_version,
+ 'proxy': 'test_proxy'})
+ mock_execute.assert_called_once_with(cmd)
+ mock_env_get.assert_has_calls([mock.call('http_proxy', '')])
diff --git a/yardstick/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py b/yardstick/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py
new file mode 100644
index 000000000..413bb68b7
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/contexts/standalone/test_ovs_dpdk.py
@@ -0,0 +1,500 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import io
+import os
+
+import mock
+import six
+import unittest
+
+from yardstick.benchmark import contexts
+from yardstick.benchmark.contexts import base
+from yardstick.benchmark.contexts.standalone import model
+from yardstick.benchmark.contexts.standalone import ovs_dpdk
+from yardstick.common import exceptions
+from yardstick.common import utils as common_utils
+from yardstick.network_services import utils
+
+
+class OvsDpdkContextTestCase(unittest.TestCase):
+
+ NODES_SAMPLE = "nodes_sample.yaml"
+ NODES_ovs_dpdk_SAMPLE = "nodes_ovs_dpdk_sample.yaml"
+ NODES_DUPLICATE_SAMPLE = "nodes_duplicate_sample.yaml"
+
+ NETWORKS = {
+ 'private_0': {
+ 'phy_port': "0000:05:00.0",
+ 'vpci': "0000:00:07.0",
+ 'cidr': '152.16.100.10/24',
+ 'interface': 'if0',
+ 'mac': "00:00:00:00:00:01",
+ 'vf_pci': {'vf_pci': 0},
+ 'gateway_ip': '152.16.100.20'},
+ 'public_0': {
+ 'phy_port': "0000:05:00.1",
+ 'vpci': "0000:00:08.0",
+ 'cidr': '152.16.40.10/24',
+ 'interface': 'if0',
+ 'vf_pci': {'vf_pci': 0},
+ 'mac': "00:00:00:00:00:01",
+ 'gateway_ip': '152.16.100.20'},
+ }
+
+ def setUp(self):
+ self.attrs = {
+ 'name': 'foo',
+ 'task_id': '1234567890',
+ 'file': self._get_file_abspath(self.NODES_ovs_dpdk_SAMPLE)
+ }
+ self.ovs_dpdk = ovs_dpdk.OvsDpdkContext()
+ self._mock_log = mock.patch.object(ovs_dpdk, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.addCleanup(self._remove_contexts)
+ self.addCleanup(self._stop_mocks)
+
+ @staticmethod
+ def _remove_contexts():
+ for context in base.Context.list:
+ context._delete_context()
+ base.Context.list = []
+
+ def _stop_mocks(self):
+ self._mock_log.stop()
+
+ @mock.patch('yardstick.benchmark.contexts.standalone.model.Server')
+ @mock.patch('yardstick.benchmark.contexts.standalone.model.StandaloneContextHelper')
+ def test___init__(self, mock_helper, mock_server):
+ self.ovs_dpdk.helper = mock_helper
+ self.ovs_dpdk.vnf_node = mock_server
+ self.assertIsNone(self.ovs_dpdk.file_path)
+ self.assertTrue(self.ovs_dpdk.first_run)
+
+ def test_init(self):
+ ATTRS = {
+ 'name': contexts.CONTEXT_STANDALONEOVSDPDK,
+ 'task_id': '1234567890',
+ 'file': 'pod',
+ 'flavor': {},
+ 'servers': {},
+ 'networks': {},
+ }
+
+ self.ovs_dpdk.helper.parse_pod_file = mock.Mock(
+ return_value=[{}, {}, {}])
+ self.assertIsNone(self.ovs_dpdk.init(ATTRS))
+
+ def test_setup_ovs(self):
+ fake_path = '/fake_path'
+ fake_dpdk_nic_bind = 'dpdk_tool.py'
+ self.ovs_dpdk.ovs_properties = {'vpath': fake_path}
+ self.ovs_dpdk.dpdk_devbind = fake_dpdk_nic_bind
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.connection = mock.Mock()
+ self.ovs_dpdk.connection.execute = mock.Mock(return_value=(0, 0, 0))
+ create_from = fake_path + '/etc/openvswitch/conf.db'
+ create_to = fake_path + '/share/openvswitch/vswitch.ovsschema'
+ cmd_list = [
+ 'killall -r "ovs.*" -q | true',
+ 'mkdir -p {0}/etc/openvswitch'.format(fake_path),
+ 'mkdir -p {0}/var/run/openvswitch'.format(fake_path),
+ 'rm {0}/etc/openvswitch/conf.db | true'.format(fake_path),
+ 'ovsdb-tool create {0} {1}'.format(create_from, create_to),
+ 'modprobe vfio-pci',
+ 'chmod a+x /dev/vfio',
+ 'chmod 0666 /dev/vfio/*',
+ '{0} --force -b vfio-pci {1}'.format(fake_dpdk_nic_bind,
+ self.ovs_dpdk.networks['private_0']['phy_port']),
+ '{0} --force -b vfio-pci {1}'.format(fake_dpdk_nic_bind,
+ self.ovs_dpdk.networks['public_0']['phy_port'])
+ ]
+ calls = [mock.call(cmd, timeout=self.ovs_dpdk.CMD_TIMEOUT)
+ for cmd in cmd_list]
+
+ self.ovs_dpdk.setup_ovs()
+ self.ovs_dpdk.connection.execute.assert_has_calls(calls,
+ any_order=True)
+
+ def test_setup_ovs_exception(self):
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.connection = mock.Mock()
+ self.ovs_dpdk.connection.execute = mock.Mock(return_value=(1, 0, 0))
+
+ with self.assertRaises(exceptions.OVSSetupError):
+ self.ovs_dpdk.setup_ovs()
+
+ def test_start_ovs_serverswitch(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, "a", ""))
+ ssh.return_value = ssh_mock
+ self.ovs_dpdk.connection = ssh_mock
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.ovs_properties = {}
+ self.ovs_dpdk.wait_for_vswitchd = 0
+ self.assertIsNone(self.ovs_dpdk.start_ovs_serverswitch())
+
+ def test_setup_ovs_bridge_add_flows(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, "a", ""))
+ ssh.return_value = ssh_mock
+ self.ovs_dpdk.connection = ssh_mock
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.ovs_properties = {
+ 'version': {'ovs': '2.7.0'}
+ }
+ self.ovs_dpdk.wait_for_vswitchd = 0
+ self.assertIsNone(self.ovs_dpdk.setup_ovs_bridge_add_flows())
+ self.ovs_dpdk.ovs_properties.update(
+ {'dpdk_pmd-rxq-affinity': {'0': "0:1"}})
+ self.ovs_dpdk.ovs_properties.update(
+ {'vhost_pmd-rxq-affinity': {'0': "0:1"}})
+ self.NETWORKS['private_0'].update({'port_num': '0'})
+ self.NETWORKS['public_0'].update({'port_num': '1'})
+ self.ovs_dpdk.setup_ovs_bridge_add_flows()
+
+ @mock.patch("yardstick.ssh.SSH")
+ def test_cleanup_ovs_dpdk_env(self, mock_ssh):
+ mock_ssh.execute.return_value = 0, "a", ""
+ self.ovs_dpdk.connection = mock_ssh
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.ovs_properties = {
+ 'version': {'ovs': '2.7.0'}
+ }
+ self.ovs_dpdk.wait_for_vswitchd = 0
+ self.assertIsNone(self.ovs_dpdk.cleanup_ovs_dpdk_env())
+
+ @mock.patch.object(utils, 'get_nsb_option')
+ @mock.patch.object(model.OvsDeploy, 'ovs_deploy')
+ def test_check_ovs_dpdk_env(self, mock_ovs_deploy, mock_get_nsb_option):
+ self.ovs_dpdk.connection = mock.Mock()
+ self.ovs_dpdk.connection.execute = mock.Mock(
+ return_value=(1, 0, 0))
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.ovs_properties = {
+ 'version': {'ovs': '2.7.0', 'dpdk': '16.11.1'}
+ }
+ self.ovs_dpdk.wait_for_vswitchd = 0
+ self.ovs_dpdk.cleanup_ovs_dpdk_env = mock.Mock()
+ mock_get_nsb_option.return_value = 'fake_path'
+
+ self.ovs_dpdk.check_ovs_dpdk_env()
+ mock_ovs_deploy.assert_called_once()
+ mock_get_nsb_option.assert_called_once_with('bin_path')
+
+ def test_check_ovs_dpdk_env_wrong_version(self):
+ self.ovs_dpdk.connection = mock.Mock()
+ self.ovs_dpdk.connection.execute = mock.Mock(
+ return_value=(1, 0, 0))
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.ovs_properties = {
+ 'version': {'ovs': '0.0.1', 'dpdk': '9.8.7'}
+ }
+ self.ovs_dpdk.wait_for_vswitchd = 0
+ self.ovs_dpdk.cleanup_ovs_dpdk_env = mock.Mock()
+
+ with self.assertRaises(exceptions.OVSUnsupportedVersion):
+ self.ovs_dpdk.check_ovs_dpdk_env()
+
+ @mock.patch('yardstick.ssh.SSH')
+ def test_deploy(self, *args):
+ self.ovs_dpdk.vm_deploy = False
+ self.assertIsNone(self.ovs_dpdk.deploy())
+
+ self.ovs_dpdk.vm_deploy = True
+ self.ovs_dpdk.host_mgmt = {}
+ self.ovs_dpdk.install_req_libs = mock.Mock()
+ self.ovs_dpdk.helper.get_nic_details = mock.Mock(return_value={})
+ self.ovs_dpdk.check_ovs_dpdk_env = mock.Mock(return_value={})
+ self.ovs_dpdk.setup_ovs = mock.Mock(return_value={})
+ self.ovs_dpdk.start_ovs_serverswitch = mock.Mock(return_value={})
+ self.ovs_dpdk.setup_ovs_bridge_add_flows = mock.Mock(return_value={})
+ self.ovs_dpdk.setup_ovs_dpdk_context = mock.Mock(return_value={})
+ self.ovs_dpdk.wait_for_vnfs_to_start = mock.Mock(return_value={})
+ # TODO(elfoley): This test should check states/sideeffects instead of
+ # output.
+ self.assertIsNone(self.ovs_dpdk.deploy())
+
+ @mock.patch.object(model.Libvirt, 'check_if_vm_exists_and_delete')
+ def test_undeploy(self, mock_libvirt):
+ self.ovs_dpdk.vm_deploy = True
+ self.ovs_dpdk.connection = mock.Mock()
+ self.ovs_dpdk.vm_names = ['vm-0', 'vm-1']
+ self.ovs_dpdk.drivers = ['vm-0', 'vm-1']
+ self.ovs_dpdk.cleanup_ovs_dpdk_env = mock.Mock()
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.undeploy()
+ mock_libvirt.assert_has_calls([
+ mock.call(self.ovs_dpdk.vm_names[0], self.ovs_dpdk.connection),
+ mock.call(self.ovs_dpdk.vm_names[1], self.ovs_dpdk.connection)
+ ])
+
+ def _get_file_abspath(self, filename):
+ curr_path = os.path.dirname(os.path.abspath(__file__))
+ file_path = os.path.join(curr_path, filename)
+ return file_path
+
+ def test__get_server_with_dic_attr_name(self):
+
+ self.ovs_dpdk.init(self.attrs)
+
+ attr_name = {'name': 'foo.bar'}
+ result = self.ovs_dpdk._get_server(attr_name)
+
+ self.assertEqual(result, None)
+
+ def test__get_server_not_found(self):
+
+ self.ovs_dpdk.helper.parse_pod_file = mock.Mock(
+ return_value=[{}, {}, {}])
+ self.ovs_dpdk.init(self.attrs)
+
+ attr_name = 'bar.foo'
+ result = self.ovs_dpdk._get_server(attr_name)
+
+ self.assertEqual(result, None)
+
+ def test__get_server_mismatch(self):
+
+ self.ovs_dpdk.init(self.attrs)
+
+ attr_name = 'bar.foo1'
+ result = self.ovs_dpdk._get_server(attr_name)
+
+ self.assertEqual(result, None)
+
+ def test__get_server_duplicate(self):
+
+ self.attrs['file'] = self._get_file_abspath(self.NODES_DUPLICATE_SAMPLE)
+
+ self.ovs_dpdk.init(self.attrs)
+
+ attr_name = 'node1.foo-12345678'
+ with self.assertRaises(ValueError):
+ self.ovs_dpdk._get_server(attr_name)
+
+ def test__get_server_found(self):
+
+ self.ovs_dpdk.init(self.attrs)
+
+ attr_name = 'node1.foo-12345678'
+ result = self.ovs_dpdk._get_server(attr_name)
+
+ self.assertEqual(result['ip'], '10.229.47.137')
+ self.assertEqual(result['name'], 'node1.foo-12345678')
+ self.assertEqual(result['user'], 'root')
+ self.assertEqual(result['key_filename'], '/root/.yardstick_key')
+
+ def test__get_physical_node_for_server(self):
+ attrs = self.attrs
+ attrs.update({'servers': {'server1': {}}})
+ self.ovs_dpdk.init(attrs)
+
+ # When server is not from this context
+ result = self.ovs_dpdk._get_physical_node_for_server('server1.another-context')
+ self.assertIsNone(result)
+
+ # When node_name is not from this context
+ result = self.ovs_dpdk._get_physical_node_for_server('fake.foo-12345678')
+ self.assertIsNone(result)
+
+ result = self.ovs_dpdk._get_physical_node_for_server('server1.foo-12345678')
+ self.assertEqual(result, 'node5.foo')
+
+ # TODO(elfoley): Split this test for networks that exist and networks that
+ # don't
+ def test__get_network(self):
+ network1 = {
+ 'name': 'net_1',
+ 'vld_id': 'vld111',
+ 'segmentation_id': 'seg54',
+ 'network_type': 'type_a',
+ 'physical_network': 'phys',
+ }
+ network2 = {
+ 'name': 'net_2',
+ 'vld_id': 'vld999',
+ }
+ self.ovs_dpdk.networks = {
+ 'a': network1,
+ 'b': network2,
+ }
+
+ # Tests for networks that do not exist
+ attr_name = {}
+ self.assertIsNone(self.ovs_dpdk._get_network(attr_name))
+
+ attr_name = {'vld_id': 'vld777'}
+ self.assertIsNone(self.ovs_dpdk._get_network(attr_name))
+
+ self.assertIsNone(self.ovs_dpdk._get_network(None))
+
+ # TODO(elfoley): Split this test
+ attr_name = 'vld777'
+ self.assertIsNone(self.ovs_dpdk._get_network(attr_name))
+
+ # Tests for networks that exist
+ attr_name = {'vld_id': 'vld999'}
+ expected = {
+ "name": 'net_2',
+ "vld_id": 'vld999',
+ "segmentation_id": None,
+ "network_type": None,
+ "physical_network": None,
+ }
+ result = self.ovs_dpdk._get_network(attr_name)
+ self.assertDictEqual(result, expected)
+
+ attr_name = 'a'
+ expected = network1
+ result = self.ovs_dpdk._get_network(attr_name)
+ self.assertDictEqual(result, expected)
+
+ def test_configure_nics_for_ovs_dpdk(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, "a", ""))
+ ssh.return_value = ssh_mock
+ self.ovs_dpdk.vm_deploy = True
+ self.ovs_dpdk.connection = ssh_mock
+ self.ovs_dpdk.vm_names = ['vm-0', 'vm-1']
+ self.ovs_dpdk.drivers = []
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.helper.get_mac_address = mock.Mock(return_value="")
+ self.ovs_dpdk.get_vf_datas = mock.Mock(return_value="")
+ self.assertIsNone(self.ovs_dpdk.configure_nics_for_ovs_dpdk())
+
+ @mock.patch.object(model.Libvirt, 'add_ovs_interface')
+ def test__enable_interfaces(self, mock_add_ovs_interface):
+ self.ovs_dpdk.vm_deploy = True
+ self.ovs_dpdk.connection = mock.Mock()
+ self.ovs_dpdk.vm_names = ['vm-0', 'vm-1']
+ self.ovs_dpdk.drivers = []
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.ovs_properties = {'vpath': 'fake_path'}
+ self.ovs_dpdk.get_vf_datas = mock.Mock(return_value="")
+ self.ovs_dpdk._enable_interfaces(0, ["private_0"], 'test')
+ mock_add_ovs_interface.assert_called_once_with(
+ 'fake_path', 0, self.NETWORKS['private_0']['vpci'],
+ self.NETWORKS['private_0']['mac'], 'test', 1)
+
+ @mock.patch.object(ovs_dpdk.OvsDpdkContext, '_check_hugepages')
+ @mock.patch.object(common_utils, 'setup_hugepages')
+ @mock.patch.object(model.StandaloneContextHelper, 'check_update_key')
+ @mock.patch.object(model.Libvirt, 'write_file')
+ @mock.patch.object(model.Libvirt, 'build_vm_xml')
+ @mock.patch.object(model.Libvirt, 'check_if_vm_exists_and_delete')
+ @mock.patch.object(model.Libvirt, 'virsh_create_vm')
+ def test_setup_ovs_dpdk_context(self, mock_create_vm, mock_check_if_exists,
+ mock_build_xml, mock_write_file,
+ mock_check_update_key,
+ mock_setup_hugepages,
+ mock__check_hugepages):
+ self.ovs_dpdk.vm_deploy = True
+ self.ovs_dpdk.connection = mock.Mock()
+ self.ovs_dpdk.vm_names = ['vm-0', 'vm-1']
+ self.ovs_dpdk.drivers = []
+ self.ovs_dpdk.servers = {
+ 'vnf_0': {
+ 'network_ports': {
+ 'mgmt': {'cidr': '152.16.100.10/24'},
+ 'xe0': ['private_0'],
+ 'xe1': ['public_0']
+ }
+ }
+ }
+ self.ovs_dpdk.networks = self.NETWORKS
+ self.ovs_dpdk.host_mgmt = {}
+ self.ovs_dpdk.vm_flavor = {'ram': '1024'}
+ self.ovs_dpdk.file_path = '/var/lib/libvirt/images/cdrom-0.img'
+ self.ovs_dpdk.configure_nics_for_ovs_dpdk = mock.Mock(return_value="")
+ self.ovs_dpdk._name_task_id = 'fake_name'
+ xml_str = 'vm-0'
+ self.ovs_dpdk.mac = '00:00:00:00:00:01'
+ mock_build_xml.return_value = (xml_str, self.ovs_dpdk.mac)
+ self.ovs_dpdk._enable_interfaces = mock.Mock(return_value=xml_str)
+ vnf_instance = mock.Mock()
+ vnf_instance_2 = mock.Mock()
+ mock_check_update_key.return_value = vnf_instance_2
+ self.ovs_dpdk.vnf_node.generate_vnf_instance = mock.Mock(
+ return_value=vnf_instance)
+
+ self.assertEqual([vnf_instance_2],
+ self.ovs_dpdk.setup_ovs_dpdk_context())
+ mock_setup_hugepages.assert_called_once_with(self.ovs_dpdk.connection,
+ (1024 + 4096) * 1024) # ram + dpdk_socket0_mem + dpdk_socket1_mem
+ mock__check_hugepages.assert_called_once()
+ mock_create_vm.assert_called_once_with(
+ self.ovs_dpdk.connection, '/tmp/vm_ovs_0.xml')
+ mock_check_if_exists.assert_called_once_with(
+ 'vm-0', self.ovs_dpdk.connection)
+ mock_build_xml.assert_called_once_with(
+ self.ovs_dpdk.connection, self.ovs_dpdk.vm_flavor, 'vm-0', 0, self.ovs_dpdk.file_path)
+ mock_write_file.assert_called_once_with('/tmp/vm_ovs_0.xml', xml_str)
+ mock_check_update_key.assert_called_once_with(self.ovs_dpdk.connection,
+ vnf_instance,
+ xml_str,
+ self.ovs_dpdk._name_task_id,
+ self.ovs_dpdk.file_path,
+ self.ovs_dpdk.mac)
+
+ @mock.patch.object(io, 'BytesIO')
+ def test__check_hugepages(self, mock_bytesio):
+ data = six.BytesIO('HugePages_Total: 20\n'
+ 'HugePages_Free: 20\n'
+ 'HugePages_Rsvd: 0\n'
+ 'HugePages_Surp: 0\n'
+ 'Hugepagesize: 1048576 kB'.encode())
+ mock_bytesio.return_value = data
+ self.ovs_dpdk.connection = mock.Mock()
+ self.ovs_dpdk._check_hugepages()
+
+ @mock.patch.object(io, 'BytesIO')
+ def test__check_hugepages_no_info(self, mock_bytesio):
+ data = six.BytesIO(''.encode())
+ mock_bytesio.return_value = data
+ self.ovs_dpdk.connection = mock.Mock()
+ with self.assertRaises(exceptions.OVSHugepagesInfoError):
+ self.ovs_dpdk._check_hugepages()
+
+ @mock.patch.object(io, 'BytesIO')
+ def test__check_hugepages_no_total_hp(self, mock_bytesio):
+ data = six.BytesIO('HugePages_Total: 0\n'
+ 'HugePages_Free: 0\n'
+ 'HugePages_Rsvd: 0\n'
+ 'HugePages_Surp: 0\n'
+ 'Hugepagesize: 1048576 kB'.encode())
+ mock_bytesio.return_value = data
+ self.ovs_dpdk.connection = mock.Mock()
+ with self.assertRaises(exceptions.OVSHugepagesNotConfigured):
+ self.ovs_dpdk._check_hugepages()
+
+ @mock.patch.object(io, 'BytesIO')
+ def test__check_hugepages_no_free_hp(self, mock_bytesio):
+ data = six.BytesIO('HugePages_Total: 20\n'
+ 'HugePages_Free: 0\n'
+ 'HugePages_Rsvd: 0\n'
+ 'HugePages_Surp: 0\n'
+ 'Hugepagesize: 1048576 kB'.encode())
+ mock_bytesio.return_value = data
+ self.ovs_dpdk.connection = mock.Mock()
+ with self.assertRaises(exceptions.OVSHugepagesZeroFree) as exc:
+ self.ovs_dpdk._check_hugepages()
+ self.assertEqual('There are no HugePages free in this system. Total '
+ 'HugePages configured: 20', exc.exception.msg)
diff --git a/tests/unit/benchmark/contexts/standalone/test_sriov.py b/yardstick/tests/unit/benchmark/contexts/standalone/test_sriov.py
index 3ea673abc..0809a983a 100644
--- a/tests/unit/benchmark/contexts/standalone/test_sriov.py
+++ b/yardstick/tests/unit/benchmark/contexts/standalone/test_sriov.py
@@ -12,15 +12,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Unittest for yardstick.benchmark.contexts.standalone.standalonesriov
-
-from __future__ import absolute_import
import os
-import unittest
+
import mock
+import unittest
from yardstick import ssh
+from yardstick.benchmark import contexts
+from yardstick.benchmark.contexts import base
+from yardstick.benchmark.contexts.standalone import model
from yardstick.benchmark.contexts.standalone import sriov
+from yardstick.common import utils
class SriovContextTestCase(unittest.TestCase):
@@ -30,7 +32,8 @@ class SriovContextTestCase(unittest.TestCase):
NODES_DUPLICATE_SAMPLE = "nodes_duplicate_sample.yaml"
ATTRS = {
- 'name': 'StandaloneSriov',
+ 'name': contexts.CONTEXT_STANDALONESRIOV,
+ 'task_id': '1234567890',
'file': 'pod',
'flavor': {},
'servers': {},
@@ -40,47 +43,56 @@ class SriovContextTestCase(unittest.TestCase):
NETWORKS = {
'mgmt': {'cidr': '152.16.100.10/24'},
'private_0': {
- 'phy_port': "0000:05:00.0",
- 'vpci': "0000:00:07.0",
- 'cidr': '152.16.100.10/24',
- 'interface': 'if0',
- 'mac': "00:00:00:00:00:01",
- 'vf_pci': {'vf_pci': 0},
- 'gateway_ip': '152.16.100.20'},
+ 'phy_port': "0000:05:00.0",
+ 'vpci': "0000:00:07.0",
+ 'cidr': '152.16.100.10/24',
+ 'interface': 'if0',
+ 'mac': "00:00:00:00:00:01",
+ 'vf_pci': {'vf_pci': 0},
+ 'gateway_ip': '152.16.100.20'},
'public_0': {
- 'phy_port': "0000:05:00.1",
- 'vpci': "0000:00:08.0",
- 'cidr': '152.16.40.10/24',
- 'interface': 'if0',
- 'vf_pci': {'vf_pci': 0},
- 'mac': "00:00:00:00:00:01",
- 'gateway_ip': '152.16.100.20'},
+ 'phy_port': "0000:05:00.1",
+ 'vpci': "0000:00:08.0",
+ 'cidr': '152.16.40.10/24',
+ 'interface': 'if0',
+ 'vf_pci': {'vf_pci': 0},
+ 'mac': "00:00:00:00:00:01",
+ 'gateway_ip': '152.16.100.20'},
}
def setUp(self):
+ self.attrs = {
+ 'name': 'foo',
+ 'task_id': '1234567890',
+ 'file': self._get_file_abspath(self.NODES_SRIOV_SAMPLE),
+ }
self.sriov = sriov.SriovContext()
+ self.addCleanup(self._remove_contexts)
+
+ @staticmethod
+ def _remove_contexts():
+ for context in base.Context.list:
+ context._delete_context()
+ base.Context.list = []
- @mock.patch('yardstick.benchmark.contexts.standalone.model.StandaloneContextHelper')
- @mock.patch('yardstick.benchmark.contexts.standalone.sriov.Libvirt')
- @mock.patch('yardstick.benchmark.contexts.standalone.model.Server')
+ @mock.patch.object(model, 'StandaloneContextHelper')
+ @mock.patch.object(model, 'Libvirt')
+ @mock.patch.object(model, 'Server')
def test___init__(self, mock_helper, mock_libvirt, mock_server):
# pylint: disable=unused-argument
# NOTE(ralonsoh): this test doesn't cover function execution.
- # The pylint exception should be removed.
self.sriov.helper = mock_helper
self.sriov.vnf_node = mock_server
self.assertIsNone(self.sriov.file_path)
- self.assertEqual(self.sriov.first_run, True)
+ self.assertTrue(self.sriov.first_run)
def test_init(self):
self.sriov.helper.parse_pod_file = mock.Mock(return_value=[{}, {}, {}])
self.assertIsNone(self.sriov.init(self.ATTRS))
@mock.patch.object(ssh, 'SSH', return_value=(0, "a", ""))
- def test_deploy(self, mock_ssh):
- # pylint: disable=unused-argument
+ def test_deploy(self, *args):
# NOTE(ralonsoh): this test doesn't cover function execution.
- # The pylint exception should be removed.
self.sriov.vm_deploy = False
self.assertIsNone(self.sriov.deploy())
@@ -93,7 +105,7 @@ class SriovContextTestCase(unittest.TestCase):
self.assertIsNone(self.sriov.deploy())
@mock.patch.object(ssh, 'SSH', return_value=(0, "a", ""))
- @mock.patch('yardstick.benchmark.contexts.standalone.sriov.Libvirt')
+ @mock.patch.object(model, 'Libvirt')
def test_undeploy(self, mock_libvirt, mock_ssh):
# pylint: disable=unused-argument
# NOTE(ralonsoh): the pylint exception should be removed.
@@ -102,8 +114,8 @@ class SriovContextTestCase(unittest.TestCase):
self.sriov.vm_deploy = True
self.sriov.connection = mock_ssh
- self.sriov.vm_names = ['vm_0', 'vm_1']
- self.sriov.drivers = ['vm_0', 'vm_1']
+ self.sriov.vm_names = ['vm-0', 'vm-1']
+ self.sriov.drivers = ['vm-0', 'vm-1']
self.assertIsNone(self.sriov.undeploy())
def _get_file_abspath(self, filename):
@@ -113,12 +125,7 @@ class SriovContextTestCase(unittest.TestCase):
def test__get_server_with_dic_attr_name(self):
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SRIOV_SAMPLE)
- }
-
- self.sriov.init(attrs)
+ self.sriov.init(self.attrs)
attr_name = {'name': 'foo.bar'}
result = self.sriov._get_server(attr_name)
@@ -127,13 +134,8 @@ class SriovContextTestCase(unittest.TestCase):
def test__get_server_not_found(self):
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SRIOV_SAMPLE)
- }
-
self.sriov.helper.parse_pod_file = mock.Mock(return_value=[{}, {}, {}])
- self.sriov.init(attrs)
+ self.sriov.init(self.attrs)
attr_name = 'bar.foo'
result = self.sriov._get_server(attr_name)
@@ -142,12 +144,7 @@ class SriovContextTestCase(unittest.TestCase):
def test__get_server_mismatch(self):
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SRIOV_SAMPLE)
- }
-
- self.sriov.init(attrs)
+ self.sriov.init(self.attrs)
attr_name = 'bar.foo1'
result = self.sriov._get_server(attr_name)
@@ -156,26 +153,46 @@ class SriovContextTestCase(unittest.TestCase):
def test__get_server_duplicate(self):
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_DUPLICATE_SAMPLE)
- }
+ self.attrs['file'] = self._get_file_abspath(self.NODES_DUPLICATE_SAMPLE)
- self.sriov.init(attrs)
+ self.sriov.init(self.attrs)
- attr_name = 'node1.foo'
+ attr_name = 'node1.foo-12345678'
with self.assertRaises(ValueError):
self.sriov._get_server(attr_name)
def test__get_server_found(self):
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SRIOV_SAMPLE)
- }
+ self.sriov.init(self.attrs)
+
+ attr_name = 'node1.foo-12345678'
+ result = self.sriov._get_server(attr_name)
+ self.assertEqual(result['ip'], '10.229.47.137')
+ self.assertEqual(result['name'], 'node1.foo-12345678')
+ self.assertEqual(result['user'], 'root')
+ self.assertEqual(result['key_filename'], '/root/.yardstick_key')
+
+ def test__get_physical_node_for_server(self):
+ attrs = self.attrs
+ attrs.update({'servers': {'server1': {}}})
self.sriov.init(attrs)
+ # When server is not from this context
+ result = self.sriov._get_physical_node_for_server('server1.another-context')
+ self.assertIsNone(result)
+
+ # When node_name is not from this context
+ result = self.sriov._get_physical_node_for_server('fake.foo-12345678')
+ self.assertIsNone(result)
+
+ result = self.sriov._get_physical_node_for_server('server1.foo-12345678')
+ self.assertEqual(result, 'node5.foo')
+
+ def test__get_server_no_task_id(self):
+ self.attrs['flags'] = {'no_setup': True}
+ self.sriov.init(self.attrs)
+
attr_name = 'node1.foo'
result = self.sriov._get_server(attr_name)
@@ -184,6 +201,8 @@ class SriovContextTestCase(unittest.TestCase):
self.assertEqual(result['user'], 'root')
self.assertEqual(result['key_filename'], '/root/.yardstick_key')
+ # TODO(elfoley): Split this test
+ # There are at least two sets of inputs/outputs
def test__get_network(self):
network1 = {
'name': 'net_1',
@@ -236,7 +255,7 @@ class SriovContextTestCase(unittest.TestCase):
ssh.return_value = ssh_mock
self.sriov.vm_deploy = True
self.sriov.connection = ssh_mock
- self.sriov.vm_names = ['vm_0', 'vm_1']
+ self.sriov.vm_names = ['vm-0', 'vm-1']
self.sriov.drivers = []
self.sriov.networks = self.NETWORKS
self.sriov.helper.get_mac_address = mock.Mock(return_value="")
@@ -244,34 +263,29 @@ class SriovContextTestCase(unittest.TestCase):
self.assertIsNone(self.sriov.configure_nics_for_sriov())
@mock.patch.object(ssh, 'SSH', return_value=(0, "a", ""))
- @mock.patch('yardstick.benchmark.contexts.standalone.sriov.Libvirt')
- def test__enable_interfaces(self, mock_libvirt, mock_ssh):
- # pylint: disable=unused-argument
- # NOTE(ralonsoh): the pylint exception should be removed.
+ @mock.patch.object(model.Libvirt, 'add_sriov_interfaces',
+ return_value='out_xml')
+ def test__enable_interfaces(self, mock_add_sriov, mock_ssh):
self.sriov.vm_deploy = True
self.sriov.connection = mock_ssh
- self.sriov.vm_names = ['vm_0', 'vm_1']
+ self.sriov.vm_names = ['vm-0', 'vm-1']
self.sriov.drivers = []
self.sriov.networks = self.NETWORKS
- self.sriov._get_vf_data = mock.Mock(return_value="")
- self.assertIsNone(self.sriov._enable_interfaces(0, 0, ["private_0"], 'test'))
-
- @mock.patch('yardstick.benchmark.contexts.standalone.model.Server')
- @mock.patch('yardstick.benchmark.contexts.standalone.sriov.Libvirt')
- def test_setup_sriov_context(self, mock_libvirt, mock_server):
- # pylint: disable=unused-argument
- # NOTE(ralonsoh): the pylint exception should be removed.
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, "a", ""))
- ssh_mock.put = \
- mock.Mock(return_value=(0, "a", ""))
- ssh.return_value = ssh_mock
- self.sriov.vm_deploy = True
- self.sriov.connection = ssh_mock
- self.sriov.vm_names = ['vm_0', 'vm_1']
- self.sriov.drivers = []
+ self.assertEqual(
+ 'out_xml',
+ self.sriov._enable_interfaces(0, 0, ['private_0'], 'test'))
+ mock_add_sriov.assert_called_once_with(
+ '0000:00:0a.0', 0, self.NETWORKS['private_0']['mac'], 'test')
+
+ @mock.patch.object(utils, 'setup_hugepages')
+ @mock.patch.object(model.StandaloneContextHelper, 'check_update_key')
+ @mock.patch.object(model.Libvirt, 'build_vm_xml')
+ @mock.patch.object(model.Libvirt, 'check_if_vm_exists_and_delete')
+ @mock.patch.object(model.Libvirt, 'write_file')
+ @mock.patch.object(model.Libvirt, 'virsh_create_vm')
+ def test_setup_sriov_context(self, mock_create_vm, mock_write_file,
+ mock_check, mock_build_vm_xml,
+ mock_check_update_key, mock_setup_hugepages):
self.sriov.servers = {
'vnf_0': {
'network_ports': {
@@ -281,14 +295,44 @@ class SriovContextTestCase(unittest.TestCase):
}
}
}
- self.sriov.networks = self.NETWORKS
- self.sriov.host_mgmt = {}
- self.sriov.flavor = {}
- self.sriov.configure_nics_for_sriov = mock.Mock(return_value="")
- mock_libvirt.build_vm_xml = mock.Mock(return_value=[6, "00:00:00:00:00:01"])
- self.sriov._enable_interfaces = mock.Mock(return_value="")
- self.sriov.vnf_node.generate_vnf_instance = mock.Mock(return_value={})
- self.assertIsNotNone(self.sriov.setup_sriov_context())
+ connection = mock.Mock()
+ self.sriov.connection = connection
+ self.sriov.host_mgmt = {'ip': '1.2.3.4'}
+ self.sriov.vm_flavor = {'ram': '1024'}
+ self.sriov.networks = 'networks'
+ self.sriov.configure_nics_for_sriov = mock.Mock()
+ self.sriov._name_task_id = 'fake_name'
+ cfg = '/tmp/vm_sriov_0.xml'
+ vm_name = 'vm-0'
+ mac = '00:00:00:00:00:01'
+ xml_out = mock.Mock()
+ mock_build_vm_xml.return_value = (xml_out, mac)
+ mock_check_update_key.return_value = 'node_2'
+ cdrom_img = '/var/lib/libvirt/images/cdrom-0.img'
+
+ with mock.patch.object(self.sriov, 'vnf_node') as mock_vnf_node, \
+ mock.patch.object(self.sriov, '_enable_interfaces') as \
+ mock_enable_interfaces:
+ mock_enable_interfaces.return_value = 'out_xml'
+ mock_vnf_node.generate_vnf_instance = mock.Mock(
+ return_value='node_1')
+ nodes_out = self.sriov.setup_sriov_context()
+ mock_setup_hugepages.assert_called_once_with(connection, 1024*1024)
+ mock_check_update_key.assert_called_once_with(connection, 'node_1', vm_name,
+ self.sriov._name_task_id, cdrom_img,
+ mac)
+ self.assertEqual(['node_2'], nodes_out)
+ mock_vnf_node.generate_vnf_instance.assert_called_once_with(
+ self.sriov.vm_flavor, 'networks', '1.2.3.4', 'vnf_0',
+ self.sriov.servers['vnf_0'], '00:00:00:00:00:01')
+ mock_build_vm_xml.assert_called_once_with(
+ connection, self.sriov.vm_flavor, vm_name, 0, cdrom_img)
+ mock_create_vm.assert_called_once_with(connection, cfg)
+ mock_check.assert_called_once_with(vm_name, connection)
+ mock_write_file.assert_called_once_with(cfg, 'out_xml')
+ mock_enable_interfaces.assert_has_calls([
+ mock.call(0, mock.ANY, ['private_0'], mock.ANY),
+ mock.call(0, mock.ANY, ['public_0'], mock.ANY)], any_order=True)
def test__get_vf_data(self):
with mock.patch("yardstick.ssh.SSH") as ssh:
@@ -300,7 +344,7 @@ class SriovContextTestCase(unittest.TestCase):
ssh.return_value = ssh_mock
self.sriov.vm_deploy = True
self.sriov.connection = ssh_mock
- self.sriov.vm_names = ['vm_0', 'vm_1']
+ self.sriov.vm_names = ['vm-0', 'vm-1']
self.sriov.drivers = []
self.sriov.servers = {
'vnf_0': {
diff --git a/tests/unit/benchmark/contexts/standalone_duplicate_sample.yaml b/yardstick/tests/unit/benchmark/contexts/standalone_duplicate_sample.yaml
index e468d0465..e468d0465 100644
--- a/tests/unit/benchmark/contexts/standalone_duplicate_sample.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/standalone_duplicate_sample.yaml
diff --git a/tests/unit/benchmark/contexts/standalone_sample.yaml b/yardstick/tests/unit/benchmark/contexts/standalone_sample.yaml
index 95e12d62f..95e12d62f 100644
--- a/tests/unit/benchmark/contexts/standalone_sample.yaml
+++ b/yardstick/tests/unit/benchmark/contexts/standalone_sample.yaml
diff --git a/yardstick/tests/unit/benchmark/contexts/test_base.py b/yardstick/tests/unit/benchmark/contexts/test_base.py
new file mode 100644
index 000000000..5fd7352f5
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/contexts/test_base.py
@@ -0,0 +1,174 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import os
+import errno
+
+import mock
+
+from yardstick.benchmark.contexts import base
+from yardstick.benchmark.contexts.base import Context
+from yardstick.common import yaml_loader
+from yardstick.tests.unit import base as ut_base
+from yardstick.common.constants import YARDSTICK_ROOT_PATH
+
+
+class DummyContextClass(Context):
+
+ __context_type__ = "Dummy"
+
+ def __init__(self, host_name_separator='.'):
+ super(DummyContextClass, self).__init__\
+ (host_name_separator=host_name_separator)
+ self.nodes = []
+ self.controllers = []
+ self.computes = []
+ self.baremetals = []
+
+ def _get_network(self, *args):
+ pass
+
+ def _get_server(self, *args):
+ pass
+
+ def deploy(self):
+ pass
+
+ def undeploy(self):
+ pass
+
+ def _get_physical_nodes(self):
+ pass
+
+ def _get_physical_node_for_server(self, server_name):
+ pass
+
+
+class FlagsTestCase(ut_base.BaseUnitTestCase):
+
+ def setUp(self):
+ self.flags = base.Flags()
+
+ def test___init__(self):
+ self.assertFalse(self.flags.no_setup)
+ self.assertFalse(self.flags.no_teardown)
+ self.assertEqual({'verify': False}, self.flags.os_cloud_config)
+
+ def test___init__with_flags(self):
+ flags = base.Flags(no_setup=True)
+ self.assertTrue(flags.no_setup)
+ self.assertFalse(flags.no_teardown)
+
+ def test_parse(self):
+ self.flags.parse(no_setup=True, no_teardown='False',
+ os_cloud_config={'verify': True})
+
+ self.assertTrue(self.flags.no_setup)
+ self.assertEqual('False', self.flags.no_teardown)
+ self.assertEqual({'verify': True}, self.flags.os_cloud_config)
+
+ def test_parse_forbidden_flags(self):
+ self.flags.parse(foo=42)
+ with self.assertRaises(AttributeError):
+ _ = self.flags.foo
+
+
+class ContextTestCase(ut_base.BaseUnitTestCase):
+
+ @staticmethod
+ def _remove_ctx(ctx_obj):
+ if ctx_obj in base.Context.list:
+ base.Context.list.remove(ctx_obj)
+
+ def test_split_host_name(self):
+ ctx_obj = DummyContextClass()
+ self.addCleanup(self._remove_ctx, ctx_obj)
+ config_name = 'host_name.ctx_name'
+ self.assertEqual(('host_name', 'ctx_name'),
+ ctx_obj.split_host_name(config_name))
+
+ def test_split_host_name_wrong_separator(self):
+ ctx_obj = DummyContextClass()
+ self.addCleanup(self._remove_ctx, ctx_obj)
+ config_name = 'host_name-ctx_name'
+ self.assertEqual((None, None),
+ ctx_obj.split_host_name(config_name))
+
+ def test_split_host_name_other_separator(self):
+ ctx_obj = DummyContextClass(host_name_separator='-')
+ self.addCleanup(self._remove_ctx, ctx_obj)
+ config_name = 'host_name-ctx_name'
+ self.assertEqual(('host_name', 'ctx_name'),
+ ctx_obj.split_host_name(config_name))
+
+ def test_get_physical_nodes(self):
+ ctx_obj = DummyContextClass()
+ self.addCleanup(self._remove_ctx, ctx_obj)
+
+ result = Context.get_physical_nodes()
+
+ self.assertEqual(result, {None: None})
+
+ @mock.patch.object(Context, 'get_context_from_server')
+ def test_get_physical_node_from_server(self, mock_get_ctx):
+ ctx_obj = DummyContextClass()
+ self.addCleanup(self._remove_ctx, ctx_obj)
+
+ mock_get_ctx.return_value = ctx_obj
+
+ result = Context.get_physical_node_from_server("mock_server")
+
+ mock_get_ctx.assert_called_once()
+ self.assertIsNone(result)
+
+ @mock.patch.object(yaml_loader, 'read_yaml_file')
+ def test_read_pod_file(self, mock_read_yaml_file):
+ attrs = {'name': 'foo',
+ 'task_id': '12345678',
+ 'file': 'pod.yaml'
+ }
+
+ ctx_obj = DummyContextClass()
+ cfg = {"nodes": [
+ {
+ "name": "node1",
+ "role": "Controller",
+ "ip": "10.229.47.137",
+ "user": "root",
+ "key_filename": "/root/.yardstick_key"
+ },
+ {
+ "name": "node2",
+ "role": "Compute",
+ "ip": "10.229.47.139",
+ "user": "root",
+ "key_filename": "/root/.yardstick_key"
+ }
+ ]
+ }
+
+ mock_read_yaml_file.return_value = cfg
+ result = ctx_obj.read_pod_file(attrs)
+ self.assertEqual(result, cfg)
+
+ mock_read_yaml_file.side_effect = IOError(errno.EPERM, '')
+ with self.assertRaises(IOError):
+ ctx_obj.read_pod_file(attrs)
+
+ mock_read_yaml_file.side_effect = IOError(errno.ENOENT, '')
+ with self.assertRaises(IOError):
+ ctx_obj.read_pod_file(attrs)
+
+ file_path = os.path.join(YARDSTICK_ROOT_PATH, 'pod.yaml')
+ self.assertEqual(ctx_obj.file_path, file_path)
diff --git a/yardstick/tests/unit/benchmark/contexts/test_dummy.py b/yardstick/tests/unit/benchmark/contexts/test_dummy.py
new file mode 100644
index 000000000..33832375f
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/contexts/test_dummy.py
@@ -0,0 +1,86 @@
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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 unittest
+
+from yardstick.benchmark.contexts import base
+from yardstick.benchmark.contexts import dummy
+
+
+class DummyContextTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.attrs = {
+ 'name': 'foo',
+ 'task_id': '1234567890',
+ }
+ self.test_context = dummy.DummyContext()
+ self.addCleanup(self._delete_contexts)
+
+ @staticmethod
+ def _delete_contexts():
+ for context in base.Context.list:
+ context._delete_context()
+
+ def test___init__(self):
+ self.assertFalse(self.test_context._flags.no_setup)
+ self.assertFalse(self.test_context._flags.no_teardown)
+ self.assertIsNone(self.test_context._name)
+ self.assertIsNone(self.test_context._task_id)
+
+ def test_init(self):
+ self.test_context.init(self.attrs)
+ self.assertEqual(self.test_context._name, 'foo')
+ self.assertEqual(self.test_context._task_id, '1234567890')
+ self.assertFalse(self.test_context._flags.no_setup)
+ self.assertFalse(self.test_context._flags.no_teardown)
+
+ self.assertEqual(self.test_context.name, 'foo-12345678')
+ self.assertEqual(self.test_context.assigned_name, 'foo')
+
+ def test_init_flags_no_setup(self):
+ self.attrs['flags'] = {'no_setup': True, 'no_teardown': False}
+
+ self.test_context.init(self.attrs)
+
+ self.assertEqual(self.test_context._name, 'foo')
+ self.assertEqual(self.test_context._task_id, '1234567890')
+ self.assertTrue(self.test_context._flags.no_setup)
+ self.assertFalse(self.test_context._flags.no_teardown)
+
+ self.assertEqual(self.test_context.name, 'foo')
+ self.assertEqual(self.test_context.assigned_name, 'foo')
+
+ def test_init_flags_no_teardown(self):
+ self.attrs['flags'] = {'no_setup': False, 'no_teardown': True}
+
+ self.test_context.init(self.attrs)
+
+ self.assertFalse(self.test_context._flags.no_setup)
+ self.assertTrue(self.test_context._flags.no_teardown)
+
+ self.assertEqual(self.test_context.name, 'foo')
+ self.assertEqual(self.test_context.assigned_name, 'foo')
+
+ def test__get_server(self):
+ self.test_context.init(self.attrs)
+ self.test_context.deploy()
+
+ result = self.test_context._get_server(None)
+ self.assertEqual(result, None)
+
+ self.test_context.undeploy()
+
+ def test__get_physical_nodes(self):
+ result = self.test_context._get_physical_nodes()
+ self.assertIsNone(result)
+
+ def test__get_physical_node_for_server(self):
+ result = self.test_context._get_physical_node_for_server("fake")
+ self.assertIsNone(result)
diff --git a/yardstick/tests/unit/benchmark/contexts/test_heat.py b/yardstick/tests/unit/benchmark/contexts/test_heat.py
new file mode 100644
index 000000000..96946cded
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/contexts/test_heat.py
@@ -0,0 +1,893 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB 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 collections import OrderedDict
+import logging
+import os
+
+import mock
+import unittest
+import collections
+
+from yardstick.benchmark.contexts import base
+from yardstick.benchmark.contexts import heat
+from yardstick.benchmark.contexts import model
+from yardstick.common import constants as consts
+from yardstick.common import exceptions as y_exc
+from yardstick.common import openstack_utils
+from yardstick.common import yaml_loader
+from yardstick import ssh
+
+
+LOG = logging.getLogger(__name__)
+
+
+class HeatContextTestCase(unittest.TestCase):
+
+ HEAT_POD_SAMPLE = {
+ "nodes": [
+ {
+ "name": "node1",
+ "role": "Controller",
+ "ip": "10.229.47.137",
+ "user": "root",
+ "key_filename": "/root/.yardstick_key"
+ },
+ {
+ "name": "node2",
+ "role": "Compute",
+ "ip": "10.229.47.139",
+ "user": "root",
+ "key_filename": "/root/.yardstick_key"
+ }
+ ]
+ }
+
+ def __init__(self, *args, **kwargs):
+
+ super(HeatContextTestCase, self).__init__(*args, **kwargs)
+
+ def setUp(self):
+ self.test_context = heat.HeatContext()
+ self.addCleanup(self._remove_contexts)
+ self.mock_context = mock.Mock(spec=heat.HeatContext())
+
+ def _remove_contexts(self):
+ if self.test_context in self.test_context.list:
+ self.test_context._delete_context()
+
+ def test___init__(self):
+ self.assertIsNone(self.test_context._name)
+ self.assertIsNone(self.test_context._task_id)
+ self.assertFalse(self.test_context._flags.no_setup)
+ self.assertFalse(self.test_context._flags.no_teardown)
+ self.assertIsNone(self.test_context.stack)
+ self.assertEqual(self.test_context.networks, OrderedDict())
+ self.assertEqual(self.test_context.servers, [])
+ self.assertEqual(self.test_context.placement_groups, [])
+ self.assertEqual(self.test_context.server_groups, [])
+ self.assertIsNone(self.test_context.keypair_name)
+ self.assertIsNone(self.test_context.secgroup_name)
+ self.assertIsNone(self.test_context.security_group)
+ self.assertEqual(self.test_context._server_map, {})
+ self.assertIsNone(self.test_context._image)
+ self.assertIsNone(self.test_context._flavor)
+ self.assertIsNone(self.test_context._user)
+ self.assertIsNone(self.test_context.template_file)
+ self.assertIsNone(self.test_context.heat_parameters)
+ self.assertIsNone(self.test_context.key_filename)
+ self.assertTrue(self.test_context.yardstick_gen_key_file)
+
+ @mock.patch.object(yaml_loader, 'read_yaml_file')
+ @mock.patch('yardstick.benchmark.contexts.heat.PlacementGroup')
+ @mock.patch('yardstick.benchmark.contexts.heat.ServerGroup')
+ @mock.patch('yardstick.benchmark.contexts.heat.Network')
+ @mock.patch('yardstick.benchmark.contexts.heat.Server')
+ def test_init(self, mock_server, mock_network, mock_sg, mock_pg,
+ mock_read_yaml):
+
+ mock_read_yaml.return_value = self.HEAT_POD_SAMPLE
+ pgs = {'pgrp1': {'policy': 'availability'}}
+ sgs = {'servergroup1': {'policy': 'affinity'}}
+ networks = {'bar': {'cidr': '10.0.1.0/24'}}
+ servers = {'baz': {'floating_ip': True, 'placement': 'pgrp1'}}
+ attrs = {'name': 'foo',
+ 'file': 'pod.yaml',
+ 'task_id': '1234567890',
+ 'placement_groups': pgs,
+ 'server_groups': sgs,
+ 'networks': networks,
+ 'servers': servers}
+
+ with mock.patch.object(openstack_utils, 'get_shade_client'), \
+ mock.patch.object(openstack_utils, 'get_shade_operator_client'):
+ self.test_context.init(attrs)
+
+ self.assertFalse(self.test_context._flags.no_setup)
+ self.assertFalse(self.test_context._flags.no_teardown)
+ self.assertEqual(self.test_context._name, "foo")
+ self.assertEqual(self.test_context._task_id, '1234567890')
+ self.assertEqual(self.test_context.name, "foo-12345678")
+ self.assertEqual(self.test_context.keypair_name, "foo-12345678-key")
+ self.assertEqual(self.test_context.secgroup_name, "foo-12345678-secgroup")
+
+ mock_pg.assert_called_with('pgrp1', self.test_context,
+ pgs['pgrp1']['policy'])
+ mock_sg.assert_called_with('servergroup1', self.test_context,
+ sgs['servergroup1']['policy'])
+ self.assertEqual(len(self.test_context.placement_groups), 1)
+ self.assertEqual(len(self.test_context.server_groups), 1)
+
+ mock_network.assert_called_with(
+ 'bar', self.test_context, networks['bar'])
+ self.assertEqual(len(self.test_context.networks), 1)
+
+ mock_server.assert_called_with('baz', self.test_context,
+ servers['baz'])
+ self.assertEqual(len(self.test_context.servers), 1)
+
+ def test_init_no_name_or_task_id(self):
+ attrs = {}
+ self.assertRaises(KeyError, self.test_context.init, attrs)
+
+ def test_name(self):
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ self.assertEqual(self.test_context.name, 'foo-12345678')
+ self.assertEqual(self.test_context.assigned_name, 'foo')
+
+ def test_name_flags(self):
+ self.test_context._flags = base.Flags(
+ **{"no_setup": True, "no_teardown": True})
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+
+ self.assertEqual(self.test_context.name, 'foo')
+ self.assertEqual(self.test_context.assigned_name, 'foo')
+
+ def test_init_no_setup_no_teardown(self):
+
+ attrs = {'name': 'foo',
+ 'task_id': '1234567890',
+ 'placement_groups': {},
+ 'server_groups': {},
+ 'networks': {},
+ 'servers': {},
+ 'file': "pod.yaml",
+ 'flags': {
+ 'no_setup': True,
+ 'no_teardown': True,
+ },
+ }
+
+ with mock.patch.object(openstack_utils, 'get_shade_client'), \
+ mock.patch.object(openstack_utils, 'get_shade_operator_client'):
+ self.test_context.init(attrs)
+
+ self.assertTrue(self.test_context._flags.no_setup)
+ self.assertTrue(self.test_context._flags.no_teardown)
+
+ def test_init_key_filename(self):
+ attrs = {'name': 'foo',
+ 'file': 'pod.yaml',
+ 'task_id': '1234567890',
+ 'server_groups': {},
+ 'networks': {},
+ 'servers': {},
+ 'heat_template': "/root/clearwater.yaml",
+ 'key_filename': '/etc/yardstick/yardstick.pem'}
+
+ with mock.patch.object(openstack_utils, 'get_shade_client'), \
+ mock.patch.object(openstack_utils, 'get_shade_operator_client'):
+ self.test_context.init(attrs)
+
+ self.assertIsNotNone(self.test_context.key_filename)
+ self.assertFalse(self.test_context.yardstick_gen_key_file)
+
+ @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
+ def test__add_resources_to_template_no_servers(self, mock_template):
+ self.test_context._name = 'ctx'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ self.test_context.keypair_name = "ctx-key"
+ self.test_context.secgroup_name = "ctx-secgroup"
+ self.test_context.key_uuid = "2f2e4997-0a8e-4eb7-9fa4-f3f8fbbc393b"
+ netattrs = {'cidr': '10.0.0.0/24', 'provider': None,
+ 'external_network': 'ext_net'}
+
+ self.test_context.networks = OrderedDict(
+ {"mynet": model.Network("mynet", self.test_context,
+ netattrs)})
+
+ self.test_context._add_resources_to_template(mock_template)
+ mock_template.add_keypair.assert_called_with(
+ "ctx-key",
+ "ctx-12345678")
+ mock_template.add_security_group.assert_called_with("ctx-secgroup", None)
+ mock_template.add_network.assert_called_with(
+ "ctx-12345678-mynet", 'physnet1', None, None, None, None)
+ mock_template.add_router.assert_called_with(
+ "ctx-12345678-mynet-router",
+ netattrs["external_network"],
+ "ctx-12345678-mynet-subnet")
+ mock_template.add_router_interface.assert_called_with(
+ "ctx-12345678-mynet-router-if0",
+ "ctx-12345678-mynet-router",
+ "ctx-12345678-mynet-subnet")
+
+ @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
+ def test_attrs_get(self, *args):
+ image, flavor, user = expected_tuple = 'foo1', 'foo2', 'foo3'
+ self.assertNotEqual(self.test_context.image, image)
+ self.assertNotEqual(self.test_context.flavor, flavor)
+ self.assertNotEqual(self.test_context.user, user)
+ self.test_context._image = image
+ self.test_context._flavor = flavor
+ self.test_context._user = user
+ attr_tuple = self.test_context.image, self.test_context.flavor, self.test_context.user
+ self.assertEqual(attr_tuple, expected_tuple)
+
+ @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
+ def test_attrs_set_negative(self, *args):
+ with self.assertRaises(AttributeError):
+ self.test_context.image = 'foo'
+
+ with self.assertRaises(AttributeError):
+ self.test_context.flavor = 'foo'
+
+ with self.assertRaises(AttributeError):
+ self.test_context.user = 'foo'
+
+ def test__create_new_stack(self):
+ template = mock.Mock()
+ self.test_context._create_new_stack(template)
+ template.create.assert_called_once()
+
+ def test__create_new_stack_stack_create_failed(self):
+ template = mock.Mock()
+ template.create.side_effect = y_exc.HeatTemplateError
+
+ self.assertRaises(y_exc.HeatTemplateError,
+ self.test_context._create_new_stack,
+ template)
+
+ def test__create_new_stack_keyboard_interrupt(self):
+ template = mock.Mock()
+ template.create.side_effect = KeyboardInterrupt
+ self.assertRaises(y_exc.StackCreationInterrupt,
+ self.test_context._create_new_stack,
+ template)
+
+ @mock.patch.object(os.path, 'exists', return_value=True)
+ @mock.patch.object(heat.HeatContext, '_add_resources_to_template')
+ @mock.patch.object(heat.HeatContext, '_create_new_stack')
+ def test_deploy_stack_creation_failed(self, mock_create,
+ mock_resources_template, mock_path_exists):
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = 'foo-12345678'
+ mock_create.side_effect = y_exc.HeatTemplateError
+ self.assertRaises(y_exc.HeatTemplateError,
+ self.test_context.deploy)
+
+ mock_path_exists.assert_called()
+ mock_resources_template.assert_called_once()
+
+ @mock.patch.object(os.path, 'exists', return_value=False)
+ @mock.patch.object(ssh.SSH, 'gen_keys')
+ @mock.patch.object(heat, 'HeatTemplate')
+ def test_deploy(self, mock_template, mock_genkeys, mock_path_exists):
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ self.test_context.template_file = '/bar/baz/some-heat-file'
+ self.test_context.heat_parameters = {'image': 'cirros'}
+ self.test_context.get_neutron_info = mock.MagicMock()
+ self.test_context.deploy()
+
+ mock_template.assert_called_with(
+ 'foo-12345678', template_file='/bar/baz/some-heat-file',
+ heat_parameters={'image': 'cirros'},
+ os_cloud_config=self.test_context._flags.os_cloud_config)
+ self.assertIsNotNone(self.test_context.stack)
+ key_filename = ''.join(
+ [consts.YARDSTICK_ROOT_PATH,
+ 'yardstick/resources/files/yardstick_key-',
+ self.test_context._name_task_id])
+ mock_genkeys.assert_called_once_with(key_filename)
+ mock_path_exists.assert_any_call(key_filename)
+
+ @mock.patch.object(heat, 'HeatTemplate')
+ @mock.patch.object(os.path, 'exists', return_value=False)
+ @mock.patch.object(ssh.SSH, 'gen_keys')
+ @mock.patch.object(heat.HeatContext, '_retrieve_existing_stack')
+ @mock.patch.object(heat.HeatContext, '_create_new_stack')
+ def test_deploy_no_setup(self, mock_create_new_stack,
+ mock_retrieve_existing_stack, mock_genkeys, mock_path_exists,
+ *args):
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+ self.test_context.template_file = '/bar/baz/some-heat-file'
+ self.test_context.heat_parameters = {'image': 'cirros'}
+ self.test_context.get_neutron_info = mock.MagicMock()
+ self.test_context._flags.no_setup = True
+ self.test_context.deploy()
+
+ mock_create_new_stack.assert_not_called()
+ mock_retrieve_existing_stack.assert_called_with(self.test_context.name)
+ self.assertIsNotNone(self.test_context.stack)
+ key_filename = ''.join(
+ [consts.YARDSTICK_ROOT_PATH,
+ 'yardstick/resources/files/yardstick_key-',
+ self.test_context._name])
+ mock_genkeys.assert_called_once_with(key_filename)
+ mock_path_exists.assert_any_call(key_filename)
+
+ @mock.patch.object(heat, 'HeatTemplate')
+ @mock.patch.object(os.path, 'exists', return_value=False)
+ @mock.patch.object(ssh.SSH, 'gen_keys')
+ @mock.patch.object(heat.HeatContext, '_create_new_stack')
+ @mock.patch.object(heat.HeatContext, '_retrieve_existing_stack',
+ return_value=None)
+ def test_deploy_try_retrieve_context_does_not_exist(self,
+ mock_retrieve_stack, mock_create_new_stack, mock_genkeys,
+ mock_path_exists, *args):
+ self.test_context._name = 'demo'
+ self.test_context._task_id = '1234567890'
+ self.test_context._flags.no_setup = True
+ self.test_context.template_file = '/bar/baz/some-heat-file'
+ self.test_context.get_neutron_info = mock.MagicMock()
+ self.test_context.deploy()
+
+ mock_retrieve_stack.assert_called_once_with(self.test_context._name)
+ mock_create_new_stack.assert_called()
+ key_filename = ''.join(
+ [consts.YARDSTICK_ROOT_PATH,
+ 'yardstick/resources/files/yardstick_key-',
+ self.test_context._name])
+ mock_genkeys.assert_called_once_with(key_filename)
+ mock_path_exists.assert_any_call(key_filename)
+
+ @mock.patch.object(heat, 'HeatTemplate', return_value='heat_template')
+ @mock.patch.object(heat.HeatContext, '_add_resources_to_template')
+ @mock.patch.object(os.path, 'exists', return_value=False)
+ @mock.patch.object(ssh.SSH, 'gen_keys')
+ def test_deploy_ssh_key_before_adding_resources(self, mock_genkeys,
+ mock_path_exists, mock_add_resources, *args):
+ mock_manager = mock.Mock()
+ mock_manager.attach_mock(mock_add_resources,
+ '_add_resources_to_template')
+ mock_manager.attach_mock(mock_genkeys, 'gen_keys')
+ mock_manager.reset_mock()
+ self.test_context._name_task_id = 'demo-12345678'
+ self.test_context.get_neutron_info = mock.Mock()
+ with mock.patch.object(self.test_context, '_create_new_stack') as \
+ mock_create_stack, \
+ mock.patch.object(self.test_context, 'get_neutron_info') as \
+ mock_neutron_info:
+ self.test_context.deploy()
+
+ mock_neutron_info.assert_called_once()
+ mock_create_stack.assert_called_once()
+ key_filename = ''.join(
+ [consts.YARDSTICK_ROOT_PATH,
+ 'yardstick/resources/files/yardstick_key-',
+ self.test_context._name_task_id])
+ mock_genkeys.assert_called_once_with(key_filename)
+ mock_path_exists.assert_any_call(key_filename)
+
+ mock_call_gen_keys = mock.call.gen_keys(key_filename)
+ mock_call_add_resources = (
+ mock.call._add_resources_to_template('heat_template'))
+ self.assertTrue(mock_manager.mock_calls.index(mock_call_gen_keys) <
+ mock_manager.mock_calls.index(mock_call_add_resources))
+
+ @mock.patch.object(heat, 'HeatTemplate')
+ @mock.patch.object(ssh.SSH, 'gen_keys')
+ @mock.patch.object(heat.HeatContext, '_create_new_stack')
+ def test_deploy_with_key_filename_provided(self, mock_create_new_stack,
+ mock_gen_keys, *args):
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ self.test_context.template_file = '/bar/baz/some-heat-file'
+ self.test_context.heat_parameters = {'image': 'cirros'}
+ self.test_context.yardstick_gen_key_file = False
+ self.test_context.key_filename = '/etc/yardstick/yardstick.pem'
+ self.test_context.get_neutron_info = mock.MagicMock()
+ self.test_context.deploy()
+
+ mock_create_new_stack.assert_called()
+ mock_gen_keys.assert_not_called()
+
+ def test_check_for_context(self):
+ pass
+ # check that the context exists
+
+ def test_add_server_port(self):
+ network1 = mock.MagicMock()
+ network2 = mock.MagicMock()
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ self.test_context.stack = mock.MagicMock()
+ self.test_context.networks = {
+ 'a': network1,
+ 'c': network2,
+ }
+ self.test_context.stack.outputs = {
+ u'b': u'10.20.30.45',
+ u'b-subnet_id': 1,
+ u'foo-12345678-a-subnet-cidr': u'10.20.0.0/15',
+ u'foo-12345678-a-subnet-gateway_ip': u'10.20.30.1',
+ u'b-mac_address': u'00:01',
+ u'b-device_id': u'dev21',
+ u'b-network_id': u'net789',
+ u'd': u'40.30.20.15',
+ u'd-subnet_id': 2,
+ u'foo-12345678-c-subnet-cidr': u'40.30.0.0/18',
+ u'foo-12345678-c-subnet-gateway_ip': u'40.30.20.254',
+ u'd-mac_address': u'00:10',
+ u'd-device_id': u'dev43',
+ u'd-network_id': u'net987',
+ u'e': u'40.30.20.15',
+ u'e-subnet_id': 2,
+ u'e-mac_address': u'00:10',
+ u'e-device_id': u'dev43',
+ u'e-network_id': u'net987',
+ }
+ server = mock.MagicMock()
+ server.private_ip = None
+ server.ports = OrderedDict([
+ ('a', [{'stack_name': 'b', 'port': 'port_a'}]),
+ ('c', [{'stack_name': 'd', 'port': 'port_c'},
+ {'stack_name': 'e', 'port': 'port_f'}]),
+ ])
+
+ expected = {
+ "private_ip": '10.20.30.45',
+ "subnet_id": 1,
+ "subnet_cidr": '10.20.0.0/15',
+ "network": '10.20.0.0',
+ "netmask": '255.254.0.0',
+ "name": "port_a",
+ "gateway_ip": '10.20.30.1',
+ "mac_address": '00:01',
+ "device_id": 'dev21',
+ "network_id": 'net789',
+ "network_name": 'a',
+ "local_mac": '00:01',
+ "local_ip": '10.20.30.45',
+ }
+ self.test_context.add_server_port(server)
+ self.assertEqual(server.private_ip, '10.20.30.45')
+ self.assertEqual(len(server.interfaces), 3)
+ self.assertDictEqual(server.interfaces['port_a'], expected)
+
+ @mock.patch('yardstick.benchmark.contexts.heat.os')
+ @mock.patch.object(heat.HeatContext, '_delete_key_file')
+ @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
+ def test_undeploy(self, mock_template, mock_delete_key, *args):
+ self.test_context.stack = mock_template
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ # mock_os.path.exists.return_value = True
+ self.test_context.key_filename = 'foo/bar/foobar'
+ self.test_context.undeploy()
+ mock_delete_key.assert_called()
+ mock_template.delete.assert_called_once()
+
+ @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
+ def test_undeploy_no_teardown(self, mock_template):
+ self.test_context.stack = mock_template
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+ self.test_context._flags.no_teardown = True
+ self.test_context.undeploy()
+
+ mock_template.delete.assert_not_called()
+
+ @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
+ @mock.patch('yardstick.benchmark.contexts.heat.os')
+ def test_undeploy_key_filename(self, mock_os, mock_template):
+ self.test_context.stack = mock_template
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id)
+ mock_os.path.exists.return_value = True
+ self.test_context.key_filename = 'foo/bar/foobar'
+ self.assertIsNone(self.test_context.undeploy())
+
+ @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
+ def test__get_server_found_dict(self, *args):
+ """
+ Use HeatContext._get_server to get a server that matches
+ based on a dictionary input.
+ """
+ foo2_server = mock.Mock()
+ foo2_server.key_filename = None
+ foo2_server.private_ip = '10.0.0.2'
+ foo2_server.public_ip = '127.0.0.2'
+ foo2_server.context.user = 'oof'
+
+ baz3_server = mock.Mock()
+ baz3_server.key_filename = None
+ baz3_server.private_ip = '10.0.0.3'
+ baz3_server.public_ip = '127.0.0.3'
+ baz3_server.context.user = 'zab'
+
+ self.test_context._name = 'bar'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ self.test_context._user = 'bot'
+ self.test_context.stack = mock.Mock()
+ self.test_context.stack.outputs = {
+ 'private_ip': '10.0.0.1',
+ 'public_ip': '127.0.0.1',
+ }
+ self.test_context._server_map = {
+ 'baz3': baz3_server,
+ 'foo2': foo2_server,
+ }
+
+ attr_name = {
+ 'name': 'foo.bar-12345678',
+ 'private_ip_attr': 'private_ip',
+ 'public_ip_attr': 'public_ip',
+ }
+ self.test_context.key_uuid = 'foo-42'
+ result = self.test_context._get_server(attr_name)
+ self.assertEqual(result['user'], 'bot')
+ self.assertEqual(result['ip'], '127.0.0.1')
+ self.assertEqual(result['private_ip'], '10.0.0.1')
+
+ @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
+ def test__get_server_found_dict_no_attrs(self, *args):
+ """
+ Use HeatContext._get_server to get a server that matches
+ based on a dictionary input.
+ """
+ foo2_server = mock.Mock()
+ foo2_server.private_ip = '10.0.0.2'
+ foo2_server.public_ip = '127.0.0.2'
+ foo2_server.context.user = 'oof'
+
+ baz3_server = mock.Mock()
+ baz3_server.private_ip = '10.0.0.3'
+ baz3_server.public_ip = '127.0.0.3'
+ baz3_server.context.user = 'zab'
+
+ self.test_context._name = 'bar'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ self.test_context._user = 'bot'
+ self.test_context.stack = mock.Mock()
+ self.test_context.stack.outputs = {
+ 'private_ip': '10.0.0.1',
+ 'public_ip': '127.0.0.1',
+ }
+ self.test_context._server_map = {
+ 'baz3': baz3_server,
+ 'foo2': foo2_server,
+ }
+
+ attr_name = {
+ 'name': 'foo.bar-12345678',
+ }
+
+ self.test_context.key_uuid = 'foo-42'
+ result = self.test_context._get_server(attr_name)
+ self.assertEqual(result['user'], 'bot')
+ # no private ip attr mapping in the map results in None value in the result
+ self.assertIsNone(result['private_ip'])
+ # no public ip attr mapping in the map results in no value in the result
+ self.assertNotIn('ip', result)
+
+ @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
+ def test__get_server_found_not_dict(self, *args):
+ """
+ Use HeatContext._get_server to get a server that matches
+ based on a non-dictionary input
+ """
+ foo2_server = mock.Mock()
+ foo2_server.private_ip = '10.0.0.2'
+ foo2_server.public_ip = '127.0.0.2'
+ foo2_server.context.user = 'oof'
+
+ baz3_server = mock.Mock()
+ baz3_server.private_ip = '10.0.0.3'
+ baz3_server.public_ip = None
+ baz3_server.context.user = 'zab'
+
+ self.test_context._name = 'bar1'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = 'bar1-12345678'
+ self.test_context.stack = mock.Mock()
+ self.test_context.stack.outputs = {
+ 'private_ip': '10.0.0.1',
+ 'public_ip': '127.0.0.1',
+ }
+ self.test_context.generate_routing_table = mock.MagicMock(return_value=[])
+
+ self.test_context._server_map = {
+ 'baz3': baz3_server,
+ 'foo2': foo2_server,
+ }
+
+ attr_name = 'baz3'
+ result = self.test_context._get_server(attr_name)
+ self.assertEqual(result['user'], 'zab')
+ self.assertEqual(result['private_ip'], '10.0.0.3')
+ # no public_ip on the server results in no value in the result
+ self.assertNotIn('public_ip', result)
+
+ @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
+ def test__get_server_none_found_not_dict(self, *args):
+ """
+ Use HeatContext._get_server to not get a server due to
+ None value associated with the match to a non-dictionary
+ input
+ """
+ foo2_server = mock.Mock()
+ foo2_server.private_ip = '10.0.0.2'
+ foo2_server.public_ip = '127.0.0.2'
+ foo2_server.context.user = 'oof'
+
+ baz3_server = mock.Mock()
+ baz3_server.private_ip = '10.0.0.3'
+ baz3_server.public_ip = None
+ baz3_server.context.user = 'zab'
+
+ self.test_context._name = 'bar1'
+ self.test_context.stack = mock.Mock()
+ self.test_context.stack.outputs = {
+ 'private_ip': '10.0.0.1',
+ 'public_ip': '127.0.0.1',
+ }
+ self.test_context._server_map = {
+ 'baz3': baz3_server,
+ 'foo2': foo2_server,
+ 'wow4': None,
+ }
+
+ self.test_context.key_uuid = 'foo-42'
+ attr_name = 'wow4'
+ result = self.test_context._get_server(attr_name)
+ self.assertIsNone(result)
+
+ @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
+ def test__get_server_not_found_dict(self, *args):
+ """
+ Use HeatContext._get_server to not get a server for lack
+ of a match to a dictionary input
+ """
+ foo2_server = mock.Mock()
+ foo2_server.private_ip = '10.0.0.2'
+ foo2_server.public_ip = '127.0.0.2'
+ foo2_server.context.user = 'oof'
+
+ baz3_server = mock.Mock()
+ baz3_server.private_ip = '10.0.0.3'
+ baz3_server.public_ip = None
+ baz3_server.context.user = 'zab'
+
+ self.test_context._name = 'bar1'
+ self.test_context._task_id = '1235467890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ self.test_context.stack = mock.Mock()
+ self.test_context.stack.outputs = {
+ 'private_ip': '10.0.0.1',
+ 'public_ip': '127.0.0.1',
+ }
+ self.test_context._server_map = {
+ 'baz3': baz3_server,
+ 'foo2': foo2_server,
+ }
+
+ self.test_context.key_uuid = 'foo-42'
+ attr_name = {
+ 'name': 'foo.wow4',
+ 'private_ip_attr': 'private_ip',
+ 'public_ip_attr': 'public_ip',
+ }
+ result = self.test_context._get_server(attr_name)
+ self.assertIsNone(result)
+
+ @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
+ def test__get_server_not_found_not_dict(self, *args):
+ """
+ Use HeatContext._get_server to not get a server for lack
+ of a match to a non-dictionary input
+ """
+ foo2_server = mock.Mock()
+ foo2_server.private_ip = '10.0.0.2'
+ foo2_server.public_ip = '127.0.0.2'
+ foo2_server.context.user = 'oof'
+
+ baz3_server = mock.Mock()
+ baz3_server.private_ip = '10.0.0.3'
+ baz3_server.public_ip = None
+ baz3_server.context.user = 'zab'
+
+ self.mock_context._name = 'bar1'
+ self.test_context.stack = mock.Mock()
+ self.mock_context.stack.outputs = {
+ 'private_ip': '10.0.0.1',
+ 'public_ip': '127.0.0.1',
+ }
+ self.mock_context._server_map = {
+ 'baz3': baz3_server,
+ 'foo2': foo2_server,
+ }
+
+ self.test_context.key_uuid = 'foo-42'
+ attr_name = 'foo.wow4'
+ result = self.test_context._get_server(attr_name)
+ self.assertIsNone(result)
+
+ @mock.patch("yardstick.benchmark.contexts.heat.pkg_resources")
+ def test__get_server_found_dict_found_interfaces_dict(self, *args):
+ """
+ Use HeatContext._get_server to get a server that matches
+ based on a dictionary input.
+ """
+ self.test_context._name = 'bar'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ self.test_context._user = 'bot'
+ self.test_context.stack = mock.Mock()
+ self.test_context.stack.outputs = {
+ 'private_ip': '10.0.0.1',
+ 'public_ip': '127.0.0.1',
+ 'local_mac_addr': '64:00:6a:18:0f:d6',
+ 'private_netmask': '255.255.255.0',
+ 'private_net_name': 'private_network',
+ 'private_net_gateway': '127.0.0.254'
+ }
+
+ attr_name = {
+ 'name': 'foo.bar-12345678',
+ 'private_ip_attr': 'private_ip',
+ 'public_ip_attr': 'public_ip',
+ 'interfaces': {
+ 'data_net': {
+ 'local_ip': 'private_ip',
+ 'local_mac': 'local_mac_addr',
+ 'netmask': 'private_netmask',
+ 'network': 'private_net_name',
+ 'gateway_ip': 'private_net_gateway'
+ }
+ }
+ }
+ self.test_context.key_uuid = 'foo-42'
+ result = self.test_context._get_server(attr_name)
+ self.assertIsInstance(result['interfaces'], collections.Mapping)
+ for key in attr_name.get("interfaces").keys():
+ self.assertEqual(result['interfaces'][key]['local_ip'], '10.0.0.1')
+ self.assertEqual(result['interfaces'][key]['local_mac'], '64:00:6a:18:0f:d6')
+ self.assertEqual(result['interfaces'][key]['netmask'], '255.255.255.0')
+ self.assertEqual(result['interfaces'][key]['gateway_ip'], '127.0.0.254')
+
+ # TODO: Split this into more granular tests
+ def test__get_network(self):
+ network1 = mock.MagicMock()
+ network1.name = 'net_1'
+ network1.vld_id = 'vld111'
+ network1.segmentation_id = 'seg54'
+ network1.network_type = 'type_a'
+ network1.physical_network = 'phys'
+
+ network2 = mock.MagicMock()
+ network2.name = 'net_2'
+ network2.segmentation_id = 'seg45'
+ network2.network_type = 'type_b'
+ network2.physical_network = 'virt'
+
+ self.test_context.networks = {
+ 'a': network1,
+ 'b': network2,
+ }
+
+ attr_name = None
+ self.assertIsNone(self.test_context._get_network(attr_name))
+
+ attr_name = {}
+ self.assertIsNone(self.test_context._get_network(attr_name))
+
+ attr_name = {'network_type': 'nosuch'}
+ self.assertIsNone(self.test_context._get_network(attr_name))
+
+ attr_name = 'vld777'
+ self.assertIsNone(self.test_context._get_network(attr_name))
+
+ attr_name = {'segmentation_id': 'seg45'}
+ expected = {
+ "name": 'net_2',
+ "segmentation_id": 'seg45',
+ "network_type": 'type_b',
+ "physical_network": 'virt',
+ }
+ result = self.test_context._get_network(attr_name)
+ self.assertDictEqual(result, expected)
+
+ attr_name = 'a'
+ expected = {
+ "name": 'net_1',
+ "segmentation_id": 'seg54',
+ "network_type": 'type_a',
+ "physical_network": 'phys',
+ }
+ result = self.test_context._get_network(attr_name)
+ self.assertDictEqual(result, expected)
+
+ def _get_file_abspath(self, filename):
+ curr_path = os.path.dirname(os.path.abspath(__file__))
+ file_path = os.path.join(curr_path, filename)
+ return file_path
+
+ def test__get_physical_nodes(self):
+ self.test_context.nodes = {}
+ nodes = self.test_context._get_physical_nodes()
+ self.assertEquals(nodes, {})
+
+ @mock.patch.object(yaml_loader, 'read_yaml_file')
+ def test__get_physical_node_for_server(self, mock_read_yaml):
+ attrs = {'name': 'foo',
+ 'task_id': '12345678',
+ 'file': "pod.yaml",
+ 'servers': {'vnf': {}},
+ 'networks': {'mgmt': {'cidr': '10.0.1.0/24'}}
+ }
+
+ with mock.patch.object(openstack_utils, 'get_shade_client'), \
+ mock.patch.object(openstack_utils, 'get_shade_operator_client'):
+ mock_read_yaml.return_value = self.HEAT_POD_SAMPLE
+ self.test_context.init(attrs)
+
+ with mock.patch('yardstick.common.openstack_utils.get_server') as mock_get_server:
+ mock_get_server.return_value = {'vnf': {}}
+
+ # When server is not from this context
+ result = self.test_context._get_physical_node_for_server('node1.foo-context')
+ self.assertIsNone(result)
+
+ # When node_name is not from this context
+ result = self.test_context._get_physical_node_for_server('fake.foo-12345678')
+ self.assertIsNone(result)
+
+ mock_munch = mock.Mock()
+ mock_munch.toDict = mock.Mock(return_value={
+ 'OS-EXT-SRV-ATTR:hypervisor_hostname': 'hypervisor_hostname'
+ })
+ mock_get_server.return_value = mock_munch
+
+ hypervisor = mock.Mock()
+ hypervisor.hypervisor_hostname = 'hypervisor_hostname'
+ hypervisor.host_ip = '10.229.47.137'
+
+ self.test_context.operator_client.list_hypervisors = mock.Mock(
+ return_value=[hypervisor])
+
+ mock_get_server.return_value = mock_munch
+
+ result = self.test_context._get_physical_node_for_server('vnf.foo-12345678')
+ self.assertEqual(result, 'node1.foo')
diff --git a/yardstick/tests/unit/benchmark/contexts/test_kubernetes.py b/yardstick/tests/unit/benchmark/contexts/test_kubernetes.py
new file mode 100644
index 000000000..b526e7cc7
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/contexts/test_kubernetes.py
@@ -0,0 +1,273 @@
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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 collections
+import time
+
+import mock
+import unittest
+
+from yardstick.benchmark import contexts
+from yardstick.benchmark.contexts import base
+from yardstick.benchmark.contexts import kubernetes
+from yardstick.common import constants
+from yardstick.common import exceptions
+from yardstick.common import kubernetes_utils as k8s_utils
+from yardstick.orchestrator import kubernetes as orchestrator_kubernetes
+
+
+CONTEXT_CFG = {
+ 'type': contexts.CONTEXT_KUBERNETES,
+ 'name': 'k8s',
+ 'task_id': '1234567890',
+ 'servers': {
+ 'host': {
+ 'image': 'openretriever/yardstick',
+ 'command': '/bin/bash',
+ 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; '
+ 'service ssh restart;while true ; do sleep 10000; done']
+ },
+ 'target': {
+ 'image': 'openretriever/yardstick',
+ 'command': '/bin/bash',
+ 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; '
+ 'service ssh restart;while true ; do sleep 10000; done']
+ }
+ },
+ 'networks': {
+ 'flannel': {
+ 'args': 'flannel_args',
+ 'plugin': 'flannel'
+ },
+ 'sriov01': {
+ 'args': 'sriov_args',
+ 'plugin': 'sriov'
+ },
+ }
+}
+
+
+class NodePort(object):
+ def __init__(self):
+ self.node_port = 30000
+ self.port = constants.SSH_PORT
+ self.name = 'port_name'
+ self.protocol = 'TCP'
+ self.target_port = constants.SSH_PORT
+
+
+class Service(object):
+ def __init__(self):
+ self.ports = [NodePort()]
+
+
+class Status(object):
+ def __init__(self):
+ self.pod_ip = '172.16.10.131'
+
+
+class Pod(object):
+ def __init__(self):
+ self.status = Status()
+
+
+class KubernetesTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.k8s_context = kubernetes.KubernetesContext()
+ self.addCleanup(self._remove_contexts)
+ self.k8s_context.init(CONTEXT_CFG)
+
+ @staticmethod
+ def _remove_contexts():
+ for context in base.Context.list:
+ context._delete_context()
+ base.Context.list = []
+
+ @mock.patch.object(kubernetes.KubernetesContext, '_delete_services')
+ @mock.patch.object(kubernetes.KubernetesContext, '_delete_ssh_key')
+ @mock.patch.object(kubernetes.KubernetesContext, '_delete_rcs')
+ @mock.patch.object(kubernetes.KubernetesContext, '_delete_pods')
+ @mock.patch.object(kubernetes.KubernetesContext, '_delete_networks')
+ @mock.patch.object(kubernetes.KubernetesContext, '_delete_crd')
+ def test_undeploy(self, mock_delete_pods, mock_delete_rcs,
+ mock_delete_ssh, mock_delete_services,
+ mock_delete_networks, mock_delete_crd):
+
+ self.k8s_context.undeploy()
+ mock_delete_ssh.assert_called_once()
+ mock_delete_rcs.assert_called_once()
+ mock_delete_pods.assert_called_once()
+ mock_delete_services.assert_called_once()
+ mock_delete_networks.assert_called_once()
+ mock_delete_crd.assert_called_once()
+
+ @mock.patch.object(kubernetes.KubernetesContext, '_create_services')
+ @mock.patch.object(kubernetes.KubernetesContext, '_wait_until_running')
+ @mock.patch.object(orchestrator_kubernetes.KubernetesTemplate,
+ 'get_rc_pods')
+ @mock.patch.object(kubernetes.KubernetesContext, '_create_rcs')
+ @mock.patch.object(kubernetes.KubernetesContext, '_set_ssh_key')
+ @mock.patch.object(kubernetes.KubernetesContext, '_create_networks')
+ @mock.patch.object(kubernetes.KubernetesContext, '_create_crd')
+ def test_deploy(self, mock_set_ssh_key, mock_create_rcs, mock_get_rc_pods,
+ mock_wait_until_running, mock_create_services,
+ mock_create_networks, mock_create_crd):
+
+ with mock.patch.object(time, 'sleep'):
+ self.k8s_context.deploy()
+ mock_set_ssh_key.assert_called_once()
+ mock_create_rcs.assert_called_once()
+ mock_create_services.assert_called_once()
+ mock_get_rc_pods.assert_called_once()
+ mock_wait_until_running.assert_called_once()
+ mock_create_networks.assert_called_once()
+ mock_create_crd.assert_called_once()
+
+ @mock.patch.object(kubernetes, 'paramiko', **{"resource_filename.return_value": ""})
+ @mock.patch.object(kubernetes, 'pkg_resources', **{"resource_filename.return_value": ""})
+ @mock.patch.object(kubernetes, 'utils')
+ @mock.patch.object(kubernetes, 'open', create=True)
+ @mock.patch.object(k8s_utils, 'delete_config_map')
+ @mock.patch.object(k8s_utils, 'create_config_map')
+ def test_ssh_key(self, mock_create, mock_delete, *args):
+ self.k8s_context._set_ssh_key()
+ self.k8s_context._delete_ssh_key()
+
+ mock_create.assert_called_once()
+ mock_delete.assert_called_once()
+
+ @mock.patch.object(k8s_utils, 'read_pod_status')
+ def test_wait_until_running(self, mock_read_pod_status):
+
+ self.k8s_context.template.pods = ['server']
+ mock_read_pod_status.return_value = 'Running'
+ self.k8s_context._wait_until_running()
+
+ @mock.patch.object(k8s_utils, 'get_pod_by_name')
+ @mock.patch.object(kubernetes.KubernetesContext, '_get_node_ip')
+ def test_get_server(self, mock_get_node_ip, mock_get_pod_by_name):
+ mock_get_pod_by_name.return_value = Pod()
+ mock_get_node_ip.return_value = '172.16.10.131'
+ with mock.patch.object(self.k8s_context, '_get_service_ports') as \
+ mock_get_sports:
+ mock_get_sports.return_value = [
+ {'port': constants.SSH_PORT, 'node_port': 30000}]
+ server = self.k8s_context._get_server('server_name')
+ self.assertEqual('server_name', server['name'])
+ self.assertEqual(30000, server['ssh_port'])
+
+ @mock.patch.object(kubernetes.KubernetesContext, '_create_rc')
+ def test_create_rcs(self, mock_create_rc):
+ self.k8s_context._create_rcs()
+ mock_create_rc.assert_called()
+
+ @mock.patch.object(k8s_utils, 'create_replication_controller')
+ def test_create_rc(self, mock_create_replication_controller):
+ self.k8s_context._create_rc({})
+ mock_create_replication_controller.assert_called_once()
+
+ @mock.patch.object(kubernetes.KubernetesContext, '_delete_rc')
+ def test_delete_rcs(self, mock_delete_rc):
+ self.k8s_context._delete_rcs()
+ mock_delete_rc.assert_called()
+
+ @mock.patch.object(k8s_utils, 'delete_replication_controller')
+ def test_delete_rc(self, mock_delete_replication_controller):
+ self.k8s_context._delete_rc({})
+ mock_delete_replication_controller.assert_called_once()
+
+ @mock.patch.object(k8s_utils, 'get_node_list')
+ def test_get_node_ip(self, mock_get_node_list):
+ self.k8s_context._get_node_ip()
+ mock_get_node_list.assert_called_once()
+
+ @mock.patch.object(orchestrator_kubernetes.ServiceNodePortObject, 'create')
+ def test_create_services(self, mock_create):
+ self.k8s_context._create_services()
+ mock_create.assert_called()
+
+ @mock.patch.object(orchestrator_kubernetes.ServiceNodePortObject, 'delete')
+ def test_delete_services(self, mock_delete):
+ self.k8s_context._delete_services()
+ mock_delete.assert_called()
+
+ def test_init(self):
+ self.k8s_context._delete_context()
+ with mock.patch.object(orchestrator_kubernetes, 'KubernetesTemplate',
+ return_value='fake_template') as mock_k8stemplate:
+ self.k8s_context = kubernetes.KubernetesContext()
+ self.k8s_context.init(CONTEXT_CFG)
+ mock_k8stemplate.assert_called_once_with(self.k8s_context.name,
+ CONTEXT_CFG)
+ self.assertEqual('fake_template', self.k8s_context.template)
+ self.assertEqual(2, len(self.k8s_context._networks))
+ self.assertIn('flannel', self.k8s_context._networks.keys())
+ self.assertIn('sriov01', self.k8s_context._networks.keys())
+
+ def test__get_physical_nodes(self):
+ result = self.k8s_context._get_physical_nodes()
+ self.assertIsNone(result)
+
+ def test__get_physical_node_for_server(self):
+ result = self.k8s_context._get_physical_node_for_server("fake")
+ self.assertIsNone(result)
+
+ def test__get_network(self):
+ networks = collections.OrderedDict([('n1', 'data1'), ('n2', 'data2')])
+ self.k8s_context._networks = networks
+ self.assertEqual({'name': 'n1'}, self.k8s_context._get_network('n1'))
+ self.assertEqual({'name': 'n2'}, self.k8s_context._get_network('n2'))
+ self.assertIsNone(self.k8s_context._get_network('n3'))
+
+ @mock.patch.object(orchestrator_kubernetes.KubernetesTemplate,
+ 'get_rc_by_name')
+ def test__get_interfaces(self, mock_get_rc):
+ rc = orchestrator_kubernetes.ReplicationControllerObject('rc_name')
+ rc._networks = ['net1', 'net2']
+ mock_get_rc.return_value = rc
+ expected = {'net1': {'network_name': 'net1',
+ 'local_mac': None,
+ 'local_ip': None},
+ 'net2': {'network_name': 'net2',
+ 'local_mac': None,
+ 'local_ip': None}}
+ self.assertEqual(expected, self.k8s_context._get_interfaces('rc_name'))
+
+ @mock.patch.object(orchestrator_kubernetes.KubernetesTemplate,
+ 'get_rc_by_name')
+ def test__get_interfaces_no_networks(self, mock_get_rc):
+ rc = orchestrator_kubernetes.ReplicationControllerObject('rc_name')
+ mock_get_rc.return_value = rc
+ self.assertEqual({}, self.k8s_context._get_interfaces('rc_name'))
+
+ @mock.patch.object(orchestrator_kubernetes.KubernetesTemplate,
+ 'get_rc_by_name', return_value=None)
+ def test__get_interfaces_no_rc(self, *args):
+ self.assertEqual({}, self.k8s_context._get_interfaces('rc_name'))
+
+ @mock.patch.object(k8s_utils, 'get_service_by_name',
+ return_value=Service())
+ def test__get_service_ports(self, mock_get_service_by_name):
+ name = 'rc_name'
+ service_ports = self.k8s_context._get_service_ports(name)
+ mock_get_service_by_name.assert_called_once_with(name + '-service')
+ expected = {'node_port': 30000,
+ 'port': constants.SSH_PORT,
+ 'name': 'port_name',
+ 'protocol': 'TCP',
+ 'target_port': constants.SSH_PORT}
+ self.assertEqual(expected, service_ports[0])
+
+ @mock.patch.object(k8s_utils, 'get_service_by_name',
+ return_value=None)
+ def test__get_service_ports_exception(self, *args):
+ name = 'rc_name'
+ with self.assertRaises(exceptions.KubernetesServiceObjectNotDefined):
+ self.k8s_context._get_service_ports(name)
diff --git a/tests/unit/benchmark/contexts/test_model.py b/yardstick/tests/unit/benchmark/contexts/test_model.py
index 53b035b82..20cc00b4e 100644
--- a/tests/unit/benchmark/contexts/test_model.py
+++ b/yardstick/tests/unit/benchmark/contexts/test_model.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
@@ -155,7 +153,7 @@ class NetworkTestCase(unittest.TestCase):
def test_find_external_network(self):
mock_network = mock.Mock()
- mock_network.router = mock.Mock()
+ mock_network.router = mock.Mock() #pylint ignore assignment-from-none
mock_network.router.external_gateway_info = 'ext_net'
model.Network.list = [mock_network]
@@ -241,6 +239,7 @@ class ServerTestCase(unittest.TestCase):
mock_network.vnic_type = 'normal'
mock_network.subnet_stack_name = 'some-network-stack-subnet'
mock_network.provider = 'sriov'
+ mock_network.net_flags = {}
mock_network.external_network = 'ext_net'
mock_network.router = model.Router('some-router', 'some-network', self.mock_context,
'ext_net')
@@ -250,9 +249,7 @@ class ServerTestCase(unittest.TestCase):
mock_template.add_port.assert_called_with(
'some-server-some-network-port',
- mock_network.stack_name,
- mock_network.subnet_stack_name,
- mock_network.vnic_type,
+ mock_network,
sec_group_id=self.mock_context.secgroup_name,
provider=mock_network.provider,
allowed_address_pairs=mock_network.allowed_address_pairs)
@@ -513,6 +510,7 @@ class ServerTestCase(unittest.TestCase):
mock_network = mock.Mock()
mock_network.allowed_address_pairs = ["1", "2"]
mock_network.vnic_type = 'normal'
+ mock_network.net_flags = {}
mock_network.configure_mock(name='some-network', stack_name='some-network-stack',
subnet_stack_name='some-network-stack-subnet',
provider='some-provider')
@@ -522,9 +520,7 @@ class ServerTestCase(unittest.TestCase):
mock_template.add_port.assert_called_with(
'ServerFlavor-2-some-network-port',
- mock_network.stack_name,
- mock_network.subnet_stack_name,
- mock_network.vnic_type,
+ mock_network,
provider=mock_network.provider,
sec_group_id=self.mock_context.secgroup_name,
allowed_address_pairs=mock_network.allowed_address_pairs)
@@ -556,6 +552,7 @@ class ServerTestCase(unittest.TestCase):
mock_network.name = 'some-network'
mock_network.stack_name = 'some-network-stack'
mock_network.subnet_stack_name = 'some-network-stack-subnet'
+ mock_network.net_flags = {}
test_server._add_instance(mock_template, 'ServerFlavor-3',
[mock_network], 'hints')
diff --git a/tests/unit/benchmark/contexts/test_node.py b/yardstick/tests/unit/benchmark/contexts/test_node.py
index a2e2f7b9a..da16074d9 100644
--- a/tests/unit/benchmark/contexts/test_node.py
+++ b/yardstick/tests/unit/benchmark/contexts/test_node.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015-2017 Huawei Technologies Co.,Ltd and others.
#
@@ -9,16 +7,17 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Unittest for yardstick.benchmark.contexts.node
-
-from __future__ import absolute_import
import os
-import unittest
import errno
+
import mock
+import unittest
-from yardstick.common import constants as consts
+from yardstick.benchmark.contexts import base
from yardstick.benchmark.contexts import node
+from yardstick.common import constants as consts
+from yardstick.common import exceptions
+from yardstick.common import yaml_loader
class NodeContextTestCase(unittest.TestCase):
@@ -30,7 +29,19 @@ class NodeContextTestCase(unittest.TestCase):
def setUp(self):
self.test_context = node.NodeContext()
+ self.addCleanup(self._remove_contexts)
self.os_path_join = os.path.join
+ self.attrs = {
+ 'name': 'foo',
+ 'task_id': '1234567890',
+ 'file': self._get_file_abspath(self.NODES_SAMPLE)
+ }
+
+ @staticmethod
+ def _remove_contexts():
+ for context in base.Context.list:
+ context._delete_context()
+ base.Context.list = []
def _get_file_abspath(self, filename):
curr_path = os.path.dirname(os.path.abspath(__file__))
@@ -38,7 +49,7 @@ class NodeContextTestCase(unittest.TestCase):
return file_path
def test___init__(self):
- self.assertIsNone(self.test_context.name)
+ self.assertIsNone(self.test_context._name)
self.assertIsNone(self.test_context.file_path)
self.assertEqual(self.test_context.nodes, [])
self.assertEqual(self.test_context.controllers, [])
@@ -47,8 +58,9 @@ class NodeContextTestCase(unittest.TestCase):
self.assertEqual(self.test_context.env, {})
self.assertEqual(self.test_context.attrs, {})
+ @mock.patch.object(yaml_loader, 'read_yaml_file')
@mock.patch('{}.os.path.join'.format(PREFIX))
- def test_init_negative(self, mock_path_join):
+ def test_init_negative(self, mock_path_join, read_mock):
special_path = '/foo/bar/error_file'
error_path = self._get_file_abspath("error_file")
@@ -60,7 +72,6 @@ class NodeContextTestCase(unittest.TestCase):
# we can't count mock_path_join calls because
# it can catch join calls for .pyc files.
mock_path_join.side_effect = path_join
- self.test_context.read_config_file = read_mock = mock.Mock()
read_calls = 0
with self.assertRaises(KeyError):
@@ -70,6 +81,7 @@ class NodeContextTestCase(unittest.TestCase):
attrs = {
'name': 'foo',
+ 'task_id': '1234567890',
'file': error_path,
}
read_mock.side_effect = IOError(errno.EBUSY, 'busy')
@@ -77,7 +89,7 @@ class NodeContextTestCase(unittest.TestCase):
self.test_context.init(attrs)
read_calls += 1
- self.assertEqual(read_mock.called, read_calls)
+ self.assertEqual(read_mock.call_count, read_calls)
self.assertIn(attrs['file'], self.test_context.file_path)
self.assertEqual(raised.exception.errno, errno.EBUSY)
self.assertEqual(str(raised.exception), str(read_mock.side_effect))
@@ -92,38 +104,15 @@ class NodeContextTestCase(unittest.TestCase):
self.assertEqual(raised.exception.errno, errno.ENOENT)
self.assertEqual(str(raised.exception), str(read_mock.side_effect))
- def test_read_config_file(self):
-
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SAMPLE)
- }
-
- self.test_context.init(attrs)
-
- self.assertIsNotNone(self.test_context.read_config_file())
-
def test__dispatch_script(self):
-
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SAMPLE)
- }
-
- self.test_context.init(attrs)
+ self.test_context.init(self.attrs)
self.test_context.env = {'bash': [{'script': 'dummy'}]}
self.test_context._execute_script = mock.Mock()
self.assertEqual(self.test_context._dispatch_script('bash'), None)
def test__dispatch_ansible(self):
-
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SAMPLE)
- }
-
- self.test_context.init(attrs)
+ self.test_context.init(self.attrs)
self.test_context.env = {'ansible': [{'script': 'dummy'}]}
self.test_context._do_ansible_job = mock.Mock()
@@ -132,19 +121,13 @@ class NodeContextTestCase(unittest.TestCase):
self.assertEqual(self.test_context._dispatch_ansible('ansible'), None)
@mock.patch("{}.AnsibleCommon".format(PREFIX))
- def test__do_ansible_job(self, mock_ansible):
- self.assertEqual(None, self.test_context._do_ansible_job('dummy'))
+ def test__do_ansible_job(self, *args):
+ self.assertIsNone(self.test_context._do_ansible_job('dummy'))
- def test_successful_init(self):
+ def test_init(self):
+ self.test_context.init(self.attrs)
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SAMPLE)
- }
-
- self.test_context.init(attrs)
-
- self.assertEqual(self.test_context.name, "foo")
+ self.assertEqual(self.test_context.name, "foo-12345678")
self.assertEqual(len(self.test_context.nodes), 4)
self.assertEqual(len(self.test_context.controllers), 2)
self.assertEqual(len(self.test_context.computes), 1)
@@ -152,95 +135,92 @@ class NodeContextTestCase(unittest.TestCase):
self.assertEqual(len(self.test_context.baremetals), 1)
self.assertEqual(self.test_context.baremetals[0]["name"], "node4")
- def test__get_server_with_dic_attr_name(self):
+ def test__get_server_with_dict_attr_name(self):
+ self.test_context.init(self.attrs)
+ result = self.test_context._get_server({'name': 'node1.foo-12345678'})
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SAMPLE)
- }
-
- self.test_context.init(attrs)
-
- attr_name = {'name': 'foo.bar'}
- result = self.test_context._get_server(attr_name)
-
- self.assertEqual(result, None)
+ self.assertIsNone(result, None)
def test__get_server_not_found(self):
+ self.test_context.init(self.attrs)
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SAMPLE)
- }
+ self.assertIsNone(self.test_context._get_server('bar.foo-12345678'))
- self.test_context.init(attrs)
+ def test__get_server_mismatch(self):
+ self.test_context.init(self.attrs)
- attr_name = 'bar.foo'
- result = self.test_context._get_server(attr_name)
+ self.assertIsNone(self.test_context._get_server('bar.foo1'))
- self.assertEqual(result, None)
+ def test__get_server_duplicate(self):
+ self.attrs['file'] = self._get_file_abspath(
+ self.NODES_DUPLICATE_SAMPLE)
+ self.test_context.init(self.attrs)
- def test__get_server_mismatch(self):
+ with self.assertRaises(ValueError):
+ self.test_context._get_server('node1.foo-12345678')
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SAMPLE)
- }
+ def test__get_server_found(self):
+ self.test_context.init(self.attrs)
- self.test_context.init(attrs)
+ result = self.test_context._get_server('node1.foo-12345678')
- attr_name = 'bar.foo1'
- result = self.test_context._get_server(attr_name)
+ self.assertEqual(result['ip'], '10.229.47.137')
+ self.assertEqual(result['name'], 'node1.foo-12345678')
+ self.assertEqual(result['user'], 'root')
+ self.assertEqual(result['key_filename'], '/root/.yardstick_key')
- self.assertEqual(result, None)
+ def test__get_physical_nodes(self):
+ self.test_context.init(self.attrs)
+ nodes = self.test_context._get_physical_nodes()
+ self.assertEqual(nodes, self.test_context.nodes)
- def test__get_server_duplicate(self):
+ def test__get_physical_node_for_server(self):
+ self.test_context.init(self.attrs)
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_DUPLICATE_SAMPLE)
- }
+ # When server is not from this context
+ result = self.test_context._get_physical_node_for_server('node1.another-context')
+ self.assertIsNone(result)
- self.test_context.init(attrs)
+ # When node_name is not from this context
+ result = self.test_context._get_physical_node_for_server('fake.foo-12345678')
+ self.assertIsNone(result)
- attr_name = 'node1.foo'
- with self.assertRaises(ValueError):
- self.test_context._get_server(attr_name)
+ result = self.test_context._get_physical_node_for_server('node1.foo-12345678')
+ self.assertEqual(result, 'node1.foo')
- def test__get_server_found(self):
+ def test_update_collectd_options_for_node(self):
+ self.test_context.init(self.attrs)
+ options = {'collectd': {'interval': 5}}
- attrs = {
- 'name': 'foo',
- 'file': self._get_file_abspath(self.NODES_SAMPLE)
- }
+ with self.assertRaises(exceptions.ContextUpdateCollectdForNodeError):
+ self.test_context.update_collectd_options_for_node(options, 'fake.foo-12345678')
- self.test_context.init(attrs)
+ self.test_context.update_collectd_options_for_node(options, 'node1.foo-12345678')
- attr_name = 'node1.foo'
- result = self.test_context._get_server(attr_name)
+ node_collectd_options = [node for node in self.test_context.nodes
+ if node['name'] == 'node1'][0]['collectd']
- self.assertEqual(result['ip'], '10.229.47.137')
- self.assertEqual(result['name'], 'node1.foo')
- self.assertEqual(result['user'], 'root')
- self.assertEqual(result['key_filename'], '/root/.yardstick_key')
+ self.assertEqual(node_collectd_options, options)
@mock.patch('{}.NodeContext._dispatch_script'.format(PREFIX))
def test_deploy(self, dispatch_script_mock):
obj = node.NodeContext()
+ self.addCleanup(obj._delete_context)
obj.env = {
'type': 'script'
}
obj.deploy()
- self.assertTrue(dispatch_script_mock.called)
+ dispatch_script_mock.assert_called_once()
@mock.patch('{}.NodeContext._dispatch_ansible'.format(PREFIX))
def test_deploy_anisible(self, dispatch_ansible_mock):
obj = node.NodeContext()
+ self.addCleanup(obj._delete_context)
obj.env = {
'type': 'ansible'
}
obj.deploy()
- self.assertTrue(dispatch_ansible_mock.called)
+ dispatch_ansible_mock.assert_called_once()
@mock.patch('{}.NodeContext._dispatch_script'.format(PREFIX))
def test_undeploy(self, dispatch_script_mock):
@@ -249,7 +229,7 @@ class NodeContextTestCase(unittest.TestCase):
'type': 'script'
}
obj.undeploy()
- self.assertTrue(dispatch_script_mock.called)
+ dispatch_script_mock.assert_called_once()
@mock.patch('{}.NodeContext._dispatch_ansible'.format(PREFIX))
def test_undeploy_anisble(self, dispatch_ansible_mock):
@@ -258,12 +238,13 @@ class NodeContextTestCase(unittest.TestCase):
'type': 'ansible'
}
obj.undeploy()
- self.assertTrue(dispatch_ansible_mock.called)
+ dispatch_ansible_mock.assert_called_once()
@mock.patch('{}.ssh.SSH._put_file_shell'.format(PREFIX))
@mock.patch('{}.ssh.SSH.execute'.format(PREFIX))
def test_execute_remote_script(self, execute_mock, put_file_mock):
obj = node.NodeContext()
+ self.addCleanup(obj._delete_context)
obj.env = {'prefix': 'yardstick.benchmark.scenarios.compute'}
node_name_args = 'node5'
obj.nodes = [{
@@ -277,35 +258,42 @@ class NodeContextTestCase(unittest.TestCase):
execute_mock.return_value = (0, '', '')
obj._execute_remote_script('node5', info)
- self.assertTrue(put_file_mock.called)
- self.assertTrue(execute_mock.called)
+ put_file_mock.assert_called_once()
+ execute_mock.assert_called()
@mock.patch('{}.NodeContext._execute_local_script'.format(PREFIX))
def test_execute_script_local(self, local_execute_mock):
node_name = 'local'
info = {}
- node.NodeContext()._execute_script(node_name, info)
- self.assertTrue(local_execute_mock.called)
+ obj = node.NodeContext()
+ self.addCleanup(obj._delete_context)
+ obj._execute_script(node_name, info)
+ local_execute_mock.assert_called_once()
@mock.patch('{}.NodeContext._execute_remote_script'.format(PREFIX))
def test_execute_script_remote(self, remote_execute_mock):
node_name = 'node5'
info = {}
- node.NodeContext()._execute_script(node_name, info)
- self.assertTrue(remote_execute_mock.called)
+ obj = node.NodeContext()
+ self.addCleanup(obj._delete_context)
+ obj._execute_script(node_name, info)
+ remote_execute_mock.assert_called_once()
def test_get_script(self):
script_args = 'hello.bash'
info_args = {
'script': script_args
}
- script, options = node.NodeContext()._get_script(info_args)
+ obj = node.NodeContext()
+ self.addCleanup(obj._delete_context)
+ script, options = obj._get_script(info_args)
self.assertEqual(script_args, script)
self.assertEqual('', options)
def test_node_info(self):
node_name_args = 'node5'
obj = node.NodeContext()
+ self.addCleanup(obj._delete_context)
obj.nodes = [{'name': node_name_args, 'check': node_name_args}]
node_info = obj._get_node_info(node_name_args)
self.assertEqual(node_info.get('check'), node_name_args)
@@ -314,6 +302,7 @@ class NodeContextTestCase(unittest.TestCase):
def test_get_client(self, wait_mock):
node_name_args = 'node5'
obj = node.NodeContext()
+ self.addCleanup(obj._delete_context)
obj.nodes = [{
'name': node_name_args,
'user': 'ubuntu',
@@ -321,30 +310,43 @@ class NodeContextTestCase(unittest.TestCase):
'pwd': 'ubuntu',
}]
obj._get_client(node_name_args)
- self.assertTrue(wait_mock.called)
+ wait_mock.assert_called_once()
def test_get_server(self):
- self.test_context.name = 'vnf1'
- self.test_context.nodes = [{'name': 'my', 'value': 100}]
+ self.test_context.init(self.attrs)
+ self.test_context._name = 'foo'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
+ self.assertEqual('foo-12345678', self.test_context.name)
+ self.assertIsNotNone(self.test_context._task_id)
- with self.assertRaises(ValueError):
- self.test_context.get_server('my.vnf2')
+ result = self.test_context.get_server('node1.foo-12345678')
- expected = {'name': 'my.vnf1', 'value': 100, 'interfaces': {}}
- result = self.test_context.get_server('my.vnf1')
- self.assertDictEqual(result, expected)
+ self.assertEqual(result['ip'], '10.229.47.137')
+ self.assertEqual(result['name'], 'node1.foo-12345678')
+ self.assertEqual(result['user'], 'root')
+ self.assertEqual(result['key_filename'], '/root/.yardstick_key')
+
+ def test_get_server_server_not_in_context(self):
+ self.test_context.init(self.attrs)
+
+ with self.assertRaises(ValueError):
+ self.test_context.get_server('my2.foo-12345678')
def test_get_context_from_server(self):
- self.test_context.name = 'vnf1'
+ self.test_context._name = 'vnf1'
+ self.test_context._task_id = '1234567890'
+ self.test_context._name_task_id = '{}-{}'.format(
+ self.test_context._name, self.test_context._task_id[:8])
self.test_context.nodes = [{'name': 'my', 'value': 100}]
self.test_context.attrs = {'attr1': 200}
- with self.assertRaises(ValueError):
- self.test_context.get_context_from_server('my.vnf2')
-
- result = self.test_context.get_context_from_server('my.vnf1')
- self.assertIs(result, self.test_context)
+ self.assertIs(
+ self.test_context.get_context_from_server('my.vnf1-12345678'),
+ self.test_context)
+ # TODO: Split this into more granular tests
def test__get_network(self):
network1 = {
'name': 'net_1',
@@ -388,11 +390,3 @@ class NodeContextTestCase(unittest.TestCase):
expected = network1
result = self.test_context._get_network(attr_name)
self.assertDictEqual(result, expected)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/network_services/libs/__init__.py b/yardstick/tests/unit/benchmark/core/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/network_services/libs/__init__.py
+++ b/yardstick/tests/unit/benchmark/core/__init__.py
diff --git a/tests/unit/benchmark/core/no_constraint_no_args_scenario_sample.yaml b/yardstick/tests/unit/benchmark/core/no_constraint_no_args_scenario_sample.yaml
index 44c4a31ff..44c4a31ff 100644
--- a/tests/unit/benchmark/core/no_constraint_no_args_scenario_sample.yaml
+++ b/yardstick/tests/unit/benchmark/core/no_constraint_no_args_scenario_sample.yaml
diff --git a/tests/unit/benchmark/core/no_constraint_with_args_scenario_sample.yaml b/yardstick/tests/unit/benchmark/core/no_constraint_with_args_scenario_sample.yaml
index ced13f19e..ced13f19e 100644
--- a/tests/unit/benchmark/core/no_constraint_with_args_scenario_sample.yaml
+++ b/yardstick/tests/unit/benchmark/core/no_constraint_with_args_scenario_sample.yaml
diff --git a/yardstick/tests/unit/benchmark/core/test_plugin.py b/yardstick/tests/unit/benchmark/core/test_plugin.py
new file mode 100644
index 000000000..53621316b
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/core/test_plugin.py
@@ -0,0 +1,148 @@
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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 copy
+import os
+import pkg_resources
+
+import mock
+import six
+import testtools
+
+from yardstick import ssh
+from yardstick.benchmark.core import plugin
+from yardstick.tests import fixture
+
+
+class PluginTestCase(testtools.TestCase):
+
+ FILE = """
+schema: "yardstick:plugin:0.1"
+
+plugins:
+ name: sample
+
+deployment:
+ ip: 10.1.0.50
+ user: root
+ password: root
+"""
+
+ NAME = 'sample'
+ DEPLOYMENT = {'ip': '10.1.0.50', 'user': 'root', 'password': 'root'}
+
+ def setUp(self):
+ super(PluginTestCase, self).setUp()
+ self.plugin_parser = plugin.PluginParser(mock.Mock())
+ self.plugin = plugin.Plugin()
+ self.useFixture(fixture.PluginParserFixture(PluginTestCase.FILE))
+
+ self._mock_ssh_from_node = mock.patch.object(ssh.SSH, 'from_node')
+ self.mock_ssh_from_node = self._mock_ssh_from_node.start()
+ self.mock_ssh_obj = mock.Mock()
+ self.mock_ssh_from_node.return_value = self.mock_ssh_obj
+ self.mock_ssh_obj.wait = mock.Mock()
+ self.mock_ssh_obj._put_file_shell = mock.Mock()
+ self._mock_log_info = mock.patch.object(plugin.LOG, 'info')
+ self.mock_log_info = self._mock_log_info.start()
+
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self._mock_ssh_from_node.stop()
+ self._mock_log_info.stop()
+
+ @mock.patch.object(six.moves.builtins, 'print')
+ def test_install(self, *args):
+ args = mock.Mock()
+ args.input_file = [mock.Mock()]
+ with mock.patch.object(self.plugin, '_install_setup') as \
+ mock_install, \
+ mock.patch.object(self.plugin, '_run') as mock_run:
+ self.plugin.install(args)
+ mock_install.assert_called_once_with(PluginTestCase.NAME,
+ PluginTestCase.DEPLOYMENT)
+ mock_run.assert_called_once_with(PluginTestCase.NAME)
+
+ @mock.patch.object(six.moves.builtins, 'print')
+ def test_remove(self, *args):
+ args = mock.Mock()
+ args.input_file = [mock.Mock()]
+ with mock.patch.object(self.plugin, '_remove_setup') as \
+ mock_remove, \
+ mock.patch.object(self.plugin, '_run') as mock_run:
+ self.plugin.remove(args)
+ mock_remove.assert_called_once_with(PluginTestCase.NAME,
+ PluginTestCase.DEPLOYMENT)
+ mock_run.assert_called_once_with(PluginTestCase.NAME)
+
+ @mock.patch.object(pkg_resources, 'resource_filename',
+ return_value='script')
+ def test__install_setup(self, mock_resource_filename):
+ plugin_name = 'plugin_name'
+ self.plugin._install_setup(plugin_name, PluginTestCase.DEPLOYMENT)
+ mock_resource_filename.assert_called_once_with(
+ 'yardstick.resources', 'scripts/install/' + plugin_name + '.bash')
+ self.mock_ssh_from_node.assert_called_once_with(
+ PluginTestCase.DEPLOYMENT)
+ self.mock_ssh_obj.wait.assert_called_once_with(timeout=600)
+ self.mock_ssh_obj._put_file_shell.assert_called_once_with(
+ 'script', '~/{0}.sh'.format(plugin_name))
+
+ @mock.patch.object(pkg_resources, 'resource_filename',
+ return_value='script')
+ @mock.patch.object(os, 'environ', return_value='1.2.3.4')
+ def test__install_setup_with_ip_local(self, mock_os_environ,
+ mock_resource_filename):
+ plugin_name = 'plugin_name'
+ deployment = copy.deepcopy(PluginTestCase.DEPLOYMENT)
+ deployment['ip'] = 'local'
+ self.plugin._install_setup(plugin_name, deployment)
+ mock_os_environ.__getitem__.assert_called_once_with('JUMP_HOST_IP')
+ mock_resource_filename.assert_called_once_with(
+ 'yardstick.resources',
+ 'scripts/install/' + plugin_name + '.bash')
+ self.mock_ssh_from_node.assert_called_once_with(
+ deployment, overrides={'ip': os.environ["JUMP_HOST_IP"]})
+ self.mock_ssh_obj.wait.assert_called_once_with(timeout=600)
+ self.mock_ssh_obj._put_file_shell.assert_called_once_with(
+ 'script', '~/{0}.sh'.format(plugin_name))
+
+ @mock.patch.object(pkg_resources, 'resource_filename',
+ return_value='script')
+ def test__remove_setup(self, mock_resource_filename):
+ plugin_name = 'plugin_name'
+ self.plugin._remove_setup(plugin_name, PluginTestCase.DEPLOYMENT)
+ mock_resource_filename.assert_called_once_with(
+ 'yardstick.resources',
+ 'scripts/remove/' + plugin_name + '.bash')
+ self.mock_ssh_from_node.assert_called_once_with(
+ PluginTestCase.DEPLOYMENT)
+ self.mock_ssh_obj.wait.assert_called_once_with(timeout=600)
+ self.mock_ssh_obj._put_file_shell.assert_called_once_with(
+ 'script', '~/{0}.sh'.format(plugin_name))
+
+ @mock.patch.object(pkg_resources, 'resource_filename',
+ return_value='script')
+ @mock.patch.object(os, 'environ', return_value='1.2.3.4')
+ def test__remove_setup_with_ip_local(self, mock_os_environ,
+ mock_resource_filename):
+ plugin_name = 'plugin_name'
+ deployment = copy.deepcopy(PluginTestCase.DEPLOYMENT)
+ deployment['ip'] = 'local'
+ self.plugin._remove_setup(plugin_name, deployment)
+ mock_os_environ.__getitem__.assert_called_once_with('JUMP_HOST_IP')
+ mock_resource_filename.assert_called_once_with(
+ 'yardstick.resources',
+ 'scripts/remove/' + plugin_name + '.bash')
+ self.mock_ssh_from_node.assert_called_once_with(
+ deployment, overrides={'ip': os.environ["JUMP_HOST_IP"]})
+ self.mock_ssh_obj.wait.assert_called_once_with(timeout=600)
+ self.mock_ssh_obj._put_file_shell.mock_os_environ(
+ 'script', '~/{0}.sh'.format(plugin_name))
diff --git a/yardstick/tests/unit/benchmark/core/test_report.py b/yardstick/tests/unit/benchmark/core/test_report.py
new file mode 100644
index 000000000..89fb1e90a
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/core/test_report.py
@@ -0,0 +1,584 @@
+##############################################################################
+# Copyright (c) 2017 Rajesh Kudaka.
+# Copyright (c) 2018-2019 Intel Corporation.
+#
+# 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 mock
+import six
+import unittest
+import uuid
+
+from api.utils import influx
+from yardstick.benchmark.core import report
+from yardstick.cmd.commands import change_osloobj_to_paras
+
+GOOD_YAML_NAME = 'fake_name'
+GOOD_TASK_ID = str(uuid.uuid4())
+GOOD_DB_FIELDKEYS = [{'fieldKey': 'fake_key'}]
+GOOD_DB_METRICS = [{
+ 'fake_key': 1.234,
+ 'time': '0000-00-00T12:34:56.789012Z',
+ }]
+GOOD_TIMESTAMP = ['12:34:56.789012']
+BAD_YAML_NAME = 'F@KE_NAME'
+BAD_TASK_ID = 'aaaaaa-aaaaaaaa-aaaaaaaaaa-aaaaaa'
+MORE_DB_FIELDKEYS = [
+ {'fieldKey': 'fake_key'},
+ {'fieldKey': 'str_str'},
+ {'fieldKey': u'str_unicode'},
+ {u'fieldKey': 'unicode_str'},
+ {u'fieldKey': u'unicode_unicode'},
+ ]
+MORE_DB_METRICS = [{
+ 'fake_key': None,
+ 'time': '0000-00-00T00:00:00.000000Z',
+ }, {
+ 'fake_key': 123,
+ 'time': '0000-00-00T00:00:01.000000Z',
+ }, {
+ 'fake_key': 4.56,
+ 'time': '0000-00-00T00:00:02.000000Z',
+ }, {
+ 'fake_key': 9876543210987654321,
+ 'time': '0000-00-00T00:00:03.000000Z',
+ }, {
+ 'fake_key': 'str_str value',
+ 'time': '0000-00-00T00:00:04.000000Z',
+ }, {
+ 'fake_key': u'str_unicode value',
+ 'time': '0000-00-00T00:00:05.000000Z',
+ }, {
+ u'fake_key': 'unicode_str value',
+ 'time': '0000-00-00T00:00:06.000000Z',
+ }, {
+ u'fake_key': u'unicode_unicode value',
+ 'time': '0000-00-00T00:00:07.000000Z',
+ }, {
+ 'fake_key': '7.89',
+ 'time': '0000-00-00T00:00:08.000000Z',
+ }, {
+ 'fake_key': '1011',
+ 'time': '0000-00-00T00:00:09.000000Z',
+ }, {
+ 'fake_key': '9876543210123456789',
+ 'time': '0000-00-00T00:00:10.000000Z',
+ }]
+MORE_TIMESTAMP = ['00:00:%02d.000000' % n for n in range(len(MORE_DB_METRICS))]
+MORE_EMPTY_DATA = [None] * len(MORE_DB_METRICS)
+MORE_EXPECTED_TABLE_VALS = {
+ 'Timestamp': MORE_TIMESTAMP,
+ 'fake_key': [
+ None,
+ 123,
+ 4.56,
+ 9876543210987654321 if six.PY3 else 9.876543210987655e+18,
+ None,
+ None,
+ None,
+ None,
+ 7.89,
+ 1011,
+ 9876543210123456789 if six.PY3 else 9.876543210123457e+18,
+ ],
+ 'str_str': MORE_EMPTY_DATA,
+ 'str_unicode': MORE_EMPTY_DATA,
+ 'unicode_str': MORE_EMPTY_DATA,
+ 'unicode_unicode': MORE_EMPTY_DATA,
+ }
+MORE_EXPECTED_DATASETS = [{
+ 'label': key,
+ 'data': MORE_EXPECTED_TABLE_VALS[key],
+ }
+ for key in map(str, [field['fieldKey'] for field in MORE_DB_FIELDKEYS])
+ ]
+
+
+class JSTreeTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.jstree = report.JSTree()
+
+ def test__create_node(self):
+ _id = "tg__0.DropPackets"
+
+ expected_data = [
+ {"id": "tg__0", "text": "tg__0", "parent": "#"},
+ {"id": "tg__0.DropPackets", "text": "DropPackets", "parent": "tg__0"}
+ ]
+ self.jstree._create_node(_id)
+
+ self.assertEqual(self.jstree._created_nodes, ['#', 'tg__0', 'tg__0.DropPackets'])
+ self.assertEqual(self.jstree.jstree_data, expected_data)
+
+ def test_format_for_jstree(self):
+ data = [
+ 'tg__0.DropPackets',
+ 'tg__0.LatencyAvg.5', 'tg__0.LatencyAvg.6',
+ 'tg__0.LatencyMax.5', 'tg__0.LatencyMax.6',
+ 'tg__0.RxThroughput', 'tg__0.TxThroughput',
+ 'tg__1.DropPackets',
+ 'tg__1.LatencyAvg.5', 'tg__1.LatencyAvg.6',
+ 'tg__1.LatencyMax.5', 'tg__1.LatencyMax.6',
+ 'tg__1.RxThroughput', 'tg__1.TxThroughput',
+ 'vnf__0.curr_packets_in', 'vnf__0.packets_dropped', 'vnf__0.packets_fwd',
+ ]
+
+ expected_output = [
+ {"id": "tg__0", "text": "tg__0", "parent": "#"},
+ {"id": "tg__0.DropPackets", "text": "DropPackets", "parent": "tg__0"},
+ {"id": "tg__0.LatencyAvg", "text": "LatencyAvg", "parent": "tg__0"},
+ {"id": "tg__0.LatencyAvg.5", "text": "5", "parent": "tg__0.LatencyAvg"},
+ {"id": "tg__0.LatencyAvg.6", "text": "6", "parent": "tg__0.LatencyAvg"},
+ {"id": "tg__0.LatencyMax", "text": "LatencyMax", "parent": "tg__0"},
+ {"id": "tg__0.LatencyMax.5", "text": "5", "parent": "tg__0.LatencyMax"},
+ {"id": "tg__0.LatencyMax.6", "text": "6", "parent": "tg__0.LatencyMax"},
+ {"id": "tg__0.RxThroughput", "text": "RxThroughput", "parent": "tg__0"},
+ {"id": "tg__0.TxThroughput", "text": "TxThroughput", "parent": "tg__0"},
+ {"id": "tg__1", "text": "tg__1", "parent": "#"},
+ {"id": "tg__1.DropPackets", "text": "DropPackets", "parent": "tg__1"},
+ {"id": "tg__1.LatencyAvg", "text": "LatencyAvg", "parent": "tg__1"},
+ {"id": "tg__1.LatencyAvg.5", "text": "5", "parent": "tg__1.LatencyAvg"},
+ {"id": "tg__1.LatencyAvg.6", "text": "6", "parent": "tg__1.LatencyAvg"},
+ {"id": "tg__1.LatencyMax", "text": "LatencyMax", "parent": "tg__1"},
+ {"id": "tg__1.LatencyMax.5", "text": "5", "parent": "tg__1.LatencyMax"},
+ {"id": "tg__1.LatencyMax.6", "text": "6", "parent": "tg__1.LatencyMax"},
+ {"id": "tg__1.RxThroughput", "text": "RxThroughput", "parent": "tg__1"},
+ {"id": "tg__1.TxThroughput", "text": "TxThroughput", "parent": "tg__1"},
+ {"id": "vnf__0", "text": "vnf__0", "parent": "#"},
+ {"id": "vnf__0.curr_packets_in", "text": "curr_packets_in", "parent": "vnf__0"},
+ {"id": "vnf__0.packets_dropped", "text": "packets_dropped", "parent": "vnf__0"},
+ {"id": "vnf__0.packets_fwd", "text": "packets_fwd", "parent": "vnf__0"},
+ ]
+
+ result = self.jstree.format_for_jstree(data)
+ self.assertEqual(expected_output, result)
+
+
+class ReportTestCase(unittest.TestCase):
+
+ def setUp(self):
+ super(ReportTestCase, self).setUp()
+ self.param = change_osloobj_to_paras({})
+ self.param.yaml_name = [GOOD_YAML_NAME]
+ self.param.task_id = [GOOD_TASK_ID]
+ self.rep = report.Report()
+
+ def test___init__(self):
+ self.assertEqual([], self.rep.Timestamp)
+ self.assertEqual("", self.rep.yaml_name)
+ self.assertEqual("", self.rep.task_id)
+
+ def test__validate(self):
+ self.rep._validate(GOOD_YAML_NAME, GOOD_TASK_ID)
+ self.assertEqual(GOOD_YAML_NAME, self.rep.yaml_name)
+ self.assertEqual(GOOD_TASK_ID, str(self.rep.task_id))
+
+ def test__validate_invalid_yaml_name(self):
+ with six.assertRaisesRegex(self, ValueError, "yaml*"):
+ self.rep._validate(BAD_YAML_NAME, GOOD_TASK_ID)
+
+ def test__validate_invalid_task_id(self):
+ with six.assertRaisesRegex(self, ValueError, "task*"):
+ self.rep._validate(GOOD_YAML_NAME, BAD_TASK_ID)
+
+ @mock.patch.object(influx, 'query')
+ def test__get_fieldkeys(self, mock_query):
+ mock_query.return_value = GOOD_DB_FIELDKEYS
+ self.rep.yaml_name = GOOD_YAML_NAME
+ self.rep.task_id = GOOD_TASK_ID
+ self.assertEqual(GOOD_DB_FIELDKEYS, self.rep._get_fieldkeys())
+
+ @mock.patch.object(influx, 'query')
+ def test__get_fieldkeys_nodbclient(self, mock_query):
+ mock_query.side_effect = RuntimeError
+ self.assertRaises(RuntimeError, self.rep._get_fieldkeys)
+
+ @mock.patch.object(influx, 'query')
+ def test__get_fieldkeys_testcase_not_found(self, mock_query):
+ mock_query.return_value = []
+ self.rep.yaml_name = GOOD_YAML_NAME
+ self.rep.task_id = GOOD_TASK_ID
+ six.assertRaisesRegex(self, KeyError, "Test case", self.rep._get_fieldkeys)
+
+ @mock.patch.object(influx, 'query')
+ def test__get_metrics(self, mock_query):
+ mock_query.return_value = GOOD_DB_METRICS
+ self.rep.yaml_name = GOOD_YAML_NAME
+ self.rep.task_id = GOOD_TASK_ID
+ self.assertEqual(GOOD_DB_METRICS, self.rep._get_metrics())
+
+ @mock.patch.object(influx, 'query')
+ def test__get_metrics_task_not_found(self, mock_query):
+ mock_query.return_value = []
+ self.rep.yaml_name = GOOD_YAML_NAME
+ self.rep.task_id = GOOD_TASK_ID
+ six.assertRaisesRegex(self, KeyError, "Task ID", self.rep._get_metrics)
+
+ @mock.patch.object(influx, 'query')
+ def test__get_task_start_time(self, mock_query):
+ self.rep.yaml_name = GOOD_YAML_NAME
+ self.rep.task_id = GOOD_TASK_ID
+ mock_query.return_value = [{
+ u'free.memory0.used': u'9789088',
+ u'free.memory0.available': u'22192984',
+ u'free.memory0.shared': u'219152',
+ u'time': u'2019-01-22T16:20:14.568075776Z',
+ }]
+ expected = "2019-01-22T16:20:14.568075776Z"
+
+ self.assertEqual(
+ expected,
+ self.rep._get_task_start_time()
+ )
+
+ def test__get_task_start_time_task_not_found(self):
+ pass
+
+ @mock.patch.object(influx, 'query')
+ def test__get_task_end_time(self, mock_query):
+ self.rep.yaml_name = GOOD_YAML_NAME
+ self.rep.task_id = GOOD_TASK_ID
+ # TODO(elfoley): write this test!
+ mock_query.return_value = [{
+
+ }]
+
+ @mock.patch.object(influx, 'query')
+ def test__get_baro_metrics(self, mock_query):
+ self.rep.yaml_name = GOOD_YAML_NAME
+ self.rep.task_id = GOOD_TASK_ID
+ self.rep._get_task_start_time = mock.Mock(return_value=0)
+ self.rep._get_task_end_time = mock.Mock(return_value=0)
+
+ influx_return_values = ([{
+ u'value': 324050, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-12-19T14:11:25.383698038Z',
+ u'type_instance': u'user', u'type': u'cpu',
+ }, {
+ u'value': 193798, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-12-19T14:11:25.383712594Z',
+ u'type_instance': u'system', u'type': u'cpu',
+ }, {
+ u'value': 324051, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-12-19T14:11:35.383696624Z',
+ u'type_instance': u'user', u'type': u'cpu',
+ }, {
+ u'value': 193800, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-12-19T14:11:35.383713481Z',
+ u'type_instance': u'system', u'type': u'cpu',
+ }, {
+ u'value': 324054, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-12-19T14:11:45.3836966789Z',
+ u'type_instance': u'user', u'type': u'cpu',
+ }, {
+ u'value': 193801, u'instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-12-19T14:11:45.383716296Z',
+ u'type_instance': u'system', u'type': u'cpu',
+ }],
+ [{
+ u'value': 3598453000, u'host': u'myhostname',
+ u'time': u'2018-12-19T14:11:25.383698038Z',
+ u'type_instance': u'0', u'type': u'cpufreq',
+ }, {
+ u'value': 3530250000, u'type_instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-12-19T14:11:35.383712594Z', u'type': u'cpufreq',
+ }, {
+ u'value': 3600281000, u'type_instance': u'0', u'host': u'myhostname',
+ u'time': u'2018-12-19T14:11:45.383696624Z', u'type': u'cpufreq',
+ }],
+ )
+
+ def ret_vals(vals):
+ for x in vals:
+ yield x
+ while True:
+ yield []
+
+ mock_query.side_effect = ret_vals(influx_return_values)
+
+ BARO_EXPECTED_METRICS = {
+ 'Timestamp': [
+ '14:11:25.3836', '14:11:25.3837',
+ '14:11:35.3836', '14:11:35.3837',
+ '14:11:45.3836', '14:11:45.3837'],
+ 'myhostname.cpu_value.cpu.user.0': {
+ '14:11:25.3836': 324050,
+ '14:11:35.3836': 324051,
+ '14:11:45.3836': 324054,
+ },
+ 'myhostname.cpu_value.cpu.system.0': {
+ '14:11:25.3837': 193798,
+ '14:11:35.3837': 193800,
+ '14:11:45.3837': 193801,
+ },
+ 'myhostname.cpufreq_value.cpufreq.0': {
+ '14:11:25.3836': 3598453000,
+ '14:11:35.3837': 3530250000,
+ '14:11:45.3836': 3600281000,
+ }
+ }
+ self.assertEqual(
+ BARO_EXPECTED_METRICS,
+ self.rep._get_baro_metrics()
+ )
+
+ def test__get_timestamps(self):
+
+ metrics = MORE_DB_METRICS
+ self.assertEqual(
+ MORE_TIMESTAMP,
+ self.rep._get_timestamps(metrics)
+ )
+
+ def test__format_datasets(self):
+ metric_name = "free.memory0.used"
+ metrics = [{
+ u'free.memory1.free': u'1958664',
+ u'free.memory0.used': u'9789560',
+ }, {
+ u'free.memory1.free': u'1958228',
+ u'free.memory0.used': u'9789790',
+ }, {
+ u'free.memory1.free': u'1956156',
+ u'free.memory0.used': u'9791092',
+ }, {
+ u'free.memory1.free': u'1956280',
+ u'free.memory0.used': u'9790796',
+ }]
+ self.assertEqual(
+ [9789560, 9789790, 9791092, 9790796,],
+ self.rep._format_datasets(metric_name, metrics)
+ )
+
+ def test__format_datasets_val_none(self):
+ metric_name = "free.memory0.used"
+ metrics = [{
+ u'free.memory1.free': u'1958664',
+ u'free.memory0.used': 9876543109876543210,
+ }, {
+ u'free.memory1.free': u'1958228',
+ }, {
+ u'free.memory1.free': u'1956156',
+ u'free.memory0.used': u'9791092',
+ }, {
+ u'free.memory1.free': u'1956280',
+ u'free.memory0.used': u'9790796',
+ }]
+
+ exp0 = 9876543109876543210 if six.PY3 else 9.876543109876543e+18
+ self.assertEqual(
+ [exp0, None, 9791092, 9790796],
+ self.rep._format_datasets(metric_name, metrics)
+ )
+
+ def test__format_datasets_val_incompatible(self):
+ metric_name = "free.memory0.used"
+ metrics = [{
+ u'free.memory0.used': "some incompatible value",
+ }, {
+ }]
+ self.assertEqual(
+ [None, None],
+ self.rep._format_datasets(metric_name, metrics)
+ )
+
+ def test__combine_times(self):
+ yard_times = [
+ '00:00:00.000000',
+ '00:00:01.000000',
+ '00:00:02.000000',
+ '00:00:06.000000',
+ '00:00:08.000000',
+ '00:00:09.000000',
+ ]
+ baro_times = [
+ '00:00:01.000000',
+ '00:00:03.000000',
+ '00:00:04.000000',
+ '00:00:05.000000',
+ '00:00:07.000000',
+ '00:00:10.000000',
+ ]
+ expected_combo = [
+ '00:00:00.000000',
+ '00:00:01.000000',
+ '00:00:02.000000',
+ '00:00:03.000000',
+ '00:00:04.000000',
+ '00:00:05.000000',
+ '00:00:06.000000',
+ '00:00:07.000000',
+ '00:00:08.000000',
+ '00:00:09.000000',
+ '00:00:10.000000',
+ ]
+
+ actual_combo = self.rep._combine_times(yard_times, baro_times)
+ self.assertEqual(len(expected_combo), len(actual_combo))
+
+ self.assertEqual(
+ expected_combo,
+ actual_combo,
+ )
+
+ def test__combine_times_2(self):
+ time1 = ['14:11:25.383698', '14:11:25.383712', '14:11:35.383696',]
+ time2 = [
+ '16:20:14.568075', '16:20:24.575083',
+ '16:20:34.580989', '16:20:44.586801', ]
+ time_exp = [
+ '14:11:25.383698', '14:11:25.383712', '14:11:35.383696',
+ '16:20:14.568075', '16:20:24.575083', '16:20:34.580989',
+ '16:20:44.586801',
+ ]
+ self.assertEqual(time_exp, self.rep._combine_times(time1, time2))
+
+ def test__combine_metrics(self):
+ BARO_METRICS = {
+ 'myhostname.cpu_value.cpu.user.0': {
+ '14:11:25.3836': 324050, '14:11:35.3836': 324051,
+ '14:11:45.3836': 324054,
+ },
+ 'myhostname.cpu_value.cpu.system.0': {
+ '14:11:25.3837': 193798, '14:11:35.3837': 193800,
+ '14:11:45.3837': 193801,
+ }
+ }
+ BARO_TIMES = [
+ '14:11:25.3836', '14:11:25.3837', '14:11:35.3836',
+ '14:11:35.3837', '14:11:45.3836', '14:11:45.3837',
+ ]
+ YARD_METRICS = {
+ 'free.memory9.free': {
+ '16:20:14.5680': 1958244, '16:20:24.5750': 1955964,
+ '16:20:34.5809': 1956040, '16:20:44.5868': 1956428,
+ },
+ 'free.memory7.used': {
+ '16:20:14.5680': 9789068, '16:20:24.5750': 9791284,
+ '16:20:34.5809': 9791228, '16:20:44.5868': 9790692,
+ },
+ 'free.memory2.total':{
+ '16:20:14.5680': 32671288, '16:20:24.5750': 32671288,
+ '16:20:34.5809': 32671288, '16:20:44.5868': 32671288,
+ },
+ 'free.memory7.free': {
+ '16:20:14.5680': 1958368, '16:20:24.5750': 1956104,
+ '16:20:34.5809': 1956040, '16:20:44.5868': 1956552,
+ },
+ 'free.memory1.used': {
+ '16:20:14.5680': 9788872, '16:20:24.5750': 9789212,
+ '16:20:34.5809': 9791168, '16:20:44.5868': 9790996,
+ },
+ }
+ YARD_TIMES = [
+ '16:20:14.5680', '16:20:24.5750',
+ '16:20:34.5809', '16:20:44.5868',
+ ]
+
+ expected_output = {
+ 'myhostname.cpu_value.cpu.user.0': [{
+ 'x': '14:11:25.3836', 'y': 324050, }, {
+ 'x': '14:11:35.3836', 'y': 324051, }, {
+ 'x': '14:11:45.3836', 'y': 324054, }],
+ 'myhostname.cpu_value.cpu.system.0' : [{
+ 'x': '14:11:25.3837', 'y': 193798, }, {
+ 'x': '14:11:35.3837', 'y': 193800, }, {
+ 'x': '14:11:45.3837', 'y': 193801, }],
+ 'free.memory9.free': [{
+ 'x': '16:20:14.5680', 'y': 1958244, }, {
+ 'x': '16:20:24.5750', 'y': 1955964, }, {
+ 'x': '16:20:34.5809', 'y': 1956040, }, {
+ 'x': '16:20:44.5868', 'y': 1956428, }],
+ 'free.memory7.used': [{
+ 'x': '16:20:14.5680', 'y': 9789068, }, {
+ 'x': '16:20:24.5750', 'y': 9791284, }, {
+ 'x': '16:20:34.5809', 'y': 9791228, }, {
+ 'x': '16:20:44.5868', 'y': 9790692, }],
+ 'free.memory2.total': [{
+ 'x': '16:20:14.5680', 'y': 32671288, }, {
+ 'x': '16:20:24.5750', 'y': 32671288, }, {
+ 'x': '16:20:34.5809', 'y': 32671288, }, {
+ 'x': '16:20:44.5868', 'y': 32671288, }],
+ 'free.memory7.free': [{
+ 'x': '16:20:14.5680', 'y': 1958368, }, {
+ 'x': '16:20:24.5750', 'y': 1956104, }, {
+ 'x': '16:20:34.5809', 'y': 1956040, }, {
+ 'x': '16:20:44.5868', 'y': 1956552, }],
+ 'free.memory1.used': [{
+ 'x': '16:20:14.5680', 'y': 9788872, }, {
+ 'x': '16:20:24.5750', 'y': 9789212, }, {
+ 'x': '16:20:34.5809', 'y': 9791168, }, {
+ 'x': '16:20:44.5868', 'y': 9790996, }],
+ }
+
+ actual_output, _, _ = self.rep._combine_metrics(
+ BARO_METRICS, BARO_TIMES, YARD_METRICS, YARD_TIMES
+ )
+ self.assertEquals(
+ sorted(expected_output.keys()),
+ sorted(actual_output.keys())
+ )
+
+ self.assertEquals(
+ expected_output,
+ actual_output,
+ )
+
+ @mock.patch.object(report.Report, '_get_metrics')
+ @mock.patch.object(report.Report, '_get_fieldkeys')
+ def test__generate_common(self, mock_keys, mock_metrics):
+ mock_metrics.return_value = MORE_DB_METRICS
+ mock_keys.return_value = MORE_DB_FIELDKEYS
+ datasets, table_vals = self.rep._generate_common(self.param)
+ self.assertEqual(MORE_EXPECTED_DATASETS, datasets)
+ self.assertEqual(MORE_EXPECTED_TABLE_VALS, table_vals)
+
+ @mock.patch.object(report.Report, '_get_metrics')
+ @mock.patch.object(report.Report, '_get_fieldkeys')
+ @mock.patch.object(report.Report, '_validate')
+ def test_generate(self, mock_valid, mock_keys, mock_metrics):
+ mock_metrics.return_value = GOOD_DB_METRICS
+ mock_keys.return_value = GOOD_DB_FIELDKEYS
+ self.rep.generate(self.param)
+ mock_valid.assert_called_once_with(GOOD_YAML_NAME, GOOD_TASK_ID)
+ mock_metrics.assert_called_once_with()
+ mock_keys.assert_called_once_with()
+ self.assertEqual(GOOD_TIMESTAMP, self.rep.Timestamp)
+
+ @mock.patch.object(report.Report, '_get_baro_metrics')
+ @mock.patch.object(report.Report, '_get_metrics')
+ @mock.patch.object(report.Report, '_get_fieldkeys')
+ @mock.patch.object(report.Report, '_validate')
+ def test_generate_nsb(
+ self, mock_valid, mock_keys, mock_metrics, mock_baro_metrics):
+
+ mock_metrics.return_value = GOOD_DB_METRICS
+ mock_keys.return_value = GOOD_DB_FIELDKEYS
+ BARO_METRICS = {
+ # TODO: is timestamp needed here?
+ 'Timestamp': [
+ '14:11:25.383698', '14:11:25.383712', '14:11:35.383696',
+ '14:11:35.383713', '14:11:45.383700', '14:11:45.383716'],
+ 'myhostname.cpu_value.cpu.user.0': {
+ '14:11:25.383698': 324050,
+ '14:11:35.383696': 324051,
+ '14:11:45.383700': 324054,
+ },
+ 'myhostname.cpu_value.cpu.system.0': {
+ '14:11:25.383712': 193798,
+ '14:11:35.383713': 193800,
+ '14:11:45.383716': 193801,
+ }
+ }
+ mock_baro_metrics.return_value = BARO_METRICS
+
+ self.rep.generate_nsb(self.param)
+ mock_valid.assert_called_once_with(GOOD_YAML_NAME, GOOD_TASK_ID)
+ mock_metrics.assert_called_once_with()
+ mock_keys.assert_called_once_with()
+ self.assertEqual(GOOD_TIMESTAMP, self.rep.Timestamp)
diff --git a/yardstick/tests/unit/benchmark/core/test_task.py b/yardstick/tests/unit/benchmark/core/test_task.py
new file mode 100644
index 000000000..0f09b3e59
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/core/test_task.py
@@ -0,0 +1,644 @@
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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 copy
+import io
+import logging
+import os
+import sys
+
+import mock
+import six
+from six.moves import builtins
+import unittest
+import uuid
+import collections
+
+from yardstick.benchmark.contexts import base
+from yardstick.benchmark.contexts import dummy
+from yardstick.benchmark.core import task
+from yardstick.common import constants as consts
+from yardstick.common import exceptions
+from yardstick.common import task_template
+from yardstick.common import utils
+
+
+class TaskTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_log = mock.patch.object(task, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_log.stop()
+
+ @mock.patch.object(base, 'Context')
+ def test_parse_nodes_with_context_same_context(self, mock_context):
+ scenario_cfg = {
+ "nodes": {
+ "host": "node1.LF",
+ "target": "node2.LF"
+ }
+ }
+ server_info = {
+ "ip": "10.20.0.3",
+ "user": "root",
+ "key_filename": "/root/.ssh/id_rsa"
+ }
+ mock_context.get_server.return_value = server_info
+
+ context_cfg = task.parse_nodes_with_context(scenario_cfg)
+
+ self.assertEqual(context_cfg["host"], server_info)
+ self.assertEqual(context_cfg["target"], server_info)
+
+ def test_set_dispatchers(self):
+ t = task.Task()
+ output_config = {"DEFAULT": {"dispatcher": "file, http"}}
+ t._set_dispatchers(output_config)
+ self.assertEqual(output_config, output_config)
+
+ @mock.patch.object(task, 'DispatcherBase')
+ def test__do_output(self, mock_dispatcher):
+ t = task.Task()
+ output_config = {"DEFAULT": {"dispatcher": "file, http"}}
+
+ dispatcher1 = mock.MagicMock()
+ dispatcher1.__dispatcher_type__ = 'file'
+
+ dispatcher2 = mock.MagicMock()
+ dispatcher2.__dispatcher_type__ = 'http'
+
+ mock_dispatcher.get = mock.MagicMock(return_value=[dispatcher1,
+ dispatcher2])
+ self.assertIsNone(t._do_output(output_config, {}))
+
+ @mock.patch.object(base, 'Context')
+ def test_parse_networks_from_nodes(self, mock_context):
+ nodes = {
+ 'node1': {
+ 'interfaces': {
+ 'mgmt': {
+ 'network_name': 'mgmt',
+ },
+ 'xe0': {
+ 'network_name': 'uplink_0',
+ },
+ 'xe1': {
+ 'network_name': 'downlink_0',
+ },
+ },
+ },
+ 'node2': {
+ 'interfaces': {
+ 'mgmt': {
+ 'network_name': 'mgmt',
+ },
+ 'uplink_0': {
+ 'network_name': 'uplink_0',
+ },
+ 'downlink_0': {
+ 'network_name': 'downlink_0',
+ },
+ },
+ },
+ }
+
+ mock_context.get_network.side_effect = iter([
+ None,
+ {
+ 'name': 'mgmt',
+ 'network_type': 'flat',
+ },
+ {},
+ {
+ 'name': 'uplink_0',
+ 'subnet_cidr': '10.20.0.0/16',
+ },
+ {
+ 'name': 'downlink_0',
+ 'segmentation_id': '1001',
+ },
+ {
+ 'name': 'uplink_1',
+ },
+ ])
+
+ # one for each interface
+ expected_get_network_calls = 6
+ expected = {
+ 'mgmt': {'name': 'mgmt', 'network_type': 'flat'},
+ 'uplink_0': {'name': 'uplink_0', 'subnet_cidr': '10.20.0.0/16'},
+ 'uplink_1': {'name': 'uplink_1'},
+ 'downlink_0': {'name': 'downlink_0', 'segmentation_id': '1001'},
+ }
+
+ networks = task.get_networks_from_nodes(nodes)
+ self.assertEqual(mock_context.get_network.call_count, expected_get_network_calls)
+ self.assertDictEqual(networks, expected)
+
+ @mock.patch.object(base, 'Context')
+ @mock.patch.object(task, 'base_runner')
+ def test_run(self, mock_base_runner, *args):
+ scenario = {
+ 'host': 'athena.demo',
+ 'target': 'ares.demo',
+ 'runner': {
+ 'duration': 60,
+ 'interval': 1,
+ 'type': 'Duration'
+ },
+ 'type': 'Ping'
+ }
+
+ t = task.Task()
+ runner = mock.Mock()
+ runner.join.return_value = 0
+ runner.get_output.return_value = {}
+ runner.get_result.return_value = []
+ mock_base_runner.Runner.get.return_value = runner
+ t._run([scenario], False, "yardstick.out")
+ runner.run.assert_called_once()
+
+ @mock.patch.object(base, 'Context')
+ @mock.patch.object(task, 'base_runner')
+ def test_run_ProxDuration(self, mock_base_runner, *args):
+ scenario = {
+ 'host': 'athena.demo',
+ 'target': 'ares.demo',
+ 'runner': {
+ 'duration': 60,
+ 'interval': 1,
+ 'sampled': 'yes',
+ 'confirmation': 1,
+ 'type': 'ProxDuration'
+ },
+ 'type': 'Ping'
+ }
+
+ t = task.Task()
+ runner = mock.Mock()
+ runner.join.return_value = 0
+ runner.get_output.return_value = {}
+ runner.get_result.return_value = []
+ mock_base_runner.Runner.get.return_value = runner
+ t._run([scenario], False, "yardstick.out")
+ runner.run.assert_called_once()
+
+ @mock.patch.object(os, 'environ')
+ def test_check_precondition(self, mock_os_environ):
+ cfg = {
+ 'precondition': {
+ 'installer_type': 'compass',
+ 'deploy_scenarios': 'os-nosdn',
+ 'pod_name': 'huawei-pod1'
+ }
+ }
+
+ t = task.TaskParser('/opt')
+ mock_os_environ.get.side_effect = ['compass',
+ 'os-nosdn',
+ 'huawei-pod1']
+ result = t._check_precondition(cfg)
+ self.assertTrue(result)
+
+ def test_parse_suite_no_constraint_no_args(self):
+ SAMPLE_SCENARIO_PATH = "no_constraint_no_args_scenario_sample.yaml"
+ t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
+ with mock.patch.object(os, 'environ',
+ new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}):
+ task_files, task_args, task_args_fnames = t.parse_suite()
+
+ self.assertEqual(task_files[0], self.change_to_abspath(
+ 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
+ self.assertEqual(task_files[1], self.change_to_abspath(
+ 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
+ self.assertIsNone(task_args[0])
+ self.assertIsNone(task_args[1])
+ self.assertIsNone(task_args_fnames[0])
+ self.assertIsNone(task_args_fnames[1])
+
+ def test_parse_suite_no_constraint_with_args(self):
+ SAMPLE_SCENARIO_PATH = "no_constraint_with_args_scenario_sample.yaml"
+ t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
+ with mock.patch.object(os, 'environ',
+ new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}):
+ task_files, task_args, task_args_fnames = t.parse_suite()
+
+ self.assertEqual(task_files[0], self.change_to_abspath(
+ 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
+ self.assertEqual(task_files[1], self.change_to_abspath(
+ 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
+ self.assertIsNone(task_args[0])
+ self.assertEqual(task_args[1],
+ '{"host": "node1.LF","target": "node2.LF"}')
+ self.assertIsNone(task_args_fnames[0])
+ self.assertIsNone(task_args_fnames[1])
+
+ def test_parse_suite_with_constraint_no_args(self):
+ SAMPLE_SCENARIO_PATH = "with_constraint_no_args_scenario_sample.yaml"
+ t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
+ with mock.patch.object(os, 'environ',
+ new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}):
+ task_files, task_args, task_args_fnames = t.parse_suite()
+ self.assertEqual(task_files[0], self.change_to_abspath(
+ 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
+ self.assertEqual(task_files[1], self.change_to_abspath(
+ 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
+ self.assertIsNone(task_args[0])
+ self.assertIsNone(task_args[1])
+ self.assertIsNone(task_args_fnames[0])
+ self.assertIsNone(task_args_fnames[1])
+
+ def test_parse_suite_with_constraint_with_args(self):
+ SAMPLE_SCENARIO_PATH = "with_constraint_with_args_scenario_sample.yaml"
+ t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
+ with mock.patch('os.environ',
+ new={'NODE_NAME': 'huawei-pod1', 'INSTALLER_TYPE': 'compass'}):
+ task_files, task_args, task_args_fnames = t.parse_suite()
+
+ self.assertEqual(task_files[0], self.change_to_abspath(
+ 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
+ self.assertEqual(task_files[1], self.change_to_abspath(
+ 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
+ self.assertIsNone(task_args[0])
+ self.assertEqual(task_args[1],
+ '{"host": "node1.LF","target": "node2.LF"}')
+ self.assertIsNone(task_args_fnames[0])
+ self.assertIsNone(task_args_fnames[1])
+
+ def test_parse_options(self):
+ options = {
+ 'openstack': {
+ 'EXTERNAL_NETWORK': '$network'
+ },
+ 'nodes': ['node1', '$node'],
+ 'host': '$host'
+ }
+
+ t = task.Task()
+ t.outputs = {
+ 'network': 'ext-net',
+ 'node': 'node2',
+ 'host': 'server.yardstick'
+ }
+
+ expected_result = {
+ 'openstack': {
+ 'EXTERNAL_NETWORK': 'ext-net'
+ },
+ 'nodes': ['node1', 'node2'],
+ 'host': 'server.yardstick'
+ }
+
+ actual_result = t._parse_options(options)
+ self.assertEqual(expected_result, actual_result)
+
+ def test_parse_options_no_teardown(self):
+ options = {
+ 'openstack': {
+ 'EXTERNAL_NETWORK': '$network'
+ },
+ 'nodes': ['node1', '$node'],
+ 'host': '$host',
+ 'contexts' : {'name': "my-context",
+ 'no_teardown': True}
+ }
+
+ t = task.Task()
+ t.outputs = {
+ 'network': 'ext-net',
+ 'node': 'node2',
+ 'host': 'server.yardstick'
+ }
+
+ expected_result = {
+ 'openstack': {
+ 'EXTERNAL_NETWORK': 'ext-net'
+ },
+ 'nodes': ['node1', 'node2'],
+ 'host': 'server.yardstick',
+ 'contexts': {'name': 'my-context',
+ 'no_teardown': True,
+ }
+ }
+
+ actual_result = t._parse_options(options)
+ self.assertEqual(expected_result, actual_result)
+
+ @mock.patch.object(builtins, 'open', side_effect=mock.mock_open())
+ @mock.patch.object(task, 'utils')
+ @mock.patch.object(logging, 'root')
+ def test_set_log(self, mock_logging_root, *args):
+ task_obj = task.Task()
+ task_obj.task_id = 'task_id'
+ task_obj._set_log()
+ mock_logging_root.addHandler.assert_called()
+
+ def _get_file_abspath(self, filename):
+ curr_path = os.path.dirname(os.path.abspath(__file__))
+ file_path = os.path.join(curr_path, filename)
+ return file_path
+
+ def change_to_abspath(self, filepath):
+ return os.path.join(consts.YARDSTICK_ROOT_PATH, filepath)
+
+
+class TaskParserTestCase(unittest.TestCase):
+
+ TASK = """
+{% set value1 = value1 or 'var1' %}
+{% set value2 = value2 or 'var2' %}
+key1: {{ value1 }}
+key2:
+ - {{ value2 }}"""
+
+ TASK_RENDERED_1 = u"""
+
+
+key1: var1
+key2:
+ - var2"""
+
+ TASK_RENDERED_2 = u"""
+
+
+key1: var3
+key2:
+ - var4"""
+
+ def setUp(self):
+ self.parser = task.TaskParser('fake/path')
+ self.scenario = {
+ 'host': 'athena.demo',
+ 'target': 'kratos.demo',
+ 'targets': [
+ 'ares.demo', 'mars.demo'
+ ],
+ 'options': {
+ 'server_name': {
+ 'host': 'jupiter.demo',
+ 'target': 'saturn.demo',
+ },
+ },
+ 'nodes': {
+ 'tg__0': 'tg_0.demo',
+ 'vnf__0': 'vnf_0.demo',
+ }
+ }
+
+ @staticmethod
+ def _remove_contexts():
+ for context in base.Context.list:
+ context._delete_context()
+ base.Context.list = []
+
+ def test__change_node_names(self):
+
+ ctx_attrs = {
+ 'name': 'demo',
+ 'task_id': '1234567890',
+ 'servers': [
+ 'athena', 'kratos',
+ 'ares', 'mars',
+ 'jupiter', 'saturn',
+ 'tg_0', 'vnf_0'
+ ]
+ }
+
+ my_context = dummy.DummyContext()
+ self.addCleanup(self._remove_contexts)
+ my_context.init(ctx_attrs)
+
+ expected_scenario = {
+ 'host': 'athena.demo-12345678',
+ 'target': 'kratos.demo-12345678',
+ 'targets': [
+ 'ares.demo-12345678', 'mars.demo-12345678'
+ ],
+ 'options': {
+ 'server_name': {
+ 'host': 'jupiter.demo-12345678',
+ 'target': 'saturn.demo-12345678',
+ },
+ },
+ 'nodes': {
+ 'tg__0': 'tg_0.demo-12345678',
+ 'vnf__0': 'vnf_0.demo-12345678',
+ }
+ }
+
+ scenario = copy.deepcopy(self.scenario)
+
+ self.parser._change_node_names(scenario, [my_context])
+ self.assertEqual(scenario, expected_scenario)
+
+ def test__change_node_names_context_not_found(self):
+ scenario = copy.deepcopy(self.scenario)
+ self.assertRaises(exceptions.ScenarioConfigContextNameNotFound,
+ self.parser._change_node_names,
+ scenario, [])
+
+ def test__change_node_names_context_name_unchanged(self):
+ ctx_attrs = {
+ 'name': 'demo',
+ 'task_id': '1234567890',
+ 'flags': {
+ 'no_setup': True,
+ 'no_teardown': True
+ }
+ }
+
+ my_context = dummy.DummyContext()
+ self.addCleanup(self._remove_contexts)
+ my_context.init(ctx_attrs)
+
+ scenario = copy.deepcopy(self.scenario)
+ expected_scenario = copy.deepcopy(self.scenario)
+
+ self.parser._change_node_names(scenario, [my_context])
+ self.assertEqual(scenario, expected_scenario)
+
+ def test__change_node_names_options_empty(self):
+ ctx_attrs = {
+ 'name': 'demo',
+ 'task_id': '1234567890'
+ }
+
+ my_context = dummy.DummyContext()
+ self.addCleanup(self._remove_contexts)
+ my_context.init(ctx_attrs)
+ scenario = copy.deepcopy(self.scenario)
+ scenario['options'] = None
+
+ self.parser._change_node_names(scenario, [my_context])
+ self.assertIsNone(scenario['options'])
+
+ def test__change_node_names_options_server_name_empty(self):
+ ctx_attrs = {
+ 'name': 'demo',
+ 'task_id': '1234567890'
+ }
+
+ my_context = dummy.DummyContext()
+ self.addCleanup(self._remove_contexts)
+ my_context.init(ctx_attrs)
+ scenario = copy.deepcopy(self.scenario)
+ scenario['options']['server_name'] = None
+
+ self.parser._change_node_names(scenario, [my_context])
+ self.assertIsNone(scenario['options']['server_name'])
+
+ def test__change_node_names_target_map(self):
+ ctx_attrs = {
+ 'name': 'demo',
+ 'task_id': '1234567890'
+ }
+ my_context = dummy.DummyContext()
+ self.addCleanup(self._remove_contexts)
+ my_context.init(ctx_attrs)
+ scenario = copy.deepcopy(self.scenario)
+ scenario['nodes'] = {
+ 'tg__0': {
+ 'name': 'tg__0.demo',
+ 'public_ip_attr': "1.1.1.1",
+ },
+ 'vnf__0': {
+ 'name': 'vnf__0.demo',
+ 'public_ip_attr': "2.2.2.2",
+ }
+ }
+ self.parser._change_node_names(scenario, [my_context])
+ for target in scenario['nodes'].values():
+ self.assertIsInstance(target, collections.Mapping)
+
+ def test__change_node_names_not_target_map(self):
+ ctx_attrs = {
+ 'name': 'demo',
+ 'task_id': '1234567890'
+ }
+ my_context = dummy.DummyContext()
+ self.addCleanup(self._remove_contexts)
+ my_context.init(ctx_attrs)
+ scenario = copy.deepcopy(self.scenario)
+ self.parser._change_node_names(scenario, [my_context])
+ for target in scenario['nodes'].values():
+ self.assertNotIsInstance(target, collections.Mapping)
+
+ def test__parse_tasks(self):
+ task_obj = task.Task()
+ _uuid = uuid.uuid4()
+ task_obj.task_id = _uuid
+ task_files = ['/directory/task_file_name.yml']
+ mock_parser = mock.Mock()
+ mock_parser.parse_task.return_value = {'rendered': 'File content'}
+ mock_args = mock.Mock()
+ mock_args.render_only = False
+
+ tasks = task_obj._parse_tasks(mock_parser, task_files, mock_args,
+ ['arg1'], ['file_arg1'])
+ self.assertEqual(
+ [{'rendered': 'File content', 'case_name': 'task_file_name'}],
+ tasks)
+ mock_parser.parse_task.assert_called_once_with(
+ _uuid, 'arg1', 'file_arg1')
+
+ @mock.patch.object(sys, 'exit')
+ @mock.patch.object(utils, 'write_file')
+ @mock.patch.object(utils, 'makedirs')
+ def test__parse_tasks_render_only(self, mock_makedirs, mock_write_file,
+ mock_exit):
+ task_obj = task.Task()
+ _uuid = uuid.uuid4()
+ task_obj.task_id = _uuid
+ task_files = ['/directory/task_file_name.yml']
+ mock_parser = mock.Mock()
+ mock_parser.parse_task.return_value = {'rendered': 'File content'}
+ mock_args = mock.Mock()
+ mock_args.render_only = '/output_directory'
+
+ task_obj._parse_tasks(mock_parser, task_files, mock_args,
+ ['arg1'], ['file_arg1'])
+ mock_makedirs.assert_called_once_with('/output_directory')
+ mock_write_file.assert_called_once_with(
+ '/output_directory/000-task_file_name.yml', 'File content')
+ mock_exit.assert_called_once_with(0)
+
+ def test__render_task_no_args(self):
+ task_parser = task.TaskParser('task_file')
+ task_str = io.StringIO(six.text_type(self.TASK))
+ with mock.patch.object(six.moves.builtins, 'open',
+ return_value=task_str) as mock_open:
+ parsed, rendered = task_parser._render_task(None, None)
+
+ self.assertEqual(self.TASK_RENDERED_1, rendered)
+ self.assertEqual({'key1': 'var1', 'key2': ['var2']}, parsed)
+ mock_open.assert_called_once_with('task_file')
+
+ def test__render_task_arguments(self):
+ task_parser = task.TaskParser('task_file')
+ task_str = io.StringIO(six.text_type(self.TASK))
+ with mock.patch.object(six.moves.builtins, 'open',
+ return_value=task_str) as mock_open:
+ parsed, rendered = task_parser._render_task('value1: "var1"', None)
+
+ self.assertEqual(self.TASK_RENDERED_1, rendered)
+ self.assertEqual({'key1': 'var1', 'key2': ['var2']}, parsed)
+ mock_open.assert_called_once_with('task_file')
+
+ def test__render_task_file_arguments(self):
+ task_parser = task.TaskParser('task_file')
+ with mock.patch.object(six.moves.builtins, 'open') as mock_open:
+ mock_open.side_effect = (
+ io.StringIO(six.text_type('value2: var4')),
+ io.StringIO(six.text_type(self.TASK))
+ )
+ parsed, rendered = task_parser._render_task('value1: "var3"',
+ 'args_file')
+
+ self.assertEqual(self.TASK_RENDERED_2, rendered)
+ self.assertEqual({'key1': 'var3', 'key2': ['var4']}, parsed)
+ mock_open.assert_has_calls([mock.call('args_file'),
+ mock.call('task_file')])
+
+ @mock.patch.object(builtins, 'print')
+ def test__render_task_error_arguments(self, *args):
+ with self.assertRaises(exceptions.TaskRenderArgumentError):
+ task.TaskParser('task_file')._render_task('value1="var3"', None)
+
+ def test__render_task_error_task_file(self):
+ task_parser = task.TaskParser('task_file')
+ with mock.patch.object(six.moves.builtins, 'open') as mock_open:
+ mock_open.side_effect = (
+ io.StringIO(six.text_type('value2: var4')),
+ IOError()
+ )
+ with self.assertRaises(exceptions.TaskReadError):
+ task_parser._render_task('value1: "var3"', 'args_file')
+
+ mock_open.assert_has_calls([mock.call('args_file'),
+ mock.call('task_file')])
+
+ def test__render_task_render_error(self):
+ task_parser = task.TaskParser('task_file')
+ with mock.patch.object(six.moves.builtins, 'open') as mock_open, \
+ mock.patch.object(task_template.TaskTemplate, 'render',
+ side_effect=TypeError) as mock_render:
+ mock_open.side_effect = (
+ io.StringIO(six.text_type('value2: var4')),
+ io.StringIO(six.text_type(self.TASK))
+ )
+ with self.assertRaises(exceptions.TaskRenderError):
+ task_parser._render_task('value1: "var3"', 'args_file')
+
+ mock_open.assert_has_calls([mock.call('args_file'),
+ mock.call('task_file')])
+ mock_render.assert_has_calls(
+ [mock.call(self.TASK, value1='var3', value2='var4')])
diff --git a/tests/unit/benchmark/core/test_testcase.py b/yardstick/tests/unit/benchmark/core/test_testcase.py
index 1f5aad75e..077848d77 100644
--- a/tests/unit/benchmark/core/test_testcase.py
+++ b/yardstick/tests/unit/benchmark/core/test_testcase.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
@@ -9,37 +7,29 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Unittest for yardstick.cmd.commands.testcase
-
-from __future__ import absolute_import
-import unittest
+import mock
+from six.moves import builtins
from yardstick.benchmark.core import testcase
+from yardstick.tests.unit import base as ut_base
class Arg(object):
def __init__(self):
- self.casename = ('opnfv_yardstick_tc001',)
+ self.casename = ('opnfv_yardstick_tc001', )
-class TestcaseUT(unittest.TestCase):
+class TestcaseTestCase(ut_base.BaseUnitTestCase):
def test_list_all(self):
t = testcase.Testcase()
result = t.list_all("")
self.assertIsInstance(result, list)
- def test_show(self):
+ @mock.patch.object(builtins, 'print')
+ def test_show(self, *args):
t = testcase.Testcase()
casename = Arg()
result = t.show(casename)
self.assertTrue(result)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/core/with_constraint_no_args_scenario_sample.yaml b/yardstick/tests/unit/benchmark/core/with_constraint_no_args_scenario_sample.yaml
index 168d4b01a..168d4b01a 100644
--- a/tests/unit/benchmark/core/with_constraint_no_args_scenario_sample.yaml
+++ b/yardstick/tests/unit/benchmark/core/with_constraint_no_args_scenario_sample.yaml
diff --git a/tests/unit/benchmark/core/with_constraint_with_args_scenario_sample.yaml b/yardstick/tests/unit/benchmark/core/with_constraint_with_args_scenario_sample.yaml
index 299e5de56..299e5de56 100644
--- a/tests/unit/benchmark/core/with_constraint_with_args_scenario_sample.yaml
+++ b/yardstick/tests/unit/benchmark/core/with_constraint_with_args_scenario_sample.yaml
diff --git a/tests/unit/network_services/libs/ixia_libs/__init__.py b/yardstick/tests/unit/benchmark/runner/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/network_services/libs/ixia_libs/__init__.py
+++ b/yardstick/tests/unit/benchmark/runner/__init__.py
diff --git a/yardstick/tests/unit/benchmark/runner/test_arithmetic.py b/yardstick/tests/unit/benchmark/runner/test_arithmetic.py
new file mode 100644
index 000000000..35d935cd5
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/runner/test_arithmetic.py
@@ -0,0 +1,446 @@
+##############################################################################
+# Copyright (c) 2018 Nokia 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 mock
+import unittest
+import multiprocessing
+import os
+import time
+
+from yardstick.benchmark.runners import arithmetic
+from yardstick.common import exceptions as y_exc
+
+
+class ArithmeticRunnerTest(unittest.TestCase):
+ class MyMethod(object):
+ SLA_VALIDATION_ERROR_SIDE_EFFECT = 1
+ BROAD_EXCEPTION_SIDE_EFFECT = 2
+
+ def __init__(self, side_effect=0):
+ self.count = 101
+ self.side_effect = side_effect
+
+ def __call__(self, data):
+ self.count += 1
+ data['my_key'] = self.count
+ if self.side_effect == self.SLA_VALIDATION_ERROR_SIDE_EFFECT:
+ raise y_exc.SLAValidationError(case_name='My Case',
+ error_msg='my error message')
+ elif self.side_effect == self.BROAD_EXCEPTION_SIDE_EFFECT:
+ raise y_exc.YardstickException
+ return self.count
+
+ def setUp(self):
+ self.scenario_cfg = {
+ 'runner': {
+ 'interval': 0,
+ 'iter_type': 'nested_for_loops',
+ 'iterators': [
+ {
+ 'name': 'stride',
+ 'start': 64,
+ 'stop': 128,
+ 'step': 64
+ },
+ {
+ 'name': 'size',
+ 'start': 500,
+ 'stop': 2000,
+ 'step': 500
+ }
+ ]
+ },
+ 'type': 'some_type'
+ }
+
+ self.benchmark = mock.Mock()
+ self.benchmark_cls = mock.Mock(return_value=self.benchmark)
+
+ def _assert_defaults__worker_process_run_setup_and_teardown(self):
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+ self.benchmark.teardown.assert_called_once()
+
+ @mock.patch.object(os, 'getpid')
+ @mock.patch.object(multiprocessing, 'Process')
+ def test__run_benchmark_called_with(self, mock_multiprocessing_process,
+ mock_os_getpid):
+ mock_os_getpid.return_value = 101
+
+ runner = arithmetic.ArithmeticRunner({})
+ benchmark_cls = mock.Mock()
+ runner._run_benchmark(benchmark_cls, 'my_method', self.scenario_cfg,
+ {})
+ mock_multiprocessing_process.assert_called_once_with(
+ name='Arithmetic-some_type-101',
+ target=arithmetic._worker_process,
+ args=(runner.result_queue, benchmark_cls, 'my_method',
+ self.scenario_cfg, {}, runner.aborted, runner.output_queue))
+
+ @mock.patch.object(os, 'getpid')
+ def test__worker_process_runner_id(self, mock_os_getpid):
+ mock_os_getpid.return_value = 101
+
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self.assertEqual(self.scenario_cfg['runner']['runner_id'], 101)
+
+ @mock.patch.object(time, 'sleep')
+ def test__worker_process_calls_nested_for_loops(self, mock_time_sleep):
+ self.scenario_cfg['runner']['interval'] = 99
+
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.benchmark.my_method.assert_has_calls([mock.call({})] * 8)
+ self.assertEqual(self.benchmark.my_method.call_count, 8)
+ mock_time_sleep.assert_has_calls([mock.call(99)] * 8)
+ self.assertEqual(mock_time_sleep.call_count, 8)
+
+ @mock.patch.object(time, 'sleep')
+ def test__worker_process_calls_tuple_loops(self, mock_time_sleep):
+ self.scenario_cfg['runner']['interval'] = 99
+ self.scenario_cfg['runner']['iter_type'] = 'tuple_loops'
+
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.benchmark.my_method.assert_has_calls([mock.call({})] * 2)
+ self.assertEqual(self.benchmark.my_method.call_count, 2)
+ mock_time_sleep.assert_has_calls([mock.call(99)] * 2)
+ self.assertEqual(mock_time_sleep.call_count, 2)
+
+ def test__worker_process_stored_options_nested_for_loops(self):
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self.assertDictEqual(self.scenario_cfg['options'],
+ {'stride': 128, 'size': 2000})
+
+ def test__worker_process_stored_options_tuple_loops(self):
+ self.scenario_cfg['runner']['iter_type'] = 'tuple_loops'
+
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self.assertDictEqual(self.scenario_cfg['options'],
+ {'stride': 128, 'size': 1000})
+
+ def test__worker_process_aborted_set_early(self):
+ aborted = multiprocessing.Event()
+ aborted.set()
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ aborted, mock.Mock())
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.scenario_cfg['options'], {})
+ self.benchmark.my_method.assert_not_called()
+
+ def test__worker_process_output_queue_nested_for_loops(self):
+ self.benchmark.my_method = self.MyMethod()
+
+ output_queue = multiprocessing.Queue()
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), output_queue)
+ time.sleep(0.01)
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.count, 109)
+ result = []
+ while not output_queue.empty():
+ result.append(output_queue.get())
+ self.assertListEqual(result, [102, 103, 104, 105, 106, 107, 108, 109])
+
+ def test__worker_process_output_queue_tuple_loops(self):
+ self.scenario_cfg['runner']['iter_type'] = 'tuple_loops'
+ self.benchmark.my_method = self.MyMethod()
+
+ output_queue = multiprocessing.Queue()
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), output_queue)
+ time.sleep(0.01)
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.count, 103)
+ result = []
+ while not output_queue.empty():
+ result.append(output_queue.get())
+ self.assertListEqual(result, [102, 103])
+
+ def test__worker_process_queue_nested_for_loops(self):
+ self.benchmark.my_method = self.MyMethod()
+
+ queue = multiprocessing.Queue()
+ timestamp = time.time()
+ arithmetic._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+ time.sleep(0.01)
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.count, 109)
+ count = 0
+ while not queue.empty():
+ count += 1
+ result = queue.get()
+ self.assertEqual(result['errors'], '')
+ self.assertEqual(result['data'], {'my_key': count + 101})
+ self.assertEqual(result['sequence'], count)
+ self.assertGreater(result['timestamp'], timestamp)
+ timestamp = result['timestamp']
+
+ def test__worker_process_queue_tuple_loops(self):
+ self.scenario_cfg['runner']['iter_type'] = 'tuple_loops'
+ self.benchmark.my_method = self.MyMethod()
+
+ queue = multiprocessing.Queue()
+ timestamp = time.time()
+ arithmetic._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+ time.sleep(0.01)
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.count, 103)
+ count = 0
+ while not queue.empty():
+ count += 1
+ result = queue.get()
+ self.assertEqual(result['errors'], '')
+ self.assertEqual(result['data'], {'my_key': count + 101})
+ self.assertEqual(result['sequence'], count)
+ self.assertGreater(result['timestamp'], timestamp)
+ timestamp = result['timestamp']
+
+ def test__worker_process_except_sla_validation_error_no_sla_cfg(self):
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.call_count, 8)
+ self.assertDictEqual(self.scenario_cfg['options'],
+ {'stride': 128, 'size': 2000})
+
+ def test__worker_process_output_on_sla_validation_error_no_sla_cfg(self):
+ self.benchmark.my_method = self.MyMethod(
+ side_effect=self.MyMethod.SLA_VALIDATION_ERROR_SIDE_EFFECT)
+
+ queue = multiprocessing.Queue()
+ output_queue = multiprocessing.Queue()
+ timestamp = time.time()
+ arithmetic._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), output_queue)
+ time.sleep(0.01)
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.count, 109)
+ self.assertDictEqual(self.scenario_cfg['options'],
+ {'stride': 128, 'size': 2000})
+ count = 0
+ while not queue.empty():
+ count += 1
+ result = queue.get()
+ self.assertEqual(result['errors'], '')
+ self.assertEqual(result['data'], {'my_key': count + 101})
+ self.assertEqual(result['sequence'], count)
+ self.assertGreater(result['timestamp'], timestamp)
+ timestamp = result['timestamp']
+ self.assertEqual(count, 8)
+ self.assertTrue(output_queue.empty())
+
+ def test__worker_process_except_sla_validation_error_sla_cfg_monitor(self):
+ self.scenario_cfg['sla'] = {'action': 'monitor'}
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.call_count, 8)
+ self.assertDictEqual(self.scenario_cfg['options'],
+ {'stride': 128, 'size': 2000})
+
+ def test__worker_process_output_sla_validation_error_sla_cfg_monitor(self):
+ self.scenario_cfg['sla'] = {'action': 'monitor'}
+ self.benchmark.my_method = self.MyMethod(
+ side_effect=self.MyMethod.SLA_VALIDATION_ERROR_SIDE_EFFECT)
+
+ queue = multiprocessing.Queue()
+ output_queue = multiprocessing.Queue()
+ timestamp = time.time()
+ arithmetic._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), output_queue)
+ time.sleep(0.01)
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.count, 109)
+ self.assertDictEqual(self.scenario_cfg['options'],
+ {'stride': 128, 'size': 2000})
+ count = 0
+ while not queue.empty():
+ count += 1
+ result = queue.get()
+ self.assertEqual(result['errors'],
+ ('My Case SLA validation failed. '
+ 'Error: my error message',))
+ self.assertEqual(result['data'], {'my_key': count + 101})
+ self.assertEqual(result['sequence'], count)
+ self.assertGreater(result['timestamp'], timestamp)
+ timestamp = result['timestamp']
+ self.assertEqual(count, 8)
+ self.assertTrue(output_queue.empty())
+
+ def test__worker_process_raise_sla_validation_error_sla_cfg_assert(self):
+ self.scenario_cfg['sla'] = {'action': 'assert'}
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+
+ with self.assertRaises(y_exc.SLAValidationError):
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.my_method.assert_called_once()
+ self.benchmark.setup.assert_called_once()
+ self.benchmark.teardown.assert_not_called()
+
+ def test__worker_process_output_sla_validation_error_sla_cfg_assert(self):
+ self.scenario_cfg['sla'] = {'action': 'assert'}
+ self.benchmark.my_method = self.MyMethod(
+ side_effect=self.MyMethod.SLA_VALIDATION_ERROR_SIDE_EFFECT)
+
+ queue = multiprocessing.Queue()
+ output_queue = multiprocessing.Queue()
+ with self.assertRaisesRegexp(
+ y_exc.SLAValidationError,
+ 'My Case SLA validation failed. Error: my error message'):
+ arithmetic._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), output_queue)
+ time.sleep(0.01)
+
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+ self.assertEqual(self.benchmark.my_method.count, 102)
+ self.benchmark.teardown.assert_not_called()
+ self.assertTrue(queue.empty())
+ self.assertTrue(output_queue.empty())
+
+ def test__worker_process_broad_exception_no_sla_cfg_early_exit(self):
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.YardstickException)
+
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.benchmark.my_method.assert_called_once()
+ self.assertDictEqual(self.scenario_cfg['options'],
+ {'stride': 64, 'size': 500})
+
+ def test__worker_process_output_on_broad_exception_no_sla_cfg(self):
+ self.benchmark.my_method = self.MyMethod(
+ side_effect=self.MyMethod.BROAD_EXCEPTION_SIDE_EFFECT)
+
+ queue = multiprocessing.Queue()
+ output_queue = multiprocessing.Queue()
+ timestamp = time.time()
+ arithmetic._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), output_queue)
+ time.sleep(0.01)
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.count, 102)
+ self.assertDictEqual(self.scenario_cfg['options'],
+ {'stride': 64, 'size': 500})
+ self.assertEqual(queue.qsize(), 1)
+ result = queue.get()
+ self.assertGreater(result['timestamp'], timestamp)
+ self.assertEqual(result['data'], {'my_key': 102})
+ self.assertRegexpMatches(
+ result['errors'],
+ 'YardstickException: An unknown exception occurred.')
+ self.assertEqual(result['sequence'], 1)
+ self.assertTrue(output_queue.empty())
+
+ def test__worker_process_broad_exception_sla_cfg_not_none(self):
+ self.scenario_cfg['sla'] = {'action': 'some action'}
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.YardstickException)
+
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.call_count, 8)
+ self.assertDictEqual(self.scenario_cfg['options'],
+ {'stride': 128, 'size': 2000})
+
+ def test__worker_process_output_on_broad_exception_sla_cfg_not_none(self):
+ self.scenario_cfg['sla'] = {'action': 'some action'}
+ self.benchmark.my_method = self.MyMethod(
+ side_effect=self.MyMethod.BROAD_EXCEPTION_SIDE_EFFECT)
+
+ queue = multiprocessing.Queue()
+ output_queue = multiprocessing.Queue()
+ timestamp = time.time()
+ arithmetic._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), output_queue)
+ time.sleep(0.01)
+
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.count, 109)
+ self.assertDictEqual(self.scenario_cfg['options'],
+ {'stride': 128, 'size': 2000})
+ self.assertTrue(output_queue.empty())
+ count = 0
+ while not queue.empty():
+ count += 1
+ result = queue.get()
+ self.assertGreater(result['timestamp'], timestamp)
+ self.assertEqual(result['data'], {'my_key': count + 101})
+ self.assertRegexpMatches(
+ result['errors'],
+ 'YardstickException: An unknown exception occurred.')
+ self.assertEqual(result['sequence'], count)
+
+ def test__worker_process_benchmark_teardown_on_broad_exception(self):
+ self.benchmark.teardown = mock.Mock(
+ side_effect=y_exc.YardstickException)
+
+ with self.assertRaises(SystemExit) as raised:
+ arithmetic._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+ self.assertEqual(raised.exception.code, 1)
+ self._assert_defaults__worker_process_run_setup_and_teardown()
+ self.assertEqual(self.benchmark.my_method.call_count, 8)
diff --git a/yardstick/tests/unit/benchmark/runner/test_base.py b/yardstick/tests/unit/benchmark/runner/test_base.py
new file mode 100644
index 000000000..07d6f1843
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/runner/test_base.py
@@ -0,0 +1,119 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 time
+
+import mock
+import subprocess
+
+from yardstick.benchmark.runners import base as runner_base
+from yardstick.benchmark.runners import iteration
+from yardstick.tests.unit import base as ut_base
+
+
+class ActionTestCase(ut_base.BaseUnitTestCase):
+
+ def setUp(self):
+ self._mock_log = mock.patch.object(runner_base.log, 'error')
+ self.mock_log = self._mock_log.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_log.stop()
+
+ @mock.patch.object(subprocess, 'check_output')
+ def test__execute_shell_command(self, mock_subprocess):
+ mock_subprocess.side_effect = subprocess.CalledProcessError(-1, '')
+ self.assertEqual(runner_base._execute_shell_command("")[0], -1)
+
+ @mock.patch.object(subprocess, 'check_output')
+ def test__single_action(self, mock_subprocess):
+ mock_subprocess.side_effect = subprocess.CalledProcessError(-1, '')
+ runner_base._single_action(0, 'echo', mock.Mock())
+
+ @mock.patch.object(subprocess, 'check_output')
+ def test__periodic_action(self, mock_subprocess):
+ mock_subprocess.side_effect = subprocess.CalledProcessError(-1, '')
+ runner_base._periodic_action(0, 'echo', mock.Mock())
+
+
+class ScenarioOutputTestCase(ut_base.BaseUnitTestCase):
+
+ def setUp(self):
+ self.output_queue = mock.Mock()
+ self.scenario_output = runner_base.ScenarioOutput(self.output_queue,
+ sequence=1)
+
+ @mock.patch.object(time, 'time')
+ def test_push(self, mock_time):
+ mock_time.return_value = 2
+ data = {"value1": 1}
+ self.scenario_output.push(data)
+ self.output_queue.put.assert_called_once_with({'timestamp': 2,
+ 'sequence': 1,
+ 'data': data}, True, 10)
+
+ def test_push_no_timestamp(self):
+ self.scenario_output["value1"] = 1
+ self.scenario_output.push(None, False)
+ self.output_queue.put.assert_called_once_with({'sequence': 1,
+ 'value1': 1}, True, 10)
+
+
+class RunnerTestCase(ut_base.BaseUnitTestCase):
+
+ def setUp(self):
+ config = {
+ 'output_config': {
+ 'DEFAULT': {
+ 'dispatcher': 'file'
+ }
+ }
+ }
+ self.runner = iteration.IterationRunner(config)
+
+ @mock.patch("yardstick.benchmark.runners.iteration.multiprocessing")
+ def test_get_output(self, *args):
+ self.runner.output_queue.put({'case': 'opnfv_yardstick_tc002'})
+ self.runner.output_queue.put({'criteria': 'PASS'})
+
+ idle_result = {
+ 'case': 'opnfv_yardstick_tc002',
+ 'criteria': 'PASS'
+ }
+
+ for _ in range(1000):
+ time.sleep(0.01)
+ if not self.runner.output_queue.empty():
+ break
+ actual_result = self.runner.get_output()
+ self.assertEqual(idle_result, actual_result)
+
+ @mock.patch("yardstick.benchmark.runners.iteration.multiprocessing")
+ def test_get_result(self, *args):
+ self.runner.result_queue.put({'case': 'opnfv_yardstick_tc002'})
+ self.runner.result_queue.put({'criteria': 'PASS'})
+
+ idle_result = [
+ {'case': 'opnfv_yardstick_tc002'},
+ {'criteria': 'PASS'}
+ ]
+
+ for _ in range(1000):
+ time.sleep(0.01)
+ if not self.runner.result_queue.empty():
+ break
+ actual_result = self.runner.get_result()
+ self.assertEqual(idle_result, actual_result)
+
+ def test__run_benchmark(self):
+ runner = runner_base.Runner(mock.Mock())
+
+ with self.assertRaises(NotImplementedError):
+ runner._run_benchmark(mock.Mock(), mock.Mock(), mock.Mock(), mock.Mock())
diff --git a/yardstick/tests/unit/benchmark/runner/test_duration.py b/yardstick/tests/unit/benchmark/runner/test_duration.py
new file mode 100644
index 000000000..fa47e96bf
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/runner/test_duration.py
@@ -0,0 +1,315 @@
+##############################################################################
+# Copyright (c) 2018 Nokia 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 mock
+import unittest
+import multiprocessing
+import os
+import time
+
+from yardstick.benchmark.runners import duration
+from yardstick.common import exceptions as y_exc
+
+
+class DurationRunnerTest(unittest.TestCase):
+ class MyMethod(object):
+ SLA_VALIDATION_ERROR_SIDE_EFFECT = 1
+ BROAD_EXCEPTION_SIDE_EFFECT = 2
+
+ def __init__(self, side_effect=0):
+ self.count = 101
+ self.side_effect = side_effect
+
+ def __call__(self, data):
+ self.count += 1
+ data['my_key'] = self.count
+ if self.side_effect == self.SLA_VALIDATION_ERROR_SIDE_EFFECT:
+ raise y_exc.SLAValidationError(case_name='My Case',
+ error_msg='my error message')
+ elif self.side_effect == self.BROAD_EXCEPTION_SIDE_EFFECT:
+ raise y_exc.YardstickException
+ return self.count
+
+ def setUp(self):
+ self.scenario_cfg = {
+ 'runner': {'interval': 0, "duration": 0},
+ 'type': 'some_type'
+ }
+
+ self.benchmark = mock.Mock()
+ self.benchmark_cls = mock.Mock(return_value=self.benchmark)
+
+ def _assert_defaults__worker_run_setup_and_teardown(self):
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+ self.benchmark.teardown.assert_called_once()
+
+ def _assert_defaults__worker_run_one_iteration(self):
+ self.benchmark.pre_run_wait_time.assert_called_once_with(0)
+ self.benchmark.my_method.assert_called_once_with({})
+ self.benchmark.post_run_wait_time.assert_called_once_with(0)
+
+ @mock.patch.object(os, 'getpid')
+ @mock.patch.object(multiprocessing, 'Process')
+ def test__run_benchmark_called_with(self, mock_multiprocessing_process,
+ mock_os_getpid):
+ mock_os_getpid.return_value = 101
+
+ runner = duration.DurationRunner({})
+ benchmark_cls = mock.Mock()
+ runner._run_benchmark(benchmark_cls, 'my_method', self.scenario_cfg,
+ {})
+ mock_multiprocessing_process.assert_called_once_with(
+ name='Duration-some_type-101',
+ target=duration._worker_process,
+ args=(runner.result_queue, benchmark_cls, 'my_method',
+ self.scenario_cfg, {}, runner.aborted, runner.output_queue))
+
+ @mock.patch.object(os, 'getpid')
+ def test__worker_process_runner_id(self, mock_os_getpid):
+ mock_os_getpid.return_value = 101
+
+ duration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self.assertEqual(self.scenario_cfg['runner']['runner_id'], 101)
+
+ def test__worker_process_called_with_cfg(self):
+ duration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self._assert_defaults__worker_run_one_iteration()
+
+ def test__worker_process_called_with_cfg_loop(self):
+ self.scenario_cfg['runner']['duration'] = 0.01
+
+ duration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self.assertGreater(self.benchmark.pre_run_wait_time.call_count, 0)
+ self.assertGreater(self.benchmark.my_method.call_count, 0)
+ self.assertGreater(self.benchmark.post_run_wait_time.call_count, 0)
+
+ def test__worker_process_called_without_cfg(self):
+ scenario_cfg = {'runner': {}}
+ aborted = multiprocessing.Event()
+ aborted.set()
+
+ duration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ scenario_cfg, {}, aborted, mock.Mock())
+
+ self.benchmark_cls.assert_called_once_with(scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+ self.benchmark.pre_run_wait_time.assert_called_once_with(1)
+ self.benchmark.my_method.assert_called_once_with({})
+ self.benchmark.post_run_wait_time.assert_called_once_with(1)
+ self.benchmark.teardown.assert_called_once()
+
+ def test__worker_process_output_queue(self):
+ self.benchmark.my_method = mock.Mock(return_value='my_result')
+
+ output_queue = multiprocessing.Queue()
+ duration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), output_queue)
+ time.sleep(0.1)
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self._assert_defaults__worker_run_one_iteration()
+ self.assertEquals(output_queue.get(), 'my_result')
+
+ def test__worker_process_output_queue_multiple_iterations(self):
+ self.scenario_cfg['runner']['duration'] = 0.01
+ self.benchmark.my_method = self.MyMethod()
+
+ output_queue = multiprocessing.Queue()
+ duration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), output_queue)
+ time.sleep(0.1)
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self.assertGreater(self.benchmark.pre_run_wait_time.call_count, 0)
+ self.assertGreater(self.benchmark.my_method.count, 1)
+ self.assertGreater(self.benchmark.post_run_wait_time.call_count, 0)
+
+ count = 101
+ while not output_queue.empty():
+ count += 1
+ self.assertEquals(output_queue.get(), count)
+
+ def test__worker_process_queue(self):
+ self.benchmark.my_method = self.MyMethod()
+
+ queue = multiprocessing.Queue()
+ timestamp = time.time()
+ duration._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+ time.sleep(0.1)
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self.benchmark.pre_run_wait_time.assert_called_once_with(0)
+ self.benchmark.post_run_wait_time.assert_called_once_with(0)
+
+ result = queue.get()
+ self.assertGreater(result['timestamp'], timestamp)
+ self.assertEqual(result['errors'], '')
+ self.assertEqual(result['data'], {'my_key': 102})
+ self.assertEqual(result['sequence'], 1)
+
+ def test__worker_process_queue_multiple_iterations(self):
+ self.scenario_cfg['runner']['duration'] = 0.5
+ self.benchmark.my_method = self.MyMethod()
+
+ queue = multiprocessing.Queue()
+ timestamp = time.time()
+ duration._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+ time.sleep(0.1)
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self.assertGreater(self.benchmark.pre_run_wait_time.call_count, 0)
+ self.assertGreater(self.benchmark.my_method.count, 1)
+ self.assertGreater(self.benchmark.post_run_wait_time.call_count, 0)
+
+ count = 0
+ while not queue.empty():
+ count += 1
+ result = queue.get()
+ self.assertGreater(result['timestamp'], timestamp)
+ self.assertEqual(result['errors'], '')
+ self.assertEqual(result['data'], {'my_key': count + 101})
+ self.assertEqual(result['sequence'], count)
+
+ def test__worker_process_except_sla_validation_error_no_sla_cfg(self):
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+
+ duration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self._assert_defaults__worker_run_one_iteration()
+
+ def test__worker_process_except_sla_validation_error_sla_cfg_monitor(self):
+ self.scenario_cfg['sla'] = {'action': 'monitor'}
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+
+ duration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self._assert_defaults__worker_run_one_iteration()
+
+ def test__worker_process_raise_sla_validation_error_sla_cfg_default(self):
+ self.scenario_cfg['sla'] = {}
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+
+ with self.assertRaises(y_exc.SLAValidationError):
+ duration._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+ self.benchmark.pre_run_wait_time.assert_called_once_with(0)
+ self.benchmark.my_method.assert_called_once_with({})
+
+ def test__worker_process_raise_sla_validation_error_sla_cfg_assert(self):
+ self.scenario_cfg['sla'] = {'action': 'assert'}
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+
+ with self.assertRaises(y_exc.SLAValidationError):
+ duration._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+ self.benchmark.pre_run_wait_time.assert_called_once_with(0)
+ self.benchmark.my_method.assert_called_once_with({})
+
+ def test__worker_process_queue_on_sla_validation_error_monitor(self):
+ self.scenario_cfg['sla'] = {'action': 'monitor'}
+ self.benchmark.my_method = self.MyMethod(
+ side_effect=self.MyMethod.SLA_VALIDATION_ERROR_SIDE_EFFECT)
+
+ queue = multiprocessing.Queue()
+ timestamp = time.time()
+ duration._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+ time.sleep(0.1)
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self.benchmark.pre_run_wait_time.assert_called_once_with(0)
+ self.benchmark.post_run_wait_time.assert_called_once_with(0)
+
+ result = queue.get()
+ self.assertGreater(result['timestamp'], timestamp)
+ self.assertEqual(result['errors'], ('My Case SLA validation failed. '
+ 'Error: my error message',))
+ self.assertEqual(result['data'], {'my_key': 102})
+ self.assertEqual(result['sequence'], 1)
+
+ def test__worker_process_broad_exception(self):
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.YardstickException)
+
+ duration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self._assert_defaults__worker_run_one_iteration()
+
+ def test__worker_process_queue_on_broad_exception(self):
+ self.benchmark.my_method = self.MyMethod(
+ side_effect=self.MyMethod.BROAD_EXCEPTION_SIDE_EFFECT)
+
+ queue = multiprocessing.Queue()
+ timestamp = time.time()
+ duration._worker_process(queue, self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+ time.sleep(0.1)
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self.benchmark.pre_run_wait_time.assert_called_once_with(0)
+ self.benchmark.post_run_wait_time.assert_called_once_with(0)
+
+ result = queue.get()
+ self.assertGreater(result['timestamp'], timestamp)
+ self.assertNotEqual(result['errors'], '')
+ self.assertEqual(result['data'], {'my_key': 102})
+ self.assertEqual(result['sequence'], 1)
+
+ def test__worker_process_benchmark_teardown_on_broad_exception(self):
+ self.benchmark.teardown = mock.Mock(
+ side_effect=y_exc.YardstickException)
+
+ with self.assertRaises(SystemExit) as raised:
+ duration._worker_process(mock.Mock(), self.benchmark_cls,
+ 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+ self.assertEqual(raised.exception.code, 1)
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self._assert_defaults__worker_run_one_iteration()
diff --git a/yardstick/tests/unit/benchmark/runner/test_iteration.py b/yardstick/tests/unit/benchmark/runner/test_iteration.py
new file mode 100644
index 000000000..783b236f5
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/runner/test_iteration.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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 mock
+import unittest
+import multiprocessing
+from yardstick.benchmark.runners import iteration
+from yardstick.common import exceptions as y_exc
+
+
+class IterationRunnerTest(unittest.TestCase):
+ def setUp(self):
+ self.scenario_cfg = {
+ 'runner': {'interval': 0, "duration": 0},
+ 'type': 'some_type'
+ }
+
+ self.benchmark = mock.Mock()
+ self.benchmark_cls = mock.Mock(return_value=self.benchmark)
+
+ def _assert_defaults__worker_run_setup_and_teardown(self):
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+
+ def _assert_defaults__worker_run_one_iteration(self):
+ self.benchmark.pre_run_wait_time.assert_called_once_with(0)
+ self.benchmark.my_method.assert_called_once_with({})
+
+ def test__worker_process_broad_exception(self):
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.YardstickException)
+
+ with self.assertRaises(Exception):
+ iteration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_one_iteration()
+ self._assert_defaults__worker_run_setup_and_teardown()
diff --git a/yardstick/tests/unit/benchmark/runner/test_proxduration.py b/yardstick/tests/unit/benchmark/runner/test_proxduration.py
new file mode 100644
index 000000000..056195fd3
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/runner/test_proxduration.py
@@ -0,0 +1,286 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+import unittest
+import multiprocessing
+import os
+
+from yardstick.benchmark.runners import proxduration
+from yardstick.common import constants
+from yardstick.common import exceptions as y_exc
+
+
+class ProxDurationRunnerTest(unittest.TestCase):
+
+ class MyMethod(object):
+ SLA_VALIDATION_ERROR_SIDE_EFFECT = 1
+ BROAD_EXCEPTION_SIDE_EFFECT = 2
+
+ def __init__(self, side_effect=0):
+ self.count = 101
+ self.side_effect = side_effect
+
+ def __call__(self, data):
+ self.count += 1
+ data['my_key'] = self.count
+ if self.side_effect == self.SLA_VALIDATION_ERROR_SIDE_EFFECT:
+ raise y_exc.SLAValidationError(case_name='My Case',
+ error_msg='my error message')
+ elif self.side_effect == self.BROAD_EXCEPTION_SIDE_EFFECT:
+ raise y_exc.YardstickException
+ return self.count
+
+ def setUp(self):
+ self.scenario_cfg = {
+ 'runner': {'interval': 0, "duration": 0},
+ 'type': 'some_type'
+ }
+
+ self.benchmark = mock.Mock()
+ self.benchmark_cls = mock.Mock(return_value=self.benchmark)
+
+ def _assert_defaults__worker_run_setup_and_teardown(self):
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+ self.benchmark.teardown.assert_called_once()
+
+ @mock.patch.object(os, 'getpid')
+ @mock.patch.object(multiprocessing, 'Process')
+ def test__run_benchmark_called_with(self, mock_multiprocessing_process,
+ mock_os_getpid):
+ mock_os_getpid.return_value = 101
+
+ runner = proxduration.ProxDurationRunner({})
+ benchmark_cls = mock.Mock()
+ runner._run_benchmark(benchmark_cls, 'my_method', self.scenario_cfg,
+ {})
+ mock_multiprocessing_process.assert_called_once_with(
+ name='ProxDuration-some_type-101',
+ target=proxduration._worker_process,
+ args=(runner.result_queue, benchmark_cls, 'my_method',
+ self.scenario_cfg, {}, runner.aborted, runner.output_queue))
+
+ @mock.patch.object(os, 'getpid')
+ def test__worker_process_runner_id(self, mock_os_getpid):
+ mock_os_getpid.return_value = 101
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method', self.scenario_cfg,
+ {}, multiprocessing.Event(), mock.Mock())
+
+ self.assertEqual(101, self.scenario_cfg['runner']['runner_id'])
+
+ def test__worker_process_called_with_cfg(self):
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method', self.scenario_cfg,
+ {}, multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+
+ def test__worker_process_called_with_cfg_loop(self):
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method', self.scenario_cfg,
+ {}, multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ self.assertGreater(self.benchmark.my_method.call_count, 0)
+
+ def test__worker_process_called_without_cfg(self):
+ scenario_cfg = {'runner': {}}
+ aborted = multiprocessing.Event()
+ aborted.set()
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method', scenario_cfg, {},
+ aborted, mock.Mock())
+
+ self.benchmark_cls.assert_called_once_with(scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+ self.benchmark.teardown.assert_called_once()
+
+ def test__worker_process_output_queue(self):
+ self.benchmark.my_method = mock.Mock(return_value='my_result')
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ output_queue = mock.Mock()
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method', self.scenario_cfg,
+ {}, multiprocessing.Event(), output_queue)
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ output_queue.put.assert_has_calls(
+ [mock.call('my_result', True, constants.QUEUE_PUT_TIMEOUT)])
+
+ def test__worker_process_output_queue_multiple_iterations(self):
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ self.benchmark.my_method = self.MyMethod()
+ output_queue = mock.Mock()
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method', self.scenario_cfg,
+ {}, multiprocessing.Event(), output_queue)
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ for idx in range(102, 101 + len(output_queue.method_calls)):
+ output_queue.put.assert_has_calls(
+ [mock.call(idx, True, constants.QUEUE_PUT_TIMEOUT)])
+
+ def test__worker_process_queue(self):
+ self.benchmark.my_method = self.MyMethod()
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ queue = mock.Mock()
+ proxduration._worker_process(
+ queue, self.benchmark_cls, 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ benchmark_output = {'timestamp': mock.ANY,
+ 'sequence': 1,
+ 'data': {'my_key': 102},
+ 'errors': ''}
+ queue.put.assert_has_calls(
+ [mock.call(benchmark_output, True, constants.QUEUE_PUT_TIMEOUT)])
+
+ def test__worker_process_queue_multiple_iterations(self):
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ self.benchmark.my_method = self.MyMethod()
+ queue = mock.Mock()
+ proxduration._worker_process(
+ queue, self.benchmark_cls, 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ for idx in range(102, 101 + len(queue.method_calls)):
+ benchmark_output = {'timestamp': mock.ANY,
+ 'sequence': idx - 101,
+ 'data': {'my_key': idx},
+ 'errors': ''}
+ queue.put.assert_has_calls(
+ [mock.call(benchmark_output, True,
+ constants.QUEUE_PUT_TIMEOUT)])
+
+ def test__worker_process_except_sla_validation_error_no_sla_cfg(self):
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method', self.scenario_cfg,
+ {}, multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+
+ @mock.patch.object(proxduration.LOG, 'warning')
+ def test__worker_process_except_sla_validation_error_sla_cfg_monitor(
+ self, *args):
+ self.scenario_cfg['sla'] = {'action': 'monitor'}
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method', self.scenario_cfg,
+ {}, multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+
+ def test__worker_process_raise_sla_validation_error_sla_cfg_default(self):
+ self.scenario_cfg['sla'] = {}
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+ with self.assertRaises(y_exc.SLAValidationError):
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {}, multiprocessing.Event(), mock.Mock())
+
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+ self.benchmark.my_method.assert_called_once_with({})
+
+ def test__worker_process_raise_sla_validation_error_sla_cfg_assert(self):
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ self.scenario_cfg['sla'] = {'action': 'assert'}
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.SLAValidationError)
+
+ with self.assertRaises(y_exc.SLAValidationError):
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {}, multiprocessing.Event(), mock.Mock())
+
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+ self.benchmark.my_method.assert_called_once_with({})
+
+ @mock.patch.object(proxduration.LOG, 'warning')
+ def test__worker_process_queue_on_sla_validation_error_monitor(
+ self, *args):
+ self.scenario_cfg['sla'] = {'action': 'monitor'}
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ self.benchmark.my_method = self.MyMethod(
+ side_effect=self.MyMethod.SLA_VALIDATION_ERROR_SIDE_EFFECT)
+ queue = mock.Mock()
+ proxduration._worker_process(
+ queue, self.benchmark_cls, 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+ benchmark_output = {'timestamp': mock.ANY,
+ 'sequence': 1,
+ 'data': {'my_key': 102},
+ 'errors': ('My Case SLA validation failed. '
+ 'Error: my error message', )}
+ queue.put.assert_has_calls(
+ [mock.call(benchmark_output, True, constants.QUEUE_PUT_TIMEOUT)])
+
+ @mock.patch.object(proxduration.LOG, 'exception')
+ def test__worker_process_broad_exception(self, *args):
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.YardstickException)
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {}, multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_setup_and_teardown()
+
+ @mock.patch.object(proxduration.LOG, 'exception')
+ def test__worker_process_queue_on_broad_exception(self, *args):
+ self.benchmark.my_method = self.MyMethod(
+ side_effect=self.MyMethod.BROAD_EXCEPTION_SIDE_EFFECT)
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+ queue = mock.Mock()
+ proxduration._worker_process(
+ queue, self.benchmark_cls, 'my_method', self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ benchmark_output = {'timestamp': mock.ANY,
+ 'sequence': 1,
+ 'data': {'my_key': 102},
+ 'errors': mock.ANY}
+ queue.put.assert_has_calls(
+ [mock.call(benchmark_output, True, constants.QUEUE_PUT_TIMEOUT)])
+
+ @mock.patch.object(proxduration.LOG, 'exception')
+ def test__worker_process_benchmark_teardown_on_broad_exception(
+ self, *args):
+ self.benchmark.teardown = mock.Mock(
+ side_effect=y_exc.YardstickException)
+ self.scenario_cfg["runner"] = {"sampled": True, "duration": 0.1}
+
+ with self.assertRaises(SystemExit) as raised:
+ proxduration._worker_process(
+ mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {}, multiprocessing.Event(), mock.Mock())
+ self.assertEqual(1, raised.exception.code)
+ self._assert_defaults__worker_run_setup_and_teardown()
diff --git a/tests/unit/benchmark/runner/test_search.py b/yardstick/tests/unit/benchmark/runner/test_search.py
index 8fab5a71f..d5d1b8ded 100644
--- a/tests/unit/benchmark/runner/test_search.py
+++ b/yardstick/tests/unit/benchmark/runner/test_search.py
@@ -11,65 +11,56 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
-from __future__ import absolute_import
+import time
-import unittest
import mock
+import unittest
-from tests.unit import STL_MOCKS
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.benchmark.runners.search import SearchRunner
- from yardstick.benchmark.runners.search import SearchRunnerHelper
+from yardstick.benchmark.runners.search import SearchRunner
+from yardstick.benchmark.runners.search import SearchRunnerHelper
+from yardstick.common import exceptions as y_exc
class TestSearchRunnerHelper(unittest.TestCase):
def test___call__(self):
- cls = mock.MagicMock()
- aborted = mock.MagicMock()
scenario_cfg = {
'runner': {},
}
- benchmark = cls()
- method = getattr(benchmark, 'my_method')
- helper = SearchRunnerHelper(cls, 'my_method', scenario_cfg, {}, aborted)
+ benchmark = mock.Mock()
+ method = getattr(benchmark(), 'my_method')
+ helper = SearchRunnerHelper(
+ benchmark, 'my_method', scenario_cfg, {}, mock.Mock())
with helper.get_benchmark_instance():
helper()
- self.assertEqual(method.call_count, 1)
+ method.assert_called_once()
def test___call___error(self):
- cls = mock.MagicMock()
- aborted = mock.MagicMock()
scenario_cfg = {
'runner': {},
}
- helper = SearchRunnerHelper(cls, 'my_method', scenario_cfg, {}, aborted)
+ helper = SearchRunnerHelper(
+ mock.Mock(), 'my_method', scenario_cfg, {}, mock.Mock())
with self.assertRaises(RuntimeError):
helper()
- @mock.patch('yardstick.benchmark.runners.search.time')
- def test_is_not_done(self, mock_time):
- cls = mock.MagicMock()
- aborted = mock.MagicMock()
+ @mock.patch.object(time, 'sleep')
+ @mock.patch.object(time, 'time')
+ def test_is_not_done(self, mock_time, *args):
scenario_cfg = {
'runner': {},
}
- mock_time.time.side_effect = range(1000)
+ mock_time.side_effect = range(1000)
- helper = SearchRunnerHelper(cls, 'my_method', scenario_cfg, {}, aborted)
+ helper = SearchRunnerHelper(
+ mock.Mock(), 'my_method', scenario_cfg, {}, mock.Mock())
index = -1
for index in helper.is_not_done():
@@ -78,17 +69,16 @@ class TestSearchRunnerHelper(unittest.TestCase):
self.assertGreaterEqual(index, 10)
- @mock.patch('yardstick.benchmark.runners.search.time')
- def test_is_not_done_immediate_stop(self, mock_time):
- cls = mock.MagicMock()
- aborted = mock.MagicMock()
+ @mock.patch.object(time, 'sleep')
+ def test_is_not_done_immediate_stop(self, *args):
scenario_cfg = {
'runner': {
'run_step': '',
},
}
- helper = SearchRunnerHelper(cls, 'my_method', scenario_cfg, {}, aborted)
+ helper = SearchRunnerHelper(
+ mock.Mock(), 'my_method', scenario_cfg, {}, mock.Mock())
index = -1
for index in helper.is_not_done():
@@ -97,6 +87,7 @@ class TestSearchRunnerHelper(unittest.TestCase):
self.assertEqual(index, -1)
+
class TestSearchRunner(unittest.TestCase):
def test__worker_run_once(self):
@@ -114,7 +105,7 @@ class TestSearchRunner(unittest.TestCase):
}
runner = SearchRunner({})
- runner.worker_helper = mock.MagicMock(side_effect=update)
+ runner.worker_helper = mock.Mock(side_effect=update)
self.assertFalse(runner._worker_run_once('sequence 1'))
@@ -138,51 +129,49 @@ class TestSearchRunner(unittest.TestCase):
}
runner = SearchRunner({})
- runner.worker_helper = mock.MagicMock(side_effect=update)
+ runner.worker_helper = mock.Mock(side_effect=update)
self.assertTrue(runner._worker_run_once('sequence 1'))
def test__worker_run_once_assertion_error_assert(self):
runner = SearchRunner({})
runner.sla_action = 'assert'
- runner.worker_helper = mock.MagicMock(side_effect=AssertionError)
+ runner.worker_helper = mock.Mock(side_effect=y_exc.SLAValidationError)
- with self.assertRaises(AssertionError):
+ with self.assertRaises(y_exc.SLAValidationError):
runner._worker_run_once('sequence 1')
def test__worker_run_once_assertion_error_monitor(self):
runner = SearchRunner({})
runner.sla_action = 'monitor'
- runner.worker_helper = mock.MagicMock(side_effect=AssertionError)
+ runner.worker_helper = mock.Mock(side_effect=y_exc.SLAValidationError)
self.assertFalse(runner._worker_run_once('sequence 1'))
def test__worker_run_once_non_assertion_error_none(self):
runner = SearchRunner({})
- runner.worker_helper = mock.MagicMock(side_effect=RuntimeError)
+ runner.worker_helper = mock.Mock(side_effect=RuntimeError)
self.assertTrue(runner._worker_run_once('sequence 1'))
def test__worker_run_once_non_assertion_error(self):
runner = SearchRunner({})
runner.sla_action = 'monitor'
- runner.worker_helper = mock.MagicMock(side_effect=RuntimeError)
+ runner.worker_helper = mock.Mock(side_effect=RuntimeError)
self.assertFalse(runner._worker_run_once('sequence 1'))
def test__worker_run(self):
- cls = mock.MagicMock()
scenario_cfg = {
'runner': {'interval': 0, 'timeout': 1},
}
runner = SearchRunner({})
- runner._worker_run_once = mock.MagicMock(side_effect=[0, 0, 1])
+ runner._worker_run_once = mock.Mock(side_effect=[0, 0, 1])
- runner._worker_run(cls, 'my_method', scenario_cfg, {})
+ runner._worker_run(mock.Mock(), 'my_method', scenario_cfg, {})
def test__worker_run_immediate_stop(self):
- cls = mock.MagicMock()
scenario_cfg = {
'runner': {
'run_step': '',
@@ -190,15 +179,14 @@ class TestSearchRunner(unittest.TestCase):
}
runner = SearchRunner({})
- runner._worker_run(cls, 'my_method', scenario_cfg, {})
+ runner._worker_run(mock.Mock(), 'my_method', scenario_cfg, {})
@mock.patch('yardstick.benchmark.runners.search.multiprocessing')
def test__run_benchmark(self, mock_multi_process):
- cls = mock.MagicMock()
scenario_cfg = {
'runner': {},
}
runner = SearchRunner({})
- runner._run_benchmark(cls, 'my_method', scenario_cfg, {})
- self.assertEqual(mock_multi_process.Process.call_count, 1)
+ runner._run_benchmark(mock.Mock(), 'my_method', scenario_cfg, {})
+ mock_multi_process.Process.assert_called_once()
diff --git a/tests/unit/network_services/nfvi/__init__.py b/yardstick/tests/unit/benchmark/scenarios/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/network_services/nfvi/__init__.py
+++ b/yardstick/tests/unit/benchmark/scenarios/__init__.py
diff --git a/tests/unit/network_services/traffic_profile/__init__.py b/yardstick/tests/unit/benchmark/scenarios/availability/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/network_services/traffic_profile/__init__.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/__init__.py
diff --git a/yardstick/tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py
new file mode 100644
index 000000000..35455a49c
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_attacker_baremetal.py
@@ -0,0 +1,93 @@
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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 mock
+import unittest
+
+from yardstick.benchmark.scenarios.availability.attacker import \
+ attacker_baremetal
+
+
+class ExecuteShellTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_subprocess = mock.patch.object(attacker_baremetal,
+ 'subprocess')
+ self.mock_subprocess = self._mock_subprocess.start()
+
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_subprocess.stop()
+
+ def test__execute_shell_command_successful(self):
+ self.mock_subprocess.check_output.return_value = (0, 'unittest')
+ exitcode, _ = attacker_baremetal._execute_shell_command("env")
+ self.assertEqual(exitcode, 0)
+
+ @mock.patch.object(attacker_baremetal, 'LOG')
+ def test__execute_shell_command_fail_cmd_exception(self, mock_log):
+ self.mock_subprocess.check_output.side_effect = RuntimeError
+ exitcode, _ = attacker_baremetal._execute_shell_command("env")
+ self.assertEqual(exitcode, -1)
+ mock_log.error.assert_called_once()
+
+
+class AttackerBaremetalTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_ssh = mock.patch.object(attacker_baremetal, 'ssh')
+ self.mock_ssh = self._mock_ssh.start()
+ self._mock_subprocess = mock.patch.object(attacker_baremetal,
+ 'subprocess')
+ self.mock_subprocess = self._mock_subprocess.start()
+ self.addCleanup(self._stop_mocks)
+
+ self.mock_ssh.SSH.from_node().execute.return_value = (
+ 0, "running", '')
+
+ host = {
+ "ipmi_ip": "10.20.0.5",
+ "ipmi_user": "root",
+ "ipmi_password": "123456",
+ "ip": "10.20.0.5",
+ "user": "root",
+ "key_filename": "/root/.ssh/id_rsa"
+ }
+ self.context = {"node1": host}
+ self.attacker_cfg = {
+ 'fault_type': 'bear-metal-down',
+ 'host': 'node1',
+ }
+
+ self.ins = attacker_baremetal.BaremetalAttacker(self.attacker_cfg,
+ self.context)
+
+ def _stop_mocks(self):
+ self._mock_ssh.stop()
+ self._mock_subprocess.stop()
+
+ def test__attacker_baremetal_all_successful(self):
+ self.ins.setup()
+ self.ins.inject_fault()
+ self.ins.recover()
+
+ def test__attacker_baremetal_check_failure(self):
+ self.mock_ssh.SSH.from_node().execute.return_value = (
+ 0, "error check", '')
+ self.ins.setup()
+
+ def test__attacker_baremetal_recover_successful(self):
+ self.attacker_cfg["jump_host"] = 'node1'
+ self.context["node1"]["password"] = "123456"
+ ins = attacker_baremetal.BaremetalAttacker(self.attacker_cfg,
+ self.context)
+
+ ins.setup()
+ ins.recover()
diff --git a/tests/unit/benchmark/scenarios/availability/test_attacker_general.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_attacker_general.py
index 612b5a662..c1b3c0d72 100644
--- a/tests/unit/benchmark/scenarios/availability/test_attacker_general.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_attacker_general.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Juan Qiu and others
# juan_ qiu@tongji.edu.cn
diff --git a/tests/unit/benchmark/scenarios/availability/test_attacker_process.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_attacker_process.py
index 0a8e8322a..2e9f1c6bb 100644
--- a/tests/unit/benchmark/scenarios/availability/test_attacker_process.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_attacker_process.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
diff --git a/yardstick/tests/unit/benchmark/scenarios/availability/test_baseattacker.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_baseattacker.py
new file mode 100644
index 000000000..74f86983b
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_baseattacker.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd 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 unittest
+
+from yardstick.benchmark.scenarios.availability.attacker import baseattacker
+
+
+class BaseAttackerTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.attacker_cfg = {
+ 'fault_type': 'test-attacker',
+ 'action_parameter': {'process_name': 'nova_api'},
+ 'rollback_parameter': {'process_name': 'nova_api'},
+ 'key': 'stop-service',
+ 'attack_key': 'stop-service',
+ 'host': 'node1',
+ }
+ self.base_attacker = baseattacker.BaseAttacker({}, {})
+
+ def test__init__(self):
+ self.assertEqual(self.base_attacker.data, {})
+ self.assertFalse(self.base_attacker.mandatory)
+ self.assertEqual(self.base_attacker.intermediate_variables, {})
+ self.assertFalse(self.base_attacker.mandatory)
+
+ def test_get_attacker_cls(self):
+ with self.assertRaises(RuntimeError):
+ baseattacker.BaseAttacker.get_attacker_cls(self.attacker_cfg)
diff --git a/tests/unit/benchmark/scenarios/availability/test_basemonitor.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_basemonitor.py
index 92ae8aa88..8d042c406 100644
--- a/tests/unit/benchmark/scenarios/availability/test_basemonitor.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_basemonitor.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
@@ -9,19 +7,14 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Unittest for
-# yardstick.benchmark.scenarios.availability.monitor.monitor_command
+import time
-from __future__ import absolute_import
import mock
import unittest
from yardstick.benchmark.scenarios.availability.monitor import basemonitor
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.monitor.basemonitor'
- '.BaseMonitor')
class MonitorMgrTestCase(unittest.TestCase):
def setUp(self):
@@ -52,19 +45,23 @@ class MonitorMgrTestCase(unittest.TestCase):
for mo in self.monitor_list:
mo._result = {"outage_time": 10}
- def test__MonitorMgr_setup_successful(self, mock_monitor):
+ @mock.patch.object(basemonitor, 'BaseMonitor')
+ def test__MonitorMgr_setup_successful(self, *args):
instance = basemonitor.MonitorMgr({"nova-api": 10})
instance.init_monitors(self.monitor_configs, None)
instance.start_monitors()
instance.wait_monitors()
- ret = instance.verify_SLA()
+ # TODO(elfoley): Check the return value
+ ret = instance.verify_SLA() # pylint: disable=unused-variable
- def test_MonitorMgr_getitem(self, mock_monitor):
+ @mock.patch.object(basemonitor, 'BaseMonitor')
+ def test_MonitorMgr_getitem(self, *args):
monitorMgr = basemonitor.MonitorMgr({"nova-api": 10})
monitorMgr.init_monitors(self.monitor_configs, None)
- def test_store_result(self, mock_monitor):
+ @mock.patch.object(basemonitor, 'BaseMonitor')
+ def test_store_result(self, *args):
expect = {'process_neutron-server_outage_time': 10,
'openstack-router-list_outage_time': 10}
result = {}
@@ -91,35 +88,32 @@ class BaseMonitorTestCase(unittest.TestCase):
'sla': {'max_outage_time': 5}
}
+ def _close_queue(self, instace):
+ time.sleep(0.1)
+ instace._queue.close()
+
def test__basemonitor_start_wait_successful(self):
ins = basemonitor.BaseMonitor(self.monitor_cfg, None, {"nova-api": 10})
+ self.addCleanup(self._close_queue, ins)
ins.start_monitor()
ins.wait_monitor()
def test__basemonitor_all_successful(self):
ins = self.MonitorSimple(self.monitor_cfg, None, {"nova-api": 10})
+ self.addCleanup(self._close_queue, ins)
ins.setup()
ins.run()
ins.verify_SLA()
- @mock.patch(
- 'yardstick.benchmark.scenarios.availability.monitor.basemonitor'
- '.multiprocessing')
+ @mock.patch.object(basemonitor, 'multiprocessing')
def test__basemonitor_func_false(self, mock_multiprocess):
ins = self.MonitorSimple(self.monitor_cfg, None, {"nova-api": 10})
+ self.addCleanup(self._close_queue, ins)
ins.setup()
mock_multiprocess.Event().is_set.return_value = False
ins.run()
ins.verify_SLA()
def test__basemonitor_getmonitorcls_successfule(self):
- cls = None
- try:
- cls = basemonitor.BaseMonitor.get_monitor_cls(self.monitor_cfg)
- except Exception:
- pass
- self.assertIsNone(cls)
-
-
-if __name__ == "__main__":
- unittest.main()
+ with self.assertRaises(RuntimeError):
+ basemonitor.BaseMonitor.get_monitor_cls(self.monitor_cfg)
diff --git a/tests/unit/benchmark/scenarios/availability/test_baseoperation.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_baseoperation.py
index 03ec1492b..b7c9f62ff 100644
--- a/tests/unit/benchmark/scenarios/availability/test_baseoperation.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_baseoperation.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huan Li and others
# lihuansse@tongji.edu.cn
@@ -9,19 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Unittest for
-# yardstick.benchmark.scenarios.availability.operation.baseoperation
-
-from __future__ import absolute_import
import mock
import unittest
from yardstick.benchmark.scenarios.availability.operation import baseoperation
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.operation.baseoperation'
- '.BaseOperation')
class OperationMgrTestCase(unittest.TestCase):
def setUp(self):
@@ -33,17 +24,19 @@ class OperationMgrTestCase(unittest.TestCase):
self.operation_configs = []
self.operation_configs.append(config)
- def test_all_successful(self, mock_operation):
+ @mock.patch.object(baseoperation, 'BaseOperation')
+ def test_all_successful(self, *args):
mgr_ins = baseoperation.OperationMgr()
mgr_ins.init_operations(self.operation_configs, None)
- operation_ins = mgr_ins["service-status"]
+ _ = mgr_ins["service-status"]
mgr_ins.rollback()
- def test_getitem_fail(self, mock_operation):
+ @mock.patch.object(baseoperation, 'BaseOperation')
+ def test_getitem_fail(self, *args):
mgr_ins = baseoperation.OperationMgr()
mgr_ins.init_operations(self.operation_configs, None)
with self.assertRaises(KeyError):
- operation_ins = mgr_ins["operation-not-exist"]
+ _ = mgr_ins["operation-not-exist"]
class TestOperation(baseoperation.BaseOperation):
@@ -66,22 +59,21 @@ class BaseOperationTestCase(unittest.TestCase):
'operation_type': 'general-operation',
'key': 'service-status'
}
+ self.base_ins = baseoperation.BaseOperation(self.config, None)
def test_all_successful(self):
- base_ins = baseoperation.BaseOperation(self.config, None)
- base_ins.setup()
- base_ins.run()
- base_ins.rollback()
+ self.base_ins.setup()
+ self.base_ins.run()
+ self.base_ins.rollback()
def test_get_script_fullpath(self):
- base_ins = baseoperation.BaseOperation(self.config, None)
- base_ins.get_script_fullpath("ha_tools/test.bash")
+ self.base_ins.get_script_fullpath("ha_tools/test.bash")
+ # TODO(elfoley): Fix test to check on expected outputs
+ # pylint: disable=unused-variable
def test_get_operation_cls_successful(self):
- base_ins = baseoperation.BaseOperation(self.config, None)
- operation_ins = base_ins.get_operation_cls("test-operation")
+ operation_ins = self.base_ins.get_operation_cls("test-operation")
def test_get_operation_cls_fail(self):
- base_ins = baseoperation.BaseOperation(self.config, None)
with self.assertRaises(RuntimeError):
- operation_ins = base_ins.get_operation_cls("operation-not-exist")
+ self.base_ins.get_operation_cls("operation-not-exist")
diff --git a/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py
index 36ce900fb..d4df02819 100644
--- a/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huan Li and others
# lihuansse@tongji.edu.cn
@@ -9,10 +7,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Unittest for yardstick.benchmark.scenarios.availability.result_checker
-# .baseresultchecker
-
-from __future__ import absolute_import
import mock
import unittest
@@ -20,8 +14,6 @@ from yardstick.benchmark.scenarios.availability.result_checker import \
baseresultchecker
-@mock.patch('yardstick.benchmark.scenarios.availability.result_checker'
- '.baseresultchecker.BaseResultChecker')
class ResultCheckerMgrTestCase(unittest.TestCase):
def setUp(self):
@@ -33,21 +25,27 @@ class ResultCheckerMgrTestCase(unittest.TestCase):
self.checker_configs = []
self.checker_configs.append(config)
- def test_ResultCheckerMgr_setup_successful(self, mock_basechacer):
- mgr_ins = baseresultchecker.ResultCheckerMgr()
- mgr_ins.init_ResultChecker(self.checker_configs, None)
- mgr_ins.verify()
+ self.mgr_ins = baseresultchecker.ResultCheckerMgr()
+
+ self._mock_basechecker = mock.patch.object(baseresultchecker,
+ 'BaseResultChecker')
+ self.mock_basechecker = self._mock_basechecker.start()
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_basechecker.stop()
+
+ def test_ResultCheckerMgr_setup_successful(self):
+ self.mgr_ins.verify()
- def test_getitem_succeessful(self, mock_basechacer):
- mgr_ins = baseresultchecker.ResultCheckerMgr()
- mgr_ins.init_ResultChecker(self.checker_configs, None)
- checker_ins = mgr_ins["process-checker"]
+ def test_getitem_succeessful(self):
+ self.mgr_ins.init_ResultChecker(self.checker_configs, None)
+ _ = self.mgr_ins["process-checker"]
- def test_getitem_fail(self, mock_basechacer):
- mgr_ins = baseresultchecker.ResultCheckerMgr()
- mgr_ins.init_ResultChecker(self.checker_configs, None)
+ def test_getitem_fail(self):
+ self.mgr_ins.init_ResultChecker(self.checker_configs, None)
with self.assertRaises(KeyError):
- checker_ins = mgr_ins["checker-not-exist"]
+ _ = self.mgr_ins["checker-not-exist"]
class BaseResultCheckerTestCase(unittest.TestCase):
@@ -66,22 +64,20 @@ class BaseResultCheckerTestCase(unittest.TestCase):
'checker_type': 'general-result-checker',
'key': 'process-checker'
}
+ self.ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
def test_baseresultchecker_setup_verify_successful(self):
- ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
- ins.setup()
- ins.verify()
+ self.ins.setup()
+ self.ins.verify()
def test_baseresultchecker_verfiy_pass(self):
- ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
- ins.setup()
- ins.actualResult = True
- ins.expectedResult = True
- ins.verify()
+ self.ins.setup()
+ self.ins.actualResult = True
+ self.ins.expectedResult = True
+ self.ins.verify()
def test_get_script_fullpath(self):
- ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
- path = ins.get_script_fullpath("test.bash")
+ self.ins.get_script_fullpath("test.bash")
def test_get_resultchecker_cls_successful(self):
baseresultchecker.BaseResultChecker.get_resultchecker_cls(
diff --git a/tests/unit/benchmark/scenarios/availability/test_director.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_director.py
index d01a60e2d..e49544e1c 100644
--- a/tests/unit/benchmark/scenarios/availability/test_director.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_director.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huan Li and others
# lihuansse@tongji.edu.cn
@@ -18,6 +16,10 @@ import unittest
from yardstick.benchmark.scenarios.availability.director import Director
+# pylint: disable=unused-argument
+# disable this for now because I keep forgetting mock patch arg ordering
+
+
@mock.patch('yardstick.benchmark.scenarios.availability.director.basemonitor')
@mock.patch('yardstick.benchmark.scenarios.availability.director.baseattacker')
@mock.patch(
diff --git a/tests/unit/benchmark/scenarios/availability/test_monitor_command.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_command.py
index 6a9b3b157..1aebcc85b 100644
--- a/tests/unit/benchmark/scenarios/availability/test_monitor_command.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_command.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
@@ -9,40 +7,37 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Unittest for
-# yardstick.benchmark.scenarios.availability.monitor.monitor_command
-
-from __future__ import absolute_import
import mock
import unittest
from yardstick.benchmark.scenarios.availability.monitor import monitor_command
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.monitor.monitor_command'
- '.subprocess')
class ExecuteShellTestCase(unittest.TestCase):
- def test__fun_execute_shell_command_successful(self, mock_subprocess):
+ def setUp(self):
+ self._mock_subprocess = mock.patch.object(monitor_command, 'subprocess')
+ self.mock_subprocess = self._mock_subprocess.start()
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_subprocess.stop()
+
+ def test__fun_execute_shell_command_successful(self):
cmd = "env"
- mock_subprocess.check_output.return_value = (0, 'unittest')
- exitcode, output = monitor_command._execute_shell_command(cmd)
+ self.mock_subprocess.check_output.return_value = (0, 'unittest')
+ exitcode, _t = monitor_command._execute_shell_command(cmd)
self.assertEqual(exitcode, 0)
- @mock.patch('yardstick.benchmark.scenarios.availability.monitor.monitor_command.LOG')
- def test__fun_execute_shell_command_fail_cmd_exception(self, mock_log,
- mock_subprocess):
+ @mock.patch.object(monitor_command, 'LOG')
+ def test__fun_execute_shell_command_fail_cmd_exception(self, mock_log):
cmd = "env"
- mock_subprocess.check_output.side_effect = RuntimeError
- exitcode, output = monitor_command._execute_shell_command(cmd)
+ self.mock_subprocess.check_output.side_effect = RuntimeError
+ exitcode, _ = monitor_command._execute_shell_command(cmd)
self.assertEqual(exitcode, -1)
mock_log.error.assert_called_once()
-@mock.patch(
- 'yardstick.benchmark.scenarios.availability.monitor.monitor_command'
- '.subprocess')
class MonitorOpenstackCmdTestCase(unittest.TestCase):
def setUp(self):
@@ -58,38 +53,43 @@ class MonitorOpenstackCmdTestCase(unittest.TestCase):
'monitor_time': 1,
'sla': {'max_outage_time': 5}
}
+ self._mock_subprocess = mock.patch.object(monitor_command, 'subprocess')
+ self.mock_subprocess = self._mock_subprocess.start()
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_subprocess.stop()
- def test__monitor_command_monitor_func_successful(self, mock_subprocess):
+ def test__monitor_command_monitor_func_successful(self):
instance = monitor_command.MonitorOpenstackCmd(self.config, None, {"nova-api": 10})
instance.setup()
- mock_subprocess.check_output.return_value = (0, 'unittest')
+ self.mock_subprocess.check_output.return_value = (0, 'unittest')
ret = instance.monitor_func()
- self.assertEqual(ret, True)
+ self.assertTrue(ret)
instance._result = {"outage_time": 0}
instance.verify_SLA()
- @mock.patch('yardstick.benchmark.scenarios.availability.monitor.monitor_command.LOG')
- def test__monitor_command_monitor_func_failure(self, mock_log, mock_subprocess):
- mock_subprocess.check_output.return_value = (1, 'unittest')
+ @mock.patch.object(monitor_command, 'LOG')
+ def test__monitor_command_monitor_func_failure(self, mock_log):
+ self.mock_subprocess.check_output.return_value = (1, 'unittest')
instance = monitor_command.MonitorOpenstackCmd(self.config, None, {"nova-api": 10})
instance.setup()
- mock_subprocess.check_output.side_effect = RuntimeError
+ self.mock_subprocess.check_output.side_effect = RuntimeError
ret = instance.monitor_func()
- self.assertEqual(ret, False)
+ self.assertFalse(ret)
mock_log.error.assert_called_once()
instance._result = {"outage_time": 10}
instance.verify_SLA()
- @mock.patch(
- 'yardstick.benchmark.scenarios.availability.monitor.monitor_command'
- '.ssh')
- def test__monitor_command_ssh_monitor_successful(self, mock_ssh,
- mock_subprocess):
+ @mock.patch.object(monitor_command, 'ssh')
+ def test__monitor_command_ssh_monitor_successful(self, mock_ssh):
+ self.mock_subprocess.check_output.return_value = (0, 'unittest')
self.config["host"] = "node1"
instance = monitor_command.MonitorOpenstackCmd(
self.config, self.context, {"nova-api": 10})
instance.setup()
mock_ssh.SSH.from_node().execute.return_value = (0, "0", '')
ret = instance.monitor_func()
+ self.assertTrue(ret)
diff --git a/tests/unit/benchmark/scenarios/availability/test_monitor_general.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_general.py
index c14f073ec..5907c8b6a 100644
--- a/tests/unit/benchmark/scenarios/availability/test_monitor_general.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_general.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huan Li and others
# lihuansse@tongji.edu.cn
@@ -18,6 +16,10 @@ import unittest
from yardstick.benchmark.scenarios.availability.monitor import monitor_general
+# pylint: disable=unused-argument
+# disable this for now because I keep forgetting mock patch arg ordering
+
+
@mock.patch('yardstick.benchmark.scenarios.availability.monitor.'
'monitor_general.ssh')
@mock.patch('yardstick.benchmark.scenarios.availability.monitor.'
diff --git a/tests/unit/benchmark/scenarios/availability/test_monitor_multi.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_multi.py
index b59ec6cf1..dc3a4b99a 100644
--- a/tests/unit/benchmark/scenarios/availability/test_monitor_multi.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_multi.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huan Li and others
# lihuansse@tongji.edu.cn
@@ -17,6 +15,11 @@ import mock
import unittest
from yardstick.benchmark.scenarios.availability.monitor import monitor_multi
+
+# pylint: disable=unused-argument
+# disable this for now because I keep forgetting mock patch arg ordering
+
+
@mock.patch('yardstick.benchmark.scenarios.availability.monitor.'
'monitor_general.ssh')
@mock.patch('yardstick.benchmark.scenarios.availability.monitor.'
@@ -42,7 +45,8 @@ class MultiMonitorServiceTestCase(unittest.TestCase):
}
def test__monitor_multi_all_successful(self, mock_open, mock_ssh):
- ins = monitor_multi.MultiMonitor(self.monitor_cfg, self.context, {"nova-api": 10})
+ ins = monitor_multi.MultiMonitor(
+ self.monitor_cfg, self.context, {"nova-api": 10})
mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
@@ -51,7 +55,8 @@ class MultiMonitorServiceTestCase(unittest.TestCase):
ins.verify_SLA()
def test__monitor_multi_all_fail(self, mock_open, mock_ssh):
- ins = monitor_multi.MultiMonitor(self.monitor_cfg, self.context, {"nova-api": 10})
+ ins = monitor_multi.MultiMonitor(
+ self.monitor_cfg, self.context, {"nova-api": 10})
mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
@@ -59,3 +64,19 @@ class MultiMonitorServiceTestCase(unittest.TestCase):
ins.wait_monitor()
ins.verify_SLA()
+ def test__monitor_multi_no_sla(self, mock_open, mock_ssh):
+ monitor_cfg = {
+ 'monitor_type': 'general-monitor',
+ 'monitor_number': 3,
+ 'key': 'service-status',
+ 'monitor_key': 'service-status',
+ 'host': 'node1',
+ 'monitor_time': 0.1,
+ 'parameter': {'serviceName': 'haproxy'}
+ }
+ ins = monitor_multi.MultiMonitor(
+ monitor_cfg, self.context, {"nova-api": 10})
+ mock_ssh.SSH.from_node().execute.return_value = (0, "running", '')
+ ins.start_monitor()
+ ins.wait_monitor()
+ self.assertTrue(ins.verify_SLA())
diff --git a/tests/unit/benchmark/scenarios/availability/test_monitor_process.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_process.py
index 41ce5445e..8c73bf221 100644
--- a/tests/unit/benchmark/scenarios/availability/test_monitor_process.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_monitor_process.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
@@ -57,3 +55,19 @@ class MonitorProcessTestCase(unittest.TestCase):
ins.monitor_func()
ins._result = {"outage_time": 10}
ins.verify_SLA()
+
+ def test__monitor_process_no_sla(self, mock_ssh):
+
+ monitor_cfg = {
+ 'monitor_type': 'process',
+ 'process_name': 'nova-api',
+ 'host': "node1",
+ 'monitor_time': 1,
+ }
+ ins = monitor_process.MonitorProcess(monitor_cfg, self.context, {"nova-api": 10})
+
+ mock_ssh.SSH.from_node().execute.return_value = (0, "0", '')
+ ins.setup()
+ ins.monitor_func()
+ ins._result = {"outage_time": 10}
+ self.assertTrue(ins.verify_SLA())
diff --git a/tests/unit/benchmark/scenarios/availability/test_operation_general.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_operation_general.py
index fb8ccb122..2b09c0385 100644
--- a/tests/unit/benchmark/scenarios/availability/test_operation_general.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_operation_general.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huan Li and others
# lihuansse@tongji.edu.cn
@@ -19,6 +17,10 @@ from yardstick.benchmark.scenarios.availability.operation import \
operation_general
+# pylint: disable=unused-argument
+# disable this for now because I keep forgetting mock patch arg ordering
+
+
@mock.patch('yardstick.benchmark.scenarios.availability.operation.'
'operation_general.ssh')
@mock.patch('yardstick.benchmark.scenarios.availability.operation.'
diff --git a/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py
index d036bb0da..324a5bda2 100644
--- a/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huan Li and others
# lihuansse@tongji.edu.cn
@@ -21,6 +19,10 @@ from yardstick.benchmark.scenarios.availability.result_checker import \
result_checker_general
+# pylint: disable=unused-argument
+# disable this for now because I keep forgetting mock patch arg ordering
+
+
@mock.patch('yardstick.benchmark.scenarios.availability.result_checker.'
'result_checker_general.ssh')
@mock.patch('yardstick.benchmark.scenarios.availability.result_checker.'
diff --git a/yardstick/tests/unit/benchmark/scenarios/availability/test_scenario_general.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_scenario_general.py
new file mode 100644
index 000000000..dbf3d83b2
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_scenario_general.py
@@ -0,0 +1,76 @@
+##############################################################################
+# Copyright (c) 2016 Huan Li and others
+# lihuansse@tongji.edu.cn
+# 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 mock
+import unittest
+
+from yardstick.benchmark.scenarios.availability import scenario_general
+from yardstick.common import exceptions as y_exc
+
+
+class ScenarioGeneralTestCase(unittest.TestCase):
+
+ @mock.patch.object(scenario_general, 'Director')
+ def setUp(self, *args):
+ self.scenario_cfg = {
+ 'type': "general_scenario",
+ 'options': {
+ 'attackers': [{
+ 'fault_type': "general-attacker",
+ 'key': "kill-process"}],
+ 'monitors': [{
+ 'monitor_type': "general-monitor",
+ 'key': "service-status"}],
+ 'steps': [
+ {
+ 'actionKey': "kill-process",
+ 'actionType': "attacker",
+ 'index': 1},
+ {
+ 'actionKey': "service-status",
+ 'actionType': "monitor",
+ 'index': 2}]
+ }
+ }
+ self.instance = scenario_general.ScenarioGeneral(self.scenario_cfg,
+ None)
+ self.instance.setup()
+ self.instance.director.verify.return_value = True
+
+ def test_scenario_general_all_successful(self):
+ ret = {}
+ self.instance.run(ret)
+ self.instance.teardown()
+ self.assertEqual(ret['sla_pass'], 1)
+
+ @mock.patch.object(scenario_general.LOG, 'exception')
+ def test_scenario_general_exception(self, *args):
+ self.instance.director.createActionPlayer.side_effect = (
+ KeyError('Wrong'))
+ self.instance.director.data = {}
+ ret = {}
+ self.instance.run(ret)
+ self.instance.teardown()
+ self.assertEqual(ret['sla_pass'], 1)
+
+ def test_scenario_general_case_fail(self):
+ self.instance.director.verify.return_value = False
+ self.instance.director.data = {}
+ ret = {}
+ self.assertRaises(y_exc.SLAValidationError, self.instance.run, ret)
+ self.instance.teardown()
+ self.assertEqual(ret['sla_pass'], 0)
+
+ def test_scenario_general_case_service_not_found_fail(self):
+ self.instance.director.verify.return_value = True
+ self.instance.director.data = {"general-attacker": 0}
+ ret = {}
+ self.assertRaises(y_exc.SLAValidationError, self.instance.run, ret)
+ self.instance.teardown()
+ self.assertEqual(ret['sla_pass'], 0)
diff --git a/yardstick/tests/unit/benchmark/scenarios/availability/test_serviceha.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_serviceha.py
new file mode 100644
index 000000000..d61fa67c7
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_serviceha.py
@@ -0,0 +1,131 @@
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd 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 mock
+import unittest
+
+from yardstick.benchmark.scenarios.availability import serviceha
+from yardstick.common import exceptions as y_exc
+
+
+class ServicehaTestCase(unittest.TestCase):
+
+ def setUp(self):
+ host = {
+ "ip": "10.20.0.5",
+ "user": "root",
+ "key_filename": "/root/.ssh/id_rsa"
+ }
+ self.ctx = {"nodes": {"node1": host}}
+ attacker_cfg = {
+ "fault_type": "kill-process",
+ "process_name": "nova-api",
+ "host": "node1"
+ }
+ attacker_cfgs = []
+ attacker_cfgs.append(attacker_cfg)
+ monitor_cfg = {
+ "monitor_cmd": "nova image-list",
+ "monitor_time": 0.1
+ }
+ monitor_cfgs = []
+ monitor_cfgs.append(monitor_cfg)
+
+ options = {
+ "attackers": attacker_cfgs,
+ "monitors": monitor_cfgs
+ }
+ sla = {"outage_time": 5}
+ self.args = {"options": options, "sla": sla}
+ self.test__serviceha = serviceha.ServiceHA(self.args, self.ctx)
+
+ def test___init__(self):
+
+ self.assertEqual(self.test__serviceha.data, {})
+ self.assertFalse(self.test__serviceha.setup_done)
+ self.assertFalse(self.test__serviceha.sla_pass)
+
+ # NOTE(elfoley): This should be split into test_setup and test_run
+ # NOTE(elfoley): This should explicitly test outcomes and states
+ @mock.patch.object(serviceha, 'baseattacker')
+ @mock.patch.object(serviceha, 'basemonitor')
+ def test__serviceha_setup_run_successful(self, mock_monitor, *args):
+ p = serviceha.ServiceHA(self.args, self.ctx)
+
+ p.setup()
+ self.assertTrue(p.setup_done)
+ mock_monitor.MonitorMgr().verify_SLA.return_value = True
+ ret = {}
+ p.run(ret)
+ p.teardown()
+
+ p.setup()
+ self.assertTrue(p.setup_done)
+
+ @mock.patch.object(serviceha, 'baseattacker')
+ @mock.patch.object(serviceha, 'basemonitor')
+ def test__serviceha_run_sla_error(self, mock_monitor, *args):
+ p = serviceha.ServiceHA(self.args, self.ctx)
+
+ p.setup()
+ self.assertEqual(p.setup_done, True)
+
+ mock_monitor.MonitorMgr().verify_SLA.return_value = False
+
+ ret = {}
+ self.assertRaises(y_exc.SLAValidationError, p.run, ret)
+ self.assertEqual(ret['sla_pass'], 0)
+
+ @mock.patch.object(serviceha, 'baseattacker')
+ @mock.patch.object(serviceha, 'basemonitor')
+ def test__serviceha_run_service_not_found_sla_error(self, mock_monitor,
+ *args):
+ p = serviceha.ServiceHA(self.args, self.ctx)
+
+ p.setup()
+ self.assertTrue(p.setup_done)
+ p.data["kill-process"] = 0
+
+ mock_monitor.MonitorMgr().verify_SLA.return_value = True
+
+ ret = {}
+ self.assertRaises(y_exc.SLAValidationError, p.run, ret)
+ self.assertEqual(ret['sla_pass'], 0)
+
+ @mock.patch.object(serviceha, 'baseattacker')
+ @mock.patch.object(serviceha, 'basemonitor')
+ def test__serviceha_no_teardown_when_sla_pass(self, mock_monitor,
+ *args):
+ p = serviceha.ServiceHA(self.args, self.ctx)
+ p.setup()
+ self.assertTrue(p.setup_done)
+ mock_monitor.MonitorMgr().verify_SLA.return_value = True
+ ret = {}
+ p.run(ret)
+ attacker = mock.Mock()
+ attacker.mandatory = False
+ p.attackers = [attacker]
+ p.teardown()
+ attacker.recover.assert_not_called()
+
+ @mock.patch.object(serviceha, 'baseattacker')
+ @mock.patch.object(serviceha, 'basemonitor')
+ def test__serviceha_teardown_when_mandatory(self, mock_monitor,
+ *args):
+ p = serviceha.ServiceHA(self.args, self.ctx)
+ p.setup()
+ self.assertTrue(p.setup_done)
+ mock_monitor.MonitorMgr().verify_SLA.return_value = True
+ ret = {}
+ p.run(ret)
+ attacker = mock.Mock()
+ attacker.mandatory = True
+ p.attackers = [attacker]
+ p.teardown()
+ attacker.recover.assert_called_once()
diff --git a/tests/unit/benchmark/scenarios/availability/test_util.py b/yardstick/tests/unit/benchmark/scenarios/availability/test_util.py
index 0974f385a..4d97585d4 100644
--- a/tests/unit/benchmark/scenarios/availability/test_util.py
+++ b/yardstick/tests/unit/benchmark/scenarios/availability/test_util.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Kanglin Yin and others
# 14_ykl@tongji.edu.cn
@@ -16,36 +14,43 @@ import unittest
from yardstick.benchmark.scenarios.availability import util
-@mock.patch('yardstick.benchmark.scenarios.availability.util.subprocess')
+
class ExecuteShellTestCase(unittest.TestCase):
def setUp(self):
self.param_config = {'serviceName': '@serviceName', 'value': 1}
self.intermediate_variables = {'@serviceName': 'nova-api'}
self.std_output = '| id | 1 |'
- self.cmd_config = {'cmd':'ls','param':'-a'}
+ self.cmd_config = {'cmd': 'ls', 'param': '-a'}
+
+ self._mock_subprocess = mock.patch.object(util, 'subprocess')
+ self.mock_subprocess = self._mock_subprocess.start()
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_subprocess.stop()
- def test_util_build_command_shell(self,mock_subprocess):
+ def test_util_build_command_shell(self):
result = util.build_shell_command(self.param_config, True,
self.intermediate_variables)
- self.assertEqual("nova-api" in result, True)
+ self.assertIn("nova-api", result)
- def test_read_stdout_item(self,mock_subprocess):
- result = util.read_stdout_item(self.std_output,'id')
- self.assertEquals('1',result)
+ def test_read_stdout_item(self):
+ result = util.read_stdout_item(self.std_output, 'id')
+ self.assertEqual('1', result)
- def test_buildshellparams(self,mock_subprocess):
- result = util.buildshellparams(self.cmd_config,True)
- self.assertEquals('/bin/bash -s {0} {1}', result)
+ def test_buildshellparams(self):
+ result = util.buildshellparams(self.cmd_config, True)
+ self.assertEqual('/bin/bash -s {0} {1}', result)
- def test__fun_execute_shell_command_successful(self, mock_subprocess):
+ def test__fun_execute_shell_command_successful(self):
cmd = "env"
- mock_subprocess.check_output.return_value = (0, 'unittest')
- exitcode, output = util.execute_shell_command(cmd)
+ self.mock_subprocess.check_output.return_value = (0, 'unittest')
+ exitcode, _ = util.execute_shell_command(cmd)
self.assertEqual(exitcode, 0)
- def test__fun_execute_shell_command_fail_cmd_exception(self, mock_subprocess):
+ def test__fun_execute_shell_command_fail_cmd_exception(self):
cmd = "env"
- mock_subprocess.check_output.side_effect = RuntimeError
- exitcode, output = util.execute_shell_command(cmd)
+ self.mock_subprocess.check_output.side_effect = RuntimeError
+ exitcode, _ = util.execute_shell_command(cmd)
self.assertEqual(exitcode, -1)
diff --git a/tests/unit/network_services/vnf_generic/__init__.py b/yardstick/tests/unit/benchmark/scenarios/compute/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/network_services/vnf_generic/__init__.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/__init__.py
diff --git a/tests/unit/benchmark/scenarios/compute/cachestat_sample_output.txt b/yardstick/tests/unit/benchmark/scenarios/compute/cachestat_sample_output.txt
index e2c79a9b1..e2c79a9b1 100644
--- a/tests/unit/benchmark/scenarios/compute/cachestat_sample_output.txt
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/cachestat_sample_output.txt
diff --git a/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt b/yardstick/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt
index 723e64bcb..723e64bcb 100644
--- a/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt
diff --git a/tests/unit/benchmark/scenarios/compute/cpuload_sample_output2.txt b/yardstick/tests/unit/benchmark/scenarios/compute/cpuload_sample_output2.txt
index c66520a27..c66520a27 100644
--- a/tests/unit/benchmark/scenarios/compute/cpuload_sample_output2.txt
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/cpuload_sample_output2.txt
diff --git a/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt b/yardstick/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt
index 1793e2f10..1793e2f10 100644
--- a/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt
diff --git a/tests/unit/benchmark/scenarios/compute/test_cachestat.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_cachestat.py
index b0ddfc6b4..6f66c30f9 100644
--- a/tests/unit/benchmark/scenarios/compute/test_cachestat.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_cachestat.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
#
diff --git a/tests/unit/benchmark/scenarios/compute/test_computecapacity.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_computecapacity.py
index 7b9a5ad4a..4bef589f4 100644
--- a/tests/unit/benchmark/scenarios/compute/test_computecapacity.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_computecapacity.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
#
diff --git a/tests/unit/benchmark/scenarios/compute/test_cpuload.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_cpuload.py
index 840ac7885..da6e6a22e 100644
--- a/tests/unit/benchmark/scenarios/compute/test_cpuload.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_cpuload.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
diff --git a/tests/unit/benchmark/scenarios/compute/test_cyclictest.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_cyclictest.py
index dc52a80c7..4fadde4dc 100644
--- a/tests/unit/benchmark/scenarios/compute/test_cyclictest.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_cyclictest.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and other.
#
@@ -19,6 +17,7 @@ import mock
from oslo_serialization import jsonutils
from yardstick.benchmark.scenarios.compute import cyclictest
+from yardstick.common import exceptions as y_exc
@mock.patch('yardstick.benchmark.scenarios.compute.cyclictest.ssh')
@@ -74,7 +73,7 @@ class CyclictestTestCase(unittest.TestCase):
c.setup()
self.assertIsNotNone(c.guest)
self.assertIsNotNone(c.host)
- self.assertEqual(c.setup_done, True)
+ self.assertTrue(c.setup_done)
def test_cyclictest_successful_no_sla(self, mock_ssh):
result = {}
@@ -124,7 +123,7 @@ class CyclictestTestCase(unittest.TestCase):
sample_output = '{"min": 100, "avg": 500, "max": 1000}'
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, c.run, result)
+ self.assertRaises(y_exc.SLAValidationError, c.run, result)
def test_cyclictest_unsuccessful_sla_avg_latency(self, mock_ssh):
@@ -138,7 +137,7 @@ class CyclictestTestCase(unittest.TestCase):
sample_output = '{"min": 100, "avg": 500, "max": 1000}'
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, c.run, result)
+ self.assertRaises(y_exc.SLAValidationError, c.run, result)
def test_cyclictest_unsuccessful_sla_max_latency(self, mock_ssh):
@@ -152,7 +151,7 @@ class CyclictestTestCase(unittest.TestCase):
sample_output = '{"min": 100, "avg": 500, "max": 1000}'
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, c.run, result)
+ self.assertRaises(y_exc.SLAValidationError, c.run, result)
def test_cyclictest_unsuccessful_script_error(self, mock_ssh):
@@ -166,10 +165,3 @@ class CyclictestTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, c.run, result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_lmbench.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_lmbench.py
index 65939c6ba..ba63e5f9e 100644
--- a/tests/unit/benchmark/scenarios/compute/test_lmbench.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_lmbench.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
@@ -8,20 +6,16 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-# Unittest for yardstick.benchmark.scenarios.compute.lmbench.Lmbench
-
-from __future__ import absolute_import
-
import unittest
import mock
from oslo_serialization import jsonutils
from yardstick.benchmark.scenarios.compute import lmbench
+from yardstick.common import exceptions as y_exc
+from yardstick import ssh
-@mock.patch('yardstick.benchmark.scenarios.compute.lmbench.ssh')
class LmbenchTestCase(unittest.TestCase):
def setUp(self):
@@ -35,16 +29,23 @@ class LmbenchTestCase(unittest.TestCase):
self.result = {}
- def test_successful_setup(self, mock_ssh):
+ self._mock_ssh = mock.patch.object(ssh, 'SSH')
+ self.mock_ssh = self._mock_ssh.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_ssh.stop()
+
+ def test_successful_setup(self):
l = lmbench.Lmbench({}, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
+ self.mock_ssh.from_node().execute.return_value = (0, '', '')
l.setup()
self.assertIsNotNone(l.client)
self.assertTrue(l.setup_done)
- def test_unsuccessful_unknown_type_run(self, mock_ssh):
+ def test_unsuccessful_unknown_type_run(self):
options = {
"test_type": "foo"
@@ -55,7 +56,7 @@ class LmbenchTestCase(unittest.TestCase):
self.assertRaises(RuntimeError, l.run, self.result)
- def test_successful_latency_run_no_sla(self, mock_ssh):
+ def test_successful_latency_run_no_sla(self):
options = {
"test_type": "latency",
@@ -66,12 +67,12 @@ class LmbenchTestCase(unittest.TestCase):
l = lmbench.Lmbench(args, self.ctx)
sample_output = '[{"latency": 4.944, "size": 0.00049}]'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
+ self.mock_ssh.from_node().execute.return_value = (0, sample_output, '')
l.run(self.result)
expected_result = {"latencies0.latency": 4.944, "latencies0.size": 0.00049}
self.assertEqual(self.result, expected_result)
- def test_successful_bandwidth_run_no_sla(self, mock_ssh):
+ def test_successful_bandwidth_run_no_sla(self):
options = {
"test_type": "bandwidth",
@@ -83,12 +84,12 @@ class LmbenchTestCase(unittest.TestCase):
l = lmbench.Lmbench(args, self.ctx)
sample_output = '{"size(MB)": 0.262144, "bandwidth(MBps)": 11025.5}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
+ self.mock_ssh.from_node().execute.return_value = (0, sample_output, '')
l.run(self.result)
expected_result = jsonutils.loads(sample_output)
self.assertEqual(self.result, expected_result)
- def test_successful_latency_run_sla(self, mock_ssh):
+ def test_successful_latency_run_sla(self):
options = {
"test_type": "latency",
@@ -102,12 +103,12 @@ class LmbenchTestCase(unittest.TestCase):
l = lmbench.Lmbench(args, self.ctx)
sample_output = '[{"latency": 4.944, "size": 0.00049}]'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
+ self.mock_ssh.from_node().execute.return_value = (0, sample_output, '')
l.run(self.result)
expected_result = {"latencies0.latency": 4.944, "latencies0.size": 0.00049}
self.assertEqual(self.result, expected_result)
- def test_successful_bandwidth_run_sla(self, mock_ssh):
+ def test_successful_bandwidth_run_sla(self):
options = {
"test_type": "bandwidth",
@@ -122,12 +123,12 @@ class LmbenchTestCase(unittest.TestCase):
l = lmbench.Lmbench(args, self.ctx)
sample_output = '{"size(MB)": 0.262144, "bandwidth(MBps)": 11025.5}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
+ self.mock_ssh.from_node().execute.return_value = (0, sample_output, '')
l.run(self.result)
expected_result = jsonutils.loads(sample_output)
self.assertEqual(self.result, expected_result)
- def test_unsuccessful_latency_run_sla(self, mock_ssh):
+ def test_unsuccessful_latency_run_sla(self):
options = {
"test_type": "latency",
@@ -141,10 +142,10 @@ class LmbenchTestCase(unittest.TestCase):
l = lmbench.Lmbench(args, self.ctx)
sample_output = '[{"latency": 37.5, "size": 0.00049}]'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, l.run, self.result)
+ self.mock_ssh.from_node().execute.return_value = (0, sample_output, '')
+ self.assertRaises(y_exc.SLAValidationError, l.run, self.result)
- def test_unsuccessful_bandwidth_run_sla(self, mock_ssh):
+ def test_unsuccessful_bandwidth_run_sla(self):
options = {
"test_type": "bandwidth",
@@ -159,10 +160,10 @@ class LmbenchTestCase(unittest.TestCase):
l = lmbench.Lmbench(args, self.ctx)
sample_output = '{"size(MB)": 0.262144, "bandwidth(MBps)": 9925.5}'
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, l.run, self.result)
+ self.mock_ssh.from_node().execute.return_value = (0, sample_output, '')
+ self.assertRaises(y_exc.SLAValidationError, l.run, self.result)
- def test_successful_latency_for_cache_run_sla(self, mock_ssh):
+ def test_successful_latency_for_cache_run_sla(self):
options = {
"test_type": "latency_for_cache",
@@ -176,23 +177,16 @@ class LmbenchTestCase(unittest.TestCase):
l = lmbench.Lmbench(args, self.ctx)
sample_output = "{\"L1cache\": 1.6}"
- mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
+ self.mock_ssh.from_node().execute.return_value = (0, sample_output, '')
l.run(self.result)
expected_result = jsonutils.loads(sample_output)
self.assertEqual(self.result, expected_result)
- def test_unsuccessful_script_error(self, mock_ssh):
+ def test_unsuccessful_script_error(self):
options = {"test_type": "bandwidth"}
args = {"options": options}
l = lmbench.Lmbench(args, self.ctx)
- mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
+ self.mock_ssh.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, l.run, self.result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_memload.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_memload.py
index ebae9993d..8213d4490 100644
--- a/tests/unit/benchmark/scenarios/compute/test_memload.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_memload.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
#
@@ -109,11 +107,3 @@ class MEMLoadTestCase(unittest.TestCase):
with open(output) as f:
sample_output = f.read()
return sample_output
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_plugintest.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_plugintest.py
index 680f6ad65..875301729 100644
--- a/tests/unit/benchmark/scenarios/compute/test_plugintest.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_plugintest.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
#
diff --git a/tests/unit/benchmark/scenarios/compute/test_qemumigrate.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_qemumigrate.py
index 1f0ff3c29..02040ca01 100644
--- a/tests/unit/benchmark/scenarios/compute/test_qemumigrate.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_qemumigrate.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and other.
#
@@ -19,6 +17,7 @@ import mock
from oslo_serialization import jsonutils
from yardstick.benchmark.scenarios.compute import qemu_migrate
+from yardstick.common import exceptions as y_exc
@mock.patch('yardstick.benchmark.scenarios.compute.qemu_migrate.ssh')
@@ -71,7 +70,7 @@ class QemuMigrateTestCase(unittest.TestCase):
q.setup()
self.assertIsNotNone(q.host)
- self.assertEqual(q.setup_done, True)
+ self.assertTrue(q.setup_done)
def test_qemu_migrate_successful_no_sla(self, mock_ssh):
result = {}
@@ -118,7 +117,7 @@ class QemuMigrateTestCase(unittest.TestCase):
sample_output = '{"totaltime": 15, "downtime": 2, "setuptime": 1}'
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, q.run, result)
+ self.assertRaises(y_exc.SLAValidationError, q.run, result)
def test_qemu_migrate_unsuccessful_sla_downtime(self, mock_ssh):
@@ -131,7 +130,7 @@ class QemuMigrateTestCase(unittest.TestCase):
sample_output = '{"totaltime": 15, "downtime": 2, "setuptime": 1}'
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, q.run, result)
+ self.assertRaises(y_exc.SLAValidationError, q.run, result)
def test_qemu_migrate_unsuccessful_sla_setuptime(self, mock_ssh):
@@ -144,7 +143,7 @@ class QemuMigrateTestCase(unittest.TestCase):
sample_output = '{"totaltime": 15, "downtime": 2, "setuptime": 1}'
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, q.run, result)
+ self.assertRaises(y_exc.SLAValidationError, q.run, result)
def test_qemu_migrate_unsuccessful_script_error(self, mock_ssh):
@@ -157,10 +156,3 @@ class QemuMigrateTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, q.run, result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_ramspeed.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_ramspeed.py
index 4f71fbb36..9e055befe 100644
--- a/tests/unit/benchmark/scenarios/compute/test_ramspeed.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_ramspeed.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
#
@@ -20,6 +18,7 @@ from oslo_serialization import jsonutils
from yardstick.common import utils
from yardstick.benchmark.scenarios.compute import ramspeed
+from yardstick.common import exceptions as y_exc
@mock.patch('yardstick.benchmark.scenarios.compute.ramspeed.ssh')
@@ -148,7 +147,7 @@ class RamspeedTestCase(unittest.TestCase):
"Block_size(kb)": 16384, "Bandwidth(MBps)": 14128.94}, {"Test_type":\
"INTEGER & WRITING", "Block_size(kb)": 32768, "Bandwidth(MBps)": 8340.85}]}'
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, r.run, self.result)
+ self.assertRaises(y_exc.SLAValidationError, r.run, self.result)
def test_ramspeed_unsuccessful_script_error(self, mock_ssh):
options = {
@@ -221,7 +220,7 @@ class RamspeedTestCase(unittest.TestCase):
"Bandwidth(MBps)": 1300.27}, {"Test_type": "INTEGER AVERAGE:",\
"Bandwidth(MBps)": 2401.58}]}'
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, r.run, self.result)
+ self.assertRaises(y_exc.SLAValidationError, r.run, self.result)
def test_ramspeed_unsuccessful_unknown_type_run(self, mock_ssh):
options = {
@@ -235,10 +234,3 @@ class RamspeedTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'No such type_id: 30 for \
Ramspeed scenario')
self.assertRaises(RuntimeError, r.run, self.result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_spec_cpu.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_spec_cpu.py
index 40423b9da..643e1eae2 100644
--- a/tests/unit/benchmark/scenarios/compute/test_spec_cpu.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_spec_cpu.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
#
@@ -17,7 +15,6 @@ import unittest
import mock
-from yardstick.common import utils
from yardstick.benchmark.scenarios.compute import spec_cpu
@@ -39,7 +36,6 @@ class SpecCPUTestCase(unittest.TestCase):
options = {
"SPECint_benchmark": "perlbench",
- "runspec_tune": "all",
"output_format": "all",
"runspec_iterations": "1",
"runspec_tune": "base",
@@ -63,7 +59,6 @@ class SpecCPUTestCase(unittest.TestCase):
args = {"options": options}
s = spec_cpu.SpecCPU(args, self.ctx)
- sample_output = ''
mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
s.run(self.result)
expected_result = {}
@@ -78,9 +73,3 @@ class SpecCPUTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, s.run, self.result)
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_spec_cpu_for_vm.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_spec_cpu_for_vm.py
index c428e1fb8..74ef576b6 100644
--- a/tests/unit/benchmark/scenarios/compute/test_spec_cpu_for_vm.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_spec_cpu_for_vm.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
#
@@ -76,9 +74,3 @@ class SpecCPUforVMTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, s.run, self.result)
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/compute/test_unixbench.py b/yardstick/tests/unit/benchmark/scenarios/compute/test_unixbench.py
index 7d071e91c..e4a8d6e26 100644
--- a/tests/unit/benchmark/scenarios/compute/test_unixbench.py
+++ b/yardstick/tests/unit/benchmark/scenarios/compute/test_unixbench.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and other.
#
@@ -19,6 +17,7 @@ import mock
from oslo_serialization import jsonutils
from yardstick.benchmark.scenarios.compute import unixbench
+from yardstick.common import exceptions as y_exc
@mock.patch('yardstick.benchmark.scenarios.compute.unixbench.ssh')
@@ -40,7 +39,7 @@ class UnixbenchTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
self.assertIsNotNone(u.client)
- self.assertEqual(u.setup_done, True)
+ self.assertTrue(u.setup_done)
def test_unixbench_successful_no_sla(self, mock_ssh):
@@ -124,7 +123,7 @@ class UnixbenchTestCase(unittest.TestCase):
sample_output = '{"single_score":"200.7","parallel_score":"4395.9"}'
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, u.run, result)
+ self.assertRaises(y_exc.SLAValidationError, u.run, result)
def test_unixbench_unsuccessful_sla_parallel_score(self, mock_ssh):
@@ -139,7 +138,7 @@ class UnixbenchTestCase(unittest.TestCase):
sample_output = '{"signle_score":"2251.7","parallel_score":"3395.9"}'
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, u.run, result)
+ self.assertRaises(y_exc.SLAValidationError, u.run, result)
def test_unixbench_unsuccessful_script_error(self, mock_ssh):
@@ -162,10 +161,3 @@ class UnixbenchTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, u.run, result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/network_services/vnf_generic/vnf/__init__.py b/yardstick/tests/unit/benchmark/scenarios/dummy/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/network_services/vnf_generic/vnf/__init__.py
+++ b/yardstick/tests/unit/benchmark/scenarios/dummy/__init__.py
diff --git a/tests/unit/benchmark/scenarios/dummy/test_dummy.py b/yardstick/tests/unit/benchmark/scenarios/dummy/test_dummy.py
index 560675d09..875302da8 100644
--- a/tests/unit/benchmark/scenarios/dummy/test_dummy.py
+++ b/yardstick/tests/unit/benchmark/scenarios/dummy/test_dummy.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
@@ -24,11 +22,11 @@ class DummyTestCase(unittest.TestCase):
self.assertIsNone(self.test_context.scenario_cfg)
self.assertIsNone(self.test_context.context_cfg)
- self.assertEqual(self.test_context.setup_done, False)
+ self.assertFalse(self.test_context.setup_done)
def test_run(self):
result = {}
self.test_context.run(result)
self.assertEqual(result["hello"], "yardstick")
- self.assertEqual(self.test_context.setup_done, True)
+ self.assertTrue(self.test_context.setup_done)
diff --git a/tests/unit/orchestrator/__init__.py b/yardstick/tests/unit/benchmark/scenarios/energy/__init__.py
index e69de29bb..e69de29bb 100644
--- a/tests/unit/orchestrator/__init__.py
+++ b/yardstick/tests/unit/benchmark/scenarios/energy/__init__.py
diff --git a/yardstick/tests/unit/benchmark/scenarios/energy/energy_sample_chassis_output.txt b/yardstick/tests/unit/benchmark/scenarios/energy/energy_sample_chassis_output.txt
new file mode 100644
index 000000000..9b3afd1fb
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/energy/energy_sample_chassis_output.txt
@@ -0,0 +1,14 @@
+{
+ "@odata.id": "/redfish/v1/Chassis",
+ "Name": "ChassisCollection",
+ "@odata.context": "/redfish/v1/$metadata#ChassisCollection.ChassisCollection",
+ "Members": [
+ {
+ "@odata.id": "/redfish/v1/Chassis/1"
+ }
+ ],
+ "@odata.type": "#ChassisCollection.ChassisCollection",
+ "@odata.etag": "\"af5a94479815eb5f87fe91ea08fde0ac\"",
+ "Members@odata.count": 1,
+ "Description": "A collection of Chassis resource instances."
+}
diff --git a/yardstick/tests/unit/benchmark/scenarios/energy/energy_sample_power_metrics.txt b/yardstick/tests/unit/benchmark/scenarios/energy/energy_sample_power_metrics.txt
new file mode 100644
index 000000000..343ed3667
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/energy/energy_sample_power_metrics.txt
@@ -0,0 +1,300 @@
+{
+ "PowerControl@odata.count": 1,
+ "@odata.id": "/redfish/v1/Chassis/1/Power",
+ "Redundancy@odata.count": 1,
+ "@odata.context": "/redfish/v1/$metadata#Power.Power",
+ "Voltages": [
+ {
+ "MaxReadingRange": 14.28,
+ "RelatedItem": [
+ {
+ "@odata.id": "/redfish/v1/Systems/1"
+ },
+ {
+ "@odata.id": "/redfish/v1/Chassis/1"
+ }
+ ],
+ "@odata.id": "/redfish/v1/Chassis/1/Power#/Voltages/0",
+ "Status": {
+ "State": "Enabled"
+ },
+ "SensorNumber": 140,
+ "Name": "SysBrd 12V",
+ "PhysicalContext": "VoltageRegulator",
+ "LowerThresholdCritical": 10.81,
+ "RelatedItem@odata.count": 2,
+ "MemberId": "0",
+ "MinReadingRange": null,
+ "ReadingVolts": 12.15,
+ "UpperThresholdCritical": 13.22
+ },
+ {
+ "MaxReadingRange": 3.95,
+ "RelatedItem": [
+ {
+ "@odata.id": "/redfish/v1/Systems/1"
+ },
+ {
+ "@odata.id": "/redfish/v1/Chassis/1"
+ }
+ ],
+ "@odata.id": "/redfish/v1/Chassis/1/Power#/Voltages/1",
+ "Status": {
+ "State": "Enabled"
+ },
+ "SensorNumber": 141,
+ "Name": "SysBrd 3.3V",
+ "PhysicalContext": "VoltageRegulator",
+ "LowerThresholdCritical": 2.98,
+ "RelatedItem@odata.count": 2,
+ "MemberId": "1",
+ "MinReadingRange": null,
+ "UpperThresholdCritical": 3.63,
+ "ReadingVolts": 3.36
+ },
+ {
+ "MaxReadingRange": 5.97,
+ "RelatedItem": [
+ {
+ "@odata.id": "/redfish/v1/Systems/1"
+ },
+ {
+ "@odata.id": "/redfish/v1/Chassis/1"
+ }
+ ],
+ "@odata.id": "/redfish/v1/Chassis/1/Power#/Voltages/2",
+ "Status": {
+ "State": "Enabled"
+ },
+ "SensorNumber": 142,
+ "Name": "SysBrd 5V",
+ "PhysicalContext": "VoltageRegulator",
+ "LowerThresholdCritical": 4.49,
+ "RelatedItem@odata.count": 2,
+ "MemberId": "2",
+ "MinReadingRange": null,
+ "UpperThresholdCritical": 5.5,
+ "ReadingVolts": 5.03
+ },
+ {
+ "MaxReadingRange": 3.32,
+ "RelatedItem": [
+ {
+ "@odata.id": "/redfish/v1/Systems/1"
+ },
+ {
+ "@odata.id": "/redfish/v1/Chassis/1"
+ }
+ ],
+ "@odata.id": "/redfish/v1/Chassis/1/Power#/Voltages/3",
+ "Status": {
+ "State": "Enabled"
+ },
+ "SensorNumber": 3,
+ "Name": "CMOS Battery",
+ "PhysicalContext": "VoltageRegulator",
+ "LowerThresholdCritical": 2.25,
+ "RelatedItem@odata.count": 2,
+ "MemberId": "3",
+ "MinReadingRange": null,
+ "LowerThresholdNonCritical": 2.39,
+ "ReadingVolts": 3.12
+ }
+ ],
+ "Voltages@odata.count": 4,
+ "Redundancy": [
+ {
+ "@odata.id": "/redfish/v1/Chassis/1/Power#/Redundancy/0",
+ "Status": {
+ "State": "Enabled",
+ "Health": "OK"
+ },
+ "Name": "PSU Redundancy",
+ "MinNumNeeded": 2,
+ "Oem": {
+ "Lenovo": {
+ "NonRedundantAvailablePower": 1100,
+ "@odata.type": "#LenovoRedundancy.v1_0_0.LenovoRedundancyProperties",
+ "PowerRedundancySettings": {
+ "EstimatedUsage": "58.55%",
+ "MaxPowerLimitWatts": 1100,
+ "PowerFailureLimit": 0,
+ "PowerRedundancyPolicy": "RedundantWithThrottling"
+ }
+ }
+ },
+ "RedundancyEnabled": true,
+ "RedundancySet": [
+ {
+ "@odata.id": "/redfish/v1/Chassis/1/Power#/PowerSupplies/0"
+ },
+ {
+ "@odata.id": "/redfish/v1/Chassis/1/Power#/PowerSupplies/1"
+ }
+ ],
+ "RedundancySet@odata.count": 2,
+ "MaxNumSupported": 2,
+ "Mode": "N+m",
+ "MemberId": "0"
+ }
+ ],
+ "Description": "Power Consumption and Power Limiting",
+ "Name": "Power",
+ "PowerSupplies@odata.count": 2,
+ "Oem": {
+ "Lenovo": {
+ "@odata.type": "#LenovoPower.v1_0_0.Capabilities",
+ "LocalPowerControlEnabled": true,
+ "PowerOnPermissionEnabled": true,
+ "PowerRestorePolicy": "Restore",
+ "WakeOnLANEnabled": true
+ }
+ },
+ "@odata.type": "#Power.v1_5_1.Power",
+ "Id": "Power",
+ "@odata.etag": "\"ad85a1403e07a433386e9907d00565cc\"",
+ "PowerControl": [
+ {
+ "PowerAllocatedWatts": 1100,
+ "RelatedItem": [
+ {
+ "@odata.id": "/redfish/v1/Chassis/1"
+ }
+ ],
+ "@odata.id": "/redfish/v1/Chassis/1/Power#/PowerControl/0",
+ "Status": {
+ "HealthRollup": "Warning",
+ "State": "Enabled"
+ },
+ "PowerLimit": {
+ "LimitException": "NoAction",
+ "LimitInWatts": null
+ },
+ "Name": "Server Power Control",
+ "Oem": {
+ "Lenovo": {
+ "PowerUtilization": {
+ "MaxLimitInWatts": 1100,
+ "EnablePowerCapping": false,
+ "LimitMode": "AC",
+ "EnablePowerCapping@Redfish.Deprecated": "The property is deprecated. Please use LimitInWatts instead.",
+ "CapacityMinAC": 617,
+ "MinLimitInWatts": 0,
+ "GuaranteedInWatts": 617,
+ "CapacityMinDC": 578,
+ "CapacityMaxDC": 749,
+ "CapacityMaxAC": 802
+ },
+ "HistoryPowerMetric": {
+ "@odata.id": "/redfish/v1/Chassis/1/Power/PowerControl/0/Oem/Lenovo/HistoryPowerMetric"
+ },
+ "@odata.type": "#LenovoPower.v1_0_0.PowerControl"
+ }
+ },
+ "PowerAvailableWatts": 0,
+ "PowerMetrics": {
+ "IntervalInMin": 60,
+ "AverageConsumedWatts": 314.716675,
+ "MinConsumedWatts": 311,
+ "MaxConsumedWatts": 318
+ },
+ "RelatedItem@odata.count": 1,
+ "MemberId": "0",
+ "PowerRequestedWatts": 802,
+ "PowerConsumedWatts": 344,
+ "PowerCapacityWatts": 1100
+ }
+ ],
+ "PowerSupplies": [
+ {
+ "SerialNumber": "A4DB8BP11WJ",
+ "InputRanges": [
+ {
+ "InputType": null,
+ "OutputWattage": null,
+ "MinimumVoltage": null,
+ "MaximumVoltage": null
+ }
+ ],
+ "@odata.id": "/redfish/v1/Chassis/1/Power#/PowerSupplies/0",
+ "RelatedItem@odata.count": 1,
+ "MemberId": "0",
+ "PartNumber": "SP57A02023",
+ "FirmwareVersion": "4.52",
+ "Status": {
+ "State": "Enabled",
+ "Health": "Warning"
+ },
+ "LineInputVoltage": null,
+ "Name": "PSU1",
+ "PowerSupplyType": "Unknown",
+ "LastPowerOutputWatts": 316,
+ "Oem": {
+ "Lenovo": {
+ "Location": {
+ "InfoFormat": "Slot X",
+ "Info": "Slot 1"
+ },
+ "HistoryPowerSupplyMetric": {
+ "@odata.id": "/redfish/v1/Chassis/1/Power/PowerSupplies/0/Oem/Lenovo/HistoryPowerSupplyMetric"
+ },
+ "@odata.type": "#LenovoPower.v1_0_0.PowerSupply"
+ }
+ },
+ "PowerCapacityWatts": null,
+ "Manufacturer": "ACBE",
+ "LineInputVoltageType": "Unknown",
+ "Model": "LENOVO-SP57A02023",
+ "RelatedItem": [
+ {
+ "@odata.id": "/redfish/v1/Chassis/1"
+ }
+ ]
+ },
+ {
+ "SerialNumber": "A4DB8BP12J7",
+ "InputRanges": [
+ {
+ "InputType": "AC",
+ "OutputWattage": 1100,
+ "MinimumVoltage": 200,
+ "MaximumVoltage": 240
+ }
+ ],
+ "@odata.id": "/redfish/v1/Chassis/1/Power#/PowerSupplies/1",
+ "RelatedItem@odata.count": 1,
+ "MemberId": "1",
+ "PartNumber": "SP57A02023",
+ "FirmwareVersion": "4.52",
+ "Status": {
+ "State": "Enabled",
+ "Health": "OK"
+ },
+ "LineInputVoltage": 220,
+ "Name": "PSU2",
+ "PowerSupplyType": "AC",
+ "LastPowerOutputWatts": 316,
+ "Oem": {
+ "Lenovo": {
+ "Location": {
+ "InfoFormat": "Slot X",
+ "Info": "Slot 2"
+ },
+ "HistoryPowerSupplyMetric": {
+ "@odata.id": "/redfish/v1/Chassis/1/Power/PowerSupplies/1/Oem/Lenovo/HistoryPowerSupplyMetric"
+ },
+ "@odata.type": "#LenovoPower.v1_0_0.PowerSupply"
+ }
+ },
+ "PowerCapacityWatts": 1100,
+ "Manufacturer": "ACBE",
+ "LineInputVoltageType": "ACMidLine",
+ "Model": "LENOVO-SP57A02023",
+ "RelatedItem": [
+ {
+ "@odata.id": "/redfish/v1/Chassis/1"
+ }
+ ]
+ }
+ ]
+}
diff --git a/yardstick/tests/unit/benchmark/scenarios/energy/test_energy.py b/yardstick/tests/unit/benchmark/scenarios/energy/test_energy.py
new file mode 100644
index 000000000..98daefeb7
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/energy/test_energy.py
@@ -0,0 +1,182 @@
+##############################################################################
+# Copyright (c) 2019 Lenovo Group Limited Co.,Ltd 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
+##############################################################################
+
+# Unittest for yardstick.benchmark.scenarios.energy.energy.Energy
+
+from __future__ import absolute_import
+import unittest
+import mock
+import os
+from yardstick.benchmark.scenarios.energy import energy
+
+
+class EnergyTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.ctx = {
+ 'target': {
+ 'ip': '172.16.0.137',
+ 'user': 'root',
+ 'password': 'passw0rd',
+ 'redfish_ip': '10.229.17.105',
+ 'redfish_user': 'USERID',
+ 'redfish_pwd': "PASSW0RD",
+ }
+ }
+ self.result = {}
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_setup_response_success(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 200
+ p.setup()
+ self.assertTrue(p.get_response)
+ self.assertTrue(p.setup_done)
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_setup_response_failed(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 404
+ p.setup()
+ self.assertFalse(p.get_response)
+ self.assertTrue(p.setup_done)
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_load_chassis_list_success(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ expect_result = self._read_file("energy_sample_chassis_output.txt")
+ expect_result = str(expect_result)
+ expect_result = expect_result.replace("'", '"')
+ mock_send_request.return_value.status_code = 200
+ mock_send_request.return_value.text = expect_result
+ self.result = p.load_chassis_list()
+ self.assertEqual(self.result, ["/redfish/v1/Chassis/1"])
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_load_chassis_response_fail(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 404
+ self.result = p.load_chassis_list()
+ self.assertEqual(self.result, [])
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_load_chassis_wrongtype_response(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 200
+ expect_result = {}
+ mock_send_request.return_value.text = expect_result
+ self.result = p.load_chassis_list()
+ self.assertEqual(self.result, [])
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_load_chassis_inproper_key(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 200
+ expect_result = '{"some_key": "some_value"}'
+ mock_send_request.return_value.text = expect_result
+ self.result = p.load_chassis_list()
+ self.assertEqual(self.result, [])
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_energy_getpower_success(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ expect_result = self._read_file("energy_sample_power_metrics.txt")
+ expect_result = str(expect_result)
+ expect_result = expect_result.replace("'", '"')
+ mock_send_request.return_value.status_code = 200
+ mock_send_request.return_value.text = expect_result
+ self.result = p.get_power("/redfish/v1/Chassis/1")
+ self.assertEqual(self.result, 344)
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_energy_getpower_response_fail(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 404
+ self.result = p.get_power("/redfish/v1/Chassis/1")
+ self.assertEqual(self.result, -1)
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_energy_getpower_wrongtype_response(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 200
+ expect_result = {}
+ mock_send_request.return_value.text = expect_result
+ self.result = p.get_power("/redfish/v1/Chassis/1")
+ self.assertEqual(self.result, -1)
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_energy_getpower_inproper_key(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 200
+ expect_result = '{"some_key": "some_value"}'
+ mock_send_request.return_value.text = expect_result
+ self.result = p.get_power("/redfish/v1/Chassis/1")
+ self.assertEqual(self.result, -1)
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_run_success(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 200
+ chassis_list = mock.Mock(return_value=["/redfish/v1/Chassis/1"])
+ p.load_chassis_list = chassis_list
+ power = mock.Mock(return_value=344)
+ p.get_power = power
+ p.run(self.result)
+ self.assertEqual(self.result, {"power": 344})
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_run_no_response(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 404
+ chassis_list = mock.Mock(return_value=["/redfish/v1/Chassis/1"])
+ p.load_chassis_list = chassis_list
+ p.run(self.result)
+ self.assertEqual(self.result, {"power": -1})
+
+ @mock.patch('yardstick.benchmark.scenarios.'
+ 'energy.energy.Energy._send_request')
+ def test_run_wrong_chassis(self, mock_send_request):
+ args = {}
+ p = energy.Energy(args, self.ctx)
+ mock_send_request.return_value.status_code = 200
+ chassis_list = mock.Mock(return_value=[])
+ p.load_chassis_list = chassis_list
+ p.run(self.result)
+ self.assertEqual(self.result, {"power": -1})
+
+ def _read_file(self, filename):
+ curr_path = os.path.dirname(os.path.abspath(__file__))
+ output = os.path.join(curr_path, filename)
+ with open(output) as f:
+ sample_output = f.read()
+ return sample_output
diff --git a/yardstick/network_services/libs/ixia_libs/IxNet/__init__.py b/yardstick/tests/unit/benchmark/scenarios/lib/__init__.py
index e69de29bb..e69de29bb 100644
--- a/yardstick/network_services/libs/ixia_libs/IxNet/__init__.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/__init__.py
diff --git a/tests/unit/benchmark/scenarios/lib/test_add_memory_load.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_add_memory_load.py
index bda07f723..af4f0c8ab 100644
--- a/tests/unit/benchmark/scenarios/lib/test_add_memory_load.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_add_memory_load.py
@@ -27,7 +27,7 @@ class AddMemoryLoadTestCase(unittest.TestCase):
mock_from_node().execute.return_value = (0, '0 2048 512', '')
obj = AddMemoryLoad(scenario_cfg, context_cfg)
obj.run({})
- self.assertTrue(mock_from_node.called)
+ mock_from_node.assert_called()
@mock.patch('yardstick.ssh.SSH.from_node')
def test_add_memory_load_without_load(self, mock_from_node):
@@ -41,7 +41,7 @@ class AddMemoryLoadTestCase(unittest.TestCase):
}
obj = AddMemoryLoad(scenario_cfg, context_cfg)
obj.run({})
- self.assertTrue(mock_from_node.called)
+ mock_from_node.assert_called_once()
@mock.patch('yardstick.ssh.SSH.from_node')
def test_add_memory_load_without_args(self, mock_from_node):
@@ -54,12 +54,4 @@ class AddMemoryLoadTestCase(unittest.TestCase):
}
obj = AddMemoryLoad(scenario_cfg, context_cfg)
obj.run({})
- self.assertTrue(mock_from_node.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
+ mock_from_node.assert_called_once()
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_attach_volume.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_attach_volume.py
new file mode 100644
index 000000000..bb7fa4536
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_attach_volume.py
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import attach_volume
+
+
+class AttachVolumeTestCase(unittest.TestCase):
+
+ def setUp(self):
+
+ self._mock_attach_volume_to_server = mock.patch.object(
+ openstack_utils, 'attach_volume_to_server')
+ self.mock_attach_volume_to_server = (
+ self._mock_attach_volume_to_server.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(attach_volume, 'LOG')
+ self.mock_log = self._mock_log.start()
+ _uuid = uuidutils.generate_uuid()
+ self.args = {'options': {'server_name_or_id': _uuid,
+ 'volume_name_or_id': _uuid}}
+ self.result = {}
+ self.addCleanup(self._stop_mock)
+ self.attachvol_obj = attach_volume.AttachVolume(self.args, mock.ANY)
+
+ def _stop_mock(self):
+ self._mock_attach_volume_to_server.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_attach_volume_to_server.return_value = True
+ self.assertIsNone(self.attachvol_obj.run(self.result))
+ self.assertEqual({'attach_volume': 1}, self.result)
+ self.mock_log.info.asset_called_once_with(
+ 'Attach volume to server successful!')
+
+ def test_run_fail(self):
+ self.mock_attach_volume_to_server.return_value = False
+ with self.assertRaises(exceptions.ScenarioAttachVolumeError):
+ self.attachvol_obj.run(self.result)
+ self.assertEqual({'attach_volume': 0}, self.result)
+ self.mock_log.error.assert_called_once_with(
+ 'Attach volume to server failed!')
diff --git a/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py
index 1fb2f89ca..a48353a4f 100644
--- a/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py
@@ -30,7 +30,7 @@ class CheckConnectivityTestCase(unittest.TestCase):
'target': {
'ipaddr': '172.16.0.138'
}
- }
+ }
@mock.patch('yardstick.benchmark.scenarios.lib.check_connectivity.ssh')
def test_check_connectivity(self, mock_ssh):
@@ -43,18 +43,18 @@ class CheckConnectivityTestCase(unittest.TestCase):
'ssh_port': '22',
'ssh_timeout': 600,
'ping_parameter': "-s 2048"
- },
+ },
'sla': {'status': 'True',
'action': 'assert'}
}
- result = {}
+ # TODO(elfoley): Properly check the outputs
+ result = {} # pylint: disable=unused-variable
obj = check_connectivity.CheckConnectivity(args, {})
obj.setup()
mock_ssh.SSH.execute.return_value = (0, '100', '')
-
@mock.patch('yardstick.benchmark.scenarios.lib.check_connectivity.ssh')
def test_check_connectivity_key(self, mock_ssh):
@@ -64,21 +64,15 @@ class CheckConnectivityTestCase(unittest.TestCase):
'ssh_port': '22',
'ssh_timeout': 600,
'ping_parameter': "-s 2048"
- },
+ },
'sla': {'status': 'True',
'action': 'assert'}
}
- result = {}
+ # TODO(elfoley): Properly check the outputs
+ result = {} # pylint: disable=unused-variable
obj = check_connectivity.CheckConnectivity(args, self.ctx)
obj.setup()
mock_ssh.SSH.execute.return_value = (0, '100', '')
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_check_numa_info.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_check_numa_info.py
index bdf1e66e5..270c9d3c9 100644
--- a/tests/unit/benchmark/scenarios/lib/test_check_numa_info.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_check_numa_info.py
@@ -6,20 +6,20 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-import unittest
import mock
+import unittest
from yardstick.benchmark.scenarios.lib.check_numa_info import CheckNumaInfo
class CheckNumaInfoTestCase(unittest.TestCase):
- @mock.patch('yardstick.benchmark.scenarios.lib.check_numa_info.CheckNumaInfo._check_vm2_status')
- def test_check_numa_info(self, mock_check_vm2):
+ @mock.patch.object(CheckNumaInfo, '_check_vm2_status')
+ def test_run(self, mock_check_vm2):
scenario_cfg = {'info1': {}, 'info2': {}}
obj = CheckNumaInfo(scenario_cfg, {})
obj.run({})
- self.assertTrue(mock_check_vm2.called)
+ mock_check_vm2.assert_called_once()
def test_check_vm2_status_length_eq_1(self):
info1 = {
@@ -37,7 +37,7 @@ class CheckNumaInfoTestCase(unittest.TestCase):
scenario_cfg = {'info1': info1, 'info2': info2}
obj = CheckNumaInfo(scenario_cfg, {})
status = obj._check_vm2_status(info1, info2)
- self.assertEqual(status, True)
+ self.assertTrue(status)
def test_check_vm2_status_length_gt_1(self):
info1 = {
@@ -55,7 +55,7 @@ class CheckNumaInfoTestCase(unittest.TestCase):
scenario_cfg = {'info1': info1, 'info2': info2}
obj = CheckNumaInfo(scenario_cfg, {})
status = obj._check_vm2_status(info1, info2)
- self.assertEqual(status, False)
+ self.assertFalse(status)
def test_check_vm2_status_length_not_in_set(self):
info1 = {
@@ -73,12 +73,4 @@ class CheckNumaInfoTestCase(unittest.TestCase):
scenario_cfg = {'info1': info1, 'info2': info2}
obj = CheckNumaInfo(scenario_cfg, {})
status = obj._check_vm2_status(info1, info2)
- self.assertEqual(status, False)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
+ self.assertFalse(status)
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_check_value.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_check_value.py
new file mode 100644
index 000000000..b0488bacd
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_check_value.py
@@ -0,0 +1,63 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
+
+from yardstick.benchmark.scenarios.lib import check_value
+from yardstick.common import exceptions as y_exc
+
+
+class CheckValueTestCase(unittest.TestCase):
+
+ def test_eq_pass(self):
+ scenario_cfg = {'options': {'operator': 'eq',
+ 'value1': 1,
+ 'value2': 1}}
+ obj = check_value.CheckValue(scenario_cfg, {})
+ result = obj.run({})
+
+ self.assertEqual({}, result)
+
+ def test_ne_pass(self):
+ scenario_cfg = {'options': {'operator': 'ne',
+ 'value1': 1,
+ 'value2': 2}}
+ obj = check_value.CheckValue(scenario_cfg, {})
+ result = obj.run({})
+
+ self.assertEqual({}, result)
+
+ def test_result(self):
+ scenario_cfg = {'options': {'operator': 'eq',
+ 'value1': 1,
+ 'value2': 1},
+ 'output': 'foo'}
+ obj = check_value.CheckValue(scenario_cfg, {})
+ result = obj.run({})
+
+ self.assertDictEqual(result, {'foo': 'PASS'})
+
+ def test_eq(self):
+ scenario_cfg = {'options': {'operator': 'eq',
+ 'value1': 1,
+ 'value2': 2}}
+ obj = check_value.CheckValue(scenario_cfg, {})
+
+ with self.assertRaises(y_exc.ValueCheckError):
+ result = obj.run({})
+ self.assertEqual({}, result)
+
+ def test_ne(self):
+ scenario_cfg = {'options': {'operator': 'ne',
+ 'value1': 1,
+ 'value2': 1}}
+ obj = check_value.CheckValue(scenario_cfg, {})
+
+ with self.assertRaises(y_exc.ValueCheckError):
+ result = obj.run({})
+ self.assertEqual({}, result)
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_flavor.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_flavor.py
index 036ae952d..0b175fae8 100644
--- a/tests/unit/benchmark/scenarios/lib/test_create_flavor.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_flavor.py
@@ -26,12 +26,4 @@ class CreateFlavorTestCase(unittest.TestCase):
args = {"options": options}
obj = CreateFlavor(args, {})
obj.run({})
- self.assertTrue(mock_create_flavor.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
+ mock_create_flavor.assert_called_once()
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py
new file mode 100644
index 000000000..894cc1c2a
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_floating_ip.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
+import mock
+
+from yardstick.benchmark.scenarios.lib import create_floating_ip
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+
+
+class CreateFloatingIpTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_create_floating_ip = mock.patch.object(
+ openstack_utils, 'create_floating_ip')
+ self.mock_create_floating_ip = self._mock_create_floating_ip.start()
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(create_floating_ip, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'network_name_or_id': 'yardstick_net'}}
+ self.result = {}
+
+ self.fip_obj = create_floating_ip.CreateFloatingIp(self.args, mock.ANY)
+ self.fip_obj.scenario_cfg = {'output': 'key1\nkey2'}
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_create_floating_ip.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_create_floating_ip.return_value = {'fip_id': 'value1',
+ 'fip_addr': 'value2'}
+ output = self.fip_obj.run(self.result)
+ self.assertEqual({'floating_ip_create': 1}, self.result)
+ self.assertEqual({'key1': 'value1', 'key2': 'value2'}, output)
+ self.mock_log.info.asset_called_once_with(
+ 'Creating floating ip successful!')
+
+ def test_run_no_fip(self):
+ self.mock_create_floating_ip.return_value = None
+ with self.assertRaises(exceptions.ScenarioCreateFloatingIPError):
+ self.fip_obj.run(self.result)
+ self.assertEqual({'floating_ip_create': 0}, self.result)
+ self.mock_log.error.assert_called_once_with(
+ 'Creating floating ip failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_create_image.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_image.py
new file mode 100644
index 000000000..aebd1dfe8
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_image.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 mock
+from oslo_utils import uuidutils
+import unittest
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import create_image
+
+
+class CreateImageTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_create_image = mock.patch.object(
+ openstack_utils, 'create_image')
+ self.mock_create_image = (
+ self._mock_create_image.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(create_image, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'image_name': 'yardstick_image'}}
+ self.result = {}
+ self.cimage_obj = create_image.CreateImage(self.args, mock.ANY)
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_create_image.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ _uuid = uuidutils.generate_uuid()
+ self.cimage_obj.scenario_cfg = {'output': 'id'}
+ self.mock_create_image.return_value = _uuid
+ output = self.cimage_obj.run(self.result)
+ self.assertEqual({'image_create': 1}, self.result)
+ self.assertEqual({'id': _uuid}, output)
+ self.mock_log.info.asset_called_once_with('Create image successful!')
+
+ def test_run_fail(self):
+ self.mock_create_image.return_value = None
+ with self.assertRaises(exceptions.ScenarioCreateImageError):
+ self.cimage_obj.run(self.result)
+ self.assertEqual({'image_create': 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Create image failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_create_keypair.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_keypair.py
new file mode 100644
index 000000000..a7b683f47
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_keypair.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import create_keypair
+
+
+class CreateKeypairTestCase(unittest.TestCase):
+
+ def setUp(self):
+
+ self._mock_create_keypair = mock.patch.object(
+ openstack_utils, 'create_keypair')
+ self.mock_create_keypair = (
+ self._mock_create_keypair.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(create_keypair, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'key_name': 'yardstick_key'}}
+ self.result = {}
+
+ self.ckeypair_obj = create_keypair.CreateKeypair(self.args, mock.ANY)
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_create_keypair.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ _uuid = uuidutils.generate_uuid()
+ self.ckeypair_obj.scenario_cfg = {'output': 'id'}
+ self.mock_create_keypair.return_value = {
+ 'name': 'key-name', 'type': 'ssh', 'id': _uuid}
+ output = self.ckeypair_obj.run(self.result)
+ self.assertDictEqual({'keypair_create': 1}, self.result)
+ self.assertDictEqual({'id': _uuid}, output)
+ self.mock_log.info.asset_called_once_with('Create keypair successful!')
+
+ def test_run_fail(self):
+ self.mock_create_keypair.return_value = None
+ with self.assertRaises(exceptions.ScenarioCreateKeypairError):
+ self.ckeypair_obj.run(self.result)
+ self.assertDictEqual({'keypair_create': 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Create keypair failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_create_network.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_network.py
new file mode 100644
index 000000000..17a4ef2e1
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_network.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import create_network
+
+
+class CreateNetworkTestCase(unittest.TestCase):
+
+ def setUp(self):
+
+ self._mock_create_neutron_net = mock.patch.object(
+ openstack_utils, 'create_neutron_net')
+ self.mock_create_neutron_net = self._mock_create_neutron_net.start()
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(create_network, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'network_name': 'yardstick_net'}}
+ self.result = {}
+
+ self._cnet_obj = create_network.CreateNetwork(self.args, mock.ANY)
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_create_neutron_net.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ _uuid = uuidutils.generate_uuid()
+ self._cnet_obj.scenario_cfg = {'output': 'id'}
+ self.mock_create_neutron_net.return_value = _uuid
+ output = self._cnet_obj.run(self.result)
+ self.assertEqual({"network_create": 1}, self.result)
+ self.assertEqual({'id': _uuid}, output)
+ self.mock_log.info.asset_called_once_with('Create network successful!')
+
+ def test_run_fail_exception(self):
+ self.mock_create_neutron_net.return_value = None
+ with self.assertRaises(exceptions.ScenarioCreateNetworkError):
+ self._cnet_obj.run(self.result)
+ self.assertEqual({"network_create": 0}, self.result)
+ self.mock_log.error.assert_called_once_with(
+ 'Create network failed!')
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_port.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_port.py
index 3b2aa2247..bea02a630 100644
--- a/tests/unit/benchmark/scenarios/lib/test_create_port.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_port.py
@@ -8,7 +8,6 @@
##############################################################################
import unittest
import mock
-import paramiko
from yardstick.benchmark.scenarios.lib.create_port import CreatePort
@@ -18,19 +17,11 @@ class CreatePortTestCase(unittest.TestCase):
@mock.patch('yardstick.common.openstack_utils.get_neutron_client')
def test_create_port(self, mock_get_neutron_client):
options = {
- 'openstack_paras': {
- 'name': 'yardstick_port'
- }
+ 'openstack_paras': {
+ 'name': 'yardstick_port'
+ }
}
args = {"options": options}
obj = CreatePort(args, {})
obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
+ mock_get_neutron_client.assert_called_once()
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_create_router.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_router.py
new file mode 100644
index 000000000..8d6f119ab
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_router.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import create_router
+
+
+class CreateRouterTestCase(unittest.TestCase):
+
+ def setUp(self):
+
+ self._mock_create_neutron_router = mock.patch.object(
+ openstack_utils, 'create_neutron_router')
+ self.mock_create_neutron_router = (
+ self._mock_create_neutron_router.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(create_router, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'name': 'yardstick_net'}}
+ self.result = {}
+
+ self.crouter_obj = create_router.CreateRouter(self.args, mock.ANY)
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_create_neutron_router.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ _uuid = uuidutils.generate_uuid()
+ self.crouter_obj.scenario_cfg = {'output': 'id'}
+ self.mock_create_neutron_router.return_value = _uuid
+ output = self.crouter_obj.run(self.result)
+ self.assertEqual({"router_create": 1}, self.result)
+ self.assertEqual({'id': _uuid}, output)
+ self.mock_log.info.asset_called_once_with('Create router successful!')
+
+ def test_run_fail(self):
+ self.mock_create_neutron_router.return_value = None
+ with self.assertRaises(exceptions.ScenarioCreateRouterError):
+ self.crouter_obj.run(self.result)
+ self.assertEqual({"router_create": 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Create router failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py
new file mode 100644
index 000000000..0477a49d4
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import create_sec_group
+
+
+class CreateSecurityGroupTestCase(unittest.TestCase):
+
+ def setUp(self):
+
+ self._mock_create_security_group_full = mock.patch.object(
+ openstack_utils, 'create_security_group_full')
+ self.mock_create_security_group_full = (
+ self._mock_create_security_group_full.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(create_sec_group, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'sg_name': 'yardstick_sg'}}
+ self.result = {}
+
+ self.csecgp_obj = create_sec_group.CreateSecgroup(self.args, mock.ANY)
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_create_security_group_full.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ _uuid = uuidutils.generate_uuid()
+ self.csecgp_obj.scenario_cfg = {'output': 'id'}
+ self.mock_create_security_group_full.return_value = _uuid
+ output = self.csecgp_obj.run(self.result)
+ self.assertEqual({'sg_create': 1}, self.result)
+ self.assertEqual({'id': _uuid}, output)
+ self.mock_log.info.asset_called_once_with(
+ 'Create security group successful!')
+
+ def test_run_fail(self):
+ self.mock_create_security_group_full.return_value = None
+ with self.assertRaises(exceptions.ScenarioCreateSecurityGroupError):
+ self.csecgp_obj.run(self.result)
+ self.assertEqual({'sg_create': 0}, self.result)
+ self.mock_log.error.assert_called_once_with(
+ 'Create security group failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_create_server.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_server.py
new file mode 100644
index 000000000..b58785112
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_server.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import create_server
+
+
+class CreateServerTestCase(unittest.TestCase):
+
+ def setUp(self):
+
+ self._mock_create_instance_and_wait_for_active = mock.patch.object(
+ openstack_utils, 'create_instance_and_wait_for_active')
+ self.mock_create_instance_and_wait_for_active = (
+ self._mock_create_instance_and_wait_for_active.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(create_server, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {
+ 'options': {'name': 'server-name', 'image': 'image-name',
+ 'flavor': 'flavor-name'}}
+ self.result = {}
+
+ self.addCleanup(self._stop_mock)
+ self.cserver_obj = create_server.CreateServer(self.args, mock.ANY)
+
+ def _stop_mock(self):
+ self._mock_create_instance_and_wait_for_active.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ _uuid = uuidutils.generate_uuid()
+ self.cserver_obj.scenario_cfg = {'output': 'id'}
+ self.mock_create_instance_and_wait_for_active.return_value = (
+ {'name': 'server-name', 'flavor': 'flavor-name', 'id': _uuid})
+ output = self.cserver_obj.run(self.result)
+ self.assertEqual({'instance_create': 1}, self.result)
+ self.assertEqual({'id': _uuid}, output)
+ self.mock_log.info.asset_called_once_with('Create server successful!')
+
+ def test_run_fail(self):
+ self.mock_create_instance_and_wait_for_active.return_value = None
+ with self.assertRaises(exceptions.ScenarioCreateServerError):
+ self.cserver_obj.run(self.result)
+ self.assertEqual({'instance_create': 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Create server failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_create_subnet.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_subnet.py
new file mode 100644
index 000000000..856e985c4
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_subnet.py
@@ -0,0 +1,58 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import create_subnet
+
+
+class CreateSubnetTestCase(unittest.TestCase):
+
+ def setUp(self):
+
+ self._mock_create_neutron_subnet = mock.patch.object(
+ openstack_utils, 'create_neutron_subnet')
+ self.mock_create_neutron_subnet = (
+ self._mock_create_neutron_subnet.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(create_subnet, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'network_name_or_id': 'yardstick_net'}}
+ self.result = {"subnet_create": 0}
+
+ self._csubnet_obj = create_subnet.CreateSubnet(self.args, mock.ANY)
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_create_neutron_subnet.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ _uuid = uuidutils.generate_uuid()
+ self._csubnet_obj.scenario_cfg = {'output': 'id'}
+ self.mock_create_neutron_subnet.return_value = _uuid
+ output = self._csubnet_obj.run(self.result)
+ self.assertDictEqual({"subnet_create": 1}, self.result)
+ self.assertDictEqual({'id': _uuid}, output)
+ self.mock_log.info.asset_called_once_with('Create subnet successful!')
+
+ def test_run_fail(self):
+ self._csubnet_obj.scenario_cfg = {'output': 'id'}
+ self.mock_create_neutron_subnet.return_value = None
+ with self.assertRaises(exceptions.ScenarioCreateSubnetError):
+ self._csubnet_obj.run(self.result)
+ self.assertDictEqual({"subnet_create": 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Create subnet failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_create_volume.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_volume.py
new file mode 100644
index 000000000..f91d2c3f4
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_create_volume.py
@@ -0,0 +1,58 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import create_volume
+
+
+class CreateVolumeTestCase(unittest.TestCase):
+
+ def setUp(self):
+
+ self._mock_create_volume = mock.patch.object(
+ openstack_utils, 'create_volume')
+ self.mock_create_volume = (
+ self._mock_create_volume.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(create_volume, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'size_gb': 1}}
+ self.result = {}
+
+ self.cvolume_obj = create_volume.CreateVolume(self.args, mock.ANY)
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_create_volume.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ _uuid = uuidutils.generate_uuid()
+ self.cvolume_obj.scenario_cfg = {'output': 'id'}
+ self.mock_create_volume.return_value = {'name': 'yardstick_volume',
+ 'id': _uuid,
+ 'status': 'available'}
+ output = self.cvolume_obj.run(self.result)
+ self.assertDictEqual({'volume_create': 1}, self.result)
+ self.assertDictEqual({'id': _uuid}, output)
+ self.mock_log.info.asset_called_once_with('Create volume successful!')
+
+ def test_run_fail(self):
+ self.mock_create_volume.return_value = None
+ with self.assertRaises(exceptions.ScenarioCreateVolumeError):
+ self.cvolume_obj.run(self.result)
+ self.assertDictEqual({'volume_create': 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Create volume failed!')
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_flavor.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_flavor.py
index 4a91b8939..24dbf8a16 100644
--- a/tests/unit/benchmark/scenarios/lib/test_delete_flavor.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_flavor.py
@@ -23,13 +23,5 @@ class DeleteFlavorTestCase(unittest.TestCase):
args = {"options": options}
obj = DeleteFlavor(args, {})
obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_delete_flavor.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
+ mock_get_nova_client.assert_called_once()
+ mock_delete_flavor.assert_called_once()
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py
new file mode 100644
index 000000000..45a39eba2
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_floating_ip.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import delete_floating_ip
+
+
+class DeleteFloatingIpTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_delete_floating_ip = mock.patch.object(
+ openstack_utils, 'delete_floating_ip')
+ self.mock_delete_floating_ip = self._mock_delete_floating_ip.start()
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(delete_floating_ip, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'floating_ip_id': uuidutils.generate_uuid()}}
+ self.result = {}
+
+ self.del_obj = delete_floating_ip.DeleteFloatingIp(
+ self.args, mock.ANY)
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_delete_floating_ip.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_delete_floating_ip.return_value = True
+ self.assertIsNone(self.del_obj.run(self.result))
+ self.assertEqual({"delete_floating_ip": 1}, self.result)
+ self.mock_log.info.assert_called_once_with(
+ "Delete floating ip successful!")
+
+ def test_run_fail(self):
+ self.mock_delete_floating_ip.return_value = False
+ with self.assertRaises(exceptions.ScenarioDeleteFloatingIPError):
+ self.del_obj.run(self.result)
+ self.assertEqual({"delete_floating_ip": 0}, self.result)
+ self.mock_log.error.assert_called_once_with(
+ "Delete floating ip failed!")
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_image.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_image.py
new file mode 100644
index 000000000..8a1d6d695
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_image.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import delete_image
+
+
+class DeleteImageTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_delete_image = mock.patch.object(
+ openstack_utils, 'delete_image')
+ self.mock_delete_image = (
+ self._mock_delete_image.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(delete_image, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'name_or_id': 'yardstick_image'}}
+ self.result = {}
+
+ self.delimg_obj = delete_image.DeleteImage(self.args, mock.ANY)
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_delete_image.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_delete_image.return_value = True
+ self.assertIsNone(self.delimg_obj.run(self.result))
+ self.assertEqual({'delete_image': 1}, self.result)
+ self.mock_log.info.assert_called_once_with('Delete image successful!')
+
+ def test_run_fail(self):
+ self.mock_delete_image.return_value = False
+ with self.assertRaises(exceptions.ScenarioDeleteImageError):
+ self.delimg_obj.run(self.result)
+ self.assertEqual({'delete_image': 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Delete image failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_keypair.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_keypair.py
new file mode 100644
index 000000000..c7940251e
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_keypair.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import delete_keypair
+
+
+class DeleteKeypairTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_delete_keypair = mock.patch.object(
+ openstack_utils, 'delete_keypair')
+ self.mock_delete_keypair = self._mock_delete_keypair.start()
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(delete_keypair, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'key_name': 'yardstick_key'}}
+ self.result = {}
+ self.delkey_obj = delete_keypair.DeleteKeypair(self.args, mock.ANY)
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_delete_keypair.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_delete_keypair.return_value = True
+ self.assertIsNone(self.delkey_obj.run(self.result))
+ self.assertEqual({'delete_keypair': 1}, self.result)
+ self.mock_log.info.assert_called_once_with(
+ 'Delete keypair successful!')
+
+ def test_run_fail(self):
+ self.mock_delete_keypair.return_value = False
+ with self.assertRaises(exceptions.ScenarioDeleteKeypairError):
+ self.delkey_obj.run(self.result)
+ self.assertEqual({'delete_keypair': 0}, self.result)
+ self.mock_log.error.assert_called_once_with("Delete keypair failed!")
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_network.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_network.py
new file mode 100644
index 000000000..b6dbf4791
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_network.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import delete_network
+
+
+class DeleteNetworkTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_delete_neutron_net = mock.patch.object(
+ openstack_utils, "delete_neutron_net")
+ self.mock_delete_neutron_net = self._mock_delete_neutron_net.start()
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, "get_shade_client")
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(delete_network, "LOG")
+ self.mock_log = self._mock_log.start()
+ self.args = {"options": {"network_name_or_id": (
+ uuidutils.generate_uuid())}}
+ self.result = {}
+ self.del_obj = delete_network.DeleteNetwork(self.args, mock.ANY)
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_delete_neutron_net.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_delete_neutron_net.return_value = True
+ self.assertIsNone(self.del_obj.run(self.result))
+ self.assertEqual({"delete_network": 1}, self.result)
+ self.mock_log.info.assert_called_once_with(
+ "Delete network successful!")
+
+ def test_run_fail(self):
+ self.mock_delete_neutron_net.return_value = False
+ with self.assertRaises(exceptions.ScenarioDeleteNetworkError):
+ self.del_obj.run(self.result)
+ self.assertEqual({"delete_network": 0}, self.result)
+ self.mock_log.error.assert_called_once_with("Delete network failed!")
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_port.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_port.py
index 77b9c7009..9fd318580 100644
--- a/tests/unit/benchmark/scenarios/lib/test_delete_port.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_port.py
@@ -8,7 +8,6 @@
##############################################################################
import unittest
import mock
-import paramiko
from yardstick.benchmark.scenarios.lib.delete_port import DeletePort
@@ -23,12 +22,4 @@ class DeletePortTestCase(unittest.TestCase):
args = {"options": options}
obj = DeletePort(args, {})
obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
+ mock_get_neutron_client.assert_called_once()
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router.py
new file mode 100644
index 000000000..b76100f19
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import delete_router
+
+
+class DeleteRouterTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_delete_neutron_router = mock.patch.object(
+ openstack_utils, 'delete_neutron_router')
+ self.mock_delete_neutron_router = (
+ self._mock_delete_neutron_router.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(delete_router, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'router_id': uuidutils.generate_uuid()}}
+ self.result = {"delete_router": 0}
+
+ self._del_obj = delete_router.DeleteRouter(self.args, mock.ANY)
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_delete_neutron_router.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_delete_neutron_router.return_value = True
+ self.assertIsNone(self._del_obj.run(self.result))
+ self.assertEqual({"delete_router": 1}, self.result)
+ self.mock_log.info.assert_called_once_with("Delete router successful!")
+
+ def test_run_fail(self):
+ self.mock_delete_neutron_router.return_value = False
+ with self.assertRaises(exceptions.ScenarioDeleteRouterError):
+ self._del_obj.run(self.result)
+ self.assertEqual({"delete_router": 0}, self.result)
+ self.mock_log.error.assert_called_once_with("Delete router failed!")
diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_router_gateway.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router_gateway.py
index 1150dccda..0c9cf7c17 100644
--- a/tests/unit/benchmark/scenarios/lib/test_delete_router_gateway.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router_gateway.py
@@ -8,7 +8,6 @@
##############################################################################
import unittest
import mock
-import paramiko
from yardstick.benchmark.scenarios.lib.delete_router_gateway import DeleteRouterGateway
@@ -24,13 +23,5 @@ class DeleteRouterGatewayTestCase(unittest.TestCase):
args = {"options": options}
obj = DeleteRouterGateway(args, {})
obj.run({})
- self.assertTrue(mock_get_neutron_client.called)
- self.assertTrue(mock_remove_gateway_router.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
+ mock_get_neutron_client.assert_called_once()
+ mock_remove_gateway_router.assert_called_once()
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py
new file mode 100644
index 000000000..823cb951a
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_router_interface.py
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.benchmark.scenarios.lib import delete_router_interface
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+
+
+class DeleteRouterInterfaceTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_remove_router_interface = mock.patch.object(
+ openstack_utils, 'remove_router_interface')
+ self.mock_remove_router_interface = (
+ self._mock_remove_router_interface.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(delete_router_interface, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'router': uuidutils.generate_uuid()}}
+ self.result = {}
+ self.delrout_obj = delete_router_interface.DeleteRouterInterface(
+ self.args, mock.ANY)
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_remove_router_interface.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_remove_router_interface.return_value = True
+ self.assertIsNone(self.delrout_obj.run(self.result))
+ self.assertEqual({"delete_router_interface": 1}, self.result)
+ self.mock_log.info.assert_called_once_with(
+ "Delete router interface successful!")
+
+ def test_run_fail(self):
+ self.mock_remove_router_interface.return_value = False
+ with self.assertRaises(exceptions.ScenarioRemoveRouterIntError):
+ self.delrout_obj.run(self.result)
+ self.assertEqual({"delete_router_interface": 0}, self.result)
+ self.mock_log.error.assert_called_once_with(
+ "Delete router interface failed!")
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_server.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_server.py
new file mode 100644
index 000000000..55fe53df8
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_server.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import delete_server
+
+
+class DeleteServerTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_delete_instance = mock.patch.object(
+ openstack_utils, 'delete_instance')
+ self.mock_delete_instance = (
+ self._mock_delete_instance.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(delete_server, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'name_or_id': uuidutils.generate_uuid()
+ }}
+ self.result = {}
+
+ self.delserver_obj = delete_server.DeleteServer(self.args, mock.ANY)
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_delete_instance.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_delete_instance.return_value = True
+ self.assertIsNone(self.delserver_obj.run(self.result))
+ self.assertEqual({'delete_server': 1}, self.result)
+ self.mock_log.info.assert_called_once_with('Delete server successful!')
+
+ def test_run_fail(self):
+ self.mock_delete_instance.return_value = False
+ with self.assertRaises(exceptions.ScenarioDeleteServerError):
+ self.delserver_obj.run(self.result)
+ self.assertEqual({'delete_server': 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Delete server failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_volume.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_volume.py
new file mode 100644
index 000000000..0db16f396
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_delete_volume.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import delete_volume
+
+
+class DeleteVolumeTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_delete_volume = mock.patch.object(
+ openstack_utils, 'delete_volume')
+ self.mock_delete_volume = (
+ self._mock_delete_volume.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(delete_volume, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'name_or_id': 'yardstick_volume'}}
+ self.result = {}
+
+ self.delvol_obj = delete_volume.DeleteVolume(self.args, mock.ANY)
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_delete_volume.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_delete_volume.return_value = True
+ self.assertIsNone(self.delvol_obj.run(self.result))
+ self.assertEqual({'delete_volume': 1}, self.result)
+ self.mock_log.info.assert_called_once_with('Delete volume successful!')
+
+ def test_run_fail(self):
+ self.mock_delete_volume.return_value = False
+ with self.assertRaises(exceptions.ScenarioDeleteVolumeError):
+ self.delvol_obj.run(self.result)
+ self.assertEqual({'delete_volume': 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Delete volume failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_detach_volume.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_detach_volume.py
new file mode 100644
index 000000000..2bc57f495
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_detach_volume.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import detach_volume
+
+
+class DetachVolumeTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_detach_volume = mock.patch.object(
+ openstack_utils, 'detach_volume')
+ self.mock_detach_volume = (
+ self._mock_detach_volume.start())
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(detach_volume, 'LOG')
+ self.mock_log = self._mock_log.start()
+ _uuid = uuidutils.generate_uuid()
+ self.args = {'options': {'server_name_or_id': _uuid,
+ 'volume_name_or_id': _uuid}}
+ self.result = {}
+
+ self.detachvol_obj = detach_volume.DetachVolume(self.args, mock.ANY)
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_detach_volume.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ self.mock_detach_volume.return_value = True
+ self.assertIsNone(self.detachvol_obj.run(self.result))
+ self.assertEqual({'detach_volume': 1}, self.result)
+ self.mock_log.info.assert_called_once_with(
+ 'Detach volume from server successful!')
+
+ def test_run_fail(self):
+ self.mock_detach_volume.return_value = False
+ with self.assertRaises(exceptions.ScenarioDetachVolumeError):
+ self.detachvol_obj.run(self.result)
+ self.assertEqual({'detach_volume': 0}, self.result)
+ self.mock_log.error.assert_called_once_with(
+ 'Detach volume from server failed!')
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_get_flavor.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_get_flavor.py
new file mode 100644
index 000000000..1c1364348
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_get_flavor.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import get_flavor
+
+
+class GetFlavorTestCase(unittest.TestCase):
+
+ def setUp(self):
+
+ self._mock_get_flavor = mock.patch.object(
+ openstack_utils, 'get_flavor')
+ self.mock_get_flavor = self._mock_get_flavor.start()
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(get_flavor, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'name_or_id': 'yardstick_flavor'}}
+ self.result = {}
+
+ self.getflavor_obj = get_flavor.GetFlavor(self.args, mock.ANY)
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_get_flavor.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ _uuid = uuidutils.generate_uuid()
+ self.getflavor_obj.scenario_cfg = {'output': 'flavor'}
+ self.mock_get_flavor.return_value = (
+ {'name': 'flavor-name', 'id': _uuid})
+ output = self.getflavor_obj.run(self.result)
+ self.assertDictEqual({'get_flavor': 1}, self.result)
+ self.assertDictEqual({'flavor': {'name': 'flavor-name', 'id': _uuid}},
+ output)
+ self.mock_log.info.asset_called_once_with('Get flavor successful!')
+
+ def test_run_fail(self):
+ self.mock_get_flavor.return_value = None
+ with self.assertRaises(exceptions.ScenarioGetFlavorError):
+ self.getflavor_obj.run(self.result)
+ self.assertDictEqual({'get_flavor': 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Get flavor failed!')
diff --git a/tests/unit/benchmark/scenarios/lib/test_get_migrate_target_host.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_get_migrate_target_host.py
index f046c92ea..879b2b988 100644
--- a/tests/unit/benchmark/scenarios/lib/test_get_migrate_target_host.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_get_migrate_target_host.py
@@ -25,9 +25,9 @@ class GetMigrateTargetHostTestCase(unittest.TestCase):
mock_get_nova_client):
obj = GetMigrateTargetHost({}, {})
obj.run({})
- self.assertTrue(mock_get_nova_client.called)
- self.assertTrue(mock_get_current_host_name.called)
- self.assertTrue(mock_get_migrate_host.called)
+ mock_get_nova_client.assert_called_once()
+ mock_get_current_host_name.assert_called_once()
+ mock_get_migrate_host.assert_called_once()
@mock.patch('{}.openstack_utils.get_nova_client'.format(BASE))
def test_get_migrate_host(self, mock_get_nova_client):
@@ -39,13 +39,5 @@ class GetMigrateTargetHostTestCase(unittest.TestCase):
mock_get_nova_client().hosts.list_all.return_value = [A('compute')]
obj = GetMigrateTargetHost({}, {})
host = obj._get_migrate_host('host5')
- self.assertTrue(mock_get_nova_client.called)
+ mock_get_nova_client.assert_called()
self.assertEqual(host, 'host4')
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_get_numa_info.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_get_numa_info.py
index 680692fdc..bea978b8a 100644
--- a/tests/unit/benchmark/scenarios/lib/test_get_numa_info.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_get_numa_info.py
@@ -11,6 +11,11 @@ import mock
from yardstick.benchmark.scenarios.lib.get_numa_info import GetNumaInfo
+
+# pylint: disable=unused-argument
+# disable this for now because I keep forgetting mock patch arg ordering
+
+
BASE = 'yardstick.benchmark.scenarios.lib.get_numa_info'
@@ -39,8 +44,8 @@ class GetNumaInfoTestCase(unittest.TestCase):
}
obj = GetNumaInfo(scenario_cfg, {})
obj.run({})
- self.assertTrue(mock_get_current_host_name.called)
- self.assertTrue(mock_check_numa_node.called)
+ mock_get_current_host_name.assert_called_once()
+ mock_check_numa_node.assert_called_once()
@mock.patch('yardstick.ssh.SSH.from_node')
@mock.patch('{}.GetNumaInfo._get_current_host_name'.format(BASE))
@@ -96,11 +101,3 @@ class GetNumaInfoTestCase(unittest.TestCase):
obj = GetNumaInfo(scenario_cfg, {})
result = obj._get_current_host_name('1')
self.assertEqual(result, 'host5')
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/yardstick/tests/unit/benchmark/scenarios/lib/test_get_server.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_get_server.py
new file mode 100644
index 000000000..5b5329cb0
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_get_server.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd 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 oslo_utils import uuidutils
+import unittest
+import mock
+
+from yardstick.common import openstack_utils
+from yardstick.common import exceptions
+from yardstick.benchmark.scenarios.lib import get_server
+
+
+class GetServerTestCase(unittest.TestCase):
+
+ def setUp(self):
+
+ self._mock_get_server = mock.patch.object(
+ openstack_utils, 'get_server')
+ self.mock_get_server = self._mock_get_server.start()
+ self._mock_get_shade_client = mock.patch.object(
+ openstack_utils, 'get_shade_client')
+ self.mock_get_shade_client = self._mock_get_shade_client.start()
+ self._mock_log = mock.patch.object(get_server, 'LOG')
+ self.mock_log = self._mock_log.start()
+ self.args = {'options': {'name_or_id': 'yardstick_key'}}
+ self.result = {}
+
+ self.getserver_obj = get_server.GetServer(self.args, mock.ANY)
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_get_server.stop()
+ self._mock_get_shade_client.stop()
+ self._mock_log.stop()
+
+ def test_run(self):
+ _uuid = uuidutils.generate_uuid()
+ self.getserver_obj.scenario_cfg = {'output': 'server'}
+ self.mock_get_server.return_value = (
+ {'name': 'server-name', 'id': _uuid})
+ output = self.getserver_obj.run(self.result)
+ self.assertDictEqual({'get_server': 1}, self.result)
+ self.assertDictEqual({'server': {'name': 'server-name', 'id': _uuid}},
+ output)
+ self.mock_log.info.asset_called_once_with('Get Server successful!')
+
+ def test_run_fail(self):
+ self.mock_get_server.return_value = None
+ with self.assertRaises(exceptions.ScenarioGetServerError):
+ self.getserver_obj.run(self.result)
+ self.assertDictEqual({'get_server': 0}, self.result)
+ self.mock_log.error.assert_called_once_with('Get Server failed!')
diff --git a/tests/unit/benchmark/scenarios/lib/test_get_server_ip.py b/yardstick/tests/unit/benchmark/scenarios/lib/test_get_server_ip.py
index 3d20d5439..04fca16aa 100644
--- a/tests/unit/benchmark/scenarios/lib/test_get_server_ip.py
+++ b/yardstick/tests/unit/benchmark/scenarios/lib/test_get_server_ip.py
@@ -31,11 +31,3 @@ class GetServerIpTestCase(unittest.TestCase):
obj = GetServerIp(scenario_cfg, {})
result = obj.run({})
self.assertEqual(result, {'ip': '127.0.0.1'})
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/yardstick/tests/unit/benchmark/scenarios/networking/__init__.py b/yardstick/tests/unit/benchmark/scenarios/networking/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/__init__.py
diff --git a/tests/unit/benchmark/scenarios/networking/imix_voice.yaml b/yardstick/tests/unit/benchmark/scenarios/networking/imix_voice.yaml
index b8f8e5358..b8f8e5358 100644
--- a/tests/unit/benchmark/scenarios/networking/imix_voice.yaml
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/imix_voice.yaml
diff --git a/tests/unit/benchmark/scenarios/networking/iperf3_sample_output.json b/yardstick/tests/unit/benchmark/scenarios/networking/iperf3_sample_output.json
index b56009ba1..b56009ba1 100644
--- a/tests/unit/benchmark/scenarios/networking/iperf3_sample_output.json
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/iperf3_sample_output.json
diff --git a/tests/unit/benchmark/scenarios/networking/iperf3_sample_output_udp.json b/yardstick/tests/unit/benchmark/scenarios/networking/iperf3_sample_output_udp.json
index 8173c8f64..8173c8f64 100644
--- a/tests/unit/benchmark/scenarios/networking/iperf3_sample_output_udp.json
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/iperf3_sample_output_udp.json
diff --git a/tests/unit/benchmark/scenarios/networking/ipv4_1flow_Packets_vpe.yaml b/yardstick/tests/unit/benchmark/scenarios/networking/ipv4_1flow_Packets_vpe.yaml
index f3046f463..f3046f463 100644
--- a/tests/unit/benchmark/scenarios/networking/ipv4_1flow_Packets_vpe.yaml
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/ipv4_1flow_Packets_vpe.yaml
diff --git a/tests/unit/benchmark/scenarios/networking/ipv4_throughput_vpe.yaml b/yardstick/tests/unit/benchmark/scenarios/networking/ipv4_throughput_vpe.yaml
index 2123e4705..2123e4705 100644
--- a/tests/unit/benchmark/scenarios/networking/ipv4_throughput_vpe.yaml
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/ipv4_throughput_vpe.yaml
diff --git a/tests/unit/benchmark/scenarios/networking/netperf_sample_output.json b/yardstick/tests/unit/benchmark/scenarios/networking/netperf_sample_output.json
index bba76cfa5..bba76cfa5 100755
--- a/tests/unit/benchmark/scenarios/networking/netperf_sample_output.json
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/netperf_sample_output.json
diff --git a/tests/unit/benchmark/scenarios/networking/netutilization_sample_output1.txt b/yardstick/tests/unit/benchmark/scenarios/networking/netutilization_sample_output1.txt
index f90457cb3..f90457cb3 100644
--- a/tests/unit/benchmark/scenarios/networking/netutilization_sample_output1.txt
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/netutilization_sample_output1.txt
diff --git a/tests/unit/benchmark/scenarios/networking/netutilization_sample_output2.txt b/yardstick/tests/unit/benchmark/scenarios/networking/netutilization_sample_output2.txt
index 417613ec1..417613ec1 100644
--- a/tests/unit/benchmark/scenarios/networking/netutilization_sample_output2.txt
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/netutilization_sample_output2.txt
diff --git a/tests/unit/benchmark/scenarios/networking/test_iperf3.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_iperf3.py
index 4d3745230..5f342df7d 100644
--- a/tests/unit/benchmark/scenarios/networking/test_iperf3.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_iperf3.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
@@ -9,10 +7,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Unittest for yardstick.benchmark.scenarios.networking.iperf3.Iperf
-
-from __future__ import absolute_import
-
import os
import unittest
@@ -21,9 +15,10 @@ from oslo_serialization import jsonutils
from yardstick.common import utils
from yardstick.benchmark.scenarios.networking import iperf3
+from yardstick.common import exceptions as y_exc
-@mock.patch('yardstick.benchmark.scenarios.networking.iperf3.ssh')
+@mock.patch.object(iperf3, 'ssh')
class IperfTestCase(unittest.TestCase):
output_name_tcp = 'iperf3_sample_output.json'
output_name_udp = 'iperf3_sample_output_udp.json'
@@ -42,9 +37,14 @@ class IperfTestCase(unittest.TestCase):
'ipaddr': '172.16.0.138',
}
}
+ self._mock_log_info = mock.patch.object(iperf3.LOG, 'info')
+ self.mock_log_info = self._mock_log_info.start()
+ self.addCleanup(self._stop_mocks)
- def test_iperf_successful_setup(self, mock_ssh):
+ def _stop_mocks(self):
+ self._mock_log_info.stop()
+ def test_iperf_successful_setup(self, mock_ssh):
p = iperf3.Iperf({}, self.ctx)
mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
@@ -54,24 +54,21 @@ class IperfTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.assert_called_with("iperf3 -s -D")
def test_iperf_unsuccessful_setup(self, mock_ssh):
-
p = iperf3.Iperf({}, self.ctx)
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, p.setup)
def test_iperf_successful_teardown(self, mock_ssh):
-
p = iperf3.Iperf({}, self.ctx)
mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
p.host = mock_ssh.SSH.from_node()
p.target = mock_ssh.SSH.from_node()
p.teardown()
- self.assertTrue(mock_ssh.SSH.from_node().close.called)
+ mock_ssh.SSH.from_node().close.assert_called()
mock_ssh.SSH.from_node().execute.assert_called_with("pkill iperf3")
def test_iperf_successful_no_sla(self, mock_ssh):
-
options = {}
args = {'options': options}
result = {}
@@ -87,7 +84,6 @@ class IperfTestCase(unittest.TestCase):
self.assertEqual(result, expected_result)
def test_iperf_successful_sla(self, mock_ssh):
-
options = {}
args = {
'options': options,
@@ -106,7 +102,6 @@ class IperfTestCase(unittest.TestCase):
self.assertEqual(result, expected_result)
def test_iperf_unsuccessful_sla(self, mock_ssh):
-
options = {}
args = {
'options': options,
@@ -120,7 +115,7 @@ class IperfTestCase(unittest.TestCase):
sample_output = self._read_sample_output(self.output_name_tcp)
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
+ self.assertRaises(y_exc.SLAValidationError, p.run, result)
def test_iperf_successful_sla_jitter(self, mock_ssh):
options = {"protocol": "udp", "bandwidth": "20m"}
@@ -154,7 +149,7 @@ class IperfTestCase(unittest.TestCase):
sample_output = self._read_sample_output(self.output_name_udp)
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
+ self.assertRaises(y_exc.SLAValidationError, p.run, result)
def test_iperf_successful_tcp_protocal(self, mock_ssh):
options = {"protocol": "tcp", "nodelay": "yes"}
@@ -175,7 +170,6 @@ class IperfTestCase(unittest.TestCase):
self.assertEqual(result, expected_result)
def test_iperf_unsuccessful_script_error(self, mock_ssh):
-
options = {}
args = {'options': options}
result = {}
@@ -187,16 +181,10 @@ class IperfTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, p.run, result)
- def _read_sample_output(self, filename):
+ @staticmethod
+ def _read_sample_output(filename):
curr_path = os.path.dirname(os.path.abspath(__file__))
output = os.path.join(curr_path, filename)
with open(output) as f:
sample_output = f.read()
return sample_output
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/yardstick/tests/unit/benchmark/scenarios/networking/test_moongen_testpmd.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_moongen_testpmd.py
new file mode 100644
index 000000000..620155c7e
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_moongen_testpmd.py
@@ -0,0 +1,353 @@
+#!/usr/bin/env python
+
+# Copyright 2017 Nokia
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Unittest for yardstick.benchmark.scenarios.networking.MoongenTestPMD
+
+from __future__ import absolute_import
+try:
+ from unittest import mock
+except ImportError:
+ import mock
+import unittest
+
+from yardstick.benchmark.scenarios.networking import moongen_testpmd
+
+
+@mock.patch('yardstick.benchmark.scenarios.networking.moongen_testpmd.subprocess')
+class MoongenTestPMDTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.ctx = {
+ "host": {
+ "ip": "10.229.47.137",
+ "user": "ubuntu",
+ "password": "ubuntu",
+ },
+ }
+ self.TestPMDargs = {
+ 'task_id': "1234-5678",
+ 'options': {
+ 'multistream': 1,
+ 'frame_size': 1024,
+ 'testpmd_queue': 2,
+ 'trafficgen_port1': 'ens5',
+ 'trafficgen_port2': 'ens6',
+ 'moongen_host_user': 'root',
+ 'moongen_host_passwd': 'root',
+ 'moongen_host_ip': '10.5.201.151',
+ 'moongen_dir': '/home/lua-trafficgen',
+ 'moongen_runBidirec': 'true',
+ 'Package_Loss': 0,
+ 'SearchRuntime': 60,
+ 'moongen_port1_mac': '88:cf:98:2f:4d:ed',
+ 'moongen_port2_mac': '88:cf:98:2f:4d:ee',
+ 'forward_type': 'testpmd',
+ },
+ 'sla': {
+ 'metrics': 'throughput_rx_mpps',
+ 'throughput_rx_mpps': 0.5,
+ 'action': 'monitor',
+ }
+ }
+ self.L2fwdargs = {
+ 'task_id': "1234-5678",
+ 'options': {
+ 'multistream': 1,
+ 'frame_size': 1024,
+ 'testpmd_queue': 2,
+ 'trafficgen_port1': 'ens5',
+ 'trafficgen_port2': 'ens6',
+ 'moongen_host_user': 'root',
+ 'moongen_host_passwd': 'root',
+ 'moongen_host_ip': '10.5.201.151',
+ 'moongen_dir': '/home/lua-trafficgen',
+ 'moongen_runBidirec': 'true',
+ 'Package_Loss': 0,
+ 'SearchRuntime': 60,
+ 'moongen_port1_mac': '88:cf:98:2f:4d:ed',
+ 'moongen_port2_mac': '88:cf:98:2f:4d:ee',
+ 'forward_type': 'l2fwd',
+ },
+ 'sla': {
+ 'metrics': 'throughput_rx_mpps',
+ 'throughput_rx_mpps': 0.5,
+ 'action': 'monitor',
+ }
+ }
+
+ self._mock_ssh = mock.patch(
+ 'yardstick.benchmark.scenarios.networking.moongen_testpmd.ssh')
+ self.mock_ssh = self._mock_ssh.start()
+
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self._mock_ssh.stop()
+
+ def test_MoongenTestPMD_setup(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ # setup() specific mocks
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ def test_MoongenTestPMD_teardown(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ # setup() specific mocks
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ p.teardown()
+ self.assertFalse(p.setup_done)
+
+ def test_MoongenTestPMD_l2fwd_is_forward_setup_no(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.L2fwdargs, self.ctx)
+
+ # setup() specific mocks
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ # is_dpdk_setup() specific mocks
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
+
+ result = p._is_forward_setup()
+ self.assertFalse(result)
+
+ def test_MoongenTestPMD_l2fwd_is_forward_setup_yes(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.L2fwdargs, self.ctx)
+
+ # setup() specific mocks
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ # is_dpdk_setup() specific mocks
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, 'dummy', '')
+
+ result = p._is_forward_setup()
+ self.assertTrue(result)
+
+ def test_MoongenTestPMD_testpmd_is_forward_setup_no(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ # setup() specific mocks
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ # is_dpdk_setup() specific mocks
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, 'dummy', '')
+
+ result = p._is_forward_setup()
+ self.assertFalse(result)
+
+ def test_MoongenTestPMD_testpmd_is_forward_setup_yes(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ # setup() specific mocks
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ # is_dpdk_setup() specific mocks
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
+
+ result = p._is_forward_setup()
+ self.assertTrue(result)
+
+ @mock.patch('time.sleep')
+ def test_MoongenTestPMD_testpmd_forward_setup_first(self, _, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ # setup() specific mocks
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ # is_dpdk_setup() specific mocks
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, 'dummy', '')
+
+ p.forward_setup()
+ self.assertFalse(p._is_forward_setup())
+ self.assertTrue(p.forward_setup_done)
+
+ @mock.patch('time.sleep')
+ def test_MoongenTestPMD_testpmd_dpdk_setup_next(self, _, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ # setup() specific mocks
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ p.forward_setup()
+ self.assertTrue(p._is_forward_setup())
+ self.assertTrue(p.forward_setup_done)
+
+ @mock.patch('time.sleep')
+ def test_MoongenTestPMD_l2fwd_forward_setup_first(self, _, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.L2fwdargs, self.ctx)
+
+ # setup() specific mocks
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ # is_dpdk_setup() specific mocks
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
+
+ p.forward_setup()
+ self.assertFalse(p._is_forward_setup())
+ self.assertTrue(p.forward_setup_done)
+
+ @mock.patch('time.sleep')
+ def test_MoongenTestPMD_l2fwd_dpdk_setup_next(self, _, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.L2fwdargs, self.ctx)
+
+ # setup() specific mocks
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, 'dummy', '')
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ p.forward_setup()
+ self.assertTrue(p._is_forward_setup())
+ self.assertTrue(p.forward_setup_done)
+
+ def test_moongen_testpmd_generate_config_file(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ # setup() specific mocks
+ mock_subprocess.call().execute.return_value = None
+
+ p.generate_config_file(frame_size=1, multistream=1,
+ runBidirec="True", tg_port1_vlan=1,
+ tg_port2_vlan=2, SearchRuntime=1,
+ Package_Loss=0)
+ self.assertTrue(p.CONFIG_FILE)
+
+ def test_moongen_testpmd_result_to_data_match(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ mock_subprocess.call().execute.return_value = None
+ result = ("[REPORT]Device 1->0: Tx frames: 420161490 Rx Frames: 420161490"
+ " frame loss: 0, 0.000000% Rx Mpps: 7.002708\n[REPORT] "
+ "total: Tx frames: 840321216 Rx Frames: 840321216 frame loss: "
+ "0, 0.000000% Tx Mpps: 14.005388 Rx Mpps: 14.005388\n'")
+ p.result_to_data(result=result)
+ self.assertTrue(p.TO_DATA)
+
+ def test_moongen_testpmd_result_to_data_not_match(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ mock_subprocess.call().execute.return_value = None
+ result = ("")
+ p.result_to_data(result=result)
+ self.assertTrue(p.TO_DATA)
+
+ @mock.patch('time.sleep')
+ def test_moongen_testpmd_run_ok(self, _, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+ p.setup_done = True
+ p.forward_setup_done = True
+ p.setup()
+
+ # run() specific mocks
+ p.server = self.mock_ssh.SSH.from_node()
+ mock_subprocess.call().execute.return_value = None
+ mock_subprocess.call().execute.return_value = None
+ result = ("[REPORT]Device 1->0: Tx frames: 420161490 Rx Frames: 420161490"
+ " frame loss: 0, 0.000000% Rx Mpps: 7.002708\n[REPORT] "
+ "total: Tx frames: 840321216 Rx Frames: 840321216 frame loss: "
+ "0, 0.000000% Tx Mpps: 14.005388 Rx Mpps: 14.005388\n'")
+ self.mock_ssh.SSH.from_node().execute.return_value = (
+ 0, result, '')
+
+ test_result = {}
+ p.run(test_result)
+
+ self.assertEqual(test_result['rx_mpps'], 14.005388)
+
+ def test_moongen_testpmd_run_falied_vsperf_execution(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ # setup() specific mocks
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ # run() specific mocks
+ mock_subprocess.call().execute.return_value = None
+ mock_subprocess.call().execute.return_value = None
+ self.mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
+
+ result = {}
+ self.assertRaises(RuntimeError, p.run, result)
+
+ def test_moongen_testpmd_run_falied_csv_report(self, mock_subprocess):
+ p = moongen_testpmd.MoongenTestPMD(self.TestPMDargs, self.ctx)
+
+ # setup() specific mocks
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ # run() specific mocks
+ mock_subprocess.call().execute.return_value = None
+ mock_subprocess.call().execute.return_value = None
+ self.mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
+ self.mock_ssh.SSH.from_node().execute.return_value = (1, '', '')
+
+ result = {}
+ self.assertRaises(RuntimeError, p.run, result)
+
+def main():
+ unittest.main()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_netperf.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_netperf.py
index d0f862fb5..a7abcd98a 100755
--- a/tests/unit/benchmark/scenarios/networking/test_netperf.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_netperf.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
@@ -20,6 +18,7 @@ import mock
from oslo_serialization import jsonutils
from yardstick.benchmark.scenarios.networking import netperf
+from yardstick.common import exceptions as y_exc
@mock.patch('yardstick.benchmark.scenarios.networking.netperf.ssh')
@@ -48,7 +47,7 @@ class NetperfTestCase(unittest.TestCase):
p.setup()
self.assertIsNotNone(p.server)
self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
+ self.assertTrue(p.setup_done)
def test_netperf_successful_no_sla(self, mock_ssh):
@@ -100,7 +99,7 @@ class NetperfTestCase(unittest.TestCase):
sample_output = self._read_sample_output()
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
+ self.assertRaises(y_exc.SLAValidationError, p.run, result)
def test_netperf_unsuccessful_script_error(self, mock_ssh):
@@ -121,10 +120,3 @@ class NetperfTestCase(unittest.TestCase):
with open(output) as f:
sample_output = f.read()
return sample_output
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_netperf_node.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_netperf_node.py
index 62874cc44..a577dba59 100755
--- a/tests/unit/benchmark/scenarios/networking/test_netperf_node.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_netperf_node.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
@@ -21,6 +19,7 @@ import mock
from oslo_serialization import jsonutils
from yardstick.benchmark.scenarios.networking import netperf_node
+from yardstick.common import exceptions as y_exc
@mock.patch('yardstick.benchmark.scenarios.networking.netperf_node.ssh')
@@ -48,7 +47,7 @@ class NetperfNodeTestCase(unittest.TestCase):
p.setup()
self.assertIsNotNone(p.server)
self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
+ self.assertTrue(p.setup_done)
def test_netperf_node_successful_no_sla(self, mock_ssh):
@@ -100,7 +99,7 @@ class NetperfNodeTestCase(unittest.TestCase):
sample_output = self._read_sample_output()
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
+ self.assertRaises(y_exc.SLAValidationError, p.run, result)
def test_netperf_node_unsuccessful_script_error(self, mock_ssh):
@@ -121,10 +120,3 @@ class NetperfNodeTestCase(unittest.TestCase):
with open(output) as f:
sample_output = f.read()
return sample_output
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_netutilization.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_netutilization.py
index 1227e056e..4cdfde6b1 100644
--- a/tests/unit/benchmark/scenarios/networking/test_netutilization.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_netutilization.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huawei Technologies Co.,Ltd and other.
#
diff --git a/tests/unit/benchmark/scenarios/networking/test_networkcapacity.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_networkcapacity.py
index 3e7a3c5ee..36e8c8a77 100644
--- a/tests/unit/benchmark/scenarios/networking/test_networkcapacity.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_networkcapacity.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
#
diff --git a/tests/unit/benchmark/scenarios/networking/test_nstat.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_nstat.py
index fe44cfdf4..b02d58437 100644
--- a/tests/unit/benchmark/scenarios/networking/test_nstat.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_nstat.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
#
@@ -9,16 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Unittest for yardstick.benchmark.scenarios.networking.nstat.Nstat
-
-from __future__ import absolute_import
-
-import unittest
-
import mock
+import unittest
from yardstick.benchmark.scenarios.networking import nstat
+
@mock.patch('yardstick.benchmark.scenarios.networking.nstat.ssh')
class NstatTestCase(unittest.TestCase):
@@ -38,7 +32,7 @@ class NstatTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
self.assertIsNotNone(n.client)
- self.assertEqual(n.setup_done, True)
+ self.assertTrue(n.setup_done)
def test_nstat_successful_no_sla(self, mock_ssh):
@@ -51,17 +45,17 @@ class NstatTestCase(unittest.TestCase):
n = nstat.Nstat(args, self.ctx)
result = {}
- sample_output = '#kernel\nIpInReceives 1837 0.0\nIpInHdrErrors 0 0.0\nIpInAddrErrors 2 0.0\nIcmpInMsgs 319 0.0\nIcmpInErrors 0 0.0\nTcpInSegs 36 0.0\nTcpInErrs 0 0.0\nUdpInDatagrams 1318 0.0\nUdpInErrors 0 0.0\n'
+ sample_output = '#kernel\nIpInReceives 1837 0.0\nIpInHdrErrors 0 0.0\nIpInAddrErrors 2 0.0\nIcmpInMsgs 319 0.0\nIcmpInErrors 0 0.0\nTcpInSegs 36 0.0\nTcpInErrs 0 0.0\nUdpInDatagrams 1318 0.0\nUdpInErrors 0 0.0\n' # pylint: disable=line-too-long
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
n.run(result)
expected_result = {"TcpInErrs": 0, "UdpInDatagrams": 1318,
- "Tcp_segment_error_rate": 0.0, "IpInAddrErrors": 2,
- "IpInHdrErrors": 0, "IcmpInErrors": 0, "IpErrors": 2,
- "TcpInSegs": 36, "IpInReceives": 1837, "IcmpInMsgs": 319,
- "IP_datagram_error_rate": 0.001, "Udp_datagram_error_rate": 0.0,
- "Icmp_message_error_rate": 0.0, "UdpInErrors": 0}
+ "Tcp_segment_error_rate": 0.0, "IpInAddrErrors": 2,
+ "IpInHdrErrors": 0, "IcmpInErrors": 0, "IpErrors": 2,
+ "TcpInSegs": 36, "IpInReceives": 1837, "IcmpInMsgs": 319,
+ "IP_datagram_error_rate": 0.001, "Udp_datagram_error_rate": 0.0,
+ "Icmp_message_error_rate": 0.0, "UdpInErrors": 0}
self.assertEqual(result, expected_result)
def test_nstat_successful_sla(self, mock_ssh):
@@ -79,17 +73,17 @@ class NstatTestCase(unittest.TestCase):
n = nstat.Nstat(args, self.ctx)
result = {}
- sample_output = '#kernel\nIpInReceives 1837 0.0\nIpInHdrErrors 0 0.0\nIpInAddrErrors 2 0.0\nIcmpInMsgs 319 0.0\nIcmpInErrors 0 0.0\nTcpInSegs 36 0.0\nTcpInErrs 0 0.0\nUdpInDatagrams 1318 0.0\nUdpInErrors 0 0.0\n'
+ sample_output = '#kernel\nIpInReceives 1837 0.0\nIpInHdrErrors 0 0.0\nIpInAddrErrors 2 0.0\nIcmpInMsgs 319 0.0\nIcmpInErrors 0 0.0\nTcpInSegs 36 0.0\nTcpInErrs 0 0.0\nUdpInDatagrams 1318 0.0\nUdpInErrors 0 0.0\n' # pylint: disable=line-too-long
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
n.run(result)
expected_result = {"TcpInErrs": 0, "UdpInDatagrams": 1318,
- "Tcp_segment_error_rate": 0.0, "IpInAddrErrors": 2,
- "IpInHdrErrors": 0, "IcmpInErrors": 0, "IpErrors": 2,
- "TcpInSegs": 36, "IpInReceives": 1837, "IcmpInMsgs": 319,
- "IP_datagram_error_rate": 0.001, "Udp_datagram_error_rate": 0.0,
- "Icmp_message_error_rate": 0.0, "UdpInErrors": 0}
+ "Tcp_segment_error_rate": 0.0, "IpInAddrErrors": 2,
+ "IpInHdrErrors": 0, "IcmpInErrors": 0, "IpErrors": 2,
+ "TcpInSegs": 36, "IpInReceives": 1837, "IcmpInMsgs": 319,
+ "IP_datagram_error_rate": 0.001, "Udp_datagram_error_rate": 0.0,
+ "Icmp_message_error_rate": 0.0, "UdpInErrors": 0}
self.assertEqual(result, expected_result)
def test_nstat_unsuccessful_cmd_error(self, mock_ssh):
@@ -109,10 +103,3 @@ class NstatTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, n.run, result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_ping.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_ping.py
index 06353249a..944202658 100644
--- a/tests/unit/benchmark/scenarios/networking/test_ping.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_ping.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
@@ -16,6 +14,7 @@ import mock
import unittest
from yardstick.benchmark.scenarios.networking import ping
+from yardstick.common import exceptions as y_exc
class PingTestCase(unittest.TestCase):
@@ -76,7 +75,7 @@ class PingTestCase(unittest.TestCase):
p = ping.Ping(args, self.ctx)
mock_ssh.SSH.from_node().execute.return_value = (0, '100', '')
- self.assertRaises(AssertionError, p.run, result)
+ self.assertRaises(y_exc.SLAValidationError, p.run, result)
@mock.patch('yardstick.benchmark.scenarios.networking.ping.ssh')
def test_ping_unsuccessful_script_error(self, mock_ssh):
@@ -93,9 +92,16 @@ class PingTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, p.run, result)
+ @mock.patch('yardstick.benchmark.scenarios.networking.ping.ssh')
+ def test_ping_unsuccessful_no_sla(self, mock_ssh):
-def main():
- unittest.main()
+ args = {
+ 'options': {'packetsize': 200},
+ 'target': 'ares.demo'
+ }
+ result = {}
+
+ p = ping.Ping(args, self.ctx)
-if __name__ == '__main__':
- main()
+ mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
+ self.assertRaises(y_exc.SLAValidationError, p.run, result)
diff --git a/tests/unit/benchmark/scenarios/networking/test_ping6.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_ping6.py
index ecce7cee5..ad5217a14 100644
--- a/tests/unit/benchmark/scenarios/networking/test_ping6.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_ping6.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
@@ -16,6 +14,7 @@ import mock
import unittest
from yardstick.benchmark.scenarios.networking import ping6
+from yardstick.common import exceptions as y_exc
class PingTestCase(unittest.TestCase):
@@ -59,7 +58,7 @@ class PingTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (0, '0', '')
p.setup()
- self.assertEqual(p.setup_done, True)
+ self.assertTrue(p.setup_done)
@mock.patch('yardstick.benchmark.scenarios.networking.ping6.ssh')
def test_ping_successful_no_sla(self, mock_ssh):
@@ -100,7 +99,7 @@ class PingTestCase(unittest.TestCase):
p = ping6.Ping6(args, self.ctx)
p.client = mock_ssh.SSH.from_node()
mock_ssh.SSH.from_node().execute.side_effect = [(0, 'host1', ''), (0, 100, '')]
- self.assertRaises(AssertionError, p.run, result)
+ self.assertRaises(y_exc.SLAValidationError, p.run, result)
@mock.patch('yardstick.benchmark.scenarios.networking.ping6.ssh')
def test_ping_unsuccessful_script_error(self, mock_ssh):
@@ -116,10 +115,3 @@ class PingTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.side_effect = [
(0, 'host1', ''), (1, '', 'FOOBAR')]
self.assertRaises(RuntimeError, p.run, result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen.py
new file mode 100644
index 000000000..5761e2403
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen.py
@@ -0,0 +1,453 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB 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 mock
+import unittest
+import logging
+
+from oslo_serialization import jsonutils
+
+from yardstick import ssh
+from yardstick.benchmark.scenarios.networking import pktgen
+from yardstick.common import exceptions as y_exc
+
+
+logging.disable(logging.CRITICAL)
+
+
+class PktgenTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.context_cfg = {
+ 'host': {
+ 'ip': '172.16.0.137',
+ 'user': 'root',
+ 'key_filename': 'mykey.key'
+ },
+ 'target': {
+ 'ip': '172.16.0.138',
+ 'user': 'root',
+ 'key_filename': 'mykey.key',
+ 'ipaddr': '172.16.0.138'
+ }
+ }
+ self.scenario_cfg = {
+ 'options': {'packetsize': 60}
+ }
+
+ self._mock_SSH = mock.patch.object(ssh, 'SSH')
+ self.mock_SSH = self._mock_SSH.start()
+
+ self.mock_SSH.from_node().execute.return_value = (0, '', '')
+ self.mock_SSH.from_node().run.return_value = 0
+
+ self.addCleanup(self._stop_mock)
+
+ self.scenario = pktgen.Pktgen(self.scenario_cfg, self.context_cfg)
+ self.scenario.setup()
+
+ def _stop_mock(self):
+ self._mock_SSH.stop()
+
+ def test_setup_successful(self):
+ self.assertIsNotNone(self.scenario.server)
+ self.assertIsNotNone(self.scenario.client)
+ self.assertTrue(self.scenario.setup_done)
+
+ def test_iptables_setup_successful(self):
+ self.scenario.number_of_ports = 10
+ self.scenario._iptables_setup()
+
+ self.mock_SSH.from_node().run.assert_called_with(
+ "sudo iptables -F; "
+ "sudo iptables -A INPUT -p udp --dport 1000:%s -j DROP"
+ % 1010, timeout=60)
+
+ def test_iptables_setup_unsuccessful(self):
+ self.scenario.number_of_ports = 10
+ self.mock_SSH.from_node().run.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._iptables_setup()
+
+ def test_iptables_get_result_successful(self):
+ self.scenario.number_of_ports = 10
+ self.mock_SSH.from_node().execute.return_value = (0, '150000', '')
+
+ result = self.scenario._iptables_get_result()
+
+ self.assertEqual(result, 150000)
+ self.mock_SSH.from_node().execute.assert_called_with(
+ "sudo iptables -L INPUT -vnx |"
+ "awk '/dpts:1000:%s/ {{printf \"%%s\", $1}}'"
+ % 1010, raise_on_error=True)
+
+ def test_iptables_get_result_unsuccessful(self):
+ self.scenario.number_of_ports = 10
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._iptables_get_result()
+
+ def test_run_successful_no_sla(self):
+ self.scenario._iptables_get_result = mock.Mock(return_value=149300)
+ sample_output = jsonutils.dumps({"packets_per_second": 9753,
+ "errors": 0,
+ "packets_sent": 149776,
+ "packetsize": 60,
+ "flows": 110,
+ "ppm": 3179})
+ self.mock_SSH.from_node().execute.return_value = (0, sample_output, '')
+
+ result = {}
+ self.scenario.run(result)
+
+ expected_result = jsonutils.loads(sample_output)
+ expected_result["packets_received"] = 149300
+ expected_result["packetsize"] = 60
+ self.assertEqual(result, expected_result)
+
+ def test_run_successful_sla(self):
+ self.scenario_cfg['sla'] = {'max_ppm': 10000}
+ scenario = pktgen.Pktgen(self.scenario_cfg, self.context_cfg)
+ scenario.setup()
+ scenario._iptables_get_result = mock.Mock(return_value=149300)
+ sample_output = jsonutils.dumps({"packets_per_second": 9753,
+ "errors": 0,
+ "packets_sent": 149776,
+ "packetsize": 60,
+ "flows": 110,
+ "ppm": 3179})
+ self.mock_SSH.from_node().execute.return_value = (0, sample_output, '')
+
+ result = {}
+ scenario.run(result)
+
+ expected_result = jsonutils.loads(sample_output)
+ expected_result["packets_received"] = 149300
+ expected_result["packetsize"] = 60
+ self.assertEqual(result, expected_result)
+
+ def test_run_unsuccessful_sla(self):
+ self.scenario_cfg['sla'] = {'max_ppm': 1000}
+ scenario = pktgen.Pktgen(self.scenario_cfg, self.context_cfg)
+ scenario.setup()
+ scenario._iptables_get_result = mock.Mock(return_value=149300)
+ sample_output = jsonutils.dumps({"packets_per_second": 9753,
+ "errors": 0,
+ "packets_sent": 149776,
+ "packetsize": 60,
+ "flows": 110})
+ self.mock_SSH.from_node().execute.return_value = (0, sample_output, '')
+
+ with self.assertRaises(y_exc.SLAValidationError):
+ scenario.run({})
+
+ def test_run_ssh_error_not_caught(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario.run({})
+
+ def test_get_vnic_driver_name(self):
+ self.mock_SSH.from_node().execute.return_value = (0, 'ixgbevf', '')
+ vnic_driver_name = self.scenario._get_vnic_driver_name()
+
+ self.assertEqual(vnic_driver_name, 'ixgbevf')
+
+ def test_get_vnic_driver_name_unsuccessful(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._get_vnic_driver_name()
+
+ def test_get_sriov_queue_number(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '2', '')
+
+ self.scenario.queue_number = self.scenario._get_sriov_queue_number()
+ self.assertEqual(self.scenario.queue_number, 2)
+
+ def test_get_sriov_queue_number_unsuccessful(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._get_sriov_queue_number()
+
+ def test_get_available_queue_number(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '4', '')
+
+ self.assertEqual(self.scenario._get_available_queue_number(), 4)
+ self.mock_SSH.from_node().execute.assert_called_with(
+ "sudo ethtool -l eth0 | grep Combined | head -1 |"
+ "awk '{printf $2}'", raise_on_error=True)
+
+ def test_get_available_queue_number_unsuccessful(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._get_available_queue_number()
+
+ def test_get_usable_queue_number(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '1', '')
+
+ self.assertEqual(self.scenario._get_usable_queue_number(), 1)
+ self.mock_SSH.from_node().execute.assert_called_with(
+ "sudo ethtool -l eth0 | grep Combined | tail -1 |"
+ "awk '{printf $2}'", raise_on_error=True)
+
+ def test_get_usable_queue_number_unsuccessful(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._get_usable_queue_number()
+
+ def test_enable_ovs_multiqueue(self):
+ self.scenario._get_usable_queue_number = mock.Mock(return_value=1)
+ self.scenario._get_available_queue_number = mock.Mock(return_value=4)
+ self.scenario.queue_number = self.scenario._enable_ovs_multiqueue()
+
+ self.assertEqual(self.scenario.queue_number, 4)
+ self.mock_SSH.from_node().run.assert_has_calls(
+ (mock.call("sudo ethtool -L eth0 combined 4"),
+ mock.call("sudo ethtool -L eth0 combined 4")))
+
+ def test_enable_ovs_multiqueue_1q(self):
+ self.scenario._get_usable_queue_number = mock.Mock(return_value=1)
+ self.scenario._get_available_queue_number = mock.Mock(return_value=1)
+ self.scenario.queue_number = self.scenario._enable_ovs_multiqueue()
+
+ self.assertEqual(self.scenario.queue_number, 1)
+ self.mock_SSH.from_node().run.assert_not_called()
+
+ def test_enable_ovs_multiqueue_unsuccessful(self):
+ self.mock_SSH.from_node().run.side_effect = y_exc.SSHError
+ self.scenario._get_usable_queue_number = mock.Mock(return_value=1)
+ self.scenario._get_available_queue_number = mock.Mock(return_value=4)
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._enable_ovs_multiqueue()
+
+ def test_setup_irqmapping_ovs(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '10', '')
+ self.scenario._setup_irqmapping_ovs(4)
+
+ self.mock_SSH.from_node().run.assert_called_with(
+ "echo 8 | sudo tee /proc/irq/10/smp_affinity")
+
+ def test_setup_irqmapping_ovs_1q(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '10', '')
+ self.scenario._setup_irqmapping_ovs(1)
+
+ self.mock_SSH.from_node().run.assert_called_with(
+ "echo 1 | sudo tee /proc/irq/10/smp_affinity")
+
+ def test_setup_irqmapping_ovs_unsuccessful(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._setup_irqmapping_ovs(4)
+
+ def test_setup_irqmapping_ovs_1q_unsuccessful(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._setup_irqmapping_ovs(1)
+
+ def test_setup_irqmapping_sriov(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '10', '')
+ self.scenario._setup_irqmapping_sriov(2)
+
+ self.mock_SSH.from_node().run.assert_called_with(
+ "echo 2 | sudo tee /proc/irq/10/smp_affinity")
+
+ def test_setup_irqmapping_sriov_1q(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '10', '')
+ self.scenario._setup_irqmapping_sriov(1)
+
+ self.mock_SSH.from_node().run.assert_called_with(
+ "echo 1 | sudo tee /proc/irq/10/smp_affinity")
+
+ def test_setup_irqmapping_sriov_unsuccessful(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._setup_irqmapping_sriov(2)
+
+ def test_setup_irqmapping_sriov_1q_unsuccessful(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._setup_irqmapping_sriov(1)
+
+ def test_is_irqbalance_disabled(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '', '')
+
+ self.assertFalse(self.scenario._is_irqbalance_disabled())
+ self.mock_SSH.from_node().execute.assert_called_with(
+ "grep ENABLED /etc/default/irqbalance", raise_on_error=True)
+
+ def test_is_irqbalance_disabled_unsuccessful(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._is_irqbalance_disabled()
+
+ def test_disable_irqbalance(self):
+ self.scenario._disable_irqbalance()
+
+ self.mock_SSH.from_node().run.assert_called_with(
+ "sudo service irqbalance disable")
+
+ def test_disable_irqbalance_unsuccessful(self):
+ self.mock_SSH.from_node().run.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario._disable_irqbalance()
+
+ def test_multiqueue_setup_ovs(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '4', '')
+ self.scenario._is_irqbalance_disabled = mock.Mock(return_value=False)
+ self.scenario._get_vnic_driver_name = mock.Mock(
+ return_value="virtio_net")
+ self.scenario._get_usable_queue_number = mock.Mock(return_value=1)
+ self.scenario._get_available_queue_number = mock.Mock(return_value=4)
+
+ self.scenario.multiqueue_setup()
+
+ self.assertEqual(self.scenario.queue_number, 4)
+ self.assertTrue(self.scenario.multiqueue_setup_done)
+
+ def test_multiqueue_setup_ovs_1q(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '1', '')
+ self.scenario._is_irqbalance_disabled = mock.Mock(return_value=False)
+ self.scenario._get_vnic_driver_name = mock.Mock(
+ return_value="virtio_net")
+ self.scenario._get_usable_queue_number = mock.Mock(return_value=1)
+ self.scenario._get_available_queue_number = mock.Mock(return_value=1)
+
+ self.scenario.multiqueue_setup()
+
+ self.assertEqual(self.scenario.queue_number, 1)
+ self.assertTrue(self.scenario.multiqueue_setup_done)
+
+ def test_multiqueue_setup_sriov(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '2', '')
+ self.scenario._is_irqbalance_disabled = mock.Mock(return_value=False)
+ self.scenario._get_vnic_driver_name = mock.Mock(return_value="ixgbevf")
+
+ self.scenario.multiqueue_setup()
+
+ self.assertEqual(self.scenario.queue_number, 2)
+ self.assertTrue(self.scenario.multiqueue_setup_done)
+
+ def test_multiqueue_setup_sriov_1q(self):
+ self.mock_SSH.from_node().execute.return_value = (0, '1', '')
+ self.scenario._is_irqbalance_disabled = mock.Mock(return_value=False)
+ self.scenario._get_vnic_driver_name = mock.Mock(return_value="ixgbevf")
+
+ self.scenario.multiqueue_setup()
+
+ self.assertEqual(self.scenario.queue_number, 1)
+ self.assertTrue(self.scenario.multiqueue_setup_done)
+
+ def test_run_with_setup_done(self):
+ scenario_cfg = {
+ 'options': {
+ 'packetsize': 60,
+ 'number_of_ports': 10,
+ 'duration': 20,
+ 'multiqueue': True},
+ 'sla': {
+ 'max_ppm': 1}
+ }
+ scenario = pktgen.Pktgen(scenario_cfg, self.context_cfg)
+ scenario.server = self.mock_SSH.from_node()
+ scenario.client = self.mock_SSH.from_node()
+ scenario.setup_done = True
+ scenario.multiqueue_setup_done = True
+ scenario._iptables_get_result = mock.Mock(return_value=149300)
+
+ sample_output = jsonutils.dumps({"packets_per_second": 9753,
+ "errors": 0,
+ "packets_sent": 149300,
+ "flows": 110,
+ "ppm": 0})
+ self.mock_SSH.from_node().execute.return_value = (0, sample_output, '')
+
+ result = {}
+ scenario.run(result)
+
+ expected_result = jsonutils.loads(sample_output)
+ expected_result["packets_received"] = 149300
+ expected_result["packetsize"] = 60
+ self.assertEqual(result, expected_result)
+
+ def test_run_with_ovs_multiqueque(self):
+ scenario_cfg = {
+ 'options': {
+ 'packetsize': 60,
+ 'number_of_ports': 10,
+ 'duration': 20,
+ 'multiqueue': True},
+ 'sla': {'max_ppm': 1}
+ }
+ scenario = pktgen.Pktgen(scenario_cfg, self.context_cfg)
+ scenario.setup()
+ scenario._get_vnic_driver_name = mock.Mock(return_value="virtio_net")
+ scenario._get_usable_queue_number = mock.Mock(return_value=1)
+ scenario._get_available_queue_number = mock.Mock(return_value=4)
+ scenario._enable_ovs_multiqueue = mock.Mock(return_value=4)
+ scenario._setup_irqmapping_ovs = mock.Mock()
+ scenario._iptables_get_result = mock.Mock(return_value=149300)
+
+ sample_output = jsonutils.dumps({"packets_per_second": 9753,
+ "errors": 0,
+ "packets_sent": 149300,
+ "flows": 110,
+ "ppm": 0})
+ self.mock_SSH.from_node().execute.return_value = (0, sample_output, '')
+
+ result = {}
+ scenario.run(result)
+
+ expected_result = jsonutils.loads(sample_output)
+ expected_result["packets_received"] = 149300
+ expected_result["packetsize"] = 60
+ self.assertEqual(result, expected_result)
+
+ def test_run_with_sriov_multiqueque(self):
+ scenario_cfg = {
+ 'options': {
+ 'packetsize': 60,
+ 'number_of_ports': 10,
+ 'duration': 20,
+ 'multiqueue': True},
+ 'sla': {'max_ppm': 1}
+ }
+ scenario = pktgen.Pktgen(scenario_cfg, self.context_cfg)
+ scenario.setup()
+ scenario._get_vnic_driver_name = mock.Mock(return_value="ixgbevf")
+ scenario._get_sriov_queue_number = mock.Mock(return_value=2)
+ scenario._setup_irqmapping_sriov = mock.Mock()
+ scenario._iptables_get_result = mock.Mock(return_value=149300)
+
+ sample_output = jsonutils.dumps({"packets_per_second": 9753,
+ "errors": 0,
+ "packets_sent": 149300,
+ "flows": 110,
+ "ppm": 0})
+ self.mock_SSH.from_node().execute.return_value = (0, sample_output, '')
+
+ result = {}
+ scenario.run(result)
+
+ expected_result = jsonutils.loads(sample_output)
+ expected_result["packets_received"] = 149300
+ expected_result["packetsize"] = 60
+ self.assertEqual(result, expected_result)
diff --git a/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py
new file mode 100644
index 000000000..70cd8ad40
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk.py
@@ -0,0 +1,136 @@
+##############################################################################
+# Copyright (c) 2015 ZTE 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 mock
+import unittest
+import time
+import logging
+
+import yardstick.common.utils as utils
+from yardstick import ssh
+from yardstick.benchmark.scenarios.networking import pktgen_dpdk
+from yardstick.common import exceptions as y_exc
+
+
+logging.disable(logging.CRITICAL)
+
+
+class PktgenDPDKLatencyTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.context_cfg = {
+ 'host': {
+ 'ip': '172.16.0.137',
+ 'user': 'root',
+ 'key_filename': 'mykey.key'
+ },
+ 'target': {
+ 'ip': '172.16.0.138',
+ 'user': 'root',
+ 'key_filename': 'mykey.key',
+ 'ipaddr': '172.16.0.138'
+ }
+ }
+ self.scenario_cfg = {
+ 'options': {'packetsize': 60}
+ }
+
+ self._mock_SSH = mock.patch.object(ssh, 'SSH')
+ self.mock_SSH = self._mock_SSH.start()
+
+ self._mock_time_sleep = mock.patch.object(time, 'sleep')
+ self.mock_time_sleep = self._mock_time_sleep.start()
+
+ self._mock_utils_get_port_ip = mock.patch.object(utils, 'get_port_ip')
+ self.mock_utils_get_port_ip = self._mock_utils_get_port_ip.start()
+
+ self._mock_utils_get_port_mac = mock.patch.object(utils,
+ 'get_port_mac')
+ self.mock_utils_get_port_mac = self._mock_utils_get_port_mac.start()
+
+ self.mock_SSH.from_node().execute.return_value = (0, '', '')
+
+ self.addCleanup(self._stop_mock)
+
+ self.scenario = pktgen_dpdk.PktgenDPDKLatency(self.scenario_cfg,
+ self.context_cfg)
+ self.scenario.server = self.mock_SSH.from_node()
+ self.scenario.client = self.mock_SSH.from_node()
+
+ def _stop_mock(self):
+ self._mock_SSH.stop()
+ self._mock_time_sleep.stop()
+ self._mock_utils_get_port_ip.stop()
+ self._mock_utils_get_port_mac.stop()
+
+ def test_setup(self):
+ scenario = pktgen_dpdk.PktgenDPDKLatency(self.scenario_cfg,
+ self.context_cfg)
+ scenario.setup()
+
+ self.assertIsNotNone(scenario.server)
+ self.assertIsNotNone(scenario.client)
+ self.assertTrue(scenario.setup_done)
+
+ def test_run_get_port_ip_command(self):
+ self.scenario.run({})
+
+ self.mock_utils_get_port_ip.assert_has_calls(
+ [mock.call(self.scenario.server, 'ens4'),
+ mock.call(self.scenario.server, 'ens5')])
+
+ def test_get_port_mac_command(self):
+ self.scenario.run({})
+
+ self.mock_utils_get_port_mac.assert_has_calls(
+ [mock.call(self.scenario.server, 'ens5'),
+ mock.call(self.scenario.server, 'ens4'),
+ mock.call(self.scenario.server, 'ens5')])
+
+ def test_run_no_sla(self):
+ sample_output = '100\n110\n112\n130\n149\n150\n90\n150\n200\n162\n'
+ self.mock_SSH.from_node().execute.return_value = (0, sample_output, '')
+
+ result = {}
+ self.scenario.run(result)
+ # with python 3 we get float, might be due python division changes
+ # AssertionError: {'avg_latency': 132.33333333333334} != {
+ # 'avg_latency': 132}
+ delta = result['avg_latency'] - 132
+ self.assertLessEqual(delta, 1)
+
+ def test_run_sla(self):
+ self.scenario_cfg['sla'] = {'max_latency': 100}
+ scenario = pktgen_dpdk.PktgenDPDKLatency(self.scenario_cfg,
+ self.context_cfg)
+
+ sample_output = '100\n100\n100\n100\n100\n100\n100\n100\n100\n100\n'
+ self.mock_SSH.from_node().execute.return_value = (0, sample_output, '')
+
+ result = {}
+ scenario.run(result)
+
+ self.assertEqual(result, {"avg_latency": 100})
+
+ def test_run_sla_error(self):
+ self.scenario_cfg['sla'] = {'max_latency': 100}
+ scenario = pktgen_dpdk.PktgenDPDKLatency(self.scenario_cfg,
+ self.context_cfg)
+
+ sample_output = '100\n110\n112\n130\n149\n150\n90\n150\n200\n162\n'
+ self.mock_SSH.from_node().execute.return_value = (0, sample_output, '')
+
+ with self.assertRaises(y_exc.SLAValidationError):
+ scenario.run({})
+
+ def test_run_last_command_raise_on_error(self):
+ self.mock_SSH.from_node().execute.side_effect = y_exc.SSHError
+
+ with self.assertRaises(y_exc.SSHError):
+ self.scenario.run({})
diff --git a/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk_throughput.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk_throughput.py
index d34097008..39392e4bb 100644
--- a/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk_throughput.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_pktgen_dpdk_throughput.py
@@ -6,7 +6,6 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-#!/usr/bin/env python
# Unittest for yardstick.benchmark.scenarios.networking.pktgen.PktgenDPDK
@@ -17,10 +16,14 @@ from oslo_serialization import jsonutils
import mock
from yardstick.benchmark.scenarios.networking import pktgen_dpdk_throughput
+from yardstick.common import exceptions as y_exc
+
+
+# pylint: disable=unused-argument
+# disable this for now because I keep forgetting mock patch arg ordering
@mock.patch('yardstick.benchmark.scenarios.networking.pktgen_dpdk_throughput.ssh')
-@mock.patch('yardstick.benchmark.scenarios.networking.pktgen_dpdk_throughput.time')
class PktgenDPDKTestCase(unittest.TestCase):
def setUp(self):
@@ -37,7 +40,16 @@ class PktgenDPDKTestCase(unittest.TestCase):
}
}
- def test_pktgen_dpdk_throughput_successful_setup(self, mock__time, mock_ssh):
+ self._mock_time = mock.patch(
+ 'yardstick.benchmark.scenarios.networking.pktgen_dpdk_throughput.time')
+ self.mock_time = self._mock_time.start()
+
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self._mock_time.stop()
+
+ def test_pktgen_dpdk_throughput_successful_setup(self, mock_ssh):
args = {
'options': {'packetsize': 60},
}
@@ -47,9 +59,9 @@ class PktgenDPDKTestCase(unittest.TestCase):
mock_ssh.SSH().execute.return_value = (0, '', '')
self.assertIsNotNone(p.server)
self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
+ self.assertTrue(p.setup_done)
- def test_pktgen_dpdk_throughput_successful_no_sla(self, mock__time, mock_ssh):
+ def test_pktgen_dpdk_throughput_successful_no_sla(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
}
@@ -75,7 +87,7 @@ class PktgenDPDKTestCase(unittest.TestCase):
expected_result["packetsize"] = 60
self.assertEqual(result, expected_result)
- def test_pktgen_dpdk_throughput_successful_sla(self, mock__time, mock_ssh):
+ def test_pktgen_dpdk_throughput_successful_sla(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
'sla': {'max_ppm': 10000}
@@ -101,7 +113,7 @@ class PktgenDPDKTestCase(unittest.TestCase):
expected_result["packetsize"] = 60
self.assertEqual(result, expected_result)
- def test_pktgen_dpdk_throughput_unsuccessful_sla(self, mock__time, mock_ssh):
+ def test_pktgen_dpdk_throughput_unsuccessful_sla(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
'sla': {'max_ppm': 1000}
@@ -120,9 +132,10 @@ class PktgenDPDKTestCase(unittest.TestCase):
sample_output = '{"packets_per_second": 9753, "errors": 0, \
"packets_sent": 149776, "flows": 110}'
mock_ssh.SSH().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
+ self.assertRaises(y_exc.SLAValidationError, p.run, result)
- def test_pktgen_dpdk_throughput_unsuccessful_script_error(self, mock__time, mock_ssh):
+ def test_pktgen_dpdk_throughput_unsuccessful_script_error(
+ self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
'sla': {'max_ppm': 1000}
@@ -137,7 +150,7 @@ class PktgenDPDKTestCase(unittest.TestCase):
mock_ssh.SSH().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, p.run, result)
- def test_pktgen_dpdk_throughput_is_dpdk_setup(self, mock__time, mock_ssh):
+ def test_pktgen_dpdk_throughput_is_dpdk_setup(self, mock_ssh):
args = {
'options': {'packetsize': 60},
}
@@ -151,7 +164,7 @@ class PktgenDPDKTestCase(unittest.TestCase):
mock_ssh.SSH().execute.assert_called_with(
"ip a | grep eth1 2>/dev/null")
- def test_pktgen_dpdk_throughput_dpdk_setup(self, mock__time, mock_ssh):
+ def test_pktgen_dpdk_throughput_dpdk_setup(self, mock_ssh):
args = {
'options': {'packetsize': 60},
}
@@ -163,9 +176,9 @@ class PktgenDPDKTestCase(unittest.TestCase):
p.dpdk_setup()
- self.assertEqual(p.dpdk_setup_done, True)
+ self.assertTrue(p.dpdk_setup_done)
- def test_pktgen_dpdk_throughput_dpdk_get_result(self, mock__time, mock_ssh):
+ def test_pktgen_dpdk_throughput_dpdk_get_result(self, mock_ssh):
args = {
'options': {'packetsize': 60},
}
@@ -179,9 +192,3 @@ class PktgenDPDKTestCase(unittest.TestCase):
mock_ssh.SSH().execute.assert_called_with(
"sudo /dpdk/destdir/bin/dpdk-procinfo -- --stats-reset > /dev/null 2>&1")
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_sfc.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_sfc.py
index 78c0352dd..a5e5e39dc 100644
--- a/tests/unit/benchmark/scenarios/networking/test_sfc.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_sfc.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
@@ -68,10 +66,3 @@ class SfcTestCase(unittest.TestCase):
self.sfc.setup()
self.sfc.run(result)
self.sfc.teardown()
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/networking/test_vnf_generic.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_vnf_generic.py
index 016608a21..cf9a26a76 100644
--- a/tests/unit/benchmark/scenarios/networking/test_vnf_generic.py
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_vnf_generic.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,26 +11,32 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
-
-# Unittest for yardstick.benchmark.scenarios.networking.test_vnf_generic
-
-from __future__ import absolute_import
+from copy import deepcopy
import os
-import errno
-import unittest
-import mock
+import sys
-from copy import deepcopy
+import mock
+import unittest
-from tests.unit import STL_MOCKS
-from yardstick.benchmark.scenarios.networking.vnf_generic import \
- SshManager, NetworkServiceTestCase, IncorrectConfig, \
- open_relative_file
+from yardstick import tests
+from yardstick.common import exceptions
+from yardstick.common import utils
from yardstick.network_services.collector.subscriber import Collector
-from yardstick.network_services.vnf_generic.vnf.base import \
- GenericTrafficGen, GenericVNF
+from yardstick.network_services.traffic_profile import base
+from yardstick.network_services.vnf_generic import vnfdgen
+from yardstick.network_services.vnf_generic.vnf.base import GenericTrafficGen
+from yardstick.network_services.vnf_generic.vnf.base import GenericVNF
+
+
+stl_patch = mock.patch.dict(sys.modules, tests.STL_MOCKS)
+stl_patch.start()
+
+if stl_patch:
+ from yardstick.benchmark.scenarios.networking import vnf_generic
+
+# pylint: disable=unused-argument
+# disable this for now because I keep forgetting mock patch arg ordering
COMPLETE_TREX_VNFD = {
@@ -155,7 +159,7 @@ TRAFFIC_PROFILE = {
class TestNetworkServiceTestCase(unittest.TestCase):
def setUp(self):
- self.tg__1 = {
+ self.tg__0 = {
'name': 'trafficgen_1.yardstick',
'ip': '10.10.10.11',
'role': 'TrafficGen',
@@ -181,7 +185,7 @@ class TestNetworkServiceTestCase(unittest.TestCase):
},
}
- self.vnf__1 = {
+ self.vnf__0 = {
'name': 'vnf.yardstick',
'ip': '10.10.10.12',
'host': '10.223.197.164',
@@ -238,8 +242,8 @@ class TestNetworkServiceTestCase(unittest.TestCase):
self.context_cfg = {
'nodes': {
- 'tg__1': self.tg__1,
- 'vnf__1': self.vnf__1,
+ 'tg__0': self.tg__0,
+ 'vnf__0': self.vnf__0,
},
'networks': {
GenericVNF.UPLINK: {
@@ -266,7 +270,7 @@ class TestNetworkServiceTestCase(unittest.TestCase):
],
'type': 'ELAN',
'id': GenericVNF.UPLINK,
- 'name': 'tg__1 to vnf__1 link 1'
+ 'name': 'tg__0 to vnf__0 link 1'
}
self.vld1 = {
@@ -284,7 +288,7 @@ class TestNetworkServiceTestCase(unittest.TestCase):
],
'type': 'ELAN',
'id': GenericVNF.DOWNLINK,
- 'name': 'vnf__1 to tg__1 link 2'
+ 'name': 'vnf__0 to tg__0 link 2'
}
self.topology = {
@@ -296,12 +300,12 @@ class TestNetworkServiceTestCase(unittest.TestCase):
{
'member-vnf-index': '1',
'VNF model': 'tg_trex_tpl.yaml',
- 'vnfd-id-ref': 'tg__1',
+ 'vnfd-id-ref': 'tg__0',
},
{
'member-vnf-index': '2',
'VNF model': 'tg_trex_tpl.yaml',
- 'vnfd-id-ref': 'vnf__1',
+ 'vnfd-id-ref': 'vnf__0',
},
],
'vld': [self.vld0, self.vld1],
@@ -313,6 +317,7 @@ class TestNetworkServiceTestCase(unittest.TestCase):
'task_id': 'a70bdf4a-8e67-47a3-9dc1-273c14506eb7',
'tc': 'tc_ipv4_1Mflow_64B_packetsize',
'traffic_profile': 'ipv4_throughput_vpe.yaml',
+ 'extra_args': {'arg1': 'value1', 'arg2': 'value2'},
'type': 'ISB',
'tc_options': {
'rfc2544': {
@@ -320,6 +325,8 @@ class TestNetworkServiceTestCase(unittest.TestCase):
},
},
'options': {
+ 'simulated_users': {'uplink': [1, 2]},
+ 'page_object': {'uplink': [1, 2]},
'framesize': {'64B': 100}
},
'runner': {
@@ -336,84 +343,89 @@ class TestNetworkServiceTestCase(unittest.TestCase):
},
'nodes': {
'tg__2': 'trafficgen_2.yardstick',
- 'tg__1': 'trafficgen_1.yardstick',
- 'vnf__1': 'vnf.yardstick',
+ 'tg__0': 'trafficgen_1.yardstick',
+ 'vnf__0': 'vnf.yardstick',
},
}
- self.s = NetworkServiceTestCase(self.scenario_cfg, self.context_cfg)
+ self.s = vnf_generic.NetworkServiceTestCase(self.scenario_cfg,
+ self.context_cfg)
def _get_file_abspath(self, filename):
curr_path = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(curr_path, filename)
return file_path
- def test_ssh_manager(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
- for node, node_dict in self.context_cfg["nodes"].items():
- with SshManager(node_dict) as conn:
- self.assertIsNotNone(conn)
-
def test___init__(self):
- assert self.topology
+ self.assertIsNotNone(self.topology)
def test__get_ip_flow_range_string(self):
- self.scenario_cfg["traffic_options"]["flow"] = \
- self._get_file_abspath("ipv4_1flow_Packets_vpe.yaml")
result = '152.16.100.2-152.16.100.254'
- self.assertEqual(result, self.s._get_ip_flow_range('152.16.100.2-152.16.100.254'))
+ self.assertEqual(result, self.s._get_ip_flow_range(
+ '152.16.100.2-152.16.100.254'))
- def test__get_ip_flow_range(self):
- self.scenario_cfg["traffic_options"]["flow"] = \
- self._get_file_abspath("ipv4_1flow_Packets_vpe.yaml")
- result = '152.16.100.2-152.16.100.254'
- self.assertEqual(result, self.s._get_ip_flow_range({"tg__1": 'xe0'}))
+ def test__get_ip_flow_range_no_nodes(self):
+ self.assertEqual('0.0.0.0', self.s._get_ip_flow_range({}))
- @mock.patch('yardstick.benchmark.scenarios.networking.vnf_generic.ipaddress')
- def test__get_ip_flow_range_no_node_data(self, mock_ipaddress):
- scenario_cfg = deepcopy(self.scenario_cfg)
- scenario_cfg["traffic_options"]["flow"] = \
- self._get_file_abspath("ipv4_1flow_Packets_vpe.yaml")
+ def test__get_ip_flow_range_no_node_data(self):
+ node_data = {'tg__0': 'xe0'}
+ self.s.context_cfg['nodes']['tg__0'] = {}
+ result = self.s._get_ip_flow_range(node_data)
+ self.assertEqual('0.0.0.2-0.0.0.254', result)
- mock_ipaddress.ip_network.return_value = ipaddr = mock.Mock()
- ipaddr.hosts.return_value = []
+ def test__et_ip_flow_range_ipv4(self):
+ node_data = {'tg__0': 'xe0'}
+ self.s.context_cfg['nodes']['tg__0'] = {
+ 'interfaces': {
+ 'xe0': {'local_ip': '192.168.1.15',
+ 'netmask': '255.255.255.128'}
+ }
+ }
+ result = self.s._get_ip_flow_range(node_data)
+ self.assertEqual('192.168.1.2-192.168.1.126', result)
- expected = '0.0.0.0'
- result = self.s._get_ip_flow_range({"tg__2": 'xe0'})
- self.assertEqual(result, expected)
+ def test__get_ip_flow_range_ipv4_mask_30(self):
+ node_data = {'tg__0': 'xe0'}
+ self.s.context_cfg['nodes']['tg__0'] = {
+ 'interfaces': {
+ 'xe0': {'local_ip': '192.168.1.15', 'netmask': 30}
+ }
+ }
+ result = self.s._get_ip_flow_range(node_data)
+ self.assertEqual('192.168.1.15', result)
- def test__get_ip_flow_range_no_nodes(self):
- expected = '0.0.0.0'
- result = self.s._get_ip_flow_range({})
- self.assertEqual(result, expected)
+ def test__get_ip_flow_range_ipv6(self):
+ node_data = {'tg__0': 'xe0'}
+ self.s.context_cfg['nodes']['tg__0'] = {
+ 'interfaces': {
+ 'xe0': {'local_ip': '2001::11', 'netmask': 64}
+ }
+ }
+ result = self.s._get_ip_flow_range(node_data)
+ self.assertEqual('2001::2-2001::ffff:ffff:ffff:fffe', result)
def test___get_traffic_flow(self):
self.scenario_cfg["traffic_options"]["flow"] = \
self._get_file_abspath("ipv4_1flow_Packets_vpe.yaml")
- self.scenario_cfg["options"] = {}
self.scenario_cfg['options'] = {
'flow': {
- 'src_ip': [
- {
- 'tg__1': 'xe0',
- },
- ],
- 'dst_ip': [
- {
- 'tg__1': 'xe1',
- },
- ],
- 'public_ip': ['1.1.1.1'],
+ 'src_ip': [
+ {
+ 'tg__0': 'xe0',
+ },
+ ],
+ 'dst_ip': [
+ {
+ 'tg__0': 'xe1',
+ },
+ ],
+ 'public_ip': ['1.1.1.1'],
},
}
- result = {'flow': {'dst_ip0': '152.16.40.2-152.16.40.254',
- 'src_ip0': '152.16.100.2-152.16.100.254'}}
-
- self.assertEqual({'flow': {}}, self.s._get_traffic_flow())
+ expected_flow = {'flow': {'dst_ip_0': '152.16.40.2-152.16.40.254',
+ 'public_ip_0': '1.1.1.1',
+ 'src_ip_0': '152.16.100.2-152.16.100.254'}}
+ self.assertEqual(expected_flow, self.s._get_traffic_flow())
def test___get_traffic_flow_error(self):
self.scenario_cfg["traffic_options"]["flow"] = \
@@ -422,21 +434,21 @@ class TestNetworkServiceTestCase(unittest.TestCase):
def test_get_vnf_imp(self):
vnfd = COMPLETE_TREX_VNFD['vnfd:vnfd-catalog']['vnfd'][0]['class-name']
- with mock.patch.dict("sys.modules", STL_MOCKS):
+ with mock.patch.dict(sys.modules, tests.STL_MOCKS):
self.assertIsNotNone(self.s.get_vnf_impl(vnfd))
- with self.assertRaises(IncorrectConfig) as raised:
- self.s.get_vnf_impl('NonExistentClass')
+ with self.assertRaises(exceptions.IncorrectConfig) as raised:
+ self.s.get_vnf_impl('NonExistentClass')
- exc_str = str(raised.exception)
- print(exc_str)
- self.assertIn('No implementation', exc_str)
- self.assertIn('found in', exc_str)
+ exc_str = str(raised.exception)
+ print(exc_str)
+ self.assertIn('No implementation', exc_str)
+ self.assertIn('found in', exc_str)
def test_load_vnf_models_invalid(self):
- self.context_cfg["nodes"]['tg__1']['VNF model'] = \
+ self.context_cfg["nodes"]['tg__0']['VNF model'] = \
self._get_file_abspath("tg_trex_tpl.yaml")
- self.context_cfg["nodes"]['vnf__1']['VNF model'] = \
+ self.context_cfg["nodes"]['vnf__0']['VNF model'] = \
self._get_file_abspath("tg_trex_tpl.yaml")
vnf = mock.Mock(autospec=GenericVNF)
@@ -453,38 +465,38 @@ class TestNetworkServiceTestCase(unittest.TestCase):
self.s.load_vnf_models(self.scenario_cfg, self.context_cfg))
def test_map_topology_to_infrastructure(self):
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
- self.s.map_topology_to_infrastructure()
+ self.s.map_topology_to_infrastructure()
nodes = self.context_cfg["nodes"]
- self.assertEqual("../../vnf_descriptors/tg_rfc2544_tpl.yaml", nodes['tg__1']['VNF model'])
- self.assertEqual("../../vnf_descriptors/vpe_vnf.yaml", nodes['vnf__1']['VNF model'])
+ self.assertEqual('../../vnf_descriptors/tg_rfc2544_tpl.yaml',
+ nodes['tg__0']['VNF model'])
+ self.assertEqual('../../vnf_descriptors/vpe_vnf.yaml',
+ nodes['vnf__0']['VNF model'])
def test_map_topology_to_infrastructure_insufficient_nodes(self):
- del self.context_cfg['nodes']['vnf__1']
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(1, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
+ cfg = deepcopy(self.context_cfg)
+ del cfg['nodes']['vnf__0']
- with self.assertRaises(IncorrectConfig):
+ cfg_patch = mock.patch.object(self.s, 'context_cfg', cfg)
+ with cfg_patch:
+ with self.assertRaises(exceptions.IncorrectConfig):
self.s.map_topology_to_infrastructure()
def test_map_topology_to_infrastructure_config_invalid(self):
- cfg = dict(self.context_cfg)
- del cfg['nodes']['vnf__1']['interfaces']['xe0']['local_mac']
- with mock.patch("yardstick.ssh.SSH") as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = \
- mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
- ssh.from_node.return_value = ssh_mock
+ ssh_mock = mock.Mock()
+ ssh_mock.execute.return_value = 0, SYS_CLASS_NET + IP_ADDR_SHOW, ""
+
+ cfg = deepcopy(self.s.context_cfg)
- with self.assertRaises(IncorrectConfig):
+ # delete all, we don't know which will come first
+ del cfg['nodes']['vnf__0']['interfaces']['xe0']['local_mac']
+ del cfg['nodes']['vnf__0']['interfaces']['xe1']['local_mac']
+ del cfg['nodes']['tg__0']['interfaces']['xe0']['local_mac']
+ del cfg['nodes']['tg__0']['interfaces']['xe1']['local_mac']
+
+ config_patch = mock.patch.object(self.s, 'context_cfg', cfg)
+ with config_patch:
+ with self.assertRaises(exceptions.IncorrectConfig):
self.s.map_topology_to_infrastructure()
def test__resolve_topology_invalid_config(self):
@@ -495,28 +507,24 @@ class TestNetworkServiceTestCase(unittest.TestCase):
ssh.from_node.return_value = ssh_mock
# purge an important key from the data structure
- for interface in self.tg__1['interfaces'].values():
+ for interface in self.tg__0['interfaces'].values():
del interface['local_mac']
- with mock.patch(
- "yardstick.benchmark.scenarios.networking.vnf_generic.LOG") as mock_log:
- with self.assertRaises(IncorrectConfig) as raised:
- self.s._resolve_topology()
+ with self.assertRaises(exceptions.IncorrectConfig) as raised:
+ self.s._resolve_topology()
self.assertIn('not found', str(raised.exception))
# restore local_mac
- for index, interface in enumerate(self.tg__1['interfaces'].values()):
+ for index, interface in enumerate(self.tg__0['interfaces'].values()):
interface['local_mac'] = '00:00:00:00:00:{:2x}'.format(index)
# make a connection point ref with 3 points
self.s.topology["vld"][0]['vnfd-connection-point-ref'].append(
self.s.topology["vld"][0]['vnfd-connection-point-ref'][0])
- with mock.patch(
- "yardstick.benchmark.scenarios.networking.vnf_generic.LOG") as mock_log:
- with self.assertRaises(IncorrectConfig) as raised:
- self.s._resolve_topology()
+ with self.assertRaises(exceptions.IncorrectConfig) as raised:
+ self.s._resolve_topology()
self.assertIn('wrong endpoint count', str(raised.exception))
@@ -524,10 +532,8 @@ class TestNetworkServiceTestCase(unittest.TestCase):
self.s.topology["vld"][0]['vnfd-connection-point-ref'] = \
self.s.topology["vld"][0]['vnfd-connection-point-ref'][:1]
- with mock.patch(
- "yardstick.benchmark.scenarios.networking.vnf_generic.LOG") as mock_log:
- with self.assertRaises(IncorrectConfig) as raised:
- self.s._resolve_topology()
+ with self.assertRaises(exceptions.IncorrectConfig) as raised:
+ self.s._resolve_topology()
self.assertIn('wrong endpoint count', str(raised.exception))
@@ -573,7 +579,7 @@ class TestNetworkServiceTestCase(unittest.TestCase):
self.s.load_vnf_models = mock.Mock(return_value=self.s.vnfs)
self.s._fill_traffic_profile = \
mock.Mock(return_value=TRAFFIC_PROFILE)
- self.assertEqual(None, self.s.setup())
+ self.assertIsNone(self.s.setup())
def test_setup_exception(self):
with mock.patch("yardstick.ssh.SSH") as ssh:
@@ -590,7 +596,8 @@ class TestNetworkServiceTestCase(unittest.TestCase):
tgen.name = "tgen__1"
vnf = mock.Mock(autospec=GenericVNF)
vnf.runs_traffic = False
- vnf.instantiate.side_effect = RuntimeError("error during instantiate")
+ vnf.instantiate.side_effect = RuntimeError(
+ "error during instantiate")
vnf.terminate = mock.Mock(return_value=True)
self.s.vnfs = [tgen, vnf]
self.s.traffic_profile = mock.Mock()
@@ -614,19 +621,97 @@ class TestNetworkServiceTestCase(unittest.TestCase):
with self.assertRaises(IOError):
self.s._get_traffic_profile()
+ def test__key_list_to_dict(self):
+ result = self.s._key_list_to_dict("uplink", {"uplink": [1, 2]})
+ self.assertEqual({"uplink_0": 1, "uplink_1": 2}, result)
+
+ def test__get_simulated_users(self):
+ result = self.s._get_simulated_users()
+ self.assertEqual({'simulated_users': {'uplink_0': 1, 'uplink_1': 2}},
+ result)
+
+ def test__get_page_object(self):
+ result = self.s._get_page_object()
+ self.assertEqual({'page_object': {'uplink_0': 1, 'uplink_1': 2}},
+ result)
+
def test___get_traffic_imix_exception(self):
with mock.patch.dict(self.scenario_cfg["traffic_options"], {'imix': ''}):
- self.assertEqual({'imix': {'64B': 100}}, self.s._get_traffic_imix())
-
- def test__fill_traffic_profile(self):
- with mock.patch.dict("sys.modules", STL_MOCKS):
- self.scenario_cfg["traffic_profile"] = \
- self._get_file_abspath("ipv4_throughput_vpe.yaml")
- self.scenario_cfg["traffic_options"]["flow"] = \
- self._get_file_abspath("ipv4_1flow_Packets_vpe.yaml")
- self.scenario_cfg["traffic_options"]["imix"] = \
- self._get_file_abspath("imix_voice.yaml")
- self.assertIsNotNone(self.s._fill_traffic_profile())
+ self.assertEqual({'imix': {'64B': 100}},
+ self.s._get_traffic_imix())
+
+ def test__get_ip_priority(self):
+ with mock.patch.dict(self.scenario_cfg["options"],
+ {'priority': {'raw': '0x01'}}):
+ self.assertEqual({'raw': '0x01'}, self.s._get_ip_priority())
+
+ def test__get_ip_priority_exception(self):
+ self.assertEqual({}, self.s._get_ip_priority())
+
+ @mock.patch.object(base.TrafficProfile, 'get')
+ @mock.patch.object(vnfdgen, 'generate_vnfd')
+ def test__fill_traffic_profile(self, mock_generate, mock_tprofile_get):
+ fake_tprofile = mock.Mock()
+ fake_vnfd = mock.MagicMock()
+ with mock.patch.object(self.s, '_get_traffic_profile',
+ return_value=fake_tprofile) as mock_get_tp:
+ mock_generate.return_value = fake_vnfd
+ self.s._fill_traffic_profile()
+ mock_get_tp.assert_called_once()
+ mock_generate.assert_called_once_with(
+ fake_tprofile,
+ {'downlink': {},
+ 'extra_args': {'arg1': 'value1', 'arg2': 'value2'},
+ 'flow': {'flow': {}},
+ 'imix': {'imix': {'64B': 100}},
+ 'priority': {},
+ 'uplink': {},
+ 'duration': 30,
+ 'simulated_users': {
+ 'simulated_users': {'uplink_0': 1, 'uplink_1': 2}},
+ 'page_object': {
+ 'page_object': {'uplink_0': 1, 'uplink_1': 2}},}
+ )
+ mock_tprofile_get.assert_called_once_with(fake_vnfd)
+
+ @mock.patch.object(base.TrafficProfile, 'get')
+ @mock.patch.object(vnfdgen, 'generate_vnfd')
+ def test__fill_traffic_profile2(self, mock_generate, mock_tprofile_get):
+ fake_tprofile = mock.Mock()
+ fake_vnfd = {}
+ with mock.patch.object(self.s, '_get_traffic_profile',
+ return_value=fake_tprofile) as mock_get_tp:
+ mock_generate.return_value = fake_vnfd
+
+ self.s.scenario_cfg["options"] = {"traffic_config": {"duration": 99899}}
+ self.s._fill_traffic_profile()
+ mock_get_tp.assert_called_once()
+ self.assertIn("traffic_profile", fake_vnfd)
+ self.assertIn("duration", fake_vnfd["traffic_profile"])
+ self.assertEqual(99899, fake_vnfd["traffic_profile"]["duration"])
+
+ @mock.patch.object(utils, 'open_relative_file')
+ def test__get_topology(self, mock_open_path):
+ self.s.scenario_cfg['topology'] = 'fake_topology'
+ self.s.scenario_cfg['task_path'] = 'fake_path'
+ mock_open_path.side_effect = mock.mock_open(read_data='fake_data')
+ self.assertEqual('fake_data', self.s._get_topology())
+ mock_open_path.assert_called_once_with('fake_topology', 'fake_path')
+
+ @mock.patch.object(vnfdgen, 'generate_vnfd')
+ def test__render_topology(self, mock_generate):
+ fake_topology = 'fake_topology'
+ mock_generate.return_value = {'nsd:nsd-catalog': {'nsd': ['fake_nsd']}}
+ with mock.patch.object(self.s, '_get_topology',
+ return_value=fake_topology) as mock_get_topology:
+ self.s._render_topology()
+ mock_get_topology.assert_called_once()
+
+ mock_generate.assert_called_once_with(
+ fake_topology,
+ {'extra_args': {'arg1': 'value1', 'arg2': 'value2'}}
+ )
+ self.assertEqual(self.s.topology, 'fake_nsd')
def test_teardown(self):
vnf = mock.Mock(autospec=GenericVNF)
@@ -641,7 +726,8 @@ class TestNetworkServiceTestCase(unittest.TestCase):
def test_teardown_exception(self):
vnf = mock.Mock(autospec=GenericVNF)
- vnf.terminate = mock.Mock(side_effect=RuntimeError("error duing terminate"))
+ vnf.terminate = mock.Mock(
+ side_effect=RuntimeError("error duing terminate"))
vnf.name = str(vnf)
self.s.vnfs = [vnf]
self.s.traffic_profile = mock.Mock()
@@ -651,137 +737,137 @@ class TestNetworkServiceTestCase(unittest.TestCase):
with self.assertRaises(RuntimeError):
self.s.teardown()
- SAMPLE_NETDEVS = {
- 'enp11s0': {
- 'address': '0a:de:ad:be:ef:f5',
- 'device': '0x1533',
- 'driver': 'igb',
- 'ifindex': '2',
- 'interface_name': 'enp11s0',
- 'operstate': 'down',
- 'pci_bus_id': '0000:0b:00.0',
- 'subsystem_device': '0x1533',
- 'subsystem_vendor': '0x15d9',
- 'vendor': '0x8086'
- },
- 'lan': {
- 'address': '0a:de:ad:be:ef:f4',
- 'device': '0x153a',
- 'driver': 'e1000e',
- 'ifindex': '3',
- 'interface_name': 'lan',
- 'operstate': 'up',
- 'pci_bus_id': '0000:00:19.0',
- 'subsystem_device': '0x153a',
- 'subsystem_vendor': '0x15d9',
- 'vendor': '0x8086'
- }
- }
-
- SAMPLE_VM_NETDEVS = {
- 'eth1': {
- 'address': 'fa:de:ad:be:ef:5b',
- 'device': '0x0001',
- 'driver': 'virtio_net',
- 'ifindex': '3',
- 'interface_name': 'eth1',
- 'operstate': 'down',
- 'pci_bus_id': '0000:00:04.0',
- 'vendor': '0x1af4'
- }
- }
-
- def test_parse_netdev_info(self):
- output = """\
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/ifindex:2
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/address:0a:de:ad:be:ef:f5
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/operstate:down
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/vendor:0x8086
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/device:0x1533
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/subsystem_vendor:0x15d9
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/subsystem_device:0x1533
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/driver:igb
-/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/pci_bus_id:0000:0b:00.0
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/ifindex:3
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/address:0a:de:ad:be:ef:f4
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/operstate:up
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/vendor:0x8086
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/device:0x153a
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/subsystem_vendor:0x15d9
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/subsystem_device:0x153a
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/driver:e1000e
-/sys/devices/pci0000:00/0000:00:19.0/net/lan/pci_bus_id:0000:00:19.0
-"""
- res = NetworkServiceTestCase.parse_netdev_info(output)
- assert res == self.SAMPLE_NETDEVS
-
- def test_parse_netdev_info_virtio(self):
- output = """\
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/ifindex:3
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/address:fa:de:ad:be:ef:5b
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/operstate:down
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/device/vendor:0x1af4
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/device/device:0x0001
-/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/driver:virtio_net
-"""
- res = NetworkServiceTestCase.parse_netdev_info(output)
- assert res == self.SAMPLE_VM_NETDEVS
-
- def test_probe_missing_values(self):
- netdevs = self.SAMPLE_NETDEVS.copy()
- network = {'local_mac': '0a:de:ad:be:ef:f5'}
- NetworkServiceTestCase._probe_missing_values(netdevs, network)
- assert network['vpci'] == '0000:0b:00.0'
-
- network = {'local_mac': '0a:de:ad:be:ef:f4'}
- NetworkServiceTestCase._probe_missing_values(netdevs, network)
- assert network['vpci'] == '0000:00:19.0'
-
- def test_open_relative_path(self):
- mock_open = mock.mock_open()
- mock_open_result = mock_open()
- mock_open_call_count = 1 # initial call to get result
-
- module_name = \
- 'yardstick.benchmark.scenarios.networking.vnf_generic.open'
-
- # test
- with mock.patch(module_name, mock_open, create=True):
- self.assertEqual(open_relative_file('foo', 'bar'), mock_open_result)
-
- mock_open_call_count += 1 # one more call expected
- self.assertEqual(mock_open.call_count, mock_open_call_count)
- self.assertIn('foo', mock_open.call_args_list[-1][0][0])
- self.assertNotIn('bar', mock_open.call_args_list[-1][0][0])
-
- def open_effect(*args, **kwargs):
- if kwargs.get('name', args[0]) == os.path.join('bar', 'foo'):
- return mock_open_result
- raise IOError(errno.ENOENT, 'not found')
-
- mock_open.side_effect = open_effect
- self.assertEqual(open_relative_file('foo', 'bar'), mock_open_result)
-
- mock_open_call_count += 2 # two more calls expected
- self.assertEqual(mock_open.call_count, mock_open_call_count)
- self.assertIn('foo', mock_open.call_args_list[-1][0][0])
- self.assertIn('bar', mock_open.call_args_list[-1][0][0])
-
- # test an IOError of type ENOENT
- mock_open.side_effect = IOError(errno.ENOENT, 'not found')
- with self.assertRaises(IOError):
- # the second call still raises
- open_relative_file('foo', 'bar')
- mock_open_call_count += 2 # two more calls expected
- self.assertEqual(mock_open.call_count, mock_open_call_count)
- self.assertIn('foo', mock_open.call_args_list[-1][0][0])
- self.assertIn('bar', mock_open.call_args_list[-1][0][0])
+class TestNetworkServiceRFC2544TestCase(TestNetworkServiceTestCase):
- # test an IOError other than ENOENT
- mock_open.side_effect = IOError(errno.EBUSY, 'busy')
- with self.assertRaises(IOError):
- open_relative_file('foo', 'bar')
+ def setUp(self):
+ super(TestNetworkServiceRFC2544TestCase, self).setUp()
+ self.s = vnf_generic.NetworkServiceRFC2544(self.scenario_cfg,
+ self.context_cfg)
+
+ def test_run(self):
+ tgen = mock.Mock(autospec=GenericTrafficGen)
+ tgen.traffic_finished = True
+ verified_dict = {"verified": True}
+ tgen.verify_traffic = lambda x: verified_dict
+ tgen.name = "tgen__1"
+ tgen.wait_on_trafic.return_value = 'COMPLETE'
+ vnf = mock.Mock(autospec=GenericVNF)
+ vnf.runs_traffic = False
+ self.s.vnfs = [tgen, vnf]
+ self.s.traffic_profile = mock.Mock()
+ self.s._fill_traffic_profile = mock.Mock()
+ self.s.collector = mock.Mock(autospec=Collector)
+ self.s.collector.get_kpi = mock.Mock(
+ return_value={tgen.name: verified_dict})
+ result = mock.Mock()
+ self.s.run(result)
+ self.s._fill_traffic_profile.assert_called_once()
+ result.push.assert_called_once()
+
+ def test_setup(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
+ ssh.from_node.return_value = ssh_mock
+
+ tgen = mock.Mock(autospec=GenericTrafficGen)
+ tgen.traffic_finished = True
+ verified_dict = {"verified": True}
+ tgen.verify_traffic = lambda x: verified_dict
+ tgen.terminate = mock.Mock(return_value=True)
+ tgen.name = "tgen__1"
+ tgen.run_traffic.return_value = 'tg_id'
+ vnf = mock.Mock(autospec=GenericVNF)
+ vnf.runs_traffic = False
+ vnf.terminate = mock.Mock(return_value=True)
+ self.s.vnfs = [tgen, vnf]
+ self.s.traffic_profile = mock.Mock()
+ self.s.collector = mock.Mock(autospec=Collector)
+ self.s.collector.get_kpi = \
+ mock.Mock(return_value={tgen.name: verified_dict})
+ self.s.map_topology_to_infrastructure = mock.Mock(return_value=0)
+ self.s.load_vnf_models = mock.Mock(return_value=self.s.vnfs)
+ self.s.setup()
+
+ def test_setup_exception(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
+ ssh.from_node.return_value = ssh_mock
+
+ tgen = mock.Mock(autospec=GenericTrafficGen)
+ tgen.traffic_finished = True
+ verified_dict = {"verified": True}
+ tgen.verify_traffic = lambda x: verified_dict
+ tgen.terminate = mock.Mock(return_value=True)
+ tgen.name = "tgen__1"
+ vnf = mock.Mock(autospec=GenericVNF)
+ vnf.runs_traffic = False
+ vnf.instantiate.side_effect = RuntimeError(
+ "error during instantiate")
+ vnf.terminate = mock.Mock(return_value=True)
+ self.s.vnfs = [tgen, vnf]
+ self.s.traffic_profile = mock.Mock()
+ self.s.collector = mock.Mock(autospec=Collector)
+ self.s.collector.get_kpi = \
+ mock.Mock(return_value={tgen.name: verified_dict})
+ self.s.map_topology_to_infrastructure = mock.Mock(return_value=0)
+ self.s.load_vnf_models = mock.Mock(return_value=self.s.vnfs)
+ self.s._fill_traffic_profile = \
+ mock.Mock(return_value=TRAFFIC_PROFILE)
+ with self.assertRaises(RuntimeError):
+ self.s.setup()
+
+class TestNetworkServiceRFC3511TestCase(TestNetworkServiceTestCase):
+
+ def setUp(self):
+ super(TestNetworkServiceRFC3511TestCase, self).setUp()
+ self.s = vnf_generic.NetworkServiceRFC3511(self.scenario_cfg,
+ self.context_cfg)
+
+ def test_run(self):
+ tgen = mock.Mock(autospec=GenericTrafficGen)
+ tgen.traffic_finished = True
+ verified_dict = {"verified": True}
+ tgen.verify_traffic = lambda x: verified_dict
+ tgen.name = "tgen__1"
+ vnf = mock.Mock(autospec=GenericVNF)
+ vnf.runs_traffic = False
+ self.s.vnfs = [tgen, vnf]
+ self.s.traffic_profile = mock.Mock()
+ self.s._fill_traffic_profile = mock.Mock()
+ self.s.collector = mock.Mock(autospec=Collector)
+ self.s.collector.get_kpi = mock.Mock()
+ result = mock.Mock()
+ self.s.run(result)
+ self.s._fill_traffic_profile.assert_called_once()
+ result.push.assert_called_once()
+
+ def test_setup(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, SYS_CLASS_NET + IP_ADDR_SHOW, ""))
+ ssh.from_node.return_value = ssh_mock
- mock_open_call_count += 1 # one more call expected
- self.assertEqual(mock_open.call_count, mock_open_call_count)
+ tgen = mock.Mock(autospec=GenericTrafficGen)
+ tgen.traffic_finished = True
+ verified_dict = {"verified": True}
+ tgen.verify_traffic = lambda x: verified_dict
+ tgen.terminate = mock.Mock(return_value=True)
+ tgen.name = "tgen__1"
+ tgen.run_traffic.return_value = 'tg_id'
+ vnf = mock.Mock(autospec=GenericVNF)
+ vnf.runs_traffic = False
+ vnf.terminate = mock.Mock(return_value=True)
+ self.s.vnfs = [tgen, vnf]
+ self.s.traffic_profile = mock.Mock()
+ self.s.collector = mock.Mock(autospec=Collector)
+ self.s.collector.get_kpi = \
+ mock.Mock(return_value={tgen.name: verified_dict})
+ self.s.map_topology_to_infrastructure = mock.Mock(return_value=0)
+ self.s.load_vnf_models = mock.Mock(return_value=self.s.vnfs)
+ self.s.setup()
diff --git a/yardstick/tests/unit/benchmark/scenarios/networking/test_vsperf.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_vsperf.py
new file mode 100644
index 000000000..a1c27f5fb
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_vsperf.py
@@ -0,0 +1,196 @@
+# Copyright 2016 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+import unittest
+import subprocess
+import yardstick.ssh as ssh
+
+from yardstick.benchmark.scenarios.networking import vsperf
+from yardstick import exceptions as y_exc
+
+
+class VsperfTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.context_cfg = {
+ "host": {
+ "ip": "10.229.47.137",
+ "user": "ubuntu",
+ "password": "ubuntu",
+ },
+ }
+ self.scenario_cfg = {
+ 'options': {
+ 'testname': 'p2p_rfc2544_continuous',
+ 'traffic_type': 'continuous',
+ 'frame_size': '64',
+ 'bidirectional': 'True',
+ 'iload': 100,
+ 'trafficgen_port1': 'eth1',
+ 'trafficgen_port2': 'eth3',
+ 'external_bridge': 'br-ex',
+ 'conf_file': 'vsperf-yardstick.conf',
+ 'setup_script': 'setup_yardstick.sh',
+ 'test_params': 'TRAFFICGEN_DURATION=30;',
+ },
+ 'sla': {
+ 'metrics': 'throughput_rx_fps',
+ 'throughput_rx_fps': 500000,
+ 'action': 'monitor',
+ }
+ }
+
+ self._mock_SSH = mock.patch.object(ssh, 'SSH')
+ self.mock_SSH = self._mock_SSH.start()
+ self.mock_SSH.from_node().execute.return_value = (
+ 0, 'throughput_rx_fps\r\n14797660.000\r\n', '')
+
+ self._mock_subprocess_call = mock.patch.object(subprocess, 'call')
+ self.mock_subprocess_call = self._mock_subprocess_call.start()
+ self.mock_subprocess_call.return_value = None
+
+ self.addCleanup(self._stop_mock)
+
+ self.scenario = vsperf.Vsperf(self.scenario_cfg, self.context_cfg)
+
+ def _stop_mock(self):
+ self._mock_SSH.stop()
+ self._mock_subprocess_call.stop()
+
+ def test_setup(self):
+ self.scenario.setup()
+ self.assertIsNotNone(self.scenario.client)
+ self.assertTrue(self.scenario.setup_done)
+
+ def test_setup_tg_port_not_set(self):
+ del self.scenario_cfg['options']['trafficgen_port1']
+ del self.scenario_cfg['options']['trafficgen_port2']
+ scenario = vsperf.Vsperf(self.scenario_cfg, self.context_cfg)
+ scenario.setup()
+
+ self.mock_subprocess_call.assert_called_once_with(
+ 'setup_yardstick.sh setup', shell=True)
+ self.assertIsNone(scenario.tg_port1)
+ self.assertIsNone(scenario.tg_port2)
+ self.assertIsNotNone(scenario.client)
+ self.assertTrue(scenario.setup_done)
+
+ def test_setup_no_setup_script(self):
+ del self.scenario_cfg['options']['setup_script']
+ scenario = vsperf.Vsperf(self.scenario_cfg, self.context_cfg)
+ scenario.setup()
+
+ self.mock_subprocess_call.assert_has_calls(
+ (mock.call('sudo bash -c "ovs-vsctl add-port br-ex eth1"',
+ shell=True),
+ mock.call('sudo bash -c "ovs-vsctl add-port br-ex eth3"',
+ shell=True)))
+ self.assertEqual(2, self.mock_subprocess_call.call_count)
+ self.assertIsNone(scenario.setup_script)
+ self.assertIsNotNone(scenario.client)
+ self.assertTrue(scenario.setup_done)
+
+ def test_run_ok(self):
+ self.scenario.setup()
+
+ result = {}
+ self.scenario.run(result)
+
+ self.assertEqual(result['throughput_rx_fps'], '14797660.000')
+
+ def test_run_ok_setup_not_done(self):
+ result = {}
+ self.scenario.run(result)
+
+ self.assertTrue(self.scenario.setup_done)
+ self.assertEqual(result['throughput_rx_fps'], '14797660.000')
+
+ def test_run_ssh_command_call_counts(self):
+ self.scenario.run({})
+
+ self.assertEqual(self.mock_SSH.from_node().execute.call_count, 2)
+ self.mock_SSH.from_node().run.assert_called_once()
+
+ def test_run_sla_fail(self):
+ self.mock_SSH.from_node().execute.return_value = (
+ 0, 'throughput_rx_fps\r\n123456.000\r\n', '')
+
+ with self.assertRaises(y_exc.SLAValidationError) as raised:
+ self.scenario.run({})
+
+ self.assertTrue('VSPERF_throughput_rx_fps(123456.000000) < '
+ 'SLA_throughput_rx_fps(500000.000000)'
+ in str(raised.exception))
+
+ def test_run_sla_fail_metric_not_collected(self):
+ self.mock_SSH.from_node().execute.return_value = (
+ 0, 'nonexisting_metric\r\n14797660.000\r\n', '')
+
+ with self.assertRaises(y_exc.SLAValidationError) as raised:
+ self.scenario.run({})
+
+ self.assertTrue('throughput_rx_fps was not collected by VSPERF'
+ in str(raised.exception))
+
+ def test_run_faulty_result_csv(self):
+ self.mock_SSH.from_node().execute.return_value = (
+ 0, 'faulty output not csv', '')
+
+ with self.assertRaises(y_exc.SLAValidationError) as raised:
+ self.scenario.run({})
+
+ self.assertTrue('throughput_rx_fps was not collected by VSPERF'
+ in str(raised.exception))
+
+ def test_run_sla_fail_metric_not_defined_in_sla(self):
+ del self.scenario_cfg['sla']['throughput_rx_fps']
+ scenario = vsperf.Vsperf(self.scenario_cfg, self.context_cfg)
+ scenario.setup()
+
+ with self.assertRaises(y_exc.SLAValidationError) as raised:
+ scenario.run({})
+ self.assertTrue('throughput_rx_fps is not defined in SLA'
+ in str(raised.exception))
+
+ def test_teardown(self):
+ self.scenario.setup()
+ self.assertIsNotNone(self.scenario.client)
+ self.assertTrue(self.scenario.setup_done)
+
+ self.scenario.teardown()
+ self.assertFalse(self.scenario.setup_done)
+
+ def test_teardown_tg_port_not_set(self):
+ del self.scenario_cfg['options']['trafficgen_port1']
+ del self.scenario_cfg['options']['trafficgen_port2']
+ scenario = vsperf.Vsperf(self.scenario_cfg, self.context_cfg)
+ scenario.teardown()
+
+ self.mock_subprocess_call.assert_called_once_with(
+ 'setup_yardstick.sh teardown', shell=True)
+ self.assertFalse(scenario.setup_done)
+
+ def test_teardown_no_setup_script(self):
+ del self.scenario_cfg['options']['setup_script']
+ scenario = vsperf.Vsperf(self.scenario_cfg, self.context_cfg)
+ scenario.teardown()
+
+ self.mock_subprocess_call.assert_has_calls(
+ (mock.call('sudo bash -c "ovs-vsctl del-port br-ex eth1"',
+ shell=True),
+ mock.call('sudo bash -c "ovs-vsctl del-port br-ex eth3"',
+ shell=True)))
+ self.assertEqual(2, self.mock_subprocess_call.call_count)
+ self.assertFalse(scenario.setup_done)
diff --git a/yardstick/tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py b/yardstick/tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py
new file mode 100644
index 000000000..8bbe6911e
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/test_vsperf_dpdk.py
@@ -0,0 +1,181 @@
+# Copyright 2017 Nokia
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import subprocess
+import time
+
+import mock
+import unittest
+
+from yardstick import exceptions as y_exc
+from yardstick.benchmark.scenarios.networking import vsperf_dpdk
+from yardstick.common import exceptions as y_exc
+from yardstick import ssh
+
+
+class VsperfDPDKTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.ctx = {
+ "host": {
+ "ip": "10.229.47.137",
+ "user": "ubuntu",
+ "password": "ubuntu",
+ },
+ }
+ self.args = {
+ 'task_id': "1234-5678",
+ 'options': {
+ 'testname': 'pvp_tput',
+ 'traffic_type': 'rfc2544_throughput',
+ 'frame_size': '64',
+ 'test_params': 'TRAFFICGEN_DURATION=30;',
+ 'trafficgen_port1': 'ens4',
+ 'trafficgen_port2': 'ens5',
+ 'conf_file': 'vsperf-yardstick.conf',
+ 'setup_script': 'setup_yardstick.sh',
+ 'moongen_helper_file': '~/moongen.py',
+ 'moongen_host_ip': '10.5.201.151',
+ 'moongen_port1_mac': '8c:dc:d4:ae:7c:5c',
+ 'moongen_port2_mac': '8c:dc:d4:ae:7c:5d',
+ 'trafficgen_port1_nw': 'test2',
+ 'trafficgen_port2_nw': 'test3',
+ },
+ 'sla': {
+ 'metrics': 'throughput_rx_fps',
+ 'throughput_rx_fps': 500000,
+ 'action': 'monitor',
+ }
+ }
+ self._mock_ssh = mock.patch.object(ssh, 'SSH')
+ self.mock_ssh = self._mock_ssh.start()
+ self._mock_subprocess_call = mock.patch.object(subprocess, 'call')
+ self.mock_subprocess_call = self._mock_subprocess_call.start()
+ mock_call_obj = mock.Mock()
+ mock_call_obj.execute.return_value = None
+ self.mock_subprocess_call.return_value = mock_call_obj
+
+ self._mock_log_info = mock.patch.object(vsperf_dpdk.LOG, 'info')
+ self.mock_log_info = self._mock_log_info.start()
+
+ self.addCleanup(self._cleanup)
+
+ self.scenario = vsperf_dpdk.VsperfDPDK(self.args, self.ctx)
+ self.scenario.setup()
+
+ def _cleanup(self):
+ self._mock_ssh.stop()
+ self._mock_subprocess_call.stop()
+ self._mock_log_info.stop()
+
+ def test_setup(self):
+ self.assertIsNotNone(self.scenario.client)
+ self.assertTrue(self.scenario.setup_done)
+
+ def test_teardown(self):
+ self.scenario.teardown()
+ self.assertFalse(self.scenario.setup_done)
+
+ def test_is_dpdk_setup_no(self):
+ # is_dpdk_setup() specific mocks
+ self.mock_ssh.from_node().execute.return_value = (0, 'dummy', '')
+
+ self.assertFalse(self.scenario._is_dpdk_setup())
+
+ def test_is_dpdk_setup_yes(self):
+ # is_dpdk_setup() specific mocks
+ self.mock_ssh.from_node().execute.return_value = (0, '', '')
+
+ self.assertTrue(self.scenario._is_dpdk_setup())
+
+ @mock.patch.object(time, 'sleep')
+ def test_dpdk_setup_first(self, *args):
+ # is_dpdk_setup() specific mocks
+ self.mock_ssh.from_node().execute.return_value = (0, 'dummy', '')
+
+ self.scenario.dpdk_setup()
+ self.assertFalse(self.scenario._is_dpdk_setup())
+ self.assertTrue(self.scenario.dpdk_setup_done)
+
+ @mock.patch.object(time, 'sleep')
+ def test_dpdk_setup_next(self, *args):
+ self.mock_ssh.from_node().execute.return_value = (0, '', '')
+
+ self.scenario.dpdk_setup()
+ self.assertTrue(self.scenario._is_dpdk_setup())
+ self.assertTrue(self.scenario.dpdk_setup_done)
+
+ @mock.patch.object(subprocess, 'check_output')
+ def test_run_ok(self, *args):
+ # run() specific mocks
+ self.mock_ssh.from_node().execute.return_value = (
+ 0, 'throughput_rx_fps\r\n14797660.000\r\n', '')
+
+ result = {}
+ self.scenario.run(result)
+ self.assertEqual(result['throughput_rx_fps'], '14797660.000')
+
+ @mock.patch.object(time, 'sleep')
+ @mock.patch.object(subprocess, 'check_output')
+ def test_vsperf_run_sla_fail(self, *args):
+ self.mock_ssh.from_node().execute.return_value = (
+ 0, 'throughput_rx_fps\r\n123456.000\r\n', '')
+
+ with self.assertRaises(y_exc.SLAValidationError) as raised:
+ self.scenario.run({})
+
+ self.assertIn('VSPERF_throughput_rx_fps(123456.000000) < '
+ 'SLA_throughput_rx_fps(500000.000000)',
+ str(raised.exception))
+
+ @mock.patch.object(time, 'sleep')
+ @mock.patch.object(subprocess, 'check_output')
+ def test_vsperf_run_sla_fail_metric_not_collected(self, *args):
+ self.mock_ssh.from_node().execute.return_value = (
+ 0, 'nonexisting_metric\r\n123456.000\r\n', '')
+
+ with self.assertRaises(y_exc.SLAValidationError) as raised:
+ self.scenario.run({})
+
+ self.assertIn('throughput_rx_fps was not collected by VSPERF',
+ str(raised.exception))
+
+ @mock.patch.object(time, 'sleep')
+ @mock.patch.object(subprocess, 'check_output')
+ def test_vsperf_run_sla_fail_metric_not_collected_faulty_csv(self, *args):
+ self.scenario.setup()
+
+ self.mock_ssh.from_node().execute.return_value = (
+ 0, 'faulty output not csv', '')
+
+ with self.assertRaises(y_exc.SLAValidationError) as raised:
+ self.scenario.run({})
+
+ self.assertIn('throughput_rx_fps was not collected by VSPERF',
+ str(raised.exception))
+
+ @mock.patch.object(time, 'sleep')
+ @mock.patch.object(subprocess, 'check_output')
+ def test_vsperf_run_sla_fail_sla_not_defined(self, *args):
+ del self.scenario.scenario_cfg['sla']['throughput_rx_fps']
+ self.scenario.setup()
+
+ self.mock_ssh.from_node().execute.return_value = (
+ 0, 'throughput_rx_fps\r\n14797660.000\r\n', '')
+
+ with self.assertRaises(y_exc.SLAValidationError) as raised:
+ self.scenario.run({})
+
+ self.assertIn('throughput_rx_fps is not defined in SLA',
+ str(raised.exception))
diff --git a/tests/unit/benchmark/scenarios/networking/tg_trex_tpl.yaml b/yardstick/tests/unit/benchmark/scenarios/networking/tg_trex_tpl.yaml
index b1641836b..b1641836b 100644
--- a/tests/unit/benchmark/scenarios/networking/tg_trex_tpl.yaml
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/tg_trex_tpl.yaml
diff --git a/tests/unit/benchmark/scenarios/networking/vpe_vnf_topology.yaml b/yardstick/tests/unit/benchmark/scenarios/networking/vpe_vnf_topology.yaml
index 1ac6c1f89..aaf84bb5e 100644
--- a/tests/unit/benchmark/scenarios/networking/vpe_vnf_topology.yaml
+++ b/yardstick/tests/unit/benchmark/scenarios/networking/vpe_vnf_topology.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -20,31 +20,31 @@ nsd:nsd-catalog:
description: scenario with VPE,L3fwd and VNF
constituent-vnfd:
- member-vnf-index: '1'
- vnfd-id-ref: tg__1
- VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #tg_vpe_upstream.yaml #VPE VNF
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #tg_trex_tpl.yaml #TREX
- member-vnf-index: '2'
- vnfd-id-ref: vnf__1
- VNF model: ../../vnf_descriptors/vpe_vnf.yaml #tg_l3fwd.yaml #tg_trex_tpl.yaml #TREX
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/vpe_vnf.yaml #VPE VNF
vld:
- id: uplink
- name: tg__1 to vnf__1 link 1
+ name: tg__0 to vnf__0 link 1
type: ELAN
vnfd-connection-point-ref:
- member-vnf-index-ref: '1'
vnfd-connection-point-ref: xe0
- vnfd-id-ref: tg__1 #TREX
+ vnfd-id-ref: tg__0
- member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe0
- vnfd-id-ref: vnf__1 #VNF
+ vnfd-id-ref: vnf__0
- id: downlink
- name: vnf__1 to tg__1 link 2
+ name: vnf__0 to tg__0 link 2
type: ELAN
vnfd-connection-point-ref:
- member-vnf-index-ref: '2'
vnfd-connection-point-ref: xe1
- vnfd-id-ref: vnf__1 #L3fwd
+ vnfd-id-ref: vnf__0
- member-vnf-index-ref: '1'
vnfd-connection-point-ref: xe1
- vnfd-id-ref: tg__1 #VPE VNF
+ vnfd-id-ref: tg__0
diff --git a/yardstick/tests/unit/benchmark/scenarios/parser/__init__.py b/yardstick/tests/unit/benchmark/scenarios/parser/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/parser/__init__.py
diff --git a/yardstick/tests/unit/benchmark/scenarios/parser/test_parser.py b/yardstick/tests/unit/benchmark/scenarios/parser/test_parser.py
new file mode 100644
index 000000000..9fd5cce38
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/parser/test_parser.py
@@ -0,0 +1,70 @@
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd and other.
+#
+# 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 subprocess
+
+import unittest
+import mock
+
+from oslo_serialization import jsonutils
+
+from yardstick.benchmark.scenarios.parser import parser
+
+
+class ParserTestCase(unittest.TestCase):
+
+ def setUp(self):
+ args = {
+ 'options': {'yangfile': '/root/yardstick/samples/yang.yaml',
+ 'toscafile': '/root/yardstick/samples/tosca.yaml'},
+ }
+ self.scenario = parser.Parser(scenario_cfg=args, context_cfg={})
+
+ self._mock_popen = mock.patch.object(subprocess, 'Popen')
+ self.mock_popen = self._mock_popen.start()
+ self._mock_call = mock.patch.object(subprocess, 'call')
+ self.mock_call = self._mock_call.start()
+
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_popen.stop()
+ self._mock_call.stop()
+
+ def test_setup_successful(self):
+
+ self.mock_call.return_value = 0
+ self.scenario.setup()
+ self.assertTrue(self.scenario.setup_done)
+
+ def test_run_successful(self):
+
+ result = {}
+
+ self.mock_popen().returncode = 0
+
+ expected_result = jsonutils.loads('{"yangtotosca": "success"}')
+
+ self.scenario.run(result)
+ self.assertEqual(result, expected_result)
+
+ def test_run_fail(self):
+ result = {}
+
+ self.mock_popen().returncode = 1
+ expected_result = jsonutils.loads('{"yangtotosca": "fail"}')
+
+ self.scenario.run(result)
+ self.assertEqual(result, expected_result)
+
+ def test_teardown_successful(self):
+
+ self.mock_call.return_value = 0
+ self.scenario.teardown()
+ self.assertTrue(self.scenario.teardown_done)
diff --git a/yardstick/tests/unit/benchmark/scenarios/storage/__init__.py b/yardstick/tests/unit/benchmark/scenarios/storage/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/storage/__init__.py
diff --git a/tests/unit/benchmark/scenarios/storage/fio_read_sample_output.json b/yardstick/tests/unit/benchmark/scenarios/storage/fio_read_sample_output.json
index e9f642aba..e9f642aba 100644
--- a/tests/unit/benchmark/scenarios/storage/fio_read_sample_output.json
+++ b/yardstick/tests/unit/benchmark/scenarios/storage/fio_read_sample_output.json
diff --git a/tests/unit/benchmark/scenarios/storage/fio_rw_sample_output.json b/yardstick/tests/unit/benchmark/scenarios/storage/fio_rw_sample_output.json
index 4c7501818..4c7501818 100644
--- a/tests/unit/benchmark/scenarios/storage/fio_rw_sample_output.json
+++ b/yardstick/tests/unit/benchmark/scenarios/storage/fio_rw_sample_output.json
diff --git a/tests/unit/benchmark/scenarios/storage/fio_write_sample_output.json b/yardstick/tests/unit/benchmark/scenarios/storage/fio_write_sample_output.json
index 7c760e8bc..7c760e8bc 100644
--- a/tests/unit/benchmark/scenarios/storage/fio_write_sample_output.json
+++ b/yardstick/tests/unit/benchmark/scenarios/storage/fio_write_sample_output.json
diff --git a/tests/unit/benchmark/scenarios/storage/test_bonnie.py b/yardstick/tests/unit/benchmark/scenarios/storage/test_bonnie.py
index b3524e9a7..d78506584 100644
--- a/tests/unit/benchmark/scenarios/storage/test_bonnie.py
+++ b/yardstick/tests/unit/benchmark/scenarios/storage/test_bonnie.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
#
@@ -9,15 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Unittest for yardstick.benchmark.scenarios.storage.bonnie.Bonnie
-
from __future__ import absolute_import
import unittest
import mock
-from yardstick.common import utils
from yardstick.benchmark.scenarios.storage import bonnie
@@ -66,9 +61,3 @@ class BonnieTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, b.run, self.result)
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/storage/test_fio.py b/yardstick/tests/unit/benchmark/scenarios/storage/test_fio.py
index 17594b9f4..6e69ddc6d 100644
--- a/tests/unit/benchmark/scenarios/storage/test_fio.py
+++ b/yardstick/tests/unit/benchmark/scenarios/storage/test_fio.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
@@ -20,6 +18,7 @@ import mock
from oslo_serialization import jsonutils
from yardstick.benchmark.scenarios.storage import fio
+from yardstick.common import exceptions as y_exc
@mock.patch('yardstick.benchmark.scenarios.storage.fio.ssh')
@@ -53,7 +52,7 @@ class FioTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
+ self.assertTrue(p.setup_done)
def test_fio_job_file_successful_setup(self, mock_ssh):
@@ -63,11 +62,27 @@ class FioTestCase(unittest.TestCase):
}
args = {'options': options}
p = fio.Fio(args, self.ctx)
+ mock_ssh.SSH.from_node().execute.return_value = (0, '/dev/vdb', '')
+ p.setup()
+
+ mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
+ self.assertIsNotNone(p.client)
+ self.assertTrue(p.setup_done)
+
+ def test_fio_job_file_no_disk__setup(self, mock_ssh):
+
+ options = {
+ 'job_file': 'job_file.ini',
+ 'directory': '/FIO_Test'
+ }
+ args = {'options': options}
+ p = fio.Fio(args, self.ctx)
+ mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
p.setup()
mock_ssh.SSH.from_node().execute.return_value = (0, '', '')
self.assertIsNotNone(p.client)
- self.assertEqual(p.setup_done, True)
+ self.assertTrue(p.setup_done)
def test_fio_successful_no_sla(self, mock_ssh):
@@ -189,7 +204,7 @@ class FioTestCase(unittest.TestCase):
sample_output = self._read_sample_output(self.sample_output['rw'])
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
+ self.assertRaises(y_exc.SLAValidationError, p.run, result)
def test_fio_successful_bw_iops_sla(self, mock_ssh):
@@ -238,7 +253,7 @@ class FioTestCase(unittest.TestCase):
sample_output = self._read_sample_output(self.sample_output['rw'])
mock_ssh.SSH.from_node().execute.return_value = (0, sample_output, '')
- self.assertRaises(AssertionError, p.run, result)
+ self.assertRaises(y_exc.SLAValidationError, p.run, result)
def test_fio_unsuccessful_script_error(self, mock_ssh):
@@ -263,11 +278,3 @@ class FioTestCase(unittest.TestCase):
with open(output) as f:
sample_output = f.read()
return sample_output
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/benchmark/scenarios/storage/test_storagecapacity.py b/yardstick/tests/unit/benchmark/scenarios/storage/test_storagecapacity.py
index 095674f72..c1c731b0a 100644
--- a/tests/unit/benchmark/scenarios/storage/test_storagecapacity.py
+++ b/yardstick/tests/unit/benchmark/scenarios/storage/test_storagecapacity.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
#
@@ -99,10 +97,3 @@ class StorageCapacityTestCase(unittest.TestCase):
mock_ssh.SSH.from_node().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, c.run, self.result)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/yardstick/tests/unit/benchmark/scenarios/storage/test_storperf.py b/yardstick/tests/unit/benchmark/scenarios/storage/test_storperf.py
new file mode 100644
index 000000000..2ba53cb93
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/storage/test_storperf.py
@@ -0,0 +1,513 @@
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd.
+#
+# 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
+##############################################################################
+
+# Unittest for yardstick.benchmark.scenarios.storage.storperf.StorPerf
+
+from __future__ import absolute_import
+
+import json
+import unittest
+
+import mock
+from oslo_serialization import jsonutils
+import requests
+
+from yardstick.benchmark.scenarios.storage import storperf
+
+
+# pylint: disable=unused-argument
+# disable this for now because I keep forgetting mock patch arg ordering
+def mocked_requests_config_post(*args, **kwargs):
+ class MockResponseConfigPost(object):
+
+ def __init__(self, json_data, status_code):
+ self.content = json_data
+ self.status_code = status_code
+
+ return MockResponseConfigPost(
+ '{"stack_id": "dac27db1-3502-4300-b301-91c64e6a1622",'
+ '"stack_created": false}',
+ 200)
+
+
+def mocked_requests_config_post_fail(*args, **kwargs):
+ class MockResponseConfigPost(object):
+
+ def __init__(self, json_data, status_code):
+ self.content = json_data
+ self.status_code = status_code
+
+ return MockResponseConfigPost(
+ '{"message": "ERROR: Parameter \'public_network\' is invalid: ' +
+ 'Error validating value \'foo\': Unable to find network with ' +
+ 'name or id \'foo\'"}',
+ 400)
+
+
+def mocked_requests_config_get(*args, **kwargs):
+ class MockResponseConfigGet(object):
+
+ def __init__(self, json_data, status_code):
+ self.content = json_data
+ self.status_code = status_code
+
+ return MockResponseConfigGet(
+ '{"stack_id": "dac27db1-3502-4300-b301-91c64e6a1622",'
+ '"stack_created": true}',
+ 200)
+
+
+def mocked_requests_config_get_not_created(*args, **kwargs):
+ class MockResponseConfigGet(object):
+
+ def __init__(self, json_data, status_code):
+ self.content = json_data
+ self.status_code = status_code
+
+ return MockResponseConfigGet(
+ '{"stack_id": "",'
+ '"stack_created": false}',
+ 200)
+
+
+def mocked_requests_config_get_no_payload(*args, **kwargs):
+ class MockResponseConfigGet(object):
+
+ def __init__(self, json_data, status_code):
+ self.content = json_data
+ self.status_code = status_code
+
+ return MockResponseConfigGet(
+ '{}',
+ 200)
+
+
+def mocked_requests_initialize_post_fail(*args, **kwargs):
+ class MockResponseJobPost(object):
+
+ def __init__(self, json_data, status_code):
+ self.content = json_data
+ self.status_code = status_code
+
+ return MockResponseJobPost(
+ '{"message": "ERROR: Stack StorPerfAgentGroup does not exist"}',
+ 400)
+
+
+def mocked_requests_job_get(*args, **kwargs):
+ class MockResponseJobGet(object):
+
+ def __init__(self, json_data, status_code):
+ self.content = json_data
+ self.status_code = status_code
+
+ return MockResponseJobGet(
+ '{"Status": "Completed",\
+ "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}',
+ 200)
+
+
+def mocked_requests_job_post(*args, **kwargs):
+ class MockResponseJobPost(object):
+
+ def __init__(self, json_data, status_code):
+ self.content = json_data
+ self.status_code = status_code
+
+ return MockResponseJobPost('{"job_id": \
+ "d46bfb8c-36f4-4a40-813b-c4b4a437f728"}', 200)
+
+
+def mocked_requests_job_post_fail(*args, **kwargs):
+ class MockResponseJobPost(object):
+
+ def __init__(self, json_data, status_code):
+ self.content = json_data
+ self.status_code = status_code
+
+ return MockResponseJobPost(
+ '{"message": "ERROR: Stack StorPerfAgentGroup does not exist"}',
+ 400)
+
+
+def mocked_requests_job_delete(*args, **kwargs):
+ class MockResponseJobDelete(object):
+
+ def __init__(self, json_data, status_code):
+ self.content = json_data
+ self.status_code = status_code
+
+ return MockResponseJobDelete('{}', 200)
+
+
+def mocked_requests_delete(*args, **kwargs):
+ class MockResponseDelete(object):
+
+ def __init__(self, json_data, status_code):
+ self.json_data = json_data
+ self.status_code = status_code
+
+ return MockResponseDelete('{}', 200)
+
+
+def mocked_requests_delete_failed(*args, **kwargs):
+ class MockResponseDeleteFailed(object):
+
+ def __init__(self, json_data, status_code):
+ self.json_data = json_data
+ self.status_code = status_code
+
+ return MockResponseDeleteFailed('{"message": "Teardown failed"}', 400)
+
+
+class StorPerfTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.ctx = {
+ 'host': {
+ 'ip': '172.16.0.137',
+ 'user': 'cirros',
+ 'key_filename': "mykey.key"
+ }
+ }
+
+ self.result = {}
+
+ @mock.patch.object(requests, 'post')
+ @mock.patch.object(requests, 'get')
+ def test_setup(self, mock_get, mock_post):
+ mock_post.side_effect = [mocked_requests_config_post(),
+ mocked_requests_job_post()]
+ mock_get.side_effect = [mocked_requests_config_get(),
+ mocked_requests_job_get()]
+
+ options = {
+ "agent_count": 8,
+ "public_network": 'ext-net',
+ "volume_size": 10,
+ "block_sizes": 4096,
+ "queue_depths": 4,
+ "workload": "rs",
+ "StorPerf_ip": "192.168.23.2",
+ "query_interval": 0,
+ "timeout": 60
+ }
+
+ args = {
+ "options": options
+ }
+
+ s = storperf.StorPerf(args, self.ctx)
+
+ s.setup()
+
+ self.assertTrue(s.setup_done)
+
+ @mock.patch.object(requests, 'get')
+ def test_query_setup_state_unsuccessful(self, mock_get):
+ mock_get.side_effect = mocked_requests_config_get_not_created
+ args = {
+ "options": {}
+ }
+ s = storperf.StorPerf(args, self.ctx)
+ result = s._query_setup_state()
+ self.assertFalse(result)
+
+ @mock.patch.object(requests, 'get')
+ def test_query_setup_state_no_payload(self, mock_get):
+ mock_get.side_effect = mocked_requests_config_get_no_payload
+ args = {
+ "options": {}
+ }
+ s = storperf.StorPerf(args, self.ctx)
+ result = s._query_setup_state()
+ self.assertFalse(result)
+
+ @mock.patch.object(requests, 'post')
+ @mock.patch.object(requests, 'get')
+ def test_setup_config_post_failed(self, mock_get, mock_post):
+ mock_post.side_effect = mocked_requests_config_post_fail
+
+ args = {
+ "options": {
+ "public_network": "foo"
+ }
+ }
+
+ s = storperf.StorPerf(args, self.ctx)
+
+ self.assertRaises(RuntimeError, s.setup)
+
+ @mock.patch.object(requests, 'get')
+ @mock.patch.object(requests, 'post')
+ def test_run_v1_successful(self, mock_post, mock_get):
+ mock_post.side_effect = mocked_requests_job_post
+ mock_get.side_effect = mocked_requests_job_get
+
+ options = {
+ "agent_count": 8,
+ "public_network": 'ext-net',
+ "volume_size": 10,
+ "block_sizes": 4096,
+ "queue_depths": 4,
+ "workload": "rs",
+ "StorPerf_ip": "192.168.23.2",
+ "query_interval": 0,
+ "timeout": 60
+ }
+ expected_post = {
+ 'metadata': {
+ 'build_tag': 'latest',
+ 'test_case': 'opnfv_yardstick_tc074'
+ },
+ 'deadline': 60,
+ 'block_sizes': 4096,
+ 'queue_depths': 4,
+ "workload": "rs",
+ 'agent_count': 8
+ }
+
+ args = {
+ "options": options
+ }
+
+ s = storperf.StorPerf(args, self.ctx)
+ s.setup_done = True
+
+ sample_output = '{"Status": "Completed",\
+ "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}'
+
+ expected_result = jsonutils.loads(sample_output)
+
+ s.run(self.result)
+
+ mock_post.assert_called_once_with(
+ 'http://192.168.23.2:5000/api/v1.0/jobs',
+ json=jsonutils.loads(json.dumps(expected_post)))
+
+ self.assertEqual(self.result, expected_result)
+
+ @mock.patch.object(requests, 'get')
+ @mock.patch.object(requests, 'post')
+ def test_run_v2_successful(self, mock_post, mock_get):
+ mock_post.side_effect = mocked_requests_job_post
+ mock_get.side_effect = mocked_requests_job_get
+
+ options = {
+ "agent_count": 8,
+ "public_network": 'ext-net',
+ "volume_size": 10,
+ "block_sizes": 4096,
+ "queue_depths": 4,
+ "workloads": {
+ "read_sequential": {
+ "rw": "rs"
+ }
+ },
+ "StorPerf_ip": "192.168.23.2",
+ "query_interval": 0,
+ "timeout": 60
+ }
+ expected_post = {
+ 'metadata': {
+ 'build_tag': 'latest',
+ 'test_case': 'opnfv_yardstick_tc074'
+ },
+ 'deadline': 60,
+ 'block_sizes': 4096,
+ 'queue_depths': 4,
+ 'workloads': {
+ 'read_sequential': {
+ 'rw': 'rs'
+ }
+ },
+ 'agent_count': 8
+ }
+
+ args = {
+ "options": options
+ }
+
+ s = storperf.StorPerf(args, self.ctx)
+ s.setup_done = True
+
+ sample_output = '{"Status": "Completed",\
+ "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}'
+
+ expected_result = jsonutils.loads(sample_output)
+
+ s.run(self.result)
+ mock_post.assert_called_once_with(
+ 'http://192.168.23.2:5000/api/v2.0/jobs',
+ json=expected_post)
+
+ self.assertEqual(self.result, expected_result)
+
+ @mock.patch('time.sleep')
+ @mock.patch.object(requests, 'get')
+ @mock.patch.object(requests, 'post')
+ def test_run_failed(self, mock_post, mock_get, _):
+ mock_post.side_effect = mocked_requests_job_post_fail
+ mock_get.side_effect = mocked_requests_job_get
+
+ options = {
+ "agent_count": 8,
+ "public_network": 'ext-net',
+ "volume_size": 10,
+ "block_sizes": 4096,
+ "queue_depths": 4,
+ "workloads": {
+ "read_sequential": {
+ "rw": "rs"
+ }
+ },
+ "StorPerf_ip": "192.168.23.2",
+ "query_interval": 0,
+ "timeout": 60
+ }
+ expected_post = {
+ 'metadata': {
+ 'build_tag': 'latest',
+ 'test_case': 'opnfv_yardstick_tc074'
+ },
+ 'deadline': 60,
+ 'block_sizes': 4096,
+ 'queue_depths': 4,
+ 'workloads': {
+ 'read_sequential': {
+ 'rw': 'rs'
+ }
+ },
+ 'agent_count': 8
+ }
+
+ args = {
+ "options": options
+ }
+
+ s = storperf.StorPerf(args, self.ctx)
+ s.setup_done = True
+
+ self.assertRaises(RuntimeError, s.run, self.ctx)
+ mock_post.assert_called_once_with(
+ 'http://192.168.23.2:5000/api/v2.0/jobs',
+ json=expected_post)
+
+ @mock.patch('time.sleep')
+ @mock.patch.object(requests, 'get')
+ @mock.patch.object(requests, 'post')
+ @mock.patch.object(storperf.StorPerf, 'setup')
+ def test_run_calls_setup(self, mock_setup, mock_post, mock_get, _):
+ mock_post.side_effect = mocked_requests_job_post
+ mock_get.side_effect = mocked_requests_job_get
+
+ args = {
+ "options": {
+ 'timeout': 60,
+ }
+ }
+
+ s = storperf.StorPerf(args, self.ctx)
+
+ s.run(self.result)
+
+ mock_setup.assert_called_once()
+
+ @mock.patch('time.sleep')
+ @mock.patch.object(requests, 'get')
+ @mock.patch.object(requests, 'post')
+ def test_initialize_disks(self, mock_post, mock_get, _):
+ mock_post.side_effect = mocked_requests_job_post
+ mock_get.side_effect = mocked_requests_job_get
+
+ args = {
+ "options": {
+ "StorPerf_ip": "192.168.23.2"
+ }
+ }
+
+ s = storperf.StorPerf(args, self.ctx)
+
+ s.initialize_disks()
+
+ mock_post.assert_called_once_with(
+ 'http://192.168.23.2:5000/api/v1.0/initializations',
+ json={})
+
+ @mock.patch('time.sleep')
+ @mock.patch.object(requests, 'get')
+ @mock.patch.object(requests, 'post')
+ def test_initialize_disks_post_failed(self, mock_post, mock_get, _):
+ mock_post.side_effect = mocked_requests_initialize_post_fail
+ mock_get.side_effect = mocked_requests_job_get
+
+ args = {
+ "options": {
+ "StorPerf_ip": "192.168.23.2"
+ }
+ }
+
+ s = storperf.StorPerf(args, self.ctx)
+
+ self.assertRaises(RuntimeError, s.initialize_disks)
+ mock_post.assert_called_once_with(
+ 'http://192.168.23.2:5000/api/v1.0/initializations',
+ json={})
+
+ @mock.patch.object(requests, 'delete')
+ def test_teardown(self, mock_delete):
+ mock_delete.side_effect = mocked_requests_job_delete
+ options = {
+ "agent_count": 8,
+ "public_network": 'ext-net',
+ "volume_size": 10,
+ "block_sizes": 4096,
+ "queue_depths": 4,
+ "workload": "rs",
+ "StorPerf_ip": "192.168.23.2",
+ "query_interval": 10,
+ "timeout": 60
+ }
+
+ args = {
+ "options": options
+ }
+
+ s = storperf.StorPerf(args, self.ctx)
+
+ s.teardown()
+
+ self.assertFalse(s.setup_done)
+ mock_delete.assert_called_once_with(
+ 'http://192.168.23.2:5000/api/v1.0/configurations')
+
+ @mock.patch.object(requests, 'delete')
+ def test_teardown_request_delete_failed(self, mock_delete):
+ mock_delete.side_effect = mocked_requests_delete_failed
+ options = {
+ "agent_count": 8,
+ "public_network": 'ext-net',
+ "volume_size": 10,
+ "block_sizes": 4096,
+ "queue_depths": 4,
+ "workload": "rs",
+ "StorPerf_ip": "192.168.23.2",
+ "query_interval": 10,
+ "timeout": 60
+ }
+
+ args = {
+ "options": options
+ }
+
+ s = storperf.StorPerf(args, self.ctx)
+
+ self.assertRaises(RuntimeError, s.teardown)
+ mock_delete.assert_called_once_with(
+ 'http://192.168.23.2:5000/api/v1.0/configurations')
diff --git a/yardstick/tests/unit/benchmark/scenarios/test_base.py b/yardstick/tests/unit/benchmark/scenarios/test_base.py
new file mode 100644
index 000000000..284a71cc8
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/scenarios/test_base.py
@@ -0,0 +1,135 @@
+# Copyright 2017: Intel Ltd.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import time
+
+import mock
+
+from yardstick.benchmark.scenarios import base
+from yardstick.tests.unit import base as ut_base
+
+
+class _TestScenario(base.Scenario):
+ __scenario_type__ = 'Test Scenario'
+
+ def run(self):
+ pass
+
+
+class ScenarioTestCase(ut_base.BaseUnitTestCase):
+
+ def test_get_scenario_type(self):
+ scenario_type = 'dummy scenario'
+
+ class DummyScenario(base.Scenario):
+ __scenario_type__ = scenario_type
+
+ self.assertEqual(scenario_type, DummyScenario.get_scenario_type())
+
+ def test_get_scenario_type_not_defined(self):
+ class DummyScenario(base.Scenario):
+ pass
+
+ self.assertEqual(str(None), DummyScenario.get_scenario_type())
+
+ def test_get_description(self):
+ docstring = """First line
+ Second line
+ Third line
+ """
+
+ class DummyScenario(base.Scenario):
+ __doc__ = docstring
+
+ self.assertEqual(docstring.splitlines()[0],
+ DummyScenario.get_description())
+
+ def test_get_description_empty(self):
+ class DummyScenario(base.Scenario):
+ pass
+
+ self.assertEqual(str(None), DummyScenario.get_description())
+
+ def test_get_types(self):
+ scenario_names = set(
+ scenario.__scenario_type__ for scenario in
+ base.Scenario.get_types() if hasattr(scenario,
+ '__scenario_type__'))
+ existing_scenario_class_names = {
+ 'Iperf3', 'CACHEstat', 'SpecCPU2006', 'Dummy', 'NSPerf', 'Parser'}
+ self.assertTrue(existing_scenario_class_names.issubset(scenario_names))
+
+ def test_get_cls_existing_scenario(self):
+ scenario_name = 'NSPerf'
+ scenario = base.Scenario.get_cls(scenario_name)
+ self.assertEqual(scenario_name, scenario.__scenario_type__)
+
+ def test_get_cls_non_existing_scenario(self):
+ wrong_scenario_name = 'Non-existing-scenario'
+ with self.assertRaises(RuntimeError) as exc:
+ base.Scenario.get_cls(wrong_scenario_name)
+ self.assertEqual('No such scenario type %s' % wrong_scenario_name,
+ str(exc.exception))
+
+ def test_get_existing_scenario(self):
+ scenario_name = 'NSPerf'
+ scenario_module = ('yardstick.benchmark.scenarios.networking.'
+ 'vnf_generic.NetworkServiceTestCase')
+ self.assertEqual(scenario_module, base.Scenario.get(scenario_name))
+
+ def test_get_non_existing_scenario(self):
+ wrong_scenario_name = 'Non-existing-scenario'
+ with self.assertRaises(RuntimeError) as exc:
+ base.Scenario.get(wrong_scenario_name)
+ self.assertEqual('No such scenario type %s' % wrong_scenario_name,
+ str(exc.exception))
+
+ def test_scenario_abstract_class(self):
+ # pylint: disable=abstract-class-instantiated
+ with self.assertRaises(TypeError):
+ base.Scenario()
+
+ @mock.patch.object(time, 'sleep')
+ def test_pre_run_wait_time(self, mock_sleep):
+ """Ensure default behaviour (backwards compatibility): no wait time"""
+ test_scenario = _TestScenario()
+ test_scenario.pre_run_wait_time(mock.ANY)
+ mock_sleep.assert_not_called()
+
+ @mock.patch.object(time, 'sleep')
+ def test_post_run_wait_time(self, mock_sleep):
+ """Ensure default behaviour (backwards compatibility): wait time"""
+ test_scenario = _TestScenario()
+ test_scenario.post_run_wait_time(100)
+ mock_sleep.assert_called_once_with(100)
+
+
+class IterScenarioClassesTestCase(ut_base.BaseUnitTestCase):
+
+ def test_no_scenario_type_defined(self):
+ some_existing_scenario_class_names = [
+ 'Iperf3', 'CACHEstat', 'SpecCPU2006', 'Dummy', 'NSPerf', 'Parser']
+ scenario_types = [scenario.__scenario_type__ for scenario
+ in base._iter_scenario_classes()]
+ for class_name in some_existing_scenario_class_names:
+ self.assertIn(class_name, scenario_types)
+
+ def test_scenario_type_defined(self):
+ some_existing_scenario_class_names = [
+ 'Iperf3', 'CACHEstat', 'SpecCPU2006', 'Dummy', 'NSPerf', 'Parser']
+ for class_name in some_existing_scenario_class_names:
+ scenario_class = next(base._iter_scenario_classes(
+ scenario_type=class_name))
+ self.assertEqual(class_name, scenario_class.__scenario_type__)
diff --git a/yardstick/tests/unit/common/__init__.py b/yardstick/tests/unit/common/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/common/__init__.py
diff --git a/yardstick/tests/unit/common/banned_modules/__init__.py b/yardstick/tests/unit/common/banned_modules/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/common/banned_modules/__init__.py
diff --git a/yardstick/tests/unit/common/banned_modules/banned_module.py b/yardstick/tests/unit/common/banned_modules/banned_module.py
new file mode 100644
index 000000000..f57f939d2
--- /dev/null
+++ b/yardstick/tests/unit/common/banned_modules/banned_module.py
@@ -0,0 +1,17 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class BannedClass(object):
+ pass
diff --git a/yardstick/tests/unit/common/banned_modules/importing_module.py b/yardstick/tests/unit/common/banned_modules/importing_module.py
new file mode 100644
index 000000000..fc2542f0c
--- /dev/null
+++ b/yardstick/tests/unit/common/banned_modules/importing_module.py
@@ -0,0 +1,21 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from yardstick.common import import_tools
+from yardstick.tests.unit.common.banned_modules import banned_module
+
+
+@import_tools.decorator_banned_modules
+class ImportingClass(banned_module.BannedClass):
+ pass
diff --git a/tests/unit/common/config_sample.yaml b/yardstick/tests/unit/common/config_sample.yaml
index 09218cc79..09218cc79 100644
--- a/tests/unit/common/config_sample.yaml
+++ b/yardstick/tests/unit/common/config_sample.yaml
diff --git a/yardstick/tests/unit/common/messaging/__init__.py b/yardstick/tests/unit/common/messaging/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/common/messaging/__init__.py
diff --git a/yardstick/tests/unit/common/messaging/test_consumer.py b/yardstick/tests/unit/common/messaging/test_consumer.py
new file mode 100644
index 000000000..612dcaecd
--- /dev/null
+++ b/yardstick/tests/unit/common/messaging/test_consumer.py
@@ -0,0 +1,54 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+from oslo_config import cfg
+import oslo_messaging
+
+from yardstick.common import messaging
+from yardstick.common.messaging import consumer
+from yardstick.tests.unit import base as ut_base
+
+
+class TestEndPoint(object):
+ def action_1(self):
+ pass
+
+
+class _MessagingConsumer(consumer.MessagingConsumer):
+ pass
+
+
+class MessagingConsumerTestCase(ut_base.BaseUnitTestCase):
+
+ def test__init(self):
+ with mock.patch.object(oslo_messaging, 'get_rpc_server') as \
+ mock_get_rpc_server, \
+ mock.patch.object(oslo_messaging, 'get_rpc_transport') as \
+ mock_get_rpc_transport, \
+ mock.patch.object(oslo_messaging, 'Target') as \
+ mock_Target:
+ mock_get_rpc_transport.return_value = 'test_rpc_transport'
+ mock_Target.return_value = 'test_Target'
+
+ _MessagingConsumer('test_topic', 'test_pid', [TestEndPoint],
+ fanout=True)
+ mock_get_rpc_transport.assert_called_once_with(
+ cfg.CONF, url=messaging.TRANSPORT_URL)
+ mock_Target.assert_called_once_with(
+ topic='test_topic', fanout=True, server=messaging.SERVER)
+ mock_get_rpc_server.assert_called_once_with(
+ 'test_rpc_transport', 'test_Target', [TestEndPoint],
+ executor=messaging.RPC_SERVER_EXECUTOR,
+ access_policy=oslo_messaging.DefaultRPCAccessPolicy)
diff --git a/yardstick/tests/unit/common/messaging/test_payloads.py b/yardstick/tests/unit/common/messaging/test_payloads.py
new file mode 100644
index 000000000..37b1f1926
--- /dev/null
+++ b/yardstick/tests/unit/common/messaging/test_payloads.py
@@ -0,0 +1,82 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from yardstick.common import exceptions
+from yardstick.common.messaging import payloads
+from yardstick.tests.unit import base as ut_base
+
+
+class _DummyPayload(payloads.Payload):
+ REQUIRED_FIELDS = {'version', 'key1', 'key2'}
+
+
+class PayloadTestCase(ut_base.BaseUnitTestCase):
+
+ def test__init(self):
+ payload = _DummyPayload(version=1, key1='value1', key2='value2')
+ self.assertEqual(1, payload.version)
+ self.assertEqual('value1', payload.key1)
+ self.assertEqual('value2', payload.key2)
+ self.assertEqual(3, len(payload._fields))
+
+ def test__init_missing_required_fields(self):
+ with self.assertRaises(exceptions.PayloadMissingAttributes):
+ _DummyPayload(key1='value1', key2='value2')
+
+ def test_obj_to_dict(self):
+ payload = _DummyPayload(version=1, key1='value1', key2='value2')
+ payload_dict = payload.obj_to_dict()
+ self.assertEqual({'version': 1, 'key1': 'value1', 'key2': 'value2'},
+ payload_dict)
+
+ def test_dict_to_obj(self):
+ _dict = {'version': 2, 'key1': 'value100', 'key2': 'value200'}
+ payload = _DummyPayload.dict_to_obj(_dict)
+ self.assertEqual(set(_dict.keys()), payload._fields)
+
+
+class TrafficGeneratorPayloadTestCase(ut_base.BaseUnitTestCase):
+
+ def test_init(self):
+ tg_payload = payloads.TrafficGeneratorPayload(
+ version=1, iteration=10, kpi={'key1': 'value1'})
+ self.assertEqual(1, tg_payload.version)
+ self.assertEqual(10, tg_payload.iteration)
+ self.assertEqual({'key1': 'value1'}, tg_payload.kpi)
+ self.assertEqual(3, len(tg_payload._fields))
+
+ def test__init_missing_required_fields(self):
+ with self.assertRaises(exceptions.PayloadMissingAttributes):
+ payloads.TrafficGeneratorPayload(version=1, iteration=10)
+ with self.assertRaises(exceptions.PayloadMissingAttributes):
+ payloads.TrafficGeneratorPayload(iteration=10, kpi={})
+ with self.assertRaises(exceptions.PayloadMissingAttributes):
+ payloads.TrafficGeneratorPayload(iteration=10)
+
+
+class RunnerPayloadTestCase(ut_base.BaseUnitTestCase):
+
+ def test_init(self):
+ runner_payload = payloads.RunnerPayload(version=5,
+ data={'key1': 'value1'})
+ self.assertEqual(5, runner_payload.version)
+ self.assertEqual({'key1': 'value1'}, runner_payload.data)
+
+ def test__init_missing_required_fields(self):
+ with self.assertRaises(exceptions.PayloadMissingAttributes):
+ payloads.RunnerPayload(version=1)
+ with self.assertRaises(exceptions.PayloadMissingAttributes):
+ payloads.RunnerPayload(data=None)
+ with self.assertRaises(exceptions.PayloadMissingAttributes):
+ payloads.RunnerPayload()
diff --git a/yardstick/tests/unit/common/messaging/test_producer.py b/yardstick/tests/unit/common/messaging/test_producer.py
new file mode 100644
index 000000000..22286e5c3
--- /dev/null
+++ b/yardstick/tests/unit/common/messaging/test_producer.py
@@ -0,0 +1,53 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+from oslo_config import cfg
+import oslo_messaging
+
+from yardstick.common import messaging
+from yardstick.common.messaging import producer
+from yardstick.tests.unit import base as ut_base
+
+
+class _MessagingProducer(producer.MessagingProducer):
+ pass
+
+
+class MessagingProducerTestCase(ut_base.BaseUnitTestCase):
+
+ def test__init(self):
+ with mock.patch.object(oslo_messaging, 'RPCClient') as \
+ mock_RPCClient, \
+ mock.patch.object(oslo_messaging, 'get_rpc_transport') as \
+ mock_get_rpc_transport, \
+ mock.patch.object(oslo_messaging, 'Target') as \
+ mock_Target:
+ mock_get_rpc_transport.return_value = 'test_rpc_transport'
+ mock_Target.return_value = 'test_Target'
+
+ _MessagingProducer('test_topic', 'test_pid', fanout=True)
+ mock_get_rpc_transport.assert_called_once_with(
+ cfg.CONF, url=messaging.TRANSPORT_URL)
+ mock_Target.assert_called_once_with(
+ topic='test_topic', fanout=True, server=messaging.SERVER)
+ mock_RPCClient.assert_called_once_with('test_rpc_transport',
+ 'test_Target')
+
+ def test_id(self):
+ with mock.patch.object(oslo_messaging, 'RPCClient'), \
+ mock.patch.object(oslo_messaging, 'get_rpc_transport'), \
+ mock.patch.object(oslo_messaging, 'Target'):
+ msg_producer = _MessagingProducer('topic', 'id_to_check')
+ self.assertEqual('id_to_check', msg_producer.id)
diff --git a/tests/unit/common/test_ansible_common.py b/yardstick/tests/unit/common/test_ansible_common.py
index 1ef8eee5f..bf82f6288 100644
--- a/tests/unit/common/test_ansible_common.py
+++ b/yardstick/tests/unit/common/test_ansible_common.py
@@ -12,27 +12,23 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-
-from __future__ import absolute_import
-
-import os
+import collections
+import shutil
+import subprocess
import tempfile
-from collections import defaultdict
import mock
-import unittest
-
-from six.moves.configparser import ConfigParser
-from six.moves import StringIO
+from six import moves
+from six.moves import configparser
from yardstick.common import ansible_common
+from yardstick.tests.unit import base as ut_base
-PREFIX = 'yardstick.common.ansible_common'
+class OverwriteDictTestCase(ut_base.BaseUnitTestCase):
-class OverwriteDictTestCase(unittest.TestCase):
def test_overwrite_dict_cfg(self):
- c = ConfigParser(allow_no_value=True)
+ c = configparser.ConfigParser(allow_no_value=True)
d = {
"section_a": "empty_value",
"section_b": {"key_c": "Val_d", "key_d": "VAL_D"},
@@ -42,86 +38,78 @@ class OverwriteDictTestCase(unittest.TestCase):
# Python3 and Python2 convert empty values into None or ''
# we don't really care but we need to compare correctly for unittest
self.assertTrue(c.has_option("section_a", "empty_value"))
- self.assertEqual(sorted(c.items("section_b")), [('key_c', 'Val_d'), ('key_d', 'VAL_D')])
+ self.assertEqual(sorted(c.items("section_b")),
+ [('key_c', 'Val_d'), ('key_d', 'VAL_D')])
self.assertTrue(c.has_option("section_c", "key_c"))
self.assertTrue(c.has_option("section_c", "key_d"))
-class FilenameGeneratorTestCase(unittest.TestCase):
- @mock.patch('{}.NamedTemporaryFile'.format(PREFIX))
- def test__handle_existing_file(self, mock_tmp):
- ansible_common.FileNameGenerator._handle_existing_file("/dev/null")
+class FilenameGeneratorTestCase(ut_base.BaseUnitTestCase):
+
+ @mock.patch.object(tempfile, 'NamedTemporaryFile')
+ def test__handle_existing_file(self, _):
+ ansible_common.FileNameGenerator._handle_existing_file('/dev/null')
def test_get_generator_from_file(self):
- ansible_common.FileNameGenerator.get_generator_from_filename("/dev/null", "", "", "")
+ ansible_common.FileNameGenerator.get_generator_from_filename(
+ '/dev/null', '', '', '')
def test_get_generator_from_file_middle(self):
- ansible_common.FileNameGenerator.get_generator_from_filename("/dev/null", "", "",
- "null")
+ ansible_common.FileNameGenerator.get_generator_from_filename(
+ '/dev/null', '', '', 'null')
def test_get_generator_from_file_prefix(self):
- ansible_common.FileNameGenerator.get_generator_from_filename("/dev/null", "", "null",
- "middle")
+ ansible_common.FileNameGenerator.get_generator_from_filename(
+ '/dev/null', '', 'null', 'middle')
-class AnsibleNodeTestCase(unittest.TestCase):
- def test_ansible_node(self):
- ansible_common.AnsibleNode()
+class AnsibleNodeTestCase(ut_base.BaseUnitTestCase):
def test_ansible_node_len(self):
- a = ansible_common.AnsibleNode()
- len(a)
+ self.assertEqual(0, len(ansible_common.AnsibleNode()))
def test_ansible_node_repr(self):
- a = ansible_common.AnsibleNode()
- repr(a)
+ self.assertEqual('AnsibleNode<{}>', repr(ansible_common.AnsibleNode()))
def test_ansible_node_iter(self):
- a = ansible_common.AnsibleNode()
- for _ in a:
- pass
+ node = ansible_common.AnsibleNode(data={'a': 1, 'b': 2, 'c': 3})
+ for key in node:
+ self.assertIn(key, ('a', 'b', 'c'))
def test_is_role(self):
- a = ansible_common.AnsibleNode()
- self.assertFalse(a.is_role("", default="foo"))
+ node = ansible_common.AnsibleNode()
+ self.assertFalse(node.is_role('', default='foo'))
def test_ansible_node_get_tuple(self):
- a = ansible_common.AnsibleNode({"name": "name"})
- self.assertEqual(a.get_tuple(), ('name', a))
+ node = ansible_common.AnsibleNode({'name': 'name'})
+ self.assertEqual(node.get_tuple(), ('name', node))
def test_gen_inventory_line(self):
- a = ansible_common.AnsibleNode(defaultdict(str))
+ a = ansible_common.AnsibleNode(collections.defaultdict(str))
self.assertEqual(a.gen_inventory_line(), "")
def test_ansible_node_delitem(self):
- a = ansible_common.AnsibleNode({"name": "name"})
- del a['name']
+ node = ansible_common.AnsibleNode({'name': 'name'})
+ self.assertEqual(1, len(node))
+ del node['name']
+ self.assertEqual(0, len(node))
def test_ansible_node_getattr(self):
- a = ansible_common.AnsibleNode({"name": "name"})
- self.assertEqual(getattr(a, "nosuch", None), None)
+ node = ansible_common.AnsibleNode({'name': 'name'})
+ self.assertIsNone(getattr(node, 'nosuch', None))
-class AnsibleNodeDictTestCase(unittest.TestCase):
- def test_ansible_node_dict(self):
- n = ansible_common.AnsibleNode
- ansible_common.AnsibleNodeDict(n, {})
+class AnsibleNodeDictTestCase(ut_base.BaseUnitTestCase):
def test_ansible_node_dict_len(self):
n = ansible_common.AnsibleNode
a = ansible_common.AnsibleNodeDict(n, {})
- len(a)
+ self.assertEqual(0, len(a))
def test_ansible_node_dict_repr(self):
n = ansible_common.AnsibleNode
a = ansible_common.AnsibleNodeDict(n, {})
- repr(a)
-
- def test_ansible_node_dict_iter(self):
- n = ansible_common.AnsibleNode
- a = ansible_common.AnsibleNodeDict(n, {})
- for _ in a:
- pass
+ self.assertEqual('{}', repr(a))
def test_ansible_node_dict_get(self):
n = ansible_common.AnsibleNode
@@ -143,12 +131,15 @@ class AnsibleNodeDictTestCase(unittest.TestCase):
["name ansible_ssh_pass=PASS ansible_user=user"])
-class AnsibleCommonTestCase(unittest.TestCase):
- def test_get_timeouts(self):
- self.assertAlmostEquals(ansible_common.AnsibleCommon.get_timeout(-100), 1200.0)
+class AnsibleCommonTestCase(ut_base.BaseUnitTestCase):
+
+ @staticmethod
+ def _delete_tmpdir(dir):
+ shutil.rmtree(dir)
- def test__init__(self):
- ansible_common.AnsibleCommon({})
+ def test_get_timeouts(self):
+ self.assertAlmostEqual(
+ ansible_common.AnsibleCommon.get_timeout(-100), 1200.0)
def test_reset(self):
a = ansible_common.AnsibleCommon({})
@@ -183,66 +174,68 @@ class AnsibleCommonTestCase(unittest.TestCase):
a.deploy_dir = "d"
self.assertEqual(a.deploy_dir, "d")
- @mock.patch('{}.open'.format(PREFIX))
- def test__gen_ansible_playbook_file_list(self, mock_open):
+ @mock.patch.object(moves.builtins, 'open')
+ def test__gen_ansible_playbook_file_list(self, *args):
d = tempfile.mkdtemp()
- try:
- a = ansible_common.AnsibleCommon({})
- a._gen_ansible_playbook_file(["a"], d)
- finally:
- os.rmdir(d)
-
- @mock.patch('{}.NamedTemporaryFile'.format(PREFIX))
- @mock.patch('{}.open'.format(PREFIX))
- def test__gen_ansible_inventory_file(self, mock_open, mock_tmp):
+ self.addCleanup(self._delete_tmpdir, d)
+ a = ansible_common.AnsibleCommon({})
+ a._gen_ansible_playbook_file(["a"], d)
+
+ @mock.patch.object(tempfile, 'NamedTemporaryFile')
+ @mock.patch.object(moves.builtins, 'open')
+ def test__gen_ansible_inventory_file(self, *args):
nodes = [{
"name": "name", "user": "user", "password": "PASS",
"role": "role",
}]
d = tempfile.mkdtemp()
- try:
- a = ansible_common.AnsibleCommon(nodes)
- a.gen_inventory_ini_dict()
- inv_context = a._gen_ansible_inventory_file(d)
- with inv_context:
- c = StringIO()
- inv_context.write_func(c)
- self.assertIn("ansible_ssh_pass=PASS", c.getvalue())
- finally:
- os.rmdir(d)
-
- @mock.patch('{}.NamedTemporaryFile'.format(PREFIX))
- @mock.patch('{}.open'.format(PREFIX))
- def test__gen_ansible_playbook_file_list_multiple(self, mock_open, mock_tmp):
+ self.addCleanup(self._delete_tmpdir, d)
+ a = ansible_common.AnsibleCommon(nodes)
+ a.gen_inventory_ini_dict()
+ inv_context = a._gen_ansible_inventory_file(d)
+ with inv_context:
+ c = moves.StringIO()
+ inv_context.write_func(c)
+ self.assertIn("ansible_ssh_pass=PASS", c.getvalue())
+
+ @mock.patch.object(tempfile, 'NamedTemporaryFile')
+ @mock.patch.object(moves.builtins, 'open')
+ def test__gen_ansible_playbook_file_list_multiple(self, *args):
d = tempfile.mkdtemp()
- try:
- a = ansible_common.AnsibleCommon({})
- a._gen_ansible_playbook_file(["a", "b"], d)
- finally:
- os.rmdir(d)
-
- @mock.patch('{}.NamedTemporaryFile'.format(PREFIX))
- @mock.patch('{}.Popen'.format(PREFIX))
- @mock.patch('{}.open'.format(PREFIX))
- def test_do_install_tmp_dir(self, mock_open, mock_popen, mock_tmp):
+ self.addCleanup(self._delete_tmpdir, d)
+ a = ansible_common.AnsibleCommon({})
+ a._gen_ansible_playbook_file(["a", "b"], d)
+
+ @mock.patch.object(tempfile, 'NamedTemporaryFile')
+ @mock.patch.object(subprocess, 'Popen')
+ @mock.patch.object(moves.builtins, 'open')
+ def test_do_install_tmp_dir(self, _, mock_popen, *args):
mock_popen.return_value.communicate.return_value = "", ""
mock_popen.return_value.wait.return_value = 0
d = tempfile.mkdtemp()
- try:
- a = ansible_common.AnsibleCommon({})
- a.do_install('', d)
- finally:
- os.rmdir(d)
-
- @mock.patch('{}.NamedTemporaryFile'.format(PREFIX))
- @mock.patch('{}.Popen'.format(PREFIX))
- @mock.patch('{}.open'.format(PREFIX))
- def test_execute_ansible_check(self, mock_open, mock_popen, mock_tmp):
+ self.addCleanup(self._delete_tmpdir, d)
+ a = ansible_common.AnsibleCommon({})
+ a.do_install('', d)
+
+ @mock.patch.object(tempfile, 'NamedTemporaryFile')
+ @mock.patch.object(moves.builtins, 'open')
+ @mock.patch.object(subprocess, 'Popen')
+ def test_execute_ansible_check(self, mock_popen, *args):
mock_popen.return_value.communicate.return_value = "", ""
mock_popen.return_value.wait.return_value = 0
d = tempfile.mkdtemp()
- try:
- a = ansible_common.AnsibleCommon({})
- a.execute_ansible('', d, ansible_check=True, verbose=True)
- finally:
- os.rmdir(d)
+ self.addCleanup(self._delete_tmpdir, d)
+ a = ansible_common.AnsibleCommon({})
+ a.execute_ansible('', d, ansible_check=True, verbose=True)
+
+ def test_get_sut_info(self):
+ d = tempfile.mkdtemp()
+ a = ansible_common.AnsibleCommon({})
+ self.addCleanup(self._delete_tmpdir, d)
+ with mock.patch.object(a, '_exec_get_sut_info_cmd'):
+ a.get_sut_info(d)
+
+ def test_get_sut_info_not_exist(self):
+ a = ansible_common.AnsibleCommon({})
+ with self.assertRaises(OSError):
+ a.get_sut_info('/hello/world')
diff --git a/yardstick/tests/unit/common/test_exceptions.py b/yardstick/tests/unit/common/test_exceptions.py
new file mode 100644
index 000000000..884015536
--- /dev/null
+++ b/yardstick/tests/unit/common/test_exceptions.py
@@ -0,0 +1,28 @@
+# Copyright 2018 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from yardstick.common import exceptions
+from yardstick.tests.unit import base as ut_base
+
+
+class ErrorClassTestCase(ut_base.BaseUnitTestCase):
+
+ def test_init(self):
+ with self.assertRaises(RuntimeError):
+ exceptions.ErrorClass()
+
+ def test_getattr(self):
+ error_instance = exceptions.ErrorClass(test='')
+ with self.assertRaises(AttributeError):
+ error_instance.get_name()
diff --git a/tests/unit/common/test_httpClient.py b/yardstick/tests/unit/common/test_httpClient.py
index eb09d1a52..12a8be3a0 100644
--- a/tests/unit/common/test_httpClient.py
+++ b/yardstick/tests/unit/common/test_httpClient.py
@@ -33,11 +33,3 @@ class HttpClientTestCase(unittest.TestCase):
url = 'http://localhost:5000/hello'
httpClient.HttpClient().get(url)
mock_requests.get.assert_called_with(url)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/yardstick/tests/unit/common/test_import_tools.py b/yardstick/tests/unit/common/test_import_tools.py
new file mode 100644
index 000000000..c8fe5fde0
--- /dev/null
+++ b/yardstick/tests/unit/common/test_import_tools.py
@@ -0,0 +1,46 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+
+from yardstick.common import exceptions as y_exc
+from yardstick.common import import_tools
+
+
+@import_tools.decorator_banned_modules
+class DummyClass(object):
+ pass
+
+
+class DecoratorBannedModule(unittest.TestCase):
+
+ MODULE = 'yardstick.tests.unit.common.banned_modules.banned_module'
+
+ def test_passt(self):
+ self.assertIsNotNone(DummyClass())
+
+ def test_banned_module(self):
+ import_tools.BANNED_MODULES[self.MODULE] = 'Banned module!!'
+ from yardstick.tests.unit.common.banned_modules import importing_module
+ self.addCleanup(self._remove_module)
+
+ with self.assertRaises(y_exc.YardstickBannedModuleImported) as exc:
+ importing_module.ImportingClass()
+
+ msg = ('Module "%s" cannnot be imported. Reason: "Banned module!!"'
+ % self.MODULE)
+ self.assertEqual(msg, str(exc.exception))
+
+ def _remove_module(self):
+ del import_tools.BANNED_MODULES[self.MODULE]
diff --git a/yardstick/tests/unit/common/test_kubernetes_utils.py b/yardstick/tests/unit/common/test_kubernetes_utils.py
new file mode 100644
index 000000000..ba6b5f388
--- /dev/null
+++ b/yardstick/tests/unit/common/test_kubernetes_utils.py
@@ -0,0 +1,447 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+from kubernetes import client
+from kubernetes.client import rest
+from kubernetes import config
+
+from yardstick.common import constants
+from yardstick.common import exceptions
+from yardstick.common import kubernetes_utils
+from yardstick.tests.unit import base
+
+
+class GetExtensionsV1betaApiTestCase(base.BaseUnitTestCase):
+
+ @mock.patch.object(client, 'ApiextensionsV1beta1Api', return_value='api')
+ @mock.patch.object(config, 'load_kube_config')
+ def test_execute_correct(self, mock_load_kube_config, mock_api):
+ self.assertEqual('api', kubernetes_utils.get_extensions_v1beta_api())
+ mock_load_kube_config.assert_called_once_with(
+ config_file=constants.K8S_CONF_FILE)
+ mock_api.assert_called_once()
+
+ @mock.patch.object(config, 'load_kube_config')
+ def test_execute_exception(self, mock_load_kube_config):
+ mock_load_kube_config.side_effect = IOError
+ with self.assertRaises(exceptions.KubernetesConfigFileNotFound):
+ kubernetes_utils.get_extensions_v1beta_api()
+
+
+class GetCustomObjectsApiTestCase(base.BaseUnitTestCase):
+
+ @mock.patch.object(client, 'CustomObjectsApi', return_value='api')
+ @mock.patch.object(config, 'load_kube_config')
+ def test_execute_correct(self, mock_load_kube_config, mock_api):
+ self.assertEqual('api', kubernetes_utils.get_custom_objects_api())
+ mock_load_kube_config.assert_called_once_with(
+ config_file=constants.K8S_CONF_FILE)
+ mock_api.assert_called_once()
+
+ @mock.patch.object(config, 'load_kube_config')
+ def test_execute_exception(self, mock_load_kube_config):
+ mock_load_kube_config.side_effect = IOError
+ with self.assertRaises(exceptions.KubernetesConfigFileNotFound):
+ kubernetes_utils.get_custom_objects_api()
+
+
+class CreateCustomResourceDefinitionTestCase(base.BaseUnitTestCase):
+
+ @mock.patch.object(client, 'V1beta1CustomResourceDefinition',
+ return_value='crd_obj')
+ @mock.patch.object(kubernetes_utils, 'get_extensions_v1beta_api')
+ def test_execute_correct(self, mock_get_api, mock_crd):
+ mock_create_crd = mock.Mock()
+ mock_get_api.return_value = mock_create_crd
+ body = {'spec': 'fake_spec', 'metadata': 'fake_metadata'}
+
+ kubernetes_utils.create_custom_resource_definition(body)
+ mock_get_api.assert_called_once()
+ mock_crd.assert_called_once_with(spec='fake_spec',
+ metadata='fake_metadata')
+ mock_create_crd.create_custom_resource_definition.\
+ assert_called_once_with('crd_obj')
+
+ @mock.patch.object(client, 'V1beta1CustomResourceDefinition',
+ return_value='crd_obj')
+ @mock.patch.object(kubernetes_utils, 'get_extensions_v1beta_api')
+ def test_execute_exception(self, mock_get_api, mock_crd):
+ mock_create_crd = mock.Mock()
+ mock_create_crd.create_custom_resource_definition.\
+ side_effect = rest.ApiException
+ mock_get_api.return_value = mock_create_crd
+ body = {'spec': 'fake_spec', 'metadata': 'fake_metadata'}
+
+ with self.assertRaises(exceptions.KubernetesApiException):
+ kubernetes_utils.create_custom_resource_definition(body)
+ mock_get_api.assert_called_once()
+ mock_crd.assert_called_once_with(spec='fake_spec',
+ metadata='fake_metadata')
+ mock_create_crd.create_custom_resource_definition.\
+ assert_called_once_with('crd_obj')
+
+
+class DeleteCustomResourceDefinitionTestCase(base.BaseUnitTestCase):
+
+ @mock.patch.object(client, 'V1DeleteOptions', return_value='del_obj')
+ @mock.patch.object(kubernetes_utils, 'get_extensions_v1beta_api')
+ def test_execute_correct(self, mock_get_api, mock_delobj):
+ mock_delete_crd = mock.Mock()
+ mock_get_api.return_value = mock_delete_crd
+
+ kubernetes_utils.delete_custom_resource_definition('name')
+ mock_get_api.assert_called_once()
+ mock_delobj.assert_called_once()
+ mock_delete_crd.delete_custom_resource_definition.\
+ assert_called_once_with('name', 'del_obj')
+
+ @mock.patch.object(client, 'V1DeleteOptions', return_value='del_obj')
+ @mock.patch.object(kubernetes_utils, 'get_extensions_v1beta_api')
+ def test_execute_exception(self, mock_get_api, mock_delobj):
+ mock_delete_crd = mock.Mock()
+ mock_delete_crd.delete_custom_resource_definition.\
+ side_effect = rest.ApiException
+ mock_get_api.return_value = mock_delete_crd
+
+ with self.assertRaises(exceptions.KubernetesApiException):
+ kubernetes_utils.delete_custom_resource_definition('name')
+ mock_delobj.assert_called_once()
+ mock_delete_crd.delete_custom_resource_definition.\
+ assert_called_once_with('name', 'del_obj')
+
+ @mock.patch.object(client, 'V1DeleteOptions', return_value='del_obj')
+ @mock.patch.object(kubernetes_utils, 'get_extensions_v1beta_api')
+ @mock.patch.object(kubernetes_utils, 'LOG')
+ def test_execute_skip_exception(self, mock_log, mock_get_api, mock_delobj):
+ mock_delete_crd = mock.Mock()
+ mock_delete_crd.delete_custom_resource_definition.side_effect = rest.ApiException(
+ status=404)
+
+ mock_get_api.return_value = mock_delete_crd
+ kubernetes_utils.delete_custom_resource_definition('name', skip_codes=[404])
+
+ mock_delobj.assert_called_once()
+ mock_delete_crd.delete_custom_resource_definition.assert_called_once_with(
+ 'name', 'del_obj')
+
+ mock_log.info.assert_called_once()
+
+
+class GetCustomResourceDefinitionTestCase(base.BaseUnitTestCase):
+
+ @mock.patch.object(kubernetes_utils, 'get_extensions_v1beta_api')
+ def test_execute_value(self, mock_get_api):
+ crd_obj = mock.Mock()
+ crd_obj.spec.names.kind = 'some_kind'
+ crd_list = mock.Mock()
+ crd_list.items = [crd_obj]
+ mock_api = mock.Mock()
+ mock_api.list_custom_resource_definition.return_value = crd_list
+ mock_get_api.return_value = mock_api
+ self.assertEqual(
+ crd_obj,
+ kubernetes_utils.get_custom_resource_definition('some_kind'))
+
+ @mock.patch.object(kubernetes_utils, 'get_extensions_v1beta_api')
+ def test_execute_none(self, mock_get_api):
+ crd_obj = mock.Mock()
+ crd_obj.spec.names.kind = 'some_kind'
+ crd_list = mock.Mock()
+ crd_list.items = [crd_obj]
+ mock_api = mock.Mock()
+ mock_api.list_custom_resource_definition.return_value = crd_list
+ mock_get_api.return_value = mock_api
+ self.assertIsNone(
+ kubernetes_utils.get_custom_resource_definition('other_kind'))
+
+ @mock.patch.object(kubernetes_utils, 'get_extensions_v1beta_api')
+ def test_execute_exception(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_api.list_custom_resource_definition.\
+ side_effect = rest.ApiException
+ mock_get_api.return_value = mock_api
+ with self.assertRaises(exceptions.KubernetesApiException):
+ kubernetes_utils.get_custom_resource_definition('kind')
+
+
+class GetNetworkTestCase(base.BaseUnitTestCase):
+ @mock.patch.object(kubernetes_utils, 'get_custom_objects_api')
+ def test_execute_correct(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_get_api.return_value = mock_api
+ group = 'group.com'
+ version = mock.Mock()
+ plural = 'networks'
+ name = 'net_one'
+
+ kubernetes_utils.get_network(
+ constants.SCOPE_CLUSTER, group, version, plural, name)
+ mock_api.get_cluster_custom_object.assert_called_once_with(
+ group, version, plural, name)
+
+ mock_api.reset_mock()
+ kubernetes_utils.get_network(
+ constants.SCOPE_NAMESPACED, group, version, plural, name)
+ mock_api.get_namespaced_custom_object.assert_called_once_with(
+ group, version, 'default', plural, name)
+
+ @mock.patch.object(kubernetes_utils, 'get_custom_objects_api')
+ def test_execute_exception(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_api.get_cluster_custom_object.side_effect = rest.ApiException(404)
+ mock_api.get_namespaced_custom_object.side_effect = rest.ApiException(404)
+ mock_get_api.return_value = mock_api
+ group = 'group.com'
+ version = mock.Mock()
+ plural = 'networks'
+ name = 'net_one'
+
+ network_obj = kubernetes_utils.get_network(
+ constants.SCOPE_CLUSTER, group, version, plural, name)
+ self.assertIsNone(network_obj)
+
+ mock_api.reset_mock()
+ network_obj = kubernetes_utils.get_network(
+ constants.SCOPE_NAMESPACED, group, version, plural, name)
+ self.assertIsNone(network_obj)
+
+
+class CreateNetworkTestCase(base.BaseUnitTestCase):
+ @mock.patch.object(kubernetes_utils, 'get_custom_objects_api')
+ @mock.patch.object(kubernetes_utils, 'get_network')
+ def test_execute_correct(self, mock_get_net, mock_get_api):
+ mock_get_net.return_value = None
+ mock_api = mock.Mock()
+ mock_get_api.return_value = mock_api
+ group = 'group.com'
+ version = mock.Mock()
+ plural = 'networks'
+ body = mock.Mock()
+ name = 'net_one'
+
+ kubernetes_utils.create_network(
+ constants.SCOPE_CLUSTER, group, version, plural, body, name)
+ mock_api.create_cluster_custom_object.assert_called_once_with(
+ group, version, plural, body)
+
+ mock_api.reset_mock()
+ kubernetes_utils.create_network(
+ constants.SCOPE_NAMESPACED, group, version, plural, body, name)
+ mock_api.create_namespaced_custom_object.assert_called_once_with(
+ group, version, 'default', plural, body)
+
+ @mock.patch.object(kubernetes_utils, 'get_custom_objects_api')
+ @mock.patch.object(kubernetes_utils, 'get_network')
+ def test_network_already_created(self, mock_get_net, mock_get_api):
+ mock_get_net.return_value = mock.Mock
+ mock_api = mock.Mock()
+ mock_get_api.return_value = mock_api
+ group = 'group.com'
+ version = mock.Mock()
+ plural = 'networks'
+ body = mock.Mock()
+ name = 'net_one'
+
+ mock_api.reset_mock()
+ kubernetes_utils.create_network(
+ constants.SCOPE_CLUSTER, group, version, plural, body, name)
+ mock_api.create_cluster_custom_object.assert_not_called()
+
+ mock_api.reset_mock()
+ kubernetes_utils.create_network(
+ constants.SCOPE_NAMESPACED, group, version, plural, body, name)
+ mock_api.create_namespaced_custom_object.assert_not_called()
+
+ @mock.patch.object(kubernetes_utils, 'get_custom_objects_api')
+ @mock.patch.object(kubernetes_utils, 'get_network')
+ def test_execute_exception(self, mock_get_net, mock_get_api):
+ mock_get_net.return_value = None
+ mock_api = mock.Mock()
+ mock_api.create_cluster_custom_object.side_effect = rest.ApiException
+ mock_get_api.return_value = mock_api
+ with self.assertRaises(exceptions.KubernetesApiException):
+ kubernetes_utils.create_network(
+ constants.SCOPE_CLUSTER, mock.ANY, mock.ANY, mock.ANY,
+ mock.ANY, mock.ANY)
+
+
+class DeleteNetworkTestCase(base.BaseUnitTestCase):
+ @mock.patch.object(kubernetes_utils, 'get_custom_objects_api')
+ def test_execute_correct(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_get_api.return_value = mock_api
+ group = 'group.com'
+ version = mock.Mock()
+ plural = 'networks'
+ name = 'network'
+
+ kubernetes_utils.delete_network(
+ constants.SCOPE_CLUSTER, group, version, plural, name)
+ mock_api.delete_cluster_custom_object.assert_called_once_with(
+ group, version, plural, name, {})
+
+ mock_api.reset_mock()
+ kubernetes_utils.delete_network(
+ constants.SCOPE_NAMESPACED, group, version, plural, name)
+ mock_api.delete_namespaced_custom_object.assert_called_once_with(
+ group, version, 'default', plural, name, {})
+
+ @mock.patch.object(kubernetes_utils, 'get_custom_objects_api')
+ def test_execute_exception(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_api.delete_cluster_custom_object.side_effect = rest.ApiException
+ mock_get_api.return_value = mock_api
+ with self.assertRaises(exceptions.KubernetesApiException):
+ kubernetes_utils.delete_network(
+ constants.SCOPE_CLUSTER, mock.ANY, mock.ANY, mock.ANY,
+ mock.ANY)
+
+ @mock.patch.object(kubernetes_utils, 'get_custom_objects_api')
+ @mock.patch.object(kubernetes_utils, 'LOG')
+ def test_execute_skip_exception(self, mock_log, mock_get_api):
+ mock_api = mock.Mock()
+ mock_api.delete_cluster_custom_object.side_effect = rest.ApiException(status=404)
+
+ mock_get_api.return_value = mock_api
+ kubernetes_utils.delete_network(
+ constants.SCOPE_CLUSTER, mock.ANY, mock.ANY, mock.ANY,
+ mock.ANY, skip_codes=[404])
+
+ mock_log.info.assert_called_once()
+
+
+class DeletePodTestCase(base.BaseUnitTestCase):
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ def test_execute_correct(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_get_api.return_value = mock_api
+
+ kubernetes_utils.delete_pod("name", body=None)
+ mock_api.delete_namespaced_pod.assert_called_once_with(
+ "name", 'default', None)
+
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ def test_execute_exception(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_api.delete_namespaced_pod.side_effect = rest.ApiException(status=200)
+
+ mock_get_api.return_value = mock_api
+ with self.assertRaises(exceptions.KubernetesApiException):
+ kubernetes_utils.delete_pod(mock.ANY, skip_codes=[404])
+
+ @mock.patch.object(kubernetes_utils, 'LOG')
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ def test_execute_skip_exception(self, mock_get_api, *args):
+ mock_api = mock.Mock()
+ mock_api.delete_namespaced_pod.side_effect = rest.ApiException(status=404)
+
+ mock_get_api.return_value = mock_api
+ kubernetes_utils.delete_pod(mock.ANY, skip_codes=[404])
+
+
+class DeleteServiceTestCase(base.BaseUnitTestCase):
+ @mock.patch.object(client, "V1DeleteOptions")
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ def test_execute_correct(self, mock_get_api, mock_options):
+ mock_api = mock.Mock()
+ mock_get_api.return_value = mock_api
+ mock_options.return_value = None
+ kubernetes_utils.delete_service("name", "default", None)
+ mock_api.delete_namespaced_service.assert_called_once_with(
+ "name", 'default', None)
+
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ def test_execute_exception(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_api.delete_namespaced_service.side_effect = rest.ApiException(status=200)
+
+ mock_get_api.return_value = mock_api
+ with self.assertRaises(exceptions.KubernetesApiException):
+ kubernetes_utils.delete_service(mock.ANY, skip_codes=[404])
+
+ @mock.patch.object(kubernetes_utils, 'LOG')
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ def test_execute_skip_exception(self, mock_get_api, *args):
+ mock_api = mock.Mock()
+ mock_api.delete_namespaced_service.side_effect = rest.ApiException(status=404)
+
+ mock_get_api.return_value = mock_api
+ kubernetes_utils.delete_service(mock.ANY, skip_codes=[404])
+
+
+class DeleteReplicationControllerTestCase(base.BaseUnitTestCase):
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ def test_execute_correct(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_get_api.return_value = mock_api
+ kubernetes_utils.delete_replication_controller(
+ "name", "default", body=None)
+
+ mock_api.delete_namespaced_replication_controller.assert_called_once_with(
+ "name", "default", None)
+
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ def test_execute_exception(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_api.delete_namespaced_replication_controller.side_effect = (
+ rest.ApiException(status=200)
+ )
+
+ mock_get_api.return_value = mock_api
+ with self.assertRaises(exceptions.KubernetesApiException):
+ kubernetes_utils.delete_replication_controller(mock.ANY, skip_codes=[404])
+
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ @mock.patch.object(kubernetes_utils, 'LOG')
+ def test_execute_skip_exception(self, mock_log, mock_get_api):
+ mock_api = mock.Mock()
+ mock_api.delete_namespaced_replication_controller.side_effect = (
+ rest.ApiException(status=404)
+ )
+
+ mock_get_api.return_value = mock_api
+ kubernetes_utils.delete_replication_controller(mock.ANY, skip_codes=[404])
+
+ mock_log.info.assert_called_once()
+
+
+class DeleteConfigMapTestCase(base.BaseUnitTestCase):
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ def test_execute_correct(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_get_api.return_value = mock_api
+ kubernetes_utils.delete_config_map("name", body=None)
+ mock_api.delete_namespaced_config_map.assert_called_once_with(
+ "name", "default", None
+ )
+
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ def test_execute_exception(self, mock_get_api):
+ mock_api = mock.Mock()
+ mock_api.delete_namespaced_config_map.side_effect = rest.ApiException(status=200)
+
+ mock_get_api.return_value = mock_api
+ with self.assertRaises(exceptions.KubernetesApiException):
+ kubernetes_utils.delete_config_map(mock.ANY, skip_codes=[404])
+
+ @mock.patch.object(kubernetes_utils, 'get_core_api')
+ @mock.patch.object(kubernetes_utils, 'LOG')
+ def test_execute_skip_exception(self, mock_log, mock_get_api):
+ mock_api = mock.Mock()
+ mock_api.delete_namespaced_config_map.side_effect = rest.ApiException(status=404)
+
+ mock_get_api.return_value = mock_api
+ kubernetes_utils.delete_config_map(mock.ANY, skip_codes=[404])
+ mock_log.info.assert_called_once()
diff --git a/yardstick/tests/unit/common/test_openstack_utils.py b/yardstick/tests/unit/common/test_openstack_utils.py
new file mode 100644
index 000000000..f6a0bdcc1
--- /dev/null
+++ b/yardstick/tests/unit/common/test_openstack_utils.py
@@ -0,0 +1,730 @@
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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 os
+
+import mock
+from oslo_utils import uuidutils
+import shade
+from shade import exc
+import unittest
+
+from yardstick.common import constants
+from yardstick.common import openstack_utils
+
+
+class GetCredentialsTestCase(unittest.TestCase):
+
+ @mock.patch('yardstick.common.openstack_utils.os')
+ def test_get_credentials(self, _):
+ with mock.patch.dict('os.environ', {'OS_IDENTITY_API_VERSION': '2'},
+ clear=True):
+ openstack_utils.get_credentials()
+
+
+class GetHeatApiVersionTestCase(unittest.TestCase):
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_get_heat_api_version_check_result(self, *args):
+ API = 'HEAT_API_VERSION'
+ expected_result = '2'
+
+ with mock.patch.dict(os.environ, {API: '2'}, clear=True):
+ api_version = openstack_utils.get_heat_api_version()
+ self.assertEqual(api_version, expected_result)
+
+
+class GetShadeClientTestCase(unittest.TestCase):
+
+ @mock.patch.object(shade, 'openstack_cloud', return_value='os_client')
+ def test_get_shade_client(self, mock_openstack_cloud):
+ os_cloud_config = {'param1': True, 'param2': 'value2'}
+ self.assertEqual('os_client',
+ openstack_utils.get_shade_client(**os_cloud_config))
+ os_cloud_config.update(constants.OS_CLOUD_DEFAULT_CONFIG)
+ mock_openstack_cloud.assert_called_once_with(**os_cloud_config)
+
+ mock_openstack_cloud.reset_mock()
+ os_cloud_config = {'verify': True, 'param2': 'value2'}
+ self.assertEqual('os_client',
+ openstack_utils.get_shade_client(**os_cloud_config))
+ mock_openstack_cloud.assert_called_once_with(**os_cloud_config)
+
+ @mock.patch.object(shade, 'openstack_cloud', return_value='os_client')
+ def test_get_shade_client_no_parameters(self, mock_openstack_cloud):
+ self.assertEqual('os_client', openstack_utils.get_shade_client())
+ mock_openstack_cloud.assert_called_once_with(
+ **constants.OS_CLOUD_DEFAULT_CONFIG)
+
+ @mock.patch.object(shade, 'operator_cloud', return_value='os_client')
+ def test_get_shade_operator_client(self, mock_operator_cloud):
+ self.assertEqual('os_client', openstack_utils.get_shade_operator_client())
+ mock_operator_cloud.assert_called_once_with(
+ **constants.OS_CLOUD_DEFAULT_CONFIG)
+
+
+class DeleteNeutronNetTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+
+ def test_delete_neutron_net(self):
+ self.mock_shade_client.delete_network.return_value = True
+ output = openstack_utils.delete_neutron_net(self.mock_shade_client,
+ 'network_name_or_id')
+ self.assertTrue(output)
+
+ def test_delete_neutron_net_fail(self):
+ self.mock_shade_client.delete_network.return_value = False
+ output = openstack_utils.delete_neutron_net(self.mock_shade_client,
+ 'network_name_or_id')
+ self.assertFalse(output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_delete_neutron_net_exception(self, mock_logger):
+ self.mock_shade_client.delete_network.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.delete_neutron_net(self.mock_shade_client,
+ 'network_name_or_id')
+ self.assertFalse(output)
+ mock_logger.error.assert_called_once()
+
+
+class CreateNeutronNetTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.network_name = 'name'
+ self.mock_shade_client.create_network = mock.Mock()
+
+ def test_create_neutron_net(self):
+ _uuid = uuidutils.generate_uuid()
+ self.mock_shade_client.create_network.return_value = {'id': _uuid}
+ output = openstack_utils.create_neutron_net(self.mock_shade_client,
+ self.network_name)
+ self.assertEqual(_uuid, output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_create_neutron_net_exception(self, mock_logger):
+ self.mock_shade_client.create_network.side_effect = (
+ exc.OpenStackCloudException('error message'))
+
+ output = openstack_utils.create_neutron_net(self.mock_shade_client,
+ self.network_name)
+ mock_logger.error.assert_called_once()
+ self.assertIsNone(output)
+
+
+class CreateNeutronSubnetTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.network_name_or_id = 'name_or_id'
+ self.mock_shade_client.create_subnet = mock.Mock()
+
+ def test_create_neutron_subnet(self):
+ _uuid = uuidutils.generate_uuid()
+ self.mock_shade_client.create_subnet.return_value = {'id': _uuid}
+ output = openstack_utils.create_neutron_subnet(
+ self.mock_shade_client, self.network_name_or_id)
+ self.assertEqual(_uuid, output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_create_neutron_subnet_exception(self, mock_logger):
+ self.mock_shade_client.create_subnet.side_effect = (
+ exc.OpenStackCloudException('error message'))
+
+ output = openstack_utils.create_neutron_subnet(
+ self.mock_shade_client, self.network_name_or_id)
+ mock_logger.error.assert_called_once()
+ self.assertIsNone(output)
+
+
+class DeleteNeutronRouterTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.delete_router = mock.Mock()
+
+ def test_delete_neutron_router(self):
+ self.mock_shade_client.delete_router.return_value = True
+ output = openstack_utils.delete_neutron_router(self.mock_shade_client,
+ 'router_id')
+ self.assertTrue(output)
+
+ def test_delete_neutron_router_fail(self):
+ self.mock_shade_client.delete_router.return_value = False
+ output = openstack_utils.delete_neutron_router(self.mock_shade_client,
+ 'router_id')
+ self.assertFalse(output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_delete_neutron_router_exception(self, mock_logger):
+ self.mock_shade_client.delete_router.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.delete_neutron_router(self.mock_shade_client,
+ 'router_id')
+ mock_logger.error.assert_called_once()
+ self.assertFalse(output)
+
+
+class CreateNeutronRouterTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.create_subnet = mock.Mock()
+
+ def test_create_neutron_router(self):
+ _uuid = uuidutils.generate_uuid()
+ self.mock_shade_client.create_router.return_value = {'id': _uuid}
+ output = openstack_utils.create_neutron_router(
+ self.mock_shade_client)
+ self.assertEqual(_uuid, output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_create_neutron_subnet_exception(self, mock_logger):
+ self.mock_shade_client.create_router.side_effect = (
+ exc.OpenStackCloudException('error message'))
+
+ output = openstack_utils.create_neutron_router(
+ self.mock_shade_client)
+ mock_logger.error.assert_called_once()
+ self.assertIsNone(output)
+
+
+class RemoveRouterInterfaceTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.router = 'router'
+ self.mock_shade_client.remove_router_interface = mock.Mock()
+
+ def test_remove_router_interface(self):
+ self.mock_shade_client.remove_router_interface.return_value = True
+ output = openstack_utils.remove_router_interface(
+ self.mock_shade_client, self.router)
+ self.assertTrue(output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_remove_router_interface_exception(self, mock_logger):
+ self.mock_shade_client.remove_router_interface.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.remove_router_interface(
+ self.mock_shade_client, self.router)
+ mock_logger.error.assert_called_once()
+ self.assertFalse(output)
+
+
+class CreateFloatingIpTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.network_name_or_id = 'name'
+ self.mock_shade_client.create_floating_ip = mock.Mock()
+
+ def test_create_floating_ip(self):
+ self.mock_shade_client.create_floating_ip.return_value = \
+ {'floating_ip_address': 'value1', 'id': 'value2'}
+ output = openstack_utils.create_floating_ip(self.mock_shade_client,
+ self.network_name_or_id)
+ self.assertEqual({'fip_addr': 'value1', 'fip_id': 'value2'}, output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_create_floating_ip_exception(self, mock_logger):
+ self.mock_shade_client.create_floating_ip.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.create_floating_ip(
+ self.mock_shade_client, self.network_name_or_id)
+ mock_logger.error.assert_called_once()
+ self.assertIsNone(output)
+
+
+class DeleteFloatingIpTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.floating_ip_id = 'floating_ip_id'
+ self.mock_shade_client.delete_floating_ip = mock.Mock()
+
+ def test_delete_floating_ip(self):
+ self.mock_shade_client.delete_floating_ip.return_value = True
+ output = openstack_utils.delete_floating_ip(self.mock_shade_client,
+ 'floating_ip_id')
+ self.assertTrue(output)
+
+ def test_delete_floating_ip_fail(self):
+ self.mock_shade_client.delete_floating_ip.return_value = False
+ output = openstack_utils.delete_floating_ip(self.mock_shade_client,
+ 'floating_ip_id')
+ self.assertFalse(output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_delete_floating_ip_exception(self, mock_logger):
+ self.mock_shade_client.delete_floating_ip.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.delete_floating_ip(self.mock_shade_client,
+ 'floating_ip_id')
+ mock_logger.error.assert_called_once()
+ self.assertFalse(output)
+
+
+class CreateSecurityGroupRuleTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.secgroup_name_or_id = 'sg_name_id'
+ self.mock_shade_client.create_security_group_rule = mock.Mock()
+ self._mock_log = mock.patch.object(openstack_utils, 'log')
+ self.mock_log = self._mock_log.start()
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_log.stop()
+
+ def test_create_security_group_rule(self):
+ self.mock_shade_client.create_security_group_rule.return_value = (
+ {'security_group_rule'})
+ output = openstack_utils.create_security_group_rule(
+ self.mock_shade_client, self.secgroup_name_or_id)
+ self.assertTrue(output)
+
+ def test_create_security_group_rule_exception(self):
+ self.mock_shade_client.create_security_group_rule.side_effect = (
+ exc.OpenStackCloudException('error message'))
+
+ output = openstack_utils.create_security_group_rule(
+ self.mock_shade_client, self.secgroup_name_or_id)
+ self.mock_log.error.assert_called_once()
+ self.assertFalse(output)
+
+
+class ListImageTestCase(unittest.TestCase):
+
+ def test_list_images(self):
+ mock_shade_client = mock.MagicMock()
+ mock_shade_client.list_images.return_value = []
+ openstack_utils.list_images(mock_shade_client)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_list_images_exception(self, mock_logger):
+ mock_shade_client = mock.MagicMock()
+ mock_shade_client.list_images = mock.MagicMock()
+ mock_shade_client.list_images.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ images = openstack_utils.list_images(mock_shade_client)
+ mock_logger.error.assert_called_once()
+ self.assertFalse(images)
+
+
+class SecurityGroupTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.sg_name = 'sg_name'
+ self.sg_description = 'sg_description'
+ self._uuid = uuidutils.generate_uuid()
+ self._mock_log = mock.patch.object(openstack_utils, 'log')
+ self.mock_log = self._mock_log.start()
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_log.stop()
+
+ def test_create_security_group_full_existing_security_group(self):
+ self.mock_shade_client.get_security_group.return_value = (
+ {'name': 'name', 'id': self._uuid})
+ output = openstack_utils.create_security_group_full(
+ self.mock_shade_client, self.sg_name, self.sg_description)
+ self.mock_shade_client.get_security_group.assert_called_once()
+ self.assertEqual(self._uuid, output)
+
+ def test_create_security_group_full_non_existing_security_group(self):
+ self.mock_shade_client.get_security_group.return_value = None
+ self.mock_shade_client.create_security_group.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.create_security_group_full(
+ self.mock_shade_client, self.sg_name, self.sg_description)
+ self.mock_log.error.assert_called_once()
+ self.assertIsNone(output)
+
+ @mock.patch.object(openstack_utils, 'create_security_group_rule')
+ def test_create_security_group_full_create_rule_fail(
+ self, mock_create_security_group_rule):
+ self.mock_shade_client.get_security_group.return_value = None
+ self.mock_shade_client.create_security_group.return_value = (
+ {'name': 'name', 'id': self._uuid})
+ mock_create_security_group_rule.return_value = False
+ output = openstack_utils.create_security_group_full(
+ self.mock_shade_client, self.sg_name, self.sg_description)
+ mock_create_security_group_rule.assert_called()
+ self.mock_shade_client.delete_security_group(self.sg_name)
+ self.mock_log.error.assert_called_once()
+ self.assertIsNone(output)
+
+ @mock.patch.object(openstack_utils, 'create_security_group_rule')
+ def test_create_security_group_full(
+ self, mock_create_security_group_rule):
+ self.mock_shade_client.get_security_group.return_value = None
+ self.mock_shade_client.create_security_group.return_value = (
+ {'name': 'name', 'id': self._uuid})
+ mock_create_security_group_rule.return_value = True
+ output = openstack_utils.create_security_group_full(
+ self.mock_shade_client, self.sg_name, self.sg_description)
+ mock_create_security_group_rule.assert_called()
+ self.mock_shade_client.delete_security_group(self.sg_name)
+ self.assertEqual(self._uuid, output)
+
+
+class CreateInstanceTestCase(unittest.TestCase):
+
+ def test_create_instance_and_wait_for_active(self):
+ self.mock_shade_client = mock.Mock()
+ name = 'server_name'
+ image = 'image_name'
+ flavor = 'flavor_name'
+ self.mock_shade_client.create_server.return_value = (
+ {'name': name, 'image': image, 'flavor': flavor})
+ output = openstack_utils.create_instance_and_wait_for_active(
+ self.mock_shade_client, name, image, flavor)
+ self.assertEqual(
+ {'name': name, 'image': image, 'flavor': flavor}, output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_create_instance_and_wait_for_active_fail(self, mock_logger):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.create_server.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.create_instance_and_wait_for_active(
+ self.mock_shade_client, 'server_name', 'image_name', 'flavor_name')
+ mock_logger.error.assert_called_once()
+ self.assertIsNone(output)
+
+
+class DeleteInstanceTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+
+ def test_delete_instance(self):
+ self.mock_shade_client.delete_server.return_value = True
+ output = openstack_utils.delete_instance(self.mock_shade_client,
+ 'instance_name_id')
+ self.assertTrue(output)
+
+ def test_delete_instance_fail(self):
+ self.mock_shade_client.delete_server.return_value = False
+ output = openstack_utils.delete_instance(self.mock_shade_client,
+ 'instance_name_id')
+ self.assertFalse(output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_delete_instance_exception(self, mock_logger):
+ self.mock_shade_client.delete_server.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.delete_instance(self.mock_shade_client,
+ 'instance_name_id')
+ mock_logger.error.assert_called_once()
+ self.assertFalse(output)
+
+
+class CreateKeypairTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.name = 'key_name'
+
+ def test_create_keypair(self):
+ self.mock_shade_client.create_keypair.return_value = (
+ {'name': 'key-name', 'type': 'ssh'})
+ output = openstack_utils.create_keypair(
+ self.mock_shade_client, self.name)
+ self.assertEqual(
+ {'name': 'key-name', 'type': 'ssh'},
+ output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_create_keypair_fail(self, mock_logger):
+ self.mock_shade_client.create_keypair.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.create_keypair(
+ self.mock_shade_client, self.name)
+ mock_logger.error.assert_called_once()
+ self.assertIsNone(output)
+
+
+class DeleteKeypairTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+
+ def test_delete_keypair(self):
+ self.mock_shade_client.delete_keypair.return_value = True
+ output = openstack_utils.delete_keypair(self.mock_shade_client,
+ 'key_name')
+ self.assertTrue(output)
+
+ def test_delete_keypair_fail(self):
+ self.mock_shade_client.delete_keypair.return_value = False
+ output = openstack_utils.delete_keypair(self.mock_shade_client,
+ 'key_name')
+ self.assertFalse(output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_delete_keypair_exception(self, mock_logger):
+ self.mock_shade_client.delete_keypair.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.delete_keypair(self.mock_shade_client,
+ 'key_name')
+ mock_logger.error.assert_called_once()
+ self.assertFalse(output)
+
+
+class AttachVolumeToServerTestCase(unittest.TestCase):
+
+ def test_attach_volume_to_server(self):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.get_server.return_value = {'server_dict'}
+ self.mock_shade_client.get_volume.return_value = {'volume_dict'}
+ self.mock_shade_client.attach_volume.return_value = True
+ output = openstack_utils.attach_volume_to_server(
+ self.mock_shade_client, 'server_name_or_id', 'volume_name_or_id')
+ self.assertTrue(output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_attach_volume_to_server_fail(self, mock_logger):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.attach_volume.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.attach_volume_to_server(
+ self.mock_shade_client, 'server_name_or_id', 'volume_name_or_id')
+ mock_logger.error.assert_called_once()
+ self.assertFalse(output)
+
+
+class GetServerTestCase(unittest.TestCase):
+
+ def test_get_server(self):
+ self.mock_shade_client = mock.Mock()
+ _uuid = uuidutils.generate_uuid()
+ self.mock_shade_client.get_server.return_value = {
+ 'name': 'server_name', 'id': _uuid}
+ output = openstack_utils.get_server(self.mock_shade_client,
+ 'server_name_or_id')
+ self.assertEqual({'name': 'server_name', 'id': _uuid}, output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_get_server_exception(self, mock_logger):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.get_server.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.get_server(self.mock_shade_client,
+ 'server_name_or_id')
+ mock_logger.error.assert_called_once()
+ self.assertIsNone(output)
+
+
+class GetFlavorTestCase(unittest.TestCase):
+
+ def test_get_flavor(self):
+ self.mock_shade_client = mock.Mock()
+ _uuid = uuidutils.generate_uuid()
+ self.mock_shade_client.get_flavor.return_value = {
+ 'name': 'flavor_name', 'id': _uuid}
+ output = openstack_utils.get_flavor(self.mock_shade_client,
+ 'flavor_name_or_id')
+ self.assertEqual({'name': 'flavor_name', 'id': _uuid}, output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_get_flavor_exception(self, mock_logger):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.get_flavor.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.get_flavor(self.mock_shade_client,
+ 'flavor_name_or_id')
+ mock_logger.error.assert_called_once()
+ self.assertIsNone(output)
+
+
+class GetVolumeIDTestCase(unittest.TestCase):
+
+ def test_get_volume_id(self):
+ self.mock_shade_client = mock.Mock()
+ _uuid = uuidutils.generate_uuid()
+ self.mock_shade_client.get_volume_id.return_value = _uuid
+ output = openstack_utils.get_volume_id(self.mock_shade_client,
+ 'volume_name')
+ self.assertEqual(_uuid, output)
+
+ def test_get_volume_id_None(self):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.get_volume_id.return_value = None
+ output = openstack_utils.get_volume_id(self.mock_shade_client,
+ 'volume_name')
+ self.assertIsNone(output)
+
+
+class GetVolumeTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.get_volume = mock.Mock()
+
+ def test_get_volume(self):
+ self.mock_shade_client.get_volume.return_value = {'volume'}
+ output = openstack_utils.get_volume(self.mock_shade_client,
+ 'volume_name_or_id')
+ self.assertEqual({'volume'}, output)
+
+ def test_get_volume_None(self):
+ self.mock_shade_client.get_volume.return_value = None
+ output = openstack_utils.get_volume(self.mock_shade_client,
+ 'volume_name_or_id')
+ self.assertIsNone(output)
+
+
+class CreateVolumeTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self.size = 1
+
+ def test_create_volume(self):
+ self.mock_shade_client.create_volume.return_value = (
+ {'name': 'volume-name', 'size': self.size})
+ output = openstack_utils.create_volume(
+ self.mock_shade_client, self.size)
+ self.assertEqual(
+ {'name': 'volume-name', 'size': self.size},
+ output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_create_volume_fail(self, mock_logger):
+ self.mock_shade_client.create_volume.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.create_volume(self.mock_shade_client,
+ self.size)
+ mock_logger.error.assert_called_once()
+ self.assertIsNone(output)
+
+
+class DeleteVolumeTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+
+ def test_delete_volume(self):
+ self.mock_shade_client.delete_volume.return_value = True
+ output = openstack_utils.delete_volume(self.mock_shade_client,
+ 'volume_name_or_id')
+ self.assertTrue(output)
+
+ def test_delete_volume_fail(self):
+ self.mock_shade_client.delete_volume.return_value = False
+ output = openstack_utils.delete_volume(self.mock_shade_client,
+ 'volume_name_or_id')
+ self.assertFalse(output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_delete_volume_exception(self, mock_logger):
+ self.mock_shade_client.delete_volume.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.delete_volume(self.mock_shade_client,
+ 'volume_name_or_id')
+ mock_logger.error.assert_called_once()
+ self.assertFalse(output)
+
+
+class DetachVolumeTestCase(unittest.TestCase):
+
+ @mock.patch.object(openstack_utils, 'get_server')
+ def test_detach_volume(self, mock_get_server):
+ self.mock_shade_client = mock.Mock()
+ mock_get_server.return_value = {'server_dict'}
+ self.mock_shade_client.get_volume.return_value = {'volume_dict'}
+ output = openstack_utils.detach_volume(self.mock_shade_client,
+ 'server_name_or_id',
+ 'volume_name_or_id')
+ self.assertTrue(output)
+
+ @mock.patch.object(openstack_utils, 'get_server')
+ @mock.patch.object(openstack_utils, 'log')
+ def test_detach_volume_exception(self, mock_logger, mock_get_server):
+ self.mock_shade_client = mock.Mock()
+ mock_get_server.return_value = {'server_dict'}
+ self.mock_shade_client.get_volume.return_value = {'volume_dict'}
+ self.mock_shade_client.detach_volume.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.detach_volume(self.mock_shade_client,
+ 'server_name_or_id',
+ 'volume_name_or_id')
+ mock_logger.error.assert_called_once()
+ self.assertFalse(output)
+
+
+class CreateImageTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_shade_client = mock.Mock()
+ self._uuid = uuidutils.generate_uuid()
+ self.name = 'image_name'
+ self._mock_log = mock.patch.object(openstack_utils, 'log')
+ self.mock_log = self._mock_log.start()
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_log.stop()
+
+ def test_create_image_already_exit(self):
+ self.mock_shade_client.get_image_id.return_value = self._uuid
+ output = openstack_utils.create_image(self.mock_shade_client, self.name)
+ self.mock_log.info.assert_called_once()
+ self.assertEqual(self._uuid, output)
+
+ def test_create_image(self):
+ self.mock_shade_client.get_image_id.return_value = None
+ self.mock_shade_client.create_image.return_value = {'id': self._uuid}
+ output = openstack_utils.create_image(self.mock_shade_client, self.name)
+ self.assertEqual(self._uuid, output)
+
+ def test_create_image_exception(self):
+ self.mock_shade_client.get_image_id.return_value = None
+ self.mock_shade_client.create_image.side_effect = (
+ exc.OpenStackCloudException('error message'))
+
+ output = openstack_utils.create_image(self.mock_shade_client,
+ self.name)
+ self.mock_log.error.assert_called_once()
+ self.assertIsNone(output)
+
+
+class DeleteImageTestCase(unittest.TestCase):
+
+ def test_delete_image(self):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.delete_image.return_value = True
+ output = openstack_utils.delete_image(self.mock_shade_client,
+ 'image_name_or_id')
+ self.assertTrue(output)
+
+ def test_delete_image_fail(self):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.delete_image.return_value = False
+ output = openstack_utils.delete_image(self.mock_shade_client,
+ 'image_name_or_id')
+ self.assertFalse(output)
+
+ @mock.patch.object(openstack_utils, 'log')
+ def test_delete_image_exception(self, mock_logger):
+ self.mock_shade_client = mock.Mock()
+ self.mock_shade_client.delete_image.side_effect = (
+ exc.OpenStackCloudException('error message'))
+ output = openstack_utils.delete_image(self.mock_shade_client,
+ 'image_name_or_id')
+ mock_logger.error.assert_called_once()
+ self.assertFalse(output)
diff --git a/yardstick/tests/unit/common/test_packages.py b/yardstick/tests/unit/common/test_packages.py
new file mode 100644
index 000000000..09d76fe44
--- /dev/null
+++ b/yardstick/tests/unit/common/test_packages.py
@@ -0,0 +1,88 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+from pip._internal import exceptions as pip_exceptions
+from pip._internal.operations import freeze
+import unittest
+
+from yardstick.common import packages
+
+
+class PipExecuteActionTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_pip_main = mock.patch.object(packages, '_pip_main')
+ self.mock_pip_main = self._mock_pip_main.start()
+ self.mock_pip_main.return_value = 0
+ self._mock_freeze = mock.patch.object(freeze, 'freeze')
+ self.mock_freeze = self._mock_freeze.start()
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self._mock_pip_main.stop()
+ self._mock_freeze.stop()
+
+ def test_pip_execute_action(self):
+ self.assertEqual(0, packages._pip_execute_action('test_package'))
+
+ def test_remove(self):
+ self.assertEqual(0, packages._pip_execute_action('test_package',
+ action='uninstall'))
+
+ def test_install(self):
+ self.assertEqual(0, packages._pip_execute_action(
+ 'test_package', action='install', target='temp_dir'))
+
+ def test_pip_execute_action_error(self):
+ self.mock_pip_main.return_value = 1
+ self.assertEqual(1, packages._pip_execute_action('test_package'))
+
+ def test_pip_execute_action_exception(self):
+ self.mock_pip_main.side_effect = pip_exceptions.PipError
+ self.assertEqual(1, packages._pip_execute_action('test_package'))
+
+ def test_pip_list(self):
+ pkg_input = [
+ 'XStatic-Rickshaw==1.5.0.0',
+ 'xvfbwrapper==0.2.9',
+ '-e git+https://git.opnfv.org/yardstick@50773a24afc02c9652b662ecca'
+ '2fc5621ea6097a#egg=yardstick',
+ 'zope.interface==4.4.3'
+ ]
+ pkg_dict = {
+ 'XStatic-Rickshaw': '1.5.0.0',
+ 'xvfbwrapper': '0.2.9',
+ 'yardstick': '50773a24afc02c9652b662ecca2fc5621ea6097a',
+ 'zope.interface': '4.4.3'
+ }
+ self.mock_freeze.return_value = pkg_input
+
+ pkg_output = packages.pip_list()
+ for pkg_name, pkg_version in pkg_output.items():
+ self.assertEqual(pkg_dict.get(pkg_name), pkg_version)
+
+ def test_pip_list_single_package(self):
+ pkg_input = [
+ 'XStatic-Rickshaw==1.5.0.0',
+ 'xvfbwrapper==0.2.9',
+ '-e git+https://git.opnfv.org/yardstick@50773a24afc02c9652b662ecca'
+ '2fc5621ea6097a#egg=yardstick',
+ 'zope.interface==4.4.3'
+ ]
+ self.mock_freeze.return_value = pkg_input
+
+ pkg_output = packages.pip_list(pkg_name='xvfbwrapper')
+ self.assertEqual(1, len(pkg_output))
+ self.assertEqual(pkg_output.get('xvfbwrapper'), '0.2.9')
diff --git a/tests/unit/common/test_process.py b/yardstick/tests/unit/common/test_process.py
index 1c6dfec27..e0933c6ac 100644
--- a/tests/unit/common/test_process.py
+++ b/yardstick/tests/unit/common/test_process.py
@@ -90,10 +90,11 @@ class ExecuteTestCase(unittest.TestCase):
additional_env=self.additional_env)
self.assertEqual(self.stdout, out)
- def test_execute_exception(self):
+ @mock.patch.object(process, 'LOG')
+ def test_execute_exception(self, *args):
self.obj.returncode = self.RET_CODE_WRONG
- self.assertRaises(exceptions.ProcessExecutionError, process.execute,
- self.input_cmd, additional_env=self.additional_env)
+ with self.assertRaises(exceptions.ProcessExecutionError):
+ process.execute(self.input_cmd, additional_env=self.additional_env)
self.obj.communicate.assert_called_once_with(None)
def test_execute_with_extra_code(self):
@@ -107,7 +108,8 @@ class ExecuteTestCase(unittest.TestCase):
additional_env=self.additional_env)
self.assertEqual(self.stdout, out)
- def test_execute_exception_no_check(self):
+ @mock.patch.object(process, 'LOG')
+ def test_execute_exception_no_check(self, *args):
self.obj.returncode = self.RET_CODE_WRONG
out = process.execute(self.input_cmd,
additional_env=self.additional_env,
diff --git a/tests/unit/common/test_template_format.py b/yardstick/tests/unit/common/test_template_format.py
index 2a7d80b4d..6e4827e16 100644
--- a/tests/unit/common/test_template_format.py
+++ b/yardstick/tests/unit/common/test_template_format.py
@@ -22,13 +22,21 @@ from yardstick.common import template_format
class TemplateFormatTestCase(unittest.TestCase):
- def test_parse_to_value_exception(self):
+ def test_parse_scanner(self):
with mock.patch.object(yaml, 'load') as yaml_loader:
yaml_loader.side_effect = yaml.scanner.ScannerError()
self.assertRaises(ValueError, template_format.parse, 'FOOBAR')
+
+ def test_parse_parser(self):
+
+ with mock.patch.object(yaml, 'load') as yaml_loader:
yaml_loader.side_effect = yaml.parser.ParserError()
self.assertRaises(ValueError, template_format.parse, 'FOOBAR')
+
+ def test_parse_reader(self):
+
+ with mock.patch.object(yaml, 'load') as yaml_loader:
yaml_loader.side_effect = \
yaml.reader.ReaderError('', '', '', '', '')
self.assertRaises(ValueError, template_format.parse, 'FOOBAR')
@@ -42,10 +50,3 @@ class TemplateFormatTestCase(unittest.TestCase):
"Resources: {}\n" \
"Outputs: {}"
self.assertRaises(ValueError, template_format.parse, yaml2)
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/common/test_utils.py b/yardstick/tests/unit/common/test_utils.py
index 452b93a56..8fed5ecf1 100644
--- a/tests/unit/common/test_utils.py
+++ b/yardstick/tests/unit/common/test_utils.py
@@ -7,26 +7,30 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# Unittest for yardstick.common.utils
-
-from __future__ import absolute_import
-
from copy import deepcopy
import errno
+import importlib
import ipaddress
from itertools import product, chain
-import mock
import os
+import socket
+import time
+import threading
+
+import mock
import six
from six.moves import configparser
import unittest
import yardstick
-from yardstick.common import utils
+from yardstick import ssh
from yardstick.common import constants
+from yardstick.common import utils
+from yardstick.common import exceptions
+from yardstick.tests.unit import base as ut_base
-class IterSubclassesTestCase(unittest.TestCase):
+class IterSubclassesTestCase(ut_base.BaseUnitTestCase):
# Disclaimer: this class is a modified copy from
# rally/tests/unit/common/plugin/test_discover.py
# Copyright 2015: Mirantis Inc.
@@ -47,7 +51,7 @@ class IterSubclassesTestCase(unittest.TestCase):
self.assertEqual([B, C, D], list(utils.itersubclasses(A)))
-class ImportModulesFromPackageTestCase(unittest.TestCase):
+class ImportModulesFromPackageTestCase(ut_base.BaseUnitTestCase):
@mock.patch('yardstick.common.utils.os.walk')
def test_import_modules_from_package_no_mod(self, mock_walk):
@@ -60,8 +64,8 @@ class ImportModulesFromPackageTestCase(unittest.TestCase):
utils.import_modules_from_package('foo.bar')
@mock.patch('yardstick.common.utils.os.walk')
- @mock.patch('yardstick.common.utils.importutils')
- def test_import_modules_from_package(self, mock_importutils, mock_walk):
+ @mock.patch.object(importlib, 'import_module')
+ def test_import_modules_from_package(self, mock_import_module, mock_walk):
yardstick_root = os.path.dirname(os.path.dirname(yardstick.__file__))
mock_walk.return_value = ([
@@ -69,10 +73,10 @@ class ImportModulesFromPackageTestCase(unittest.TestCase):
])
utils.import_modules_from_package('foo.bar')
- mock_importutils.import_module.assert_called_with('bar.baz')
+ mock_import_module.assert_called_once_with('bar.baz')
-class GetParaFromYaml(unittest.TestCase):
+class GetParaFromYaml(ut_base.BaseUnitTestCase):
@mock.patch('yardstick.common.utils.os.environ.get')
def test_get_param_para_not_found(self, get_env):
@@ -96,7 +100,7 @@ class GetParaFromYaml(unittest.TestCase):
return file_path
-class CommonUtilTestCase(unittest.TestCase):
+class CommonUtilTestCase(ut_base.BaseUnitTestCase):
def setUp(self):
self.data = {
@@ -128,15 +132,80 @@ class CommonUtilTestCase(unittest.TestCase):
("=".join(item) for item in sorted(flattened_data.items())))
self.assertEqual(result, line)
+ def test_get_key_with_default_negative(self):
+ with self.assertRaises(KeyError):
+ utils.get_key_with_default({}, 'key1')
+
+ @mock.patch('yardstick.common.utils.open', create=True)
+ def test_(self, mock_open):
+ mock_open.side_effect = IOError
+
+ with self.assertRaises(IOError):
+ utils.find_relative_file('my/path', 'task/path')
+
+ self.assertEqual(mock_open.call_count, 2)
+
+ @mock.patch('yardstick.common.utils.open', create=True)
+ def test_open_relative_path(self, mock_open):
+ mock_open_result = mock_open()
+ mock_open_call_count = 1 # initial call to get result
+
+ self.assertEqual(utils.open_relative_file('foo', 'bar'), mock_open_result)
-class TestMacAddressToHex(unittest.TestCase):
+ mock_open_call_count += 1 # one more call expected
+ self.assertEqual(mock_open.call_count, mock_open_call_count)
+ self.assertIn('foo', mock_open.call_args_list[-1][0][0])
+ self.assertNotIn('bar', mock_open.call_args_list[-1][0][0])
+
+ def open_effect(*args, **kwargs):
+ if kwargs.get('name', args[0]) == os.path.join('bar', 'foo'):
+ return mock_open_result
+ raise IOError(errno.ENOENT, 'not found')
+
+ mock_open.side_effect = open_effect
+ self.assertEqual(utils.open_relative_file('foo', 'bar'), mock_open_result)
+
+ mock_open_call_count += 2 # two more calls expected
+ self.assertEqual(mock_open.call_count, mock_open_call_count)
+ self.assertIn('foo', mock_open.call_args_list[-1][0][0])
+ self.assertIn('bar', mock_open.call_args_list[-1][0][0])
+
+ # test an IOError of type ENOENT
+ mock_open.side_effect = IOError(errno.ENOENT, 'not found')
+ with self.assertRaises(IOError):
+ # the second call still raises
+ utils.open_relative_file('foo', 'bar')
+
+ mock_open_call_count += 2 # two more calls expected
+ self.assertEqual(mock_open.call_count, mock_open_call_count)
+ self.assertIn('foo', mock_open.call_args_list[-1][0][0])
+ self.assertIn('bar', mock_open.call_args_list[-1][0][0])
+
+ # test an IOError other than ENOENT
+ mock_open.side_effect = IOError(errno.EBUSY, 'busy')
+ with self.assertRaises(IOError):
+ utils.open_relative_file('foo', 'bar')
+
+ mock_open_call_count += 1 # one more call expected
+ self.assertEqual(mock_open.call_count, mock_open_call_count)
+
+
+class TestMacAddressToHex(ut_base.BaseUnitTestCase):
def test_mac_address_to_hex_list(self):
self.assertEqual(utils.mac_address_to_hex_list("ea:3e:e1:9a:99:e8"),
['0xea', '0x3e', '0xe1', '0x9a', '0x99', '0xe8'])
+ def test_mac_address_to_hex_list_too_short_mac(self):
+ with self.assertRaises(exceptions.InvalidMacAddress):
+ utils.mac_address_to_hex_list("ea:3e:e1:9a")
+
+ def test_mac_address_to_hex_list_no_int_mac(self):
+ with self.assertRaises(exceptions.InvalidMacAddress):
+ utils.mac_address_to_hex_list("invalid_mac")
+
-class TranslateToStrTestCase(unittest.TestCase):
+class TranslateToStrTestCase(ut_base.BaseUnitTestCase):
def test_translate_to_str_unicode(self):
input_str = u'hello'
@@ -162,7 +231,7 @@ class TranslateToStrTestCase(unittest.TestCase):
self.assertIs(input_value, result)
-class TestParseCpuInfo(unittest.TestCase):
+class TestParseCpuInfo(ut_base.BaseUnitTestCase):
def test_single_socket_no_hyperthread(self):
cpuinfo = """\
@@ -249,8 +318,8 @@ power management:
"""
socket_map = utils.SocketTopology.parse_cpuinfo(cpuinfo)
- assert sorted(socket_map.keys()) == [0]
- assert sorted(socket_map[0].keys()) == [2, 3, 4]
+ self.assertEqual(sorted(socket_map.keys()), [0])
+ self.assertEqual(sorted(socket_map[0].keys()), [2, 3, 4])
def test_single_socket_hyperthread(self):
cpuinfo = """\
@@ -337,11 +406,11 @@ power management:
"""
socket_map = utils.SocketTopology.parse_cpuinfo(cpuinfo)
- assert sorted(socket_map.keys()) == [0]
- assert sorted(socket_map[0].keys()) == [1, 2, 3]
- assert sorted(socket_map[0][1]) == [5]
- assert sorted(socket_map[0][2]) == [6]
- assert sorted(socket_map[0][3]) == [7]
+ self.assertEqual(sorted(socket_map.keys()), [0])
+ self.assertEqual(sorted(socket_map[0].keys()), [1, 2, 3])
+ self.assertEqual(sorted(socket_map[0][1]), [5])
+ self.assertEqual(sorted(socket_map[0][2]), [6])
+ self.assertEqual(sorted(socket_map[0][3]), [7])
def test_dual_socket_hyperthread(self):
cpuinfo = """\
@@ -536,15 +605,15 @@ power management:
"""
socket_map = utils.SocketTopology.parse_cpuinfo(cpuinfo)
- assert sorted(socket_map.keys()) == [0, 1]
- assert sorted(socket_map[0].keys()) == [0, 1, 2]
- assert sorted(socket_map[1].keys()) == [26, 27, 28]
- assert sorted(socket_map[0][0]) == [44]
- assert sorted(socket_map[0][1]) == [1]
- assert sorted(socket_map[0][2]) == [2]
- assert sorted(socket_map[1][26]) == [85]
- assert sorted(socket_map[1][27]) == [86]
- assert sorted(socket_map[1][28]) == [43, 87]
+ self.assertEqual(sorted(socket_map.keys()), [0, 1])
+ self.assertEqual(sorted(socket_map[0].keys()), [0, 1, 2])
+ self.assertEqual(sorted(socket_map[1].keys()), [26, 27, 28])
+ self.assertEqual(sorted(socket_map[0][0]), [44])
+ self.assertEqual(sorted(socket_map[0][1]), [1])
+ self.assertEqual(sorted(socket_map[0][2]), [2])
+ self.assertEqual(sorted(socket_map[1][26]), [85])
+ self.assertEqual(sorted(socket_map[1][27]), [86])
+ self.assertEqual(sorted(socket_map[1][28]), [43, 87])
def test_dual_socket_no_hyperthread(self):
cpuinfo = """\
@@ -740,14 +809,14 @@ power management:
"""
socket_map = utils.SocketTopology.parse_cpuinfo(cpuinfo)
processors = socket_map.processors()
- assert processors == [1, 2, 43, 44, 85, 86, 87]
+ self.assertEqual(processors, [1, 2, 43, 44, 85, 86, 87])
cores = socket_map.cores()
- assert cores == [0, 1, 2, 26, 27, 28]
+ self.assertEqual(cores, [0, 1, 2, 26, 27, 28])
sockets = socket_map.sockets()
- assert sockets == [0, 1]
+ self.assertEqual(sockets, [0, 1])
-class ChangeObjToDictTestCase(unittest.TestCase):
+class ChangeObjToDictTestCase(ut_base.BaseUnitTestCase):
def test_change_obj_to_dict(self):
class A(object):
@@ -760,7 +829,7 @@ class ChangeObjToDictTestCase(unittest.TestCase):
self.assertEqual(obj_r, obj_s)
-class SetDictValueTestCase(unittest.TestCase):
+class SetDictValueTestCase(ut_base.BaseUnitTestCase):
def test_set_dict_value(self):
input_dic = {
@@ -770,7 +839,7 @@ class SetDictValueTestCase(unittest.TestCase):
self.assertEqual(output_dic.get('welcome', {}).get('to'), 'yardstick')
-class RemoveFileTestCase(unittest.TestCase):
+class RemoveFileTestCase(ut_base.BaseUnitTestCase):
def test_remove_file(self):
try:
@@ -780,7 +849,83 @@ class RemoveFileTestCase(unittest.TestCase):
self.assertTrue(isinstance(e, OSError))
-class TestUtils(unittest.TestCase):
+class ParseIniFileTestCase(ut_base.BaseUnitTestCase):
+
+ def setUp(self):
+ self._mock_config_parser_type = mock.patch.object(configparser,
+ 'ConfigParser')
+ self.mock_config_parser_type = self._mock_config_parser_type.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_config_parser_type.stop()
+
+ def test_parse_ini_file(self):
+ defaults = {'default1': 'value1',
+ 'default2': 'value2'}
+ s1 = {'key1': 'value11',
+ 'key2': 'value22'}
+ s2 = {'key1': 'value123',
+ 'key2': 'value234'}
+
+ mock_config_parser = mock.Mock()
+ self.mock_config_parser_type.return_value = mock_config_parser
+ mock_config_parser.read.return_value = True
+ mock_config_parser.sections.return_value = ['s1', 's2']
+ mock_config_parser.items.side_effect = iter([
+ defaults.items(),
+ s1.items(),
+ s2.items(),
+ ])
+
+ expected = {'DEFAULT': defaults,
+ 's1': s1,
+ 's2': s2}
+ result = utils.parse_ini_file('my_path')
+ self.assertDictEqual(expected, result)
+
+ @mock.patch.object(utils, 'logger')
+ def test_parse_ini_file_missing_section_header(self, *args):
+ mock_config_parser = mock.Mock()
+ self.mock_config_parser_type.return_value = mock_config_parser
+ mock_config_parser.read.side_effect = (
+ configparser.MissingSectionHeaderError(
+ mock.Mock(), 321, mock.Mock()))
+
+ with self.assertRaises(configparser.MissingSectionHeaderError):
+ utils.parse_ini_file('my_path')
+
+ def test_parse_ini_file_no_file(self):
+ mock_config_parser = mock.Mock()
+ self.mock_config_parser_type.return_value = mock_config_parser
+ mock_config_parser.read.return_value = False
+ with self.assertRaises(RuntimeError):
+ utils.parse_ini_file('my_path')
+
+ def test_parse_ini_file_no_default_section_header(self):
+ s1 = {'key1': 'value11',
+ 'key2': 'value22'}
+ s2 = {'key1': 'value123',
+ 'key2': 'value234'}
+
+ mock_config_parser = mock.Mock()
+ self.mock_config_parser_type.return_value = mock_config_parser
+ mock_config_parser.read.return_value = True
+ mock_config_parser.sections.return_value = ['s1', 's2']
+ mock_config_parser.items.side_effect = iter([
+ configparser.NoSectionError(mock.Mock()),
+ s1.items(),
+ s2.items(),
+ ])
+
+ expected = {'DEFAULT': {},
+ 's1': s1,
+ 's2': s2}
+ result = utils.parse_ini_file('my_path')
+ self.assertDictEqual(expected, result)
+
+
+class TestUtils(ut_base.BaseUnitTestCase):
@mock.patch('yardstick.common.utils.os.makedirs')
def test_makedirs(self, *_):
@@ -837,7 +982,7 @@ class TestUtils(unittest.TestCase):
os.environ.clear()
os.environ.update(base_env)
- @mock.patch('yardstick.common.utils.configparser.ConfigParser')
+ @mock.patch.object(configparser, 'ConfigParser')
def test_parse_ini_file(self, mock_config_parser_type):
defaults = {
'default1': 'value1',
@@ -869,23 +1014,26 @@ class TestUtils(unittest.TestCase):
result = utils.parse_ini_file('my_path')
self.assertDictEqual(result, expected)
- @mock.patch('yardstick.common.utils.configparser.ConfigParser')
- def test_parse_ini_file_missing_section_header(self, mock_config_parser_type):
+ @mock.patch.object(utils, 'logger')
+ @mock.patch.object(configparser, 'ConfigParser')
+ def test_parse_ini_file_missing_section_header(
+ self, mock_config_parser_type, *args):
mock_config_parser = mock_config_parser_type()
- mock_config_parser.read.side_effect = \
- configparser.MissingSectionHeaderError(mock.Mock(), 321, mock.Mock())
+ mock_config_parser.read.side_effect = (
+ configparser.MissingSectionHeaderError(mock.Mock(), 321,
+ mock.Mock()))
with self.assertRaises(configparser.MissingSectionHeaderError):
utils.parse_ini_file('my_path')
- @mock.patch('yardstick.common.utils.configparser.ConfigParser')
+ @mock.patch.object(configparser, 'ConfigParser')
def test_parse_ini_file_no_file(self, mock_config_parser_type):
mock_config_parser = mock_config_parser_type()
mock_config_parser.read.return_value = False
with self.assertRaises(RuntimeError):
utils.parse_ini_file('my_path')
- @mock.patch('yardstick.common.utils.configparser.ConfigParser')
+ @mock.patch.object(configparser, 'ConfigParser')
def test_parse_ini_file_no_default_section_header(self, mock_config_parser_type):
s1 = {
'key1': 'value11',
@@ -931,16 +1079,8 @@ class TestUtils(unittest.TestCase):
with self.assertRaises(RuntimeError):
utils.validate_non_string_sequence(1, raise_exc=RuntimeError)
- def test_error_class(self):
- with self.assertRaises(RuntimeError):
- utils.ErrorClass()
-
- error_instance = utils.ErrorClass(test='')
- with self.assertRaises(AttributeError):
- error_instance.get_name()
-
-class TestUtilsIpAddrMethods(unittest.TestCase):
+class TestUtilsIpAddrMethods(ut_base.BaseUnitTestCase):
GOOD_IP_V4_ADDRESS_STR_LIST = [
u'0.0.0.0',
@@ -983,6 +1123,28 @@ class TestUtilsIpAddrMethods(unittest.TestCase):
u'123:4567:89ab:cdef:123:4567:89ab:cdef/129',
]
+ def test_make_ipv4_address(self):
+ for addr in self.GOOD_IP_V4_ADDRESS_STR_LIST:
+ # test with no mask
+ expected = ipaddress.IPv4Address(addr)
+ self.assertEqual(utils.make_ipv4_address(addr), expected, addr)
+
+ def test_make_ipv4_address_error(self):
+ addr_list = self.INVALID_IP_ADDRESS_STR_LIST +\
+ self.GOOD_IP_V6_ADDRESS_STR_LIST
+ for addr in addr_list:
+ self.assertRaises(Exception, utils.make_ipv4_address, addr)
+
+ def test_get_ip_range_count(self):
+ iprange = "192.168.0.1-192.168.0.25"
+ count = utils.get_ip_range_count(iprange)
+ self.assertEqual(count, 24)
+
+ def test_get_ip_range_start(self):
+ iprange = "192.168.0.1-192.168.0.25"
+ start = utils.get_ip_range_start(iprange)
+ self.assertEqual(start, "192.168.0.1")
+
def test_safe_ip_address(self):
addr_list = self.GOOD_IP_V4_ADDRESS_STR_LIST
for addr in addr_list:
@@ -1066,8 +1228,22 @@ class TestUtilsIpAddrMethods(unittest.TestCase):
for value in chain(value_iter, self.INVALID_IP_ADDRESS_STR_LIST):
self.assertEqual(utils.ip_to_hex(value), value)
+ def test_get_mask_from_ip_range_ipv4(self):
+ ip_str = '1.1.1.1'
+ for mask in range(8, 30):
+ ip = ipaddress.ip_network(ip_str + '/' + str(mask), strict=False)
+ result = utils.get_mask_from_ip_range(ip[2], ip[-2])
+ self.assertEqual(mask, result)
+
+ def test_get_mask_from_ip_range_ipv6(self):
+ ip_str = '2001::1'
+ for mask in range(8, 120):
+ ip = ipaddress.ip_network(ip_str + '/' + str(mask), strict=False)
+ result = utils.get_mask_from_ip_range(ip[2], ip[-2])
+ self.assertEqual(mask, result)
+
-class SafeDecodeUtf8TestCase(unittest.TestCase):
+class SafeDecodeUtf8TestCase(ut_base.BaseUnitTestCase):
@unittest.skipIf(six.PY2,
'This test should only be launched with Python 3.x')
@@ -1078,8 +1254,210 @@ class SafeDecodeUtf8TestCase(unittest.TestCase):
self.assertEqual('this is a byte array', out)
-def main():
- unittest.main()
+class ReadMeminfoTestCase(ut_base.BaseUnitTestCase):
+
+ MEMINFO = (b'MemTotal: 65860500 kB\n'
+ b'MemFree: 28690900 kB\n'
+ b'MemAvailable: 52873764 kB\n'
+ b'Active(anon): 3015676 kB\n'
+ b'HugePages_Total: 8\n'
+ b'Hugepagesize: 1048576 kB')
+ MEMINFO_DICT = {'MemTotal': '65860500',
+ 'MemFree': '28690900',
+ 'MemAvailable': '52873764',
+ 'Active(anon)': '3015676',
+ 'HugePages_Total': '8',
+ 'Hugepagesize': '1048576'}
+
+ def test_read_meminfo(self):
+ ssh_client = ssh.SSH('user', 'host')
+ with mock.patch.object(ssh_client, 'get_file_obj') as \
+ mock_get_client, \
+ mock.patch.object(six, 'BytesIO',
+ return_value=six.BytesIO(self.MEMINFO)):
+ output = utils.read_meminfo(ssh_client)
+ mock_get_client.assert_called_once_with('/proc/meminfo', mock.ANY)
+ self.assertEqual(self.MEMINFO_DICT, output)
+
+
+class TimerTestCase(ut_base.BaseUnitTestCase):
+
+ def test__getattr(self):
+ with utils.Timer() as timer:
+ time.sleep(1)
+ self.assertEqual(1, round(timer.total_seconds(), 0))
+ self.assertEqual(1, timer.delta.seconds)
+
+ def test__enter_with_timeout(self):
+ with utils.Timer(timeout=10) as timer:
+ time.sleep(1)
+ self.assertEqual(1, round(timer.total_seconds(), 0))
+
+ def test__enter_with_timeout_exception(self):
+ with self.assertRaises(exceptions.TimerTimeout):
+ with utils.Timer(timeout=1):
+ time.sleep(2)
+
+ def test__enter_with_timeout_no_exception(self):
+ with utils.Timer(timeout=1, raise_exception=False):
+ time.sleep(2)
+
+ def test__iter(self):
+ iterations = []
+ for i in utils.Timer(timeout=2):
+ iterations.append(i)
+ time.sleep(1.1)
+ self.assertEqual(2, len(iterations))
+
+ def test_delta_time_sec(self):
+ with utils.Timer() as timer:
+ self.assertIsInstance(timer.delta_time_sec(), float)
+
+
+class WaitUntilTrueTestCase(ut_base.BaseUnitTestCase):
+
+ def test_no_timeout(self):
+ self.assertIsNone(utils.wait_until_true(lambda: True,
+ timeout=1, sleep=1))
+
+ def test_timeout_generic_exception(self):
+ with self.assertRaises(exceptions.WaitTimeout):
+ self.assertIsNone(utils.wait_until_true(lambda: False,
+ timeout=1, sleep=1))
+
+ def test_timeout_given_exception(self):
+ class MyTimeoutException(exceptions.YardstickException):
+ message = 'My timeout exception'
+
+ with self.assertRaises(MyTimeoutException):
+ self.assertIsNone(
+ utils.wait_until_true(lambda: False, timeout=1, sleep=1,
+ exception=MyTimeoutException))
+
+ def _run_thread(self):
+ with self.assertRaises(exceptions.WaitTimeout):
+ utils.wait_until_true(lambda: False, timeout=1, sleep=1)
+
+ def test_timeout_no_main_thread(self):
+ new_thread = threading.Thread(target=self._run_thread)
+ new_thread.start()
+ new_thread.join(timeout=3)
+
+
+class SendSocketCommandTestCase(unittest.TestCase):
+
+ @mock.patch.object(socket, 'socket')
+ def test_execute_correct(self, mock_socket):
+ mock_socket_obj = mock.Mock()
+ mock_socket_obj.connect_ex.return_value = 0
+ mock_socket.return_value = mock_socket_obj
+ self.assertEqual(0, utils.send_socket_command('host', 22, 'command'))
+ mock_socket.assert_called_once_with(socket.AF_INET, socket.SOCK_STREAM)
+ mock_socket_obj.connect_ex.assert_called_once_with(('host', 22))
+ mock_socket_obj.sendall.assert_called_once_with(six.b('command'))
+ mock_socket_obj.close.assert_called_once()
+
+ @mock.patch.object(socket, 'socket')
+ def test_execute_exception(self, mock_socket):
+ mock_socket_obj = mock.Mock()
+ mock_socket_obj.connect_ex.return_value = 0
+ mock_socket.return_value = mock_socket_obj
+ mock_socket_obj.sendall.side_effect = socket.error
+ self.assertEqual(1, utils.send_socket_command('host', 22, 'command'))
+ mock_socket.assert_called_once_with(socket.AF_INET, socket.SOCK_STREAM)
+ mock_socket_obj.connect_ex.assert_called_once_with(('host', 22))
+ mock_socket_obj.sendall.assert_called_once_with(six.b('command'))
+ mock_socket_obj.close.assert_called_once()
+
+
+class GetPortMacTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.ssh_client = mock.Mock()
+ self.ssh_client.execute.return_value = (0, 'foo ', '')
-if __name__ == '__main__':
- main()
+ def test_ssh_client_execute_called(self):
+ utils.get_port_mac(self.ssh_client, 99)
+ self.ssh_client.execute.assert_called_once_with(
+ "ifconfig |grep HWaddr |grep 99 |awk '{print $5}' ",
+ raise_on_error=True)
+
+ def test_return_value(self):
+ self.assertEqual('foo', utils.get_port_mac(self.ssh_client, 99))
+
+
+class GetPortIPTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.ssh_client = mock.Mock()
+ self.ssh_client.execute.return_value = (0, 'foo ', '')
+
+ def test_ssh_client_execute_called(self):
+ utils.get_port_ip(self.ssh_client, 99)
+ self.ssh_client.execute.assert_called_once_with(
+ "ifconfig 99 |grep 'inet addr' |awk '{print $2}' |cut -d ':' -f2 ",
+ raise_on_error=True)
+
+ def test_return_value(self):
+ self.assertEqual('foo', utils.get_port_ip(self.ssh_client, 99))
+
+
+class SafeCaseTestCase(unittest.TestCase):
+
+ def test_correct_type_int(self):
+ self.assertEqual(35, utils.safe_cast('35', int, 0))
+
+ def test_correct_int_as_string(self):
+ self.assertEqual(25, utils.safe_cast('25', 'int', 0))
+
+ def test_incorrect_type_as_string(self):
+ with self.assertRaises(exceptions.InvalidType):
+ utils.safe_cast('100', 'intt', 0)
+
+ def test_default_value(self):
+ self.assertEqual(0, utils.safe_cast('', 'int', 0))
+
+
+class SetupHugepagesTestCase(unittest.TestCase):
+
+ @mock.patch.object(six, 'BytesIO', return_value=six.BytesIO(b'5\n'))
+ @mock.patch.object(utils, 'read_meminfo',
+ return_value={'Hugepagesize': '1024'})
+ def test_setup_hugepages(self, mock_meminfo, *args):
+ ssh = mock.Mock()
+ ssh.execute = mock.Mock()
+ hp_size_kb, hp_number, hp_number_set = utils.setup_hugepages(ssh, 10 * 1024)
+ mock_meminfo.assert_called_once_with(ssh)
+ ssh.execute.assert_called_once_with(
+ 'echo 10 | sudo tee /proc/sys/vm/nr_hugepages')
+ self.assertEqual(hp_size_kb, 1024)
+ self.assertEqual(hp_number, 10)
+ self.assertEqual(hp_number_set, 5)
+
+
+class GetOSSampleInfoTestCase(unittest.TestCase):
+
+ def test_get_os_version(self, *args):
+ ssh = mock.Mock()
+ ssh.execute.return_value = (0, "18.04", "")
+ utils.get_os_version(ssh)
+ ssh.execute.assert_called_once_with("cat /etc/lsb-release")
+
+ def test_get_kernel_version(self, *args):
+ ssh = mock.Mock()
+ ssh.execute.return_value = (0, "Linux", "")
+ utils.get_kernel_version(ssh)
+ ssh.execute.assert_called_once_with("uname -a")
+
+ def test_get_sample_vnf_info(self, *args):
+ json_out = """
+ {"UDP_Replay": {
+ "branch_commit": "47123bfc1b3c0d0b01884aebbce1a3e09ad7ddb0",
+ "md5": "4577702f6d6848380bd912232a1b9ca5",
+ "path_vnf": "/opt/nsb_bin/UDP_Replay"
+ }
+ }"""
+ json_file = '/opt/nsb_bin/yardstick_sample_vnf.json'
+ ssh = mock.Mock()
+ ssh.execute.return_value = (0, json_out, "")
+ utils.get_sample_vnf_info(ssh, json_file)
diff --git a/tests/unit/common/test_yaml_loader.py b/yardstick/tests/unit/common/test_yaml_loader.py
index 90cbb8157..e621dcbc5 100644
--- a/tests/unit/common/test_yaml_loader.py
+++ b/yardstick/tests/unit/common/test_yaml_loader.py
@@ -12,7 +12,6 @@
# yardstick: this file is copied from python-heatclient and slightly modified
-from __future__ import absolute_import
import unittest
from yardstick.common import yaml_loader
@@ -22,11 +21,4 @@ class TemplateFormatTestCase(unittest.TestCase):
def test_parse_to_value_exception(self):
- self.assertEquals(yaml_loader.yaml_load("string"), u"string")
-
-
-def main():
- unittest.main()
-
-if __name__ == '__main__':
- main()
+ self.assertEqual(yaml_loader.yaml_load("string"), u"string")
diff --git a/yardstick/tests/unit/dispatcher/__init__.py b/yardstick/tests/unit/dispatcher/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/dispatcher/__init__.py
diff --git a/tests/unit/dispatcher/test_influxdb.py b/yardstick/tests/unit/dispatcher/test_influxdb.py
index 7ebe8c90b..c844d4bbb 100644
--- a/tests/unit/dispatcher/test_influxdb.py
+++ b/yardstick/tests/unit/dispatcher/test_influxdb.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
@@ -11,20 +9,15 @@
# Unittest for yardstick.dispatcher.influxdb
-from __future__ import absolute_import
+import mock
import unittest
+from yardstick.dispatcher.influxdb import InfluxdbDispatcher
+from yardstick import _init_logging
-try:
- from unittest import mock
-except ImportError:
- import mock
-from yardstick import _init_logging
_init_logging()
-from yardstick.dispatcher.influxdb import InfluxdbDispatcher
-
class InfluxdbDispatcherTestCase(unittest.TestCase):
@@ -109,11 +102,3 @@ class InfluxdbDispatcherTestCase(unittest.TestCase):
mock_time.time.return_value = 1451461248.925574
self.assertEqual(influxdb._get_nano_timestamp(results),
'1451461248925574144')
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
diff --git a/tests/unit/dispatcher/test_influxdb_line_protocol.py b/yardstick/tests/unit/dispatcher/test_influxdb_line_protocol.py
index 51dc39e3c..641e97fae 100644
--- a/tests/unit/dispatcher/test_influxdb_line_protocol.py
+++ b/yardstick/tests/unit/dispatcher/test_influxdb_line_protocol.py
@@ -11,7 +11,6 @@
# yardstick comment: this file is a modified copy of
# influxdb-python/influxdb/tests/test_line_protocol.py
-from __future__ import absolute_import
import unittest
from third_party.influxdb.influxdb_line_protocol import make_lines
diff --git a/yardstick/tests/unit/network_services/__init__.py b/yardstick/tests/unit/network_services/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/__init__.py
diff --git a/yardstick/tests/unit/network_services/collector/__init__.py b/yardstick/tests/unit/network_services/collector/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/collector/__init__.py
diff --git a/tests/unit/network_services/collector/test_publisher.py b/yardstick/tests/unit/network_services/collector/test_publisher.py
index d1e56e114..145441ddd 100644
--- a/tests/unit/network_services/collector/test_publisher.py
+++ b/yardstick/tests/unit/network_services/collector/test_publisher.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright (c) 2016-2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,9 +13,6 @@
# limitations under the License.
#
-# Unittest for yardstick.network_services.collector.publisher
-
-from __future__ import absolute_import
import unittest
from yardstick.network_services.collector import publisher
diff --git a/yardstick/tests/unit/network_services/collector/test_subscriber.py b/yardstick/tests/unit/network_services/collector/test_subscriber.py
new file mode 100644
index 000000000..cffa4d492
--- /dev/null
+++ b/yardstick/tests/unit/network_services/collector/test_subscriber.py
@@ -0,0 +1,120 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import copy
+import mock
+import unittest
+
+from yardstick.network_services.collector import subscriber
+from yardstick import ssh
+
+
+class MockVnfAprrox(object):
+
+ def __init__(self):
+ self.result = {}
+ self.name = "vnf__1"
+
+ def collect_kpi(self):
+ self.result = {
+ 'pkt_in_up_stream': 100,
+ 'pkt_drop_up_stream': 5,
+ 'pkt_in_down_stream': 50,
+ 'pkt_drop_down_stream': 40
+ }
+ return self.result
+
+
+class CollectorTestCase(unittest.TestCase):
+
+ NODES = {
+ 'context1': [{'name': 'node1',
+ 'ip': '1.2.3.4',
+ 'collectd': {
+ 'plugins': {'abc': 12, 'def': 34},
+ 'interval': 987}
+ }
+ ]
+ }
+
+ def setUp(self):
+ vnf = MockVnfAprrox()
+ vnf.start_collect = mock.Mock()
+ vnf.stop_collect = mock.Mock()
+ self.ssh_patch = mock.patch.object(ssh, 'AutoConnectSSH')
+ mock_ssh = self.ssh_patch.start()
+ mock_instance = mock.Mock()
+ mock_instance.execute.return_value = 0, '', ''
+ mock_ssh.from_node.return_value = mock_instance
+ self.collector = subscriber.Collector([vnf], self.NODES)
+
+ def tearDown(self):
+ self.ssh_patch.stop()
+
+ def test___init__(self, *args):
+ vnf = MockVnfAprrox()
+ collector = subscriber.Collector([vnf], self.NODES)
+ self.assertEqual(len(collector.vnfs), 1)
+ self.assertEqual(len(collector.nodes), 1)
+
+ def test___init__no_node_information(self, *args):
+ vnf = MockVnfAprrox()
+ nodes = copy.deepcopy(self.NODES)
+ nodes['context1'].append(None)
+ collector = subscriber.Collector([vnf], nodes)
+ self.assertEqual(len(collector.vnfs), 1)
+ self.assertEqual(len(collector.nodes), 1)
+
+ def test___init__no_node_information_in_context(self, *args):
+ vnf = MockVnfAprrox()
+ nodes = copy.deepcopy(self.NODES)
+ nodes['context1'] = None
+ collector = subscriber.Collector([vnf], nodes)
+ self.assertEqual(len(collector.vnfs), 1)
+ self.assertEqual(len(collector.nodes), 1)
+
+ def test_start(self, *args):
+ resource_profile = mock.MagicMock()
+ self.collector.resource_profiles = {'key': resource_profile}
+ self.collector.bin_path = 'path'
+
+ self.assertIsNone(self.collector.start())
+ for vnf in self.collector.vnfs:
+ vnf.start_collect.assert_called_once()
+
+ for resource_profile in self.collector.resource_profiles.values():
+ resource_profile.initiate_systemagent.assert_called_once_with('path')
+ resource_profile.start.assert_called_once()
+ resource_profile.amqp_process_for_nfvi_kpi.assert_called_once()
+
+ def test_stop(self, *_):
+ resource_profile = mock.MagicMock()
+ self.collector.resource_profiles = {'key': resource_profile}
+
+ self.assertIsNone(self.collector.stop())
+ for vnf in self.collector.vnfs:
+ vnf.stop_collect.assert_called_once()
+
+ for resource in self.collector.resource_profiles.values():
+ resource.stop.assert_called_once()
+
+ def test_get_kpi(self, *args):
+ result = self.collector.get_kpi()
+
+ self.assertEqual(2, len(result))
+ self.assertEqual(4, len(result["vnf__1"]))
+ self.assertEqual(result["vnf__1"]["pkt_in_up_stream"], 100)
+ self.assertEqual(result["vnf__1"]["pkt_drop_up_stream"], 5)
+ self.assertEqual(result["vnf__1"]["pkt_in_down_stream"], 50)
+ self.assertEqual(result["vnf__1"]["pkt_drop_down_stream"], 40)
diff --git a/yardstick/tests/unit/network_services/helpers/__init__.py b/yardstick/tests/unit/network_services/helpers/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/helpers/__init__.py
diff --git a/tests/unit/network_services/helpers/acl_vnf_topology_ixia.yaml b/yardstick/tests/unit/network_services/helpers/acl_vnf_topology_ixia.yaml
index f60834fbd..f60834fbd 100644
--- a/tests/unit/network_services/helpers/acl_vnf_topology_ixia.yaml
+++ b/yardstick/tests/unit/network_services/helpers/acl_vnf_topology_ixia.yaml
diff --git a/yardstick/tests/unit/network_services/helpers/test_cpu.py b/yardstick/tests/unit/network_services/helpers/test_cpu.py
new file mode 100644
index 000000000..a1c0826fb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/helpers/test_cpu.py
@@ -0,0 +1,215 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from __future__ import division
+import unittest
+import mock
+import subprocess
+
+from yardstick.network_services.helpers.cpu import \
+ CpuSysCores
+
+
+class TestCpuSysCores(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_ssh = mock.patch("yardstick.ssh.SSH")
+ self.mock_ssh = self._mock_ssh.start()
+
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self._mock_ssh.stop()
+
+ def test___init__(self):
+ self.mock_ssh.execute.return_value = 1, "", ""
+ self.mock_ssh.put.return_value = 1, "", ""
+ cpu_topo = CpuSysCores(self.mock_ssh)
+ self.assertIsNotNone(cpu_topo.connection)
+
+ def test__get_core_details(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(1, "", ""))
+ ssh_mock.put = \
+ mock.Mock(return_value=(1, "", ""))
+ cpu_topo = CpuSysCores(ssh_mock)
+ subprocess.check_output = mock.Mock(return_value=0)
+ lines = ["cpu:1", "topo:2", ""]
+ self.assertEqual([{'topo': '2', 'cpu': '1'}],
+ cpu_topo._get_core_details(lines))
+
+ def test_get_core_socket(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(1, "cpu:1\ntest:2\n \n", ""))
+ ssh_mock.put = \
+ mock.Mock(return_value=(1, "", ""))
+ cpu_topo = CpuSysCores(ssh_mock)
+ subprocess.check_output = mock.Mock(return_value=0)
+ cpu_topo._get_core_details = \
+ mock.Mock(side_effect=[[{'Core(s) per socket': '2', 'Thread(s) per core': '1'}],
+ [{'physical id': '2', 'processor': '1'}]])
+ self.assertEqual({'thread_per_core': '1', '2': ['1'],
+ 'cores_per_socket': '2'},
+ cpu_topo.get_core_socket())
+
+ def test_validate_cpu_cfg(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(1, "cpu:1\ntest:2\n \n", ""))
+ ssh_mock.put = \
+ mock.Mock(return_value=(1, "", ""))
+ cpu_topo = CpuSysCores(ssh_mock)
+ subprocess.check_output = mock.Mock(return_value=0)
+ cpu_topo._get_core_details = \
+ mock.Mock(side_effect=[[{'Core(s) per socket': '2', 'Thread(s) per core': '1'}],
+ [{'physical id': '2', 'processor': '1'}]])
+ cpu_topo.core_map = \
+ {'thread_per_core': '1', '2': ['1'], 'cores_per_socket': '2'}
+ self.assertEqual(-1, cpu_topo.validate_cpu_cfg())
+
+ def test_validate_cpu_cfg_2t(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(1, "cpu:1\ntest:2\n \n", ""))
+ ssh_mock.put = \
+ mock.Mock(return_value=(1, "", ""))
+ cpu_topo = CpuSysCores(ssh_mock)
+ subprocess.check_output = mock.Mock(return_value=0)
+ cpu_topo._get_core_details = \
+ mock.Mock(side_effect=[[{'Core(s) per socket': '2', 'Thread(s) per core': '1'}],
+ [{'physical id': '2', 'processor': '1'}]])
+ cpu_topo.core_map = \
+ {'thread_per_core': 1, '2': ['1'], 'cores_per_socket': '2'}
+ vnf_cfg = {'lb_config': 'SW', 'lb_count': 1, 'worker_config':
+ '1C/2T', 'worker_threads': 1}
+ self.assertEqual(-1, cpu_topo.validate_cpu_cfg(vnf_cfg))
+
+ def test_validate_cpu_cfg_fail(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(1, "cpu:1\ntest:2\n \n", ""))
+ ssh_mock.put = \
+ mock.Mock(return_value=(1, "", ""))
+ cpu_topo = CpuSysCores(ssh_mock)
+ subprocess.check_output = mock.Mock(return_value=0)
+ cpu_topo._get_core_details = \
+ mock.Mock(side_effect=[[{'Core(s) per socket': '2', 'Thread(s) per core': '1'}],
+ [{'physical id': '2', 'processor': '1'}]])
+ cpu_topo.core_map = \
+ {'thread_per_core': 1, '2': [1], 'cores_per_socket': 2}
+ vnf_cfg = {'lb_config': 'SW', 'lb_count': 1, 'worker_config':
+ '1C/1T', 'worker_threads': 1}
+ self.assertEqual(-1, cpu_topo.validate_cpu_cfg(vnf_cfg))
+
+ def test_get_cpu_layout(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(
+ return_value=(1, "# CPU,Core,Socket,Node,,L1d,L1i,L2,L3\n'"
+ "0,0,0,0,,0,0,0,0\n"
+ "1,1,0,0,,1,1,1,0\n", ""))
+ ssh_mock.put = \
+ mock.Mock(return_value=(1, "", ""))
+ cpu_topo = CpuSysCores(ssh_mock)
+ subprocess.check_output = mock.Mock(return_value=0)
+ self.assertEqual({'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0, 1, 1, 1, 0]]},
+ cpu_topo.get_cpu_layout())
+
+ def test__str2int(self):
+ self.assertEqual(1, CpuSysCores._str2int("1"))
+
+ def test__str2int_error(self):
+ self.assertEqual(0, CpuSysCores._str2int("err"))
+
+ def test_smt_enabled(self):
+ self.assertEqual(False, CpuSysCores.smt_enabled(
+ {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0, 1, 1, 1, 0]]}))
+
+ def test_is_smt_enabled(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ cpu_topo = CpuSysCores(ssh_mock)
+ cpu_topo.cpuinfo = {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0, 1, 1, 1, 0]]}
+ self.assertEqual(False, cpu_topo.is_smt_enabled())
+
+ def test_cpu_list_per_node(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ cpu_topo = CpuSysCores(ssh_mock)
+ cpu_topo.cpuinfo = {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0, 1, 1, 1, 0]]}
+ self.assertEqual([0, 1], cpu_topo.cpu_list_per_node(0, False))
+
+ def test_cpu_list_per_node_error(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ cpu_topo = CpuSysCores(ssh_mock)
+ cpu_topo.cpuinfo = {'err': [[0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0, 1, 1, 1, 0]]}
+ with self.assertRaises(RuntimeError) as raised:
+ cpu_topo.cpu_list_per_node(0, False)
+ self.assertIn('Node cpuinfo not available.', str(raised.exception))
+
+ def test_cpu_list_per_node_smt_error(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ cpu_topo = CpuSysCores(ssh_mock)
+ cpu_topo.cpuinfo = {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0, 1, 1, 1, 0]]}
+ with self.assertRaises(RuntimeError) as raised:
+ cpu_topo.cpu_list_per_node(0, True)
+ self.assertIn('SMT is not enabled.', str(raised.exception))
+
+ def test_cpu_slice_of_list_per_node(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ cpu_topo = CpuSysCores(ssh_mock)
+ cpu_topo.cpuinfo = {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0, 1, 1, 1, 0]]}
+ self.assertEqual([1],
+ cpu_topo.cpu_slice_of_list_per_node(0, 1, 0,
+ False))
+
+ def test_cpu_slice_of_list_per_node_error(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ cpu_topo = CpuSysCores(ssh_mock)
+ cpu_topo.cpuinfo = {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0, 1, 1, 1, 0]]}
+ with self.assertRaises(RuntimeError) as raised:
+ cpu_topo.cpu_slice_of_list_per_node(1, 1, 1, False)
+ self.assertIn('cpu_cnt + skip_cnt > length(cpu list).',
+ str(raised.exception))
+
+ def test_cpu_list_per_node_str(self):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ cpu_topo = CpuSysCores(ssh_mock)
+ cpu_topo.cpuinfo = {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0, 1, 1, 1, 0]]}
+ self.assertEqual("1",
+ cpu_topo.cpu_list_per_node_str(0, 1, 1, ',',
+ False))
diff --git a/yardstick/tests/unit/network_services/helpers/test_dpdkbindnic_helper.py b/yardstick/tests/unit/network_services/helpers/test_dpdkbindnic_helper.py
new file mode 100644
index 000000000..e19311613
--- /dev/null
+++ b/yardstick/tests/unit/network_services/helpers/test_dpdkbindnic_helper.py
@@ -0,0 +1,632 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+import unittest
+
+import os
+
+from yardstick.common import exceptions
+from yardstick.network_services.helpers.dpdkbindnic_helper import DpdkInterface
+from yardstick.network_services.helpers.dpdkbindnic_helper import DpdkNode
+from yardstick.network_services.helpers.dpdkbindnic_helper import DpdkBindHelper
+from yardstick.network_services.helpers.dpdkbindnic_helper import DpdkBindHelperException
+from yardstick.network_services.helpers.dpdkbindnic_helper import NETWORK_KERNEL
+from yardstick.network_services.helpers.dpdkbindnic_helper import NETWORK_DPDK
+from yardstick.network_services.helpers.dpdkbindnic_helper import CRYPTO_KERNEL
+from yardstick.network_services.helpers.dpdkbindnic_helper import CRYPTO_DPDK
+from yardstick.network_services.helpers.dpdkbindnic_helper import NETWORK_OTHER
+from yardstick.network_services.helpers.dpdkbindnic_helper import CRYPTO_OTHER
+
+
+NAME = "tg_0"
+
+
+class TestDpdkInterface(unittest.TestCase):
+
+ SAMPLE_NETDEVS = {
+ 'enp11s0': {
+ 'address': '0a:de:ad:be:ef:f5',
+ 'device': '0x1533',
+ 'driver': 'igb',
+ 'ifindex': '2',
+ 'interface_name': 'enp11s0',
+ 'operstate': 'down',
+ 'pci_bus_id': '0000:0b:00.0',
+ 'subsystem_device': '0x1533',
+ 'subsystem_vendor': '0x15d9',
+ 'vendor': '0x8086'
+ },
+ 'lan': {
+ 'address': '0a:de:ad:be:ef:f4',
+ 'device': '0x153a',
+ 'driver': 'e1000e',
+ 'ifindex': '3',
+ 'interface_name': 'lan',
+ 'operstate': 'up',
+ 'pci_bus_id': '0000:00:19.0',
+ 'subsystem_device': '0x153a',
+ 'subsystem_vendor': '0x15d9',
+ 'vendor': '0x8086'
+ }
+ }
+
+ SAMPLE_VM_NETDEVS = {
+ 'eth1': {
+ 'address': 'fa:de:ad:be:ef:5b',
+ 'device': '0x0001',
+ 'driver': 'virtio_net',
+ 'ifindex': '3',
+ 'interface_name': 'eth1',
+ 'operstate': 'down',
+ 'pci_bus_id': '0000:00:04.0',
+ 'vendor': '0x1af4'
+ }
+ }
+
+ def test_parse_netdev_info(self):
+ output = """\
+/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/ifindex:2
+/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/address:0a:de:ad:be:ef:f5
+/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/operstate:down
+/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/vendor:0x8086
+/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/device:0x1533
+/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/subsystem_vendor:0x15d9
+/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/device/subsystem_device:0x1533
+/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/driver:igb
+/sys/devices/pci0000:00/0000:00:1c.3/0000:0b:00.0/net/enp11s0/pci_bus_id:0000:0b:00.0
+/sys/devices/pci0000:00/0000:00:19.0/net/lan/ifindex:3
+/sys/devices/pci0000:00/0000:00:19.0/net/lan/address:0a:de:ad:be:ef:f4
+/sys/devices/pci0000:00/0000:00:19.0/net/lan/operstate:up
+/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/vendor:0x8086
+/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/device:0x153a
+/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/subsystem_vendor:0x15d9
+/sys/devices/pci0000:00/0000:00:19.0/net/lan/device/subsystem_device:0x153a
+/sys/devices/pci0000:00/0000:00:19.0/net/lan/driver:e1000e
+/sys/devices/pci0000:00/0000:00:19.0/net/lan/pci_bus_id:0000:00:19.0
+"""
+ res = DpdkBindHelper.parse_netdev_info(output)
+ self.assertDictEqual(res, self.SAMPLE_NETDEVS)
+
+ def test_parse_netdev_info_virtio(self):
+ output = """\
+/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/ifindex:3
+/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/address:fa:de:ad:be:ef:5b
+/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/operstate:down
+/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/device/vendor:0x1af4
+/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/device/device:0x0001
+/sys/devices/pci0000:00/0000:00:04.0/virtio1/net/eth1/driver:virtio_net
+"""
+ res = DpdkBindHelper.parse_netdev_info(output)
+ self.assertDictEqual(res, self.SAMPLE_VM_NETDEVS)
+
+ def test_probe_missing_values(self):
+ mock_dpdk_node = mock.Mock()
+ mock_dpdk_node.netdevs = self.SAMPLE_NETDEVS.copy()
+
+ interface = {'local_mac': '0a:de:ad:be:ef:f5'}
+ dpdk_intf = DpdkInterface(mock_dpdk_node, interface)
+
+ dpdk_intf.probe_missing_values()
+ self.assertEqual(interface['vpci'], '0000:0b:00.0')
+
+ interface['local_mac'] = '0a:de:ad:be:ef:f4'
+ dpdk_intf.probe_missing_values()
+ self.assertEqual(interface['vpci'], '0000:00:19.0')
+
+ def test_probe_missing_values_no_update(self):
+ mock_dpdk_node = mock.Mock()
+ mock_dpdk_node.netdevs = self.SAMPLE_NETDEVS.copy()
+ del mock_dpdk_node.netdevs['enp11s0']['driver']
+ del mock_dpdk_node.netdevs['lan']['driver']
+
+ interface = {'local_mac': '0a:de:ad:be:ef:f5'}
+ dpdk_intf = DpdkInterface(mock_dpdk_node, interface)
+
+ dpdk_intf.probe_missing_values()
+ self.assertNotIn('vpci', interface)
+ self.assertNotIn('driver', interface)
+
+ def test_probe_missing_values_negative(self):
+ mock_dpdk_node = mock.Mock()
+ mock_dpdk_node.netdevs.values.side_effect = (
+ exceptions.IncorrectNodeSetup(error_msg=''))
+
+ interface = {'local_mac': '0a:de:ad:be:ef:f5'}
+ dpdk_intf = DpdkInterface(mock_dpdk_node, interface)
+
+ with self.assertRaises(exceptions.IncorrectConfig):
+ dpdk_intf.probe_missing_values()
+
+
+class TestDpdkNode(unittest.TestCase):
+
+ INTERFACES = [
+ {'name': 'name1',
+ 'virtual-interface': {
+ 'local_mac': 404,
+ 'vpci': 'pci10',
+ }},
+ {'name': 'name2',
+ 'virtual-interface': {
+ 'local_mac': 404,
+ 'vpci': 'pci2',
+ }},
+ {'name': 'name3',
+ 'virtual-interface': {
+ 'local_mac': 404,
+ 'vpci': 'some-pci1',
+ }},
+ ]
+
+ def test_probe_dpdk_drivers(self):
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.return_value = 0, '', ''
+
+ interfaces = [
+ {'name': 'name1',
+ 'virtual-interface': {
+ 'local_mac': 404,
+ 'vpci': 'pci10',
+ }},
+ {'name': 'name2',
+ 'virtual-interface': {
+ 'local_mac': 404,
+ 'vpci': 'pci2',
+ }},
+ {'name': 'name3',
+ 'virtual-interface': {
+ 'local_mac': 404,
+ 'vpci': 'some-pci1',
+ }},
+ ]
+
+ dpdk_node = DpdkNode(NAME, interfaces, mock_ssh_helper)
+ dpdk_helper = dpdk_node.dpdk_helper
+
+ dpdk_helper.probe_real_kernel_drivers = mock.Mock()
+ dpdk_helper.real_kernel_interface_driver_map = {
+ 'pci1': 'driver1',
+ 'pci2': 'driver2',
+ 'pci3': 'driver3',
+ 'pci4': 'driver1',
+ 'pci6': 'driver3',
+ }
+
+ dpdk_node._probe_dpdk_drivers()
+ self.assertNotIn('driver', interfaces[0]['virtual-interface'])
+ self.assertEqual(interfaces[1]['virtual-interface']['driver'], 'driver2')
+ self.assertEqual(interfaces[2]['virtual-interface']['driver'], 'driver1')
+
+ def test_check(self):
+ def update():
+ if not mock_force_rebind.called:
+ raise exceptions.IncorrectConfig(error_msg='')
+
+ interfaces[0]['virtual-interface'].update({
+ 'vpci': '0000:01:02.1',
+ 'local_ip': '10.20.30.40',
+ 'netmask': '255.255.0.0',
+ 'driver': 'ixgbe',
+ })
+
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.return_value = 0, '', ''
+
+ interfaces = [
+ {'name': 'name1',
+ 'virtual-interface': {
+ 'local_mac': 404,
+ }},
+ ]
+
+ dpdk_node = DpdkNode(NAME, interfaces, mock_ssh_helper)
+ dpdk_node._probe_missing_values = mock_probe_missing = mock.Mock(side_effect=update)
+ dpdk_node._force_rebind = mock_force_rebind = mock.Mock()
+
+ self.assertIsNone(dpdk_node.check())
+ self.assertEqual(mock_probe_missing.call_count, 2)
+
+ @mock.patch('yardstick.network_services.helpers.dpdkbindnic_helper.DpdkInterface')
+ def test_check_negative(self, mock_intf_type):
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.return_value = 0, '', ''
+
+ mock_intf_type().check.side_effect = exceptions.SSHError
+
+ dpdk_node = DpdkNode(NAME, self.INTERFACES, mock_ssh_helper)
+
+ with self.assertRaises(exceptions.IncorrectSetup):
+ dpdk_node.check()
+
+ def test_probe_netdevs(self):
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.return_value = 0, '', ''
+
+ expected = {'key1': 500, 'key2': 'hello world'}
+ update = {'key1': 1000, 'key3': []}
+
+ dpdk_node = DpdkNode(NAME, self.INTERFACES, mock_ssh_helper)
+ dpdk_helper = dpdk_node.dpdk_helper
+ dpdk_helper.find_net_devices = mock.Mock(side_effect=[expected, update])
+
+ self.assertDictEqual(dpdk_node.netdevs, {})
+ dpdk_node._probe_netdevs()
+ self.assertDictEqual(dpdk_node.netdevs, expected)
+
+ expected = {'key1': 1000, 'key2': 'hello world', 'key3': []}
+ dpdk_node._probe_netdevs()
+ self.assertDictEqual(dpdk_node.netdevs, expected)
+
+ def test_probe_netdevs_setup_negative(self):
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.return_value = 0, '', ''
+
+ dpdk_node = DpdkNode(NAME, self.INTERFACES, mock_ssh_helper)
+ dpdk_helper = dpdk_node.dpdk_helper
+ dpdk_helper.find_net_devices = mock.Mock(side_effect=DpdkBindHelperException)
+
+ with self.assertRaises(DpdkBindHelperException):
+ dpdk_node._probe_netdevs()
+
+ def test_force_rebind(self):
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.return_value = 0, '', ''
+
+ dpdk_node = DpdkNode(NAME, self.INTERFACES, mock_ssh_helper)
+ dpdk_helper = dpdk_node.dpdk_helper
+ dpdk_helper.force_dpdk_rebind = mock_helper_func = mock.Mock()
+
+ dpdk_node._force_rebind()
+ mock_helper_func.assert_called_once()
+
+
+class TestDpdkBindHelper(unittest.TestCase):
+ bin_path = "/opt/nsb_bin"
+ EXAMPLE_OUTPUT = """
+
+Network devices using DPDK-compatible driver
+============================================
+0000:00:04.0 'Virtio network device' drv=igb_uio unused=
+0000:00:05.0 'Virtio network device' drv=igb_uio unused=
+
+Network devices using kernel driver
+===================================
+0000:00:03.0 'Virtio network device' if=ens3 drv=virtio-pci unused=igb_uio *Active*
+
+Other network devices
+=====================
+<none>
+
+Crypto devices using DPDK-compatible driver
+===========================================
+<none>
+
+Crypto devices using kernel driver
+==================================
+<none>
+
+Other crypto devices
+====================
+<none>
+"""
+
+ PARSED_EXAMPLE = {
+ NETWORK_DPDK: [
+ {'active': False,
+ 'dev_type': 'Virtio network device',
+ 'driver': 'igb_uio',
+ 'iface': None,
+ 'unused': '',
+ 'vpci': '0000:00:04.0',
+ },
+ {'active': False,
+ 'dev_type': 'Virtio network device',
+ 'driver': 'igb_uio',
+ 'iface': None,
+ 'unused': '',
+ 'vpci': '0000:00:05.0',
+ }
+ ],
+ NETWORK_KERNEL: [
+ {'active': True,
+ 'dev_type': 'Virtio network device',
+ 'driver': 'virtio-pci',
+ 'iface': 'ens3',
+ 'unused': 'igb_uio',
+ 'vpci': '0000:00:03.0',
+ }
+ ],
+ CRYPTO_KERNEL: [],
+ CRYPTO_DPDK: [],
+ NETWORK_OTHER: [],
+ CRYPTO_OTHER: [],
+ }
+
+ CLEAN_STATUS = {
+ NETWORK_KERNEL: [],
+ NETWORK_DPDK: [],
+ CRYPTO_KERNEL: [],
+ CRYPTO_DPDK: [],
+ NETWORK_OTHER: [],
+ CRYPTO_OTHER: [],
+ }
+
+ ONE_INPUT_LINE = ("0000:00:03.0 'Virtio network device' if=ens3 "
+ "drv=virtio-pci unused=igb_uio *Active*")
+
+ ONE_INPUT_LINE_PARSED = [{
+ 'vpci': '0000:00:03.0',
+ 'dev_type': 'Virtio network device',
+ 'iface': 'ens3',
+ 'driver': 'virtio-pci',
+ 'unused': 'igb_uio',
+ 'active': True,
+ }]
+
+ def test___init__(self):
+ conn = mock.Mock()
+ conn.provision_tool = mock.Mock(return_value='path_to_tool')
+ conn.join_bin_path.return_value = os.path.join(self.bin_path, DpdkBindHelper.DPDK_DEVBIND)
+
+ dpdk_bind_helper = DpdkBindHelper(conn)
+
+ self.assertEqual(conn, dpdk_bind_helper.ssh_helper)
+ self.assertEqual(self.CLEAN_STATUS, dpdk_bind_helper.dpdk_status)
+ self.assertIsNone(dpdk_bind_helper.status_nic_row_re)
+ self.assertEqual(dpdk_bind_helper.dpdk_devbind,
+ os.path.join(self.bin_path, dpdk_bind_helper.DPDK_DEVBIND))
+ self.assertIsNone(dpdk_bind_helper._status_cmd_attr)
+
+ def test__dpdk_execute(self):
+ conn = mock.Mock()
+ conn.execute = mock.Mock(return_value=(0, 'output', 'error'))
+ conn.provision_tool = mock.Mock(return_value='tool_path')
+ dpdk_bind_helper = DpdkBindHelper(conn)
+ self.assertEqual((0, 'output', 'error'), dpdk_bind_helper._dpdk_execute('command'))
+
+ def test__dpdk_execute_failure(self):
+ conn = mock.Mock()
+ conn.execute = mock.Mock(return_value=(1, 'output', 'error'))
+ conn.provision_tool = mock.Mock(return_value='tool_path')
+ dpdk_bind_helper = DpdkBindHelper(conn)
+ with self.assertRaises(DpdkBindHelperException):
+ dpdk_bind_helper._dpdk_execute('command')
+
+ def test__addline(self):
+ conn = mock.Mock()
+
+ dpdk_bind_helper = DpdkBindHelper(conn)
+
+ dpdk_bind_helper._add_line(NETWORK_KERNEL, self.ONE_INPUT_LINE)
+
+ self.assertIsNotNone(dpdk_bind_helper.dpdk_status)
+ self.assertEqual(self.ONE_INPUT_LINE_PARSED, dpdk_bind_helper.dpdk_status[NETWORK_KERNEL])
+
+ def test__switch_active_dict_by_header(self):
+ line = "Crypto devices using DPDK-compatible driver"
+ olddict = 'olddict'
+ self.assertEqual(CRYPTO_DPDK, DpdkBindHelper._switch_active_dict(line, olddict))
+
+ def test__switch_active_dict_by_header_empty(self):
+ line = "<none>"
+ olddict = 'olddict'
+ self.assertEqual(olddict, DpdkBindHelper._switch_active_dict(line, olddict))
+
+ def test_parse_dpdk_status_output(self):
+ conn = mock.Mock()
+
+ dpdk_bind_helper = DpdkBindHelper(conn)
+
+ dpdk_bind_helper._parse_dpdk_status_output(self.EXAMPLE_OUTPUT)
+
+ self.maxDiff = None
+ self.assertEqual(self.PARSED_EXAMPLE, dpdk_bind_helper.dpdk_status)
+
+ def test_kernel_bound_pci_addresses(self):
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.return_value = 0, '', ''
+
+ expected = ['a', 'b', 3]
+
+ dpdk_helper = DpdkBindHelper(mock_ssh_helper)
+ dpdk_helper.dpdk_status = {
+ NETWORK_DPDK: [{'vpci': 4}, {'vpci': 5}, {'vpci': 'g'}],
+ NETWORK_KERNEL: [{'vpci': 'a'}, {'vpci': 'b'}, {'vpci': 3}],
+ CRYPTO_DPDK: [],
+ }
+
+ result = dpdk_helper.kernel_bound_pci_addresses
+ self.assertEqual(result, expected)
+
+ def test_find_net_devices_negative(self):
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.return_value = 1, 'error', 'debug'
+
+ dpdk_helper = DpdkBindHelper(mock_ssh_helper)
+
+ self.assertDictEqual(dpdk_helper.find_net_devices(), {})
+
+ def test_read_status(self):
+ conn = mock.Mock()
+ conn.execute = mock.Mock(return_value=(0, self.EXAMPLE_OUTPUT, ''))
+ conn.provision_tool = mock.Mock(return_value='path_to_tool')
+
+ dpdk_bind_helper = DpdkBindHelper(conn)
+
+ self.assertEqual(self.PARSED_EXAMPLE, dpdk_bind_helper.read_status())
+
+ def test__get_bound_pci_addresses(self):
+ conn = mock.Mock()
+
+ dpdk_bind_helper = DpdkBindHelper(conn)
+
+ dpdk_bind_helper._parse_dpdk_status_output(self.EXAMPLE_OUTPUT)
+
+ self.assertEqual(['0000:00:04.0', '0000:00:05.0'],
+ dpdk_bind_helper._get_bound_pci_addresses(NETWORK_DPDK))
+ self.assertEqual(['0000:00:03.0'],
+ dpdk_bind_helper._get_bound_pci_addresses(NETWORK_KERNEL))
+
+ def test_interface_driver_map(self):
+ conn = mock.Mock()
+
+ dpdk_bind_helper = DpdkBindHelper(conn)
+
+ dpdk_bind_helper._parse_dpdk_status_output(self.EXAMPLE_OUTPUT)
+
+ self.assertEqual({'0000:00:04.0': 'igb_uio',
+ '0000:00:03.0': 'virtio-pci',
+ '0000:00:05.0': 'igb_uio',
+ },
+ dpdk_bind_helper.interface_driver_map)
+
+ def test_bind(self):
+ conn = mock.Mock()
+ conn.execute = mock.Mock(return_value=(0, '', ''))
+ conn.join_bin_path.return_value = os.path.join(self.bin_path, DpdkBindHelper.DPDK_DEVBIND)
+
+ dpdk_bind_helper = DpdkBindHelper(conn)
+ dpdk_bind_helper.read_status = mock.Mock()
+
+ dpdk_bind_helper.bind(['0000:00:03.0', '0000:00:04.0'], 'my_driver')
+
+ conn.execute.assert_called_with('sudo /opt/nsb_bin/dpdk-devbind.py --force '
+ '-b my_driver 0000:00:03.0 0000:00:04.0')
+ dpdk_bind_helper.read_status.assert_called_once()
+
+ def test_bind_single_pci(self):
+ conn = mock.Mock()
+ conn.execute = mock.Mock(return_value=(0, '', ''))
+ conn.join_bin_path.return_value = os.path.join(self.bin_path, DpdkBindHelper.DPDK_DEVBIND)
+
+ dpdk_bind_helper = DpdkBindHelper(conn)
+ dpdk_bind_helper.read_status = mock.Mock()
+
+ dpdk_bind_helper.bind('0000:00:03.0', 'my_driver')
+
+ conn.execute.assert_called_with('sudo /opt/nsb_bin/dpdk-devbind.py --force '
+ '-b my_driver 0000:00:03.0')
+ dpdk_bind_helper.read_status.assert_called_once()
+
+ def test_rebind_drivers(self):
+ conn = mock.Mock()
+
+ dpdk_bind_helper = DpdkBindHelper(conn)
+
+ dpdk_bind_helper.bind = mock.Mock()
+ dpdk_bind_helper.used_drivers = {
+ 'd1': ['0000:05:00.0'],
+ 'd3': ['0000:05:01.0', '0000:05:02.0'],
+ }
+
+ dpdk_bind_helper.rebind_drivers()
+
+ dpdk_bind_helper.bind.assert_any_call(['0000:05:00.0'], 'd1', True)
+ dpdk_bind_helper.bind.assert_any_call(['0000:05:01.0', '0000:05:02.0'], 'd3', True)
+
+ def test_save_used_drivers(self):
+ conn = mock.Mock()
+ dpdk_bind_helper = DpdkBindHelper(conn)
+ dpdk_bind_helper.dpdk_status = self.PARSED_EXAMPLE
+
+ dpdk_bind_helper.save_used_drivers()
+
+ expected = {
+ 'igb_uio': ['0000:00:04.0', '0000:00:05.0'],
+ 'virtio-pci': ['0000:00:03.0'],
+ }
+
+ self.assertDictEqual(expected, dpdk_bind_helper.used_drivers)
+
+ def test_force_dpdk_rebind(self):
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.return_value = 0, '', ''
+
+ dpdk_helper = DpdkBindHelper(mock_ssh_helper, 'driver2')
+ dpdk_helper.dpdk_status = {
+ NETWORK_DPDK: [
+ {
+ 'vpci': 'pci1',
+ },
+ {
+ 'vpci': 'pci3',
+ },
+ {
+ 'vpci': 'pci6',
+ },
+ {
+ 'vpci': 'pci3',
+ },
+ ]
+ }
+ dpdk_helper.real_kernel_interface_driver_map = {
+ 'pci1': 'real_driver1',
+ 'pci2': 'real_driver2',
+ 'pci3': 'real_driver1',
+ 'pci4': 'real_driver4',
+ 'pci6': 'real_driver6',
+ }
+ dpdk_helper.load_dpdk_driver = mock.Mock()
+ dpdk_helper.read_status = mock.Mock()
+ dpdk_helper.save_real_kernel_interface_driver_map = mock.Mock()
+ dpdk_helper.save_used_drivers = mock.Mock()
+ dpdk_helper.bind = mock_bind = mock.Mock()
+
+ dpdk_helper.force_dpdk_rebind()
+ self.assertEqual(mock_bind.call_count, 2)
+
+ def test_save_real_kernel_drivers(self):
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.return_value = 0, '', ''
+
+ dpdk_helper = DpdkBindHelper(mock_ssh_helper)
+ dpdk_helper.real_kernel_drivers = {
+ 'abc': '123',
+ }
+ dpdk_helper.real_kernel_interface_driver_map = {
+ 'abc': 'AAA',
+ 'def': 'DDD',
+ 'abs': 'AAA',
+ 'ghi': 'GGG',
+ }
+
+ # save_used_drivers must be called before save_real_kernel_drivers can be
+ with self.assertRaises(AttributeError):
+ dpdk_helper.save_real_kernel_drivers()
+
+ dpdk_helper.save_used_drivers()
+
+ expected_used_drivers = {
+ 'AAA': ['abc', 'abs'],
+ 'DDD': ['def'],
+ 'GGG': ['ghi'],
+ }
+ dpdk_helper.save_real_kernel_drivers()
+ self.assertDictEqual(dpdk_helper.used_drivers, expected_used_drivers)
+ self.assertDictEqual(dpdk_helper.real_kernel_drivers, {})
+
+ def test_get_real_kernel_driver(self):
+ mock_ssh_helper = mock.Mock()
+ mock_ssh_helper.execute.side_effect = [
+ (0, 'non-matching text', ''),
+ (0, 'pre Kernel modules: real_driver1', ''),
+ (0, 'before Ethernet middle Virtio network device after', ''),
+ ]
+
+ dpdk_helper = DpdkBindHelper(mock_ssh_helper)
+
+ self.assertIsNone(dpdk_helper.get_real_kernel_driver('abc'))
+ self.assertEqual(dpdk_helper.get_real_kernel_driver('abc'), 'real_driver1')
+ self.assertEqual(dpdk_helper.get_real_kernel_driver('abc'), DpdkBindHelper.VIRTIO_DRIVER)
diff --git a/tests/unit/network_services/helpers/test_iniparser.py b/yardstick/tests/unit/network_services/helpers/test_iniparser.py
index bd27b497e..1a09f0761 100644
--- a/tests/unit/network_services/helpers/test_iniparser.py
+++ b/yardstick/tests/unit/network_services/helpers/test_iniparser.py
@@ -13,13 +13,11 @@
# limitations under the License.
#
-from __future__ import absolute_import
-
import unittest
from contextlib import contextmanager
import mock
-from tests.unit import STL_MOCKS
+from yardstick.tests import STL_MOCKS
STLClient = mock.MagicMock()
@@ -105,7 +103,7 @@ class TestBaseParser(unittest.TestCase):
@staticmethod
def make_open(text_blob):
@contextmanager
- def internal_open(*args, **kwargs):
+ def internal_open(*args):
yield text_blob.split('\n')
return internal_open
@@ -136,7 +134,7 @@ class TestConfigParser(unittest.TestCase):
@staticmethod
def make_open(text_blob):
@contextmanager
- def internal_open(*args, **kwargs):
+ def internal_open(*args):
yield text_blob.split('\n')
return internal_open
diff --git a/tests/unit/network_services/helpers/test_samplevnf_helper.py b/yardstick/tests/unit/network_services/helpers/test_samplevnf_helper.py
index 05acdfaa9..e66e7fbb8 100644
--- a/tests/unit/network_services/helpers/test_samplevnf_helper.py
+++ b/yardstick/tests/unit/network_services/helpers/test_samplevnf_helper.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright (c) 2016-2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,14 +13,12 @@
# limitations under the License.
#
-from __future__ import absolute_import
-from __future__ import division
-
-import unittest
-
import mock
+import os
+import six
+import unittest
-from yardstick.network_services.helpers.samplevnf_helper import MultiPortConfig, PortPairs
+from yardstick.network_services.helpers import samplevnf_helper
from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
@@ -30,31 +26,32 @@ class TestPortPairs(unittest.TestCase):
def test_port_pairs_list(self):
vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
interfaces = vnfd['vdu'][0]['external-interface']
- port_pairs = PortPairs(interfaces)
+ port_pairs = samplevnf_helper.PortPairs(interfaces)
self.assertEqual(port_pairs.port_pair_list, [("xe0", "xe1")])
def test_valid_networks(self):
vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
interfaces = vnfd['vdu'][0]['external-interface']
- port_pairs = PortPairs(interfaces)
- self.assertEqual(port_pairs.valid_networks, [("uplink_0", "downlink_0")])
+ port_pairs = samplevnf_helper.PortPairs(interfaces)
+ self.assertEqual(port_pairs.valid_networks, [
+ ("uplink_0", "downlink_0")])
def test_all_ports(self):
vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
interfaces = vnfd['vdu'][0]['external-interface']
- port_pairs = PortPairs(interfaces)
+ port_pairs = samplevnf_helper.PortPairs(interfaces)
self.assertEqual(set(port_pairs.all_ports), {"xe0", "xe1"})
def test_uplink_ports(self):
vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
interfaces = vnfd['vdu'][0]['external-interface']
- port_pairs = PortPairs(interfaces)
+ port_pairs = samplevnf_helper.PortPairs(interfaces)
self.assertEqual(port_pairs.uplink_ports, ["xe0"])
def test_downlink_ports(self):
vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
interfaces = vnfd['vdu'][0]['external-interface']
- port_pairs = PortPairs(interfaces)
+ port_pairs = samplevnf_helper.PortPairs(interfaces)
self.assertEqual(port_pairs.downlink_ports, ["xe1"])
@@ -63,14 +60,14 @@ class TestMultiPortConfig(unittest.TestCase):
VNFD_0 = {'short-name': 'VpeVnf',
'vdu':
[{'routing_table':
- [{'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'},
- {'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'}],
+ [{'network': '152.16.100.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'if': 'xe0'},
+ {'network': '152.16.40.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'if': 'xe1'}],
'description': 'VPE approximation using DPDK',
'name': 'vpevnf-baremetal',
'nd_route_tbl':
@@ -121,7 +118,7 @@ class TestMultiPortConfig(unittest.TestCase):
},
'vnfd-connection-point-ref': 'xe1',
'name': 'xe1'}
- ]}],
+ ]}],
'description': 'Vpe approximation using DPDK',
'mgmt-interface':
{'vdu-id': 'vpevnf-baremetal',
@@ -143,67 +140,81 @@ class TestMultiPortConfig(unittest.TestCase):
}
}
+ def setUp(self):
+ self._mock_open = mock.patch.object(six.moves.builtins, 'open')
+ self.mock_open = self._mock_open.start()
+ self._mock_config_parser = mock.patch.object(
+ samplevnf_helper, 'ConfigParser')
+ self.mock_config_parser = self._mock_config_parser.start()
+
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self._mock_open.stop()
+ self._mock_config_parser.stop()
+
def test_validate_ip_and_prefixlen(self):
- ip_addr, prefix_len = MultiPortConfig.validate_ip_and_prefixlen('10.20.30.40', '16')
+ ip_addr, prefix_len = (
+ samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen(
+ '10.20.30.40', '16'))
self.assertEqual(ip_addr, '10.20.30.40')
self.assertEqual(prefix_len, 16)
- ip_addr, prefix_len = MultiPortConfig.validate_ip_and_prefixlen('::1', '40')
+ ip_addr, prefix_len = (
+ samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen(
+ '::1', '40'))
self.assertEqual(ip_addr, '0000:0000:0000:0000:0000:0000:0000:0001')
self.assertEqual(prefix_len, 40)
def test_validate_ip_and_prefixlen_negative(self):
with self.assertRaises(AttributeError):
- MultiPortConfig.validate_ip_and_prefixlen('', '')
+ samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen('', '')
with self.assertRaises(AttributeError):
- MultiPortConfig.validate_ip_and_prefixlen('10.20.30.400', '16')
+ samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen(
+ '10.20.30.400', '16')
with self.assertRaises(AttributeError):
- MultiPortConfig.validate_ip_and_prefixlen('10.20.30.40', '33')
+ samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen(
+ '10.20.30.40', '33')
with self.assertRaises(AttributeError):
- MultiPortConfig.validate_ip_and_prefixlen('::1', '129')
+ samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen(
+ '::1', '129')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test___init__(self, mock_open, mock_os, ConfigParser):
+ @mock.patch.object(os.path, 'isfile', return_value=False)
+ def test___init__(self, *args):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
self.assertEqual(0, opnfv_vnf.swq)
- mock_os.path = mock.MagicMock()
- mock_os.path.isfile = mock.Mock(return_value=False)
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
self.assertEqual(0, opnfv_vnf.swq)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_update_timer(self, mock_open, mock_os, ConfigParser):
+ def test_update_timer(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.update_write_parser = mock.MagicMock()
- self.assertEqual(None, opnfv_vnf.update_timer())
+ self.assertIsNone(opnfv_vnf.update_timer())
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_generate_script(self, mock_open, mock_os, ConfigParser):
+ def test_generate_script(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = VnfdHelper(self.VNFD_0)
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
@@ -212,21 +223,19 @@ class TestMultiPortConfig(unittest.TestCase):
mock.Mock(return_value={'link_config': 0, 'arp_config': '',
'arp_config6': '', 'actions': '',
'arp_route_tbl': '', 'arp_route_tbl6': '',
- 'rules': ''})
+ 'flows': ''})
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
opnfv_vnf.lb_config = 'HW'
self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_generate_script_data(self, mock_open, mock_os, ConfigParser):
+ def test_generate_script_data(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
@@ -240,75 +249,13 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.generate_rule_config = mock.Mock()
self.assertIsNotNone(opnfv_vnf.generate_script_data())
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_generate_rule_config(self, mock_open, mock_os, ConfigParser):
+ def test_generate_arp_config6(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
- opnfv_vnf.get_config_tpl_data = mock.MagicMock()
- opnfv_vnf.socket = 0
- opnfv_vnf.start_core = 0
- opnfv_vnf.update_write_parser = mock.MagicMock()
- opnfv_vnf.generate_script_data = \
- mock.Mock(return_value={'link_config': 0, 'arp_config': '',
- 'arp_config6': '', 'actions': '',
- 'rules': ''})
- opnfv_vnf.port_pair_list = [("xe0", "xe1")]
- opnfv_vnf.get_port_pairs = mock.Mock()
- opnfv_vnf.vnf_type = 'ACL'
- opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
- opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
- opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
- opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
- opnfv_vnf.txrx_pipeline = ''
- opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
- opnfv_vnf.rules = ''
- self.assertIsNotNone(opnfv_vnf.generate_rule_config())
- opnfv_vnf.rules = 'new'
- self.assertIsNotNone(opnfv_vnf.generate_rule_config())
-
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_generate_action_config(self, mock_open, mock_os, ConfigParser):
- topology_file = mock.Mock()
- config_tpl = mock.Mock()
- tmp_file = mock.Mock()
- vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
- opnfv_vnf.get_config_tpl_data = mock.MagicMock()
- opnfv_vnf.socket = 0
- opnfv_vnf.start_core = 0
- opnfv_vnf.update_write_parser = mock.MagicMock()
- opnfv_vnf.generate_script_data = \
- mock.Mock(return_value={'link_config': 0, 'arp_config': '',
- 'arp_config6': '', 'actions': '',
- 'rules': ''})
- opnfv_vnf.port_pair_list = [("xe0", "xe1")]
- opnfv_vnf.get_port_pairs = mock.Mock()
- opnfv_vnf.vnf_type = 'VFW'
- opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
- opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
- opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
- opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
- opnfv_vnf.txrx_pipeline = ''
- opnfv_vnf.rules = ''
- self.assertIsNotNone(opnfv_vnf.generate_action_config())
-
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_generate_arp_config6(self, mock_open, mock_os, ConfigParser):
- topology_file = mock.Mock()
- config_tpl = mock.Mock()
- tmp_file = mock.Mock()
- vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
@@ -321,24 +268,24 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.get_port_pairs = mock.Mock()
opnfv_vnf.vnf_type = 'VFW'
opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
- opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
+ opnfv_vnf.get_netmask_gateway = mock.Mock(
+ return_value=u'255.255.255.0')
opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
- opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
+ opnfv_vnf.get_netmask_gateway6 = mock.Mock(
+ return_value=u'255.255.255.0')
opnfv_vnf.txrx_pipeline = ''
opnfv_vnf.rules = ''
opnfv_vnf.interfaces = mock.MagicMock()
opnfv_vnf.get_ports_gateway6 = mock.Mock()
self.assertIsNotNone(opnfv_vnf.generate_arp_config6())
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_generate_arp_config(self, mock_open, mock_os, ConfigParser):
+ def test_generate_arp_config(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
@@ -351,24 +298,24 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.get_port_pairs = mock.Mock()
opnfv_vnf.vnf_type = 'VFW'
opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
- opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
+ opnfv_vnf.get_netmask_gateway = mock.Mock(
+ return_value=u'255.255.255.0')
opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
- opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
+ opnfv_vnf.get_netmask_gateway6 = mock.Mock(
+ return_value=u'255.255.255.0')
opnfv_vnf.txrx_pipeline = ''
opnfv_vnf.rules = ''
opnfv_vnf.interfaces = mock.MagicMock()
opnfv_vnf.get_ports_gateway6 = mock.Mock()
self.assertIsNotNone(opnfv_vnf.generate_arp_config())
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_get_ports_gateway(self, mock_open, mock_os, ConfigParser):
+ def test_get_ports_gateway(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
@@ -387,15 +334,13 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
self.assertIsNotNone(opnfv_vnf.get_ports_gateway('xe0'))
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_get_ports_gateway6(self, mock_open, mock_os, ConfigParser):
+ def test_get_ports_gateway6(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
@@ -414,15 +359,13 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
self.assertIsNotNone(opnfv_vnf.get_ports_gateway6('xe0'))
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_get_netmask_gateway(self, mock_open, mock_os, ConfigParser):
+ def test_get_netmask_gateway(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
@@ -441,15 +384,13 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
self.assertIsNotNone(opnfv_vnf.get_netmask_gateway('xe0'))
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_get_netmask_gateway6(self, mock_open, mock_os, ConfigParser):
+ def test_get_netmask_gateway6(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
@@ -468,16 +409,14 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
self.assertIsNotNone(opnfv_vnf.get_netmask_gateway6('xe0'))
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_generate_link_config(self, mock_open, mock_os, ConfigParser):
+ def test_generate_link_config(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
@@ -495,20 +434,19 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
opnfv_vnf.all_ports = ['32', '1', '987']
- opnfv_vnf.validate_ip_and_prefixlen = mock.Mock(return_value=('10.20.30.40', 16))
+ opnfv_vnf.validate_ip_and_prefixlen = mock.Mock(
+ return_value=('10.20.30.40', 16))
result = opnfv_vnf.generate_link_config()
self.assertEqual(len(result.splitlines()), 9)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_generate_config(self, mock_open, mock_os, ConfigParser):
+ def test_generate_config(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.get_config_tpl_data = mock.MagicMock()
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
@@ -531,17 +469,13 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.is_openstack = False
self.assertIsNone(opnfv_vnf.generate_config())
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_get_config_tpl_data(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_get_config_tpl_data(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -555,17 +489,13 @@ class TestMultiPortConfig(unittest.TestCase):
self.assertIsNotNone(opnfv_vnf.get_config_tpl_data('filename'))
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_get_txrx_tpl_data(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_get_txrx_tpl_data(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -579,17 +509,13 @@ class TestMultiPortConfig(unittest.TestCase):
self.assertIsNotNone(opnfv_vnf.get_txrx_tpl_data('filename'))
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_init_write_parser_template(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_init_write_parser_template(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -608,17 +534,13 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.write_parser.set = mock.Mock()
self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_init_write_parser_template_2(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_init_write_parser_template_2(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -632,17 +554,13 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.read_parser.items = mock.MagicMock()
self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_update_write_parser(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_update_write_parser(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -658,17 +576,13 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.pipeline_counter = 0
self.assertIsNone(opnfv_vnf.update_write_parser({'filename': 1}))
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_get_worker_threads(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_get_worker_threads(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -692,17 +606,14 @@ class TestMultiPortConfig(unittest.TestCase):
result = opnfv_vnf.get_worker_threads(3)
self.assertEqual(2, result)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_generate_next_core_id(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ # TODO(elfoley): Split this test into smaller tests
+ def test_generate_next_core_id(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -719,26 +630,22 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.worker_config = '1t'
opnfv_vnf.start_core = 0
result = opnfv_vnf.generate_next_core_id()
- self.assertEqual(None, result)
+ self.assertIsNone(result)
opnfv_vnf.worker_config = '2t'
opnfv_vnf.start_core = 'a'
self.assertRaises(ValueError, opnfv_vnf.generate_next_core_id)
opnfv_vnf.worker_config = '2t'
opnfv_vnf.start_core = 1
result = opnfv_vnf.generate_next_core_id()
- self.assertEqual(None, result)
+ self.assertIsNone(result)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_generate_lb_to_port_pair_mapping(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_generate_lb_to_port_pair_mapping(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = VnfdHelper(self.VNFD_0)
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.txrx_pipeline = ''
@@ -754,24 +661,20 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.worker_config = '1t'
opnfv_vnf.start_core = 0
opnfv_vnf.lb_count = 1
- opnfv_vnf._port_pairs = PortPairs(vnfd_mock.interfaces)
+ opnfv_vnf._port_pairs = samplevnf_helper.PortPairs(vnfd_mock.interfaces)
opnfv_vnf.port_pair_list = opnfv_vnf._port_pairs.port_pair_list
result = opnfv_vnf.generate_lb_to_port_pair_mapping()
- self.assertEqual(None, result)
+ self.assertIsNone(result)
result = opnfv_vnf.set_priv_to_pub_mapping()
self.assertEqual('(0,1)', result)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_set_priv_que_handler(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_set_priv_que_handler(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = VnfdHelper(self.VNFD_0)
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -790,11 +693,9 @@ class TestMultiPortConfig(unittest.TestCase):
opnfv_vnf.start_core = 0
opnfv_vnf.lb_count = 1
result = opnfv_vnf.set_priv_que_handler()
- self.assertEqual(None, result)
+ self.assertIsNone(result)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- def test_generate_arp_route_tbl(self, *_):
+ def test_generate_arp_route_tbl(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = ""
@@ -821,7 +722,8 @@ class TestMultiPortConfig(unittest.TestCase):
},
]
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.all_ports = [3, 2, 5]
expected = 'routeadd net 32 10.20.30.40 0xfffff000\n' \
@@ -830,17 +732,13 @@ class TestMultiPortConfig(unittest.TestCase):
result = opnfv_vnf.generate_arp_route_tbl()
self.assertEqual(result, expected)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_generate_arpicmp_data(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_generate_arpicmp_data(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -875,17 +773,13 @@ class TestMultiPortConfig(unittest.TestCase):
result = opnfv_vnf.generate_arpicmp_data()
self.assertIsNotNone(result)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_generate_final_txrx_data(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_generate_final_txrx_data(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -917,17 +811,13 @@ class TestMultiPortConfig(unittest.TestCase):
result = opnfv_vnf.generate_final_txrx_data()
self.assertIsNotNone(result)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_generate_initial_txrx_data(self, mock_open, mock_os,
- ConfigParser, OrderedDict):
+ def test_generate_initial_txrx_data(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -971,17 +861,13 @@ class TestMultiPortConfig(unittest.TestCase):
result = opnfv_vnf.generate_initial_txrx_data()
self.assertIsNotNone(result)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_generate_lb_data(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_generate_lb_data(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -1008,17 +894,13 @@ class TestMultiPortConfig(unittest.TestCase):
result = opnfv_vnf.generate_lb_data()
self.assertIsNotNone(result)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_generate_vnf_data(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_generate_vnf_data(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -1057,17 +939,13 @@ class TestMultiPortConfig(unittest.TestCase):
result = opnfv_vnf.generate_vnf_data()
self.assertIsNotNone(result)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_generate_config_data(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_generate_config_data(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = VnfdHelper(self.VNFD_0)
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
@@ -1123,17 +1001,13 @@ class TestMultiPortConfig(unittest.TestCase):
result = opnfv_vnf.generate_config_data()
self.assertIsNone(result)
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
- def test_init_eal(self, mock_open, mock_os, ConfigParser,
- OrderedDict):
+ def test_init_eal(self):
topology_file = mock.Mock()
config_tpl = mock.Mock()
tmp_file = mock.Mock()
vnfd_mock = mock.MagicMock()
- opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
+ opnfv_vnf = samplevnf_helper.MultiPortConfig(
+ topology_file, config_tpl, tmp_file, vnfd_mock)
opnfv_vnf.socket = 0
opnfv_vnf.start_core = 0
opnfv_vnf.port_pair_list = [("xe0", "xe1")]
diff --git a/yardstick/tests/unit/network_services/helpers/vpp_helpers/__init__.py b/yardstick/tests/unit/network_services/helpers/vpp_helpers/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/helpers/vpp_helpers/__init__.py
diff --git a/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_multiple_loss_ratio_search.py b/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_multiple_loss_ratio_search.py
new file mode 100644
index 000000000..d3145546a
--- /dev/null
+++ b/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_multiple_loss_ratio_search.py
@@ -0,0 +1,2164 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+
+import mock
+
+from yardstick.network_services.helpers.vpp_helpers.multiple_loss_ratio_search import \
+ MultipleLossRatioSearch
+from yardstick.network_services.helpers.vpp_helpers.ndr_pdr_result import \
+ NdrPdrResult
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_interval import \
+ ReceiveRateInterval
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_measurement import \
+ ReceiveRateMeasurement
+from yardstick.network_services.traffic_profile.rfc2544 import PortPgIDMap
+
+
+class TestMultipleLossRatioSearch(unittest.TestCase):
+
+ def test___init__(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ self.assertEqual(True, algorithm.latency)
+ self.assertEqual(64, algorithm.pkt_size)
+ self.assertEqual(30, algorithm.final_trial_duration)
+ self.assertEqual(0.005, algorithm.final_relative_width)
+ self.assertEqual(2, algorithm.number_of_intermediate_phases)
+ self.assertEqual(1, algorithm.initial_trial_duration)
+ self.assertEqual(720, algorithm.timeout)
+ self.assertEqual(1, algorithm.doublings)
+
+ def test_double_relative_width(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ self.assertEqual(0.00997, algorithm.double_relative_width(0.005))
+
+ def test_double_step_down(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ self.assertEqual(99003.0, algorithm.double_step_down(0.005, 100000))
+
+ def test_expand_down(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ self.assertEqual(99003.0, algorithm.expand_down(0.005, 1, 100000))
+
+ def test_double_step_up(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ self.assertEqual(101007.0401907013,
+ algorithm.double_step_up(0.005, 100000))
+
+ def test_expand_up(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ self.assertEqual(101007.0401907013,
+ algorithm.expand_up(0.005, 1, 100000))
+
+ def test_half_relative_width(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ self.assertEqual(0.0025031328369998773,
+ algorithm.half_relative_width(0.005))
+
+ def test_half_step_up(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ self.assertEqual(100250.94142341711,
+ algorithm.half_step_up(0.005, 100000))
+
+ def test_init_generator(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(),
+ mock.Mock(), mock.Mock()))
+ self.assertEqual(ports, algorithm.ports)
+ self.assertEqual(port_pg_id, algorithm.port_pg_id)
+
+ def test_collect_kpi(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ algorithm.init_generator(ports, port_pg_id, mock.Mock, mock.Mock,
+ mock.Mock())
+ self.assertIsNone(algorithm.collect_kpi({}, 100000))
+
+ def test_narrow_down_ndr_and_pdr(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, 'ndrpdr') as \
+ mock_ndrpdr:
+ ndr_measured_low = ReceiveRateMeasurement(10, 13880000, 13879927,
+ 0)
+ ndr_measured_high = ReceiveRateMeasurement(10, 14880000, 14879927,
+ 0)
+ ndr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_low = ReceiveRateMeasurement(10, 11880000, 11879927,
+ 0)
+ pdr_measured_high = ReceiveRateMeasurement(10, 12880000, 12879927,
+ 0)
+ pdr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_interval = ReceiveRateInterval(ndr_measured_low,
+ ndr_measured_high)
+ pdr_interval = ReceiveRateInterval(pdr_measured_low,
+ pdr_measured_high)
+ starting_result = NdrPdrResult(ndr_interval, pdr_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock_ndrpdr.return_value = MultipleLossRatioSearch.ProgressState(
+ starting_result, 2, 30, 0.005, 0.0,
+ 4857361, 4977343)
+ self.assertEqual(
+ {'Result_NDR_LOWER': {'bandwidth_total_Gbps': 0.9327310944,
+ 'rate_total_pps': 1387992.7},
+ 'Result_NDR_UPPER': {
+ 'bandwidth_total_Gbps': 0.9999310943999999,
+ 'rate_total_pps': 1487992.7},
+ 'Result_NDR_packets_lost': {'packet_loss_ratio': 0.0,
+ 'packets_lost': 0.0},
+ 'Result_PDR_LOWER': {
+ 'bandwidth_total_Gbps': 0.7983310943999999,
+ 'rate_total_pps': 1187992.7},
+ 'Result_PDR_UPPER': {'bandwidth_total_Gbps': 0.8655310944,
+ 'rate_total_pps': 1287992.7},
+ 'Result_PDR_packets_lost': {'packet_loss_ratio': 0.0,
+ 'packets_lost': 0.0},
+ 'Result_stream0_NDR_LOWER': {'avg_latency': 3081.0,
+ 'max_latency': 3962.0,
+ 'min_latency': 1000.0},
+ 'Result_stream0_PDR_LOWER': {'avg_latency': 3081.0,
+ 'max_latency': 3962.0,
+ 'min_latency': 1000.0},
+ 'Result_stream1_NDR_LOWER': {'avg_latency': 3149.0,
+ 'max_latency': 3730.0,
+ 'min_latency': 500.0},
+ 'Result_stream1_PDR_LOWER': {'avg_latency': 3149.0,
+ 'max_latency': 3730.0,
+ 'min_latency': 500.0}},
+ algorithm.narrow_down_ndr_and_pdr(12880000, 15880000, 0.0))
+
+ def test__measure_and_update_state(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ starting_interval = ReceiveRateInterval(measured_low, measured_high)
+ starting_result = NdrPdrResult(starting_interval, starting_interval)
+ previous_state = MultipleLossRatioSearch.ProgressState(starting_result,
+ 2, 30, 0.005,
+ 0.0, 4857361,
+ 4977343)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure:
+ mock_measure.return_value = ReceiveRateMeasurement(1,
+ 4626121.09635,
+ 4626100, 13074)
+ state = algorithm._measure_and_update_state(previous_state,
+ 4626121.09635)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(1, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(4626121.09635,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(4626100,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(13074,
+ state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(4613026,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(4626100,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(13074.0,
+ state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(4613026.0,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.00283,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(1, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(4857361,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(4857339,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(84965,
+ state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(4772374,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(4857339,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(84965.0,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(4772374.0,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.01749,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(1, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(4626121.09635,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(4626100,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(13074,
+ state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(4613026,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(4626100,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(13074.0,
+ state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(4613026.0,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.00283,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(1, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(4857361,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(4857339,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(84965,
+ state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(4772374,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(4857339,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(84965.0,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(4772374.0,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.01749,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(2, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.005, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(4857361, state.minimum_transmit_rate)
+ self.assertEqual(4977343, state.maximum_transmit_rate)
+
+ def test_new_interval(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ measured = ReceiveRateMeasurement(1, 3972540.4108, 21758482, 0)
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ result = algorithm._new_interval(receive_rate_interval, measured, 0.0)
+ self.assertIsInstance(result, ReceiveRateInterval)
+ self.assertEqual(1, result.measured_low.duration)
+ self.assertEqual(3972540.4108, result.measured_low.target_tr)
+ self.assertEqual(21758482, result.measured_low.transmit_count)
+ self.assertEqual(0, result.measured_low.loss_count)
+ self.assertEqual(21758482, result.measured_low.receive_count)
+ self.assertEqual(21758482, result.measured_low.transmit_rate)
+ self.assertEqual(0.0, result.measured_low.loss_rate)
+ self.assertEqual(21758482.0, result.measured_low.receive_rate)
+ self.assertEqual(0.0, result.measured_low.loss_fraction)
+ self.assertEqual(1, result.measured_high.duration)
+ self.assertEqual(4857361, result.measured_high.target_tr)
+ self.assertEqual(4857339, result.measured_high.transmit_count)
+ self.assertEqual(84965, result.measured_high.loss_count)
+ self.assertEqual(4772374, result.measured_high.receive_count)
+ self.assertEqual(4857339, result.measured_high.transmit_rate)
+ self.assertEqual(84965.0, result.measured_high.loss_rate)
+ self.assertEqual(4772374.0, result.measured_high.receive_rate)
+ self.assertEqual(0.01749, result.measured_high.loss_fraction)
+
+ def test_new_interval_zero(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ measured = ReceiveRateMeasurement(1, 4977343, 21758482, 0)
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ result = algorithm._new_interval(receive_rate_interval, measured, 0.0)
+ self.assertIsInstance(result, ReceiveRateInterval)
+ self.assertEqual(1, result.measured_low.duration)
+ self.assertEqual(4857361.0, result.measured_low.target_tr)
+ self.assertEqual(4857339, result.measured_low.transmit_count)
+ self.assertEqual(84965, result.measured_low.loss_count)
+ self.assertEqual(4772374, result.measured_low.receive_count)
+ self.assertEqual(4857339.0, result.measured_low.transmit_rate)
+ self.assertEqual(84965.0, result.measured_low.loss_rate)
+ self.assertEqual(4772374.0, result.measured_low.receive_rate)
+ self.assertEqual(0.01749, result.measured_low.loss_fraction)
+ self.assertEqual(1, result.measured_high.duration)
+ self.assertEqual(4977343.0, result.measured_high.target_tr)
+ self.assertEqual(21758482, result.measured_high.transmit_count)
+ self.assertEqual(0, result.measured_high.loss_count)
+ self.assertEqual(21758482, result.measured_high.receive_count)
+ self.assertEqual(21758482.0, result.measured_high.transmit_rate)
+ self.assertEqual(0.0, result.measured_high.loss_rate)
+ self.assertEqual(21758482.0, result.measured_high.receive_rate)
+ self.assertEqual(0.0, result.measured_high.loss_fraction)
+
+ def test_new_interval_one(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ measured = ReceiveRateMeasurement(1, 5000000, 2175848, 0)
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ result = algorithm._new_interval(receive_rate_interval, measured, 0.0)
+ self.assertIsInstance(result, ReceiveRateInterval)
+ self.assertEqual(1, result.measured_low.duration)
+ self.assertEqual(4857361.0, result.measured_low.target_tr)
+ self.assertEqual(4857339, result.measured_low.transmit_count)
+ self.assertEqual(84965, result.measured_low.loss_count)
+ self.assertEqual(4772374, result.measured_low.receive_count)
+ self.assertEqual(4857339.0, result.measured_low.transmit_rate)
+ self.assertEqual(84965.0, result.measured_low.loss_rate)
+ self.assertEqual(4772374.0, result.measured_low.receive_rate)
+ self.assertEqual(0.01749, result.measured_low.loss_fraction)
+ self.assertEqual(1, result.measured_high.duration)
+ self.assertEqual(4977343.0, result.measured_high.target_tr)
+ self.assertEqual(4977320, result.measured_high.transmit_count)
+ self.assertEqual(119959, result.measured_high.loss_count)
+ self.assertEqual(4857361, result.measured_high.receive_count)
+ self.assertEqual(4977320.0, result.measured_high.transmit_rate)
+ self.assertEqual(119959.0, result.measured_high.loss_rate)
+ self.assertEqual(4857361.0, result.measured_high.receive_rate)
+ self.assertEqual(0.0241, result.measured_high.loss_fraction)
+
+ def test_new_interval_valid_1st(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ measured = ReceiveRateMeasurement(1, 4000000, 2175848, 0)
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ result = algorithm._new_interval(receive_rate_interval, measured, 0.5)
+ self.assertIsInstance(result, ReceiveRateInterval)
+ self.assertEqual(1, result.measured_low.duration)
+ self.assertEqual(4857361.0, result.measured_low.target_tr)
+ self.assertEqual(4857339, result.measured_low.transmit_count)
+ self.assertEqual(84965, result.measured_low.loss_count)
+ self.assertEqual(4772374, result.measured_low.receive_count)
+ self.assertEqual(4857339.0, result.measured_low.transmit_rate)
+ self.assertEqual(84965.0, result.measured_low.loss_rate)
+ self.assertEqual(4772374.0, result.measured_low.receive_rate)
+ self.assertEqual(0.01749, result.measured_low.loss_fraction)
+ self.assertEqual(1, result.measured_high.duration)
+ self.assertEqual(4977343.0, result.measured_high.target_tr)
+ self.assertEqual(4977320, result.measured_high.transmit_count)
+ self.assertEqual(119959, result.measured_high.loss_count)
+ self.assertEqual(4857361, result.measured_high.receive_count)
+ self.assertEqual(4977320.0, result.measured_high.transmit_rate)
+ self.assertEqual(119959.0, result.measured_high.loss_rate)
+ self.assertEqual(4857361.0, result.measured_high.receive_rate)
+ self.assertEqual(0.0241, result.measured_high.loss_fraction)
+
+ def test_new_interval_valid_1st_loss(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ measured = ReceiveRateMeasurement(1, 4000000, 2175848, 1000000)
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ result = algorithm._new_interval(receive_rate_interval, measured, 0.02)
+ self.assertIsInstance(result, ReceiveRateInterval)
+ self.assertEqual(1, result.measured_low.duration)
+ self.assertEqual(4000000.0, result.measured_low.target_tr)
+ self.assertEqual(2175848, result.measured_low.transmit_count)
+ self.assertEqual(1000000, result.measured_low.loss_count)
+ self.assertEqual(1175848, result.measured_low.receive_count)
+ self.assertEqual(2175848.0, result.measured_low.transmit_rate)
+ self.assertEqual(1000000.0, result.measured_low.loss_rate)
+ self.assertEqual(1175848.0, result.measured_low.receive_rate)
+ self.assertEqual(0.45959, result.measured_low.loss_fraction)
+ self.assertEqual(1, result.measured_high.duration)
+ self.assertEqual(4977343.0, result.measured_high.target_tr)
+ self.assertEqual(4977320, result.measured_high.transmit_count)
+ self.assertEqual(119959, result.measured_high.loss_count)
+ self.assertEqual(4857361, result.measured_high.receive_count)
+ self.assertEqual(4977320.0, result.measured_high.transmit_rate)
+ self.assertEqual(119959.0, result.measured_high.loss_rate)
+ self.assertEqual(4857361.0, result.measured_high.receive_rate)
+ self.assertEqual(0.0241, result.measured_high.loss_fraction)
+
+ def test_new_interval_valid_2nd(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ measured = ReceiveRateMeasurement(1, 5000000, 2175848, 0)
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ result = algorithm._new_interval(receive_rate_interval, measured, 0.5)
+ self.assertIsInstance(result, ReceiveRateInterval)
+ self.assertEqual(1, result.measured_low.duration)
+ self.assertEqual(4977343.0, result.measured_low.target_tr)
+ self.assertEqual(4977320, result.measured_low.transmit_count)
+ self.assertEqual(119959, result.measured_low.loss_count)
+ self.assertEqual(4857361, result.measured_low.receive_count)
+ self.assertEqual(4977320.0, result.measured_low.transmit_rate)
+ self.assertEqual(119959.0, result.measured_low.loss_rate)
+ self.assertEqual(4857361.0, result.measured_low.receive_rate)
+ self.assertEqual(0.0241, result.measured_low.loss_fraction)
+ self.assertEqual(1, result.measured_high.duration)
+ self.assertEqual(5000000.0, result.measured_high.target_tr)
+ self.assertEqual(2175848, result.measured_high.transmit_count)
+ self.assertEqual(0, result.measured_high.loss_count)
+ self.assertEqual(2175848, result.measured_high.receive_count)
+ self.assertEqual(2175848.0, result.measured_high.transmit_rate)
+ self.assertEqual(0.0, result.measured_high.loss_rate)
+ self.assertEqual(2175848.0, result.measured_high.receive_rate)
+ self.assertEqual(0.0, result.measured_high.loss_fraction)
+
+ def test_new_interval_valid_3rd(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ measured = ReceiveRateMeasurement(1, 4867361, 2175848, 0)
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ result = algorithm._new_interval(receive_rate_interval, measured, 0.5)
+ self.assertIsInstance(result, ReceiveRateInterval)
+ self.assertEqual(1, result.measured_low.duration)
+ self.assertEqual(4867361.0, result.measured_low.target_tr)
+ self.assertEqual(2175848, result.measured_low.transmit_count)
+ self.assertEqual(0, result.measured_low.loss_count)
+ self.assertEqual(2175848, result.measured_low.receive_count)
+ self.assertEqual(2175848.0, result.measured_low.transmit_rate)
+ self.assertEqual(0.0, result.measured_low.loss_rate)
+ self.assertEqual(2175848.0, result.measured_low.receive_rate)
+ self.assertEqual(0.0, result.measured_low.loss_fraction)
+ self.assertEqual(1, result.measured_high.duration)
+ self.assertEqual(4977343.0, result.measured_high.target_tr)
+ self.assertEqual(4977320, result.measured_high.transmit_count)
+ self.assertEqual(119959, result.measured_high.loss_count)
+ self.assertEqual(4857361, result.measured_high.receive_count)
+ self.assertEqual(4977320.0, result.measured_high.transmit_rate)
+ self.assertEqual(119959.0, result.measured_high.loss_rate)
+ self.assertEqual(4857361.0, result.measured_high.receive_rate)
+ self.assertEqual(0.0241, result.measured_high.loss_fraction)
+
+ def test_new_interval_valid_3rd_loss(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ measured = ReceiveRateMeasurement(1, 4867361, 2175848, 1000000)
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ result = algorithm._new_interval(receive_rate_interval, measured, 0.2)
+ self.assertIsInstance(result, ReceiveRateInterval)
+ self.assertEqual(1, result.measured_low.duration)
+ self.assertEqual(4857361.0, result.measured_low.target_tr)
+ self.assertEqual(4857339, result.measured_low.transmit_count)
+ self.assertEqual(84965, result.measured_low.loss_count)
+ self.assertEqual(4772374, result.measured_low.receive_count)
+ self.assertEqual(4857339.0, result.measured_low.transmit_rate)
+ self.assertEqual(84965.0, result.measured_low.loss_rate)
+ self.assertEqual(4772374.0, result.measured_low.receive_rate)
+ self.assertEqual(0.01749, result.measured_low.loss_fraction)
+ self.assertEqual(1, result.measured_high.duration)
+ self.assertEqual(4867361.0, result.measured_high.target_tr)
+ self.assertEqual(2175848, result.measured_high.transmit_count)
+ self.assertEqual(1000000, result.measured_high.loss_count)
+ self.assertEqual(1175848, result.measured_high.receive_count)
+ self.assertEqual(2175848.0, result.measured_high.transmit_rate)
+ self.assertEqual(1000000.0, result.measured_high.loss_rate)
+ self.assertEqual(1175848.0, result.measured_high.receive_rate)
+ self.assertEqual(0.45959, result.measured_high.loss_fraction)
+
+ def test_ndrpdr(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure:
+ measured_low = ReceiveRateMeasurement(30, 14880000, 14879927, 0)
+ measured_high = ReceiveRateMeasurement(30, 14880000, 14879927, 0)
+ measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ starting_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ starting_result = NdrPdrResult(starting_interval,
+ starting_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 30, 0.005, 0.0, 14880000,
+ 14880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(14880000,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.005, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_ndr_rel_width(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ measured_low = ReceiveRateMeasurement(30, 880000, 879927, 0)
+ measured_high = ReceiveRateMeasurement(30, 14880000, 14879927, 0)
+ measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ starting_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ ending_interval = ReceiveRateInterval(measured_high, measured_high)
+ starting_result = NdrPdrResult(starting_interval,
+ starting_interval)
+ ending_result = NdrPdrResult(ending_interval, ending_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(ending_result, -1, 30,
+ 0.005, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 30, 0.005, 0.0, 14880000,
+ 14880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(14880000,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.005, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_pdr_rel_width(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ ndr_measured_low = ReceiveRateMeasurement(30, 14880000, 14879927,
+ 0)
+ ndr_measured_high = ReceiveRateMeasurement(30, 14880000, 14879927,
+ 0)
+ ndr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_low = ReceiveRateMeasurement(30, 880000, 879927, 0)
+ pdr_measured_high = ReceiveRateMeasurement(30, 14880000, 14879927,
+ 0)
+ pdr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_interval = ReceiveRateInterval(ndr_measured_low,
+ ndr_measured_high)
+ pdr_interval = ReceiveRateInterval(pdr_measured_low,
+ pdr_measured_high)
+ starting_result = NdrPdrResult(ndr_interval, pdr_interval)
+ ending_result = NdrPdrResult(ndr_interval, ndr_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(ending_result, -1, 30,
+ 0.005, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 30, 0.005, 0.0, 14880000,
+ 14880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(14880000,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.005, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_ndr_lo_duration(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ measured_low = ReceiveRateMeasurement(30, 14880000, 14879927, 0)
+ measured_high = ReceiveRateMeasurement(30, 14880000, 14879927, 100)
+ measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ starting_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ starting_result = NdrPdrResult(starting_interval,
+ starting_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(starting_result, -1, 30,
+ 0.005, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 50, 0.005, 0.0, 14880000,
+ 14880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(14880000,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(100,
+ state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(14879827,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(3.33333,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(495994.23333,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(1e-05,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(100,
+ state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(14879827,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(3.33333,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(495994.23333,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(1e-05,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.005, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_ndr_hi_duration(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ measured_low = ReceiveRateMeasurement(60, 14880000, 14879927, 0)
+ measured_high = ReceiveRateMeasurement(30, 14880000, 14879927, 100)
+ measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ starting_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ starting_result = NdrPdrResult(starting_interval,
+ starting_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(starting_result, -1, 30,
+ 0.005, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 50, 0.005, 0.0, 14880000,
+ 14880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(60.0, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(14880000,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(247998.78333,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(247998.78333,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(100,
+ state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(14879827,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(3.33333,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(495994.23333,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(1e-05,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(60.0, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(247998.78333,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(247998.78333,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(100,
+ state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(14879827,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(3.33333,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(495994.23333,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(1e-05,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.005, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_error(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=0)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure:
+ measured_low = ReceiveRateMeasurement(30, 14880000, 14879927, 0)
+ measured_high = ReceiveRateMeasurement(30, 14880000, 14879927, 0)
+ measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ starting_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ starting_result = NdrPdrResult(starting_interval,
+ starting_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 30, 0.005, 0.0, 14880000,
+ 14880000)
+ with self.assertRaises(RuntimeError) as raised:
+ algorithm.ndrpdr(previous_state)
+
+ self.assertIn('Optimized search takes too long.',
+ str(raised.exception))
+
+ def test_ndrpdr_update_state_ndr_hi(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ ndr_measured_low = ReceiveRateMeasurement(30, 10880000, 10879927,
+ 0)
+ ndr_measured_high = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 0)
+ ndr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_low = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 0)
+ pdr_measured_high = ReceiveRateMeasurement(30, 14880000, 14879927,
+ 0)
+ pdr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_interval = ReceiveRateInterval(ndr_measured_low,
+ ndr_measured_high)
+ pdr_interval = ReceiveRateInterval(pdr_measured_low,
+ pdr_measured_high)
+ starting_result = NdrPdrResult(ndr_interval, pdr_interval)
+ ending_result = NdrPdrResult(pdr_interval, pdr_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(ending_result, -1, 30,
+ 0.2, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 30, 0.005, 0.0, 14880000,
+ 14880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(12880000.0,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(12879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(12879927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(429330.9,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(429330.9,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(14880000.0,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(12880000.0,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(12879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(12879927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(429330.9,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(429330.9,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.2, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_update_state_ndr_hi_duration(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ ndr_measured_low = ReceiveRateMeasurement(30, 10880000, 10879927,
+ 0)
+ ndr_measured_high = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 0)
+ ndr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_low = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 0)
+ pdr_measured_high = ReceiveRateMeasurement(30, 14880000, 14879927,
+ 0)
+ pdr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_interval = ReceiveRateInterval(ndr_measured_low,
+ ndr_measured_high)
+ pdr_interval = ReceiveRateInterval(pdr_measured_low,
+ pdr_measured_high)
+ starting_result = NdrPdrResult(ndr_interval, pdr_interval)
+ ending_result = NdrPdrResult(pdr_interval, pdr_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(ending_result, -1, 30,
+ 0.2, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 50, 0.005, 0.0, 4880000,
+ 10880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(12880000.0,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(12879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(12879927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(429330.9,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(429330.9,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(14880000.0,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(0, state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(12880000.0,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(12879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(12879927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(429330.9,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0, state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(429330.9,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(0, state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.2, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_update_state_ndr_lo(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ ndr_measured_low = ReceiveRateMeasurement(30, 10880000, 10879927,
+ 100000)
+ ndr_measured_high = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 100000)
+ ndr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_low = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 100000)
+ pdr_measured_high = ReceiveRateMeasurement(30, 14880000, 14879927,
+ 100000)
+ pdr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_interval = ReceiveRateInterval(ndr_measured_low,
+ ndr_measured_high)
+ pdr_interval = ReceiveRateInterval(pdr_measured_low,
+ pdr_measured_high)
+ starting_result = NdrPdrResult(ndr_interval, pdr_interval)
+ ending_result = NdrPdrResult(pdr_interval, pdr_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(ending_result, -1, 30,
+ 0.2, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 30, 0.005, 0.0, 100000,
+ 14880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(12880000.0,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(12879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(100000,
+ state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(12779927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(429330.9,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(425997.56667,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.00776,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(14880000.0,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(100000,
+ state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(14779927,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(492664.23333,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.00672,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(12880000.0,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(12879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(100000,
+ state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(12779927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(429330.9,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(425997.56667,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.00776,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(100000,
+ state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(14779927,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(492664.23333,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.00672,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.2, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_update_state_pdr_lo(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ ndr_measured_low = ReceiveRateMeasurement(30, 10880000, 10879927,
+ 0)
+ ndr_measured_high = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 0)
+ ndr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_low = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 100000)
+ pdr_measured_high = ReceiveRateMeasurement(30, 14880000, 14879927,
+ 100000)
+ pdr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_interval = ReceiveRateInterval(ndr_measured_low,
+ ndr_measured_high)
+ pdr_interval = ReceiveRateInterval(pdr_measured_low,
+ pdr_measured_high)
+ starting_result = NdrPdrResult(ndr_interval, pdr_interval)
+ ending_result = NdrPdrResult(pdr_interval, pdr_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(ending_result, -1, 30,
+ 0.2, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 30, 0.005, 0.0, 100000,
+ 14880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(12880000.0,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(12879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(100000,
+ state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(12779927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(429330.9,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(425997.56667,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.00776,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(14880000.0,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(100000,
+ state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(14779927,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(492664.23333,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.00672,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(12880000.0,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(12879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(100000,
+ state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(12779927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(429330.9,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(425997.56667,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.00776,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(100000,
+ state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(14779927,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(492664.23333,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.00672,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.2, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_update_state_pdr_lo_duration(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ ndr_measured_low = ReceiveRateMeasurement(30, 10880000, 10879927,
+ 0)
+ ndr_measured_high = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 0)
+ ndr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_low = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 100000)
+ pdr_measured_high = ReceiveRateMeasurement(30, 14880000, 14879927,
+ 100000)
+ pdr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_interval = ReceiveRateInterval(ndr_measured_low,
+ ndr_measured_high)
+ pdr_interval = ReceiveRateInterval(pdr_measured_low,
+ pdr_measured_high)
+ starting_result = NdrPdrResult(ndr_interval, pdr_interval)
+ ending_result = NdrPdrResult(pdr_interval, pdr_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(ending_result, -1, 30,
+ 0.2, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 50, 0.005, 0.0, 14880000,
+ 14880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(12880000.0,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(12879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(100000,
+ state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(12779927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(429330.9,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(425997.56667,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.00776,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(14880000.0,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(100000,
+ state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(14779927,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(492664.23333,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.00672,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(12880000.0,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(12879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(100000,
+ state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(12779927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(429330.9,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(425997.56667,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.00776,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(14880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(14879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(100000,
+ state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(14779927,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(495997.56667,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(492664.23333,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.00672,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.2, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_update_state_pdr_hi(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ ndr_measured_low = ReceiveRateMeasurement(30, 10880000, 10879927,
+ 0)
+ ndr_measured_high = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 100000)
+ ndr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_low = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 0)
+ pdr_measured_high = ReceiveRateMeasurement(30, 13880000, 14879927,
+ 0)
+ pdr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_interval = ReceiveRateInterval(ndr_measured_low,
+ ndr_measured_high)
+ pdr_interval = ReceiveRateInterval(pdr_measured_low,
+ pdr_measured_high)
+ starting_result = NdrPdrResult(ndr_interval, pdr_interval)
+ ending_result = NdrPdrResult(ndr_interval, ndr_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(ending_result, -1, 30,
+ 0.2, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 30, 0.005, 0.0, 100000,
+ 14880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(10880000.0,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(10879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(0,
+ state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(10879927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(362664.23333,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(362664.23333,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(12880000.0,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(12879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(100000,
+ state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(12779927,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(429330.9,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(425997.56667,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.00776,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(10880000.0,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(10879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(0,
+ state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(10879927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(362664.23333,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(362664.23333,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(12880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(12879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(100000,
+ state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(12779927,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(429330.9,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(425997.56667,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.00776,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.2, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_ndrpdr_update_state_pdr_hi_duration(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock(), mock.Mock,
+ mock.Mock()))
+ with mock.patch.object(algorithm, 'measure') as \
+ mock_measure, \
+ mock.patch.object(algorithm, '_measure_and_update_state') as \
+ mock__measure_and_update_state:
+ ndr_measured_low = ReceiveRateMeasurement(30, 10880000, 10879927,
+ 0)
+ ndr_measured_high = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 100000)
+ ndr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_low = ReceiveRateMeasurement(30, 12880000, 12879927,
+ 0)
+ pdr_measured_high = ReceiveRateMeasurement(30, 13880000, 14879927,
+ 0)
+ pdr_measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ pdr_measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ ndr_interval = ReceiveRateInterval(ndr_measured_low,
+ ndr_measured_high)
+ pdr_interval = ReceiveRateInterval(pdr_measured_low,
+ pdr_measured_high)
+ starting_result = NdrPdrResult(ndr_interval, pdr_interval)
+ ending_result = NdrPdrResult(ndr_interval, ndr_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock__measure_and_update_state.return_value = \
+ MultipleLossRatioSearch.ProgressState(ending_result, -1, 30,
+ 0.2, 0.0, 14880000,
+ 14880000)
+ previous_state = MultipleLossRatioSearch.ProgressState(
+ starting_result, -1, 50, 0.005, 0.0, 100000,
+ 10880000)
+ state = algorithm.ndrpdr(previous_state)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertIsInstance(state, MultipleLossRatioSearch.ProgressState)
+ self.assertEqual(30, state.result.ndr_interval.measured_low.duration)
+ self.assertEqual(10880000.0,
+ state.result.ndr_interval.measured_low.target_tr)
+ self.assertEqual(10879927,
+ state.result.ndr_interval.measured_low.transmit_count)
+ self.assertEqual(0,
+ state.result.ndr_interval.measured_low.loss_count)
+ self.assertEqual(10879927,
+ state.result.ndr_interval.measured_low.receive_count)
+ self.assertEqual(362664.23333,
+ state.result.ndr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_rate)
+ self.assertEqual(362664.23333,
+ state.result.ndr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.ndr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.ndr_interval.measured_high.duration)
+ self.assertEqual(12880000.0,
+ state.result.ndr_interval.measured_high.target_tr)
+ self.assertEqual(12879927,
+ state.result.ndr_interval.measured_high.transmit_count)
+ self.assertEqual(100000,
+ state.result.ndr_interval.measured_high.loss_count)
+ self.assertEqual(12779927,
+ state.result.ndr_interval.measured_high.receive_count)
+ self.assertEqual(429330.9,
+ state.result.ndr_interval.measured_high.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.ndr_interval.measured_high.loss_rate)
+ self.assertEqual(425997.56667,
+ state.result.ndr_interval.measured_high.receive_rate)
+ self.assertEqual(0.00776,
+ state.result.ndr_interval.measured_high.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_low.duration)
+ self.assertEqual(10880000.0,
+ state.result.pdr_interval.measured_low.target_tr)
+ self.assertEqual(10879927,
+ state.result.pdr_interval.measured_low.transmit_count)
+ self.assertEqual(0,
+ state.result.pdr_interval.measured_low.loss_count)
+ self.assertEqual(10879927,
+ state.result.pdr_interval.measured_low.receive_count)
+ self.assertEqual(362664.23333,
+ state.result.pdr_interval.measured_low.transmit_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_rate)
+ self.assertEqual(362664.23333,
+ state.result.pdr_interval.measured_low.receive_rate)
+ self.assertEqual(0.0,
+ state.result.pdr_interval.measured_low.loss_fraction)
+ self.assertEqual(30, state.result.pdr_interval.measured_high.duration)
+ self.assertEqual(12880000,
+ state.result.pdr_interval.measured_high.target_tr)
+ self.assertEqual(12879927,
+ state.result.pdr_interval.measured_high.transmit_count)
+ self.assertEqual(100000,
+ state.result.pdr_interval.measured_high.loss_count)
+ self.assertEqual(12779927,
+ state.result.pdr_interval.measured_high.receive_count)
+ self.assertEqual(429330.9,
+ state.result.pdr_interval.measured_high.transmit_rate)
+ self.assertEqual(3333.33333,
+ state.result.pdr_interval.measured_high.loss_rate)
+ self.assertEqual(425997.56667,
+ state.result.pdr_interval.measured_high.receive_rate)
+ self.assertEqual(0.00776,
+ state.result.pdr_interval.measured_high.loss_fraction)
+ self.assertEqual(-1, state.phases)
+ self.assertEqual(30, state.duration)
+ self.assertEqual(0.2, state.width_goal)
+ self.assertEqual(0.0, state.packet_loss_ratio)
+ self.assertEqual(14880000, state.minimum_transmit_rate)
+ self.assertEqual(14880000, state.maximum_transmit_rate)
+
+ def test_measure(self):
+ measurer = mock.MagicMock()
+ measurer.sent = 102563094
+ measurer.loss = 30502
+ algorithm = MultipleLossRatioSearch(measurer=measurer, latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.MagicMock(),
+ mock.Mock, mock.Mock()))
+ measurement = algorithm.measure(30, 3418770.3425, True)
+ self.assertIsInstance(measurement, ReceiveRateMeasurement)
+ self.assertEqual(30, measurement.duration)
+ self.assertEqual(3418770.3425, measurement.target_tr)
+ self.assertEqual(102563094, measurement.transmit_count)
+ self.assertEqual(30502, measurement.loss_count)
+ self.assertEqual(102532592, measurement.receive_count)
+ self.assertEqual(3418769.8, measurement.transmit_rate)
+ self.assertEqual(1016.73333, measurement.loss_rate)
+ self.assertEqual(3417753.06667, measurement.receive_rate)
+ self.assertEqual(0.0003, measurement.loss_fraction)
+
+ def test_perform_additional_measurements_based_on_ndrpdr_result(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ ports = [0, 1]
+ port_pg_id = PortPgIDMap()
+ port_pg_id.add_port(0)
+ port_pg_id.add_port(1)
+ self.assertIsNone(
+ algorithm.init_generator(ports, port_pg_id, mock.Mock, mock.Mock,
+ mock.Mock()))
+ result = mock.MagicMock()
+ result.ndr_interval.measured_low.target_tr.return_result = 100000
+ self.assertIsNone(
+ algorithm.perform_additional_measurements_based_on_ndrpdr_result(
+ result))
+
+ def test_display_single_bound(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ result_samples = {}
+ self.assertIsNone(
+ algorithm.display_single_bound(result_samples, 'NDR_LOWER',
+ 4857361, 64,
+ ['20/849/1069', '40/69/183']))
+ self.assertEqual(
+ {'Result_NDR_LOWER': {'bandwidth_total_Gbps': 3.264146592,
+ 'rate_total_pps': 4857361.0},
+ 'Result_stream0_NDR_LOWER': {'avg_latency': 849.0,
+ 'max_latency': 1069.0,
+ 'min_latency': 20.0},
+ 'Result_stream1_NDR_LOWER': {'avg_latency': 69.0,
+ 'max_latency': 183.0,
+ 'min_latency': 40.0}},
+ result_samples)
+
+ def test_check_ndrpdr_interval_validity(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ result_samples = {}
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 0)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 0)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ self.assertEqual('Minimal rate loss fraction 0.0 reach target 0.0',
+ algorithm.check_ndrpdr_interval_validity(
+ result_samples, 'NDR_LOWER',
+ receive_rate_interval))
+ self.assertEqual(
+ {'Result_NDR_LOWER_packets_lost': {'packet_loss_ratio': 0.0,
+ 'packets_lost': 0.0}},
+ result_samples)
+
+ def test_check_ndrpdr_interval_validity_fail(self):
+ algorithm = MultipleLossRatioSearch(measurer=mock.Mock(), latency=True,
+ pkt_size=64,
+ final_trial_duration=30,
+ final_relative_width=0.005,
+ number_of_intermediate_phases=2,
+ initial_trial_duration=1,
+ timeout=720)
+ result_samples = {}
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ self.assertEqual(
+ 'Minimal rate loss fraction 0.01749 does not reach target 0.005\n84965 packets lost.',
+ algorithm.check_ndrpdr_interval_validity(result_samples,
+ 'NDR_LOWER',
+ receive_rate_interval,
+ 0.005))
+ self.assertEqual({'Result_NDR_LOWER_packets_lost': {
+ 'packet_loss_ratio': 0.01749,
+ 'packets_lost': 84965.0}}, result_samples)
diff --git a/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_ndr_pdr_result.py b/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_ndr_pdr_result.py
new file mode 100644
index 000000000..ea9c39a03
--- /dev/null
+++ b/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_ndr_pdr_result.py
@@ -0,0 +1,91 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+
+import mock
+
+from yardstick.network_services.helpers.vpp_helpers.ndr_pdr_result import \
+ NdrPdrResult
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_interval import \
+ ReceiveRateInterval
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_measurement import \
+ ReceiveRateMeasurement
+
+
+class TestNdrPdrResult(unittest.TestCase):
+
+ def test___init__(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ starting_interval = ReceiveRateInterval(measured_low, measured_high)
+ ndrpdr_result = NdrPdrResult(starting_interval, starting_interval)
+ self.assertIsInstance(ndrpdr_result.ndr_interval, ReceiveRateInterval)
+ self.assertIsInstance(ndrpdr_result.pdr_interval, ReceiveRateInterval)
+
+ def test___init__ndr_error(self):
+ starting_interval = mock.MagicMock()
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ end_interval = ReceiveRateInterval(measured_low, measured_high)
+ with self.assertRaises(TypeError) as raised:
+ NdrPdrResult(starting_interval, end_interval)
+ self.assertIn('ndr_interval, is not a ReceiveRateInterval: ',
+ str(raised.exception))
+
+ def test___init__pdr_error(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ starting_interval = ReceiveRateInterval(measured_low, measured_high)
+ end_interval = mock.MagicMock()
+ with self.assertRaises(TypeError) as raised:
+ NdrPdrResult(starting_interval, end_interval)
+ self.assertIn('pdr_interval, is not a ReceiveRateInterval: ',
+ str(raised.exception))
+
+ def test_width_in_goals(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ starting_interval = ReceiveRateInterval(measured_low, measured_high)
+ ndrpdr_result = NdrPdrResult(starting_interval, starting_interval)
+ self.assertEqual('ndr 4.86887; pdr 4.86887',
+ ndrpdr_result.width_in_goals(0.005))
+
+ def test___str__(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ starting_interval = ReceiveRateInterval(measured_low, measured_high)
+ ndrpdr_result = NdrPdrResult(starting_interval, starting_interval)
+ self.assertEqual(
+ 'NDR=[d=1.0,Tr=4857361.0,Df=0.01749;d=1.0,Tr=4977343.0,Df=0.0241);'
+ 'PDR=[d=1.0,Tr=4857361.0,Df=0.01749;d=1.0,Tr=4977343.0,Df=0.0241)',
+ ndrpdr_result.__str__())
+
+ def test___repr__(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ starting_interval = ReceiveRateInterval(measured_low, measured_high)
+ ndrpdr_result = NdrPdrResult(starting_interval, starting_interval)
+ self.assertEqual(
+ 'NdrPdrResult(ndr_interval=ReceiveRateInterval(measured_low=' \
+ 'ReceiveRateMeasurement(duration=1.0,target_tr=4857361.0,' \
+ 'transmit_count=4857339,loss_count=84965),measured_high=' \
+ 'ReceiveRateMeasurement(duration=1.0,target_tr=4977343.0,' \
+ 'transmit_count=4977320,loss_count=119959)),pdr_interval=' \
+ 'ReceiveRateInterval(measured_low=ReceiveRateMeasurement' \
+ '(duration=1.0,target_tr=4857361.0,transmit_count=4857339,' \
+ 'loss_count=84965),measured_high=ReceiveRateMeasurement' \
+ '(duration=1.0,target_tr=4977343.0,transmit_count=4977320,' \
+ 'loss_count=119959)))',
+ ndrpdr_result.__repr__())
diff --git a/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_receive_rate_interval.py b/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_receive_rate_interval.py
new file mode 100644
index 000000000..bbf241613
--- /dev/null
+++ b/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_receive_rate_interval.py
@@ -0,0 +1,100 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+
+import mock
+
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_interval import \
+ ReceiveRateInterval
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_measurement import \
+ ReceiveRateMeasurement
+
+
+class TestReceiveRateInterval(unittest.TestCase):
+
+ def test__init__(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ self.assertIsInstance(receive_rate_interval.measured_low,
+ ReceiveRateMeasurement)
+ self.assertIsInstance(receive_rate_interval.measured_high,
+ ReceiveRateMeasurement)
+
+ def test__init__measured_low_error(self):
+ measured_low = mock.MagicMock()
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ with self.assertRaises(TypeError) as raised:
+ ReceiveRateInterval(measured_low, measured_high)
+ self.assertIn('measured_low is not a ReceiveRateMeasurement: ',
+ str(raised.exception))
+
+ def test__init__measured_high_error(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = mock.MagicMock()
+ with self.assertRaises(TypeError) as raised:
+ ReceiveRateInterval(measured_low, measured_high)
+ self.assertIn('measured_high is not a ReceiveRateMeasurement: ',
+ str(raised.exception))
+
+ def test_sort(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ self.assertIsNone(receive_rate_interval.sort())
+ self.assertEqual(119982.0, receive_rate_interval.abs_tr_width)
+ self.assertEqual(0.02411,
+ receive_rate_interval.rel_tr_width)
+
+ def test_sort_swap(self):
+ measured_low = ReceiveRateMeasurement(1, 14857361, 14857339, 184965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ self.assertIsNone(receive_rate_interval.sort())
+ self.assertEqual(9880018.0, receive_rate_interval.abs_tr_width)
+ self.assertEqual(0.66499,
+ receive_rate_interval.rel_tr_width)
+
+ def test_width_in_goals(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ self.assertEqual(4.86887,
+ receive_rate_interval.width_in_goals(0.005))
+
+ def test___str__(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ self.assertEqual(
+ '[d=1.0,Tr=4857361.0,Df=0.01749;d=1.0,Tr=4977343.0,Df=0.0241)',
+ receive_rate_interval.__str__())
+
+ def test___repr__(self):
+ measured_low = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ measured_high = ReceiveRateMeasurement(1, 4977343, 4977320, 119959)
+ receive_rate_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ self.assertEqual('ReceiveRateInterval(measured_low=' \
+ 'ReceiveRateMeasurement(duration=1.0,target_tr=4857361.0,' \
+ 'transmit_count=4857339,loss_count=84965),measured_high=' \
+ 'ReceiveRateMeasurement(duration=1.0,target_tr=4977343.0,' \
+ 'transmit_count=4977320,loss_count=119959))',
+ receive_rate_interval.__repr__())
diff --git a/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_receive_rate_measurement.py b/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_receive_rate_measurement.py
new file mode 100644
index 000000000..d4e2d7920
--- /dev/null
+++ b/yardstick/tests/unit/network_services/helpers/vpp_helpers/test_receive_rate_measurement.py
@@ -0,0 +1,44 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_measurement import \
+ ReceiveRateMeasurement
+
+
+class TestReceiveRateMeasurement(unittest.TestCase):
+
+ def test__init__(self):
+ measured = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ self.assertEqual(1, measured.duration)
+ self.assertEqual(4857361, measured.target_tr)
+ self.assertEqual(4857339, measured.transmit_count)
+ self.assertEqual(84965, measured.loss_count)
+ self.assertEqual(4772374, measured.receive_count)
+ self.assertEqual(4857339, measured.transmit_rate)
+ self.assertEqual(84965.0, measured.loss_rate)
+ self.assertEqual(4772374.0, measured.receive_rate)
+ self.assertEqual(0.01749, measured.loss_fraction)
+
+ def test___str__(self):
+ measured = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ self.assertEqual('d=1.0,Tr=4857361.0,Df=0.01749',
+ measured.__str__())
+
+ def test___repr__(self):
+ measured = ReceiveRateMeasurement(1, 4857361, 4857339, 84965)
+ self.assertEqual('ReceiveRateMeasurement(duration=1.0,' \
+ 'target_tr=4857361.0,transmit_count=4857339,loss_count=84965)',
+ measured.__repr__())
diff --git a/yardstick/tests/unit/network_services/libs/__init__.py b/yardstick/tests/unit/network_services/libs/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/libs/__init__.py
diff --git a/yardstick/tests/unit/network_services/libs/ixia_libs/__init__.py b/yardstick/tests/unit/network_services/libs/ixia_libs/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/libs/ixia_libs/__init__.py
diff --git a/yardstick/tests/unit/network_services/libs/ixia_libs/test_ixnet_api.py b/yardstick/tests/unit/network_services/libs/ixia_libs/test_ixnet_api.py
new file mode 100644
index 000000000..a20592dc7
--- /dev/null
+++ b/yardstick/tests/unit/network_services/libs/ixia_libs/test_ixnet_api.py
@@ -0,0 +1,1057 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+import IxNetwork
+import unittest
+import re
+
+from copy import deepcopy
+from collections import OrderedDict
+
+from yardstick.common import exceptions
+from yardstick.network_services.libs.ixia_libs.ixnet import ixnet_api
+from yardstick.network_services.traffic_profile import ixia_rfc2544
+
+
+UPLINK = 'uplink'
+DOWNLINK = 'downlink'
+
+TRAFFIC_PROFILE = {
+ 'uplink_0': {
+ 'ipv4': {
+ 'outer_l2': {
+ 'framesize': {
+ '128B': '0',
+ '1518B': '0',
+ '64B': '0',
+ '373b': '0',
+ '256B': '0',
+ '1400B': '0',
+ '570B': '0'}},
+ 'id': 1}},
+ 'description': 'Traffic profile to run RFC2544 latency',
+ 'name': 'rfc2544',
+ 'schema': 'isb:traffic_profile:0.1',
+ 'traffic_profile': {
+ 'injection_time': None,
+ 'enable_latency': True,
+ 'frame_rate': '100%',
+ 'traffic_type': 'IXIARFC2544Profile'},
+ 'downlink_0': {
+ 'ipv4': {
+ 'outer_l2': {
+ 'framesize': {
+ '128B': '0',
+ '1518B': '0',
+ '64B': '0',
+ '373b': '0',
+ '256B': '0',
+ '1400B': '0',
+ '570B': '0'}},
+ 'id': 2}}}
+
+
+TRAFFIC_PARAMETERS = {
+ UPLINK: {
+ 'id': 1,
+ 'bidir': 'False',
+ 'duration': 60,
+ 'rate': 10000.5,
+ 'rate_unit': 'fps',
+ 'outer_l2': {
+ 'framesize': {'64B': '25', '256B': '75'},
+ 'QinQ': None
+ },
+ 'outer_l3': {
+ 'count': 512,
+ 'srcseed': 10,
+ 'dstseed': 20,
+ 'dscp': 0,
+ 'proto': 'udp',
+ 'ttl': 32,
+ 'dstip': '152.16.40.20',
+ 'srcip': '152.16.100.20',
+ 'dstmask': 24,
+ 'srcmask': 24,
+ 'priority': {'raw': '0x01'}
+ },
+ 'outer_l4': {
+ 'seed': 1,
+ 'count': 1,
+ 'dstport': 2001,
+ 'srcport': 1234,
+ 'srcportmask': 0,
+ 'dstportmask': 0
+ },
+ 'traffic_type': 'continuous'
+ },
+ DOWNLINK: {
+ 'id': 2,
+ 'bidir': 'False',
+ 'duration': 60,
+ 'rate': 75.2,
+ 'rate_unit': '%',
+ 'outer_l2': {
+ 'framesize': {'128B': '35', '1024B': '65'},
+ 'QinQ': None
+ },
+ 'outer_l3': {
+ 'count': 1024,
+ 'srcseed': 30,
+ 'dstseed': 40,
+ 'dscp': 0,
+ 'proto': 'udp',
+ 'ttl': 32,
+ 'dstip': '2001::10',
+ 'srcip': '2021::10',
+ 'dstmask': 64,
+ 'srcmask': 64,
+ 'priority': {'raw': '0x01'}
+ },
+ 'outer_l4': {
+ 'seed': 1,
+ 'count': 1,
+ 'dstport': 1234,
+ 'srcport': 2001,
+ 'srcportmask': 0,
+ 'dstportmask': 0
+ },
+ 'traffic_type': 'continuous'
+ }
+}
+
+
+class TestIxNextgen(unittest.TestCase):
+
+ def setUp(self):
+ self.ixnet = mock.Mock()
+ self.ixnet.execute = mock.Mock()
+ self.ixnet.getRoot.return_value = 'my_root'
+ self.ixnet_gen = ixnet_api.IxNextgen()
+ self.ixnet_gen._ixnet = self.ixnet
+ self._mock_log = mock.patch.object(ixnet_api.log, 'info')
+ self.mock_log = self._mock_log.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self.mock_log.stop()
+
+ def test_get_config(self):
+ tg_cfg = {
+ 'vdu': [
+ {
+ 'external-interface': [
+ {'virtual-interface': {'vpci': '0000:07:00.1'}},
+ {'virtual-interface': {'vpci': '0001:08:01.2'}}
+ ]
+ },
+ ],
+ 'mgmt-interface': {
+ 'ip': 'test1',
+ 'tg-config': {
+ 'dut_result_dir': 'test2',
+ 'version': 'test3',
+ 'ixchassis': 'test4',
+ 'tcl_port': 'test5',
+ },
+ }
+ }
+
+ expected = {
+ 'machine': 'test1',
+ 'port': 'test5',
+ 'chassis': 'test4',
+ 'cards': ['0000', '0001'],
+ 'ports': ['07', '08'],
+ 'output_dir': 'test2',
+ 'version': 'test3',
+ 'bidir': True,
+ }
+
+ result = ixnet_api.IxNextgen.get_config(tg_cfg)
+ self.assertEqual(result, expected)
+
+ def test__get_config_element_by_flow_group_name(self):
+ self.ixnet_gen._ixnet.getList.side_effect = [['traffic_item'],
+ ['fg_01']]
+ self.ixnet_gen._ixnet.getAttribute.return_value = 'flow_group_01'
+ output = self.ixnet_gen._get_config_element_by_flow_group_name(
+ 'flow_group_01')
+ self.assertEqual('traffic_item/configElement:flow_group_01', output)
+
+ def test__get_config_element_by_flow_group_name_no_match(self):
+ self.ixnet_gen._ixnet.getList.side_effect = [['traffic_item'],
+ ['fg_01']]
+ self.ixnet_gen._ixnet.getAttribute.return_value = 'flow_group_02'
+ output = self.ixnet_gen._get_config_element_by_flow_group_name(
+ 'flow_group_01')
+ self.assertIsNone(output)
+
+ def test__get_stack_item(self):
+ self.ixnet_gen._ixnet.getList.return_value = ['tcp1', 'tcp2', 'udp']
+ with mock.patch.object(
+ self.ixnet_gen, '_get_config_element_by_flow_group_name') as \
+ mock_get_cfg_element:
+ mock_get_cfg_element.return_value = 'cfg_element'
+ output = self.ixnet_gen._get_stack_item(mock.ANY, ixnet_api.PROTO_TCP)
+ self.assertEqual(['tcp1', 'tcp2'], output)
+
+ def test__get_stack_item_no_config_element(self):
+ with mock.patch.object(
+ self.ixnet_gen, '_get_config_element_by_flow_group_name',
+ return_value=None):
+ with self.assertRaises(exceptions.IxNetworkFlowNotPresent):
+ self.ixnet_gen._get_stack_item(mock.ANY, mock.ANY)
+
+ def test__get_field_in_stack_item(self):
+ self.ixnet_gen._ixnet.getList.return_value = ['field1', 'field2']
+ output = self.ixnet_gen._get_field_in_stack_item(mock.ANY, 'field2')
+ self.assertEqual('field2', output)
+
+ def test__get_field_in_stack_item_no_field_present(self):
+ self.ixnet_gen._ixnet.getList.return_value = ['field1', 'field2']
+ with self.assertRaises(exceptions.IxNetworkFieldNotPresentInStackItem):
+ self.ixnet_gen._get_field_in_stack_item(mock.ANY, 'field3')
+
+ def test__parse_framesize(self):
+ framesize = {'64B': '75', '512b': '25'}
+ output = self.ixnet_gen._parse_framesize(framesize)
+ self.assertEqual(2, len(output))
+ self.assertIn([64, 64, 75], output)
+ self.assertIn([512, 512, 25], output)
+
+ def test_add_topology(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.add_topology('topology 1', 'vports')
+ self.ixnet_gen.ixnet.add.assert_called_once_with('my_root', 'topology')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_called_once_with(
+ 'obj', '-name', 'topology 1', '-vports', 'vports')
+ self.ixnet_gen.ixnet.commit.assert_called_once()
+
+ def test_add_device_group(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.add_device_group('topology', 'device group 1', '1')
+ self.ixnet_gen.ixnet.add.assert_called_once_with('topology',
+ 'deviceGroup')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_called_once_with(
+ 'obj', '-name', 'device group 1', '-multiplier', '1')
+ self.ixnet_gen.ixnet.commit.assert_called_once()
+
+ def test_add_ethernet(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.add_ethernet('device_group', 'ethernet 1')
+ self.ixnet_gen.ixnet.add.assert_called_once_with('device_group',
+ 'ethernet')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_called_once_with(
+ 'obj', '-name', 'ethernet 1')
+ self.ixnet_gen.ixnet.commit.assert_called_once()
+
+ def test_add_vlans_single(self):
+ obj = 'ethernet'
+ self.ixnet_gen.ixnet.getAttribute.return_value = 'attr'
+ self.ixnet_gen.ixnet.getList.return_value = ['vlan1', 'vlan2']
+ vlan1 = ixnet_api.Vlan(vlan_id=100, tp_id='ethertype88a8', prio=2)
+ vlan2 = ixnet_api.Vlan(vlan_id=101, tp_id='ethertype88a8', prio=3)
+ self.ixnet_gen.add_vlans(obj, [vlan1, vlan2])
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call('ethernet',
+ '-vlanCount', 2)
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call('attr/singleValue',
+ '-value', 100)
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call('attr/singleValue',
+ '-value', 101)
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call('attr/singleValue',
+ '-value', 2)
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call('attr/singleValue',
+ '-value', 3)
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'attr/singleValue', '-value', 'ethertype88a8')
+ self.assertEqual(self.ixnet.commit.call_count, 2)
+
+ def test_add_vlans_increment(self):
+ obj = 'ethernet'
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.ixnet.getAttribute.return_value = 'attr'
+ self.ixnet_gen.ixnet.getList.return_value = ['vlan1']
+ vlan = ixnet_api.Vlan(vlan_id=100, vlan_id_step=1, prio=3, prio_step=2)
+ self.ixnet_gen.add_vlans(obj, [vlan])
+ self.ixnet.setMultiAttribute.assert_any_call('obj', '-start', 100,
+ '-step', 1,
+ '-direction', 'increment')
+ self.ixnet.setMultiAttribute.assert_any_call('obj', '-start', 3,
+ '-step', 2,
+ '-direction', 'increment')
+
+ self.assertEqual(self.ixnet.commit.call_count, 2)
+
+ def test_add_vlans_invalid(self):
+ vlans = []
+ self.assertRaises(RuntimeError, self.ixnet_gen.add_vlans, 'obj', vlans)
+
+ def test_add_ipv4(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.add_ipv4('ethernet 1', name='ipv4 1')
+ self.ixnet_gen.ixnet.add.assert_called_once_with('ethernet 1', 'ipv4')
+ self.ixnet_gen.ixnet.setAttribute.assert_called_once_with('obj',
+ '-name',
+ 'ipv4 1')
+ self.assertEqual(self.ixnet.commit.call_count, 2)
+
+ def test_add_ipv4_single(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.ixnet.getAttribute.return_value = 'attr'
+ self.ixnet_gen.add_ipv4('ethernet 1', name='ipv4 1', addr='100.1.1.100',
+ prefix='24', gateway='100.1.1.200')
+ self.ixnet_gen.ixnet.add.assert_called_once_with('ethernet 1', 'ipv4')
+ self.ixnet_gen.ixnet.setAttribute.assert_called_once_with('obj',
+ '-name',
+ 'ipv4 1')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'attr/singleValue', '-value', '100.1.1.100')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'attr/singleValue', '-value', '24')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'attr/singleValue', '-value', '100.1.1.200')
+
+ self.assertEqual(self.ixnet.commit.call_count, 2)
+
+ def test_add_ipv4_counter(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.ixnet.getAttribute.return_value = 'attr'
+ self.ixnet_gen.add_ipv4('ethernet 1', name='ipv4 1',
+ addr='100.1.1.100',
+ addr_step='1',
+ addr_direction='increment',
+ prefix='24',
+ gateway='100.1.1.200',
+ gw_step='1',
+ gw_direction='increment')
+ self.ixnet_gen.ixnet.add.assert_any_call('ethernet 1', 'ipv4')
+ self.ixnet_gen.ixnet.setAttribute.assert_called_once_with('obj',
+ '-name',
+ 'ipv4 1')
+ self.ixnet_gen.ixnet.add.assert_any_call('attr', 'counter')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call('obj', '-start',
+ '100.1.1.100',
+ '-step', '1',
+ '-direction',
+ 'increment')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'attr/singleValue', '-value', '24')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call('obj', '-start',
+ '100.1.1.200',
+ '-step', '1',
+ '-direction',
+ 'increment')
+ self.assertEqual(self.ixnet.commit.call_count, 2)
+
+ def test_add_pppox_client(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.ixnet.getAttribute.return_value = 'attr'
+ self.ixnet_gen.add_pppox_client('ethernet 1', 'pap', 'user', 'pwd')
+ self.ixnet_gen.ixnet.add.assert_called_once_with('ethernet 1',
+ 'pppoxclient')
+
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'attr/singleValue', '-value', 'pap')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'attr/singleValue', '-value', 'user')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'attr/singleValue', '-value', 'pwd')
+
+ self.assertEqual(self.ixnet.commit.call_count, 2)
+
+ def test_add_pppox_client_invalid_auth(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.ixnet.getAttribute.return_value = 'attr'
+ self.assertRaises(NotImplementedError, self.ixnet_gen.add_pppox_client,
+ 'ethernet 1', 'invalid_auth', 'user', 'pwd')
+
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_not_called()
+
+ def test_add_bgp(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.ixnet.getAttribute.return_value = 'attr'
+ self.ixnet_gen.add_bgp(ipv4='ipv4 1',
+ dut_ip='10.0.0.1',
+ local_as=65000,
+ bgp_type='external')
+ self.ixnet_gen.ixnet.add.assert_called_once_with('ipv4 1', 'bgpIpv4Peer')
+ self.ixnet_gen.ixnet.setAttribute.assert_any_call(
+ 'attr/singleValue', '-value', '10.0.0.1')
+ self.ixnet_gen.ixnet.setAttribute.assert_any_call(
+ 'attr/singleValue', '-value', 65000)
+ self.ixnet_gen.ixnet.setAttribute.assert_any_call(
+ 'attr/singleValue', '-value', 'external')
+
+ def test_add_interface(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.add_interface(vport='vport',
+ ip='10.0.0.2',
+ mac='00:00:00:00:00:00',
+ gateway='10.0.0.1')
+ self.ixnet_gen.ixnet.add.assert_any_call('vport', 'interface')
+ self.ixnet_gen.ixnet.add.assert_any_call('obj', 'ipv4')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'obj/ethernet', '-macAddress', '00:00:00:00:00:00')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'obj', '-ip', '10.0.0.2')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'obj', '-gateway', '10.0.0.1')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'obj', '-enabled', 'true')
+
+ def test_add_static_ipv4(self):
+ self.ixnet_gen.ixnet.add.return_value = 'obj'
+ self.ixnet_gen.add_static_ipv4(iface='iface',
+ vport='vport',
+ start_ip='10.0.0.0',
+ count='100',
+ mask='32')
+ self.ixnet_gen.ixnet.add.assert_called_once_with(
+ 'vport/protocols/static', 'ip')
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_any_call(
+ 'obj', '-protocolInterface', 'iface',
+ '-ipStart', '10.0.0.0',
+ '-count', '100',
+ '-mask', '32',
+ '-enabled', 'true')
+
+ @mock.patch.object(IxNetwork, 'IxNet')
+ def test_connect(self, mock_ixnet):
+ mock_ixnet.return_value = self.ixnet
+ with mock.patch.object(self.ixnet_gen, 'get_config') as mock_config:
+ mock_config.return_value = {'machine': 'machine_fake',
+ 'port': 'port_fake',
+ 'version': 12345}
+ self.ixnet_gen.connect(mock.ANY)
+
+ self.ixnet.connect.assert_called_once_with(
+ 'machine_fake', '-port', 'port_fake', '-version', '12345')
+ mock_config.assert_called_once()
+
+ def test_connect_invalid_config_no_machine(self):
+ self.ixnet_gen.get_config = mock.Mock(return_value={
+ 'port': 'port_fake',
+ 'version': '12345'})
+ self.assertRaises(KeyError, self.ixnet_gen.connect, mock.ANY)
+ self.ixnet.connect.assert_not_called()
+
+ def test_connect_invalid_config_no_port(self):
+ self.ixnet_gen.get_config = mock.Mock(return_value={
+ 'machine': 'machine_fake',
+ 'version': '12345'})
+ self.assertRaises(KeyError, self.ixnet_gen.connect, mock.ANY)
+ self.ixnet.connect.assert_not_called()
+
+ def test_connect_invalid_config_no_version(self):
+ self.ixnet_gen.get_config = mock.Mock(return_value={
+ 'machine': 'machine_fake',
+ 'port': 'port_fake'})
+ self.assertRaises(KeyError, self.ixnet_gen.connect, mock.ANY)
+ self.ixnet.connect.assert_not_called()
+
+ def test_connect_no_config(self):
+ self.ixnet_gen.get_config = mock.Mock(return_value={})
+ self.assertRaises(KeyError, self.ixnet_gen.connect, mock.ANY)
+ self.ixnet.connect.assert_not_called()
+
+ def test_clear_config(self):
+ self.ixnet_gen.clear_config()
+ self.ixnet.execute.assert_called_once_with('newConfig')
+
+ @mock.patch.object(ixnet_api, 'log')
+ def test_assign_ports_2_ports(self, *args):
+ self.ixnet.getAttribute.side_effect = ['up', 'down']
+ config = {
+ 'chassis': '1.1.1.1',
+ 'cards': ['1', '2'],
+ 'ports': ['2', '2']}
+ self.ixnet_gen._cfg = config
+
+ self.assertIsNone(self.ixnet_gen.assign_ports())
+ self.assertEqual(self.ixnet.execute.call_count, 1)
+ self.assertEqual(self.ixnet.commit.call_count, 3)
+ self.assertEqual(self.ixnet.getAttribute.call_count, 2)
+
+ @mock.patch.object(ixnet_api, 'log')
+ def test_assign_ports_port_down(self, mock_log):
+ self.ixnet.getAttribute.return_value = 'down'
+ config = {
+ 'chassis': '1.1.1.1',
+ 'cards': ['1', '2'],
+ 'ports': ['3', '4']}
+ self.ixnet_gen._cfg = config
+ self.ixnet_gen.assign_ports()
+ mock_log.warning.assert_called()
+
+ def test_assign_ports_no_config(self):
+ self.ixnet_gen._cfg = {}
+ self.assertRaises(KeyError, self.ixnet_gen.assign_ports)
+
+ def test__create_traffic_item(self):
+ self.ixnet.add.return_value = 'my_new_traffic_item'
+ self.ixnet.remapIds.return_value = ['my_traffic_item_id']
+
+ self.ixnet_gen._create_traffic_item()
+ self.ixnet.add.assert_called_once_with(
+ 'my_root/traffic', 'trafficItem')
+ self.ixnet.setMultiAttribute.assert_called_once_with(
+ 'my_new_traffic_item', '-name', 'RFC2544', '-trafficType', 'raw')
+ self.assertEqual(2, self.ixnet.commit.call_count)
+ self.ixnet.remapIds.assert_called_once_with('my_new_traffic_item')
+ self.ixnet.setAttribute('my_traffic_item_id/tracking',
+ '-trackBy', 'trafficGroupId0')
+
+ def test__create_flow_groups(self):
+ uplink_endpoints = ['up_endp1', 'up_endp2']
+ downlink_endpoints = ['down_endp1', 'down_endp2']
+ self.ixnet_gen.ixnet.getList.side_effect = [['traffic_item'], ['1', '2']]
+ self.ixnet_gen.ixnet.add.side_effect = ['endp1', 'endp2', 'endp3',
+ 'endp4']
+ self.ixnet_gen._create_flow_groups(uplink_endpoints, downlink_endpoints)
+ self.ixnet_gen.ixnet.add.assert_has_calls([
+ mock.call('traffic_item', 'endpointSet'),
+ mock.call('traffic_item', 'endpointSet')])
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_has_calls([
+ mock.call('endp1', '-name', '1', '-sources', ['up_endp1'],
+ '-destinations', ['down_endp1']),
+ mock.call('endp2', '-name', '2', '-sources', ['down_endp1'],
+ '-destinations', ['up_endp1']),
+ mock.call('endp3', '-name', '3', '-sources', ['up_endp2'],
+ '-destinations', ['down_endp2']),
+ mock.call('endp4', '-name', '4', '-sources', ['down_endp2'],
+ '-destinations', ['up_endp2'])])
+
+ def test__append_protocol_to_stack(self):
+
+ self.ixnet_gen._append_procotol_to_stack('my_protocol', 'prev_element')
+ self.ixnet.execute.assert_called_with(
+ 'append', 'prev_element',
+ 'my_root/traffic/protocolTemplate:"my_protocol"')
+
+ def test__setup_config_elements(self):
+ # the config parsed from some_file
+ yaml_data = {'traffic_profile': {}
+ }
+ traffic_profile = ixia_rfc2544.IXIARFC2544Profile(yaml_data)
+ traffic_profile.params = TRAFFIC_PROFILE
+ self.ixnet_gen.ixnet.getList.side_effect = [['traffic_item'],
+ ['cfg_element']]
+ with mock.patch.object(self.ixnet_gen, '_append_procotol_to_stack') as \
+ mock_append_proto:
+ self.ixnet_gen._setup_config_elements(traffic_profile=traffic_profile)
+ mock_append_proto.assert_has_calls([
+ mock.call(ixnet_api.PROTO_UDP, 'cfg_element/stack:"ethernet-1"'),
+ mock.call(ixnet_api.PROTO_IPV4, 'cfg_element/stack:"ethernet-1"')])
+ self.ixnet_gen.ixnet.setAttribute.assert_has_calls([
+ mock.call('cfg_element/frameRateDistribution', '-portDistribution',
+ 'splitRateEvenly'),
+ mock.call('cfg_element/frameRateDistribution',
+ '-streamDistribution', 'splitRateEvenly')])
+
+ @mock.patch.object(ixnet_api.IxNextgen, '_create_traffic_item')
+ @mock.patch.object(ixnet_api.IxNextgen, '_create_flow_groups')
+ @mock.patch.object(ixnet_api.IxNextgen, '_setup_config_elements')
+ def test_create_traffic_model(self, mock__setup_config_elements,
+ mock__create_flow_groups,
+ mock__create_traffic_item):
+ # the config parsed from some_file
+ yaml_data = {'traffic_profile': {}}
+ traffic_profile = ixia_rfc2544.IXIARFC2544Profile(yaml_data)
+ uplink_ports = ['port1', 'port3']
+ downlink_ports = ['port2', 'port4']
+ uplink_endpoints = ['port1/protocols', 'port3/protocols']
+ downlink_endpoints = ['port2/protocols', 'port4/protocols']
+ self.ixnet_gen.create_traffic_model(uplink_ports, downlink_ports,
+ traffic_profile=traffic_profile)
+ mock__create_traffic_item.assert_called_once_with('raw')
+ mock__create_flow_groups.assert_called_once_with(uplink_endpoints,
+ downlink_endpoints)
+ mock__setup_config_elements.assert_called_once()
+
+ @mock.patch.object(ixnet_api.IxNextgen, '_create_traffic_item')
+ @mock.patch.object(ixnet_api.IxNextgen, '_create_flow_groups')
+ @mock.patch.object(ixnet_api.IxNextgen, '_setup_config_elements')
+ def test_create_ipv4_traffic_model(self, mock__setup_config_elements,
+ mock__create_flow_groups,
+ mock__create_traffic_item):
+ uplink_topologies = ['up1', 'up3']
+ downlink_topologies = ['down2', 'down4']
+ traffic_profile = 'fake_profile'
+ self.ixnet_gen.create_ipv4_traffic_model(uplink_topologies,
+ downlink_topologies,
+ traffic_profile)
+ mock__create_traffic_item.assert_called_once_with('ipv4')
+ mock__create_flow_groups.assert_called_once_with(uplink_topologies,
+ downlink_topologies)
+ mock__setup_config_elements.assert_called_once_with(
+ traffic_profile='fake_profile', add_default_proto=False)
+
+ def test_flows_settings(self):
+ cfg = {'uplink_0': {
+ 'ipv4': {
+ 'outer_l2': {
+ 'framesize': {
+ '128B': '0',
+ '1518B': '0',
+ '64B': '0',
+ '373b': '0',
+ '256B': '0',
+ '1400B': '0',
+ '570B': '0'}},
+ 'id': 1}}}
+
+ expected = [
+ {'ipv4': {
+ 'id': 1,
+ 'outer_l2': {
+ 'framesize': {
+ '1518B': '0',
+ '1400B': '0',
+ '128B': '0',
+ '64B': '0',
+ '256B': '0',
+ '373b': '0',
+ '570B': '0'}}}}]
+
+ self.assertEqual(expected, self.ixnet_gen._flows_settings(cfg=cfg))
+
+ def test_is_qinq(self):
+ flow_data = {'ipv4': {
+ 'outer_l2': {},
+ 'id': 1}}
+ self.assertEqual(False, self.ixnet_gen.is_qinq(flow_data=flow_data))
+
+ flow_data = {'ipv4': {
+ 'outer_l2': {
+ 'QinQ': {
+ 'C-VLAN': {
+ 'priority': 0,
+ 'cfi': 0,
+ 'id': 512},
+ 'S-VLAN': {
+ 'priority': 0,
+ 'cfi': 0,
+ 'id': 128}},
+ },
+ 'id': 1}}
+ self.assertEqual(True, self.ixnet_gen.is_qinq(flow_data=flow_data))
+
+ def test__update_frame_mac(self):
+ with mock.patch.object(self.ixnet_gen, '_get_field_in_stack_item') as \
+ mock_get_field:
+ mock_get_field.return_value = 'field_descriptor'
+ self.ixnet_gen._update_frame_mac('ethernet_descriptor', 'field', 'mac')
+ mock_get_field.assert_called_once_with('ethernet_descriptor', 'field')
+ self.ixnet_gen.ixnet.setMultiAttribute(
+ 'field_descriptor', '-singleValue', 'mac', '-fieldValue', 'mac',
+ '-valueType', 'singleValue')
+ self.ixnet_gen.ixnet.commit.assert_called_once()
+
+ def test_update_frame(self):
+ with mock.patch.object(
+ self.ixnet_gen, '_get_config_element_by_flow_group_name',
+ return_value='cfg_element'), \
+ mock.patch.object(self.ixnet_gen, '_update_frame_mac') as \
+ mock_update_frame, \
+ mock.patch.object(self.ixnet_gen, '_get_stack_item') as \
+ mock_get_stack_item:
+ mock_get_stack_item.side_effect = [['item1'], ['item2'],
+ ['item3'], ['item4']]
+ self.ixnet_gen.update_frame(TRAFFIC_PARAMETERS, 50)
+
+ self.assertEqual(6, len(self.ixnet_gen.ixnet.setMultiAttribute.mock_calls))
+ self.assertEqual(4, len(mock_update_frame.mock_calls))
+
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_has_calls([
+ mock.call('cfg_element/transmissionControl',
+ '-type', 'continuous', '-duration', 50)
+ ])
+
+ def test_update_frame_qinq(self):
+ with mock.patch.object(self.ixnet_gen,
+ '_get_config_element_by_flow_group_name',
+ return_value='cfg_element'), \
+ mock.patch.object(self.ixnet_gen, '_update_frame_mac'),\
+ mock.patch.object(self.ixnet_gen, '_get_stack_item',
+ return_value='item'), \
+ mock.patch.object(self.ixnet_gen, '_get_field_in_stack_item',
+ return_value='field'):
+
+ traffic_parameters = deepcopy(TRAFFIC_PARAMETERS)
+ traffic_parameters[UPLINK]['outer_l2']['QinQ'] = {
+ 'S-VLAN': {'id': 128,
+ 'priority': 1,
+ 'cfi': 0},
+ 'C-VLAN': {'id': 512,
+ 'priority': 0,
+ 'cfi': 2}
+ }
+
+ self.ixnet_gen.update_frame(traffic_parameters, 50)
+
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_has_calls([
+ mock.call('field', '-auto', 'false', '-singleValue', '0x88a8',
+ '-fieldValue', '0x88a8', '-valueType', 'singleValue'),
+ mock.call('field', '-auto', 'false', '-singleValue', 1,
+ '-fieldValue', 1, '-valueType', 'singleValue'),
+ mock.call('field', '-auto', 'false', '-singleValue', 128,
+ '-fieldValue', 128, '-valueType', 'singleValue'),
+ mock.call('field', '-auto', 'false', '-singleValue', 512,
+ '-fieldValue', 512, '-valueType', 'singleValue'),
+ mock.call('field', '-auto', 'false', '-singleValue', 2,
+ '-fieldValue', 2, '-valueType', 'singleValue')
+ ], any_order=True)
+
+ def test_update_frame_flow_not_present(self):
+ with mock.patch.object(
+ self.ixnet_gen, '_get_config_element_by_flow_group_name',
+ return_value=None):
+ with self.assertRaises(exceptions.IxNetworkFlowNotPresent):
+ self.ixnet_gen.update_frame(TRAFFIC_PARAMETERS, 40)
+
+ def test_get_statistics(self):
+ with mock.patch.object(self.ixnet_gen, '_build_stats_map') as \
+ mock_build_stats:
+ self.ixnet_gen.get_statistics()
+
+ mock_build_stats.assert_has_calls([
+ mock.call(self.ixnet_gen.PORT_STATISTICS,
+ self.ixnet_gen.PORT_STATS_NAME_MAP),
+ mock.call(self.ixnet_gen.FLOW_STATISTICS,
+ self.ixnet_gen.LATENCY_NAME_MAP)])
+
+ def test_set_flow_tracking(self):
+ self.ixnet_gen._ixnet.getList.return_value = ['traffic_item']
+ self.ixnet_gen.set_flow_tracking(track_by=['vlanVlanId0'])
+ self.ixnet_gen.ixnet.setAttribute.assert_called_once_with(
+ 'traffic_item/tracking', '-trackBy', ['vlanVlanId0'])
+ self.assertEqual(self.ixnet.commit.call_count, 1)
+
+ def test__set_egress_flow_tracking(self):
+ self.ixnet_gen._ixnet.getList.side_effect = [['traffic_item'],
+ ['encapsulation']]
+ self.ixnet_gen._set_egress_flow_tracking(encapsulation='Ethernet',
+ offset='IPv4 TOS Precedence')
+ self.ixnet_gen.ixnet.setAttribute.assert_any_call(
+ 'traffic_item', '-egressEnabled', True)
+ self.ixnet_gen.ixnet.setAttribute.assert_any_call(
+ 'encapsulation', '-encapsulation', 'Ethernet')
+ self.ixnet_gen.ixnet.setAttribute.assert_any_call(
+ 'encapsulation', '-offset', 'IPv4 TOS Precedence')
+ self.assertEqual(self.ixnet.commit.call_count, 2)
+
+ def test__get_view_page_stats(self):
+ expected_stats = [
+ {'header1': 'row1_1', 'header2': 'row1_2'},
+ {'header1': 'row2_1', 'header2': 'row2_2'}
+ ]
+ self.ixnet_gen._ixnet.getAttribute.side_effect = [
+ ['header1', 'header2'],
+ [
+ [['row1_1', 'row1_2']],
+ [['row2_1', 'row2_2']]
+ ]
+ ]
+ stats = self.ixnet_gen._get_view_page_stats('view_obj')
+ self.assertListEqual(stats, expected_stats)
+
+ @mock.patch.object(ixnet_api.IxNextgen, '_get_view_page_stats')
+ def test_get_pppoe_scenario_statistics(self, mock_get_view):
+
+ pattern = re.compile('Flow 2')
+
+ expected_stats = {
+ 'port_statistics': [{
+ 'port_1': 'port_stat1',
+ 'port_2': 'port_stat2'
+ }],
+ 'flow_statistic': [{
+ 'flow_1': 'flow_stat1',
+ 'flow_2': 'flow_stat2'
+ }],
+ 'pppox_client_per_port': [{
+ 'sub_1': 'sub_stat1',
+ 'sub_2': 'sub_stat2'
+ }]
+ }
+
+ pppoe_scenario_stats = OrderedDict([
+ ('port_statistics', 'view_obj'),
+ ('flow_statistic', 'view_obj'),
+ ('pppox_client_per_port', 'view_obj')
+ ])
+
+ pppoe_scenario_stats_map = {
+ 'port_statistics': {'port_1': 'Port 1',
+ 'port_2': 'Port 2'},
+ 'flow_statistic': {'flow_1': 'Flow 1',
+ 'flow_2': pattern},
+ 'pppox_client_per_port': {'sub_1': 'Sub 1',
+ 'sub_2': 'Sub 2'}
+ }
+
+ # All stats keys
+ port_stats = [{'Port 1': 'port_stat1',
+ 'Port 2': 'port_stat2',
+ 'Port 3': 'port_stat3'}]
+ flows_stats = [{'Flow 1': 'flow_stat1',
+ 'Flow 2': 'flow_stat2',
+ 'Flow 3': 'flow_stat3'}]
+ pppoe_sub_stats = [{'Sub 1': 'sub_stat1',
+ 'Sub 2': 'sub_stat2',
+ 'Sub 3': 'sub_stat3'}]
+
+ mock_get_view.side_effect = [port_stats, flows_stats, pppoe_sub_stats]
+ self.ixnet_gen._ixnet.getAttribute.return_value = '1'
+
+ with mock.patch.multiple(ixnet_api.IxNextgen,
+ PPPOE_SCENARIO_STATS=pppoe_scenario_stats,
+ PPPOE_SCENARIO_STATS_MAP=pppoe_scenario_stats_map):
+ stats = self.ixnet_gen.get_pppoe_scenario_statistics()
+ self.assertDictEqual(stats, expected_stats)
+ self.assertEqual(self.ixnet_gen.ixnet.getAttribute.call_count, 6)
+ self.ixnet_gen.ixnet.setAttribute.assert_not_called()
+
+ def test__update_ipv4_address(self):
+ with mock.patch.object(self.ixnet_gen, '_get_field_in_stack_item',
+ return_value='field_desc'):
+ self.ixnet_gen._update_ipv4_address(mock.ANY, mock.ANY, '192.168.1.1',
+ 100, 26, 25)
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_called_once_with(
+ 'field_desc', '-seed', 100, '-fixedBits', '192.168.1.1',
+ '-randomMask', '0.0.0.63', '-valueType', 'random',
+ '-countValue', 25)
+
+ def test__update_ipv4_priority_raw(self):
+ priority = {'raw': '0x01'}
+ self.ixnet_gen._set_priority_field = mock.Mock()
+ with mock.patch.object(self.ixnet_gen, '_get_field_in_stack_item',
+ return_value='field_desc'):
+ self.ixnet_gen._update_ipv4_priority('field_desc', priority)
+
+ self.ixnet_gen._set_priority_field.assert_called_once_with(
+ 'field_desc', priority['raw'])
+
+ def test__update_ipv4_priority_dscp(self):
+ priority = {'dscp': {'defaultPHB': [0, 1, 2, 3]}}
+ self.ixnet_gen._set_priority_field = mock.Mock()
+ with mock.patch.object(self.ixnet_gen, '_get_field_in_stack_item',
+ return_value='field_desc'):
+ self.ixnet_gen._update_ipv4_priority('field_desc', priority)
+
+ self.ixnet_gen._set_priority_field.assert_called_once_with(
+ 'field_desc', priority['dscp']['defaultPHB'])
+
+ def test__update_ipv4_priority_tos(self):
+ priority = {'tos': {'precedence': [0, 4, 7]}}
+ self.ixnet_gen._set_priority_field = mock.Mock()
+ with mock.patch.object(self.ixnet_gen, '_get_field_in_stack_item',
+ return_value='field_desc'):
+ self.ixnet_gen._update_ipv4_priority('field_desc', priority)
+
+ self.ixnet_gen._set_priority_field.assert_called_once_with(
+ 'field_desc', priority['tos']['precedence'])
+
+ def test__update_ipv4_priority_wrong_priority_type(self):
+ priority = {'test': [0, 4, 7]}
+ self.ixnet_gen._set_priority_field = mock.Mock()
+ with mock.patch.object(self.ixnet_gen, '_get_field_in_stack_item',
+ return_value='field_desc'):
+ self.ixnet_gen._update_ipv4_priority('field_desc', priority)
+
+ self.ixnet_gen._set_priority_field.assert_not_called()
+
+ def test__update_ipv4_priority_not_supported_dscp_class(self):
+ priority = {'dscp': {'testPHB': [0, 4, 7]}}
+ self.ixnet_gen._set_priority_field = mock.Mock()
+ self.ixnet_gen._get_field_in_stack_item = mock.Mock()
+ self.ixnet_gen._update_ipv4_priority('field_desc', priority)
+ self.ixnet_gen._set_priority_field.assert_not_called()
+ self.ixnet_gen._get_field_in_stack_item.assert_not_called()
+
+ def test__update_ipv4_priority_not_supported_tos_field(self):
+ priority = {'tos': {'test': [0, 4, 7]}}
+ self.ixnet_gen._set_priority_field = mock.Mock()
+ self.ixnet_gen._get_field_in_stack_item = mock.Mock()
+ self.ixnet_gen._update_ipv4_priority('field_desc', priority)
+ self.ixnet_gen._set_priority_field.assert_not_called()
+ self.ixnet_gen._get_field_in_stack_item.assert_not_called()
+
+ def test__set_priority_field_list_value(self):
+ value = [1, 4, 7]
+ self.ixnet_gen._set_priority_field('field_desc', value)
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_called_once_with(
+ 'field_desc',
+ '-valueList', [1, 4, 7],
+ '-activeFieldChoice', 'true',
+ '-valueType', 'valueList')
+
+ def test__set_priority_field_single_value(self):
+ value = 7
+ self.ixnet_gen._set_priority_field('field_desc', value)
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_called_once_with(
+ 'field_desc',
+ '-activeFieldChoice', 'true',
+ '-singleValue', '7')
+
+ def test__update_udp_port(self):
+ with mock.patch.object(self.ixnet_gen, '_get_field_in_stack_item',
+ return_value='field_desc'):
+ self.ixnet_gen._update_udp_port(mock.ANY, mock.ANY, 1234,
+ 2, 0, 2)
+
+ self.ixnet_gen.ixnet.setMultiAttribute.assert_called_once_with(
+ 'field_desc',
+ '-auto', 'false',
+ '-seed', 1,
+ '-fixedBits', 1234,
+ '-randomMask', 0,
+ '-valueType', 'random',
+ '-countValue', 1)
+
+ def test_update_ip_packet(self):
+ with mock.patch.object(self.ixnet_gen, '_update_ipv4_address') as \
+ mock_update_add, \
+ mock.patch.object(self.ixnet_gen, '_get_stack_item'), \
+ mock.patch.object(self.ixnet_gen,
+ '_get_config_element_by_flow_group_name', return_value='celm'), \
+ mock.patch.object(self.ixnet_gen, '_update_ipv4_priority') as \
+ mock_update_priority:
+ self.ixnet_gen.update_ip_packet(TRAFFIC_PARAMETERS)
+
+ self.assertEqual(4, len(mock_update_add.mock_calls))
+ self.assertEqual(2, len(mock_update_priority.mock_calls))
+
+ def test_update_ip_packet_exception_no_config_element(self):
+ with mock.patch.object(self.ixnet_gen,
+ '_get_config_element_by_flow_group_name',
+ return_value=None):
+ with self.assertRaises(exceptions.IxNetworkFlowNotPresent):
+ self.ixnet_gen.update_ip_packet(TRAFFIC_PARAMETERS)
+
+ def test_update_l4(self):
+ with mock.patch.object(self.ixnet_gen, '_update_udp_port') as \
+ mock_update_udp, \
+ mock.patch.object(self.ixnet_gen, '_get_stack_item'), \
+ mock.patch.object(self.ixnet_gen,
+ '_get_config_element_by_flow_group_name', return_value='celm'):
+ self.ixnet_gen.update_l4(TRAFFIC_PARAMETERS)
+
+ self.assertEqual(4, len(mock_update_udp.mock_calls))
+
+ def test_update_l4_exception_no_config_element(self):
+ with mock.patch.object(self.ixnet_gen,
+ '_get_config_element_by_flow_group_name',
+ return_value=None):
+ with self.assertRaises(exceptions.IxNetworkFlowNotPresent):
+ self.ixnet_gen.update_l4(TRAFFIC_PARAMETERS)
+
+ def test_update_l4_exception_no_supported_proto(self):
+ traffic_parameters = {
+ UPLINK: {
+ 'id': 1,
+ 'outer_l3': {
+ 'proto': 'unsupported',
+ },
+ 'outer_l4': {
+ 'seed': 1
+ }
+ },
+ }
+ with mock.patch.object(self.ixnet_gen,
+ '_get_config_element_by_flow_group_name',
+ return_value='celm'):
+ with self.assertRaises(exceptions.IXIAUnsupportedProtocol):
+ self.ixnet_gen.update_l4(traffic_parameters)
+
+ @mock.patch.object(ixnet_api.IxNextgen, '_get_traffic_state')
+ def test_start_traffic(self, mock_ixnextgen_get_traffic_state):
+ self.ixnet_gen._ixnet.getList.return_value = [0]
+
+ mock_ixnextgen_get_traffic_state.side_effect = [
+ 'stopped', 'started', 'started', 'started']
+
+ result = self.ixnet_gen.start_traffic()
+ self.assertIsNone(result)
+ self.ixnet.getList.assert_called_once()
+ self.assertEqual(3, self.ixnet_gen._ixnet.execute.call_count)
+
+ @mock.patch.object(ixnet_api.IxNextgen, '_get_traffic_state')
+ def test_start_traffic_traffic_running(
+ self, mock_ixnextgen_get_traffic_state):
+ self.ixnet_gen._ixnet.getList.return_value = [0]
+ mock_ixnextgen_get_traffic_state.side_effect = [
+ 'started', 'stopped', 'started']
+
+ result = self.ixnet_gen.start_traffic()
+ self.assertIsNone(result)
+ self.ixnet.getList.assert_called_once()
+ self.assertEqual(4, self.ixnet_gen._ixnet.execute.call_count)
+
+ @mock.patch.object(ixnet_api.IxNextgen, '_get_traffic_state')
+ def test_start_traffic_wait_for_traffic_to_stop(
+ self, mock_ixnextgen_get_traffic_state):
+ self.ixnet_gen._ixnet.getList.return_value = [0]
+ mock_ixnextgen_get_traffic_state.side_effect = [
+ 'started', 'started', 'started', 'stopped', 'started']
+
+ result = self.ixnet_gen.start_traffic()
+ self.assertIsNone(result)
+ self.ixnet.getList.assert_called_once()
+ self.assertEqual(4, self.ixnet_gen._ixnet.execute.call_count)
+
+ @mock.patch.object(ixnet_api.IxNextgen, '_get_traffic_state')
+ def test_start_traffic_wait_for_traffic_start(
+ self, mock_ixnextgen_get_traffic_state):
+ self.ixnet_gen._ixnet.getList.return_value = [0]
+ mock_ixnextgen_get_traffic_state.side_effect = [
+ 'stopped', 'stopped', 'stopped', 'started']
+
+ result = self.ixnet_gen.start_traffic()
+ self.assertIsNone(result)
+ self.ixnet.getList.assert_called_once()
+ self.assertEqual(3, self.ixnet_gen._ixnet.execute.call_count)
+
+ def test__get_protocol_status(self):
+ self.ixnet.getAttribute.return_value = ['up']
+ self.ixnet_gen._get_protocol_status('ipv4')
+ self.ixnet.getAttribute.assert_called_once_with('ipv4',
+ '-sessionStatus')
+
+ @mock.patch.object(ixnet_api.IxNextgen, '_get_protocol_status')
+ def test_is_protocols_running(self, mock_ixnextgen_get_protocol_status):
+ mock_ixnextgen_get_protocol_status.return_value = ['up', 'up']
+ result = self.ixnet_gen.is_protocols_running(['ethernet', 'ipv4'])
+ self.assertTrue(result)
+
+ @mock.patch.object(ixnet_api.IxNextgen, '_get_protocol_status')
+ def test_is_protocols_stopped(self, mock_ixnextgen_get_protocol_status):
+ mock_ixnextgen_get_protocol_status.return_value = ['down', 'down']
+ result = self.ixnet_gen.is_protocols_running(['ethernet', 'ipv4'])
+ self.assertFalse(result)
+
+ def test_start_protocols(self):
+ self.ixnet_gen.start_protocols()
+ self.ixnet.execute.assert_called_once_with('startAllProtocols')
+
+ def test_stop_protocols(self):
+ self.ixnet_gen.stop_protocols()
+ self.ixnet.execute.assert_called_once_with('stopAllProtocols')
+
+ def test_get_vports(self):
+ self.ixnet_gen._ixnet.getRoot.return_value = 'root'
+ self.ixnet_gen.get_vports()
+ self.ixnet.getList.assert_called_once_with('root', 'vport')
diff --git a/yardstick/tests/unit/network_services/nfvi/__init__.py b/yardstick/tests/unit/network_services/nfvi/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/nfvi/__init__.py
diff --git a/tests/unit/network_services/nfvi/test_collectd.py b/yardstick/tests/unit/network_services/nfvi/test_collectd.py
index 866c31d32..fe59aecfb 100644
--- a/tests/unit/network_services/nfvi/test_collectd.py
+++ b/yardstick/tests/unit/network_services/nfvi/test_collectd.py
@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
import unittest
import multiprocessing
import mock
@@ -34,7 +33,7 @@ class TestAmqpConsumer(unittest.TestCase):
self.amqp_consumer._connection.add_on_close_callback = \
mock.Mock(return_value=0)
self.amqp_consumer._connection.channel = mock.Mock(return_value=0)
- self.assertEqual(None, self.amqp_consumer.on_connection_open(10))
+ self.assertIsNone(self.amqp_consumer.on_connection_open(10))
def test_on_connection_closed(self):
self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
@@ -42,13 +41,11 @@ class TestAmqpConsumer(unittest.TestCase):
self.amqp_consumer._connection.ioloop.stop = mock.Mock(return_value=0)
self.amqp_consumer._connection.add_timeout = mock.Mock(return_value=0)
self.amqp_consumer._closing = True
- self.assertEqual(None,
- self.amqp_consumer.on_connection_closed("", 404,
- "Not Found"))
+ self.assertIsNone(
+ self.amqp_consumer.on_connection_closed("", 404, "Not Found"))
self.amqp_consumer._closing = False
- self.assertEqual(None,
- self.amqp_consumer.on_connection_closed("", 404,
- "Not Found"))
+ self.assertIsNone(
+ self.amqp_consumer.on_connection_closed("", 404, "Not Found"))
def test_reconnect(self):
self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
@@ -56,7 +53,7 @@ class TestAmqpConsumer(unittest.TestCase):
self.amqp_consumer._connection.ioloop.stop = mock.Mock(return_value=0)
self.amqp_consumer.connect = mock.Mock(return_value=0)
self.amqp_consumer._closing = True
- self.assertEqual(None, self.amqp_consumer.reconnect())
+ self.assertIsNone(self.amqp_consumer.reconnect())
def test_on_channel_open(self):
self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
@@ -66,9 +63,8 @@ class TestAmqpConsumer(unittest.TestCase):
self.amqp_consumer.add_on_channel_close_callback = mock.Mock()
self.amqp_consumer._channel.exchange_declare = \
mock.Mock(return_value=0)
- self.assertEqual(None,
- self.amqp_consumer.on_channel_open(
- self.amqp_consumer._channel))
+ self.assertIsNone(
+ self.amqp_consumer.on_channel_open(self.amqp_consumer._channel))
def test_add_on_channel_close_callback(self):
self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
@@ -76,46 +72,44 @@ class TestAmqpConsumer(unittest.TestCase):
mock.Mock(return_value=0)
self.amqp_consumer._channel = mock.Mock()
self.amqp_consumer._channel.add_on_close_callback = mock.Mock()
- self.assertEqual(None,
- self.amqp_consumer.add_on_channel_close_callback())
+ self.assertIsNone(self.amqp_consumer.add_on_channel_close_callback())
def test_on_channel_closed(self):
self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
self.amqp_consumer._connection.close = mock.Mock(return_value=0)
_channel = mock.Mock()
- self.assertEqual(None,
- self.amqp_consumer.on_channel_closed(_channel,
- "", ""))
+ self.assertIsNone(
+ self.amqp_consumer.on_channel_closed(_channel, "", ""))
def test_ion_exchange_declareok(self):
self.amqp_consumer.setup_queue = mock.Mock(return_value=0)
- self.assertEqual(None, self.amqp_consumer.on_exchange_declareok(10))
+ self.assertIsNone(self.amqp_consumer.on_exchange_declareok(10))
def test_setup_queue(self):
self.amqp_consumer._channel = mock.Mock()
self.amqp_consumer._channel.add_on_close_callback = mock.Mock()
- self.assertEqual(None, self.amqp_consumer.setup_queue("collectd"))
+ self.assertIsNone(self.amqp_consumer.setup_queue("collectd"))
def test_on_queue_declareok(self):
self.amqp_consumer._channel = mock.Mock()
self.amqp_consumer._channel.queue_bind = mock.Mock()
- self.assertEqual(None, self.amqp_consumer.on_queue_declareok(10))
+ self.assertIsNone(self.amqp_consumer.on_queue_declareok(10))
def test__on_bindok(self):
self.amqp_consumer._channel = mock.Mock()
self.amqp_consumer._channel.basic_consume = mock.Mock()
self.amqp_consumer.add_on_cancel_callback = mock.Mock()
- self.assertEqual(None, self.amqp_consumer._on_bindok(10))
+ self.assertIsNone(self.amqp_consumer._on_bindok(10))
def test_add_on_cancel_callback(self):
self.amqp_consumer._channel = mock.Mock()
self.amqp_consumer._channel.add_on_cancel_callback = mock.Mock()
- self.assertEqual(None, self.amqp_consumer.add_on_cancel_callback())
+ self.assertIsNone(self.amqp_consumer.add_on_cancel_callback())
def test_on_consumer_cancelled(self):
self.amqp_consumer._channel = mock.Mock()
self.amqp_consumer._channel.close = mock.Mock()
- self.assertEqual(None, self.amqp_consumer.on_consumer_cancelled(10))
+ self.assertIsNone(self.amqp_consumer.on_consumer_cancelled(10))
def test_on_message(self):
body = "msg {} cpu/cpu-0/ipc 101010:10"
@@ -123,25 +117,24 @@ class TestAmqpConsumer(unittest.TestCase):
basic_deliver = mock.Mock()
basic_deliver.delivery_tag = mock.Mock(return_value=0)
self.amqp_consumer.ack_message = mock.Mock()
- self.assertEqual(None,
- self.amqp_consumer.on_message(10, basic_deliver,
- properties, body))
+ self.assertIsNone(
+ self.amqp_consumer.on_message(10, basic_deliver, properties, body))
def test_ack_message(self):
self.amqp_consumer._channel = mock.Mock()
self.amqp_consumer._channel.basic_ack = mock.Mock()
- self.assertEqual(None, self.amqp_consumer.ack_message(10))
+ self.assertIsNone(self.amqp_consumer.ack_message(10))
def test_on_cancelok(self):
self.amqp_consumer._channel = mock.Mock()
self.amqp_consumer._channel.close = mock.Mock()
- self.assertEqual(None, self.amqp_consumer.on_cancelok(10))
+ self.assertIsNone(self.amqp_consumer.on_cancelok(10))
def test_run(self):
self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
self.amqp_consumer.connect = mock.Mock()
self.amqp_consumer._connection.ioloop.start = mock.Mock()
- self.assertEqual(None, self.amqp_consumer.run())
+ self.assertIsNone(self.amqp_consumer.run())
def test_stop(self):
self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
@@ -149,9 +142,9 @@ class TestAmqpConsumer(unittest.TestCase):
self.amqp_consumer._connection.ioloop.start = mock.Mock()
self.amqp_consumer._channel = mock.Mock()
self.amqp_consumer._channel.basic_cancel = mock.Mock()
- self.assertEqual(None, self.amqp_consumer.stop())
+ self.assertIsNone(self.amqp_consumer.stop())
def test_close_connection(self):
self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
self.amqp_consumer._connection.close = mock.Mock()
- self.assertEqual(None, self.amqp_consumer.close_connection())
+ self.assertIsNone(self.amqp_consumer.close_connection())
diff --git a/tests/unit/network_services/nfvi/test_resource.py b/yardstick/tests/unit/network_services/nfvi/test_resource.py
index 5c2f890e8..c06658218 100644
--- a/tests/unit/network_services/nfvi/test_resource.py
+++ b/yardstick/tests/unit/network_services/nfvi/test_resource.py
@@ -12,12 +12,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
-import unittest
-
import errno
+
import mock
+import unittest
+from yardstick.common import exceptions
+from yardstick.common.exceptions import ResourceCommandError
from yardstick.network_services.nfvi.resource import ResourceProfile
from yardstick.network_services.nfvi import resource, collectd
@@ -103,16 +104,18 @@ class TestResourceProfile(unittest.TestCase):
self.resource_profile.connection = self.ssh_mock
def test___init__(self):
- self.assertEqual(True, self.resource_profile.enable)
+ self.assertTrue(self.resource_profile.enable)
- def test_check_if_sa_running(self):
- self.assertEqual(self.resource_profile.check_if_sa_running("collectd"),
+ def test_check_if_system_agent_running(self):
+ self.assertEqual(self.resource_profile.check_if_system_agent_running("collectd"),
(0, ""))
- def test_check_if_sa_running_excetion(self):
+ def test_check_if_system_agent_running_excetion(self):
with mock.patch.object(self.resource_profile.connection, "execute") as mock_execute:
mock_execute.side_effect = OSError(errno.ECONNRESET, "error")
- self.assertEqual(self.resource_profile.check_if_sa_running("collectd"), (1, None))
+ self.assertEqual(
+ self.resource_profile.check_if_system_agent_running("collectd"),
+ (1, None))
def test_get_cpu_data(self):
reskey = ["", "cpufreq", "cpufreq-0"]
@@ -127,20 +130,63 @@ class TestResourceProfile(unittest.TestCase):
self.assertEqual(val, ('error', 'Invalid', '', ''))
def test__start_collectd(self):
- self.assertIsNone(
- self.resource_profile._start_collectd(self.ssh_mock, "/opt/nsb_bin"))
+ ssh_mock = mock.Mock()
+ ssh_mock.execute = mock.Mock(return_value=(0, "", ""))
+ self.assertIsNone(self.resource_profile._start_collectd(ssh_mock,
+ "/opt/nsb_bin"))
+
+ ssh_mock.execute = mock.Mock(side_effect=exceptions.SSHError)
+ with self.assertRaises(exceptions.SSHError):
+ self.resource_profile._start_collectd(ssh_mock, "/opt/nsb_bin")
+
+ ssh_mock.execute = mock.Mock(return_value=(1, "", ""))
+ with self.assertRaises(ResourceCommandError):
+ self.resource_profile._start_collectd(ssh_mock, "/opt/nsb_bin")
+
+ def test__reset_rabbitmq(self):
+ ssh_mock = mock.Mock()
+ ssh_mock.execute = mock.Mock(return_value=(1, "", ""))
+ with self.assertRaises(exceptions.ResourceCommandError):
+ self.resource_profile._reset_rabbitmq(ssh_mock)
+
+ def test__check_rabbitmq_user(self):
+ ssh_mock = mock.Mock()
+ ssh_mock.execute = mock.Mock(return_value=(0, "title\nadmin\t[]", ""))
+ self.assertTrue(self.resource_profile._check_rabbitmq_user(ssh_mock))
+
+ def test__set_rabbitmq_admin_user(self):
+ ssh_mock = mock.Mock()
+ ssh_mock.execute = mock.Mock(return_value=(1, "", ""))
+ with self.assertRaises(exceptions.ResourceCommandError):
+ self.resource_profile._set_rabbitmq_admin_user(ssh_mock)
+
+ def test__start_rabbitmq(self):
+ ssh_mock = mock.Mock()
+ self.resource_profile._reset_rabbitmq = mock.Mock()
+ self.resource_profile._set_rabbitmq_admin_user = mock.Mock()
+
+ self.resource_profile._reset_mq_flag = True
+ ssh_mock.execute = mock.Mock(return_value=(1, "", ""))
+ with self.assertRaises(exceptions.ResourceCommandError):
+ self.resource_profile._start_rabbitmq(ssh_mock)
+
+ self.resource_profile._reset_mq_flag = False
+ self.resource_profile._check_rabbitmq_user = mock.Mock(return_value=False)
+ ssh_mock.execute = mock.Mock(return_value=(1, "", ""))
+ with self.assertRaises(exceptions.ResourceCommandError):
+ self.resource_profile._start_rabbitmq(ssh_mock)
def test__prepare_collectd_conf(self):
self.assertIsNone(
self.resource_profile._prepare_collectd_conf("/opt/nsb_bin"))
def test__setup_ovs_stats(self):
+ # TODO(elfoley): This method doesn't actually return anything, the side
+ # effects should be checked
self.assertIsNone(
self.resource_profile._setup_ovs_stats(self.ssh_mock))
- @mock.patch("yardstick.network_services.nfvi.resource.open")
- @mock.patch("yardstick.network_services.nfvi.resource.os")
- def test__provide_config_file(self, mock_open, mock_os):
+ def test__provide_config_file(self,):
loadplugin = range(5)
port_names = range(5)
kwargs = {
@@ -151,15 +197,14 @@ class TestResourceProfile(unittest.TestCase):
self.resource_profile._provide_config_file("/opt/nsb_bin", "collectd.conf", kwargs)
self.ssh_mock.execute.assert_called_once()
- @mock.patch("yardstick.network_services.nfvi.resource.open")
- def test_initiate_systemagent(self, mock_open):
+ def test_initiate_systemagent(self):
self.resource_profile._start_collectd = mock.Mock()
+ self.resource_profile._start_rabbitmq = mock.Mock()
self.assertIsNone(
self.resource_profile.initiate_systemagent("/opt/nsb_bin"))
- @mock.patch("yardstick.network_services.nfvi.resource.open")
- def test_initiate_systemagent_raise(self, mock_open):
- self.resource_profile._start_collectd = mock.Mock(side_effect=RuntimeError)
+ def test_initiate_systemagent_raise(self):
+ self.resource_profile._start_rabbitmq = mock.Mock(side_effect=RuntimeError)
with self.assertRaises(RuntimeError):
self.resource_profile.initiate_systemagent("/opt/nsb_bin")
@@ -246,7 +291,7 @@ class TestResourceProfile(unittest.TestCase):
self.resource_profile.run_collectd_amqp = \
mock.Mock(return_value=0)
res = self.resource_profile.amqp_process_for_nfvi_kpi()
- self.assertEqual(None, res)
+ self.assertIsNone(res)
def test_amqp_collect_nfvi_kpi(self):
self.resource_profile.amqp_client = \
@@ -267,9 +312,8 @@ class TestResourceProfile(unittest.TestCase):
def test_stop(self):
self.assertIsNone(self.resource_profile.stop())
- def test_stop(self):
+ def test_stop_amqp_not_running(self):
self.resource_profile.amqp_client = mock.MagicMock()
+ # TODO(efoley): Fix this incorrect test.
+ # Should check that we don't try to stop amqp when it's not running
self.assertIsNone(self.resource_profile.stop())
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/unit/network_services/test_utils.py b/yardstick/tests/unit/network_services/test_utils.py
index bf98a4474..2b2eb7109 100644
--- a/tests/unit/network_services/test_utils.py
+++ b/yardstick/tests/unit/network_services/test_utils.py
@@ -13,8 +13,6 @@
# limitations under the License.
#
-# Unittest for yardstick.network_services.utils
-
import os
import unittest
import mock
diff --git a/yardstick/tests/unit/network_services/traffic_profile/__init__.py b/yardstick/tests/unit/network_services/traffic_profile/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/__init__.py
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_base.py b/yardstick/tests/unit/network_services/traffic_profile/test_base.py
new file mode 100644
index 000000000..d9244e31b
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_base.py
@@ -0,0 +1,112 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import sys
+
+import mock
+import unittest
+
+from yardstick.common import exceptions
+from yardstick.network_services import traffic_profile as tprofile_package
+from yardstick.network_services.traffic_profile import base
+from yardstick import tests as y_tests
+
+
+class TestTrafficProfile(unittest.TestCase):
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100, # pps
+ "flow_number": 10,
+ "frame_size": 64}}
+
+ def _get_res_mock(self, **kw):
+ _mock = mock.MagicMock()
+ for k, v in kw.items():
+ setattr(_mock, k, v)
+ return _mock
+
+ def test___init__(self):
+ traffic_profile = base.TrafficProfile(self.TRAFFIC_PROFILE)
+ self.assertEqual(self.TRAFFIC_PROFILE, traffic_profile.params)
+
+ def test_execute_traffic(self):
+ traffic_profile = base.TrafficProfile(self.TRAFFIC_PROFILE)
+ self.assertRaises(NotImplementedError,
+ traffic_profile.execute_traffic, {})
+
+ def test_get_existing_traffic_profile(self):
+ traffic_profile_list = [
+ 'RFC2544Profile', 'FixedProfile', 'TrafficProfileGenericHTTP',
+ 'IXIARFC2544Profile', 'ProxACLProfile', 'ProxBinSearchProfile',
+ 'ProxProfile', 'ProxRampProfile']
+ with mock.patch.dict(sys.modules, y_tests.STL_MOCKS):
+ tprofile_package.register_modules()
+
+ for tp in traffic_profile_list:
+ traffic_profile = base.TrafficProfile.get(
+ {'traffic_profile': {'traffic_type': tp}})
+ self.assertEqual(tp, traffic_profile.__class__.__name__)
+
+ def test_get_non_existing_traffic_profile(self):
+ self.assertRaises(exceptions.TrafficProfileNotImplemented,
+ base.TrafficProfile.get, self.TRAFFIC_PROFILE)
+
+
+class TestDummyProfile(unittest.TestCase):
+ def test_execute(self):
+ tp_config = {'traffic_profile': {'duration': 15}}
+ dummy_profile = base.DummyProfile(tp_config)
+ self.assertIsNone(dummy_profile.execute({}))
+
+
+class TrafficProfileConfigTestCase(unittest.TestCase):
+
+ def test__init(self):
+ tp_config = {'traffic_profile': {'packet_sizes': {'64B': 100}}}
+ tp_config_obj = base.TrafficProfileConfig(tp_config)
+ self.assertEqual({'64B': 100}, tp_config_obj.packet_sizes)
+ self.assertEqual(base.TrafficProfileConfig.DEFAULT_DURATION,
+ tp_config_obj.duration)
+
+ def test__init_set_duration(self):
+ tp_config = {'traffic_profile': {'duration': 15}}
+ tp_config_obj = base.TrafficProfileConfig(tp_config)
+ self.assertEqual(base.TrafficProfileConfig.DEFAULT_SCHEMA,
+ tp_config_obj.schema)
+ self.assertEqual(float(base.TrafficProfileConfig.DEFAULT_FRAME_RATE),
+ tp_config_obj.frame_rate)
+ self.assertEqual(15, tp_config_obj.duration)
+
+ def test__parse_rate(self):
+ tp_config = {'traffic_profile': {'packet_sizes': {'64B': 100}}}
+ tp_config_obj = base.TrafficProfileConfig(tp_config)
+ self.assertEqual((100.0, 'fps'), tp_config_obj.parse_rate('100 '))
+ self.assertEqual((200.5, 'fps'), tp_config_obj.parse_rate('200.5'))
+ self.assertEqual((300.8, 'fps'), tp_config_obj.parse_rate('300.8fps'))
+ self.assertEqual((400.2, 'fps'),
+ tp_config_obj.parse_rate('400.2 fps'))
+ self.assertEqual((500.3, '%'), tp_config_obj.parse_rate('500.3%'))
+ self.assertEqual((600.1, '%'), tp_config_obj.parse_rate('600.1 %'))
+
+ def test__parse_rate_exception(self):
+ tp_config = {'traffic_profile': {'packet_sizes': {'64B': 100}}}
+ tp_config_obj = base.TrafficProfileConfig(tp_config)
+ with self.assertRaises(exceptions.TrafficProfileRate):
+ tp_config_obj.parse_rate('100Fps')
+ with self.assertRaises(exceptions.TrafficProfileRate):
+ tp_config_obj.parse_rate('100 kbps')
diff --git a/tests/unit/network_services/traffic_profile/test_fixed.py b/yardstick/tests/unit/network_services/traffic_profile/test_fixed.py
index eb182a2fb..2f6713760 100644
--- a/tests/unit/network_services/traffic_profile/test_fixed.py
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_fixed.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright (c) 2016-2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,12 +13,10 @@
# limitations under the License.
#
-from __future__ import absolute_import
-
-import unittest
import mock
+import unittest
-from tests.unit import STL_MOCKS
+from yardstick.tests import STL_MOCKS
STLClient = mock.MagicMock()
stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
@@ -106,8 +102,7 @@ class TestFixedProfile(unittest.TestCase):
'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'}]}}
def test___init__(self):
- fixed_profile = \
- FixedProfile(TrafficProfile)
+ fixed_profile = FixedProfile(self.TRAFFIC_PROFILE)
self.assertIsNotNone(fixed_profile)
def test_execute(self):
@@ -119,4 +114,4 @@ class TestFixedProfile(unittest.TestCase):
fixed_profile = FixedProfile(self.TRAFFIC_PROFILE)
fixed_profile.params = self.TRAFFIC_PROFILE
fixed_profile.first_run = True
- self.assertEqual(None, fixed_profile.execute(traffic_generator))
+ self.assertIsNone(fixed_profile.execute(traffic_generator))
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_http.py b/yardstick/tests/unit/network_services/traffic_profile/test_http.py
new file mode 100644
index 000000000..874ec37d4
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_http.py
@@ -0,0 +1,47 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+
+from yardstick.network_services.traffic_profile import http
+
+
+class TestTrafficProfileGenericHTTP(unittest.TestCase):
+
+ TP_CONFIG = {'traffic_profile': {'duration': 10},
+ "uplink_0": {}, "downlink_0": {}}
+
+ def test___init__(self):
+ tp_generic_http = http.TrafficProfileGenericHTTP(
+ self.TP_CONFIG)
+ self.assertIsNotNone(tp_generic_http)
+
+ def test_get_links_param(self):
+ tp_generic_http = http.TrafficProfileGenericHTTP(
+ self.TP_CONFIG)
+
+ links = tp_generic_http.get_links_param()
+ self.assertEqual({"uplink_0": {}, "downlink_0": {}}, links)
+
+ def test_execute(self):
+ tp_generic_http = http.TrafficProfileGenericHTTP(
+ self.TP_CONFIG)
+ traffic_generator = {}
+ self.assertIsNone(tp_generic_http.execute(traffic_generator))
+
+ def test__send_http_request(self):
+ tp_generic_http = http.TrafficProfileGenericHTTP(
+ self.TP_CONFIG)
+ self.assertIsNone(tp_generic_http._send_http_request(
+ '10.1.1.1', '250', '/req'))
diff --git a/tests/unit/network_services/traffic_profile/test_http_ixload.py b/yardstick/tests/unit/network_services/traffic_profile/test_http_ixload.py
index 5110439fd..996360c2e 100644
--- a/tests/unit/network_services/traffic_profile/test_http_ixload.py
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_http_ixload.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-
-from __future__ import absolute_import
import unittest
import mock
@@ -47,6 +45,26 @@ class TestJoinNonStrings(unittest.TestCase):
class TestIxLoadTrafficGen(unittest.TestCase):
+ def setUp(self):
+ ports = [1, 2, 3]
+ self.test_input = {
+ "remote_server": "REMOTE_SERVER",
+ "ixload_cfg": "IXLOAD_CFG",
+ "result_dir": "RESULT_DIR",
+ "ixia_chassis": "IXIA_CHASSIS",
+ "IXIA": {
+ "card": "CARD",
+ "ports": ports,
+ },
+ 'links_param': {
+ "uplink_0": {
+ "ip": {"address": "address",
+ "gateway": "gateway",
+ "subnet_prefix": "subnet_prefix",
+ "mac": "mac"
+ }}}
+ }
+
def test_parse_run_test(self):
ports = [1, 2, 3]
test_input = {
@@ -58,6 +76,7 @@ class TestIxLoadTrafficGen(unittest.TestCase):
"card": "CARD",
"ports": ports,
},
+ 'links_param': {}
}
j = jsonutils.dump_as_bytes(test_input)
ixload = http_ixload.IXLOADHttpTest(j)
@@ -68,6 +87,7 @@ class TestIxLoadTrafficGen(unittest.TestCase):
["IXIA_CHASSIS", "CARD", 2],
["IXIA_CHASSIS", "CARD", 3],
])
+ self.assertEqual({}, ixload.links_param)
def test_format_ports_for_reassignment(self):
ports = [
@@ -93,6 +113,7 @@ class TestIxLoadTrafficGen(unittest.TestCase):
"card": "CARD",
"ports": ports,
},
+ 'links_param': {}
}
j = jsonutils.dump_as_bytes(test_input)
ixload = http_ixload.IXLOADHttpTest(j)
@@ -114,6 +135,7 @@ class TestIxLoadTrafficGen(unittest.TestCase):
"card": "CARD",
"ports": ports,
},
+ 'links_param': {}
}
j = jsonutils.dump_as_bytes(test_input)
ixload = http_ixload.IXLOADHttpTest(j)
@@ -162,6 +184,7 @@ class TestIxLoadTrafficGen(unittest.TestCase):
"card": "CARD",
"ports": ports,
},
+ 'links_param': {}
}
j = jsonutils.dump_as_bytes(test_input)
ixload = http_ixload.IXLOADHttpTest(j)
@@ -180,6 +203,7 @@ class TestIxLoadTrafficGen(unittest.TestCase):
"card": "CARD",
"ports": ports,
},
+ 'links_param': {}
}
j = jsonutils.dump_as_bytes(test_input)
ixload = http_ixload.IXLOADHttpTest(j)
@@ -187,9 +211,9 @@ class TestIxLoadTrafficGen(unittest.TestCase):
with self.assertRaises(Exception):
ixload.load_config_file("ixload.cfg")
- @mock.patch('yardstick.network_services.traffic_profile.http_ixload.IxLoad')
@mock.patch('yardstick.network_services.traffic_profile.http_ixload.StatCollectorUtils')
- def test_start_http_test_connect_error(self, mock_collector_type, mock_ixload_type):
+ @mock.patch('yardstick.network_services.traffic_profile.http_ixload.IxLoad')
+ def test_start_http_test_connect_error(self, mock_ixload_type, *args):
ports = [1, 2, 3]
test_input = {
"remote_server": "REMOTE_SERVER",
@@ -200,12 +224,12 @@ class TestIxLoadTrafficGen(unittest.TestCase):
"card": "CARD",
"ports": ports,
},
+ 'links_param': {}
}
j = jsonutils.dump_as_bytes(test_input)
- mock_ixload = mock_ixload_type()
- mock_ixload.connect.side_effect = RuntimeError
+ mock_ixload_type.return_value.connect.side_effect = RuntimeError
ixload = http_ixload.IXLOADHttpTest(j)
ixload.results_on_windows = 'windows_result_dir'
@@ -214,9 +238,163 @@ class TestIxLoadTrafficGen(unittest.TestCase):
with self.assertRaises(RuntimeError):
ixload.start_http_test()
+ def test_update_config(self):
+ net_taraffic_0 = mock.Mock()
+ net_taraffic_0.name = "HTTP client@uplink_0"
+ net_taraffic_1 = mock.Mock()
+ net_taraffic_1.name = "HTTP client@uplink_1"
+
+ community_list = [net_taraffic_0, net_taraffic_1, Exception]
+ ixload = http_ixload.IXLOADHttpTest(
+ jsonutils.dump_as_bytes(self.test_input))
+
+ ixload.links_param = {"uplink_0": {"ip": {},
+ "http_client": {}}}
+
+ ixload.test = mock.Mock()
+ ixload.test.communityList = community_list
+
+ ixload.update_network_param = mock.Mock()
+ ixload.update_http_client_param = mock.Mock()
+
+ ixload.update_config()
+
+ ixload.update_network_param.assert_called_once_with(net_taraffic_0, {})
+ ixload.update_http_client_param.assert_called_once_with(net_taraffic_0,
+ {})
+
+ def test_update_network_mac_address(self):
+ ethernet = mock.MagicMock()
+ net_traffic = mock.Mock()
+ net_traffic.network.getL1Plugin.return_value = ethernet
+
+ ixload = http_ixload.IXLOADHttpTest(
+ jsonutils.dump_as_bytes(self.test_input))
+
+ ix_net_l2_ethernet_plugin = ethernet.childrenList[0]
+ ix_net_ip_v4_v6_plugin = ix_net_l2_ethernet_plugin.childrenList[0]
+ ix_net_ip_v4_v6_range = ix_net_ip_v4_v6_plugin.rangeList[0]
+
+ ixload.update_network_mac_address(net_traffic, "auto")
+ ix_net_ip_v4_v6_range.config.assert_called_once_with(
+ autoMacGeneration=True)
+
+ ixload.update_network_mac_address(net_traffic, "00:00:00:00:00:01")
+ ix_net_ip_v4_v6_range.config.assert_called_with(
+ autoMacGeneration=False)
+ mac_range = ix_net_ip_v4_v6_range.getLowerRelatedRange("MacRange")
+ mac_range.config.assert_called_once_with(mac="00:00:00:00:00:01")
+
+ net_traffic.network.getL1Plugin.return_value = Exception
+
+ with self.assertRaises(http_ixload.InvalidRxfFile):
+ ixload.update_network_mac_address(net_traffic, "auto")
+
+ def test_update_network_address(self):
+ ethernet = mock.MagicMock()
+ net_traffic = mock.Mock()
+ net_traffic.network.getL1Plugin.return_value = ethernet
+
+ ixload = http_ixload.IXLOADHttpTest(
+ jsonutils.dump_as_bytes(self.test_input))
+
+ ix_net_l2_ethernet_plugin = ethernet.childrenList[0]
+ ix_net_ip_v4_v6_plugin = ix_net_l2_ethernet_plugin.childrenList[0]
+ ix_net_ip_v4_v6_range = ix_net_ip_v4_v6_plugin.rangeList[0]
+
+ ixload.update_network_address(net_traffic, "address", "gateway",
+ "prefix")
+ ix_net_ip_v4_v6_range.config.assert_called_once_with(
+ prefix="prefix",
+ ipAddress="address",
+ gatewayAddress="gateway")
+
+ net_traffic.network.getL1Plugin.return_value = Exception
+
+ with self.assertRaises(http_ixload.InvalidRxfFile):
+ ixload.update_network_address(net_traffic, "address", "gateway",
+ "prefix")
+
+ def test_update_network_param(self):
+ net_traffic = mock.Mock()
+
+ ixload = http_ixload.IXLOADHttpTest(
+ jsonutils.dump_as_bytes(self.test_input))
+
+ ixload.update_network_address = mock.Mock()
+ ixload.update_network_mac_address = mock.Mock()
+
+ param = {"address": "address",
+ "gateway": "gateway",
+ "subnet_prefix": "subnet_prefix",
+ "mac": "mac"
+ }
+
+ ixload.update_network_param(net_traffic, param)
+
+ ixload.update_network_address.assert_called_once_with(net_traffic,
+ "address",
+ "gateway",
+ "subnet_prefix")
+
+ ixload.update_network_mac_address.assert_called_once_with(
+ net_traffic,
+ "mac")
+
+ def test_update_http_client_param(self):
+ net_traffic = mock.Mock()
+
+ ixload = http_ixload.IXLOADHttpTest(
+ jsonutils.dump_as_bytes(self.test_input))
+
+ ixload.update_page_size = mock.Mock()
+ ixload.update_user_count = mock.Mock()
+
+ param = {"page_object": "page_object",
+ "simulated_users": "simulated_users"}
+
+ ixload.update_http_client_param(net_traffic, param)
+
+ ixload.update_page_size.assert_called_once_with(net_traffic,
+ "page_object")
+ ixload.update_user_count.assert_called_once_with(net_traffic,
+ "simulated_users")
+
+ def test_update_page_size(self):
+ activity = mock.MagicMock()
+ net_traffic = mock.Mock()
+
+ ixload = http_ixload.IXLOADHttpTest(
+ jsonutils.dump_as_bytes(self.test_input))
+
+ net_traffic.activityList = [activity]
+ ix_http_command = activity.agent.actionList[0]
+ ixload.update_page_size(net_traffic, "page_object")
+ ix_http_command.config.assert_called_once_with(
+ pageObject="page_object")
+
+ net_traffic.activityList = []
+ with self.assertRaises(http_ixload.InvalidRxfFile):
+ ixload.update_page_size(net_traffic, "page_object")
+
+ def test_update_user_count(self):
+ activity = mock.MagicMock()
+ net_traffic = mock.Mock()
+
+ ixload = http_ixload.IXLOADHttpTest(
+ jsonutils.dump_as_bytes(self.test_input))
+
+ net_traffic.activityList = [activity]
+ ixload.update_user_count(net_traffic, 123)
+ activity.config.assert_called_once_with(userObjectiveValue=123)
+
+ net_traffic.activityList = []
+ with self.assertRaises(http_ixload.InvalidRxfFile):
+ ixload.update_user_count(net_traffic, 123)
+
@mock.patch('yardstick.network_services.traffic_profile.http_ixload.IxLoad')
@mock.patch('yardstick.network_services.traffic_profile.http_ixload.StatCollectorUtils')
- def test_start_http_test(self, mock_collector_type, mock_ixload_type):
+ def test_start_http_test(self, *args):
ports = [1, 2, 3]
test_input = {
"remote_server": "REMOTE_SERVER",
@@ -227,6 +405,7 @@ class TestIxLoadTrafficGen(unittest.TestCase):
"card": "CARD",
"ports": ports,
},
+ 'links_param': {}
}
j = jsonutils.dump_as_bytes(test_input)
@@ -240,7 +419,7 @@ class TestIxLoadTrafficGen(unittest.TestCase):
@mock.patch('yardstick.network_services.traffic_profile.http_ixload.IxLoad')
@mock.patch('yardstick.network_services.traffic_profile.http_ixload.StatCollectorUtils')
- def test_start_http_test_reassign_error(self, mock_collector_type, mock_ixload_type):
+ def test_start_http_test_reassign_error(self, *args):
ports = [1, 2, 3]
test_input = {
"remote_server": "REMOTE_SERVER",
@@ -251,6 +430,7 @@ class TestIxLoadTrafficGen(unittest.TestCase):
"card": "CARD",
"ports": ports,
},
+ 'links_param': {}
}
j = jsonutils.dump_as_bytes(test_input)
@@ -264,9 +444,9 @@ class TestIxLoadTrafficGen(unittest.TestCase):
ixload.result_dir = 'my_result_dir'
ixload.start_http_test()
- self.assertEqual(reassign_ports.call_count, 1)
+ reassign_ports.assert_called_once()
@mock.patch("yardstick.network_services.traffic_profile.http_ixload.IXLOADHttpTest")
- def test_main(self, IXLOADHttpTest):
+ def test_main(self, *args):
args = ["1", "2", "3"]
http_ixload.main(args)
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_ixia_rfc2544.py b/yardstick/tests/unit/network_services/traffic_profile/test_ixia_rfc2544.py
new file mode 100644
index 000000000..ddd1828ae
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_ixia_rfc2544.py
@@ -0,0 +1,1024 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import copy
+
+import mock
+import unittest
+import collections
+
+from yardstick.network_services.traffic_profile import ixia_rfc2544
+from yardstick.network_services.traffic_profile import trex_traffic_profile
+
+
+class TestIXIARFC2544Profile(unittest.TestCase):
+
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100, # pps
+ "flow_number": 10,
+ "frame_size": 64,
+ },
+ }
+
+ PROFILE = {
+ 'description': 'Traffic profile to run RFC2544 latency',
+ 'name': 'rfc2544',
+ 'traffic_profile': {
+ 'traffic_type': 'IXIARFC2544Profile',
+ 'frame_rate': 100},
+ ixia_rfc2544.IXIARFC2544Profile.DOWNLINK: {
+ 'ipv4': {
+ 'outer_l2': {
+ 'framesize': {
+ '64B': '100',
+ '1518B': '0',
+ '128B': '0',
+ '1400B': '0',
+ '256B': '0',
+ '373b': '0',
+ '570B': '0'}},
+ 'outer_l3v4': {
+ 'dstip4': '1.1.1.1-1.15.255.255',
+ 'proto': 'udp',
+ 'count': '1',
+ 'srcip4': '90.90.1.1-90.105.255.255',
+ 'dscp': 0,
+ 'ttl': 32},
+ 'outer_l4': {
+ 'srcport': '2001',
+ 'dsrport': '1234'}}},
+ ixia_rfc2544.IXIARFC2544Profile.UPLINK: {
+ 'ipv4': {
+ 'outer_l2': {
+ 'framesize': {
+ '64B': '100',
+ '1518B': '0',
+ '128B': '0',
+ '1400B': '0',
+ '256B': '0',
+ '373b': '0',
+ '570B': '0'}},
+ 'outer_l3v4': {
+ 'dstip4': '9.9.1.1-90.105.255.255',
+ 'proto': 'udp',
+ 'count': '1',
+ 'srcip4': '1.1.1.1-1.15.255.255',
+ 'dscp': 0,
+ 'ttl': 32},
+ 'outer_l4': {
+ 'dstport': '2001',
+ 'srcport': '1234'}}},
+ 'schema': 'isb:traffic_profile:0.1'}
+
+ def test_get_ixia_traffic_profile_error(self):
+ traffic_generator = mock.Mock(
+ autospec=trex_traffic_profile.TrexProfile)
+ traffic_generator.my_ports = [0, 1]
+ traffic_generator.uplink_ports = [-1]
+ traffic_generator.downlink_ports = [1]
+ traffic_generator.client = \
+ mock.Mock(return_value=True)
+ STATIC_TRAFFIC = {
+ ixia_rfc2544.IXIARFC2544Profile.UPLINK: {
+ "id": 1,
+ "bidir": "False",
+ "duration": 60,
+ "iload": "100",
+ "outer_l2": {
+ "dstmac": "00:00:00:00:00:03",
+ "framesPerSecond": True,
+ "framesize": 64,
+ "srcmac": "00:00:00:00:00:01"
+ },
+ "outer_l3": {
+ "dscp": 0,
+ "dstip4": "152.16.40.20",
+ "proto": "udp",
+ "srcip4": "152.16.100.20",
+ "ttl": 32
+ },
+ "outer_l3v4": {
+ "dscp": 0,
+ "dstip4": "152.16.40.20",
+ "proto": "udp",
+ "srcip4": "152.16.100.20",
+ "ttl": 32
+ },
+ "outer_l3v6": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l4": {
+ "dstport": "2001",
+ "srcport": "1234"
+ },
+ "traffic_type": "continuous"
+ },
+ ixia_rfc2544.IXIARFC2544Profile.DOWNLINK: {
+ "id": 2,
+ "bidir": "False",
+ "duration": 60,
+ "iload": "100",
+ "outer_l2": {
+ "dstmac": "00:00:00:00:00:04",
+ "framesPerSecond": True,
+ "framesize": 64,
+ "srcmac": "00:00:00:00:00:01"
+ },
+ "outer_l3": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l3v4": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l3v6": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l4": {
+ "dstport": "1234",
+ "srcport": "2001"
+ },
+ "traffic_type": "continuous"
+ }
+ }
+ ixia_rfc2544.STATIC_TRAFFIC = STATIC_TRAFFIC
+
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ r_f_c2544_profile.rate = 100
+ mac = {"src_mac_0": "00:00:00:00:00:01",
+ "src_mac_1": "00:00:00:00:00:02",
+ "src_mac_2": "00:00:00:00:00:02",
+ "dst_mac_0": "00:00:00:00:00:03",
+ "dst_mac_1": "00:00:00:00:00:04",
+ "dst_mac_2": "00:00:00:00:00:04"}
+ result = r_f_c2544_profile._get_ixia_traffic_profile(self.PROFILE, mac)
+ self.assertIsNotNone(result)
+
+ def test_get_ixia_traffic_profile(self):
+ traffic_generator = mock.Mock(
+ autospec=trex_traffic_profile.TrexProfile)
+ traffic_generator.my_ports = [0, 1]
+ traffic_generator.uplink_ports = [-1]
+ traffic_generator.downlink_ports = [1]
+ traffic_generator.client = \
+ mock.Mock(return_value=True)
+ STATIC_TRAFFIC = {
+ ixia_rfc2544.IXIARFC2544Profile.UPLINK: {
+ "id": 1,
+ "bidir": "False",
+ "duration": 60,
+ "iload": "100",
+ "outer_l2": {
+ "dstmac": "00:00:00:00:00:03",
+ "framesPerSecond": True,
+ "framesize": 64,
+ "srcmac": "00:00:00:00:00:01"
+ },
+ "outer_l3": {
+ "dscp": 0,
+ "dstip4": "152.16.40.20",
+ "proto": "udp",
+ "srcip4": "152.16.100.20",
+ "ttl": 32
+ },
+ "outer_l3v4": {
+ "dscp": 0,
+ "dstip4": "152.16.40.20",
+ "proto": "udp",
+ "srcip4": "152.16.100.20",
+ "ttl": 32,
+ "count": "1"
+ },
+ "outer_l3v6": {
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32,
+ },
+ "outer_l4": {
+ "dstport": "2001",
+ "srcport": "1234",
+ "count": "1"
+ },
+ "traffic_type": "continuous"
+ },
+ ixia_rfc2544.IXIARFC2544Profile.DOWNLINK: {
+ "id": 2,
+ "bidir": "False",
+ "duration": 60,
+ "iload": "100",
+ "outer_l2": {
+ "dstmac": "00:00:00:00:00:04",
+ "framesPerSecond": True,
+ "framesize": 64,
+ "srcmac": "00:00:00:00:00:01"
+ },
+ "outer_l3": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l3v4": {
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32,
+ },
+ "outer_l3v6": {
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32,
+ },
+ "outer_l4": {
+ "dstport": "1234",
+ "srcport": "2001",
+ "count": "1"
+ },
+ "traffic_type": "continuous"
+ }
+ }
+ ixia_rfc2544.STATIC_TRAFFIC = STATIC_TRAFFIC
+
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ r_f_c2544_profile.rate = 100
+ mac = {"src_mac_0": "00:00:00:00:00:01",
+ "src_mac_1": "00:00:00:00:00:02",
+ "src_mac_2": "00:00:00:00:00:02",
+ "dst_mac_0": "00:00:00:00:00:03",
+ "dst_mac_1": "00:00:00:00:00:04",
+ "dst_mac_2": "00:00:00:00:00:04"}
+ result = r_f_c2544_profile._get_ixia_traffic_profile(self.PROFILE, mac)
+ self.assertIsNotNone(result)
+
+ @mock.patch("yardstick.network_services.traffic_profile.ixia_rfc2544.open")
+ def test_get_ixia_traffic_profile_v6(self, *args):
+ traffic_generator = mock.Mock(
+ autospec=trex_traffic_profile.TrexProfile)
+ traffic_generator.my_ports = [0, 1]
+ traffic_generator.uplink_ports = [-1]
+ traffic_generator.downlink_ports = [1]
+ traffic_generator.client = \
+ mock.Mock(return_value=True)
+ STATIC_TRAFFIC = {
+ ixia_rfc2544.IXIARFC2544Profile.UPLINK: {
+ "id": 1,
+ "bidir": "False",
+ "duration": 60,
+ "iload": "100",
+ "outer_l2": {
+ "dstmac": "00:00:00:00:00:03",
+ "framesPerSecond": True,
+ "framesize": 64,
+ "srcmac": "00:00:00:00:00:01"
+ },
+ "outer_l3": {
+ "dscp": 0,
+ "dstip4": "152.16.40.20",
+ "proto": "udp",
+ "srcip4": "152.16.100.20",
+ "ttl": 32
+ },
+ "outer_l3v4": {
+ "dscp": 0,
+ "dstip4": "152.16.40.20",
+ "proto": "udp",
+ "srcip4": "152.16.100.20",
+ "ttl": 32
+ },
+ "outer_l3v6": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l4": {
+ "dstport": "2001",
+ "srcport": "1234"
+ },
+ "traffic_type": "continuous"
+ },
+ ixia_rfc2544.IXIARFC2544Profile.DOWNLINK: {
+ "id": 2,
+ "bidir": "False",
+ "duration": 60,
+ "iload": "100",
+ "outer_l2": {
+ "dstmac": "00:00:00:00:00:04",
+ "framesPerSecond": True,
+ "framesize": 64,
+ "srcmac": "00:00:00:00:00:01"
+ },
+ "outer_l3": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l3v4": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l3v6": {
+ "count": 1024,
+ "dscp": 0,
+ "dstip4": "152.16.100.20",
+ "proto": "udp",
+ "srcip4": "152.16.40.20",
+ "ttl": 32
+ },
+ "outer_l4": {
+ "dstport": "1234",
+ "srcport": "2001"
+ },
+ "traffic_type": "continuous"
+ }
+ }
+ ixia_rfc2544.STATIC_TRAFFIC = STATIC_TRAFFIC
+
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ r_f_c2544_profile.rate = 100
+ mac = {"src_mac_0": "00:00:00:00:00:01",
+ "src_mac_1": "00:00:00:00:00:02",
+ "src_mac_2": "00:00:00:00:00:02",
+ "dst_mac_0": "00:00:00:00:00:03",
+ "dst_mac_1": "00:00:00:00:00:04",
+ "dst_mac_2": "00:00:00:00:00:04"}
+ profile_data = {'description': 'Traffic profile to run RFC2544',
+ 'name': 'rfc2544',
+ 'traffic_profile':
+ {'traffic_type': 'IXIARFC2544Profile',
+ 'frame_rate': 100},
+ ixia_rfc2544.IXIARFC2544Profile.DOWNLINK:
+ {'ipv4':
+ {'outer_l2': {'framesize':
+ {'64B': '100', '1518B': '0',
+ '128B': '0', '1400B': '0',
+ '256B': '0', '373b': '0',
+ '570B': '0'}},
+ 'outer_l3v4': {'dstip4': '1.1.1.1-1.15.255.255',
+ 'proto': 'udp', 'count': '1',
+ 'srcip4': '90.90.1.1-90.105.255.255',
+ 'dscp': 0, 'ttl': 32},
+ 'outer_l3v6': {'dstip6': '1.1.1.1-1.15.255.255',
+ 'proto': 'udp', 'count': '1',
+ 'srcip6': '90.90.1.1-90.105.255.255',
+ 'dscp': 0, 'ttl': 32},
+ 'outer_l4': {'srcport': '2001',
+ 'dsrport': '1234'}}},
+ ixia_rfc2544.IXIARFC2544Profile.UPLINK: {'ipv4':
+ {'outer_l2': {'framesize':
+ {'64B': '100', '1518B': '0',
+ '128B': '0', '1400B': '0',
+ '256B': '0', '373b': '0',
+ '570B': '0'}},
+ 'outer_l3v4':
+ {'dstip4': '9.9.1.1-90.105.255.255',
+ 'proto': 'udp', 'count': '1',
+ 'srcip4': '1.1.1.1-1.15.255.255',
+ 'dscp': 0, 'ttl': 32},
+ 'outer_l3v6':
+ {'dstip6': '9.9.1.1-90.105.255.255',
+ 'proto': 'udp', 'count': '1',
+ 'srcip6': '1.1.1.1-1.15.255.255',
+ 'dscp': 0, 'ttl': 32},
+
+ 'outer_l4': {'dstport': '2001',
+ 'srcport': '1234'}}},
+ 'schema': 'isb:traffic_profile:0.1'}
+ result = r_f_c2544_profile._get_ixia_traffic_profile(profile_data, mac)
+ self.assertIsNotNone(result)
+
+ def test__init__(self):
+ t_profile_data = copy.deepcopy(self.TRAFFIC_PROFILE)
+ t_profile_data['traffic_profile']['frame_rate'] = 12345678
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(t_profile_data)
+ self.assertEqual(12345678, r_f_c2544_profile.rate)
+
+ def test__get_ip_and_mask_range(self):
+ ip_range = '1.2.0.2-1.2.255.254'
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ ip, mask = r_f_c2544_profile._get_ip_and_mask(ip_range)
+ self.assertEqual('1.2.0.2', ip)
+ self.assertEqual(16, mask)
+
+ def test__get_ip_and_mask_single(self):
+ ip_range = '192.168.1.10'
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ ip, mask = r_f_c2544_profile._get_ip_and_mask(ip_range)
+ self.assertEqual('192.168.1.10', ip)
+ self.assertIsNone(mask)
+
+ def test__get_fixed_and_mask_range(self):
+ fixed_mask = '8-48'
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ fixed, mask = r_f_c2544_profile._get_fixed_and_mask(fixed_mask)
+ self.assertEqual(8, fixed)
+ self.assertEqual(48, mask)
+
+ def test__get_fixed_and_mask_single(self):
+ fixed_mask = 1234
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ fixed, mask = r_f_c2544_profile._get_fixed_and_mask(fixed_mask)
+ self.assertEqual(1234, fixed)
+ self.assertEqual(0, mask)
+
+ def test__get_ixia_traffic_profile_default_args(self):
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
+ self.TRAFFIC_PROFILE)
+
+ expected = {}
+ result = r_f_c2544_profile._get_ixia_traffic_profile({})
+ self.assertDictEqual(result, expected)
+
+ @mock.patch.object(ixia_rfc2544.IXIARFC2544Profile,
+ '_update_traffic_tracking_options')
+ def test__ixia_traffic_generate(self, mock_upd_tracking_opts):
+ traffic_generator = mock.Mock(
+ autospec=trex_traffic_profile.TrexProfile)
+ traffic_generator.networks = {
+ "uplink_0": ["xe0"],
+ "downlink_0": ["xe1"],
+ }
+ traffic_generator.client = \
+ mock.Mock(return_value=True)
+ traffic = {ixia_rfc2544.IXIARFC2544Profile.DOWNLINK: {'iload': 10},
+ ixia_rfc2544.IXIARFC2544Profile.UPLINK: {'iload': 10}}
+ ixia_obj = mock.MagicMock()
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ r_f_c2544_profile.rate = 100
+ result = r_f_c2544_profile._ixia_traffic_generate(traffic, ixia_obj,
+ traffic_generator)
+ self.assertIsNone(result)
+ mock_upd_tracking_opts.assert_called_once_with(traffic_generator)
+
+ def test__update_traffic_tracking_options(self):
+ mock_traffic_gen = mock.Mock()
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile._update_traffic_tracking_options(mock_traffic_gen)
+ mock_traffic_gen.update_tracking_options.assert_called_once()
+
+ def test__get_framesize(self):
+ traffic_profile = {
+ 'uplink_0': {'ipv4': {'outer_l2': {'framesize': {'64B': 100}}}},
+ 'downlink_0': {'ipv4': {'outer_l2': {'framesize': {'64B': 100}}}},
+ 'uplink_1': {'ipv4': {'outer_l2': {'framesize': {'64B': 100}}}},
+ 'downlink_1': {'ipv4': {'outer_l2': {'framesize': {'64B': 100}}}}
+ }
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.params = traffic_profile
+ result = rfc2544_profile._get_framesize()
+ self.assertEqual(result, '64B')
+
+ def test__get_framesize_IMIX_traffic(self):
+ traffic_profile = {
+ 'uplink_0': {'ipv4': {'outer_l2': {'framesize': {'64B': 50,
+ '128B': 50}}}},
+ 'downlink_0': {'ipv4': {'outer_l2': {'framesize': {'64B': 50,
+ '128B': 50}}}},
+ 'uplink_1': {'ipv4': {'outer_l2': {'framesize': {'64B': 50,
+ '128B': 50}}}},
+ 'downlink_1': {'ipv4': {'outer_l2': {'framesize': {'64B': 50,
+ '128B': 50}}}}
+ }
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.params = traffic_profile
+ result = rfc2544_profile._get_framesize()
+ self.assertEqual(result, 'IMIX')
+
+ def test__get_framesize_zero_pkt_size_weight(self):
+ traffic_profile = {
+ 'uplink_0': {'ipv4': {'outer_l2': {'framesize': {'64B': 0}}}},
+ 'downlink_0': {'ipv4': {'outer_l2': {'framesize': {'64B': 0}}}},
+ 'uplink_1': {'ipv4': {'outer_l2': {'framesize': {'64B': 0}}}},
+ 'downlink_1': {'ipv4': {'outer_l2': {'framesize': {'64B': 0}}}}
+ }
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.params = traffic_profile
+ result = rfc2544_profile._get_framesize()
+ self.assertEqual(result, '')
+
+ def test_execute_traffic_first_run(self):
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.first_run = True
+ rfc2544_profile.rate = 50
+ traffic_gen = mock.Mock()
+ traffic_gen.rfc_helper.iteration.value = 0
+ with mock.patch.object(rfc2544_profile, '_get_ixia_traffic_profile') \
+ as mock_get_tp, \
+ mock.patch.object(rfc2544_profile, '_ixia_traffic_generate') \
+ as mock_tgenerate:
+ mock_get_tp.return_value = 'fake_tprofile'
+ output = rfc2544_profile.execute_traffic(traffic_gen,
+ ixia_obj=mock.ANY)
+
+ self.assertTrue(output)
+ self.assertFalse(rfc2544_profile.first_run)
+ self.assertEqual(50, rfc2544_profile.max_rate)
+ self.assertEqual(0, rfc2544_profile.min_rate)
+ mock_get_tp.assert_called_once()
+ mock_tgenerate.assert_called_once()
+
+ def test_execute_traffic_not_first_run(self):
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.first_run = False
+ rfc2544_profile.max_rate = 70
+ rfc2544_profile.min_rate = 0
+ traffic_gen = mock.Mock()
+ traffic_gen.rfc_helper.iteration.value = 0
+ with mock.patch.object(rfc2544_profile, '_get_ixia_traffic_profile') \
+ as mock_get_tp, \
+ mock.patch.object(rfc2544_profile, '_ixia_traffic_generate') \
+ as mock_tgenerate:
+ mock_get_tp.return_value = 'fake_tprofile'
+ rfc2544_profile.full_profile = mock.ANY
+ output = rfc2544_profile.execute_traffic(traffic_gen,
+ ixia_obj=mock.ANY)
+
+ self.assertFalse(output)
+ self.assertEqual(35.0, rfc2544_profile.rate)
+ mock_get_tp.assert_called_once()
+ mock_tgenerate.assert_called_once()
+
+ def test_update_traffic_profile(self):
+ traffic_generator = mock.Mock(
+ autospec=trex_traffic_profile.TrexProfile)
+ traffic_generator.networks = {
+ "uplink_0": ["xe0"], # private, one value for intfs
+ "downlink_0": ["xe1", "xe2"], # public, two values for intfs
+ "downlink_1": ["xe3"], # not in TRAFFIC PROFILE
+ "tenant_0": ["xe4"], # not public or private
+ }
+
+ ports_expected = [8, 3, 5]
+ traffic_generator.vnfd_helper.port_num.side_effect = ports_expected
+ traffic_generator.client.return_value = True
+
+ traffic_profile = copy.deepcopy(self.TRAFFIC_PROFILE)
+ traffic_profile.update({
+ "uplink_0": ["xe0"],
+ "downlink_0": ["xe1", "xe2"],
+ })
+
+ r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(traffic_profile)
+ r_f_c2544_profile.full_profile = {}
+ r_f_c2544_profile.get_streams = mock.Mock()
+
+ self.assertIsNone(
+ r_f_c2544_profile.update_traffic_profile(traffic_generator))
+ self.assertEqual(r_f_c2544_profile.ports, ports_expected)
+
+ def test_get_drop_percentage_completed(self):
+ samples = {'iface_name_1':
+ {'InPackets': 1000, 'OutPackets': 1000,
+ 'InBytes': 64000, 'OutBytes': 64000,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25},
+ 'iface_name_2':
+ {'InPackets': 1005, 'OutPackets': 1007,
+ 'InBytes': 64320, 'OutBytes': 64448,
+ 'LatencyAvg': 23,
+ 'LatencyMin': 13,
+ 'LatencyMax': 28}
+ }
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.rate = 100.0
+ rfc2544_profile._get_next_rate = mock.Mock(return_value=100.0)
+ rfc2544_profile._get_framesize = mock.Mock(return_value='64B')
+ completed, samples = rfc2544_profile.get_drop_percentage(
+ samples, 0, 1, 4, 0.1)
+ self.assertTrue(completed)
+ self.assertEqual(66.9, samples['TxThroughput'])
+ self.assertEqual(66.833, samples['RxThroughput'])
+ self.assertEqual(0.099651, samples['DropPercentage'])
+ self.assertEqual(21.5, samples['LatencyAvg'])
+ self.assertEqual(13.0, samples['LatencyMin'])
+ self.assertEqual(28.0, samples['LatencyMax'])
+ self.assertEqual(100.0, samples['Rate'])
+ self.assertEqual('64B', samples['PktSize'])
+
+ def test_get_drop_percentage_over_drop_percentage(self):
+ samples = {'iface_name_1':
+ {'InPackets': 1000, 'OutPackets': 1000,
+ 'InBytes': 64000, 'OutBytes': 64000,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25},
+ 'iface_name_2':
+ {'InPackets': 1005, 'OutPackets': 1007,
+ 'InBytes': 64320, 'OutBytes': 64448,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25}
+ }
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.rate = 1000
+ rfc2544_profile._get_next_rate = mock.Mock(return_value=50.0)
+ completed, samples = rfc2544_profile.get_drop_percentage(
+ samples, 0, 0.05, 4, 0.1)
+ self.assertFalse(completed)
+ self.assertEqual(66.9, samples['TxThroughput'])
+ self.assertEqual(66.833, samples['RxThroughput'])
+ self.assertEqual(0.099651, samples['DropPercentage'])
+ self.assertEqual(rfc2544_profile.rate, rfc2544_profile.max_rate)
+
+ def test_get_drop_percentage_under_drop_percentage(self):
+ samples = {'iface_name_1':
+ {'InPackets': 1000, 'OutPackets': 1000,
+ 'InBytes': 64000, 'OutBytes': 64000,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25},
+ 'iface_name_2':
+ {'InPackets': 1005, 'OutPackets': 1007,
+ 'InBytes': 64320, 'OutBytes': 64448,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25}
+ }
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.rate = 1000
+ rfc2544_profile._get_next_rate = mock.Mock(return_value=50.0)
+ completed, samples = rfc2544_profile.get_drop_percentage(
+ samples, 0.2, 1, 4, 0.1)
+ self.assertFalse(completed)
+ self.assertEqual(66.9, samples['TxThroughput'])
+ self.assertEqual(66.833, samples['RxThroughput'])
+ self.assertEqual(0.099651, samples['DropPercentage'])
+ self.assertEqual(rfc2544_profile.rate, rfc2544_profile.min_rate)
+
+ @mock.patch.object(ixia_rfc2544.LOG, 'info')
+ def test_get_drop_percentage_not_flow(self, *args):
+ samples = {'iface_name_1':
+ {'InPackets': 1000, 'OutPackets': 0,
+ 'InBytes': 64000, 'OutBytes': 0,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25},
+ 'iface_name_2':
+ {'InPackets': 1005, 'OutPackets': 0,
+ 'InBytes': 64320, 'OutBytes': 0,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25}
+ }
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.rate = 1000
+ rfc2544_profile._get_next_rate = mock.Mock(return_value=50.0)
+ completed, samples = rfc2544_profile.get_drop_percentage(
+ samples, 0.2, 1, 4, 0.1)
+ self.assertFalse(completed)
+ self.assertEqual(0.0, samples['TxThroughput'])
+ self.assertEqual(66.833, samples['RxThroughput'])
+ self.assertEqual(100, samples['DropPercentage'])
+ self.assertEqual(rfc2544_profile.rate, rfc2544_profile.max_rate)
+
+ def test_get_drop_percentage_first_run(self):
+ samples = {'iface_name_1':
+ {'InPackets': 1000, 'OutPackets': 1000,
+ 'InBytes': 64000, 'OutBytes': 64000,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25},
+ 'iface_name_2':
+ {'InPackets': 1005, 'OutPackets': 1007,
+ 'InBytes': 64320, 'OutBytes': 64448,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25}
+ }
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile._get_next_rate = mock.Mock(return_value=50.0)
+ completed, samples = rfc2544_profile.get_drop_percentage(
+ samples, 0, 1, 4, 0.1, first_run=True)
+ self.assertTrue(completed)
+ self.assertEqual(66.9, samples['TxThroughput'])
+ self.assertEqual(66.833, samples['RxThroughput'])
+ self.assertEqual(0.099651, samples['DropPercentage'])
+ self.assertEqual(33.45, rfc2544_profile.rate)
+
+ def test_get_drop_percentage_resolution(self):
+ rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile._get_next_rate = mock.Mock(return_value=0.1)
+ samples = {'iface_name_1':
+ {'InPackets': 1000, 'OutPackets': 1000,
+ 'InBytes': 64000, 'OutBytes': 64000,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25},
+ 'iface_name_2':
+ {'InPackets': 1005, 'OutPackets': 1007,
+ 'InBytes': 64320, 'OutBytes': 64448,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25}
+ }
+ rfc2544_profile.rate = 0.19
+ completed, _ = rfc2544_profile.get_drop_percentage(
+ samples, 0, 0.05, 4, 0.1)
+ self.assertTrue(completed)
+
+ samples = {'iface_name_1':
+ {'InPackets': 1000, 'OutPackets': 1000,
+ 'InBytes': 64000, 'OutBytes': 64000,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25},
+ 'iface_name_2':
+ {'InPackets': 1005, 'OutPackets': 1007,
+ 'InBytes': 64320, 'OutBytes': 64448,
+ 'LatencyAvg': 20,
+ 'LatencyMin': 15,
+ 'LatencyMax': 25}
+ }
+ rfc2544_profile.rate = 0.5
+ completed, _ = rfc2544_profile.get_drop_percentage(
+ samples, 0, 0.05, 4, 0.1)
+ self.assertFalse(completed)
+
+
+class TestIXIARFC2544PppoeScenarioProfile(unittest.TestCase):
+
+ TRAFFIC_PROFILE = {
+ "schema": "nsb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100},
+ 'uplink_0': {'ipv4': {'port': 'xe0', 'id': 1}},
+ 'downlink_0': {'ipv4': {'port': 'xe2', 'id': 2}},
+ 'uplink_1': {'ipv4': {'port': 'xe1', 'id': 3}},
+ 'downlink_1': {'ipv4': {'port': 'xe2', 'id': 4}}
+ }
+
+ def setUp(self):
+ self.ixia_tp = ixia_rfc2544.IXIARFC2544PppoeScenarioProfile(
+ self.TRAFFIC_PROFILE)
+ self.ixia_tp.rate = 100.0
+ self.ixia_tp._get_next_rate = mock.Mock(return_value=50.0)
+ self.ixia_tp._get_framesize = mock.Mock(return_value='64B')
+
+ def test___init__(self):
+ self.assertIsInstance(self.ixia_tp.full_profile,
+ collections.OrderedDict)
+
+ def test__get_flow_groups_params(self):
+ expected_tp = collections.OrderedDict([
+ ('uplink_0', {'ipv4': {'id': 1, 'port': 'xe0'}}),
+ ('downlink_0', {'ipv4': {'id': 2, 'port': 'xe2'}}),
+ ('uplink_1', {'ipv4': {'id': 3, 'port': 'xe1'}}),
+ ('downlink_1', {'ipv4': {'id': 4, 'port': 'xe2'}})])
+
+ self.ixia_tp._get_flow_groups_params()
+ self.assertDictEqual(self.ixia_tp.full_profile, expected_tp)
+
+ @mock.patch.object(ixia_rfc2544.IXIARFC2544PppoeScenarioProfile,
+ '_get_flow_groups_params')
+ def test_update_traffic_profile(self, mock_get_flow_groups_params):
+ networks = {
+ 'uplink_0': 'data1',
+ 'downlink_0': 'data2',
+ 'uplink_1': 'data3',
+ 'downlink_1': 'data4'
+ }
+ ports = ['xe0', 'xe1', 'xe2', 'xe3']
+ mock_traffic_gen = mock.Mock()
+ mock_traffic_gen.networks = networks
+ mock_traffic_gen.vnfd_helper.port_num.side_effect = ports
+ self.ixia_tp.update_traffic_profile(mock_traffic_gen)
+ mock_get_flow_groups_params.assert_called_once()
+ self.assertEqual(self.ixia_tp.ports, ports)
+
+ def test__get_prio_flows_drop_percentage(self):
+
+ input_stats = {
+ '0': {
+ 'InPackets': 50,
+ 'OutPackets': 100,
+ 'Store-Forward_Avg_latency_ns': 10,
+ 'Store-Forward_Min_latency_ns': 10,
+ 'Store-Forward_Max_latency_ns': 10}}
+
+ result = self.ixia_tp._get_prio_flows_drop_percentage(input_stats)
+ self.assertIsNotNone(result['0'].get('DropPercentage'))
+ self.assertEqual(result['0'].get('DropPercentage'), 50.0)
+
+ def test__get_prio_flows_drop_percentage_traffic_not_flowing(self):
+ input_stats = {
+ '0': {
+ 'InPackets': 0,
+ 'OutPackets': 0,
+ 'Store-Forward_Avg_latency_ns': 0,
+ 'Store-Forward_Min_latency_ns': 0,
+ 'Store-Forward_Max_latency_ns': 0}}
+
+ result = self.ixia_tp._get_prio_flows_drop_percentage(input_stats)
+ self.assertIsNotNone(result['0'].get('DropPercentage'))
+ self.assertEqual(result['0'].get('DropPercentage'), 100)
+
+ def test__get_summary_pppoe_subs_counters(self):
+ input_stats = {
+ 'xe0': {
+ 'OutPackets': 100,
+ 'SessionsUp': 4,
+ 'SessionsDown': 0,
+ 'SessionsNotStarted': 0,
+ 'SessionsTotal': 4},
+ 'xe1': {
+ 'OutPackets': 100,
+ 'SessionsUp': 4,
+ 'SessionsDown': 0,
+ 'SessionsNotStarted': 0,
+ 'SessionsTotal': 4}
+ }
+
+ expected_stats = {
+ 'SessionsUp': 8,
+ 'SessionsDown': 0,
+ 'SessionsNotStarted': 0,
+ 'SessionsTotal': 8
+ }
+
+ res = self.ixia_tp._get_summary_pppoe_subs_counters(input_stats)
+ self.assertDictEqual(res, expected_stats)
+
+ @mock.patch.object(ixia_rfc2544.IXIARFC2544PppoeScenarioProfile,
+ '_get_prio_flows_drop_percentage')
+ @mock.patch.object(ixia_rfc2544.IXIARFC2544PppoeScenarioProfile,
+ '_get_summary_pppoe_subs_counters')
+ def test_get_drop_percentage(self, mock_get_pppoe_subs,
+ mock_sum_prio_drop_rate):
+ samples = {
+ 'priority_stats': {
+ '0': {
+ 'InPackets': 100,
+ 'OutPackets': 100,
+ 'InBytes': 6400,
+ 'OutBytes': 6400,
+ 'LatencyAvg': 10,
+ 'LatencyMin': 10,
+ 'LatencyMax': 10}},
+ 'xe0': {
+ 'InPackets': 100,
+ 'OutPackets': 100,
+ 'InBytes': 6400,
+ 'OutBytes': 6400,
+ 'LatencyAvg': 10,
+ 'LatencyMin': 10,
+ 'LatencyMax': 10}}
+
+ mock_get_pppoe_subs.return_value = {'SessionsUp': 1}
+ mock_sum_prio_drop_rate.return_value = {'0': {'DropPercentage': 0.0}}
+
+ self.ixia_tp._get_framesize = mock.Mock(return_value='64B')
+ status, res = self.ixia_tp.get_drop_percentage(
+ samples, tol_min=0.0, tolerance=0.0001, precision=0,
+ resolution=0.1, first_run=True)
+ self.assertIsNotNone(res.get('DropPercentage'))
+ self.assertIsNotNone(res.get('Priority'))
+ self.assertIsNotNone(res.get('SessionsUp'))
+ self.assertEqual(res['DropPercentage'], 0.0)
+ self.assertEqual(res['Rate'], 100.0)
+ self.assertEqual(res['PktSize'], '64B')
+ self.assertTrue(status)
+ mock_sum_prio_drop_rate.assert_called_once()
+ mock_get_pppoe_subs.assert_called_once()
+
+ @mock.patch.object(ixia_rfc2544.IXIARFC2544PppoeScenarioProfile,
+ '_get_prio_flows_drop_percentage')
+ @mock.patch.object(ixia_rfc2544.IXIARFC2544PppoeScenarioProfile,
+ '_get_summary_pppoe_subs_counters')
+ def test_get_drop_percentage_failed_status(self, mock_get_pppoe_subs,
+ mock_sum_prio_drop_rate):
+ samples = {
+ 'priority_stats': {
+ '0': {
+ 'InPackets': 90,
+ 'OutPackets': 100,
+ 'InBytes': 5760,
+ 'OutBytes': 6400,
+ 'LatencyAvg': 10,
+ 'LatencyMin': 10,
+ 'LatencyMax': 10}},
+ 'xe0': {
+ 'InPackets': 90,
+ 'OutPackets': 100,
+ 'InBytes': 5760,
+ 'OutBytes': 6400,
+ 'LatencyAvg': 10,
+ 'LatencyMin': 10,
+ 'LatencyMax': 10}}
+
+ mock_get_pppoe_subs.return_value = {'SessionsUp': 1}
+ mock_sum_prio_drop_rate.return_value = {'0': {'DropPercentage': 0.0}}
+
+ status, res = self.ixia_tp.get_drop_percentage(
+ samples, tol_min=0.0, tolerance=0.0001, precision=0,
+ resolution=0.1, first_run=True)
+ self.assertIsNotNone(res.get('DropPercentage'))
+ self.assertIsNotNone(res.get('Priority'))
+ self.assertIsNotNone(res.get('SessionsUp'))
+ self.assertEqual(res['DropPercentage'], 10.0)
+ self.assertFalse(status)
+ mock_sum_prio_drop_rate.assert_called_once()
+ mock_get_pppoe_subs.assert_called_once()
+
+ @mock.patch.object(ixia_rfc2544.IXIARFC2544PppoeScenarioProfile,
+ '_get_prio_flows_drop_percentage')
+ @mock.patch.object(ixia_rfc2544.IXIARFC2544PppoeScenarioProfile,
+ '_get_summary_pppoe_subs_counters')
+ def test_get_drop_percentage_priority_flow_check(self, mock_get_pppoe_subs,
+ mock_sum_prio_drop_rate):
+ samples = {
+ 'priority_stats': {
+ '0': {
+ 'InPackets': 100,
+ 'OutPackets': 100,
+ 'InBytes': 6400,
+ 'OutBytes': 6400,
+ 'LatencyAvg': 10,
+ 'LatencyMin': 10,
+ 'LatencyMax': 10}},
+ 'xe0': {
+ 'InPackets': 90,
+ 'OutPackets': 100,
+ 'InBytes': 5760,
+ 'OutBytes': 6400,
+ 'LatencyAvg': 10,
+ 'LatencyMin': 10,
+ 'LatencyMax': 10
+ }}
+
+ mock_get_pppoe_subs.return_value = {'SessionsUp': 1}
+ mock_sum_prio_drop_rate.return_value = {'0': {'DropPercentage': 0.0}}
+
+ tc_rfc2544_opts = {'priority': '0',
+ 'allowed_drop_rate': '0.0001 - 0.0001'}
+ status, res = self.ixia_tp.get_drop_percentage(
+ samples, tol_min=15.0000, tolerance=15.0001, precision=0,
+ resolution=0.1, first_run=True, tc_rfc2544_opts=tc_rfc2544_opts)
+ self.assertIsNotNone(res.get('DropPercentage'))
+ self.assertIsNotNone(res.get('Priority'))
+ self.assertIsNotNone(res.get('SessionsUp'))
+ self.assertTrue(status)
+ mock_sum_prio_drop_rate.assert_called_once()
+ mock_get_pppoe_subs.assert_called_once()
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_landslide_profile.py b/yardstick/tests/unit/network_services/traffic_profile/test_landslide_profile.py
new file mode 100644
index 000000000..afd550029
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_landslide_profile.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import copy
+import unittest
+
+from yardstick.network_services.traffic_profile import landslide_profile
+
+TP_CONFIG = {
+ 'schema': "nsb:traffic_profile:0.1",
+ 'name': 'LandslideProfile',
+ 'description': 'Spirent Landslide traffic profile (Data Message Flow)',
+ 'traffic_profile': {
+ 'traffic_type': 'LandslideProfile'
+ },
+ 'dmf_config': {
+ 'dmf': {
+ 'library': 'test',
+ 'name': 'Fireball UDP',
+ 'description': "Basic data flow using UDP/IP (Fireball DMF)",
+ 'keywords': 'UDP ',
+ 'dataProtocol': 'fb_udp',
+ 'burstCount': 1,
+ 'clientPort': {
+ 'clientPort': 2002,
+ 'isClientPortRange': 'false'
+ },
+ 'serverPort': 2003,
+ 'connection': {
+ 'initiatingSide': 'Client',
+ 'disconnectSide': 'Client',
+ 'underlyingProtocol': 'none',
+ 'persistentConnection': 'false'
+ },
+ 'protocolId': 0,
+ 'persistentConnection': 'false',
+ 'transactionRate': 8.0,
+ 'transactions': {
+ 'totalTransactions': 0,
+ 'retries': 0,
+ 'dataResponseTime': 60000,
+ 'packetSize': 64
+ },
+ 'segment': {
+ 'segmentSize': 64000,
+ 'maxSegmentSize': 0
+ },
+ 'size': {
+ 'sizeDistribution': 'Fixed',
+ 'sizeDeviation': 10
+ },
+ 'interval': {
+ 'intervalDistribution': 'Fixed',
+ 'intervalDeviation': 10
+ },
+ 'ipHeader': {
+ 'typeOfService': 0,
+ 'timeToLive': 64
+ },
+ 'tcpConnection': {
+ 'force3Way': 'false',
+ 'fixedRetryTime': 0,
+ 'maxPacketsToForceAck': 0
+ },
+ 'tcp': {
+ 'windowSize': 32768,
+ 'windowScaling': -1,
+ 'disableFinAckWait': 'false'
+ },
+ 'disconnectType': 'FIN',
+ 'slowStart': 'false',
+ 'connectOnly': 'false',
+ 'vtag': {
+ 'VTagMask': '0x0',
+ 'VTagValue': '0x0'
+ },
+ 'sctpPayloadProtocolId': 0,
+ 'billingIncludeSyn': 'true',
+ 'billingIncludeSubflow': 'true',
+ 'billingRecordPerTransaction': 'false',
+ 'tcpPush': 'false',
+ 'hostDataExpansionRatio': 1
+ }
+ }
+}
+DMF_OPTIONS = {
+ 'dmf': {
+ 'transactionRate': 5,
+ 'packetSize': 512,
+ 'burstCount': 1
+ }
+}
+
+
+class TestLandslideProfile(unittest.TestCase):
+
+ def test___init__(self):
+ ls_traffic_profile = landslide_profile.LandslideProfile(TP_CONFIG)
+ self.assertListEqual([TP_CONFIG["dmf_config"]],
+ ls_traffic_profile.dmf_config)
+
+ def test___init__config_not_a_dict(self):
+ _tp_config = copy.deepcopy(TP_CONFIG)
+ _tp_config['dmf_config'] = [_tp_config['dmf_config']]
+ ls_traffic_profile = landslide_profile.LandslideProfile(_tp_config)
+ self.assertListEqual(_tp_config['dmf_config'],
+ ls_traffic_profile.dmf_config)
+
+ def test_execute(self):
+ ls_traffic_profile = landslide_profile.LandslideProfile(TP_CONFIG)
+ self.assertIsNone(ls_traffic_profile.execute(None))
+
+ def test_update_dmf_options_dict(self):
+ ls_traffic_profile = landslide_profile.LandslideProfile(TP_CONFIG)
+ ls_traffic_profile.update_dmf(DMF_OPTIONS)
+ self.assertDictContainsSubset(DMF_OPTIONS['dmf'],
+ ls_traffic_profile.dmf_config[0])
+
+ def test_update_dmf_options_list(self):
+ ls_traffic_profile = landslide_profile.LandslideProfile(TP_CONFIG)
+ _dmf_options = copy.deepcopy(DMF_OPTIONS)
+ _dmf_options['dmf'] = [_dmf_options['dmf']]
+ ls_traffic_profile.update_dmf(_dmf_options)
+ self.assertTrue(all([x in ls_traffic_profile.dmf_config[0]
+ for x in DMF_OPTIONS['dmf']]))
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_pktgen.py b/yardstick/tests/unit/network_services/traffic_profile/test_pktgen.py
new file mode 100644
index 000000000..08542b4f1
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_pktgen.py
@@ -0,0 +1,63 @@
+# Copyright (c) 2018 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+
+from yardstick.common import utils
+from yardstick.network_services.traffic_profile import pktgen
+from yardstick.tests.unit import base as ut_base
+
+
+class TestIXIARFC2544Profile(ut_base.BaseUnitTestCase):
+
+ def setUp(self):
+ self._tp_config = {'traffic_profile': {}}
+ self._host = 'localhost'
+ self._port = '12345'
+ self.tp = pktgen.PktgenTrafficProfile(self._tp_config)
+ self.tp.init(self._host, self._port)
+ self._mock_send_socket_command = mock.patch.object(
+ utils, 'send_socket_command', return_value=0)
+ self.mock_send_socket_command = self._mock_send_socket_command.start()
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_send_socket_command.stop()
+
+ def test_start(self):
+ self.tp.start()
+ self.mock_send_socket_command.assert_called_once_with(
+ self._host, self._port, 'pktgen.start("0")')
+
+ def test_stop(self):
+ self.tp.stop()
+ self.mock_send_socket_command.assert_called_once_with(
+ self._host, self._port, 'pktgen.stop("0")')
+
+ def test_rate(self):
+ rate = 75
+ self.tp.rate(rate)
+ command = 'pktgen.set("0", "rate", 75)'
+ self.mock_send_socket_command.assert_called_once_with(
+ self._host, self._port, command)
+
+ def test_clear_all_stats(self):
+ self.tp.clear_all_stats()
+ self.mock_send_socket_command.assert_called_once_with(
+ self._host, self._port, 'clr')
+
+ def test_help(self):
+ self.tp.help()
+ self.mock_send_socket_command.assert_called_once_with(
+ self._host, self._port, 'help')
diff --git a/tests/unit/network_services/traffic_profile/test_prox_acl.py b/yardstick/tests/unit/network_services/traffic_profile/test_prox_acl.py
index ef5bac0d5..48c449b20 100644
--- a/tests/unit/network_services/traffic_profile/test_prox_acl.py
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_prox_acl.py
@@ -13,12 +13,10 @@
# limitations under the License.
#
-from __future__ import absolute_import
-
import unittest
import mock
-from tests.unit import STL_MOCKS
+from yardstick.tests import STL_MOCKS
STLClient = mock.MagicMock()
stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
@@ -32,7 +30,7 @@ if stl_patch:
class TestProxACLProfile(unittest.TestCase):
def test_run_test_with_pkt_size(self):
- def target(*args, **kwargs):
+ def target(*args):
runs.append(args[2])
if args[2] < 0 or args[2] > 100:
raise RuntimeError(' '.join([str(args), str(runs)]))
@@ -40,13 +38,8 @@ class TestProxACLProfile(unittest.TestCase):
return fail_tuple, {}
return success_tuple, {}
- def get_mock_samples(*args, **kwargs):
- if args[2] < 0:
- raise RuntimeError(' '.join([str(args), str(runs)]))
- return success_tuple
-
tp_config = {
- 'traffic_profile': {
+ 'traffic_profile': {
'upper_bound': 100.0,
'lower_bound': 0.0,
'tolerated_loss': 50.0,
@@ -55,8 +48,10 @@ class TestProxACLProfile(unittest.TestCase):
}
runs = []
- success_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.1, 5.2, 5.3], 995, 1000, 123.4)
- fail_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.6, 5.7, 5.8], 850, 1000, 123.4)
+ success_tuple = ProxTestDataTuple(
+ 10.0, 1, 2, 3, 4, [5.1, 5.2, 5.3], 995, 1000, 123.4)
+ fail_tuple = ProxTestDataTuple(
+ 10.0, 1, 2, 3, 4, [5.6, 5.7, 5.8], 850, 1000, 123.4)
traffic_gen = mock.MagicMock()
@@ -75,4 +70,5 @@ class TestProxACLProfile(unittest.TestCase):
profile.tolerated_loss = 100.0
profile._profile_helper = profile_helper
- profile.run_test_with_pkt_size(traffic_gen, profile.pkt_size, profile.duration)
+ profile.run_test_with_pkt_size(
+ traffic_gen, profile.pkt_size, profile.duration)
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_prox_binsearch.py b/yardstick/tests/unit/network_services/traffic_profile/test_prox_binsearch.py
new file mode 100644
index 000000000..f17656328
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_prox_binsearch.py
@@ -0,0 +1,302 @@
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+import mock
+
+from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxTestDataTuple
+from yardstick.network_services.traffic_profile import prox_binsearch
+
+
+class TestProxBinSearchProfile(unittest.TestCase):
+
+ THEOR_MAX_THROUGHPUT = 0.00012340000000000002
+
+ def setUp(self):
+ self._mock_log_info = mock.patch.object(prox_binsearch.LOG, 'info')
+ self.mock_log_info = self._mock_log_info.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_log_info.stop()
+
+ def test_execute_1(self):
+ def target(*args, **_):
+ runs.append(args[2])
+ if args[2] < 0 or args[2] > 100:
+ raise RuntimeError(' '.join([str(args), str(runs)]))
+ if args[2] > 75.0:
+ return fail_tuple, {}
+ return success_tuple, {}
+
+ def side_effect_func(arg1, arg2):
+ if arg1 == "confirmation":
+ return arg2
+ else:
+ return {}
+
+ tp_config = {
+ 'traffic_profile': {
+ 'packet_sizes': [200],
+ 'test_precision': 2.0,
+ 'tolerated_loss': 0.001,
+ },
+ }
+
+ runs = []
+ success_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.1, 5.2, 5.3], 995, 1000, 123.4)
+ fail_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.6, 5.7, 5.8], 850, 1000, 123.4)
+
+ traffic_generator = mock.MagicMock()
+ attrs1 = {'get.return_value': 10}
+ traffic_generator.scenario_helper.all_options.configure_mock(**attrs1)
+
+ attrs2 = {'__getitem__.return_value': 10, 'get.return_value': 10}
+ attrs3 = {'get.side_effect': side_effect_func}
+ traffic_generator.scenario_helper.scenario_cfg["runner"].configure_mock(**attrs2)
+ traffic_generator.scenario_helper.scenario_cfg["options"].configure_mock(**attrs3)
+
+ profile_helper = mock.MagicMock()
+ profile_helper.run_test = target
+
+ profile = prox_binsearch.ProxBinSearchProfile(tp_config)
+ profile.init(mock.MagicMock())
+ profile._profile_helper = profile_helper
+
+ profile.execute_traffic(traffic_generator)
+
+ self.assertEqual(round(profile.current_lower, 2), 74.69)
+ self.assertEqual(round(profile.current_upper, 2), 76.09)
+ self.assertEqual(len(runs), 7)
+
+ # Result Samples inc theor_max
+ result_tuple = {'Actual_throughput': 5e-07,
+ 'theor_max_throughput': self.THEOR_MAX_THROUGHPUT,
+ 'PktSize': 200,
+ 'Status': 'Result'}
+
+ test_results = profile.queue.put.call_args[0]
+ for k in result_tuple:
+ self.assertEqual(result_tuple[k], test_results[0][k])
+
+ success_result_tuple = {"CurrentDropPackets": 0.5,
+ "DropPackets": 0.5,
+ "LatencyAvg": 5.3,
+ "LatencyMax": 5.2,
+ "LatencyMin": 5.1,
+ "PktSize": 200,
+ "RxThroughput": 7.5e-07,
+ "Throughput": 7.5e-07,
+ "TxThroughput": self.THEOR_MAX_THROUGHPUT,
+ "Status": 'Success'}
+
+ calls = profile.queue.put(success_result_tuple)
+ profile.queue.put.assert_has_calls(calls)
+
+ success_result_tuple2 = {"CurrentDropPackets": 0.5,
+ "DropPackets": 0.5,
+ "LatencyAvg": 5.3,
+ "LatencyMax": 5.2,
+ "LatencyMin": 5.1,
+ "PktSize": 200,
+ "RxThroughput": 7.5e-07,
+ "Throughput": 7.5e-07,
+ "TxThroughput": 123.4,
+ "can_be_lost": 409600,
+ "drop_total": 20480,
+ "rx_total": 4075520,
+ "tx_total": 4096000,
+ "Status": 'Success'}
+
+ calls = profile.queue.put(success_result_tuple2)
+ profile.queue.put.assert_has_calls(calls)
+
+ def test_execute_2(self):
+ def target(*args, **_):
+ runs.append(args[2])
+ if args[2] < 0 or args[2] > 100:
+ raise RuntimeError(' '.join([str(args), str(runs)]))
+ if args[2] > 25.0:
+ return fail_tuple, {}
+ return success_tuple, {}
+
+ def side_effect_func(arg1, _):
+ if arg1 == "confirmation":
+ return 2
+ else:
+ return {}
+
+ tp_config = {
+ 'traffic_profile': {
+ 'packet_sizes': [200],
+ 'test_precision': 2.0,
+ 'tolerated_loss': 0.001,
+ },
+ }
+
+ runs = []
+ success_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.1, 5.2, 5.3], 995, 1000, 123.4)
+ fail_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.6, 5.7, 5.8], 850, 1000, 123.4)
+
+ traffic_generator = mock.MagicMock()
+ attrs1 = {'get.return_value': 10}
+ traffic_generator.scenario_helper.all_options.configure_mock(**attrs1)
+
+ attrs2 = {'__getitem__.return_value': 0, 'get.return_value': 0}
+ attrs3 = {'get.side_effect': side_effect_func}
+
+ traffic_generator.scenario_helper.scenario_cfg["runner"].configure_mock(**attrs2)
+ traffic_generator.scenario_helper.scenario_cfg["options"].configure_mock(**attrs3)
+
+ profile_helper = mock.MagicMock()
+ profile_helper.run_test = target
+
+ profile = prox_binsearch.ProxBinSearchProfile(tp_config)
+ profile.init(mock.MagicMock())
+ profile._profile_helper = profile_helper
+
+ profile.execute_traffic(traffic_generator)
+ self.assertEqual(round(profile.current_lower, 2), 24.06)
+ self.assertEqual(round(profile.current_upper, 2), 25.47)
+ self.assertEqual(len(runs), 21)
+
+ def test_execute_3(self):
+ def target(*args, **_):
+ runs.append(args[2])
+ if args[2] < 0 or args[2] > 100:
+ raise RuntimeError(' '.join([str(args), str(runs)]))
+ if args[2] > 75.0:
+ return fail_tuple, {}
+ return success_tuple, {}
+
+ tp_config = {
+ 'traffic_profile': {
+ 'packet_sizes': [200],
+ 'test_precision': 2.0,
+ 'tolerated_loss': 0.001,
+ },
+ }
+
+ runs = []
+ success_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.1, 5.2, 5.3], 995, 1000, 123.4)
+ fail_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.6, 5.7, 5.8], 850, 1000, 123.4)
+
+ traffic_generator = mock.MagicMock()
+
+ profile_helper = mock.MagicMock()
+ profile_helper.run_test = target
+
+ profile = prox_binsearch.ProxBinSearchProfile(tp_config)
+ profile.init(mock.MagicMock())
+ profile._profile_helper = profile_helper
+
+ profile.upper_bound = 100.0
+ profile.lower_bound = 99.0
+ profile.execute_traffic(traffic_generator)
+
+ result_tuple = {'Actual_throughput': 0, 'theor_max_throughput': 0,
+ "Status": 'Result', "Next_Step": ''}
+ profile.queue.put.assert_called_with(result_tuple)
+
+ # Check for success_ tuple (None expected)
+ calls = profile.queue.put.mock_calls
+ for call in calls:
+ for call_detail in call[1]:
+ if call_detail["Status"] == 'Success':
+ self.assertRaises(AttributeError)
+
+ def test_execute_4(self):
+
+ def target(*args, **_):
+ runs.append(args[2])
+ if args[2] < 0 or args[2] > 100:
+ raise RuntimeError(' '.join([str(args), str(runs)]))
+ if args[2] > 75.0:
+ return fail_tuple, {}
+
+ return success_tuple, {}
+
+ tp_config = {
+ 'traffic_profile': {
+ 'packet_sizes': [200],
+ 'test_precision': 2.0,
+ 'tolerated_loss': 0.001,
+ },
+ }
+
+ runs = []
+ success_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.1, 5.2, 5.3], 995, 1000, 123.4)
+ fail_tuple = ProxTestDataTuple(10.0, 1, 2, 3, 4, [5.6, 5.7, 5.8], 850, 1000, 123.4)
+
+ traffic_generator = mock.MagicMock()
+ attrs1 = {'get.return_value': 100000}
+ traffic_generator.scenario_helper.all_options.configure_mock(**attrs1)
+
+ attrs2 = {'__getitem__.return_value': 0, 'get.return_value': 0}
+
+ traffic_generator.scenario_helper.scenario_cfg["runner"].configure_mock(**attrs2)
+
+ profile_helper = mock.MagicMock()
+ profile_helper.run_test = target
+
+ profile = prox_binsearch.ProxBinSearchProfile(tp_config)
+ profile.init(mock.MagicMock())
+ profile._profile_helper = profile_helper
+
+ profile.execute_traffic(traffic_generator)
+ self.assertEqual(round(profile.current_lower, 2), 74.69)
+ self.assertEqual(round(profile.current_upper, 2), 76.09)
+ self.assertEqual(len(runs), 7)
+
+ # Result Samples inc theor_max
+ result_tuple = {'Actual_throughput': 5e-07,
+ 'theor_max_throughput': self.THEOR_MAX_THROUGHPUT,
+ 'PktSize': 200,
+ "Status": 'Result'}
+
+ test_results = profile.queue.put.call_args[0]
+ for k in result_tuple:
+ self.assertEqual(result_tuple[k], test_results[0][k])
+
+ success_result_tuple = {"CurrentDropPackets": 0.5,
+ "DropPackets": 0.5,
+ "LatencyAvg": 5.3,
+ "LatencyMax": 5.2,
+ "LatencyMin": 5.1,
+ "PktSize": 200,
+ "RxThroughput": 7.5e-07,
+ "Throughput": 7.5e-07,
+ "TxThroughput": self.THEOR_MAX_THROUGHPUT,
+ "Status": 'Success'}
+
+ calls = profile.queue.put(success_result_tuple)
+ profile.queue.put.assert_has_calls(calls)
+
+ success_result_tuple2 = {"CurrentDropPackets": 0.5,
+ "DropPackets": 0.5,
+ "LatencyAvg": 5.3,
+ "LatencyMax": 5.2,
+ "LatencyMin": 5.1,
+ "PktSize": 200,
+ "RxThroughput": 7.5e-07,
+ "Throughput": 7.5e-07,
+ "TxThroughput": 123.4,
+ "can_be_lost": 409600,
+ "drop_total": 20480,
+ "rx_total": 4075520,
+ "tx_total": 4096000,
+ "Status": 'Success'}
+
+ calls = profile.queue.put(success_result_tuple2)
+ profile.queue.put.assert_has_calls(calls)
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_prox_irq.py b/yardstick/tests/unit/network_services/traffic_profile/test_prox_irq.py
new file mode 100644
index 000000000..1d9eb0887
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_prox_irq.py
@@ -0,0 +1,57 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import time
+
+import unittest
+import mock
+
+from yardstick.network_services.traffic_profile import prox_irq
+
+
+class TestProxIrqProfile(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_log_info = mock.patch.object(prox_irq.LOG, 'info')
+ self.mock_log_info = self._mock_log_info.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_log_info.stop()
+
+ @mock.patch.object(time, 'sleep')
+ def test_execute_1(self, *args):
+ tp_config = {
+ 'traffic_profile': {
+ },
+ }
+
+ traffic_generator = mock.MagicMock()
+ attrs1 = {'get.return_value' : 10}
+ traffic_generator.scenario_helper.all_options.configure_mock(**attrs1)
+
+ attrs2 = {'__getitem__.return_value' : 10, 'get.return_value': 10}
+ traffic_generator.scenario_helper.scenario_cfg["runner"].configure_mock(**attrs2)
+
+ profile_helper = mock.MagicMock()
+
+ profile = prox_irq.ProxIrqProfile(tp_config)
+ profile.init(mock.MagicMock())
+ profile._profile_helper = profile_helper
+
+ profile.execute_traffic(traffic_generator)
+ profile.run_test()
+ is_ended_flag = profile.is_ended()
+
+ self.assertFalse(is_ended_flag)
+ self.assertEqual(profile.lower_bound, 10.0)
diff --git a/tests/unit/network_services/traffic_profile/test_prox_profile.py b/yardstick/tests/unit/network_services/traffic_profile/test_prox_profile.py
index 078e72b8e..1593a0835 100644
--- a/tests/unit/network_services/traffic_profile/test_prox_profile.py
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_prox_profile.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,13 +12,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-
-from __future__ import absolute_import
+import time
import unittest
import mock
-from tests.unit import STL_MOCKS
+from yardstick.tests import STL_MOCKS
STLClient = mock.MagicMock()
stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
@@ -31,14 +30,25 @@ if stl_patch:
class TestProxProfile(unittest.TestCase):
+ def test_sort_vpci(self):
+ traffic_generator = mock.Mock()
+ interface_1 = {'virtual-interface': {'vpci': 'id1'}, 'name': 'name1'}
+ interface_2 = {'virtual-interface': {'vpci': 'id2'}, 'name': 'name2'}
+ interface_3 = {'virtual-interface': {'vpci': 'id3'}, 'name': 'name3'}
+ interfaces = [interface_2, interface_3, interface_1]
+ traffic_generator.vnfd_helper = {
+ 'vdu': [{'external-interface': interfaces}]}
+ output = ProxProfile.sort_vpci(traffic_generator)
+ self.assertEqual([interface_1, interface_2, interface_3], output)
+
def test_fill_samples(self):
samples = {}
+
traffic_generator = mock.MagicMock()
- traffic_generator.vpci_if_name_ascending = [
+ interfaces = [
['id1', 'name1'],
- ['id2', 'name2'],
+ ['id2', 'name2']
]
-
traffic_generator.resource_helper.sut.port_stats.side_effect = [
list(range(12)),
list(range(10, 22)),
@@ -54,7 +64,9 @@ class TestProxProfile(unittest.TestCase):
'out_packets': 17,
},
}
- ProxProfile.fill_samples(samples, traffic_generator)
+ with mock.patch.object(ProxProfile, 'sort_vpci', return_value=interfaces):
+ ProxProfile.fill_samples(samples, traffic_generator)
+
self.assertDictEqual(samples, expected)
def test_init(self):
@@ -67,7 +79,8 @@ class TestProxProfile(unittest.TestCase):
profile.init(queue)
self.assertIs(profile.queue, queue)
- def test_execute_traffic(self):
+ @mock.patch.object(time, 'sleep')
+ def test_execute_traffic(self, *args):
packet_sizes = [
10,
100,
@@ -89,13 +102,13 @@ class TestProxProfile(unittest.TestCase):
profile = ProxProfile(tp_config)
- self.assertFalse(profile.done)
+ self.assertFalse(profile.done.is_set())
for _ in packet_sizes:
with self.assertRaises(NotImplementedError):
profile.execute_traffic(traffic_generator)
self.assertIsNone(profile.execute_traffic(traffic_generator))
- self.assertTrue(profile.done)
+ self.assertTrue(profile.done.is_set())
def test_bounds_iterator(self):
tp_config = {
@@ -113,5 +126,5 @@ class TestProxProfile(unittest.TestCase):
for _ in profile.bounds_iterator(mock_logger):
pass
- self.assertEqual(mock_logger.debug.call_count, 1)
+ mock_logger.debug.assert_called_once()
self.assertEqual(mock_logger.info.call_count, 10)
diff --git a/tests/unit/network_services/traffic_profile/test_prox_ramp.py b/yardstick/tests/unit/network_services/traffic_profile/test_prox_ramp.py
index 1acec2f68..7a77e3295 100644
--- a/tests/unit/network_services/traffic_profile/test_prox_ramp.py
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_prox_ramp.py
@@ -13,12 +13,10 @@
# limitations under the License.
#
-from __future__ import absolute_import
-
import unittest
import mock
-from tests.unit import STL_MOCKS
+from yardstick.tests import STL_MOCKS
STLClient = mock.MagicMock()
stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_rfc2544.py b/yardstick/tests/unit/network_services/traffic_profile/test_rfc2544.py
new file mode 100644
index 000000000..febcfe5da
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_rfc2544.py
@@ -0,0 +1,341 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import datetime
+
+import mock
+from trex_stl_lib import api as Pkt
+from trex_stl_lib import trex_stl_client
+from trex_stl_lib import trex_stl_packet_builder_scapy
+from trex_stl_lib import trex_stl_streams
+
+from yardstick.common import constants
+from yardstick.network_services.traffic_profile import rfc2544
+from yardstick.tests.unit import base
+
+
+class TestRFC2544Profile(base.BaseUnitTestCase):
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100,
+ "flow_number": 10,
+ "frame_size": 64}}
+
+ PROFILE = {'description': 'Traffic profile to run RFC2544 latency',
+ 'name': 'rfc2544',
+ 'traffic_profile': {'traffic_type': 'RFC2544Profile',
+ 'frame_rate': 100},
+ 'downlink_0':
+ {'ipv4':
+ {'outer_l2':
+ {'framesize':
+ {'64B': '100', '1518B': '0',
+ '128B': '0', '1400B': '0',
+ '256B': '0', '373b': '0',
+ '570B': '0'}},
+ 'outer_l3v4':
+ {'dstip4': '1.1.1.1-1.15.255.255',
+ 'proto': 'udp',
+ 'srcip4': '90.90.1.1-90.105.255.255',
+ 'dscp': 0, 'ttl': 32, 'count': 1},
+ 'outer_l4':
+ {'srcport': '2001',
+ 'dsrport': '1234', 'count': 1}}},
+ 'uplink_0':
+ {'ipv4':
+ {'outer_l2':
+ {'framesize':
+ {'64B': '100', '1518B': '0',
+ '128B': '0', '1400B': '0',
+ '256B': '0', '373b': '0',
+ '570B': '0'}},
+ 'outer_l3v4':
+ {'dstip4': '9.9.1.1-90.105.255.255',
+ 'proto': 'udp',
+ 'srcip4': '1.1.1.1-1.15.255.255',
+ 'dscp': 0, 'ttl': 32, 'count': 1},
+ 'outer_l4':
+ {'dstport': '2001',
+ 'srcport': '1234', 'count': 1}}},
+ 'schema': 'isb:traffic_profile:0.1'}
+
+ def test___init__(self):
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ self.assertEqual(rfc2544_profile.max_rate, rfc2544_profile.rate)
+ self.assertEqual(0, rfc2544_profile.min_rate)
+
+ def test_stop_traffic(self):
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ mock_generator = mock.Mock()
+ rfc2544_profile.stop_traffic(traffic_generator=mock_generator)
+ mock_generator.client.stop.assert_called_once()
+ mock_generator.client.reset.assert_called_once()
+ mock_generator.client.remove_all_streams.assert_called_once()
+
+ def test_execute_traffic(self):
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ mock_generator = mock.Mock()
+ mock_generator.networks = {
+ 'downlink_0': ['xe0', 'xe1'],
+ 'uplink_0': ['xe2', 'xe3'],
+ 'downlink_1': []}
+ mock_generator.port_num.side_effect = [10, 20, 30, 40]
+ mock_generator.rfc2544_helper.correlated_traffic = False
+ rfc2544_profile.params = {
+ 'downlink_0': 'profile1',
+ 'uplink_0': 'profile2'}
+
+ with mock.patch.object(rfc2544_profile, '_create_profile') as \
+ mock_create_profile:
+ rfc2544_profile.execute_traffic(traffic_generator=mock_generator)
+ mock_create_profile.assert_has_calls([
+ mock.call('profile1', rfc2544_profile.rate, mock.ANY, False),
+ mock.call('profile1', rfc2544_profile.rate, mock.ANY, False),
+ mock.call('profile2', rfc2544_profile.rate, mock.ANY, False),
+ mock.call('profile2', rfc2544_profile.rate, mock.ANY, False)])
+ mock_generator.client.add_streams.assert_has_calls([
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[30]),
+ mock.call(mock.ANY, ports=[40])])
+ mock_generator.client.start(ports=[10, 20, 30, 40],
+ duration=rfc2544_profile.config.duration,
+ force=True)
+
+ @mock.patch.object(trex_stl_streams, 'STLProfile')
+ def test__create_profile(self, mock_stl_profile):
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ port_pg_id = mock.ANY
+ profile_data = {'packetid_1': {'outer_l2': {'framesize': 'imix_info'}}}
+ rate = 100
+ with mock.patch.object(rfc2544_profile, '_create_imix_data') as \
+ mock_create_imix, \
+ mock.patch.object(rfc2544_profile, '_create_vm') as \
+ mock_create_vm, \
+ mock.patch.object(rfc2544_profile, '_create_streams') as \
+ mock_create_streams:
+ mock_create_imix.return_value = 'imix_data'
+ mock_create_streams.return_value = ['stream1']
+ rfc2544_profile._create_profile(profile_data, rate, port_pg_id,
+ True)
+
+ mock_create_imix.assert_called_once_with('imix_info')
+ mock_create_vm.assert_called_once_with(
+ {'outer_l2': {'framesize': 'imix_info'}})
+ mock_create_streams.assert_called_once_with('imix_data', 100,
+ port_pg_id, True)
+ mock_stl_profile.assert_called_once_with(['stream1'])
+
+ def test__create_imix_data_mode_DIP(self):
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ data = {'64B': 50, '128B': 50}
+ self.assertEqual(
+ {'64': 50.0, '128': 50.0},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_PACKETS))
+ data = {'64B': 1, '128b': 3}
+ self.assertEqual(
+ {'64': 25.0, '128': 75.0},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_PACKETS))
+ data = {}
+ self.assertEqual(
+ {},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_PACKETS))
+
+ def test__create_imix_data_mode_DIB(self):
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ data = {'64B': 25, '128B': 25, '512B': 25, '1518B': 25}
+ byte_total = 64 * 25 + 128 * 25 + 512 * 25 + 1518 * 25
+ self.assertEqual(
+ {'64': 64 * 25.0 * 100 / byte_total,
+ '128': 128 * 25.0 * 100 / byte_total,
+ '512': 512 * 25.0 * 100 / byte_total,
+ '1518': 1518 * 25.0 * 100/ byte_total},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_BYTES))
+ data = {}
+ self.assertEqual(
+ {},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_BYTES))
+ data = {'64B': 100}
+ self.assertEqual(
+ {'64': 100.0},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_BYTES))
+
+ def test__create_vm(self):
+ packet = {'outer_l2': 'l2_definition'}
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ with mock.patch.object(rfc2544_profile, '_set_outer_l2_fields') as \
+ mock_l2_fileds:
+ rfc2544_profile._create_vm(packet)
+ mock_l2_fileds.assert_called_once_with('l2_definition')
+
+ @mock.patch.object(trex_stl_packet_builder_scapy, 'STLPktBuilder',
+ return_value='packet')
+ def test__create_single_packet(self, mock_pktbuilder):
+ size = 128
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.ether_packet = Pkt.Eth()
+ rfc2544_profile.ip_packet = Pkt.IP()
+ rfc2544_profile.udp_packet = Pkt.UDP()
+ rfc2544_profile.trex_vm = 'trex_vm'
+ base_pkt = (rfc2544_profile.ether_packet / rfc2544_profile.ip_packet /
+ rfc2544_profile.udp_packet)
+ pad = (size - len(base_pkt)) * 'x'
+ output = rfc2544_profile._create_single_packet(size=size)
+ mock_pktbuilder.assert_called_once_with(pkt=base_pkt / pad,
+ vm='trex_vm')
+ self.assertEqual(output, 'packet')
+
+ @mock.patch.object(trex_stl_packet_builder_scapy, 'STLPktBuilder',
+ return_value='packet')
+ def test__create_single_packet_qinq(self, mock_pktbuilder):
+ size = 128
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.ether_packet = Pkt.Eth()
+ rfc2544_profile.ip_packet = Pkt.IP()
+ rfc2544_profile.udp_packet = Pkt.UDP()
+ rfc2544_profile.trex_vm = 'trex_vm'
+ rfc2544_profile.qinq = True
+ rfc2544_profile.qinq_packet = Pkt.Dot1Q(vlan=1) / Pkt.Dot1Q(vlan=2)
+ base_pkt = (rfc2544_profile.ether_packet /
+ rfc2544_profile.qinq_packet / rfc2544_profile.ip_packet /
+ rfc2544_profile.udp_packet)
+ pad = (size - len(base_pkt)) * 'x'
+ output = rfc2544_profile._create_single_packet(size=size)
+ mock_pktbuilder.assert_called_once_with(pkt=base_pkt / pad,
+ vm='trex_vm')
+ self.assertEqual(output, 'packet')
+
+ @mock.patch.object(trex_stl_streams, 'STLFlowLatencyStats')
+ @mock.patch.object(trex_stl_streams, 'STLTXCont')
+ @mock.patch.object(trex_stl_client, 'STLStream')
+ def test__create_streams(self, mock_stream, mock_txcont, mock_latency):
+ imix_data = {'64': 25, '512': 75}
+ rate = 35
+ port_pg_id = rfc2544.PortPgIDMap()
+ port_pg_id.add_port(10)
+ mock_stream.side_effect = ['stream1', 'stream2']
+ mock_txcont.side_effect = ['txcont1', 'txcont2']
+ mock_latency.side_effect = ['latency1', 'latency2']
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ with mock.patch.object(rfc2544_profile, '_create_single_packet'):
+ output = rfc2544_profile._create_streams(imix_data, rate,
+ port_pg_id, True)
+ self.assertEqual(['stream1', 'stream2'], output)
+ mock_latency.assert_has_calls([
+ mock.call(pg_id=1), mock.call(pg_id=2)])
+ mock_txcont.assert_has_calls([
+ mock.call(percentage=float(25 * 35) / 100),
+ mock.call(percentage=float(75 * 35) / 100)], any_order=True)
+
+ @mock.patch.object(rfc2544.RFC2544Profile, '_get_framesize')
+ def test_get_drop_percentage(self, mock_get_framesize):
+ rfc2544_profile = rfc2544.RFC2544Profile(self.TRAFFIC_PROFILE)
+ rfc2544_profile.iteration = 1
+ mock_get_framesize.return_value = '64B'
+
+ samples = [
+ {'xe1': {'out_packets': 2100,
+ 'in_packets': 2010,
+ 'out_bytes': 134400,
+ 'in_bytes': 128640,
+ 'timestamp': datetime.datetime(2000, 1, 1, 1, 1, 1, 1)},
+ 'xe2': {'out_packets': 4100,
+ 'in_packets': 4010,
+ 'out_bytes': 262400,
+ 'in_bytes': 256640,
+ 'timestamp': datetime.datetime(2000, 1, 1, 1, 1, 1, 1)}},
+ {'xe1': {'out_packets': 2110,
+ 'in_packets': 2040,
+ 'out_bytes': 135040,
+ 'in_bytes': 130560,
+ 'latency': 'Latency1',
+ 'timestamp': datetime.datetime(2000, 1, 1, 1, 1, 1, 31)},
+ 'xe2': {'out_packets': 4150,
+ 'in_packets': 4010,
+ 'out_bytes': 265600,
+ 'in_bytes': 256640,
+ 'latency': 'Latency2',
+ 'timestamp': datetime.datetime(2000, 1, 1, 1, 1, 1, 31)}}
+ ]
+ completed, output = rfc2544_profile.get_drop_percentage(
+ samples, 0, 0, False, 0.1)
+ expected = {'xe1': {'OutPackets': 10,
+ 'InPackets': 30,
+ 'OutBytes': 640,
+ 'InBytes': 1920},
+ 'xe2': {'OutPackets': 50,
+ 'InPackets': 0,
+ 'OutBytes': 3200,
+ 'InBytes': 0},
+ 'DropPercentage': 50.0,
+ 'RxThroughput': 1000000.0,
+ 'TxThroughput': 2000000.0,
+ 'RxThroughputBps': 64000000.0,
+ 'TxThroughputBps': 128000000.0,
+ 'Rate': 100.0,
+ 'Iteration': 1,
+ 'PktSize': '64B',
+ 'Status': 'Failure'}
+ self.assertEqual(expected, output)
+ self.assertFalse(completed)
+
+
+class PortPgIDMapTestCase(base.BaseUnitTestCase):
+
+ def test_add_port(self):
+ port_pg_id_map = rfc2544.PortPgIDMap()
+ port_pg_id_map.add_port(10)
+ self.assertEqual(10, port_pg_id_map._last_port)
+ self.assertEqual([], port_pg_id_map._port_pg_id_map[10])
+
+ def test_get_pg_ids(self):
+ port_pg_id_map = rfc2544.PortPgIDMap()
+ port_pg_id_map.add_port(10)
+ port_pg_id_map.increase_pg_id()
+ port_pg_id_map.increase_pg_id()
+ port_pg_id_map.add_port(20)
+ port_pg_id_map.increase_pg_id()
+ self.assertEqual([1, 2], port_pg_id_map.get_pg_ids(10))
+ self.assertEqual([3], port_pg_id_map.get_pg_ids(20))
+ self.assertEqual([], port_pg_id_map.get_pg_ids(30))
+
+ def test_increase_pg_id_no_port(self):
+ port_pg_id_map = rfc2544.PortPgIDMap()
+ self.assertIsNone(port_pg_id_map.increase_pg_id())
+
+ def test_increase_pg_id_last_port(self):
+ port_pg_id_map = rfc2544.PortPgIDMap()
+ port_pg_id_map.add_port(10)
+ self.assertEqual(1, port_pg_id_map.increase_pg_id())
+ self.assertEqual([1], port_pg_id_map.get_pg_ids(10))
+ self.assertEqual(10, port_pg_id_map._last_port)
+
+ def test_increase_pg_id(self):
+ port_pg_id_map = rfc2544.PortPgIDMap()
+ port_pg_id_map.add_port(10)
+ port_pg_id_map.increase_pg_id()
+ self.assertEqual(2, port_pg_id_map.increase_pg_id(port=20))
+ self.assertEqual([1], port_pg_id_map.get_pg_ids(10))
+ self.assertEqual([2], port_pg_id_map.get_pg_ids(20))
+ self.assertEqual(20, port_pg_id_map._last_port)
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_sip.py b/yardstick/tests/unit/network_services/traffic_profile/test_sip.py
new file mode 100644
index 000000000..bf26ee44d
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_sip.py
@@ -0,0 +1,51 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+import mock
+
+from yardstick.network_services.traffic_profile import sip
+
+
+class TestSipProfile(unittest.TestCase):
+
+ TRAFFIC_PROFILE = {
+ "schema": "nsb:traffic_profile:0.1",
+ "name": "sip",
+ "description": "Traffic profile to run sip",
+ "traffic_profile": {
+ "traffic_type": "SipProfile",
+ "frame_rate": 100, # pps
+ "duration": 10,
+ "enable_latency": False}}
+
+ def setUp(self):
+ self.sip_profile = sip.SipProfile(self.TRAFFIC_PROFILE)
+
+ def test___init__(self):
+ self.assertIsNone(self.sip_profile.generator)
+
+ def test_execute_traffic(self):
+ self.sip_profile.generator = None
+ mock_traffic_generator = mock.Mock()
+ self.sip_profile.execute_traffic(mock_traffic_generator)
+ self.assertIsNotNone(self.sip_profile.generator)
+
+ def test_is_ended_true(self):
+ self.sip_profile.generator = mock.Mock(return_value=True)
+ self.assertTrue(self.sip_profile.is_ended())
+
+ def test_is_ended_false(self):
+ self.sip_profile.generator = None
+ self.assertFalse(self.sip_profile.is_ended())
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_trex_traffic_profile.py b/yardstick/tests/unit/network_services/traffic_profile/test_trex_traffic_profile.py
new file mode 100644
index 000000000..628e85459
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_trex_traffic_profile.py
@@ -0,0 +1,277 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import ipaddress
+
+import six
+import unittest
+
+from yardstick.common import exceptions as y_exc
+from yardstick.network_services.traffic_profile import base as tp_base
+from yardstick.network_services.traffic_profile import trex_traffic_profile
+
+
+class TestTrexProfile(unittest.TestCase):
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100, # pps
+ "flow_number": 10,
+ "frame_size": 64}}
+
+ EXAMPLE_ETHERNET_ADDR = "00:00:00:00:00:01"
+ EXAMPLE_IP_ADDR = "10.0.0.1"
+ EXAMPLE_IPv6_ADDR = "0064:ff9b:0:0:0:0:9810:6414"
+
+ PROFILE = {
+ 'description': 'Traffic profile to run RFC2544 latency',
+ 'name': 'rfc2544',
+ 'traffic_profile': {'traffic_type': 'RFC2544Profile',
+ 'frame_rate': 100},
+ tp_base.TrafficProfile.DOWNLINK: {
+ 'ipv4': {'outer_l2': {'framesize': {'64B': '100',
+ '1518B': '0',
+ '128B': '0',
+ '1400B': '0',
+ '256B': '0',
+ '373b': '0',
+ '570B': '0'},
+ "srcmac": "00:00:00:00:00:02",
+ "dstmac": "00:00:00:00:00:01"},
+ 'outer_l3v4': {'dstip4': '1.1.1.1-1.1.2.2',
+ 'proto': 'udp',
+ 'srcip4': '9.9.1.1-90.1.2.2',
+ 'dscp': 0, 'ttl': 32,
+ 'count': 1},
+ 'outer_l4': {'srcport': '2001',
+ 'dsrport': '1234',
+ 'count': 1}}},
+ tp_base.TrafficProfile.UPLINK: {
+ 'ipv4':
+ {'outer_l2': {'framesize':
+ {'64B': '100', '1518B': '0',
+ '128B': '0', '1400B': '0',
+ '256B': '0', '373b': '0',
+ '570B': '0'},
+ "srcmac": "00:00:00:00:00:01",
+ "dstmac": "00:00:00:00:00:02"},
+ 'outer_l3v4': {'dstip4': '9.9.1.1-90.105.255.255',
+ 'proto': 'udp',
+ 'srcip4': '1.1.1.1-1.15.255.255',
+ 'dscp': 0, 'ttl': 32, 'count': 1},
+ 'outer_l4': {'dstport': '2001',
+ 'srcport': '1234',
+ 'count': 1}}},
+ 'schema': 'isb:traffic_profile:0.1'}
+ PROFILE_v6 = {
+ 'description': 'Traffic profile to run RFC2544 latency',
+ 'name': 'rfc2544',
+ 'traffic_profile': {'traffic_type': 'RFC2544Profile',
+ 'frame_rate': 100},
+ tp_base.TrafficProfile.DOWNLINK: {
+ 'ipv6': {'outer_l2': {'framesize':
+ {'64B': '100', '1518B': '0',
+ '128B': '0', '1400B': '0',
+ '256B': '0', '373b': '0',
+ '570B': '0'},
+ "srcmac": "00:00:00:00:00:02",
+ "dstmac": "00:00:00:00:00:01"},
+ 'outer_l3v4': {
+ 'dstip6':
+ '0064:ff9b:0:0:0:0:9810:6414-0064:ff9b:0:0:0:0:9810:6420',
+ 'proto': 'udp',
+ 'srcip6':
+ '0064:ff9b:0:0:0:0:9810:2814-0064:ff9b:0:0:0:0:9810:2820',
+ 'dscp': 0, 'ttl': 32,
+ 'count': 1},
+ 'outer_l4': {'srcport': '2001',
+ 'dsrport': '1234',
+ 'count': 1}}},
+ tp_base.TrafficProfile.UPLINK: {
+ 'ipv6': {'outer_l2': {'framesize':
+ {'64B': '100', '1518B': '0',
+ '128B': '0', '1400B': '0',
+ '256B': '0', '373b': '0',
+ '570B': '0'},
+ "srcmac": "00:00:00:00:00:01",
+ "dstmac": "00:00:00:00:00:02"},
+ 'outer_l3v4': {
+ 'dstip6':
+ '0064:ff9b:0:0:0:0:9810:2814-0064:ff9b:0:0:0:0:9810:2820',
+ 'proto': 'udp',
+ 'srcip6':
+ '0064:ff9b:0:0:0:0:9810:6414-0064:ff9b:0:0:0:0:9810:6420',
+ 'dscp': 0, 'ttl': 32,
+ 'count': 1},
+ 'outer_l4': {'dstport': '2001',
+ 'srcport': '1234',
+ 'count': 1}}},
+ 'schema': 'isb:traffic_profile:0.1'}
+
+ def test___init__(self):
+ trex_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ self.assertEqual(trex_profile.pps, 100)
+
+ def test_qinq(self):
+ trex_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ qinq = {"S-VLAN": {"id": 128, "priority": 0, "cfi": 0},
+ "C-VLAN": {"id": 512, "priority": 0, "cfi": 0}}
+
+ trex_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ self.assertIsNone(trex_profile.set_qinq(qinq))
+
+ qinq = {"S-VLAN": {"id": "128-130", "priority": 0, "cfi": 0},
+ "C-VLAN": {"id": "512-515", "priority": 0, "cfi": 0}}
+ self.assertIsNone(trex_profile.set_qinq(qinq))
+
+ def test__set_outer_l2_fields(self):
+ trex_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ qinq = {"S-VLAN": {"id": 128, "priority": 0, "cfi": 0},
+ "C-VLAN": {"id": 512, "priority": 0, "cfi": 0}}
+ outer_l2 = self.PROFILE[
+ tp_base.TrafficProfile.UPLINK]['ipv4']['outer_l2']
+ outer_l2['QinQ'] = qinq
+ self.assertIsNone(trex_profile._set_outer_l2_fields(outer_l2))
+
+ def test__set_outer_l3v4_fields(self):
+ trex_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ outer_l3v4 = self.PROFILE[
+ tp_base.TrafficProfile.UPLINK]['ipv4']['outer_l3v4']
+ outer_l3v4['proto'] = 'tcp'
+ self.assertIsNone(trex_profile._set_outer_l3v4_fields(outer_l3v4))
+
+ def test__set_outer_l3v6_fields(self):
+ trex_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ outer_l3v6 = self.PROFILE_v6[
+ tp_base.TrafficProfile.UPLINK]['ipv6']['outer_l3v4']
+ outer_l3v6['proto'] = 'tcp'
+ outer_l3v6['tc'] = 1
+ outer_l3v6['hlim'] = 10
+ self.assertIsNone(trex_profile._set_outer_l3v6_fields(outer_l3v6))
+
+ def test__set_outer_l4_fields(self):
+ trex_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ outer_l4 = self.PROFILE[
+ tp_base.TrafficProfile.UPLINK]['ipv4']['outer_l4']
+ self.assertIsNone(trex_profile._set_outer_l4_fields(outer_l4))
+
+ def test__count_ip_ipv4(self):
+ start, end, count = trex_traffic_profile.TrexProfile._count_ip(
+ '1.1.1.1', '1.2.3.4')
+ self.assertEqual('1.1.1.1', str(start))
+ self.assertEqual('1.2.3.4', str(end))
+ diff = (int(ipaddress.IPv4Address(six.u('1.2.3.4'))) -
+ int(ipaddress.IPv4Address(six.u('1.1.1.1'))))
+ self.assertEqual(diff, count)
+
+ def test__count_ip_ipv6(self):
+ start_ip = '0064:ff9b:0:0:0:0:9810:6414'
+ end_ip = '0064:ff9b:0:0:0:0:9810:6420'
+ start, end, count = trex_traffic_profile.TrexProfile._count_ip(
+ start_ip, end_ip)
+ self.assertEqual(0x98106414, start)
+ self.assertEqual(0x98106420, end)
+ self.assertEqual(0x98106420 - 0x98106414, count)
+
+ def test__count_ip_ipv6_exception(self):
+ start_ip = '0064:ff9b:0:0:0:0:9810:6420'
+ end_ip = '0064:ff9b:0:0:0:0:9810:6414'
+ with self.assertRaises(y_exc.IPv6RangeError):
+ trex_traffic_profile.TrexProfile._count_ip(start_ip, end_ip)
+
+ def test__dscp_range_action_partial_actual_count_zero(self):
+ traffic_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ dscp_partial = traffic_profile._dscp_range_action_partial()
+
+ flow_vars_initial_length = len(traffic_profile.vm_flow_vars)
+ dscp_partial('1', '1', 'unneeded')
+ self.assertEqual(len(traffic_profile.vm_flow_vars), flow_vars_initial_length + 2)
+
+ def test__dscp_range_action_partial_count_greater_than_actual(self):
+ traffic_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ dscp_partial = traffic_profile._dscp_range_action_partial()
+
+ flow_vars_initial_length = len(traffic_profile.vm_flow_vars)
+ dscp_partial('1', '10', '100')
+ self.assertEqual(len(traffic_profile.vm_flow_vars), flow_vars_initial_length + 2)
+
+ def test__udp_range_action_partial_actual_count_zero(self):
+ traffic_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ traffic_profile.udp['field1'] = 'value1'
+ udp_partial = traffic_profile._udp_range_action_partial('field1')
+
+ flow_vars_initial_length = len(traffic_profile.vm_flow_vars)
+ udp_partial('1', '1', 'unneeded')
+ self.assertEqual(len(traffic_profile.vm_flow_vars), flow_vars_initial_length + 2)
+
+ def test__udp_range_action_partial_count_greater_than_actual(self):
+ traffic_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ traffic_profile.udp['field1'] = 'value1'
+ udp_partial = traffic_profile._udp_range_action_partial(
+ 'field1', 'not_used_count')
+ flow_vars_initial_length = len(traffic_profile.vm_flow_vars)
+ udp_partial('1', '10', '100')
+ self.assertEqual(len(traffic_profile.vm_flow_vars), flow_vars_initial_length + 2)
+
+ def test__general_single_action_partial(self):
+ trex_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+ trex_profile._general_single_action_partial(
+ trex_traffic_profile.ETHERNET)(trex_traffic_profile.SRC)(
+ self.EXAMPLE_ETHERNET_ADDR)
+ self.assertEqual(self.EXAMPLE_ETHERNET_ADDR,
+ trex_profile.ether_packet.src)
+
+ trex_profile._general_single_action_partial(trex_traffic_profile.IP)(
+ trex_traffic_profile.DST)(self.EXAMPLE_IP_ADDR)
+ self.assertEqual(self.EXAMPLE_IP_ADDR, trex_profile.ip_packet.dst)
+
+ trex_profile._general_single_action_partial(trex_traffic_profile.IPv6)(
+ trex_traffic_profile.DST)(self.EXAMPLE_IPv6_ADDR)
+ self.assertEqual(self.EXAMPLE_IPv6_ADDR, trex_profile.ip6_packet.dst)
+
+ trex_profile._general_single_action_partial(trex_traffic_profile.UDP)(
+ trex_traffic_profile.SRC_PORT)(5060)
+ self.assertEqual(5060, trex_profile.udp_packet.sport)
+
+ trex_profile._general_single_action_partial(trex_traffic_profile.IP)(
+ trex_traffic_profile.TYPE_OF_SERVICE)(0)
+ self.assertEqual(0, trex_profile.ip_packet.tos)
+
+ def test__set_proto_addr(self):
+ trex_profile = trex_traffic_profile.TrexProfile(self.PROFILE)
+
+ ether_range = "00:00:00:00:00:01-00:00:00:00:00:02"
+ ip_range = "1.1.1.2-1.1.1.10"
+ ipv6_range = '0064:ff9b:0:0:0:0:9810:6414-0064:ff9b:0:0:0:0:9810:6420'
+
+ trex_profile._set_proto_addr(trex_traffic_profile.ETHERNET,
+ trex_traffic_profile.SRC, ether_range)
+ trex_profile._set_proto_addr(trex_traffic_profile.ETHERNET,
+ trex_traffic_profile.DST, ether_range)
+ trex_profile._set_proto_addr(trex_traffic_profile.IP,
+ trex_traffic_profile.SRC, ip_range)
+ trex_profile._set_proto_addr(trex_traffic_profile.IP,
+ trex_traffic_profile.DST, ip_range)
+ trex_profile._set_proto_addr(trex_traffic_profile.IPv6,
+ trex_traffic_profile.SRC, ipv6_range)
+ trex_profile._set_proto_addr(trex_traffic_profile.IPv6,
+ trex_traffic_profile.DST, ipv6_range)
+ trex_profile._set_proto_addr(trex_traffic_profile.UDP,
+ trex_traffic_profile.SRC_PORT,
+ '5060-5090')
+ trex_profile._set_proto_addr(trex_traffic_profile.UDP,
+ trex_traffic_profile.DST_PORT, '5060')
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_vpp_rfc2544.py b/yardstick/tests/unit/network_services/traffic_profile/test_vpp_rfc2544.py
new file mode 100644
index 000000000..8ad17b547
--- /dev/null
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_vpp_rfc2544.py
@@ -0,0 +1,890 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+from trex_stl_lib import trex_stl_client
+from trex_stl_lib import trex_stl_packet_builder_scapy
+from trex_stl_lib import trex_stl_streams
+
+from yardstick.common import constants
+from yardstick.network_services.helpers.vpp_helpers.multiple_loss_ratio_search import \
+ MultipleLossRatioSearch
+from yardstick.network_services.helpers.vpp_helpers.ndr_pdr_result import \
+ NdrPdrResult
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_interval import \
+ ReceiveRateInterval
+from yardstick.network_services.helpers.vpp_helpers.receive_rate_measurement import \
+ ReceiveRateMeasurement
+from yardstick.network_services.traffic_profile import base as tp_base
+from yardstick.network_services.traffic_profile import rfc2544, vpp_rfc2544
+from yardstick.network_services.traffic_profile.rfc2544 import PortPgIDMap
+from yardstick.tests.unit import base
+
+
+class TestVppRFC2544Profile(base.BaseUnitTestCase):
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "duration": 30,
+ "enable_latency": True,
+ "frame_rate": 100,
+ "intermediate_phases": 2,
+ "lower_bound": 1.0,
+ "step_interval": 0.5,
+ "test_precision": 0.1,
+ "upper_bound": 100.0}}
+
+ TRAFFIC_PROFILE_MAX_RATE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "duration": 30,
+ "enable_latency": True,
+ "frame_rate": 10000,
+ "intermediate_phases": 2,
+ "lower_bound": 1.0,
+ "step_interval": 0.5,
+ "test_precision": 0.1,
+ "upper_bound": 100.0}}
+
+ PROFILE = {
+ "description": "Traffic profile to run RFC2544 latency",
+ "downlink_0": {
+ "ipv4": {
+ "id": 2,
+ "outer_l2": {
+ "framesize": {
+ "1024B": "0",
+ "1280B": "0",
+ "128B": "0",
+ "1400B": "0",
+ "1500B": "0",
+ "1518B": "0",
+ "256B": "0",
+ "373b": "0",
+ "512B": "0",
+ "570B": "0",
+ "64B": "100"
+ }
+ },
+ "outer_l3v4": {
+ "count": "1",
+ "dstip4": "10.0.0.0-10.0.0.100",
+ "proto": 61,
+ "srcip4": "20.0.0.0-20.0.0.100"
+ }
+ }
+ },
+ "name": "rfc2544",
+ "schema": "nsb:traffic_profile:0.1",
+ "traffic_profile": {
+ "duration": 30,
+ "enable_latency": True,
+ "frame_rate": 100,
+ "intermediate_phases": 2,
+ "lower_bound": 1.0,
+ "step_interval": 0.5,
+ "test_precision": 0.1,
+ "traffic_type": "VppRFC2544Profile",
+ "upper_bound": 100.0
+ },
+ "uplink": {
+ "ipv4": {
+ "id": 1,
+ "outer_l2": {
+ "framesize": {
+ "1024B": "0",
+ "1280B": "0",
+ "128B": "0",
+ "1400B": "0",
+ "1500B": "0",
+ "1518B": "0",
+ "256B": "0",
+ "373B": "0",
+ "512B": "0",
+ "570B": "0",
+ "64B": "100"
+ }
+ },
+ "outer_l3v4": {
+ "count": "10",
+ "dstip4": "20.0.0.0-20.0.0.100",
+ "proto": 61,
+ "srcip4": "10.0.0.0-10.0.0.100"
+ }
+ }
+ }
+ }
+
+ def test___init__(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ self.assertEqual(vpp_rfc2544_profile.max_rate,
+ vpp_rfc2544_profile.rate)
+ self.assertEqual(0, vpp_rfc2544_profile.min_rate)
+ self.assertEqual(2, vpp_rfc2544_profile.number_of_intermediate_phases)
+ self.assertEqual(30, vpp_rfc2544_profile.duration)
+ self.assertEqual(0.1, vpp_rfc2544_profile.precision)
+ self.assertEqual(1.0, vpp_rfc2544_profile.lower_bound)
+ self.assertEqual(100.0, vpp_rfc2544_profile.upper_bound)
+ self.assertEqual(0.5, vpp_rfc2544_profile.step_interval)
+ self.assertEqual(True, vpp_rfc2544_profile.enable_latency)
+
+ def test_init_traffic_params(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ mock_generator = mock.MagicMock()
+ mock_generator.rfc2544_helper.latency = True
+ mock_generator.rfc2544_helper.tolerance_low = 0.0
+ mock_generator.rfc2544_helper.tolerance_high = 0.005
+ mock_generator.scenario_helper.all_options = {
+ "vpp_config": {
+ "max_rate": 14880000
+ }
+ }
+ vpp_rfc2544_profile.init_traffic_params(mock_generator)
+ self.assertEqual(0.0, vpp_rfc2544_profile.tolerance_low)
+ self.assertEqual(0.005, vpp_rfc2544_profile.tolerance_high)
+ self.assertEqual(14880000, vpp_rfc2544_profile.max_rate)
+ self.assertEqual(True, vpp_rfc2544_profile.enable_latency)
+
+ def test_calculate_frame_size(self):
+ imix = {'40B': 7, '576B': 4, '1500B': 1}
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ self.assertEqual((4084 / 12, 12),
+ vpp_rfc2544_profile.calculate_frame_size(imix))
+
+ def test_calculate_frame_size_empty(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ self.assertEqual((64, 100),
+ vpp_rfc2544_profile.calculate_frame_size(None))
+
+ def test_calculate_frame_size_error(self):
+ imix = {'40B': -7, '576B': 4, '1500B': 1}
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ self.assertEqual((64, 100),
+ vpp_rfc2544_profile.calculate_frame_size(imix))
+
+ def test__gen_payload(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ self.assertIsNotNone(vpp_rfc2544_profile._gen_payload(4))
+
+ def test_register_generator(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ mock_generator = mock.MagicMock()
+ mock_generator.rfc2544_helper.latency = True
+ mock_generator.rfc2544_helper.tolerance_low = 0.0
+ mock_generator.rfc2544_helper.tolerance_high = 0.005
+ mock_generator.scenario_helper.all_options = {
+ "vpp_config": {
+ "max_rate": 14880000
+ }
+ }
+ vpp_rfc2544_profile.register_generator(mock_generator)
+ self.assertEqual(0.0, vpp_rfc2544_profile.tolerance_low)
+ self.assertEqual(0.005, vpp_rfc2544_profile.tolerance_high)
+ self.assertEqual(14880000, vpp_rfc2544_profile.max_rate)
+ self.assertEqual(True, vpp_rfc2544_profile.enable_latency)
+
+ def test_stop_traffic(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ mock_generator = mock.Mock()
+ vpp_rfc2544_profile.stop_traffic(traffic_generator=mock_generator)
+ mock_generator.client.stop.assert_called_once()
+ mock_generator.client.reset.assert_called_once()
+ mock_generator.client.remove_all_streams.assert_called_once()
+
+ def test_execute_traffic(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ vpp_rfc2544_profile.init_queue(mock.MagicMock())
+ vpp_rfc2544_profile.params = {
+ 'downlink_0': 'profile1',
+ 'uplink_0': 'profile2'}
+ mock_generator = mock.MagicMock()
+ mock_generator.networks = {
+ 'downlink_0': ['xe0', 'xe1'],
+ 'uplink_0': ['xe2', 'xe3'],
+ 'uplink_1': ['xe2', 'xe3']}
+ mock_generator.port_num.side_effect = [10, 20, 30, 40]
+ mock_generator.rfc2544_helper.correlated_traffic = False
+
+ with mock.patch.object(vpp_rfc2544_profile, 'create_profile') as \
+ mock_create_profile:
+ vpp_rfc2544_profile.execute_traffic(
+ traffic_generator=mock_generator)
+ mock_create_profile.assert_has_calls([
+ mock.call('profile1', 10),
+ mock.call('profile1', 20),
+ mock.call('profile2', 30),
+ mock.call('profile2', 40)])
+ mock_generator.client.add_streams.assert_has_calls([
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[30]),
+ mock.call(mock.ANY, ports=[40])])
+
+ def test_execute_traffic_correlated_traffic(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ vpp_rfc2544_profile.init_queue(mock.MagicMock())
+ vpp_rfc2544_profile.params = {
+ 'downlink_0': 'profile1',
+ 'uplink_0': 'profile2'}
+ mock_generator = mock.MagicMock()
+ mock_generator.networks = {
+ 'downlink_0': ['xe0', 'xe1'],
+ 'uplink_0': ['xe2', 'xe3']}
+ mock_generator.port_num.side_effect = [10, 20, 30, 40]
+ mock_generator.rfc2544_helper.correlated_traffic = True
+
+ with mock.patch.object(vpp_rfc2544_profile, 'create_profile') as \
+ mock_create_profile:
+ vpp_rfc2544_profile.execute_traffic(
+ traffic_generator=mock_generator)
+ mock_create_profile.assert_has_calls([
+ mock.call('profile2', 10),
+ mock.call('profile2', 20)])
+ mock_generator.client.add_streams.assert_has_calls([
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20])])
+
+ def test_execute_traffic_max_rate(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE_MAX_RATE)
+ vpp_rfc2544_profile.init_queue(mock.MagicMock())
+ vpp_rfc2544_profile.pkt_size = 64
+ vpp_rfc2544_profile.params = {
+ 'downlink_0': 'profile1',
+ 'uplink_0': 'profile2'}
+ mock_generator = mock.MagicMock()
+ mock_generator.networks = {
+ 'downlink_0': ['xe0', 'xe1'],
+ 'uplink_0': ['xe2', 'xe3']}
+ mock_generator.port_num.side_effect = [10, 20, 30, 40]
+ mock_generator.rfc2544_helper.correlated_traffic = False
+
+ with mock.patch.object(vpp_rfc2544_profile, 'create_profile') as \
+ mock_create_profile:
+ vpp_rfc2544_profile.execute_traffic(
+ traffic_generator=mock_generator)
+ mock_create_profile.assert_has_calls([
+ mock.call('profile1', 10),
+ mock.call('profile1', 20),
+ mock.call('profile2', 30),
+ mock.call('profile2', 40)])
+ mock_generator.client.add_streams.assert_has_calls([
+ mock.call(mock.ANY, ports=[10]),
+ mock.call(mock.ANY, ports=[20]),
+ mock.call(mock.ANY, ports=[30]),
+ mock.call(mock.ANY, ports=[40])])
+
+ @mock.patch.object(trex_stl_streams, 'STLProfile')
+ def test_create_profile(self, mock_stl_profile):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ port = mock.ANY
+ profile_data = {'packetid_1': {'outer_l2': {'framesize': 'imix_info'}}}
+ with mock.patch.object(vpp_rfc2544_profile, 'calculate_frame_size') as \
+ mock_calculate_frame_size, \
+ mock.patch.object(vpp_rfc2544_profile, '_create_imix_data') as \
+ mock_create_imix, \
+ mock.patch.object(vpp_rfc2544_profile, '_create_vm') as \
+ mock_create_vm, \
+ mock.patch.object(vpp_rfc2544_profile,
+ '_create_single_stream') as \
+ mock_create_single_stream:
+ mock_calculate_frame_size.return_value = 64, 100
+ mock_create_imix.return_value = 'imix_data'
+ mock_create_single_stream.return_value = ['stream1']
+ vpp_rfc2544_profile.create_profile(profile_data, port)
+
+ mock_create_imix.assert_called_once_with('imix_info')
+ mock_create_vm.assert_called_once_with(
+ {'outer_l2': {'framesize': 'imix_info'}})
+ mock_create_single_stream.assert_called_once_with(port, 'imix_data',
+ 100)
+ mock_stl_profile.assert_called_once_with(['stream1'])
+
+ @mock.patch.object(trex_stl_streams, 'STLProfile')
+ def test_create_profile_max_rate(self, mock_stl_profile):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE_MAX_RATE)
+ port = mock.ANY
+ profile_data = {'packetid_1': {'outer_l2': {'framesize': 'imix_info'}}}
+ with mock.patch.object(vpp_rfc2544_profile, 'calculate_frame_size') as \
+ mock_calculate_frame_size, \
+ mock.patch.object(vpp_rfc2544_profile, '_create_imix_data') as \
+ mock_create_imix, \
+ mock.patch.object(vpp_rfc2544_profile, '_create_vm') as \
+ mock_create_vm, \
+ mock.patch.object(vpp_rfc2544_profile,
+ '_create_single_stream') as \
+ mock_create_single_stream:
+ mock_calculate_frame_size.return_value = 64, 100
+ mock_create_imix.return_value = 'imix_data'
+ mock_create_single_stream.return_value = ['stream1']
+ vpp_rfc2544_profile.create_profile(profile_data, port)
+
+ mock_create_imix.assert_called_once_with('imix_info', 'mode_DIP')
+ mock_create_vm.assert_called_once_with(
+ {'outer_l2': {'framesize': 'imix_info'}})
+ mock_create_single_stream.assert_called_once_with(port, 'imix_data',
+ 100)
+ mock_stl_profile.assert_called_once_with(['stream1'])
+
+ def test__create_imix_data_mode_DIP(self):
+ rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(self.TRAFFIC_PROFILE)
+ data = {'64B': 50, '128B': 50}
+ self.assertEqual(
+ {'64': 50.0, '128': 50.0},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_PACKETS))
+ data = {'64B': 1, '128b': 3}
+ self.assertEqual(
+ {'64': 25.0, '128': 75.0},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_PACKETS))
+ data = {}
+ self.assertEqual(
+ {},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_PACKETS))
+
+ def test__create_imix_data_mode_DIB(self):
+ rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(self.TRAFFIC_PROFILE)
+ data = {'64B': 25, '128B': 25, '512B': 25, '1518B': 25}
+ byte_total = 64 * 25 + 128 * 25 + 512 * 25 + 1518 * 25
+ self.assertEqual(
+ {'64': 64 * 25.0 * 100 / byte_total,
+ '128': 128 * 25.0 * 100 / byte_total,
+ '512': 512 * 25.0 * 100 / byte_total,
+ '1518': 1518 * 25.0 * 100 / byte_total},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_BYTES))
+ data = {}
+ self.assertEqual(
+ {},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_BYTES))
+ data = {'64B': 100}
+ self.assertEqual(
+ {'64': 100.0},
+ rfc2544_profile._create_imix_data(
+ data, weight_mode=constants.DISTRIBUTION_IN_BYTES))
+
+ def test__create_vm(self):
+ packet = {'outer_l2': 'l2_definition'}
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ with mock.patch.object(vpp_rfc2544_profile, '_set_outer_l2_fields') as \
+ mock_l2_fileds:
+ vpp_rfc2544_profile._create_vm(packet)
+ mock_l2_fileds.assert_called_once_with('l2_definition')
+
+ @mock.patch.object(trex_stl_packet_builder_scapy, 'STLPktBuilder',
+ return_value='packet')
+ def test__create_single_packet(self, mock_pktbuilder):
+ size = 128
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ vpp_rfc2544_profile.ether_packet = mock.MagicMock()
+ vpp_rfc2544_profile.ip_packet = mock.MagicMock()
+ vpp_rfc2544_profile.udp_packet = mock.MagicMock()
+ vpp_rfc2544_profile.trex_vm = 'trex_vm'
+ # base_pkt = (
+ # vpp_rfc2544_profile.ether_packet / vpp_rfc2544_profile.ip_packet /
+ # vpp_rfc2544_profile.udp_packet)
+ # pad = (size - len(base_pkt)) * 'x'
+ output = vpp_rfc2544_profile._create_single_packet(size=size)
+ self.assertEqual(mock_pktbuilder.call_count, 2)
+ # mock_pktbuilder.assert_called_once_with(pkt=base_pkt / pad,
+ # vm='trex_vm')
+ self.assertEqual(output, ('packet', 'packet'))
+
+ def test__set_outer_l3v4_fields(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ outer_l3v4 = self.PROFILE[
+ tp_base.TrafficProfile.UPLINK]['ipv4']['outer_l3v4']
+ outer_l3v4['proto'] = 'tcp'
+ self.assertIsNone(
+ vpp_rfc2544_profile._set_outer_l3v4_fields(outer_l3v4))
+
+ @mock.patch.object(trex_stl_streams, 'STLFlowLatencyStats')
+ @mock.patch.object(trex_stl_streams, 'STLTXCont')
+ @mock.patch.object(trex_stl_client, 'STLStream')
+ def test__create_single_stream(self, mock_stream, mock_txcont,
+ mock_latency):
+ imix_data = {'64': 25, '512': 75}
+ mock_stream.side_effect = ['stream1', 'stream2', 'stream3', 'stream4']
+ mock_txcont.side_effect = ['txcont1', 'txcont2', 'txcont3', 'txcont4']
+ mock_latency.side_effect = ['latency1', 'latency2']
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ vpp_rfc2544_profile.port_pg_id = rfc2544.PortPgIDMap()
+ vpp_rfc2544_profile.port_pg_id.add_port(10)
+ with mock.patch.object(vpp_rfc2544_profile, '_create_single_packet') as \
+ mock_create_single_packet:
+ mock_create_single_packet.return_value = 64, 100
+ output = vpp_rfc2544_profile._create_single_stream(10, imix_data,
+ 100, 0.0)
+ self.assertEqual(['stream1', 'stream2', 'stream3', 'stream4'], output)
+ mock_latency.assert_has_calls([
+ mock.call(pg_id=1), mock.call(pg_id=2)])
+ mock_txcont.assert_has_calls([
+ mock.call(percentage=25 * 100 / 100),
+ mock.call(percentage=75 * 100 / 100)], any_order=True)
+
+ @mock.patch.object(trex_stl_streams, 'STLFlowLatencyStats')
+ @mock.patch.object(trex_stl_streams, 'STLTXCont')
+ @mock.patch.object(trex_stl_client, 'STLStream')
+ def test__create_single_stream_max_rate(self, mock_stream, mock_txcont,
+ mock_latency):
+ imix_data = {'64': 25, '512': 75}
+ mock_stream.side_effect = ['stream1', 'stream2', 'stream3', 'stream4']
+ mock_txcont.side_effect = ['txcont1', 'txcont2', 'txcont3', 'txcont4']
+ mock_latency.side_effect = ['latency1', 'latency2']
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE_MAX_RATE)
+ vpp_rfc2544_profile.pkt_size = 64
+ vpp_rfc2544_profile.port_pg_id = rfc2544.PortPgIDMap()
+ vpp_rfc2544_profile.port_pg_id.add_port(1)
+ with mock.patch.object(vpp_rfc2544_profile, '_create_single_packet') as \
+ mock_create_single_packet:
+ mock_create_single_packet.return_value = 64, 100
+ output = vpp_rfc2544_profile._create_single_stream(1, imix_data,
+ 100, 0.0)
+ self.assertEqual(['stream1', 'stream2', 'stream3', 'stream4'], output)
+ mock_latency.assert_has_calls([
+ mock.call(pg_id=1), mock.call(pg_id=2)])
+ mock_txcont.assert_has_calls([
+ mock.call(pps=int(25 * 100 / 100)),
+ mock.call(pps=int(75 * 100 / 100))], any_order=True)
+
+ @mock.patch.object(trex_stl_streams, 'STLFlowLatencyStats')
+ @mock.patch.object(trex_stl_streams, 'STLTXCont')
+ @mock.patch.object(trex_stl_client, 'STLStream')
+ def test__create_single_stream_mlr_search(self, mock_stream, mock_txcont,
+ mock_latency):
+ imix_data = {'64': 25, '512': 75}
+ mock_stream.side_effect = ['stream1', 'stream2', 'stream3', 'stream4']
+ mock_txcont.side_effect = ['txcont1', 'txcont2', 'txcont3', 'txcont4']
+ mock_latency.side_effect = ['latency1', 'latency2']
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ vpp_rfc2544_profile.max_rate = 14880000
+ vpp_rfc2544_profile.port_pg_id = rfc2544.PortPgIDMap()
+ vpp_rfc2544_profile.port_pg_id.add_port(10)
+ with mock.patch.object(vpp_rfc2544_profile, '_create_single_packet') as \
+ mock_create_single_packet:
+ mock_create_single_packet.return_value = 64, 100
+ output = vpp_rfc2544_profile._create_single_stream(10, imix_data,
+ 100, 0.0)
+ self.assertEqual(['stream1', 'stream2', 'stream3', 'stream4'], output)
+ mock_latency.assert_has_calls([
+ mock.call(pg_id=1), mock.call(pg_id=2)])
+ mock_txcont.assert_has_calls([
+ mock.call(pps=25 * 100 / 100),
+ mock.call(pps=75 * 100 / 100)], any_order=True)
+
+ def test_binary_search_with_optimized(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ vpp_rfc2544_profile.pkt_size = 64
+ vpp_rfc2544_profile.init_queue(mock.MagicMock())
+ mock_generator = mock.MagicMock()
+ mock_generator.vnfd_helper.interfaces = [
+ {"name": "xe0"}, {"name": "xe0"}
+ ]
+
+ vpp_rfc2544_profile.ports = [0, 1]
+ vpp_rfc2544_profile.port_pg_id = PortPgIDMap()
+ vpp_rfc2544_profile.port_pg_id.add_port(0)
+ vpp_rfc2544_profile.port_pg_id.add_port(1)
+ vpp_rfc2544_profile.profiles = mock.MagicMock()
+ vpp_rfc2544_profile.test_data = mock.MagicMock()
+ vpp_rfc2544_profile.queue = mock.MagicMock()
+
+ with mock.patch.object(MultipleLossRatioSearch, 'measure') as \
+ mock_measure, \
+ mock.patch.object(MultipleLossRatioSearch, 'ndrpdr') as \
+ mock_ndrpdr:
+ measured_low = ReceiveRateMeasurement(1, 14880000, 14879927, 0)
+ measured_high = ReceiveRateMeasurement(1, 14880000, 14879927, 0)
+ measured_low.latency = ['1000/3081/3962', '500/3149/3730']
+ measured_high.latency = ['1000/3081/3962', '500/3149/3730']
+ starting_interval = ReceiveRateInterval(measured_low,
+ measured_high)
+ starting_result = NdrPdrResult(starting_interval,
+ starting_interval)
+ mock_measure.return_value = ReceiveRateMeasurement(1, 14880000,
+ 14879927, 0)
+ mock_ndrpdr.return_value = MultipleLossRatioSearch.ProgressState(
+ starting_result, 2, 30, 0.005, 0.0,
+ 4857361, 4977343)
+
+ result_samples = vpp_rfc2544_profile.binary_search_with_optimized(
+ traffic_generator=mock_generator, duration=30,
+ timeout=720,
+ test_data={})
+
+ expected = {'Result_NDR_LOWER': {'bandwidth_total_Gbps': 9.999310944,
+ 'rate_total_pps': 14879927.0},
+ 'Result_NDR_UPPER': {'bandwidth_total_Gbps': 9.999310944,
+ 'rate_total_pps': 14879927.0},
+ 'Result_NDR_packets_lost': {'packet_loss_ratio': 0.0,
+ 'packets_lost': 0.0},
+ 'Result_PDR_LOWER': {'bandwidth_total_Gbps': 9.999310944,
+ 'rate_total_pps': 14879927.0},
+ 'Result_PDR_UPPER': {'bandwidth_total_Gbps': 9.999310944,
+ 'rate_total_pps': 14879927.0},
+ 'Result_PDR_packets_lost': {'packet_loss_ratio': 0.0,
+ 'packets_lost': 0.0},
+ 'Result_stream0_NDR_LOWER': {'avg_latency': 3081.0,
+ 'max_latency': 3962.0,
+ 'min_latency': 1000.0},
+ 'Result_stream0_PDR_LOWER': {'avg_latency': 3081.0,
+ 'max_latency': 3962.0,
+ 'min_latency': 1000.0},
+ 'Result_stream1_NDR_LOWER': {'avg_latency': 3149.0,
+ 'max_latency': 3730.0,
+ 'min_latency': 500.0},
+ 'Result_stream1_PDR_LOWER': {'avg_latency': 3149.0,
+ 'max_latency': 3730.0,
+ 'min_latency': 500.0}}
+ self.assertEqual(expected, result_samples)
+
+ def test_binary_search(self):
+ vpp_rfc2544_profile = vpp_rfc2544.VppRFC2544Profile(
+ self.TRAFFIC_PROFILE)
+ vpp_rfc2544_profile.pkt_size = 64
+ vpp_rfc2544_profile.init_queue(mock.MagicMock())
+ mock_generator = mock.MagicMock()
+ mock_generator.vnfd_helper.interfaces = [
+ {"name": "xe0"}, {"name": "xe1"}
+ ]
+ stats = {
+ "0": {
+ "ibytes": 55549120,
+ "ierrors": 0,
+ "ipackets": 867955,
+ "obytes": 55549696,
+ "oerrors": 0,
+ "opackets": 867964,
+ "rx_bps": 104339032.0,
+ "rx_bps_L1": 136944984.0,
+ "rx_pps": 203787.2,
+ "rx_util": 1.36944984,
+ "tx_bps": 134126008.0,
+ "tx_bps_L1": 176040392.0,
+ "tx_pps": 261964.9,
+ "tx_util": 1.7604039200000001
+ },
+ "1": {
+ "ibytes": 55549696,
+ "ierrors": 0,
+ "ipackets": 867964,
+ "obytes": 55549120,
+ "oerrors": 0,
+ "opackets": 867955,
+ "rx_bps": 134119648.0,
+ "rx_bps_L1": 176032032.0,
+ "rx_pps": 261952.4,
+ "rx_util": 1.76032032,
+ "tx_bps": 104338192.0,
+ "tx_bps_L1": 136943872.0,
+ "tx_pps": 203785.5,
+ "tx_util": 1.36943872
+ },
+ "flow_stats": {
+ "1": {
+ "rx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "rx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "rx_bytes": {
+ "0": 6400,
+ "1": 0,
+ "total": 6400
+ },
+ "rx_pkts": {
+ "0": 100,
+ "1": 0,
+ "total": 100
+ },
+ "rx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "tx_bytes": {
+ "0": 0,
+ "1": 6400,
+ "total": 6400
+ },
+ "tx_pkts": {
+ "0": 0,
+ "1": 100,
+ "total": 100
+ },
+ "tx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ }
+ },
+ "2": {
+ "rx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "rx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "rx_bytes": {
+ "0": 0,
+ "1": 6464,
+ "total": 6464
+ },
+ "rx_pkts": {
+ "0": 0,
+ "1": 101,
+ "total": 101
+ },
+ "rx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "tx_bytes": {
+ "0": 6464,
+ "1": 0,
+ "total": 6464
+ },
+ "tx_pkts": {
+ "0": 101,
+ "1": 0,
+ "total": 101
+ },
+ "tx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ }
+ },
+ "global": {
+ "rx_err": {
+ "0": 0,
+ "1": 0
+ },
+ "tx_err": {
+ "0": 0,
+ "1": 0
+ }
+ }
+ },
+ "global": {
+ "bw_per_core": 45.6,
+ "cpu_util": 0.1494,
+ "queue_full": 0,
+ "rx_bps": 238458672.0,
+ "rx_cpu_util": 4.751e-05,
+ "rx_drop_bps": 0.0,
+ "rx_pps": 465739.6,
+ "tx_bps": 238464208.0,
+ "tx_pps": 465750.4
+ },
+ "latency": {
+ "1": {
+ "err_cntrs": {
+ "dropped": 0,
+ "dup": 0,
+ "out_of_order": 0,
+ "seq_too_high": 0,
+ "seq_too_low": 0
+ },
+ "latency": {
+ "average": 63.375,
+ "histogram": {
+ "20": 1,
+ "30": 18,
+ "40": 12,
+ "50": 10,
+ "60": 12,
+ "70": 11,
+ "80": 6,
+ "90": 10,
+ "100": 20
+ },
+ "jitter": 23,
+ "last_max": 122,
+ "total_max": 123,
+ "total_min": 20
+ }
+ },
+ "2": {
+ "err_cntrs": {
+ "dropped": 0,
+ "dup": 0,
+ "out_of_order": 0,
+ "seq_too_high": 0,
+ "seq_too_low": 0
+ },
+ "latency": {
+ "average": 74,
+ "histogram": {
+ "60": 20,
+ "70": 10,
+ "80": 3,
+ "90": 4,
+ "100": 64
+ },
+ "jitter": 6,
+ "last_max": 83,
+ "total_max": 135,
+ "total_min": 60
+ }
+ },
+ "global": {
+ "bad_hdr": 0,
+ "old_flow": 0
+ }
+ },
+ "total": {
+ "ibytes": 111098816,
+ "ierrors": 0,
+ "ipackets": 1735919,
+ "obytes": 111098816,
+ "oerrors": 0,
+ "opackets": 1735919,
+ "rx_bps": 238458680.0,
+ "rx_bps_L1": 312977016.0,
+ "rx_pps": 465739.6,
+ "rx_util": 3.1297701599999996,
+ "tx_bps": 238464200.0,
+ "tx_bps_L1": 312984264.0,
+ "tx_pps": 465750.4,
+ "tx_util": 3.12984264
+ }
+ }
+ samples = {
+ "xe0": {
+ "in_packets": 867955,
+ "latency": {
+ "2": {
+ "avg_latency": 74.0,
+ "max_latency": 135.0,
+ "min_latency": 60.0
+ }
+ },
+ "out_packets": 867964,
+ "rx_throughput_bps": 104339032.0,
+ "rx_throughput_fps": 203787.2,
+ "tx_throughput_bps": 134126008.0,
+ "tx_throughput_fps": 261964.9
+ },
+ "xe1": {
+ "in_packets": 867964,
+ "latency": {
+ "1": {
+ "avg_latency": 63.375,
+ "max_latency": 123.0,
+ "min_latency": 20.0
+ }
+ },
+ "out_packets": 867955,
+ "rx_throughput_bps": 134119648.0,
+ "rx_throughput_fps": 261952.4,
+ "tx_throughput_bps": 104338192.0,
+ "tx_throughput_fps": 203785.5
+ }
+ }
+
+ mock_generator.loss = 0
+ mock_generator.sent = 2169700
+ mock_generator.send_traffic_on_tg = mock.Mock(return_value=stats)
+ mock_generator.generate_samples = mock.Mock(return_value=samples)
+
+ result_samples = vpp_rfc2544_profile.binary_search(
+ traffic_generator=mock_generator, duration=30,
+ tolerance_value=0.005,
+ test_data={})
+
+ expected = {'Result_theor_max_throughput': 134126008.0,
+ 'xe0': {'Result_Actual_throughput': 104339032.0},
+ 'xe1': {'Result_Actual_throughput': 134119648.0}}
+ self.assertEqual(expected, result_samples)
diff --git a/yardstick/tests/unit/network_services/vnf_generic/__init__.py b/yardstick/tests/unit/network_services/vnf_generic/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/__init__.py
diff --git a/tests/unit/network_services/vnf_generic/test_vnfdgen.py b/yardstick/tests/unit/network_services/vnf_generic/test_vnfdgen.py
index ee881c963..55b1955bc 100644
--- a/tests/unit/network_services/vnf_generic/test_vnfdgen.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/test_vnfdgen.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright (c) 2016-2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,11 +13,8 @@
# limitations under the License.
#
-# Unittest for yardstick.network_services.vnf_generic.vnfdgen
-
-from __future__ import absolute_import
-import unittest
from six.moves import range
+import unittest
from yardstick.common.yaml_loader import yaml_load
from yardstick.network_services.vnf_generic import vnfdgen
@@ -204,10 +199,10 @@ TRAFFIC_PROFILE_TPL = """
TRAFFIC_PROFILE = {
UPLINK: [{"ipv4": {"outer_l2":
- {"framesize": {"64B": '10', "128B": '10',
- "256B": '10', "373B": '10',
- "570B": '10', "1400B": '10',
- "1518B": '40'}}}}]}
+ {"framesize": {"64B": '10', "128B": '10',
+ "256B": '10', "373B": '10',
+ "570B": '10', "1400B": '10',
+ "1518B": '40'}}}}]}
class TestRender(unittest.TestCase):
@@ -216,12 +211,14 @@ class TestRender(unittest.TestCase):
tmpl = "{{ routing_table }}"
self.assertEqual(vnfdgen.render(tmpl, routing_table=None), u'~')
- self.assertEqual(yaml_load(vnfdgen.render(tmpl, routing_table=None)), None)
+ self.assertIsNone(
+ yaml_load(vnfdgen.render(tmpl, routing_table=None)))
def test_render_unicode_dict(self):
tmpl = "{{ routing_table }}"
- self.assertEqual(yaml_load(vnfdgen.render(tmpl, **NODE_CFG)), NODE_CFG["routing_table"])
+ self.assertEqual(yaml_load(vnfdgen.render(
+ tmpl, **NODE_CFG)), NODE_CFG["routing_table"])
class TestVnfdGen(unittest.TestCase):
@@ -268,7 +265,6 @@ class TestVnfdGen(unittest.TestCase):
d = {'0': 1, 0: 24, 'b': 2}
self.assertRaises(AttributeError, vnfdgen.deepgetitem, d, 0)
-
def test_generate_tp_single_var(self):
""" Function to verify traffic profile generation with imix """
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/__init__.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/__init__.py
diff --git a/tests/unit/network_services/vnf_generic/vnf/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml b/yardstick/tests/unit/network_services/vnf_generic/vnf/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml
index fb1be35c1..09c22ad9e 100644
--- a/tests/unit/network_services/vnf_generic/vnf/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/tc_baremetal_rfc2544_ipv4_1flow_64B.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: "../../traffic_profiles/ipv4_throughput_vpe.yaml"
topology: vpe_vnf_topology.yaml
nodes:
- tg__1: trafficgen_1.yardstick
- vnf__1: vnf.yardstick
+ tg__0: trafficgen_0.yardstick
+ vnf__0: vnf_0.yardstick
tc_options:
rfc2544:
allowed_drop_rate: 0.8 - 1
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_acl_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_acl_vnf.py
index 2a2647a91..12bb42f20 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_acl_vnf.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_acl_vnf.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,23 +11,21 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
import unittest
import mock
import os
+import re
+import copy
-from tests.unit import STL_MOCKS
-from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
-
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.acl_vnf import AclApproxVnf
- from yardstick.network_services.nfvi.resource import ResourceProfile
+from yardstick.common import utils
+from yardstick.common import exceptions
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.vnf_generic.vnf import acl_vnf
+from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
+from yardstick.network_services.nfvi.resource import ResourceProfile
+from yardstick.network_services.vnf_generic.vnf.acl_vnf import AclApproxSetupEnvSetupEnvHelper
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
TEST_FILE_YAML = 'nsb_test_case.yaml'
@@ -142,7 +138,7 @@ class TestAclApproxVnf(unittest.TestCase):
'ip': '1.2.1.1',
'interfaces':
{'xe0': {'local_iface_name': 'ens513f0',
- 'vld_id': AclApproxVnf.DOWNLINK,
+ 'vld_id': acl_vnf.AclApproxVnf.DOWNLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.40.20',
'dst_mac': '00:00:00:00:00:01',
@@ -170,7 +166,7 @@ class TestAclApproxVnf(unittest.TestCase):
'ip': '1.2.1.1',
'interfaces':
{'xe0': {'local_iface_name': 'ens785f0',
- 'vld_id': AclApproxVnf.UPLINK,
+ 'vld_id': acl_vnf.AclApproxVnf.UPLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.100.20',
'dst_mac': '00:00:00:00:00:02',
@@ -195,7 +191,7 @@ class TestAclApproxVnf(unittest.TestCase):
'ip': '1.2.1.1',
'interfaces':
{'xe0': {'local_iface_name': 'ens786f0',
- 'vld_id': AclApproxVnf.UPLINK,
+ 'vld_id': acl_vnf.AclApproxVnf.UPLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.100.19',
'dst_mac': '00:00:00:00:00:04',
@@ -205,7 +201,7 @@ class TestAclApproxVnf(unittest.TestCase):
'vpci': '0000:05:00.0',
'dpdk_port_num': 0},
'xe1': {'local_iface_name': 'ens786f1',
- 'vld_id': AclApproxVnf.DOWNLINK,
+ 'vld_id': acl_vnf.AclApproxVnf.DOWNLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.40.19',
'dst_mac': '00:00:00:00:00:03',
@@ -241,22 +237,31 @@ class TestAclApproxVnf(unittest.TestCase):
def test___init__(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- acl_approx_vnf = AclApproxVnf(name, vnfd)
+ acl_approx_vnf = acl_vnf.AclApproxVnf(name, vnfd)
self.assertIsNone(acl_approx_vnf._vnf_process)
@mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
@mock.patch(SSH_HELPER)
def test_collect_kpi(self, ssh, *args):
mock_ssh(ssh)
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- acl_approx_vnf = AclApproxVnf(name, vnfd)
+ acl_approx_vnf = acl_vnf.AclApproxVnf(name, vnfd)
+ acl_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {acl_approx_vnf.name: "mock"}
+ }
acl_approx_vnf.q_in = mock.MagicMock()
acl_approx_vnf.q_out = mock.MagicMock()
acl_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
acl_approx_vnf.resource = mock.Mock(autospec=ResourceProfile)
acl_approx_vnf.vnf_execute = mock.Mock(return_value="")
- result = {'packets_dropped': 0, 'packets_fwd': 0, 'packets_in': 0}
+ result = {
+ 'physical_node': 'mock_node',
+ 'packets_dropped': 0,
+ 'packets_fwd': 0,
+ 'packets_in': 0
+ }
self.assertEqual(result, acl_approx_vnf.collect_kpi())
@mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
@@ -265,7 +270,7 @@ class TestAclApproxVnf(unittest.TestCase):
mock_ssh(ssh)
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- acl_approx_vnf = AclApproxVnf(name, vnfd)
+ acl_approx_vnf = acl_vnf.AclApproxVnf(name, vnfd)
acl_approx_vnf.q_in = mock.MagicMock()
acl_approx_vnf.q_out = mock.MagicMock()
acl_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
@@ -277,7 +282,7 @@ class TestAclApproxVnf(unittest.TestCase):
mock_ssh(ssh)
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- acl_approx_vnf = AclApproxVnf(name, vnfd)
+ acl_approx_vnf = acl_vnf.AclApproxVnf(name, vnfd)
acl_approx_vnf.q_in = mock.MagicMock()
acl_approx_vnf.q_out = mock.MagicMock()
acl_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
@@ -298,7 +303,7 @@ class TestAclApproxVnf(unittest.TestCase):
mock_ssh(ssh)
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- acl_approx_vnf = AclApproxVnf(name, vnfd)
+ acl_approx_vnf = acl_vnf.AclApproxVnf(name, vnfd)
acl_approx_vnf._build_config = mock.MagicMock()
acl_approx_vnf.queue_wrapper = mock.MagicMock()
acl_approx_vnf.scenario_helper.scenario_cfg = self.scenario_cfg
@@ -311,20 +316,19 @@ class TestAclApproxVnf(unittest.TestCase):
acl_approx_vnf._run()
acl_approx_vnf.ssh_helper.run.assert_called_once()
- @mock.patch("yardstick.network_services.vnf_generic.vnf.acl_vnf.YangModel")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.acl_vnf.find_relative_file")
+ @mock.patch.object(utils, 'find_relative_file')
@mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.Context")
@mock.patch(SSH_HELPER)
def test_instantiate(self, ssh, *args):
mock_ssh(ssh)
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- acl_approx_vnf = AclApproxVnf(name, vnfd)
+ acl_approx_vnf = acl_vnf.AclApproxVnf(name, vnfd)
acl_approx_vnf.deploy_helper = mock.MagicMock()
acl_approx_vnf.resource_helper = mock.MagicMock()
acl_approx_vnf._build_config = mock.MagicMock()
self.scenario_cfg['vnf_options'] = {'acl': {'cfg': "",
- 'rules': ""}}
+ 'rules': ""}}
acl_approx_vnf.q_out.put("pipeline>")
acl_approx_vnf.WAIT_TIME = 0
self.scenario_cfg.update({"nodes": {"vnf__1": ""}})
@@ -337,12 +341,178 @@ class TestAclApproxVnf(unittest.TestCase):
mock_ssh(ssh)
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- acl_approx_vnf = AclApproxVnf(name, vnfd)
+ acl_approx_vnf = acl_vnf.AclApproxVnf(name, vnfd)
acl_approx_vnf._vnf_process = mock.MagicMock()
acl_approx_vnf._vnf_process.terminate = mock.Mock()
acl_approx_vnf.used_drivers = {"01:01.0": "i40e",
"01:01.1": "i40e"}
acl_approx_vnf.vnf_execute = mock.MagicMock()
- acl_approx_vnf.dpdk_nic_bind = "dpdk_nic_bind.py"
+ acl_approx_vnf.dpdk_devbind = "dpdk-devbind.py"
acl_approx_vnf._resource_collect_stop = mock.Mock()
- self.assertEqual(None, acl_approx_vnf.terminate())
+ self.assertIsNone(acl_approx_vnf.terminate())
+
+
+class TestAclApproxSetupEnvSetupEnvHelper(unittest.TestCase):
+
+ ACL_CONFIG = {"access-list-entries": [{
+ "actions": [
+ "count",
+ {"fwd": {
+ "port": 0
+ }
+ }
+ ],
+ "matches": {
+ "destination-ipv4-network": "152.16.0.0/24",
+ "destination-port-range": {
+ "lower-port": 0,
+ "upper-port": 65535
+ },
+ "source-ipv4-network": "0.0.0.0/0",
+ "source-port-range": {
+ "lower-port": 0,
+ "upper-port": 65535
+ },
+ "protocol-mask": 255,
+ "protocol": 127,
+ "priority": 1
+ },
+ "rule-name": "rule1588"
+ }
+ ]}
+
+ def test_get_default_flows(self):
+ """Check if default ACL SampleVNF CLI commands are
+ generated correctly"""
+ ssh_helper = mock.Mock()
+ vnfd_helper = VnfdHelper({'vdu': [
+ {'external-interface': [
+ {
+ 'virtual-interface': {
+ 'local_ip': '152.16.100.19',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'dst_ip': '152.16.100.20',
+ 'vld_id': 'uplink_0',
+ 'ifname': 'xe0',
+ },
+ 'vnfd-connection-point-ref': 'xe0',
+ 'name': 'xe0'
+ },
+ {
+ 'virtual-interface': {
+ 'local_ip': '152.16.40.19',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 1,
+ 'dst_ip': '152.16.40.20',
+ 'vld_id': 'downlink_0',
+ 'ifname': 'xe1',
+ },
+ 'vnfd-connection-point-ref': 'xe1',
+ 'name': 'xe1'
+ }
+ ]}
+ ]})
+ setup_helper = AclApproxSetupEnvSetupEnvHelper(vnfd_helper, ssh_helper, None)
+ self.check_acl_commands(setup_helper.get_flows_config(), [
+ # format: (<cli pattern>, <number of expected matches>)
+ ("^p action add [0-9]+ accept$", 2),
+ ("^p action add [0-9]+ count$", 2),
+ ("^p action add [0-9]+ fwd 1$", 1),
+ ("^p action add [0-9]+ fwd 0$", 1),
+ ("^p acl add 1 152.16.100.0 24 152.16.40.0 24 0 65535 0 65535 0 0 [0-9]+$", 1),
+ ("^p acl add 1 152.16.40.0 24 152.16.100.0 24 0 65535 0 65535 0 0 [0-9]+$", 1),
+ ("^p acl applyruleset$", 1)
+ ])
+
+ @mock.patch.object(AclApproxSetupEnvSetupEnvHelper, 'get_default_flows')
+ def test_get_flows_config(self, get_default_flows):
+ """Check if provided ACL config can be converted to
+ ACL SampleVNF CLI commands correctly"""
+ ssh_helper = mock.Mock()
+ setup_helper = AclApproxSetupEnvSetupEnvHelper(None, ssh_helper, None)
+ get_default_flows.return_value = ({}, [])
+ self.check_acl_commands(setup_helper.get_flows_config(self.ACL_CONFIG), [
+ # format: (<cli pattern>, <number of expected matches>)
+ ("^p action add [0-9]+ count$", 1),
+ ("^p action add [0-9]+ fwd 0$", 1),
+ ("^p acl add 1 0.0.0.0 0 152.16.0.0 24 0 65535 0 65535 127 0 [0-9]+$", 1),
+ ("^p acl applyruleset$", 1)
+ ])
+
+ @mock.patch.object(AclApproxSetupEnvSetupEnvHelper, 'get_default_flows')
+ def test_get_flows_config_invalid_action(self, get_default_flows):
+ """Check if incorrect ACL config fails to convert
+ to ACL SampleVNF CLI commands"""
+ ssh_helper = mock.Mock()
+ setup_helper = AclApproxSetupEnvSetupEnvHelper(None, ssh_helper, None)
+ get_default_flows.return_value = ({}, [])
+ # duplicate config and add invald action
+ acl_config = copy.deepcopy(self.ACL_CONFIG)
+ acl_config['access-list-entries'][0]["actions"].append({"xnat": {}})
+ self.assertRaises(exceptions.AclUnknownActionTemplate,
+ setup_helper.get_flows_config, acl_config)
+
+ @mock.patch.object(AclApproxSetupEnvSetupEnvHelper, 'get_default_flows')
+ def test_get_flows_config_invalid_action_param(self, get_default_flows):
+ """Check if ACL config with invalid action parameter fails to convert
+ to ACL SampleVNF CLI commands"""
+ ssh_helper = mock.Mock()
+ setup_helper = AclApproxSetupEnvSetupEnvHelper(None, ssh_helper, None)
+ get_default_flows.return_value = ({}, [])
+ # duplicate config and add action with invalid parameter
+ acl_config = copy.deepcopy(self.ACL_CONFIG)
+ acl_config['access-list-entries'][0]["actions"].append(
+ {"nat": {"xport": 0}})
+ self.assertRaises(exceptions.AclMissingActionArguments,
+ setup_helper.get_flows_config, acl_config)
+
+ def check_acl_commands(self, config, expected_cli_patterns):
+ """Check if expected ACL CLI commands (given as a list of patterns,
+ `expected_cli_patterns` parameter) present in SampleVNF ACL
+ configuration (given as a multiline string, `config` parameter)"""
+ # Example of expected config:
+ # ---------------------------
+ # p action add 1 accept
+ # p action add 1 fwd 1
+ # p action add 2 accept
+ # p action add 2 count
+ # p action add 2 fwd 0
+ # p acl add 1 152.16.100.0 24 152.16.40.0 24 0 65535 0 65535 0 0 1
+ # p acl add 1 152.16.40.0 24 152.16.100.0 24 0 65535 0 65535 0 0 2
+ # p acl applyruleset
+ # ---------------------------
+ # NOTE: The config above consists of actions ids, which are actually
+ # unknown (generated at runtime), thus it's incorrect just to compare
+ # the example ACL config above with the configuration returned by
+ # get_flows_config() function. It's more correct to use CLI patterns
+ # (RE) to find the required SampleVNF CLI commands in the multiline
+ # string (SampleVNF ACL configuration).
+ for pattern, num_of_match in expected_cli_patterns:
+ # format: (<cli pattern>, <number of expected matches>)
+ result = re.findall(pattern, config, re.MULTILINE)
+ self.assertEqual(len(result), num_of_match)
+
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.open')
+ @mock.patch.object(utils, 'find_relative_file')
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.MultiPortConfig')
+ @mock.patch.object(utils, 'open_relative_file')
+ def test_build_config(self, *args):
+ vnfd_helper = mock.Mock()
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.vnf_cfg = {'lb_config': 'HW'}
+ scenario_helper.options = {}
+ scenario_helper.all_options = {}
+
+ acl_approx_setup_helper = AclApproxSetupEnvSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ acl_approx_setup_helper.get_flows_config = mock.Mock()
+ acl_approx_setup_helper.ssh_helper.provision_tool = mock.Mock(return_value='tool_path')
+ acl_approx_setup_helper.ssh_helper.all_ports = mock.Mock()
+ acl_approx_setup_helper.vnfd_helper.port_nums = mock.Mock(return_value=[0, 1])
+ expected = 'sudo tool_path -p 0x3 -f /tmp/acl_config -s /tmp/acl_script --hwlb 3'
+ self.assertEqual(acl_approx_setup_helper.build_config(), expected)
+ acl_approx_setup_helper.get_flows_config.assert_called_once()
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_agnostic_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_agnostic_vnf.py
new file mode 100644
index 000000000..7c7fe5955
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_agnostic_vnf.py
@@ -0,0 +1,68 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+
+from yardstick.network_services.vnf_generic.vnf import agnostic_vnf
+
+NAME = 'vnf__0'
+
+VNFD = {
+ 'vnfd:vnfd-catalog': {
+ 'vnfd': [{
+ 'id': 'AgnosticVnf', # NSB python class mapping
+ 'name': 'AgnosticVnf',
+ 'short-name': 'AgnosticVnf',
+ 'description': 'AgnosticVnf',
+ 'mgmt-interface': {
+ 'vdu-id': 'vepcvnf-baremetal',
+ 'user': 'user',
+ 'password': 'password',
+ 'ip': 'ip'
+ },
+ 'vdu': [{
+ 'id': 'vepcvnf-baremetal',
+ 'name': 'vepc-vnf-baremetal',
+ 'description': 'vAgnosticVnf workload',
+ 'external-interface': []}],
+ 'benchmark': {
+ 'kpi': []}}]}}
+
+
+class TestAgnosticVnf(unittest.TestCase):
+
+ def setUp(self):
+ self.vnfd = VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ self.agnostic_vnf = agnostic_vnf.AgnosticVnf(NAME, self.vnfd)
+
+ def test_instantiate(self):
+ self.assertIsNone(self.agnostic_vnf.instantiate({}, {}))
+
+ def test_wait_for_instantiate(self):
+ self.assertIsNone(self.agnostic_vnf.wait_for_instantiate())
+
+ def test_terminate(self):
+ self.assertIsNone(self.agnostic_vnf.terminate())
+
+ def test_scale(self):
+ self.assertIsNone(self.agnostic_vnf.scale())
+
+ def test_collect_kpi(self):
+ self.assertIsNone(self.agnostic_vnf.collect_kpi())
+
+ def test_start_collect(self):
+ self.assertIsNone(self.agnostic_vnf.start_collect())
+
+ def test_stop_collect(self):
+ self.assertIsNone(self.agnostic_vnf.stop_collect())
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_base.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_base.py
index e9488f76f..1a72e042b 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_base.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_base.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,9 +11,6 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
-
-# Unittest for yardstick.network_services.vnf_generic.vnf.test_base
import multiprocessing
import os
@@ -25,6 +20,7 @@ import unittest
from yardstick.network_services.vnf_generic.vnf import base
from yardstick.ssh import SSH
+from yardstick.tests.unit import base as ut_base
IP_PIPELINE_CFG_FILE_TPL = ("arp_route_tbl = ({port0_local_ip_hex},"
@@ -195,7 +191,7 @@ class TestQueueFileWrapper(unittest.TestCase):
def test_close(self):
queue_file_wrapper = \
base.QueueFileWrapper(self.q_in, self.q_out, self.prompt)
- self.assertEqual(None, queue_file_wrapper.close())
+ self.assertIsNone(queue_file_wrapper.close())
def test_read(self):
queue_file_wrapper = \
@@ -210,20 +206,22 @@ class TestQueueFileWrapper(unittest.TestCase):
self.assertIsNotNone(queue_file_wrapper.q_out.empty())
-class TestGenericVNF(unittest.TestCase):
+class TestGenericVNF(ut_base.BaseUnitTestCase):
def test_definition(self):
"""Make sure that the abstract class cannot be instantiated"""
with self.assertRaises(TypeError) as exc:
# pylint: disable=abstract-class-instantiated
base.GenericVNF('vnf1', VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+
msg = ("Can't instantiate abstract class GenericVNF with abstract "
- "methods collect_kpi, instantiate, scale, terminate, "
- "wait_for_instantiate")
+ "methods collect_kpi, instantiate, scale, start_collect, "
+ "stop_collect, terminate, wait_for_instantiate")
+
self.assertEqual(msg, str(exc.exception))
-class TestGenericTrafficGen(unittest.TestCase):
+class GenericTrafficGenTestCase(ut_base.BaseUnitTestCase):
def test_definition(self):
"""Make sure that the abstract class cannot be instantiated"""
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_cgnapt_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_cgnapt_vnf.py
index f2ce18fb3..d0672dcfd 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_cgnapt_vnf.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_cgnapt_vnf.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,31 +11,22 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
from copy import deepcopy
-import os
-import unittest
-import mock
-
-from tests.unit import STL_MOCKS
-from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+import time
+import mock
+import unittest
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.common import utils
+from yardstick.common import process
+from yardstick.network_services.vnf_generic.vnf import cgnapt_vnf
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+from yardstick.network_services.nfvi import resource
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.cgnapt_vnf import CgnaptApproxVnf, \
- CgnaptApproxSetupEnvHelper
- from yardstick.network_services.vnf_generic.vnf import cgnapt_vnf
- from yardstick.network_services.nfvi.resource import ResourceProfile
TEST_FILE_YAML = 'nsb_test_case.yaml'
-SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
-
-
name = 'vnf__0'
@@ -45,8 +34,9 @@ class TestCgnaptApproxSetupEnvHelper(unittest.TestCase):
def test__generate_ip_from_pool(self):
- ip = CgnaptApproxSetupEnvHelper._generate_ip_from_pool("1.2.3.4")
- self.assertEqual(next(ip), '1.2.3.4')
+ _ip = '1.2.3.4'
+ ip = cgnapt_vnf.CgnaptApproxSetupEnvHelper._generate_ip_from_pool(_ip)
+ self.assertEqual(next(ip), _ip)
self.assertEqual(next(ip), '1.2.4.4')
self.assertEqual(next(ip), '1.2.5.4')
@@ -65,24 +55,48 @@ link 1 up
"""
header = "This is a header"
- out = CgnaptApproxSetupEnvHelper._update_cgnat_script_file(header, sample.splitlines())
+ out = cgnapt_vnf.CgnaptApproxSetupEnvHelper._update_cgnat_script_file(
+ header, sample.splitlines())
self.assertNotIn("This is a header", out)
def test__get_cgnapt_config(self):
vnfd_helper = mock.MagicMock()
vnfd_helper.port_pairs.uplink_ports = [{"name": 'a'}, {"name": "b"}, {"name": "c"}]
- helper = CgnaptApproxSetupEnvHelper(vnfd_helper, mock.Mock(), mock.Mock())
+ helper = cgnapt_vnf.CgnaptApproxSetupEnvHelper(
+ vnfd_helper, mock.Mock(), mock.Mock())
result = helper._get_cgnapt_config()
self.assertIsNotNone(result)
def test_scale(self):
- helper = CgnaptApproxSetupEnvHelper(mock.Mock(), mock.Mock(), mock.Mock())
+ helper = cgnapt_vnf.CgnaptApproxSetupEnvHelper(
+ mock.Mock(), mock.Mock(), mock.Mock())
with self.assertRaises(NotImplementedError):
helper.scale()
-
-@mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.Process")
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.open')
+ @mock.patch.object(utils, 'find_relative_file')
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.MultiPortConfig')
+ @mock.patch.object(utils, 'open_relative_file')
+ def test_build_config(self, *args):
+ vnfd_helper = mock.Mock()
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.vnf_cfg = {'lb_config': 'HW'}
+ scenario_helper.options = {}
+ scenario_helper.all_options = {}
+
+ cgnat_approx_setup_helper = cgnapt_vnf.CgnaptApproxSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
+
+ cgnat_approx_setup_helper.ssh_helper.provision_tool = mock.Mock(return_value='tool_path')
+ cgnat_approx_setup_helper.ssh_helper.all_ports = mock.Mock()
+ cgnat_approx_setup_helper.vnfd_helper.port_nums = mock.Mock(return_value=[0, 1])
+ expected = 'sudo tool_path -p 0x3 -f /tmp/cgnapt_config -s /tmp/cgnapt_script --hwlb 3'
+ self.assertEqual(cgnat_approx_setup_helper.build_config(), expected)
+
+
+@mock.patch.object(sample_vnf, 'Process')
class TestCgnaptApproxVnf(unittest.TestCase):
VNFD = {'vnfd:vnfd-catalog':
{'vnfd':
@@ -202,7 +216,7 @@ class TestCgnaptApproxVnf(unittest.TestCase):
'ip': '1.2.1.1',
'interfaces':
{'xe0': {'local_iface_name': 'ens513f0',
- 'vld_id': CgnaptApproxVnf.DOWNLINK,
+ 'vld_id': cgnapt_vnf.CgnaptApproxVnf.DOWNLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.40.20',
'dst_mac': '00:00:00:00:00:01',
@@ -230,7 +244,7 @@ class TestCgnaptApproxVnf(unittest.TestCase):
'ip': '1.2.1.1',
'interfaces':
{'xe0': {'local_iface_name': 'ens785f0',
- 'vld_id': CgnaptApproxVnf.UPLINK,
+ 'vld_id': cgnapt_vnf.CgnaptApproxVnf.UPLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.100.20',
'dst_mac': '00:00:00:00:00:02',
@@ -255,7 +269,7 @@ class TestCgnaptApproxVnf(unittest.TestCase):
'ip': '1.2.1.1',
'interfaces':
{'xe0': {'local_iface_name': 'ens786f0',
- 'vld_id': CgnaptApproxVnf.UPLINK,
+ 'vld_id': cgnapt_vnf.CgnaptApproxVnf.UPLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.100.19',
'dst_mac': '00:00:00:00:00:04',
@@ -265,7 +279,7 @@ class TestCgnaptApproxVnf(unittest.TestCase):
'vpci': '0000:05:00.0',
'dpdk_port_num': 0},
'xe1': {'local_iface_name': 'ens786f1',
- 'vld_id': CgnaptApproxVnf.DOWNLINK,
+ 'vld_id': cgnapt_vnf.CgnaptApproxVnf.DOWNLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.40.19',
'dst_mac': '00:00:00:00:00:03',
@@ -304,81 +318,68 @@ class TestCgnaptApproxVnf(unittest.TestCase):
def test___init__(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- cgnapt_approx_vnf = CgnaptApproxVnf(name, vnfd)
+ cgnapt_approx_vnf = cgnapt_vnf.CgnaptApproxVnf(name, vnfd)
self.assertIsNone(cgnapt_approx_vnf._vnf_process)
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.time')
- @mock.patch(SSH_HELPER)
- def test_collect_kpi(self, ssh, *args):
- mock_ssh(ssh)
-
+ @mock.patch.object(process, 'check_if_process_failed')
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
+ def test_collect_kpi(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- cgnapt_approx_vnf = CgnaptApproxVnf(name, vnfd)
+ cgnapt_approx_vnf = cgnapt_vnf.CgnaptApproxVnf(name, vnfd)
+ cgnapt_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {cgnapt_approx_vnf.name: "mock"}
+ }
cgnapt_approx_vnf._vnf_process = mock.MagicMock(
**{"is_alive.return_value": True, "exitcode": None})
cgnapt_approx_vnf.q_in = mock.MagicMock()
cgnapt_approx_vnf.q_out = mock.MagicMock()
cgnapt_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
- cgnapt_approx_vnf.resource = mock.Mock(autospec=ResourceProfile)
- result = {'packets_dropped': 0, 'packets_fwd': 0, 'packets_in': 0}
- self.assertEqual(result, cgnapt_approx_vnf.collect_kpi())
-
- @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.time')
- @mock.patch(SSH_HELPER)
- def test_vnf_execute_command(self, ssh, *args):
- mock_ssh(ssh)
-
+ cgnapt_approx_vnf.resource = mock.Mock(
+ autospec=resource.ResourceProfile)
+ result = {
+ 'physical_node': 'mock_node',
+ 'packets_dropped': 0,
+ 'packets_fwd': 0,
+ 'packets_in': 0
+ }
+ with mock.patch.object(cgnapt_approx_vnf, 'get_stats',
+ return_value=''):
+ self.assertEqual(result, cgnapt_approx_vnf.collect_kpi())
+
+ @mock.patch.object(time, 'sleep')
+ def test_vnf_execute_command(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- cgnapt_approx_vnf = CgnaptApproxVnf(name, vnfd)
- cgnapt_approx_vnf.q_in = mock.MagicMock()
- cgnapt_approx_vnf.q_out = mock.MagicMock()
+ cgnapt_approx_vnf = cgnapt_vnf.CgnaptApproxVnf(name, vnfd)
+ cgnapt_approx_vnf.q_in = mock.Mock()
+ cgnapt_approx_vnf.q_out = mock.Mock()
cgnapt_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
- cmd = "quit"
- self.assertEqual("", cgnapt_approx_vnf.vnf_execute(cmd))
-
- @mock.patch(SSH_HELPER)
- def test_get_stats(self, ssh, *args):
- mock_ssh(ssh)
+ self.assertEqual("", cgnapt_approx_vnf.vnf_execute('quit'))
+ def test_get_stats(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- cgnapt_approx_vnf = CgnaptApproxVnf(name, vnfd)
- cgnapt_approx_vnf.q_in = mock.MagicMock()
- cgnapt_approx_vnf.q_out = mock.MagicMock()
- cgnapt_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
- result = \
- "CG-NAPT(.*\n)*Received 100, Missed 0, Dropped 0,Translated 100,ingress"
- cgnapt_approx_vnf.vnf_execute = mock.Mock(return_value=result)
- self.assertListEqual(list(result), list(cgnapt_approx_vnf.get_stats()))
-
- def _get_file_abspath(self, filename):
- curr_path = os.path.dirname(os.path.abspath(__file__))
- file_path = os.path.join(curr_path, filename)
- return file_path
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.cgnapt_vnf.hex")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.cgnapt_vnf.eval")
- @mock.patch('yardstick.network_services.vnf_generic.vnf.cgnapt_vnf.open')
- @mock.patch(SSH_HELPER)
- def test_run_vcgnapt(self, ssh, *args):
- mock_ssh(ssh)
+ cgnapt_approx_vnf = cgnapt_vnf.CgnaptApproxVnf(name, vnfd)
+ with mock.patch.object(cgnapt_approx_vnf, 'vnf_execute') as mock_exec:
+ mock_exec.return_value = 'output'
+ self.assertEqual('output', cgnapt_approx_vnf.get_stats())
+ mock_exec.assert_called_once_with('p cgnapt stats')
+
+ def test_run_vcgnapt(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- cgnapt_approx_vnf = CgnaptApproxVnf(name, vnfd)
- cgnapt_approx_vnf._build_config = mock.MagicMock()
- cgnapt_approx_vnf.queue_wrapper = mock.MagicMock()
- cgnapt_approx_vnf.ssh_helper = mock.MagicMock()
- cgnapt_approx_vnf.ssh_helper.run = mock.MagicMock()
- cgnapt_approx_vnf.scenario_helper.scenario_cfg = self.scenario_cfg
- cgnapt_approx_vnf._run()
- cgnapt_approx_vnf.ssh_helper.run.assert_called_once()
+ cgnapt_approx_vnf = cgnapt_vnf.CgnaptApproxVnf(name, vnfd)
+ cgnapt_approx_vnf.ssh_helper = mock.Mock()
+ cgnapt_approx_vnf.setup_helper = mock.Mock()
+ with mock.patch.object(cgnapt_approx_vnf, '_build_config'), \
+ mock.patch.object(cgnapt_approx_vnf, '_build_run_kwargs'):
+ cgnapt_approx_vnf._run()
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.Context")
- @mock.patch(SSH_HELPER)
- def test_instantiate(self, ssh, *args):
- mock_ssh(ssh)
+ cgnapt_approx_vnf.ssh_helper.run.assert_called_once()
+ cgnapt_approx_vnf.setup_helper.kill_vnf.assert_called_once()
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server')
+ def test_instantiate(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- cgnapt_approx_vnf = CgnaptApproxVnf(name, vnfd)
+ cgnapt_approx_vnf = cgnapt_vnf.CgnaptApproxVnf(name, vnfd)
cgnapt_approx_vnf.deploy_helper = mock.MagicMock()
cgnapt_approx_vnf.resource_helper = mock.MagicMock()
cgnapt_approx_vnf._build_config = mock.MagicMock()
@@ -387,51 +388,25 @@ class TestCgnaptApproxVnf(unittest.TestCase):
cgnapt_approx_vnf.q_out.put("pipeline>")
cgnapt_vnf.WAIT_TIME = 3
self.scenario_cfg.update({"nodes": {"vnf__0": ""}})
- self.assertIsNone(cgnapt_approx_vnf.instantiate(self.scenario_cfg,
- self.context_cfg))
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
- @mock.patch(SSH_HELPER)
- def test_terminate(self, ssh, *args):
- mock_ssh(ssh)
-
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- cgnapt_approx_vnf = CgnaptApproxVnf(name, vnfd)
- cgnapt_approx_vnf._vnf_process = mock.MagicMock()
- cgnapt_approx_vnf._vnf_process.terminate = mock.Mock()
- cgnapt_approx_vnf.used_drivers = {"01:01.0": "i40e",
- "01:01.1": "i40e"}
- cgnapt_approx_vnf.vnf_execute = mock.MagicMock()
- cgnapt_approx_vnf.dpdk_nic_bind = "dpdk_nic_bind.py"
- cgnapt_approx_vnf._resource_collect_stop = mock.Mock()
- self.assertEqual(None, cgnapt_approx_vnf.terminate())
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
- @mock.patch(SSH_HELPER)
- def test__vnf_up_post(self, ssh, *args):
- mock_ssh(ssh)
+ with mock.patch.object(cgnapt_approx_vnf, '_start_vnf'):
+ self.assertIsNone(cgnapt_approx_vnf.instantiate(
+ self.scenario_cfg, self.context_cfg))
+ @mock.patch.object(time, 'sleep')
+ def test__vnf_up_post(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
self.scenario_cfg['options'][name]['napt'] = 'static'
-
- cgnapt_approx_vnf = CgnaptApproxVnf(name, vnfd)
- cgnapt_approx_vnf._vnf_process = mock.MagicMock()
- cgnapt_approx_vnf._vnf_process.terminate = mock.Mock()
- cgnapt_approx_vnf.vnf_execute = mock.MagicMock()
+ cgnapt_approx_vnf = cgnapt_vnf.CgnaptApproxVnf(name, vnfd)
+ cgnapt_approx_vnf.vnf_execute = mock.Mock()
cgnapt_approx_vnf.scenario_helper.scenario_cfg = self.scenario_cfg
- cgnapt_approx_vnf._resource_collect_stop = mock.Mock()
- cgnapt_approx_vnf._vnf_up_post()
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
- @mock.patch(SSH_HELPER)
- def test__vnf_up_post_short(self, ssh, *args):
- mock_ssh(ssh)
+ with mock.patch.object(cgnapt_approx_vnf, 'setup_helper') as \
+ mock_setup_helper:
+ mock_setup_helper._generate_ip_from_pool.return_value = ['ip1']
+ mock_setup_helper._get_cgnapt_config.return_value = ['gw_ip1']
+ cgnapt_approx_vnf._vnf_up_post()
+ def test__vnf_up_post_short(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- cgnapt_approx_vnf = CgnaptApproxVnf(name, vnfd)
- cgnapt_approx_vnf._vnf_process = mock.MagicMock()
- cgnapt_approx_vnf._vnf_process.terminate = mock.Mock()
- cgnapt_approx_vnf.vnf_execute = mock.MagicMock()
+ cgnapt_approx_vnf = cgnapt_vnf.CgnaptApproxVnf(name, vnfd)
cgnapt_approx_vnf.scenario_helper.scenario_cfg = self.scenario_cfg
- cgnapt_approx_vnf._resource_collect_stop = mock.Mock()
cgnapt_approx_vnf._vnf_up_post()
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_epc_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_epc_vnf.py
new file mode 100644
index 000000000..b1bef2e39
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_epc_vnf.py
@@ -0,0 +1,92 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import copy
+import unittest
+
+from yardstick.network_services.vnf_generic.vnf import epc_vnf
+
+NAME = 'vnf__0'
+
+VNFD = {
+ 'vnfd:vnfd-catalog': {
+ 'vnfd': [{
+ 'id': 'EPCVnf', # NSB python class mapping
+ 'name': 'EPCVnf',
+ 'short-name': 'EPCVnf',
+ 'description': 'EPCVnf',
+ 'mgmt-interface': {
+ 'vdu-id': 'vepcvnf-baremetal',
+ 'user': 'user', # Value filled by vnfdgen
+ 'password': 'password', # Value filled by vnfdgen
+ 'ip': 'ip' # Value filled by vnfdgen
+ },
+ 'vdu': [{
+ 'id': 'vepcvnf-baremetal',
+ 'name': 'vepc-vnf-baremetal',
+ 'description': 'vEPCVnf workload',
+ 'external-interface': []}],
+ 'benchmark': {
+ 'kpi': []}}]}}
+
+
+class TestEPCVnf(unittest.TestCase):
+
+ def setUp(self):
+ self.vnfd = VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ self.epc_vnf = epc_vnf.EPCVnf(NAME, self.vnfd)
+
+ def test___init__(self, *args):
+ _epc_vnf = epc_vnf.EPCVnf(NAME, self.vnfd)
+ for x in {'user', 'password', 'ip'}:
+ self.assertEqual(self.vnfd['mgmt-interface'][x],
+ _epc_vnf.vnfd_helper.mgmt_interface[x])
+ self.assertEqual(NAME, _epc_vnf.name)
+ self.assertEqual([], _epc_vnf.kpi)
+ self.assertEqual({}, _epc_vnf.config)
+ self.assertFalse(_epc_vnf.runs_traffic)
+
+ def test___init__missing_ip(self, *args):
+ _vnfd = copy.deepcopy(self.vnfd)
+ _vnfd['mgmt-interface'].pop('ip')
+ _epc_vnf = epc_vnf.EPCVnf(NAME, _vnfd)
+ for x in {'user', 'password'}:
+ self.assertEqual(_vnfd['mgmt-interface'][x],
+ _epc_vnf.vnfd_helper.mgmt_interface[x])
+ self.assertNotIn('ip', _epc_vnf.vnfd_helper.mgmt_interface)
+ self.assertEqual(NAME, _epc_vnf.name)
+ self.assertEqual([], _epc_vnf.kpi)
+ self.assertEqual({}, _epc_vnf.config)
+ self.assertFalse(_epc_vnf.runs_traffic)
+
+ def test_instantiate(self):
+ self.assertIsNone(self.epc_vnf.instantiate({}, {}))
+
+ def test_wait_for_instantiate(self):
+ self.assertIsNone(self.epc_vnf.wait_for_instantiate())
+
+ def test_terminate(self):
+ self.assertIsNone(self.epc_vnf.terminate())
+
+ def test_scale(self):
+ self.assertIsNone(self.epc_vnf.scale())
+
+ def test_collect_kpi(self):
+ self.assertIsNone(self.epc_vnf.collect_kpi())
+
+ def test_start_collect(self):
+ self.assertIsNone(self.epc_vnf.start_collect())
+
+ def test_stop_collect(self):
+ self.assertIsNone(self.epc_vnf.stop_collect())
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_ipsec_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_ipsec_vnf.py
new file mode 100644
index 000000000..00dc4a5d1
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_ipsec_vnf.py
@@ -0,0 +1,2151 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+from multiprocessing import Process
+
+import mock
+
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.common import utils
+from yardstick.network_services.helpers import cpu
+from yardstick.network_services.nfvi.resource import ResourceProfile
+from yardstick.network_services.vnf_generic.vnf import ipsec_vnf, vpp_helpers
+from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
+from yardstick.network_services.vnf_generic.vnf.ipsec_vnf import CryptoAlg, \
+ IntegAlg, VipsecApproxSetupEnvHelper
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import \
+ mock_ssh
+
+SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
+
+NAME = 'vnf__1'
+
+
+class TestCryptoAlg(unittest.TestCase):
+
+ def test__init__(self):
+ encr_alg = CryptoAlg.AES_GCM_128
+ self.assertEqual('aes-gcm-128', encr_alg.alg_name)
+ self.assertEqual('AES-GCM', encr_alg.scapy_name)
+ self.assertEqual(20, encr_alg.key_len)
+
+
+class TestIntegAlg(unittest.TestCase):
+
+ def test__init__(self):
+ auth_alg = IntegAlg.AES_GCM_128
+ self.assertEqual('aes-gcm-128', auth_alg.alg_name)
+ self.assertEqual('AES-GCM', auth_alg.scapy_name)
+ self.assertEqual(20, auth_alg.key_len)
+
+
+@mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.Process")
+class TestVipsecApproxVnf(unittest.TestCase):
+ VNFD = {'vnfd:vnfd-catalog':
+ {'vnfd':
+ [{
+ "benchmark": {
+ "kpi": [
+ "packets_in",
+ "packets_fwd",
+ "packets_dropped"
+ ]
+ },
+ "connection-point": [
+ {
+ "name": "xe0",
+ "type": "VPORT"
+ },
+ {
+ "name": "xe1",
+ "type": "VPORT"
+ }
+ ],
+ "description": "VPP IPsec",
+ "id": "VipsecApproxVnf",
+ "mgmt-interface": {
+ "ip": "10.10.10.101",
+ "password": "r00t",
+ "user": "root",
+ "vdu-id": "ipsecvnf-baremetal"
+ },
+ "name": "IpsecVnf",
+ "short-name": "IpsecVnf",
+ "vdu": [
+ {
+ "description": "VPP Ipsec",
+ "external-interface": [
+ {
+ "name": "xe0",
+ "virtual-interface": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.2",
+ "local_mac": "90:e2:ba:7c:41:a8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe0",
+ "peer_intf": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.2",
+ "dst_mac": "90:e2:ba:7c:41:a8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.1",
+ "local_mac": "90:e2:ba:7c:30:e8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_name": "vnf__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:81:00.0"
+ },
+ "peer_name": "tg__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:ff:06.0"
+ },
+ "vnfd-connection-point-ref": "xe0"
+ },
+ {
+ "name": "xe1",
+ "virtual-interface": {
+ "dpdk_port_num": 1,
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.2",
+ "dst_mac": "0a:b1:ec:fd:a2:66",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.1",
+ "local_mac": "4e:90:85:d3:c5:13",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe1",
+ "peer_intf": {
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.1",
+ "dst_mac": "4e:90:85:d3:c5:13",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.2",
+ "local_mac": "0a:b1:ec:fd:a2:66",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_name": "vnf__0",
+ "vld_id": "ciphertext",
+ "vpci": "0000:00:07.0"
+ },
+ "peer_name": "vnf__1",
+ "vld_id": "ciphertext",
+ "vpci": "0000:ff:07.0"
+ },
+ "vnfd-connection-point-ref": "xe1"
+ }
+ ],
+ "id": "ipsecvnf-baremetal",
+ "name": "ipsecvnf-baremetal",
+ "routing_table": []
+ }
+ ]
+ }
+ ]}}
+
+ VNFD_ERROR = {'vnfd:vnfd-catalog':
+ {'vnfd':
+ [{
+ "benchmark": {
+ "kpi": [
+ "packets_in",
+ "packets_fwd",
+ "packets_dropped"
+ ]
+ },
+ "connection-point": [
+ {
+ "name": "xe0",
+ "type": "VPORT"
+ },
+ {
+ "name": "xe1",
+ "type": "VPORT"
+ }
+ ],
+ "description": "VPP IPsec",
+ "id": "VipsecApproxVnf",
+ "mgmt-interface": {
+ "ip": "10.10.10.101",
+ "password": "r00t",
+ "user": "root",
+ "vdu-id": "ipsecvnf-baremetal"
+ },
+ "name": "IpsecVnf",
+ "short-name": "IpsecVnf",
+ "vdu": [
+ {
+ "description": "VPP Ipsec",
+ "external-interface": [
+ {
+ "name": "xe0",
+ "virtual-interface": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.2",
+ "local_mac": "90:e2:ba:7c:41:a8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe0",
+ "peer_intf": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.2",
+ "dst_mac": "90:e2:ba:7c:41:a8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.1",
+ "local_mac": "90:e2:ba:7c:30:e8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_name": "vnf__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:81:00.0"
+ },
+ "peer_name": "tg__0",
+ "vld_id": "uplink_1",
+ "vpci": "0000:ff:06.0"
+ },
+ "vnfd-connection-point-ref": "xe0"
+ },
+ {
+ "name": "xe1",
+ "virtual-interface": {
+ "dpdk_port_num": 1,
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.2",
+ "dst_mac": "0a:b1:ec:fd:a2:66",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.1",
+ "local_mac": "4e:90:85:d3:c5:13",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_intf": {
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.1",
+ "dst_mac": "4e:90:85:d3:c5:13",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.2",
+ "local_mac": "0a:b1:ec:fd:a2:66",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_name": "vnf__0",
+ "vld_id": "ciphertext",
+ "vpci": "0000:00:07.0"
+ },
+ "peer_name": "vnf__1",
+ "vld_id": "ciphertext",
+ "vpci": "0000:ff:07.0"
+ },
+ "vnfd-connection-point-ref": "xe1"
+ }
+ ],
+ "id": "ipsecvnf-baremetal",
+ "name": "ipsecvnf-baremetal",
+ "routing_table": []
+ }
+ ]
+ }
+ ]}}
+
+ scenario_cfg = {
+ "nodes": {
+ "tg__0": "trafficgen.yardstick-5486cc2f",
+ "vnf__0": "vnf0.yardstick-5486cc2f",
+ "vnf__1": "vnf1.yardstick-5486cc2f"
+ },
+ "options": {
+ "flow": {
+ "count": 1,
+ "dst_ip": [
+ "20.0.0.0-20.0.0.100"
+ ],
+ "src_ip": [
+ "10.0.0.0-10.0.0.100"
+ ]
+ },
+ "framesize": {
+ "downlink": {
+ "64B": 100
+ },
+ "uplink": {
+ "64B": 100
+ }
+ },
+ "rfc2544": {
+ "allowed_drop_rate": "0.0 - 0.005"
+ },
+ "tg__0": {
+ "collectd": {
+ "interval": 1
+ },
+ "queues_per_port": 7
+ },
+ "traffic_type": 4,
+ "vnf__0": {
+ "collectd": {
+ "interval": 1
+ },
+ "vnf_config": {
+ "crypto_type": "SW_cryptodev",
+ "rxq": 1,
+ "worker_config": "1C/1T",
+ "worker_threads": 4
+ }
+ },
+ "vnf__1": {
+ "collectd": {
+ "interval": 1
+ },
+ "vnf_config": {
+ "crypto_type": "SW_cryptodev",
+ "rxq": 1,
+ "worker_config": "1C/1T",
+ "worker_threads": 4
+ }
+ },
+ "vpp_config": {
+ "crypto_algorithms": "aes-gcm",
+ "tunnel": 1
+ }
+ },
+ "runner": {
+ "duration": 500,
+ "interval": 10,
+ "object":
+ "yardstick.benchmark.scenarios.networking.vnf_generic.NetworkServiceTestCase",
+ "output_config": {
+ "DEFAULT": {
+ "debug": "False",
+ "dispatcher": [
+ "influxdb"
+ ]
+ },
+ "dispatcher_file": {
+ "debug": "False",
+ "dispatcher": "influxdb",
+ "file_path": "/tmp/yardstick.out"
+ },
+ "dispatcher_http": {
+ "debug": "False",
+ "dispatcher": "influxdb",
+ "target": "http://127.0.0.1:8000/results",
+ "timeout": "20"
+ },
+ "dispatcher_influxdb": {
+ "db_name": "yardstick",
+ "debug": "False",
+ "dispatcher": "influxdb",
+ "password": "r00t",
+ "target": "http://192.168.100.3:8086",
+ "timeout": "20",
+ "username": "root"
+ },
+ "nsb": {
+ "bin_path": "/opt/nsb_bin",
+ "debug": "False",
+ "dispatcher": "influxdb",
+ "trex_client_lib": "/opt/nsb_bin/trex_client/stl",
+ "trex_path": "/opt/nsb_bin/trex/scripts"
+ }
+ },
+ "runner_id": 1105,
+ "type": "Duration"
+ },
+ "task_id": "5486cc2f-d4d3-4feb-b0df-5e0bcd584c9e",
+ "task_path": "samples/vnf_samples/nsut/ipsec",
+ "tc": "tc_baremetal_rfc2544_ipv4_1flow_sw_aesgcm_4cores_64B_trex",
+ "topology": "vpp-tg-topology-2.yaml",
+ "traffic_profile": "../../traffic_profiles/ipv4_throughput_latency_vpp.yaml",
+ "type": "NSPerf"
+ }
+
+ context_cfg = {
+ "networks": {},
+ "nodes": {
+ "tg__0": {
+ "VNF model": "../../vnf_descriptors/tg_vpp_tpl.yaml",
+ "ctx_type": "Node",
+ "interfaces": {
+ "xe0": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.2",
+ "dst_mac": "90:e2:ba:7c:41:a8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.1",
+ "local_mac": "90:e2:ba:7c:30:e8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_intf": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.2",
+ "local_mac": "90:e2:ba:7c:41:a8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe0",
+ "peer_name": "tg__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:00:06.0"
+ },
+ "peer_name": "vnf__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:81:00.0"
+ },
+ "xe1": {
+ "dpdk_port_num": 1,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.101.2",
+ "dst_mac": "90:e2:ba:7c:41:a9",
+ "ifname": "xe1",
+ "local_ip": "192.168.101.1",
+ "local_mac": "90:e2:ba:7c:30:e9",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_intf": {
+ "dpdk_port_num": 1,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.101.1",
+ "dst_mac": "90:e2:ba:7c:30:e9",
+ "ifname": "xe0",
+ "local_ip": "192.168.101.2",
+ "local_mac": "90:e2:ba:7c:41:a9",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_name": "tg__0",
+ "vld_id": "downlink_0",
+ "vpci": "0000:00:06.0"
+ },
+ "peer_name": "vnf__1",
+ "vld_id": "downlink_0",
+ "vpci": "0000:81:00.1"
+ }
+ },
+ "ip": "10.10.10.10",
+ "member-vnf-index": "1",
+ "name": "trafficgen.yardstick-5486cc2f",
+ "password": "r00t",
+ "port": 22,
+ "role": "TrafficGen",
+ "user": "root",
+ "username": "root",
+ "vnfd-id-ref": "tg__0"
+ },
+ "vnf__0": {
+ "VNF model": "../../vnf_descriptors/vpp_vnfd.yaml",
+ "ctx_type": "Node",
+ "interfaces": {
+ "xe0": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.2",
+ "local_mac": "90:e2:ba:7c:41:a8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe0",
+ "peer_intf": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.2",
+ "dst_mac": "90:e2:ba:7c:41:a8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.1",
+ "local_mac": "90:e2:ba:7c:30:e8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_name": "vnf__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:81:00.0"
+ },
+ "peer_name": "tg__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:00:06.0"
+ },
+ "xe1": {
+ "dpdk_port_num": 1,
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.2",
+ "dst_mac": "0a:b1:ec:fd:a2:66",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.1",
+ "local_mac": "4e:90:85:d3:c5:13",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe1",
+ "peer_intf": {
+ "dpdk_port_num": 1,
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.1",
+ "dst_mac": "4e:90:85:d3:c5:13",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.2",
+ "local_mac": "0a:b1:ec:fd:a2:66",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_name": "vnf__0",
+ "vld_id": "ciphertext",
+ "vpci": "0000:00:07.0"
+ },
+ "peer_name": "vnf__1",
+ "vld_id": "ciphertext",
+ "vpci": "0000:00:07.0"
+ }
+ },
+ "ip": "10.10.10.101",
+ "member-vnf-index": "2",
+ "name": "vnf0.yardstick-5486cc2f",
+ "password": "r00t",
+ "port": 22,
+ "role": "VirtualNetworkFunction",
+ "user": "root",
+ "username": "root",
+ "vnfd-id-ref": "vnf__0"
+ },
+ "vnf__1": {
+ "VNF model": "../../vnf_descriptors/vpp_vnfd.yaml",
+ "ctx_type": "Node",
+ "interfaces": {
+ "xe0": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.101.1",
+ "dst_mac": "90:e2:ba:7c:30:e9",
+ "ifname": "xe0",
+ "local_ip": "192.168.101.2",
+ "local_mac": "90:e2:ba:7c:41:a9",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_intf": {
+ "dpdk_port_num": 1,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.101.2",
+ "dst_mac": "90:e2:ba:7c:41:a9",
+ "ifname": "xe1",
+ "local_ip": "192.168.101.1",
+ "local_mac": "90:e2:ba:7c:30:e9",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_name": "vnf__1",
+ "vld_id": "downlink_0",
+ "vpci": "0000:81:00.1"
+ },
+ "peer_name": "tg__0",
+ "vld_id": "downlink_0",
+ "vpci": "0000:00:06.0"
+ },
+ "xe1": {
+ "dpdk_port_num": 1,
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.1",
+ "dst_mac": "4e:90:85:d3:c5:13",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.2",
+ "local_mac": "0a:b1:ec:fd:a2:66",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_intf": {
+ "dpdk_port_num": 1,
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.2",
+ "dst_mac": "0a:b1:ec:fd:a2:66",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.1",
+ "local_mac": "4e:90:85:d3:c5:13",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe1",
+ "peer_name": "vnf__1",
+ "vld_id": "ciphertext",
+ "vpci": "0000:00:07.0"
+ },
+ "peer_name": "vnf__0",
+ "vld_id": "ciphertext",
+ "vpci": "0000:00:07.0"
+ }
+ },
+ "ip": "10.10.10.102",
+ "member-vnf-index": "3",
+ "name": "vnf1.yardstick-5486cc2f",
+ "password": "r00t",
+ "port": 22,
+ "role": "VirtualNetworkFunction",
+ "user": "root",
+ "username": "root",
+ "vnfd-id-ref": "vnf__1"
+ }
+ }
+ }
+
+ def test___init__(self, *args):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vipsec_vnf = ipsec_vnf.VipsecApproxVnf(NAME, vnfd)
+ self.assertIsNone(vipsec_vnf._vnf_process)
+
+ @mock.patch(SSH_HELPER)
+ def test__run(self, ssh, *args):
+ mock_ssh(ssh)
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vipsec_vnf = ipsec_vnf.VipsecApproxVnf(NAME, vnfd)
+ vipsec_vnf._build_config = mock.MagicMock()
+ vipsec_vnf.setup_helper.kill_vnf = mock.MagicMock()
+ vipsec_vnf.setup_helper.create_ipsec_tunnels = mock.MagicMock()
+ vipsec_vnf.queue_wrapper = mock.MagicMock()
+ vipsec_vnf.scenario_helper.scenario_cfg = self.scenario_cfg
+ vipsec_vnf.vnf_cfg = {'lb_config': 'SW',
+ 'lb_count': 1,
+ 'worker_config': '1C/1T',
+ 'worker_threads': 1}
+ vipsec_vnf.all_options = {'traffic_type': '4',
+ 'topology': 'nsb_test_case.yaml'}
+ vipsec_vnf._run()
+ # vipsec_vnf.setup_helper.ssh_helper.execute.assert_called_once()
+
+ @mock.patch(SSH_HELPER)
+ def test_wait_for_instantiate(self, ssh, *args):
+ mock_ssh(ssh)
+
+ mock_process = mock.Mock(autospec=Process)
+ mock_process.is_alive.return_value = True
+ mock_process.exitcode = 432
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vipsec_vnf = ipsec_vnf.VipsecApproxVnf(NAME, vnfd)
+ vipsec_vnf.resource_helper.resource = mock.MagicMock()
+ vipsec_vnf.setup_helper = mock.MagicMock()
+ vipsec_vnf.setup_helper.check_status.return_value = True
+ vipsec_vnf._vnf_process = mock_process
+ vipsec_vnf.WAIT_TIME = 0
+ self.assertEqual(vipsec_vnf.wait_for_instantiate(), 432)
+
+ @mock.patch(SSH_HELPER)
+ def test_wait_for_instantiate_crash(self, ssh, *args):
+ mock_ssh(ssh)
+
+ mock_process = mock.Mock(autospec=Process)
+ mock_process.is_alive.return_value = False
+ mock_process.exitcode = 432
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vipsec_vnf = ipsec_vnf.VipsecApproxVnf(NAME, vnfd)
+ vipsec_vnf.resource_helper.resource = mock.MagicMock()
+ vipsec_vnf.setup_helper = mock.MagicMock()
+ vipsec_vnf.setup_helper.check_status.return_value = False
+ vipsec_vnf._vnf_process = mock_process
+ vipsec_vnf.WAIT_TIME = 0
+ vipsec_vnf.WAIT_TIME_FOR_SCRIPT = 0
+
+ with self.assertRaises(RuntimeError) as raised:
+ vipsec_vnf.wait_for_instantiate()
+
+ self.assertIn('VNF process died', str(raised.exception))
+
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server',
+ return_value='mock_node')
+ @mock.patch.object(ipsec_vnf.VipsecApproxSetupEnvHelper,
+ 'get_vpp_statistics',
+ return_value={'packets_in': 0, 'packets_fwd': 0,
+ 'packets_dropped': 0})
+ @mock.patch(SSH_HELPER)
+ def test_collect_kpi(self, ssh, *args):
+ mock_ssh(ssh)
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vipsec_vnf = ipsec_vnf.VipsecApproxVnf(NAME, vnfd)
+ vipsec_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {vipsec_vnf.name: "mock"}
+ }
+ result = {
+ 'collect_stats': {'packets_in': 0, 'packets_fwd': 0,
+ 'packets_dropped': 0},
+ 'physical_node': 'mock_node'
+ }
+ self.assertEqual(result, vipsec_vnf.collect_kpi())
+
+ @mock.patch.object(utils, 'find_relative_file')
+ @mock.patch(
+ "yardstick.network_services.vnf_generic.vnf.sample_vnf.Context")
+ @mock.patch(SSH_HELPER)
+ def test_instantiate(self, ssh, *args):
+ mock_ssh(ssh)
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vipsec_vnf = ipsec_vnf.VipsecApproxVnf(NAME, vnfd)
+ vipsec_vnf.deploy_helper = mock.MagicMock()
+ vipsec_vnf.resource_helper = mock.MagicMock()
+ vipsec_vnf._build_config = mock.MagicMock()
+ vipsec_vnf.WAIT_TIME = 0
+ self.scenario_cfg.update({"nodes": {"vnf__1": ""}})
+ self.assertIsNone(vipsec_vnf.instantiate(self.scenario_cfg,
+ self.context_cfg))
+
+ @mock.patch.object(ipsec_vnf.VipsecApproxSetupEnvHelper, 'kill_vnf',
+ return_value='')
+ @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
+ @mock.patch(SSH_HELPER)
+ def test_terminate(self, ssh, *args):
+ mock_ssh(ssh)
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vipsec_vnf = ipsec_vnf.VipsecApproxVnf(NAME, vnfd)
+ vipsec_vnf._vnf_process = mock.MagicMock()
+ vipsec_vnf._vnf_process.terminate = mock.Mock()
+ self.assertIsNone(vipsec_vnf.terminate())
+
+
+class TestVipsecApproxSetupEnvHelper(unittest.TestCase):
+ ALL_OPTIONS = {
+ "flow": {
+ "count": 1,
+ "dst_ip": [
+ "20.0.0.0-20.0.0.100"
+ ],
+ "src_ip": [
+ "10.0.0.0-10.0.0.100"
+ ]
+ },
+ "framesize": {
+ "downlink": {
+ "64B": 100
+ },
+ "uplink": {
+ "64B": 100
+ }
+ },
+ "rfc2544": {
+ "allowed_drop_rate": "0.0 - 0.005"
+ },
+ "tg__0": {
+ "collectd": {
+ "interval": 1
+ },
+ "queues_per_port": 7
+ },
+ "traffic_type": 4,
+ "vnf__0": {
+ "collectd": {
+ "interval": 1
+ },
+ "vnf_config": {
+ "crypto_type": "SW_cryptodev",
+ "rxq": 1,
+ "worker_config": "1C/1T",
+ "worker_threads": 4
+ }
+ },
+ "vnf__1": {
+ "collectd": {
+ "interval": 1
+ },
+ "vnf_config": {
+ "crypto_type": "SW_cryptodev",
+ "rxq": 1,
+ "worker_config": "1C/1T",
+ "worker_threads": 4
+ }
+ },
+ "vpp_config": {
+ "crypto_algorithms": "aes-gcm",
+ "tunnel": 1
+ }
+ }
+
+ ALL_OPTIONS_CBC_ALGORITHMS = {
+ "flow": {
+ "count": 1,
+ "dst_ip": [
+ "20.0.0.0-20.0.0.100"
+ ],
+ "src_ip": [
+ "10.0.0.0-10.0.0.100"
+ ]
+ },
+ "framesize": {
+ "downlink": {
+ "64B": 100
+ },
+ "uplink": {
+ "64B": 100
+ }
+ },
+ "rfc2544": {
+ "allowed_drop_rate": "0.0 - 0.005"
+ },
+ "tg__0": {
+ "collectd": {
+ "interval": 1
+ },
+ "queues_per_port": 7
+ },
+ "traffic_type": 4,
+ "vnf__0": {
+ "collectd": {
+ "interval": 1
+ },
+ "vnf_config": {
+ "crypto_type": "SW_cryptodev",
+ "rxq": 1,
+ "worker_config": "1C/1T",
+ "worker_threads": 4
+ }
+ },
+ "vnf__1": {
+ "collectd": {
+ "interval": 1
+ },
+ "vnf_config": {
+ "crypto_type": "SW_cryptodev",
+ "rxq": 1,
+ "worker_config": "1C/1T",
+ "worker_threads": 4
+ }
+ },
+ "vpp_config": {
+ "crypto_algorithms": "cbc-sha1",
+ "tunnel": 1
+ }
+ }
+
+ ALL_OPTIONS_ERROR = {
+ "flow_error": {
+ "count": 1,
+ "dst_ip": [
+ "20.0.0.0-20.0.0.100"
+ ],
+ "src_ip": [
+ "10.0.0.0-10.0.0.100"
+ ]
+ },
+ "framesize": {
+ "downlink": {
+ "64B": 100
+ },
+ "uplink": {
+ "64B": 100
+ }
+ },
+ "rfc2544": {
+ "allowed_drop_rate": "0.0 - 0.005"
+ },
+ "tg__0": {
+ "collectd": {
+ "interval": 1
+ },
+ "queues_per_port": 7
+ },
+ "traffic_type": 4,
+ "vnf__0": {
+ "collectd": {
+ "interval": 1
+ },
+ "vnf_config": {
+ "crypto_type": "SW_cryptodev",
+ "rxq": 1,
+ "worker_config": "1C/1T",
+ "worker_threads": 4
+ }
+ },
+ "vnf__1": {
+ "collectd": {
+ "interval": 1
+ },
+ "vnf_config": {
+ "crypto_type": "SW_cryptodev",
+ "rxq": 1,
+ "worker_config": "1C/1T",
+ "worker_threads": 4
+ }
+ },
+ "vpp_config": {
+ "crypto_algorithms": "aes-gcm",
+ "tunnel": 1
+ }
+ }
+
+ OPTIONS = {
+ "collectd": {
+ "interval": 1
+ },
+ "vnf_config": {
+ "crypto_type": "SW_cryptodev",
+ "rxq": 1,
+ "worker_config": "1C/1T",
+ "worker_threads": 4
+ }
+ }
+
+ OPTIONS_HW = {
+ "collectd": {
+ "interval": 1
+ },
+ "vnf_config": {
+ "crypto_type": "HW_cryptodev",
+ "rxq": 1,
+ "worker_config": "1C/1T",
+ "worker_threads": 4
+ }
+ }
+
+ CPU_LAYOUT = {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 0, 0, 0, 0, 1, 1, 0],
+ [2, 1, 0, 0, 0, 2, 2, 1],
+ [3, 1, 0, 0, 0, 3, 3, 1],
+ [4, 2, 0, 0, 0, 4, 4, 2],
+ [5, 2, 0, 0, 0, 5, 5, 2],
+ [6, 3, 0, 0, 0, 6, 6, 3],
+ [7, 3, 0, 0, 0, 7, 7, 3],
+ [8, 4, 0, 0, 0, 8, 8, 4],
+ [9, 5, 0, 1, 0, 9, 9, 4],
+ [10, 6, 0, 1, 0, 10, 10, 5],
+ [11, 6, 0, 1, 0, 11, 11, 5],
+ [12, 7, 0, 1, 0, 12, 12, 6],
+ [13, 7, 0, 1, 0, 13, 13, 6],
+ [14, 8, 0, 1, 0, 14, 14, 7],
+ [15, 8, 0, 1, 0, 15, 15, 7],
+ [16, 9, 0, 1, 0, 16, 16, 8],
+ [17, 9, 0, 1, 0, 17, 17, 8]]}
+ CPU_SMT = {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 0, 0, 0, 0, 1, 1, 0],
+ [2, 1, 0, 0, 0, 2, 2, 1],
+ [3, 1, 0, 0, 0, 3, 3, 1],
+ [4, 2, 0, 0, 0, 4, 4, 2],
+ [5, 2, 0, 0, 0, 5, 5, 2],
+ [6, 3, 0, 0, 0, 6, 6, 3],
+ [7, 3, 0, 0, 0, 7, 7, 3],
+ [8, 4, 0, 0, 0, 8, 8, 4],
+ [9, 5, 0, 1, 0, 0, 0, 0],
+ [10, 6, 0, 1, 0, 1, 1, 0],
+ [11, 6, 0, 1, 0, 2, 2, 1],
+ [12, 7, 0, 1, 0, 3, 3, 1],
+ [13, 7, 0, 1, 0, 4, 4, 2],
+ [14, 8, 0, 1, 0, 5, 5, 2],
+ [15, 8, 0, 1, 0, 6, 6, 3],
+ [16, 9, 0, 1, 0, 7, 7, 3],
+ [17, 9, 0, 1, 0, 8, 8, 4]]}
+
+ VPP_INTERFACES_DUMP = [
+ {
+ "sw_if_index": 0,
+ "sup_sw_if_index": 0,
+ "l2_address_length": 0,
+ "l2_address": [0, 0, 0, 0, 0, 0, 0, 0],
+ "interface_name": "local0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 0,
+ "link_speed": 0,
+ "mtu": 0,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ },
+ {
+ "sw_if_index": 1,
+ "sup_sw_if_index": 1,
+ "l2_address_length": 6,
+ "l2_address": [144, 226, 186, 124, 65, 168, 0, 0],
+ "interface_name": "TenGigabitEthernetff/6/0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 2,
+ "link_speed": 32,
+ "mtu": 9202,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ },
+ {
+ "sw_if_index": 2,
+ "sup_sw_if_index": 2,
+ "l2_address_length": 6,
+ "l2_address": [78, 144, 133, 211, 197, 19, 0, 0],
+ "interface_name": "VirtualFunctionEthernetff/7/0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 2,
+ "link_speed": 32,
+ "mtu": 9206,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ }
+ ]
+
+ VPP_INTERFACES_STATUS = \
+ ' Name Idx State MTU (L3/IP4/IP6/MPLS)' \
+ 'Counter Count \n' \
+ 'TenGigabitEthernetff/6/0 1 up 9000/0/0/0 \n' \
+ 'VirtualFunctionEthernetff/7/0 2 up 9000/0/0/0 \n' \
+ 'ipsec0 2 up 9000/0/0/0 \n' \
+ 'local0 0 down 0/0/0/0 '
+
+ VPP_INTERFACES_STATUS_FALSE = \
+ ' Name Idx State MTU (L3/IP4/IP6/MPLS)' \
+ 'Counter Count \n' \
+ 'TenGigabitEthernetff/6/0 1 down 9000/0/0/0 \n' \
+ 'VirtualFunctionEthernetff/7/0 2 down 9000/0/0/0 \n' \
+ 'ipsec0 2 down 9000/0/0/0 \n' \
+ 'local0 0 down 0/0/0/0 '
+
+ def test__get_crypto_type(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual('SW_cryptodev',
+ ipsec_approx_setup_helper._get_crypto_type())
+
+ def test__get_crypto_algorithms(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual('aes-gcm',
+ ipsec_approx_setup_helper._get_crypto_algorithms())
+
+ def test__get_n_tunnels(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual(1, ipsec_approx_setup_helper._get_n_tunnels())
+
+ def test__get_n_connections(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual(1, ipsec_approx_setup_helper._get_n_connections())
+
+ def test__get_n_connections_error(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.all_options = self.ALL_OPTIONS_ERROR
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ with self.assertRaises(KeyError) as raised:
+ ipsec_approx_setup_helper._get_n_connections()
+ self.assertIn(
+ 'Missing flow definition in scenario section of the task definition file',
+ str(raised.exception))
+
+ def test__get_flow_src_start_ip(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual('10.0.0.0',
+ ipsec_approx_setup_helper._get_flow_src_start_ip())
+
+ def test__get_flow_src_start_ip_vnf1(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD_ERROR['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual('20.0.0.0',
+ ipsec_approx_setup_helper._get_flow_src_start_ip())
+
+ def test__get_flow_src_start_ip_error(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.all_options = self.ALL_OPTIONS_ERROR
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ with self.assertRaises(KeyError) as raised:
+ ipsec_approx_setup_helper._get_flow_src_start_ip()
+ self.assertIn(
+ 'Missing flow definition in scenario section of the task definition file',
+ str(raised.exception))
+
+ def test__get_flow_dst_start_ip(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual('20.0.0.0',
+ ipsec_approx_setup_helper._get_flow_dst_start_ip())
+
+ def test__get_flow_dst_start_ip_vnf1(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD_ERROR['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual('10.0.0.0',
+ ipsec_approx_setup_helper._get_flow_dst_start_ip())
+
+ def test__get_flow_dst_start_ip_error(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.all_options = self.ALL_OPTIONS_ERROR
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ with self.assertRaises(KeyError) as raised:
+ ipsec_approx_setup_helper._get_flow_dst_start_ip()
+ self.assertIn(
+ 'Missing flow definition in scenario section of the task definition file',
+ str(raised.exception))
+
+ def test_build_config(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ ipsec_approx_setup_helper.sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper.sys_cores.cpuinfo = self.CPU_LAYOUT
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ ipsec_approx_setup_helper.sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(ipsec_approx_setup_helper.build_config())
+ self.assertEqual(0,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'numa_node'))
+ self.assertEqual('TenGigabitEthernetff/6/0',
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'vpp_name'))
+ self.assertEqual(1,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'vpp_sw_index'))
+ self.assertEqual(0,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'numa_node'))
+ self.assertEqual('VirtualFunctionEthernetff/7/0',
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'vpp_name'))
+ self.assertEqual(2,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'vpp_sw_index'))
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 4)
+
+ def test_build_config_cbc_algorithms(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS_CBC_ALGORITHMS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ ipsec_approx_setup_helper.sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper.sys_cores.cpuinfo = self.CPU_LAYOUT
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ ipsec_approx_setup_helper.sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(ipsec_approx_setup_helper.build_config())
+ self.assertEqual(0,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'numa_node'))
+ self.assertEqual('TenGigabitEthernetff/6/0',
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'vpp_name'))
+ self.assertEqual(1,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'vpp_sw_index'))
+ self.assertEqual(0,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'numa_node'))
+ self.assertEqual('VirtualFunctionEthernetff/7/0',
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'vpp_name'))
+ self.assertEqual(2,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'vpp_sw_index'))
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 4)
+
+ @mock.patch.object(utils, 'setup_hugepages')
+ def test_setup_vnf_environment(self, *args):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.nodes = [None, None]
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ self.assertIsInstance(
+ ipsec_approx_setup_helper.setup_vnf_environment(),
+ ResourceProfile)
+ self.assertEqual(0,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'numa_node'))
+ self.assertEqual('TenGigabitEthernetff/6/0',
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'vpp_name'))
+ self.assertEqual(1,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'vpp_sw_index'))
+ self.assertEqual(0,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'numa_node'))
+ self.assertEqual('VirtualFunctionEthernetff/7/0',
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'vpp_name'))
+ self.assertEqual(2,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'vpp_sw_index'))
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 4)
+
+ @mock.patch.object(utils, 'setup_hugepages')
+ def test_setup_vnf_environment_hw(self, *args):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.nodes = [None, None]
+ scenario_helper.options = self.OPTIONS_HW
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ self.assertIsInstance(
+ ipsec_approx_setup_helper.setup_vnf_environment(),
+ ResourceProfile)
+ self.assertEqual(0,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'numa_node'))
+ self.assertEqual('TenGigabitEthernetff/6/0',
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'vpp_name'))
+ self.assertEqual(1,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe0', 'vpp_sw_index'))
+ self.assertEqual(0,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'numa_node'))
+ self.assertEqual('VirtualFunctionEthernetff/7/0',
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'vpp_name'))
+ self.assertEqual(2,
+ ipsec_approx_setup_helper.get_value_by_interface_key(
+ 'xe1', 'vpp_sw_index'))
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 4)
+
+ def test_calculate_frame_size(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual(16984 / 48,
+ ipsec_approx_setup_helper.calculate_frame_size(
+ {'64B': 28, '570B': 16, '1518B': 4}))
+
+ def test_calculate_frame_size_64(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual(64,
+ ipsec_approx_setup_helper.calculate_frame_size({}))
+
+ def test_calculate_frame_size_64_error(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual(64,
+ ipsec_approx_setup_helper.calculate_frame_size(
+ {'64B': -28, '570B': 16, '1518B': 4}))
+
+ def test_check_status(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, self.VPP_INTERFACES_STATUS, ''
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertTrue(ipsec_approx_setup_helper.check_status())
+
+ def test_check_status_false(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, self.VPP_INTERFACES_STATUS_FALSE, ''
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertFalse(ipsec_approx_setup_helper.check_status())
+
+ def test_get_vpp_statistics(self):
+ def execute(cmd):
+ if 'TenGigabitEthernetff/6/0' in cmd:
+ return 0, output_xe0, ''
+ elif 'VirtualFunctionEthernetff/7/0' in cmd:
+ return 0, output_xe1, ''
+ return 0, '0', ''
+
+ output_xe0 = \
+ ' Name Idx State MTU (L3/IP4/IP6/MPLS)' \
+ ' Counter Count \n' \
+ 'TenGigabitEthernetff/6/0 1 up 9200/0/0/0 ' \
+ 'rx packets 23373568\n' \
+ ' ' \
+ 'rx bytes 1402414080\n' \
+ ' ' \
+ 'tx packets 20476416\n' \
+ ' ' \
+ 'tx bytes 1228584960\n' \
+ ' ' \
+ 'ip4 23373568\n' \
+ ' ' \
+ 'rx-miss 27789925'
+ output_xe1 = \
+ ' Name Idx State MTU (L3/IP4/IP6/MPLS)' \
+ ' Counter Count \n' \
+ 'VirtualFunctionEthernetff/7/0 2 up 9200/0/0/0 ' \
+ 'rx packets 23373568\n' \
+ ' ' \
+ 'rx bytes 1402414080\n' \
+ ' ' \
+ 'tx packets 20476416\n' \
+ ' ' \
+ 'tx bytes 1228584960\n' \
+ ' ' \
+ 'ip4 23373568\n' \
+ ' ' \
+ 'rx-miss 27789925'
+
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute = execute
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertEqual({'xe0': {'packets_dropped': 27789925,
+ 'packets_fwd': 20476416,
+ 'packets_in': 23373568},
+ 'xe1': {'packets_dropped': 27789925,
+ 'packets_fwd': 20476416,
+ 'packets_in': 23373568}},
+ ipsec_approx_setup_helper.get_vpp_statistics())
+
+ def test_parser_vpp_stats(self):
+ output = \
+ ' Name Idx State MTU (L3/IP4/IP6/MPLS)' \
+ 'Counter Count \n' \
+ 'TenGigabitEthernetff/6/0 1 up 9200/0/0/0 ' \
+ 'rx packets 23373568\n' \
+ ' ' \
+ 'rx bytes 1402414080\n' \
+ ' ' \
+ 'tx packets 20476416\n' \
+ ' ' \
+ 'tx bytes 1228584960\n' \
+ ' ' \
+ 'ip4 23373568\n' \
+ ' ' \
+ 'rx-miss 27789925'
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual({'xe0': {'packets_dropped': 27789925,
+ 'packets_fwd': 20476416,
+ 'packets_in': 23373568}},
+ ipsec_approx_setup_helper.parser_vpp_stats('xe0',
+ 'TenGigabitEthernetff/6/0',
+ output))
+
+ def test_parser_vpp_stats_no_miss(self):
+ output = \
+ ' Name Idx State ' \
+ 'Counter Count \n' \
+ 'TenGigabitEthernetff/6/0 1 up ' \
+ 'rx packets 23373568\n' \
+ ' ' \
+ 'rx bytes 1402414080\n' \
+ ' ' \
+ 'tx packets 20476416\n' \
+ ' ' \
+ 'tx bytes 1228584960\n' \
+ ' ' \
+ 'ip4 23373568'
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual({'xe0': {'packets_dropped': 2897152,
+ 'packets_fwd': 20476416,
+ 'packets_in': 23373568}},
+ ipsec_approx_setup_helper.parser_vpp_stats('xe0',
+ 'TenGigabitEthernetff/6/0',
+ output))
+
+ def test_create_ipsec_tunnels(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out, \
+ mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'vpp_get_interface_data') as \
+ mock_ipsec_approx_setup_helper:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ mock_vat_terminal_exec_cmd_from_template.return_value = self.VPP_INTERFACES_DUMP
+ mock_ipsec_approx_setup_helper.return_value = self.VPP_INTERFACES_DUMP
+ sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(ipsec_approx_setup_helper.create_ipsec_tunnels())
+ self.assertGreaterEqual(
+ mock_vat_terminal_exec_cmd_from_template.call_count, 9)
+
+ def test_create_ipsec_tunnels_cbc_algorithms(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS_CBC_ALGORITHMS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'find_encrypted_data_interface') as \
+ mock_find_encrypted_data_interface, \
+ mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'vpp_get_interface_data') as \
+ mock_ipsec_approx_setup_helper:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ mock_find_encrypted_data_interface.return_value = {
+ 'dpdk_port_num': 0,
+ 'driver': 'igb_uio',
+ 'dst_ip': '192.168.100.1',
+ 'dst_mac': '90:e2:ba:7c:30:e8',
+ 'ifname': 'xe0',
+ 'local_ip': '192.168.100.2',
+ 'local_mac': '90:e2:ba:7c:41:a8',
+ 'netmask': '255.255.255.0',
+ 'network': {},
+ 'node_name': 'vnf__1',
+ 'numa_node': 0,
+ 'peer_ifname': 'xe0',
+ 'peer_intf': {'dpdk_port_num': 0,
+ 'driver': 'igb_uio',
+ 'dst_ip': '192.168.100.2',
+ 'dst_mac': '90:e2:ba:7c:41:a8',
+ 'ifname': 'xe0',
+ 'local_ip': '192.168.100.1',
+ 'local_mac': '90:e2:ba:7c:30:e8',
+ 'netmask': '255.255.255.0',
+ 'network': {},
+ 'node_name': 'tg__0',
+ 'peer_ifname': 'xe0',
+ 'peer_name': 'vnf__0',
+ 'vld_id': 'uplink_0',
+ 'vpci': '0000:81:00.0'},
+ 'peer_name': 'tg__0',
+ 'vld_id': 'uplink_0',
+ 'vpci': '0000:ff:06.0',
+ 'vpp_name': u'TenGigabitEthernetff/6/0',
+ 'vpp_sw_index': 1}
+ mock_vat_terminal_exec_cmd_from_template.return_value = self.VPP_INTERFACES_DUMP
+ mock_ipsec_approx_setup_helper.return_value = self.VPP_INTERFACES_DUMP
+ sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(ipsec_approx_setup_helper.create_ipsec_tunnels())
+ self.assertGreaterEqual(
+ mock_vat_terminal_exec_cmd_from_template.call_count, 9)
+
+ def test_find_raw_data_interface(self):
+ expected = {'dpdk_port_num': 0,
+ 'driver': 'igb_uio',
+ 'dst_ip': '192.168.100.1',
+ 'dst_mac': '90:e2:ba:7c:30:e8',
+ 'ifname': 'xe0',
+ 'local_ip': '192.168.100.2',
+ 'local_mac': '90:e2:ba:7c:41:a8',
+ 'netmask': '255.255.255.0',
+ 'network': {},
+ 'node_name': 'vnf__0',
+ 'numa_node': 0,
+ 'peer_ifname': 'xe0',
+ 'peer_intf': {'dpdk_port_num': 0,
+ 'driver': 'igb_uio',
+ 'dst_ip': '192.168.100.2',
+ 'dst_mac': '90:e2:ba:7c:41:a8',
+ 'ifname': 'xe0',
+ 'local_ip': '192.168.100.1',
+ 'local_mac': '90:e2:ba:7c:30:e8',
+ 'netmask': '255.255.255.0',
+ 'network': {},
+ 'node_name': 'tg__0',
+ 'peer_ifname': 'xe0',
+ 'peer_name': 'vnf__0',
+ 'vld_id': 'uplink_0',
+ 'vpci': '0000:81:00.0'},
+ 'peer_name': 'tg__0',
+ 'vld_id': 'uplink_0',
+ 'vpci': '0000:ff:06.0',
+ 'vpp_name': u'TenGigabitEthernetff/6/0',
+ 'vpp_sw_index': 1}
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual(expected,
+ ipsec_approx_setup_helper.find_raw_data_interface())
+
+ def test_find_raw_data_interface_error(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD_ERROR['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ with self.assertRaises(KeyError):
+ ipsec_approx_setup_helper.find_raw_data_interface()
+
+ def test_find_encrypted_data_interface(self):
+ expected = {'dpdk_port_num': 1,
+ 'driver': 'igb_uio',
+ 'dst_ip': '1.1.1.2',
+ 'dst_mac': '0a:b1:ec:fd:a2:66',
+ 'ifname': 'xe1',
+ 'local_ip': '1.1.1.1',
+ 'local_mac': '4e:90:85:d3:c5:13',
+ 'netmask': '255.255.255.0',
+ 'network': {},
+ 'node_name': 'vnf__0',
+ 'numa_node': 0,
+ 'peer_ifname': 'xe1',
+ 'peer_intf': {'driver': 'igb_uio',
+ 'dst_ip': '1.1.1.1',
+ 'dst_mac': '4e:90:85:d3:c5:13',
+ 'ifname': 'xe1',
+ 'local_ip': '1.1.1.2',
+ 'local_mac': '0a:b1:ec:fd:a2:66',
+ 'netmask': '255.255.255.0',
+ 'network': {},
+ 'node_name': 'vnf__1',
+ 'peer_ifname': 'xe1',
+ 'peer_name': 'vnf__0',
+ 'vld_id': 'ciphertext',
+ 'vpci': '0000:00:07.0'},
+ 'peer_name': 'vnf__1',
+ 'vld_id': 'ciphertext',
+ 'vpci': '0000:ff:07.0',
+ 'vpp_name': u'VirtualFunctionEthernetff/7/0',
+ 'vpp_sw_index': 2}
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+ self.assertEqual(expected,
+ ipsec_approx_setup_helper.find_encrypted_data_interface())
+
+ def test_create_startup_configuration_of_vpp(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsInstance(
+ ipsec_approx_setup_helper.create_startup_configuration_of_vpp(),
+ vpp_helpers.VppConfigGenerator)
+
+ def test_add_worker_threads_and_rxqueues(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+ vpp_config_generator = vpp_helpers.VppConfigGenerator()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ ipsec_approx_setup_helper.sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper.sys_cores.cpuinfo = self.CPU_LAYOUT
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ ipsec_approx_setup_helper.sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(
+ ipsec_approx_setup_helper.add_worker_threads_and_rxqueues(
+ vpp_config_generator, 1, 1))
+ self.assertEqual(
+ 'cpu\n{\n corelist-workers 2\n main-core 1\n}\ndpdk\n{\n ' \
+ 'dev default\n {\n num-rx-queues 1\n }\n num-mbufs 32768\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_worker_threads_and_rxqueues_smt(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+ vpp_config_generator = vpp_helpers.VppConfigGenerator()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_SMT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ ipsec_approx_setup_helper.sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper.sys_cores.cpuinfo = self.CPU_SMT
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ ipsec_approx_setup_helper.sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(
+ ipsec_approx_setup_helper.add_worker_threads_and_rxqueues(
+ vpp_config_generator, 1))
+ self.assertEqual(
+ 'cpu\n{\n corelist-workers 2,6\n main-core 1\n}\ndpdk\n{\n ' \
+ 'dev default\n {\n num-rx-queues 1\n }\n num-mbufs 32768\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_worker_threads_and_rxqueues_with_numa(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+ vpp_config_generator = vpp_helpers.VppConfigGenerator()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ ipsec_approx_setup_helper.sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper.sys_cores.cpuinfo = self.CPU_LAYOUT
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ ipsec_approx_setup_helper.sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(
+ ipsec_approx_setup_helper.add_worker_threads_and_rxqueues(
+ vpp_config_generator, 1, 1))
+ self.assertEqual(
+ 'cpu\n{\n corelist-workers 2\n main-core 1\n}\ndpdk\n{\n ' \
+ 'dev default\n {\n num-rx-queues 1\n }\n num-mbufs 32768\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_pci_devices(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+ vpp_config_generator = vpp_helpers.VppConfigGenerator()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(ipsec_approx_setup_helper.add_pci_devices(
+ vpp_config_generator))
+ self.assertEqual(
+ 'dpdk\n{\n dev 0000:ff:06.0 \n dev 0000:ff:07.0 \n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_cryptodev(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+ vpp_config_generator = vpp_helpers.VppConfigGenerator()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ ipsec_approx_setup_helper.sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper.sys_cores.cpuinfo = self.CPU_LAYOUT
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ ipsec_approx_setup_helper.sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(ipsec_approx_setup_helper.add_dpdk_cryptodev(
+ vpp_config_generator, 'aesni_gcm', 1))
+ self.assertEqual(
+ 'dpdk\n{\n vdev cryptodev_aesni_gcm_pmd,socket_id=0 \n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_cryptodev_hw(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS_HW
+ scenario_helper.all_options = self.ALL_OPTIONS
+ vpp_config_generator = vpp_helpers.VppConfigGenerator()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ ipsec_approx_setup_helper.sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper.sys_cores.cpuinfo = self.CPU_LAYOUT
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ ipsec_approx_setup_helper.sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(ipsec_approx_setup_helper.add_dpdk_cryptodev(
+ vpp_config_generator, 'aesni_gcm', 1))
+ self.assertEqual(
+ 'dpdk\n{\n dev 0000:ff:01.0 \n uio-driver igb_uio\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_cryptodev_smt_used(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+ vpp_config_generator = vpp_helpers.VppConfigGenerator()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out:
+ mock_get_cpu_layout.return_value = self.CPU_SMT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ ipsec_approx_setup_helper.sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper.sys_cores.cpuinfo = self.CPU_LAYOUT
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ ipsec_approx_setup_helper.sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(ipsec_approx_setup_helper.add_dpdk_cryptodev(
+ vpp_config_generator, 'aesni_gcm', 1))
+ self.assertEqual(
+ 'dpdk\n{\n vdev cryptodev_aesni_gcm_pmd,socket_id=0 \n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_cryptodev_smt_used_hw(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS_HW
+ scenario_helper.all_options = self.ALL_OPTIONS
+ vpp_config_generator = vpp_helpers.VppConfigGenerator()
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout:
+ mock_get_cpu_layout.return_value = self.CPU_SMT
+ ipsec_approx_setup_helper.sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper.sys_cores.cpuinfo = self.CPU_SMT
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ ipsec_approx_setup_helper.sys_cores.get_cpu_layout())
+ self.assertIsNone(ipsec_approx_setup_helper.add_dpdk_cryptodev(
+ vpp_config_generator, 'aesni_gcm', 1))
+ self.assertEqual(
+ 'dpdk\n{\n dev 0000:ff:01.0 \n dev 0000:ff:01.1 \n uio-driver igb_uio\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_initialize_ipsec(self):
+ vnfd_helper = VnfdHelper(
+ TestVipsecApproxVnf.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+ scenario_helper.all_options = self.ALL_OPTIONS
+
+ ipsec_approx_setup_helper = VipsecApproxSetupEnvHelper(vnfd_helper,
+ ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'execute_script_json_out') as \
+ mock_execute_script_json_out, \
+ mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template, \
+ mock.patch.object(ipsec_approx_setup_helper,
+ 'vpp_get_interface_data') as \
+ mock_ipsec_approx_setup_helper:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ mock_execute_script_json_out.return_value = str(
+ self.VPP_INTERFACES_DUMP).replace("\'", "\"")
+ mock_vat_terminal_exec_cmd_from_template.return_value = ''
+ mock_ipsec_approx_setup_helper.return_value = self.VPP_INTERFACES_DUMP
+ sys_cores = cpu.CpuSysCores(ssh_helper)
+ ipsec_approx_setup_helper._update_vnfd_helper(
+ sys_cores.get_cpu_layout())
+ ipsec_approx_setup_helper.update_vpp_interface_data()
+ ipsec_approx_setup_helper.iface_update_numa()
+ self.assertIsNone(ipsec_approx_setup_helper.initialize_ipsec())
+ self.assertGreaterEqual(
+ mock_vat_terminal_exec_cmd_from_template.call_count, 9)
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py
index ed49c7000..32f384027 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_helpers.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,47 +11,30 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
from itertools import repeat, chain
-import mock
import os
import socket
import time
+
+import mock
import unittest
-from tests.unit import STL_MOCKS
-from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import ScenarioHelper
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxSocketHelper
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import PacketDump
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import CoreSocketTuple
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxTestDataTuple
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxDpdkVnfSetupEnvHelper
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import TotStatsTuple
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxDataHelper
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxResourceHelper
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxProfileHelper
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxMplsProfileHelper
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxBngProfileHelper
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxVpeProfileHelper
- from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxlwAFTRProfileHelper
+from yardstick.common import utils
+from yardstick.network_services import constants
+from yardstick.network_services.vnf_generic.vnf import base as vnf_base
+from yardstick.network_services.vnf_generic.vnf import prox_helpers
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
class TestCoreTuple(unittest.TestCase):
def test___init__(self):
- core_tuple = CoreSocketTuple('core 5s6')
+ core_tuple = prox_helpers.CoreSocketTuple('core 5s6')
self.assertEqual(core_tuple.core_id, 5)
self.assertEqual(core_tuple.socket_id, 6)
self.assertFalse(core_tuple.is_hyperthread())
- core_tuple = CoreSocketTuple('core 5s6h')
+ core_tuple = prox_helpers.CoreSocketTuple('core 5s6h')
self.assertEqual(core_tuple.core_id, 5)
self.assertEqual(core_tuple.socket_id, 6)
self.assertTrue(core_tuple.is_hyperthread())
@@ -81,7 +62,7 @@ class TestCoreTuple(unittest.TestCase):
for bad_input in bad_inputs:
with self.assertRaises(ValueError):
- CoreSocketTuple(bad_input)
+ prox_helpers.CoreSocketTuple(bad_input)
def test_find_in_topology(self):
topology_in = {
@@ -93,20 +74,20 @@ class TestCoreTuple(unittest.TestCase):
},
}
- core_tuple = CoreSocketTuple('core 5s6')
+ core_tuple = prox_helpers.CoreSocketTuple('core 5s6')
expected = 'a'
result = core_tuple.find_in_topology(topology_in)
self.assertEqual(result, expected)
- core_tuple = CoreSocketTuple('core 5s6h')
+ core_tuple = prox_helpers.CoreSocketTuple('core 5s6h')
expected = 'c'
result = core_tuple.find_in_topology(topology_in)
self.assertEqual(result, expected)
def test_find_in_topology_negative(self):
- core_tuple = CoreSocketTuple('core 6s5')
+ core_tuple = prox_helpers.CoreSocketTuple('core 6s5')
with self.assertRaises(ValueError):
# no socket key
core_tuple.find_in_topology({})
@@ -119,7 +100,7 @@ class TestCoreTuple(unittest.TestCase):
# no first value (as needed by non-hyperthread core)
core_tuple.find_in_topology({5: {6: {'key1': []}}})
- core_tuple = CoreSocketTuple('core 6s5h')
+ core_tuple = prox_helpers.CoreSocketTuple('core 6s5h')
with self.assertRaises(ValueError):
# no second value (as needed by hyperthread core)
core_tuple.find_in_topology({5: {6: {'key1': ['e']}}})
@@ -129,20 +110,21 @@ class TestTotStatsTuple(unittest.TestCase):
def test___new___negative(self):
with self.assertRaises(TypeError):
# no values
- TotStatsTuple()
+ prox_helpers.TotStatsTuple()
with self.assertRaises(TypeError):
# one, non-integer value
- TotStatsTuple('a')
+ prox_helpers.TotStatsTuple('a')
with self.assertRaises(TypeError):
# too many values
- TotStatsTuple(3, 4, 5, 6, 7)
+ prox_helpers.TotStatsTuple(3, 4, 5, 6, 7)
class TestProxTestDataTuple(unittest.TestCase):
def test___init__(self):
- prox_test_data = ProxTestDataTuple(1, 2, 3, 4, 5, 6, 7, 8, 9)
+ prox_test_data = prox_helpers.ProxTestDataTuple(
+ 1, 2, 3, 4, 5, 6, 7, 8, 9)
self.assertEqual(prox_test_data.tolerated, 1)
self.assertEqual(prox_test_data.tsc_hz, 2)
self.assertEqual(prox_test_data.delta_rx, 3)
@@ -151,32 +133,37 @@ class TestProxTestDataTuple(unittest.TestCase):
self.assertEqual(prox_test_data.latency, 6)
self.assertEqual(prox_test_data.rx_total, 7)
self.assertEqual(prox_test_data.tx_total, 8)
- self.assertEqual(prox_test_data.pps, 9)
+ self.assertEqual(prox_test_data.requested_pps, 9)
def test_properties(self):
- prox_test_data = ProxTestDataTuple(1, 2, 3, 4, 5, 6, 7, 8, 9)
+ prox_test_data = prox_helpers.ProxTestDataTuple(
+ 1, 2, 3, 4, 5, 6, 7, 8, 9)
self.assertEqual(prox_test_data.pkt_loss, 12.5)
- self.assertEqual(prox_test_data.mpps, 1.6 / 1e6)
+ self.assertEqual(prox_test_data.tx_mpps, 1.6 / 1e6)
self.assertEqual(prox_test_data.can_be_lost, 0)
self.assertEqual(prox_test_data.drop_total, 1)
self.assertFalse(prox_test_data.success)
- prox_test_data = ProxTestDataTuple(10, 2, 3, 4, 5, 6, 997, 998, 9)
+ prox_test_data = prox_helpers.ProxTestDataTuple(
+ 10, 2, 3, 4, 5, 6, 997, 998, 9)
self.assertTrue(prox_test_data.success)
def test_pkt_loss_zero_division(self):
- prox_test_data = ProxTestDataTuple(1, 2, 3, 4, 5, 6, 7, 0, 9)
+ prox_test_data = prox_helpers.ProxTestDataTuple(
+ 1, 2, 3, 4, 5, 6, 7, 0, 9)
self.assertEqual(prox_test_data.pkt_loss, 100.0)
def test_get_samples(self):
- prox_test_data = ProxTestDataTuple(1, 2, 3, 4, 5, [6.1, 6.9, 6.4], 7, 8, 9)
+ prox_test_data = prox_helpers.ProxTestDataTuple(
+ 1, 2, 3, 4, 5, [6.1, 6.9, 6.4], 7, 8, 9)
expected = {
- "Throughput": 1.6 / 1e6,
+ "Throughput": 1.2 / 1e6,
"DropPackets": 12.5,
"CurrentDropPackets": 12.5,
- "TxThroughput": 9 / 1e6,
- "RxThroughput": 1.6 / 1e6,
+ "RequestedTxThroughput": 9 / 1e6,
+ "TxThroughput": 1.6 / 1e6,
+ "RxThroughput": 1.2 / 1e6,
"PktSize": 64,
"PortSample": 1,
"LatencyMin": 6.1,
@@ -187,11 +174,12 @@ class TestProxTestDataTuple(unittest.TestCase):
self.assertDictEqual(result, expected)
expected = {
- "Throughput": 1.6 / 1e6,
+ "Throughput": 1.2 / 1e6,
"DropPackets": 0.123,
"CurrentDropPackets": 0.123,
- "TxThroughput": 9 / 1e6,
- "RxThroughput": 1.6 / 1e6,
+ "RequestedTxThroughput": 9 / 1e6,
+ "TxThroughput": 1.6 / 1e6,
+ "RxThroughput": 1.2 / 1e6,
"PktSize": 64,
"LatencyMin": 6.1,
"LatencyMax": 6.9,
@@ -200,41 +188,44 @@ class TestProxTestDataTuple(unittest.TestCase):
result = prox_test_data.get_samples(64, 0.123)
self.assertDictEqual(result, expected)
- @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.LOG')
+ @mock.patch('yardstick.LOG_RESULT', create=True)
def test_log_data(self, mock_logger):
my_mock_logger = mock.MagicMock()
- prox_test_data = ProxTestDataTuple(1, 2, 3, 4, 5, [6.1, 6.9, 6.4], 7, 8, 9)
+ prox_test_data = prox_helpers.ProxTestDataTuple(
+ 1, 2, 3, 4, 5, [6.1, 6.9, 6.4], 7, 8, 9)
prox_test_data.log_data()
- self.assertEqual(my_mock_logger.debug.call_count, 0)
- self.assertEqual(mock_logger.debug.call_count, 2)
+
+ my_mock_logger.debug.assert_not_called()
+ mock_logger.debug.assert_not_called()
mock_logger.debug.reset_mock()
prox_test_data.log_data(my_mock_logger)
- self.assertEqual(my_mock_logger.debug.call_count, 2)
- self.assertEqual(mock_logger.debug.call_count, 0)
+ my_mock_logger.assert_not_called()
+ mock_logger.debug.assert_not_called()
class TestPacketDump(unittest.TestCase):
PAYLOAD = "payload"
def test__init__(self):
- PacketDump("port_id", len(self.PAYLOAD), self.PAYLOAD)
+ prox_helpers.PacketDump("port_id", len(self.PAYLOAD), self.PAYLOAD)
def test___str__(self):
expected = '<PacketDump port: port_id payload: {}>'.format(self.PAYLOAD)
- dump1 = PacketDump("port_id", len(self.PAYLOAD), self.PAYLOAD)
+ dump1 = prox_helpers.PacketDump(
+ "port_id", len(self.PAYLOAD), self.PAYLOAD)
self.assertEqual(str(dump1), expected)
def test_port_id(self):
- p = PacketDump("port_id", len(self.PAYLOAD), self.PAYLOAD)
+ p = prox_helpers.PacketDump("port_id", len(self.PAYLOAD), self.PAYLOAD)
self.assertEqual(p.port_id, "port_id")
def test_data_len(self):
- p = PacketDump("port_id", len(self.PAYLOAD), self.PAYLOAD)
+ p = prox_helpers.PacketDump("port_id", len(self.PAYLOAD), self.PAYLOAD)
self.assertEqual(p.data_len, len(self.PAYLOAD))
def test_payload(self):
- p = PacketDump("port_id", len(self.PAYLOAD), self.PAYLOAD)
+ p = prox_helpers.PacketDump("port_id", len(self.PAYLOAD), self.PAYLOAD)
self.assertEqual(p.payload(), self.PAYLOAD)
self.assertEqual(p.payload(3), self.PAYLOAD[3:])
@@ -290,40 +281,47 @@ no data length value
class TestProxSocketHelper(unittest.TestCase):
def setUp(self):
- self.mock_time_sleep = mock.patch.object(time, 'sleep').start()
+ self._mock_time_sleep = mock.patch.object(time, 'sleep')
+ self.mock_time_sleep = self._mock_time_sleep.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_time_sleep.stop()
- @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.socket')
+ @mock.patch.object(prox_helpers, 'socket')
def test___init__(self, mock_socket):
expected = mock_socket.socket()
- prox = ProxSocketHelper()
+ prox = prox_helpers.ProxSocketHelper()
result = prox._sock
self.assertEqual(result, expected)
def test_connect(self):
mock_sock = mock.MagicMock()
- prox = ProxSocketHelper(mock_sock)
+ prox = prox_helpers.ProxSocketHelper(mock_sock)
prox.connect('10.20.30.40', 23456)
- self.assertEqual(mock_sock.connect.call_count, 1)
+ mock_sock.connect.assert_called_once()
def test_get_sock(self):
mock_sock = mock.MagicMock()
- prox = ProxSocketHelper(mock_sock)
+ prox = prox_helpers.ProxSocketHelper(mock_sock)
result = prox.get_socket()
self.assertIs(result, mock_sock)
- @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.select')
+ # TODO(elfoley): Split this into three tests
+ @mock.patch.object(prox_helpers, 'select')
def test_get_data(self, mock_select):
mock_select.select.side_effect = [[1], [0]]
mock_socket = mock.MagicMock()
mock_recv = mock_socket.recv()
mock_recv.decode.return_value = ""
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
ret = prox.get_data()
self.assertEqual(ret, "")
self.assertEqual(len(prox._pkt_dumps), 0)
mock_select.select.reset_mock()
- mock_select.select.side_effect = chain([['a'], ['']], repeat([1], 3))
+ mock_select.select.side_effect = chain([['a'], ['']],
+ repeat([1], 3))
mock_recv.decode.return_value = PACKET_DUMP_1
ret = prox.get_data()
self.assertEqual(mock_select.select.call_count, 2)
@@ -331,61 +329,102 @@ class TestProxSocketHelper(unittest.TestCase):
self.assertEqual(len(prox._pkt_dumps), 1)
mock_select.select.reset_mock()
- mock_select.select.side_effect = chain([[object()], [None]], repeat([1], 3))
+ mock_select.select.side_effect = chain([[object()], [None]],
+ repeat([1], 3))
mock_recv.decode.return_value = PACKET_DUMP_2
ret = prox.get_data()
- self.assertEqual(mock_select.select.call_count, 2)
+ self.assertEqual(mock_select.select.call_count, 1)
self.assertEqual(ret, 'jumped over')
self.assertEqual(len(prox._pkt_dumps), 3)
+ @mock.patch.object(prox_helpers, 'select')
+ def test_get_string(self, mock_select):
+ mock_select.select.side_effect = [[1], [0]]
+ mock_socket = mock.MagicMock()
+ mock_recv = mock_socket.recv()
+ mock_recv.decode.return_value = ""
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
+ status, ret = prox.get_string()
+ self.assertEqual(ret, "")
+ self.assertTrue(status)
+ self.assertEqual(len(prox._pkt_dumps), 0)
+
+ @mock.patch.object(prox_helpers, 'select')
+ def test_get_string2(self, mock_select):
+ mock_select.select.side_effect = chain([['a'], ['']],
+ repeat([1], 3))
+ mock_socket = mock.MagicMock()
+ mock_recv = mock_socket.recv()
+ mock_recv.decode.return_value = PACKET_DUMP_1
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
+ status, ret = prox.get_string()
+ self.assertEqual(mock_select.select.call_count, 2)
+ self.assertEqual(ret, 'pktdump,3,11')
+ self.assertTrue(status)
+ self.assertEqual(len(prox._pkt_dumps), 1)
+
+ @mock.patch.object(prox_helpers, 'select')
+ def test_get_string3(self, mock_select):
+ mock_select.select.side_effect = chain([[object()], [None]],
+ repeat([1], 3))
+ mock_socket = mock.MagicMock()
+ mock_recv = mock_socket.recv()
+ mock_recv.decode.return_value = PACKET_DUMP_2
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
+ status, ret = prox.get_string()
+ self.assertTrue(status)
+ self.assertTrue(mock_select.select.assert_called_once)
+ self.assertEqual(ret, 'jumped over')
+ self.assertEqual(len(prox._pkt_dumps), 2)
+
def test__parse_socket_data_mixed_data(self):
- prox = ProxSocketHelper(mock.MagicMock())
- ret = prox._parse_socket_data(PACKET_DUMP_NON_1, False)
+ prox = prox_helpers.ProxSocketHelper(mock.MagicMock())
+ ret, _ = prox._parse_socket_data(PACKET_DUMP_NON_1, False)
self.assertEqual(ret, 'not_a_dump,1,2')
self.assertEqual(len(prox._pkt_dumps), 0)
- ret = prox._parse_socket_data(PACKET_DUMP_MIXED_1, False)
+ ret, _ = prox._parse_socket_data(PACKET_DUMP_MIXED_1, False)
self.assertEqual(ret, 'not_a_dump,1,2')
self.assertEqual(len(prox._pkt_dumps), 1)
def test__parse_socket_data_bad_data(self):
- prox = ProxSocketHelper(mock.MagicMock())
+ prox = prox_helpers.ProxSocketHelper(mock.MagicMock())
with self.assertRaises(ValueError):
prox._parse_socket_data(PACKET_DUMP_BAD_1, False)
with self.assertRaises(ValueError):
prox._parse_socket_data(PACKET_DUMP_BAD_2, False)
- ret = prox._parse_socket_data(PACKET_DUMP_BAD_3, False)
+ ret, _ = prox._parse_socket_data(PACKET_DUMP_BAD_3, False)
self.assertEqual(ret, 'pktdump,3')
def test__parse_socket_data_pkt_dump_only(self):
- prox = ProxSocketHelper(mock.MagicMock())
- ret = prox._parse_socket_data('', True)
+ prox = prox_helpers.ProxSocketHelper(mock.MagicMock())
+ ret, _ = prox._parse_socket_data('', True)
self.assertFalse(ret)
- ret = prox._parse_socket_data(PACKET_DUMP_1, True)
+ ret, _ = prox._parse_socket_data(PACKET_DUMP_1, True)
self.assertTrue(ret)
- ret = prox._parse_socket_data(PACKET_DUMP_2, True)
+ ret, _ = prox._parse_socket_data(PACKET_DUMP_2, True)
self.assertTrue(ret)
def test_put_command(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.put_command("data")
mock_socket.sendall.assert_called_once()
def test_put_command_socket_error(self):
mock_socket = mock.MagicMock()
mock_socket.sendall.side_effect = OSError
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.put_command("data")
mock_socket.sendall.assert_called_once()
def test_get_packet_dump(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox._pkt_dumps = []
self.assertIsNone(prox.get_packet_dump())
@@ -395,61 +434,61 @@ class TestProxSocketHelper(unittest.TestCase):
def test_stop_all_reset(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.stop_all_reset()
mock_socket.sendall.assert_called()
def test_stop_all(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.stop_all()
mock_socket.sendall.assert_called()
def test_stop(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.stop([3, 4, 5], 16)
mock_socket.sendall.assert_called()
def test_start_all(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.start_all()
mock_socket.sendall.assert_called()
def test_start(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.start([3, 4, 5])
mock_socket.sendall.assert_called()
def test_reset_stats(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.reset_stats()
mock_socket.sendall.assert_called()
def test_set_pkt_size(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.set_pkt_size([3, 4, 5], 1024)
self.assertEqual(mock_socket.sendall.call_count, 3)
def test_set_value(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.set_value([3, 4, 5], 10, 20, 30)
self.assertEqual(mock_socket.sendall.call_count, 3)
def test_reset_values(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.reset_values([3, 4, 5])
self.assertEqual(mock_socket.sendall.call_count, 3)
def test_set_speed(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.set_speed([3, 4, 5], 1000)
self.assertEqual(mock_socket.sendall.call_count, 3)
@@ -466,7 +505,7 @@ class TestProxSocketHelper(unittest.TestCase):
]
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.set_speed = set_speed = mock.MagicMock()
prox.slope_speed(core_data, 5)
self.assertEqual(set_speed.call_count, 20)
@@ -477,7 +516,7 @@ class TestProxSocketHelper(unittest.TestCase):
def test_set_pps(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.set_pps([3, 4, 5], 1000, 512)
self.assertEqual(mock_socket.sendall.call_count, 3)
@@ -491,7 +530,7 @@ class TestProxSocketHelper(unittest.TestCase):
]
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.get_data = mock.MagicMock(side_effect=latency_output)
expected = (
@@ -514,7 +553,7 @@ class TestProxSocketHelper(unittest.TestCase):
def test_get_all_tot_stats_error(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.get_data = mock.MagicMock(return_value='3,4,5')
expected = [0, 0, 0, 0]
result = prox.get_all_tot_stats()
@@ -522,7 +561,7 @@ class TestProxSocketHelper(unittest.TestCase):
def test_get_all_tot_stats(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.get_data = mock.MagicMock(return_value='3,4,5,6')
expected = 3, 4, 5, 6
result = prox.get_all_tot_stats()
@@ -530,7 +569,7 @@ class TestProxSocketHelper(unittest.TestCase):
def test_hz(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.get_data = mock.MagicMock(return_value='3,4,5,6')
expected = 6
result = prox.hz()
@@ -544,12 +583,168 @@ class TestProxSocketHelper(unittest.TestCase):
]
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.get_data = mock.MagicMock(side_effect=core_stats)
expected = 21, 24, 27, 14
result = prox.core_stats([3, 4, 5], 16)
self.assertEqual(result, expected)
+ @mock.patch.object(prox_helpers.LOG, 'error')
+ def test_irq_core_stats(self, *args):
+ mock_socket = mock.MagicMock()
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
+ prox.get_data = mock.MagicMock(return_value=('0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3'))
+
+ data_0 = {"cpu": 0, 'bucket_0': 1, 'bucket_1': 2, 'bucket_2': 3, 'bucket_3': 4,
+ 'bucket_4': 5, 'bucket_5': 0, 'bucket_6': 1, 'bucket_7': 2, 'bucket_8': 3,
+ 'bucket_9': 4, 'bucket_10': 5, 'bucket_11': 0, 'bucket_12': 1,
+ "max_irq": 0, "overflow": 10}
+
+ data_1 = {"cpu": 1, 'bucket_0': 1, 'bucket_1': 2, 'bucket_2': 3, 'bucket_3': 4,
+ 'bucket_4': 5, 'bucket_5': 0, 'bucket_6': 1, 'bucket_7': 2, 'bucket_8': 3,
+ 'bucket_9': 4, 'bucket_10': 5, 'bucket_11': 0, 'bucket_12': 1,
+ "max_irq": 0, "overflow": 10}
+
+ expected = {"core_0": data_0, "core_1": data_1}
+
+ result = prox.irq_core_stats([[0, 1], [1, 0]])
+ self.assertDictEqual(result, expected)
+
+ @mock.patch.object(prox_helpers.LOG, 'error')
+ def test_multi_port_stats(self, *args):
+ mock_socket = mock.MagicMock()
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
+ prox.get_string = mock.MagicMock(return_value=(True, '0,1,2,3,4,5;1,1,2,3,4,5'))
+ expected = [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]]
+ status, result = prox.multi_port_stats([0, 1])
+ self.assertEqual(result, expected)
+ self.assertEqual(status, True)
+
+ prox.get_string = mock.MagicMock(
+ return_value=(True, '0,1,2,3,4,5;1,1,2,3,4,5'))
+ status, result = prox.multi_port_stats([0])
+ self.assertEqual(status, False)
+
+ prox.get_string = mock.MagicMock(
+ return_value=(True, '0,1,2,3,4,5;1,1,2,3,4,5'))
+ status, result = prox.multi_port_stats([0, 1, 2])
+ self.assertEqual(status, False)
+
+ prox.get_string = mock.MagicMock(
+ return_value=(True, '0,1,2,3;1,1,2,3,4,5'))
+ status, result = prox.multi_port_stats([0, 1])
+ self.assertEqual(status, False)
+
+ prox.get_string = mock.MagicMock(
+ return_value=(True, '99,1,2,3,4,5;1,1,2,3,4,5'))
+ status, result = prox.multi_port_stats([0, 1])
+ self.assertEqual(status, False)
+
+ prox.get_string = mock.MagicMock(
+ return_value=(True, '99,1,2,3,4,5;1,1,2,3,4,5'))
+ status, result = prox.multi_port_stats([99, 1])
+ expected = [[99, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]]
+ self.assertEqual(status, True)
+ self.assertEqual(result, expected)
+
+ prox.get_string = mock.MagicMock(
+ return_value=(True,
+ '2,21,22,23,24,25;1,11,12,13,14,15;0,1,2,3,4,5'))
+
+ sample1 = [0, 1, 2, 3, 4, 5]
+ sample2 = [1, 11, 12, 13, 14, 15]
+ sample3 = [2, 21, 22, 23, 24, 25]
+ expected = [sample3, sample2, sample1]
+ status, result = prox.multi_port_stats([1, 2, 0])
+ self.assertTrue(status)
+ self.assertListEqual(result, expected)
+
+ prox.get_string = mock.MagicMock(
+ return_value=(True, '6,21,22,23,24,25;1,11,12,13,14,15;0,1,2,3,4,5'))
+ ok, result = prox.multi_port_stats([1, 6, 0])
+ sample1 = [6, 21, 22, 23, 24, 25]
+ sample2 = [1, 11, 12, 13, 14, 15]
+ sample3 = [0, 1, 2, 3, 4, 5]
+ expected = [sample1, sample2, sample3]
+ self.assertListEqual(result, expected)
+ self.assertTrue(ok)
+
+ @mock.patch.object(prox_helpers.LOG, 'error')
+ def test_multi_port_stats_diff(self, *args):
+ mock_socket = mock.MagicMock()
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
+ prox.get_string = mock.MagicMock(return_value=(True, '0,1,2,3,4,5;1,1,2,3,4,5'))
+ _, t1 = prox.multi_port_stats([0, 1])
+
+ prox.get_string = mock.MagicMock(return_value=(True, '0,2,4,6,8,6;1,4,8,16,32,6'))
+ _, t2 = prox.multi_port_stats([0, 1])
+
+ prox.get_string = mock.MagicMock(return_value=(True, '0,1,1,1,1,1;1,1,1,1,1,1'))
+ _, t3 = prox.multi_port_stats([0, 1])
+
+ prox.get_string = mock.MagicMock(return_value=(True, '0,2,2,2,2,2;1,2,2,2,2,2'))
+ _, t4 = prox.multi_port_stats([0, 1])
+
+ expected = [[0, 1.0, 2.0, 0, 0, 1], [1, 3.0, 6.0, 0, 0, 1]]
+ result = prox.multi_port_stats_diff(t1, t2, 1)
+
+ self.assertListEqual(result, expected)
+
+ result = prox.multi_port_stats_diff(t4, t3, 1)
+ expected = [[0, 1.0, 1.0, 0, 0, 1], [1, 1.0, 1.0, 0, 0, 1]]
+
+ self.assertListEqual(result, expected)
+
+ prox.get_string = mock.MagicMock(return_value=(True, '0,2,4,6,8,10'))
+ ok, t5 = prox.multi_port_stats([0, 1])
+ self.assertFalse(ok)
+ self.assertListEqual(t5, [])
+
+ result = prox.multi_port_stats_diff(t5, t4, 1)
+ expected = [[0, 0.0, 0.0, 0, 0, 0], [1, 0.0, 0.0, 0, 0, 0]]
+ self.assertListEqual(result, expected)
+
+ prox.get_string = mock.MagicMock(return_value=(True, '0,10,10,20,30,0;1,30,40,50,60,0'))
+ _, t6 = prox.multi_port_stats([0, 1])
+
+ prox.get_string = \
+ mock.MagicMock(return_value=(True, '0,100,100,100,100,0;1,100,100,100,100,0'))
+ _, t7 = prox.multi_port_stats([0, 1])
+
+ result = prox.multi_port_stats_diff(t6, t7, 1)
+ expected = [[0, 0.0, 0.0, 0, 0, 0], [1, 0.0, 0.0, 0, 0, 0]]
+ self.assertListEqual(result, expected)
+
+ result = prox.multi_port_stats_diff(t1, t2, 0)
+ expected = [[0, 0.0, 0.0, 0, 0, 1], [1, 0.0, 0.0, 0, 0, 1]]
+ self.assertListEqual(result, expected)
+
+ @mock.patch.object(prox_helpers.LOG, 'error')
+ def test_multi_port_stats_tuple(self, *args):
+ mock_socket = mock.MagicMock()
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
+ prox.get_string = mock.MagicMock(return_value=(True, '0,1,2,3,4,5;1,1,2,3,4,5'))
+ _, result1 = prox.multi_port_stats([0, 1])
+ prox.get_string = mock.MagicMock(return_value=(True, '0,2,4,6,8,6;1,4,8,16,32,6'))
+ _, result2 = prox.multi_port_stats([0, 1])
+
+ result = prox.multi_port_stats_diff(result1, result2, 1)
+
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+
+ expected = {'xe0': {'in_packets': 1.0, 'out_packets': 2.0},
+ 'xe1': {'in_packets': 3.0, 'out_packets': 6.0}}
+ live_stats = prox.multi_port_stats_tuple(result, vnfd_helper.ports_iter())
+ self.assertDictEqual(live_stats, expected)
+
+ live_stats = prox.multi_port_stats_tuple(result, None)
+ expected = {}
+ self.assertDictEqual(live_stats, expected)
+
+ live_stats = prox.multi_port_stats_tuple(None, vnfd_helper.ports_iter())
+ self.assertDictEqual(live_stats, expected)
+
def test_port_stats(self):
port_stats = [
','.join(str(n) for n in range(3, 15)),
@@ -558,7 +753,7 @@ class TestProxSocketHelper(unittest.TestCase):
]
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.get_data = mock.MagicMock(side_effect=port_stats)
expected = [16, 26, 36, 46, 56, 66, 76, 86, 96, 106, 116, 126]
result = prox.port_stats([3, 4, 5])
@@ -575,7 +770,7 @@ class TestProxSocketHelper(unittest.TestCase):
]
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.get_data = mock.MagicMock(side_effect=get_data_output)
expected = {
'start_tot': start_tot,
@@ -588,7 +783,7 @@ class TestProxSocketHelper(unittest.TestCase):
def test_tot_stats(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.get_data = mock.MagicMock(return_value='3,4,5,6')
expected = 3, 4, 5
result = prox.tot_stats()
@@ -596,7 +791,7 @@ class TestProxSocketHelper(unittest.TestCase):
def test_tot_ierrors(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.get_data = mock.MagicMock(return_value='3,4,5,6')
expected = 3, 3
result = prox.tot_ierrors()
@@ -604,25 +799,25 @@ class TestProxSocketHelper(unittest.TestCase):
def test_set_count(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.set_count(432, [3, 4, 5])
self.assertEqual(mock_socket.sendall.call_count, 3)
def test_dump_rx(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.dump_rx(3, 5, 8)
- self.assertEqual(mock_socket.sendall.call_count, 1)
+ mock_socket.sendall.assert_called_once()
def test_quit(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.quit()
mock_socket.sendall.assert_called()
def test_force_quit(self):
mock_socket = mock.MagicMock()
- prox = ProxSocketHelper(mock_socket)
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
prox.force_quit()
mock_socket.sendall.assert_called()
@@ -734,8 +929,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
}
def test_global_section(self):
- setup_helper = ProxDpdkVnfSetupEnvHelper(mock.MagicMock(), mock.MagicMock(),
- mock.MagicMock())
+ setup_helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ mock.MagicMock(), mock.MagicMock(), mock.MagicMock())
setup_helper._prox_config_data = [('a', [])]
@@ -783,8 +978,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
self.assertEqual(result, global_section[1])
def test_find_in_section(self):
- setup_helper = ProxDpdkVnfSetupEnvHelper(mock.MagicMock(), mock.MagicMock(),
- mock.MagicMock())
+ setup_helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ mock.MagicMock(), mock.MagicMock(), mock.MagicMock())
setup_helper._prox_config_data = [
('global', [
@@ -837,44 +1032,51 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
# empty string
input_str = ''
expected = ''
- result = ProxDpdkVnfSetupEnvHelper._replace_quoted_with_value(input_str, 'cat')
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ _replace_quoted_with_value(input_str, 'cat'))
self.assertEqual(result, expected)
# no quoted substring
input_str = 'lion tiger bear'
expected = 'lion tiger bear'
- result = ProxDpdkVnfSetupEnvHelper._replace_quoted_with_value(input_str, 'cat')
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ _replace_quoted_with_value(input_str, 'cat'))
self.assertEqual(result, expected)
# partially quoted substring
input_str = 'lion "tiger bear'
expected = 'lion "tiger bear'
- result = ProxDpdkVnfSetupEnvHelper._replace_quoted_with_value(input_str, 'cat')
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ _replace_quoted_with_value(input_str, 'cat'))
self.assertEqual(result, expected)
# one quoted substring
input_str = 'lion "tiger" bear'
expected = 'lion "cat" bear'
- result = ProxDpdkVnfSetupEnvHelper._replace_quoted_with_value(input_str, 'cat')
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ _replace_quoted_with_value(input_str, 'cat'))
self.assertEqual(result, expected)
# two quoted substrings
input_str = 'lion "tiger" bear "shark" whale'
expected = 'lion "cat" bear "shark" whale'
- result = ProxDpdkVnfSetupEnvHelper._replace_quoted_with_value(input_str, 'cat')
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ _replace_quoted_with_value(input_str, 'cat'))
self.assertEqual(result, expected)
# two quoted substrings, both replaced
input_str = 'lion "tiger" bear "shark" whale'
expected = 'lion "cat" bear "cat" whale'
- result = ProxDpdkVnfSetupEnvHelper._replace_quoted_with_value(input_str, 'cat', 2)
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ _replace_quoted_with_value(input_str, 'cat', 2))
self.assertEqual(result, expected)
def test__get_tx_port(self):
# no data
input_data = {'section1': []}
expected = -1
- result = ProxDpdkVnfSetupEnvHelper._get_tx_port('section1', input_data)
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ _get_tx_port('section1', input_data))
self.assertEqual(result, expected)
# data for other section
@@ -886,7 +1088,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
],
}
expected = -1
- result = ProxDpdkVnfSetupEnvHelper._get_tx_port('section1', input_data)
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ _get_tx_port('section1', input_data))
self.assertEqual(result, expected)
# data for section
@@ -895,7 +1098,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
('tx port', '3'),
]
expected = 3
- result = ProxDpdkVnfSetupEnvHelper._get_tx_port('section1', input_data)
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ _get_tx_port('section1', input_data))
self.assertEqual(result, expected)
# more data for section,
@@ -904,13 +1108,16 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
('tx port', '1', 'and more', 234),
])
expected = 1
- result = ProxDpdkVnfSetupEnvHelper._get_tx_port('section1', input_data)
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ _get_tx_port('section1', input_data))
self.assertEqual(result, expected)
+ # TODO(elfoley): Split this into several smaller tests
def test_write_prox_config(self):
input_data = {}
expected = ''
- result = ProxDpdkVnfSetupEnvHelper.write_prox_config(input_data)
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ write_prox_config(input_data))
self.assertEqual(result, expected)
input_data = [
@@ -920,7 +1127,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
],
]
expected = '[section1]'
- result = ProxDpdkVnfSetupEnvHelper.write_prox_config(input_data)
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ write_prox_config(input_data))
self.assertEqual(result, expected)
input_data = [
@@ -947,12 +1155,13 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
'key3=234',
'key4=multi-line\n\tvalue',
])
- result = ProxDpdkVnfSetupEnvHelper.write_prox_config(input_data)
+ result = (prox_helpers.ProxDpdkVnfSetupEnvHelper.
+ write_prox_config(input_data))
self.assertEqual(result, expected)
def test_prox_config_data(self):
- setup_helper = ProxDpdkVnfSetupEnvHelper(mock.MagicMock(), mock.MagicMock(),
- mock.MagicMock())
+ setup_helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ mock.MagicMock(), mock.MagicMock(), mock.MagicMock())
setup_helper.config_queue = config_queue = mock.MagicMock()
config_queue.get.return_value = expected = [('s', [('a', 3), ('b', 45)])]
@@ -960,7 +1169,7 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
result = setup_helper.prox_config_data
self.assertEqual(result, expected)
- @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.find_relative_file')
+ @mock.patch.object(utils, 'find_relative_file')
def test_build_config_file_no_additional_file(self, mock_find_path):
vnf1 = {
'prox_args': {'-c': ""},
@@ -973,7 +1182,7 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
vnfd_helper = mock.MagicMock()
ssh_helper = mock.MagicMock()
- scenario_helper = ScenarioHelper('vnf1')
+ scenario_helper = sample_vnf.ScenarioHelper('vnf1')
scenario_helper.scenario_cfg = {
'task_path': 'a/b',
'options': {
@@ -981,7 +1190,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
},
}
- helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
+ helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
helper.copy_to_target = mock.MagicMock(return_value='3')
helper.generate_prox_config_file = mock.MagicMock(return_value='4')
helper.upload_prox_config = mock.MagicMock(return_value='5')
@@ -994,7 +1204,7 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
self.assertEqual(helper._prox_config_data, '4')
self.assertEqual(helper.remote_path, '5')
- @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.find_relative_file')
+ @mock.patch.object(utils, 'find_relative_file')
def test_build_config_file_additional_file_string(self, mock_find_path):
vnf1 = {
'prox_args': {'-c': ""},
@@ -1007,7 +1217,7 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
mock_find_path.side_effect = ['1', '2']
vnfd_helper = mock.MagicMock()
ssh_helper = mock.MagicMock()
- scenario_helper = ScenarioHelper('vnf1')
+ scenario_helper = sample_vnf.ScenarioHelper('vnf1')
scenario_helper.scenario_cfg = {
'task_path': 'a/b',
'options': {
@@ -1016,7 +1226,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
}
vnfd_helper.port_pairs.all_ports = ['xe0', 'xe1', 'xe2', 'xe3']
- helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
+ helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
helper.copy_to_target = mock.MagicMock(side_effect=['33', '34', '35'])
helper.generate_prox_config_file = mock.MagicMock(return_value='44')
helper.upload_prox_config = mock.MagicMock(return_value='55')
@@ -1026,7 +1237,7 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
helper.build_config_file()
self.assertDictEqual(helper.additional_files, expected)
- @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.find_relative_file')
+ @mock.patch.object(utils, 'find_relative_file')
def test_build_config_file_additional_file(self, mock_find_path):
vnf1 = {
'prox_args': {'-c': ""},
@@ -1042,7 +1253,7 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
mock_find_path.side_effect = ['1', '2'] + [str(i) for i in range(len(vnf1['prox_files']))]
vnfd_helper = mock.MagicMock()
ssh_helper = mock.MagicMock()
- scenario_helper = ScenarioHelper('vnf1')
+ scenario_helper = sample_vnf.ScenarioHelper('vnf1')
scenario_helper.scenario_cfg = {
'task_path': 'a/b',
'options': {
@@ -1050,7 +1261,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
},
}
- helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
+ helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
helper.copy_to_target = mock.MagicMock(side_effect=['33', '34', '35'])
helper.generate_prox_config_file = mock.MagicMock(return_value='44')
helper.upload_prox_config = mock.MagicMock(return_value='55')
@@ -1079,7 +1291,7 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
vnfd_helper = mock.Mock()
ssh_helper = mock.Mock()
ssh_helper.join_bin_path.return_value = '/opt/nsb_bin/prox'
- scenario_helper = ScenarioHelper('vnf1')
+ scenario_helper = sample_vnf.ScenarioHelper('vnf1')
scenario_helper.scenario_cfg = {
'task_path': 'a/b',
'options': {
@@ -1090,8 +1302,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
expected = ("sudo bash -c 'cd /opt/nsb_bin; /opt/nsb_bin/prox -o cli "
"-f -f /tmp/prox.cfg '")
- helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper,
- scenario_helper)
+ helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
with mock.patch.object(helper, 'build_config_file') as mock_cfg_file:
helper.remote_path = '/tmp/prox.cfg'
prox_cmd = helper.build_config()
@@ -1103,7 +1315,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
ssh_helper = mock.MagicMock()
scenario_helper = mock.MagicMock()
- helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
+ helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
helper.additional_files = {"ipv4.lua": "/tmp/ipv4.lua"}
res = helper._insert_additional_file('dofile("ipv4.lua")')
self.assertEqual(res, 'dofile("/tmp/ipv4.lua")')
@@ -1119,11 +1332,12 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
mock_parser_type.side_effect = init
- vnfd_helper = VnfdHelper(self.VNFD0)
+ vnfd_helper = vnf_base.VnfdHelper(self.VNFD0)
ssh_helper = mock.MagicMock()
scenario_helper = mock.MagicMock()
- helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
+ helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
helper.additional_files = {}
expected = []
@@ -1160,6 +1374,36 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
['missing_addtional_file', 'dofile("nosuch")'],
],
],
+ [
+ 'core 0',
+ [
+ ['name', 'p0']
+ ]
+ ],
+ [
+ 'core 1-4',
+ [
+ ['name', 'p1']
+ ]
+ ],
+ [
+ 'core 5,6',
+ [
+ ['name', 'p2']
+ ]
+ ],
+ [
+ 'core xx',
+ [
+ ['name', 'p3']
+ ]
+ ],
+ [
+ 'core $x',
+ [
+ ['name', 'p4']
+ ]
+ ]
]
expected = [
@@ -1189,6 +1433,54 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
['missing_addtional_file', 'dofile("nosuch")'],
],
],
+ [
+ 'core 0',
+ [
+ ['name', 'p0']
+ ]
+ ],
+ [
+ 'core 1',
+ [
+ ['name', 'p1']
+ ]
+ ],
+ [
+ 'core 2',
+ [
+ ['name', 'p1']
+ ]
+ ],
+ [
+ 'core 3',
+ [
+ ['name', 'p1']
+ ]
+ ],
+ [
+ 'core 4',
+ [
+ ['name', 'p1']
+ ]
+ ],
+ [
+ 'core 5',
+ [
+ ['name', 'p2']
+ ]
+ ],
+ [
+ 'core 6',
+ [
+ ['name', 'p2']
+ ]
+ ],
+ [
+ 'core $x',
+ [
+ ['name', 'p4']
+ ]
+ ]
]
result = helper.generate_prox_config_file('/c/d/e')
self.assertEqual(result, expected, str(result))
@@ -1208,7 +1500,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
ssh_helper = mock.MagicMock()
scenario_helper = mock.MagicMock()
- helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
+ helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
helper.additional_files = {}
helper.remote_prox_file_name = 'remote'
vnfd_helper.interfaces = [
@@ -1254,7 +1547,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
ssh_helper = mock.MagicMock()
scenario_helper = mock.MagicMock()
- helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
+ helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
expected = 'a/b'
result = helper.put_string_to_file('my long string', 'a/b')
@@ -1266,7 +1560,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
ssh_helper = mock.MagicMock()
scenario_helper = mock.MagicMock()
- helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
+ helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
expected = '/tmp/c'
result = helper.copy_to_target('a/b', 'c')
self.assertEqual(result, expected)
@@ -1277,7 +1572,8 @@ class TestProxDpdkVnfSetupEnvHelper(unittest.TestCase):
ssh_helper = mock.MagicMock()
scenario_helper = mock.MagicMock()
- helper = ProxDpdkVnfSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
+ helper = prox_helpers.ProxDpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
helper.write_prox_config = mock.MagicMock(return_value='a long string')
expected = '/tmp/a'
result = helper.upload_prox_config('a', {})
@@ -1396,7 +1692,8 @@ class TestProxResourceHelper(unittest.TestCase):
'nor here',
'and still not',
]
- result = ProxResourceHelper.find_pci('target', input_str_list)
+ result = prox_helpers.ProxResourceHelper.find_pci('target',
+ input_str_list)
self.assertFalse(result)
input_str_list = [
@@ -1405,13 +1702,14 @@ class TestProxResourceHelper(unittest.TestCase):
'this is a target',
'did we miss it',
]
- result = ProxResourceHelper.find_pci('target', input_str_list)
+ result = prox_helpers.ProxResourceHelper.find_pci('target',
+ input_str_list)
self.assertTrue(result)
@mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.RETRY_INTERVAL', 0)
@mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.ProxSocketHelper')
def test_sut(self, *args):
- helper = ProxResourceHelper(mock.MagicMock())
+ helper = prox_helpers.ProxResourceHelper(mock.MagicMock())
self.assertIsNone(helper.client)
result = helper.sut
self.assertIsNotNone(result)
@@ -1422,7 +1720,7 @@ class TestProxResourceHelper(unittest.TestCase):
setup_helper = mock.MagicMock()
setup_helper.find_in_section.return_value = expected = 'prox type'
- helper = ProxResourceHelper(setup_helper)
+ helper = prox_helpers.ProxResourceHelper(setup_helper)
self.assertIsNone(helper._test_type)
self.assertEqual(helper.test_type, expected)
@@ -1430,31 +1728,107 @@ class TestProxResourceHelper(unittest.TestCase):
self.assertEqual(helper.test_type, expected)
def test_collect_collectd_kpi(self):
- helper = ProxResourceHelper(mock.MagicMock())
+ helper = prox_helpers.ProxResourceHelper(mock.MagicMock())
helper.resource = resource = mock.MagicMock()
- resource.check_if_sa_running.return_value = 0, '1234'
+ resource.check_if_system_agent_running.return_value = 0, '1234'
resource.amqp_collect_nfvi_kpi.return_value = 543
- resource.check_if_sa_running.return_value = (0, None)
+ resource.check_if_system_agent_running.return_value = (0, None)
expected = {'core': 543}
result = helper.collect_collectd_kpi()
self.assertDictEqual(result, expected)
def test_collect_kpi(self):
- helper = ProxResourceHelper(mock.MagicMock())
+ helper = prox_helpers.ProxResourceHelper(mock.MagicMock())
helper._queue = queue = mock.MagicMock()
helper._result = {'z': 123}
+
+ helper.client = mock.MagicMock()
+ helper.client.hz.return_value = 1
+ helper.client.multi_port_stats.return_value = \
+ (True, [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]])
+ helper.client.multi_port_stats_diff.return_value = \
+ ([0, 1, 2, 3, 4, 5, 6, 7])
+ helper.client.multi_port_stats_tuple.return_value = \
+ {"xe0": {"in_packets": 1, "out_packets": 2}}
+ helper.resource = resource = mock.MagicMock()
+
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+ helper.vnfd_helper = vnfd_helper
+
+ resource.check_if_system_agent_running.return_value = 0, '1234'
+ resource.amqp_collect_nfvi_kpi.return_value = 543
+ resource.check_if_system_agent_running.return_value = (0, None)
+
+ queue.empty.return_value = False
+ queue.get.return_value = {'a': 789}
+
+ expected = {'z': 123, 'a': 789,
+ 'collect_stats': {'core': 543},
+ 'live_stats': {'xe0': {'in_packets': 1, 'out_packets': 2}}}
+ result = helper.collect_kpi()
+ self.assertDictEqual(result, expected)
+
+ def test_collect_kpi_no_hz(self):
+ helper = prox_helpers.ProxResourceHelper(mock.MagicMock())
+ helper._queue = queue = mock.MagicMock()
+ helper._result = {'z': 123}
+
+ helper.client = mock.MagicMock()
+ helper.client.multi_port_stats.return_value = \
+ (True, [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]])
+ helper.client.multi_port_stats_diff.return_value = \
+ ([0, 1, 2, 3, 4, 5, 6, 7])
+ helper.client.multi_port_stats_tuple.return_value = \
+ {"xe0": {"in_packets": 1, "out_packets": 2}}
+ helper.resource = resource = mock.MagicMock()
+
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+ helper.vnfd_helper = vnfd_helper
+
+ resource.check_if_system_agent_running.return_value = 0, '1234'
+ resource.amqp_collect_nfvi_kpi.return_value = 543
+ resource.check_if_system_agent_running.return_value = (0, None)
+
+ queue.empty.return_value = False
+ queue.get.return_value = {'a': 789}
+
+ expected = {'z': 123, 'a': 789,
+ 'collect_stats': {'core': 543},
+ 'live_stats': {'xe0': {'in_packets': 1, 'out_packets': 2}}}
+ result = helper.collect_kpi()
+ self.assertDictEqual(result, expected)
+
+ def test_collect_kpi_bad_data(self):
+ helper = prox_helpers.ProxResourceHelper(mock.MagicMock())
+ helper._queue = queue = mock.MagicMock()
+ helper._result = {'z': 123}
+
+ helper.client = mock.MagicMock()
+ helper.client.multi_port_stats.return_value = \
+ (False, [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]])
+ helper.client.multi_port_stats_diff.return_value = \
+ ([0, 1, 2, 3, 4, 5, 6, 7])
+ helper.client.multi_port_stats_tuple.return_value = \
+ {"xe0": {"in_packets": 1, "out_packets": 2}}
helper.resource = resource = mock.MagicMock()
- resource.check_if_sa_running.return_value = 0, '1234'
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+ helper.vnfd_helper = vnfd_helper
+
+ resource.check_if_system_agent_running.return_value = 0, '1234'
resource.amqp_collect_nfvi_kpi.return_value = 543
- resource.check_if_sa_running.return_value = (0, None)
+ resource.check_if_system_agent_running.return_value = (0, None)
queue.empty.return_value = False
queue.get.return_value = {'a': 789}
- expected = {'z': 123, 'a': 789, 'collect_stats': {'core': 543}}
+ expected = {'z': 123, 'a': 789,
+ 'collect_stats': {'core': 543}}
result = helper.collect_kpi()
self.assertDictEqual(result, expected)
@@ -1467,7 +1841,7 @@ class TestProxResourceHelper(unittest.TestCase):
setup_helper = mock.MagicMock()
setup_helper.vnfd_helper.interfaces = []
- helper = ProxResourceHelper(setup_helper)
+ helper = prox_helpers.ProxResourceHelper(setup_helper)
result = helper._connect()
self.assertIs(result, client)
@@ -1479,47 +1853,50 @@ class TestProxResourceHelper(unittest.TestCase):
def test_run_traffic(self):
setup_helper = mock.MagicMock()
- helper = ProxResourceHelper(setup_helper)
- traffic_profile = mock.MagicMock(**{"done": True})
+ helper = prox_helpers.ProxResourceHelper(setup_helper)
+ traffic_profile = mock.MagicMock()
+ traffic_profile.done.is_set.return_value = True
helper.run_traffic(traffic_profile)
self.assertEqual(helper._terminated.value, 1)
def test__run_traffic_once(self):
setup_helper = mock.MagicMock()
- helper = ProxResourceHelper(setup_helper)
- traffic_profile = mock.MagicMock(**{"done": True})
+ helper = prox_helpers.ProxResourceHelper(setup_helper)
+ traffic_profile = mock.MagicMock()
+ traffic_profile.done.is_set.return_value = True
helper._run_traffic_once(traffic_profile)
self.assertEqual(helper._terminated.value, 1)
def test_start_collect(self):
setup_helper = mock.MagicMock()
- helper = ProxResourceHelper(setup_helper)
+ helper = prox_helpers.ProxResourceHelper(setup_helper)
helper.resource = resource = mock.MagicMock()
self.assertIsNone(helper.start_collect())
resource.start.assert_called_once()
def test_terminate(self):
setup_helper = mock.MagicMock()
- helper = ProxResourceHelper(setup_helper)
+ helper = prox_helpers.ProxResourceHelper(setup_helper)
with self.assertRaises(NotImplementedError):
helper.terminate()
def test_up_post(self):
setup_helper = mock.MagicMock()
- helper = ProxResourceHelper(setup_helper)
+ helper = prox_helpers.ProxResourceHelper(setup_helper)
helper.client = expected = mock.MagicMock()
result = helper.up_post()
self.assertEqual(result, expected)
def test_execute(self):
setup_helper = mock.MagicMock()
- helper = ProxResourceHelper(setup_helper)
+ helper = prox_helpers.ProxResourceHelper(setup_helper)
helper.client = mock.MagicMock()
expected = helper.client.my_command()
result = helper.execute('my_command')
self.assertEqual(result, expected)
+ # TODO(elfoley): Make this a separate test: test_execute_no_client
helper.client = object()
result = helper.execute('my_command')
@@ -1534,32 +1911,122 @@ class TestProxDataHelper(unittest.TestCase):
vnfd_helper.port_pairs.all_ports = list(range(4))
sut = mock.MagicMock()
- sut.port_stats.return_value = list(range(10))
+ sut.multi_port_stats.return_value = (True,
+ [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5],
+ [2, 1, 2, 3, 4, 5], [3, 1, 2, 3, 4, 5]])
- data_helper = ProxDataHelper(vnfd_helper, sut, pkt_size, 25, None)
+ data_helper = prox_helpers.ProxDataHelper(
+ vnfd_helper, sut, pkt_size, 25, None,
+ constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
- self.assertEqual(data_helper.rx_total, 6)
- self.assertEqual(data_helper.tx_total, 7)
- self.assertEqual(data_helper.pps, 6.25e6)
+ self.assertEqual(data_helper.rx_total, 4)
+ self.assertEqual(data_helper.tx_total, 8)
+ self.assertEqual(data_helper.requested_pps, 6250000.0)
- def test_samples(self):
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.port_pairs.all_ports = [3, 4]
+
+ sut = mock.MagicMock()
+ sut.multi_port_stats.return_value = (True,
+ [[3, 1, 2, 3, 4, 5], [4, 1, 2, 3, 4, 5]])
+
+ data_helper = prox_helpers.ProxDataHelper(
+ vnfd_helper, sut, pkt_size, 25, None,
+ constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
+
+ self.assertEqual(data_helper.rx_total, 2)
+ self.assertEqual(data_helper.tx_total, 4)
+ self.assertEqual(data_helper.requested_pps, 3125000.0)
+
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.port_pairs.all_ports = [0, 1, 2, 3, 4, 6, 7]
+
+ sut = mock.MagicMock()
+ sut.multi_port_stats.return_value = (True,
+ [[8, 1, 2, 3, 4, 5], [9, 1, 2, 3, 4, 5]])
+
+ data_helper = prox_helpers.ProxDataHelper(
+ vnfd_helper, sut, pkt_size, 25, None,
+ constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
+
+ self.assertEqual(data_helper.rx_total, 2)
+ self.assertEqual(data_helper.tx_total, 4)
+ self.assertEqual(data_helper.requested_pps, 10937500.0)
+
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.port_pairs.all_ports = []
+
+ sut = mock.MagicMock()
+ sut.multi_port_stats.return_value = (True,
+ [[8, 1, 2, 3, 4, 5], [9, 1, 2, 3, 4, 5]])
+
+ data_helper = prox_helpers.ProxDataHelper(
+ vnfd_helper, sut, pkt_size, 25, None,
+ constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
+
+ self.assertEqual(data_helper.rx_total, 2)
+ self.assertEqual(data_helper.tx_total, 4)
+ self.assertEqual(data_helper.requested_pps, 0.0)
+
+ def test_totals_and_pps2(self):
+ pkt_size = 180
vnfd_helper = mock.MagicMock()
vnfd_helper.port_pairs.all_ports = list(range(4))
+
+ sut = mock.MagicMock()
+ sut.multi_port_stats.return_value = (True,
+ [[0, 'A', 2, 3, 4, 5], [1, 'B', 'C', 3, 4, 5],
+ ['D', 1, 2, 3, 4, 5], [3, 1, 2, 3, 4, 'F']])
+
+ data_helper = prox_helpers.ProxDataHelper(
+ vnfd_helper, sut, pkt_size, 25, None,
+ constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
+
+ self.assertEqual(data_helper.rx_total, 0)
+ self.assertEqual(data_helper.tx_total, 0)
+ self.assertEqual(data_helper.requested_pps, 0)
+
+ def test_samples(self):
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+
+ sut = mock.MagicMock()
+ sut.multi_port_stats.return_value = (True, [[0, 1, 2, 3, 4, 5], [1, 11, 12, 3, 4, 5]])
+
+ data_helper = prox_helpers.ProxDataHelper(
+ vnfd_helper, sut, None, None, None, None)
+
+ expected = {
+ 'xe0': {
+ 'in_packets': 1,
+ 'out_packets': 2,
+ },
+ 'xe1': {
+ 'in_packets': 11,
+ 'out_packets': 12,
+ },
+ }
+ result = data_helper.samples
+ self.assertDictEqual(result, expected)
+
+ def test_samples2(self):
+ vnfd_helper = mock.MagicMock()
vnfd_helper.ports_iter.return_value = [('xe1', 3), ('xe2', 7)]
sut = mock.MagicMock()
- sut.port_stats.return_value = list(range(10))
+ sut.multi_port_stats.return_value = (True, [[3, 1, 2, 3, 4, 5], [7, 11, 12, 3, 4, 5]])
- data_helper = ProxDataHelper(vnfd_helper, sut, None, None, None)
+ data_helper = prox_helpers.ProxDataHelper(
+ vnfd_helper, sut, None, None, None, None)
expected = {
'xe1': {
- 'in_packets': 6,
- 'out_packets': 7,
+ 'in_packets': 1,
+ 'out_packets': 2,
},
'xe2': {
- 'in_packets': 6,
- 'out_packets': 7,
+ 'in_packets': 11,
+ 'out_packets': 12,
},
}
result = data_helper.samples
@@ -1571,17 +2038,20 @@ class TestProxDataHelper(unittest.TestCase):
vnfd_helper.ports_iter.return_value = [('xe1', 3), ('xe2', 7)]
sut = mock.MagicMock()
- sut.port_stats.return_value = list(range(10))
- data_helper = ProxDataHelper(vnfd_helper, sut, None, None, 5.4)
+ data_helper = prox_helpers.ProxDataHelper(vnfd_helper, sut, None, None,
+ 5.4, constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
data_helper._totals_and_pps = 12, 32, 4.5
data_helper.tsc_hz = 9.8
- data_helper.measured_stats = {'delta': TotStatsTuple(6.1, 6.2, 6.3, 6.4)}
+ data_helper.measured_stats = {
+ 'delta': prox_helpers.TotStatsTuple(6.1, 6.2, 6.3, 6.4)}
data_helper.latency = 7
self.assertIsNone(data_helper.result_tuple)
+ self.assertEqual(data_helper.line_speed, 10000000000)
- expected = ProxTestDataTuple(5.4, 9.8, 6.1, 6.2, 6.3, 7, 12, 32, 4.5)
+ expected = prox_helpers.ProxTestDataTuple(
+ 5.4, 9.8, 6.1, 6.2, 6.3, 7, 12, 32, 4.5)
with data_helper:
pass
@@ -1594,7 +2064,8 @@ class TestProxDataHelper(unittest.TestCase):
def test___enter___negative(self):
vnfd_helper = mock.MagicMock()
- data_helper = ProxDataHelper(vnfd_helper, None, None, None, None)
+ data_helper = prox_helpers.ProxDataHelper(
+ vnfd_helper, None, None, None, None, None)
vnfd_helper.port_pairs.all_ports = []
with self.assertRaises(AssertionError):
@@ -1613,17 +2084,18 @@ class TestProxDataHelper(unittest.TestCase):
start = (3, 4, 1, 2)
end = (9, 7, 6, 8)
- sut = ProxSocketHelper(mock.MagicMock())
+ sut = prox_helpers.ProxSocketHelper(mock.MagicMock())
sut.get_all_tot_stats = mock.MagicMock(side_effect=[start, end])
- data_helper = ProxDataHelper(vnfd_helper, sut, None, None, 5.4)
+ data_helper = prox_helpers.ProxDataHelper(
+ vnfd_helper, sut, None, None, 5.4, None)
self.assertIsNone(data_helper.measured_stats)
expected = {
'start_tot': start,
'end_tot': end,
- 'delta': TotStatsTuple(6, 3, 5, 6),
+ 'delta': prox_helpers.TotStatsTuple(6, 3, 5, 6),
}
with data_helper.measure_tot_stats():
pass
@@ -1637,7 +2109,8 @@ class TestProxDataHelper(unittest.TestCase):
sut = mock.MagicMock()
sut.hz.return_value = '54.6'
- data_helper = ProxDataHelper(vnfd_helper, sut, None, None, None)
+ data_helper = prox_helpers.ProxDataHelper(
+ vnfd_helper, sut, None, None, None, None)
self.assertIsNone(data_helper.tsc_hz)
@@ -1656,12 +2129,13 @@ class TestProxProfileHelper(unittest.TestCase):
mock_type2.__prox_profile_type__ = 'my_type'
mock_utils.itersubclasses.return_value = [mock_type1, mock_type2]
- self.assertEqual(ProxProfileHelper.get_cls('my_type'), mock_type2)
+ self.assertEqual(prox_helpers.ProxProfileHelper.get_cls('my_type'),
+ mock_type2)
@mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.utils')
def test_get_cls_default(self, mock_utils):
mock_utils.itersubclasses.return_value = []
- ProxProfileHelper.get_cls('my_type')
+ prox_helpers.ProxProfileHelper.get_cls('my_type')
@mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.SocketTopology')
def test_cpu_topology(self, mock_socket_topology):
@@ -1670,18 +2144,19 @@ class TestProxProfileHelper(unittest.TestCase):
resource_helper = mock.MagicMock()
resource_helper.setup_helper.ssh_helper.execute.return_value = 0, 'output', ''
- helper = ProxProfileHelper(resource_helper)
+ helper = prox_helpers.ProxProfileHelper(resource_helper)
self.assertIsNone(helper._cpu_topology)
result = helper.cpu_topology
self.assertEqual(result, 432)
self.assertIs(result, helper._cpu_topology)
self.assertIs(result, helper.cpu_topology)
+ # TODO(elfoley): Split this test; there are two sets of inputs/outputs
def test_test_cores(self):
resource_helper = mock.MagicMock()
resource_helper.setup_helper.prox_config_data = []
- helper = ProxProfileHelper(resource_helper)
+ helper = prox_helpers.ProxProfileHelper(resource_helper)
helper._cpu_topology = []
expected = []
@@ -1709,7 +2184,7 @@ class TestProxProfileHelper(unittest.TestCase):
]),
]
- helper = ProxProfileHelper(resource_helper)
+ helper = prox_helpers.ProxProfileHelper(resource_helper)
helper._cpu_topology = {
1: {
3: {
@@ -1728,17 +2203,18 @@ class TestProxProfileHelper(unittest.TestCase):
}
self.assertIsNone(helper._test_cores)
- expected = [12, 23]
+ expected = [3, 4]
result = helper.test_cores
self.assertEqual(result, expected)
self.assertIs(result, helper._test_cores)
self.assertIs(result, helper.test_cores)
+ # TODO(elfoley): Split this test; there are two sets of inputs/outputs
def test_latency_cores(self):
resource_helper = mock.MagicMock()
resource_helper.setup_helper.prox_config_data = []
- helper = ProxProfileHelper(resource_helper)
+ helper = prox_helpers.ProxProfileHelper(resource_helper)
helper._cpu_topology = []
expected = []
@@ -1766,7 +2242,7 @@ class TestProxProfileHelper(unittest.TestCase):
]),
]
- helper = ProxProfileHelper(resource_helper)
+ helper = prox_helpers.ProxProfileHelper(resource_helper)
helper._cpu_topology = {
1: {
3: {
@@ -1785,14 +2261,14 @@ class TestProxProfileHelper(unittest.TestCase):
}
self.assertIsNone(helper._latency_cores)
- expected = [12, 23]
+ expected = [3, 4]
result = helper.latency_cores
self.assertEqual(result, expected)
self.assertIs(result, helper._latency_cores)
self.assertIs(result, helper.latency_cores)
def test_all_rx_cores(self):
- helper = ProxBngProfileHelper(mock.MagicMock())
+ helper = prox_helpers.ProxBngProfileHelper(mock.MagicMock())
helper._latency_cores = expected = [3, 4, 6]
helper._test_cores = [5, 2, 1]
@@ -1822,7 +2298,7 @@ class TestProxProfileHelper(unittest.TestCase):
]),
]
- helper = ProxProfileHelper(resource_helper)
+ helper = prox_helpers.ProxProfileHelper(resource_helper)
helper._cpu_topology = {
0: {
1: {
@@ -1840,7 +2316,7 @@ class TestProxProfileHelper(unittest.TestCase):
}
}
- expected = [7, 8]
+ expected = [3, 4]
result = helper.get_cores(helper.PROX_CORE_GEN_MODE)
self.assertEqual(result, expected)
@@ -1848,7 +2324,7 @@ class TestProxProfileHelper(unittest.TestCase):
resource_helper = mock.MagicMock()
resource_helper.setup_helper.vnfd_helper.interfaces = []
- helper = ProxProfileHelper(resource_helper)
+ helper = prox_helpers.ProxProfileHelper(resource_helper)
helper._latency_cores = []
expected = []
@@ -1867,7 +2343,7 @@ class TestProxProfileHelper(unittest.TestCase):
setup_helper = mock.MagicMock()
setup_helper.vnfd_helper.interfaces = []
- helper = ProxProfileHelper(setup_helper)
+ helper = prox_helpers.ProxProfileHelper(setup_helper)
helper._cpu_topology = {
0: {
1: {
@@ -1915,7 +2391,6 @@ class TestProxProfileHelper(unittest.TestCase):
client = mock.MagicMock()
client.hz.return_value = 2
- client.port_stats.return_value = tuple(range(12))
helper.client = client
helper.get_latency = mock.MagicMock(return_value=[3.3, 3.6, 3.8])
@@ -1925,17 +2400,21 @@ class TestProxProfileHelper(unittest.TestCase):
with helper.traffic_context(64, 1):
pass
- @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.time')
- def test_run_test(self, _):
+ @mock.patch.object(time, 'sleep')
+ def test_run_test(self, *args):
resource_helper = mock.MagicMock()
resource_helper.step_delta = 0.4
resource_helper.vnfd_helper.port_pairs.all_ports = list(range(2))
- resource_helper.sut.port_stats.return_value = list(range(10))
-
- helper = ProxProfileHelper(resource_helper)
+ resource_helper.sut.multi_port_stats.return_value = (True, [[0, 1, 1, 2, 4, 5],
+ [1, 1, 2, 3, 4, 5]])
- helper.run_test(120, 5, 6.5)
+ helper = prox_helpers.ProxProfileHelper(resource_helper)
+ helper.run_test(pkt_size=120, duration=5, value=6.5, tolerated_loss=0.0,
+ line_speed=constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
+ self.assertTrue(resource_helper.sut.multi_port_stats.called)
+ self.assertTrue(resource_helper.sut.stop_all.called)
+ self.assertTrue(resource_helper.sut.reset_stats.called)
class TestProxMplsProfileHelper(unittest.TestCase):
@@ -1964,7 +2443,7 @@ class TestProxMplsProfileHelper(unittest.TestCase):
]),
]
- helper = ProxMplsProfileHelper(resource_helper)
+ helper = prox_helpers.ProxMplsProfileHelper(resource_helper)
helper._cpu_topology = {
0: {
1: {
@@ -1982,8 +2461,8 @@ class TestProxMplsProfileHelper(unittest.TestCase):
}
}
- expected_tagged = [7]
- expected_plain = [8]
+ expected_tagged = [3]
+ expected_plain = [4]
self.assertIsNone(helper._cores_tuple)
self.assertEqual(helper.tagged_cores, expected_tagged)
self.assertEqual(helper.plain_cores, expected_plain)
@@ -1991,7 +2470,7 @@ class TestProxMplsProfileHelper(unittest.TestCase):
def test_traffic_context(self):
setup_helper = mock.MagicMock()
- helper = ProxMplsProfileHelper(setup_helper)
+ helper = prox_helpers.ProxMplsProfileHelper(setup_helper)
with helper.traffic_context(120, 5.4):
pass
@@ -2034,7 +2513,7 @@ class TestProxBngProfileHelper(unittest.TestCase):
]),
]
- helper = ProxBngProfileHelper(resource_helper)
+ helper = prox_helpers.ProxBngProfileHelper(resource_helper)
helper._cpu_topology = {
0: {
1: {
@@ -2058,10 +2537,10 @@ class TestProxBngProfileHelper(unittest.TestCase):
}
}
- expected_cpe = [7]
- expected_inet = [8]
- expected_arp = [4, 3]
- expected_arp_task = [0, 4]
+ expected_cpe = [3]
+ expected_inet = [4]
+ expected_arp = [6, 9]
+ expected_arp_task = [0, 6]
expected_combined = (expected_cpe, expected_inet, expected_arp, expected_arp_task)
self.assertIsNone(helper._cores_tuple)
@@ -2071,18 +2550,31 @@ class TestProxBngProfileHelper(unittest.TestCase):
self.assertEqual(helper.arp_task_cores, expected_arp_task)
self.assertEqual(helper._cores_tuple, expected_combined)
- @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.time')
- def test_run_test(self, _):
+ @mock.patch.object(time, 'sleep')
+ def test_run_test(self, *args):
resource_helper = mock.MagicMock()
resource_helper.step_delta = 0.4
resource_helper.vnfd_helper.port_pairs.all_ports = list(range(2))
- resource_helper.sut.port_stats.return_value = list(range(10))
+ resource_helper.sut.multi_port_stats.return_value = (True, [[0, 1, 1, 2, 4, 5],
+ [1, 1, 2, 3, 4, 5]])
- helper = ProxBngProfileHelper(resource_helper)
+ helper = prox_helpers.ProxBngProfileHelper(resource_helper)
- helper.run_test(120, 5, 6.5)
- helper.run_test(-1000, 5, 6.5) # negative pkt_size is the only way to make ratio > 1
+ helper.run_test(pkt_size=120, duration=5, value=6.5, tolerated_loss=0.0,
+ line_speed=constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
+ self.assertTrue(resource_helper.sut.multi_port_stats.called)
+ self.assertTrue(resource_helper.sut.stop_all.called)
+ self.assertTrue(resource_helper.sut.reset_stats.called)
+ resource_helper.reset_mock()
+
+ # negative pkt_size is the only way to make ratio > 1
+ helper.run_test(pkt_size=-1000, duration=5, value=6.5, tolerated_loss=0.0,
+ line_speed=constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
+
+ self.assertTrue(resource_helper.sut.multi_port_stats.called)
+ self.assertTrue(resource_helper.sut.stop_all.called)
+ self.assertTrue(resource_helper.sut.reset_stats.called)
class TestProxVpeProfileHelper(unittest.TestCase):
@@ -2111,7 +2603,7 @@ class TestProxVpeProfileHelper(unittest.TestCase):
]),
]
- helper = ProxVpeProfileHelper(resource_helper)
+ helper = prox_helpers.ProxVpeProfileHelper(resource_helper)
helper._cpu_topology = {
0: {
1: {
@@ -2129,8 +2621,8 @@ class TestProxVpeProfileHelper(unittest.TestCase):
}
}
- expected_cpe = [7]
- expected_inet = [8]
+ expected_cpe = [3]
+ expected_inet = [4]
expected_combined = (expected_cpe, expected_inet)
self.assertIsNone(helper._cores_tuple)
@@ -2158,7 +2650,7 @@ class TestProxVpeProfileHelper(unittest.TestCase):
]),
]
- helper = ProxVpeProfileHelper(resource_helper)
+ helper = prox_helpers.ProxVpeProfileHelper(resource_helper)
helper._port_list = {
0: {
1: {
@@ -2185,18 +2677,22 @@ class TestProxVpeProfileHelper(unittest.TestCase):
self.assertEqual(helper.inet_ports, expected_inet)
self.assertEqual(helper._ports_tuple, expected_combined)
- @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.time')
- def test_run_test(self, _):
+ @mock.patch.object(time, 'sleep')
+ def test_run_test(self, *args):
resource_helper = mock.MagicMock()
resource_helper.step_delta = 0.4
resource_helper.vnfd_helper.port_pairs.all_ports = list(range(2))
- resource_helper.sut.port_stats.return_value = list(range(10))
+ resource_helper.sut.multi_port_stats.return_value = (True, [[0, 1, 1, 2, 4, 5],
+ [1, 1, 2, 3, 4, 5]])
- helper = ProxVpeProfileHelper(resource_helper)
+ helper = prox_helpers.ProxVpeProfileHelper(resource_helper)
- helper.run_test(120, 5, 6.5)
- helper.run_test(-1000, 5, 6.5) # negative pkt_size is the only way to make ratio > 1
+ helper.run_test(pkt_size=120, duration=5, value=6.5, tolerated_loss=0.0,
+ line_speed=constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
+ # negative pkt_size is the only way to make ratio > 1
+ helper.run_test(pkt_size=-1000, duration=5, value=6.5, tolerated_loss=0.0,
+ line_speed=constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
class TestProxlwAFTRProfileHelper(unittest.TestCase):
@@ -2225,7 +2721,7 @@ class TestProxlwAFTRProfileHelper(unittest.TestCase):
]),
]
- helper = ProxlwAFTRProfileHelper(resource_helper)
+ helper = prox_helpers.ProxlwAFTRProfileHelper(resource_helper)
helper._cpu_topology = {
0: {
1: {
@@ -2243,8 +2739,8 @@ class TestProxlwAFTRProfileHelper(unittest.TestCase):
}
}
- expected_tun = [7]
- expected_inet = [8]
+ expected_tun = [3]
+ expected_inet = [4]
expected_combined = (expected_tun, expected_inet)
self.assertIsNone(helper._cores_tuple)
@@ -2272,7 +2768,7 @@ class TestProxlwAFTRProfileHelper(unittest.TestCase):
]),
]
- helper = ProxlwAFTRProfileHelper(resource_helper)
+ helper = prox_helpers.ProxlwAFTRProfileHelper(resource_helper)
helper._port_list = {
0: {
1: {
@@ -2299,14 +2795,31 @@ class TestProxlwAFTRProfileHelper(unittest.TestCase):
self.assertEqual(helper.inet_ports, expected_inet)
self.assertEqual(helper._ports_tuple, expected_combined)
- @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.time')
- def test_run_test(self, _):
+ @mock.patch.object(time, 'sleep')
+ def test_run_test(self, *args):
resource_helper = mock.MagicMock()
resource_helper.step_delta = 0.4
resource_helper.vnfd_helper.port_pairs.all_ports = list(range(2))
- resource_helper.sut.port_stats.return_value = list(range(10))
+ resource_helper.sut.multi_port_stats.return_value = (True, [[0, 1, 2, 4, 6, 5],
+ [1, 1, 2, 3, 4, 5]])
+
+ helper = prox_helpers.ProxlwAFTRProfileHelper(resource_helper)
+
+ helper.run_test(pkt_size=120, duration=5, value=6.5, tolerated_loss=0.0,
+ line_speed=constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
+
+ # negative pkt_size is the only way to make ratio > 1
+ helper.run_test(pkt_size=-1000, duration=5, value=6.5, tolerated_loss=0.0,
+ line_speed=constants.NIC_GBPS_DEFAULT * constants.ONE_GIGABIT_IN_BITS)
+
- helper = ProxlwAFTRProfileHelper(resource_helper)
+class TestProxIrqProfileHelper(unittest.TestCase):
- helper.run_test(120, 5, 6.5)
- helper.run_test(-1000, 5, 6.5) # negative pkt_size is the only way to make ratio > 1
+ def test_run_test(self, *args):
+ resource_helper = mock.MagicMock()
+ helper = prox_helpers.ProxIrqProfileHelper(resource_helper)
+ self.assertIsNone(helper._cores_tuple)
+ self.assertIsNone(helper._ports_tuple)
+ self.assertIsNone(helper._latency_cores)
+ self.assertIsNone(helper._test_cores)
+ self.assertIsNone(helper._cpu_topology)
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_irq.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_irq.py
new file mode 100644
index 000000000..94197c3be
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_irq.py
@@ -0,0 +1,828 @@
+# Copyright (c) 2017-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+import mock
+import errno
+
+from yardstick.tests import STL_MOCKS
+from yardstick.common import exceptions as y_exceptions
+from yardstick.network_services.vnf_generic.vnf.prox_irq import ProxIrqGen
+from yardstick.network_services.vnf_generic.vnf.prox_irq import ProxIrqVNF
+from yardstick.benchmark.contexts import base as ctx_base
+
+SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
+
+STLClient = mock.MagicMock()
+stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
+stl_patch.start()
+
+if stl_patch:
+ from yardstick.network_services.vnf_generic.vnf import prox_vnf
+ from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+
+VNF_NAME = "vnf__1"
+
+class TestProxIrqVNF(unittest.TestCase):
+
+ SCENARIO_CFG = {
+ 'task_path': "",
+ 'nodes': {
+ 'tg__1': 'trafficgen_1.yardstick',
+ 'vnf__1': 'vnf.yardstick'},
+ 'runner': {
+ 'duration': 600, 'type': 'Duration'},
+ 'topology': 'prox-tg-topology-2.yaml',
+ 'traffic_profile': '../../traffic_profiles/prox_binsearch.yaml',
+ 'type': 'NSPerf',
+ 'options': {
+ 'tg__1': {'prox_args': {'-e': '',
+ '-t': ''},
+ 'prox_config': 'configs/l3-gen-2.cfg',
+ 'prox_path':
+ '/root/dppd-PROX-v035/build/prox'},
+ 'vnf__1': {
+ 'prox_args': {'-t': ''},
+ 'prox_config': 'configs/l3-swap-2.cfg',
+ 'prox_path': '/root/dppd-PROX-v035/build/prox'}}}
+
+ VNFD_0 = {
+ 'short-name': 'VpeVnf',
+ 'vdu': [
+ {
+ 'routing_table': [
+ {
+ 'network': '152.16.100.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '152.16.40.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'if': 'xe1'
+ },
+ ],
+ 'description': 'VPE approximation using DPDK',
+ 'name': 'vpevnf-baremetal',
+ 'nd_route_tbl': [
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:6414',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:2814',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
+ 'if': 'xe1'
+ },
+ ],
+ 'id': 'vpevnf-baremetal',
+ 'external-interface': [
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:03',
+ 'vpci': '0000:05:00.0',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.100.20',
+ 'local_mac': '00:00:00:00:00:01'
+ },
+ 'vnfd-connection-point-ref': 'xe0',
+ 'name': 'xe0'
+ },
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:04',
+ 'vpci': '0000:05:00.1',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 1,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_mac': '00:00:00:00:00:02'
+ },
+ 'vnfd-connection-point-ref': 'xe1',
+ 'name': 'xe1'
+ },
+ ],
+ },
+ ],
+ 'description': 'Vpe approximation using DPDK',
+ 'mgmt-interface': {
+ 'vdu-id': 'vpevnf-baremetal',
+ 'host': '1.1.1.1',
+ 'password': 'r00t',
+ 'user': 'root',
+ 'ip': '1.1.1.1'
+ },
+ 'benchmark': {
+ 'kpi': [
+ 'packets_in',
+ 'packets_fwd',
+ 'packets_dropped',
+ ],
+ },
+ 'connection-point': [
+ {
+ 'type': 'VPORT',
+ 'name': 'xe0',
+ },
+ {
+ 'type': 'VPORT',
+ 'name': 'xe1',
+ },
+ ],
+ 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
+ }
+
+ VNFD = {
+ 'vnfd:vnfd-catalog': {
+ 'vnfd': [
+ VNFD_0,
+ ]
+ }
+ }
+
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100, # pps
+ "flow_number": 10,
+ "frame_size": 64,
+ },
+ }
+
+ CONTEXT_CFG = {
+ 'nodes': {
+ 'tg__2': {
+ 'member-vnf-index': '3',
+ 'role': 'TrafficGen',
+ 'name': 'trafficgen_2.yardstick',
+ 'vnfd-id-ref': 'tg__2',
+ 'ip': '1.2.1.1',
+ 'interfaces': {
+ 'xe0': {
+ 'local_iface_name': 'ens513f0',
+ 'vld_id': prox_vnf.ProxApproxVnf.DOWNLINK,
+ 'netmask': '255.255.255.0',
+ 'local_ip': '152.16.40.20',
+ 'dst_mac': '00:00:00:00:00:01',
+ 'local_mac': '00:00:00:00:00:03',
+ 'dst_ip': '152.16.40.19',
+ 'driver': 'ixgbe',
+ 'vpci': '0000:02:00.0',
+ 'dpdk_port_num': 0,
+ },
+ 'xe1': {
+ 'local_iface_name': 'ens513f1',
+ 'netmask': '255.255.255.0',
+ 'network': '202.16.100.0',
+ 'local_ip': '202.16.100.20',
+ 'local_mac': '00:1e:67:d0:60:5d',
+ 'driver': 'ixgbe',
+ 'vpci': '0000:02:00.1',
+ 'dpdk_port_num': 1,
+ },
+ },
+ 'password': 'r00t',
+ 'VNF model': 'l3fwd_vnf.yaml',
+ 'user': 'root',
+ },
+ 'tg__1': {
+ 'member-vnf-index': '1',
+ 'role': 'TrafficGen',
+ 'name': 'trafficgen_1.yardstick',
+ 'vnfd-id-ref': 'tg__1',
+ 'ip': '1.2.1.1',
+ 'interfaces': {
+ 'xe0': {
+ 'local_iface_name': 'ens785f0',
+ 'vld_id': prox_vnf.ProxApproxVnf.UPLINK,
+ 'netmask': '255.255.255.0',
+ 'local_ip': '152.16.100.20',
+ 'dst_mac': '00:00:00:00:00:02',
+ 'local_mac': '00:00:00:00:00:04',
+ 'dst_ip': '152.16.100.19',
+ 'driver': 'i40e',
+ 'vpci': '0000:05:00.0',
+ 'dpdk_port_num': 0,
+ },
+ 'xe1': {
+ 'local_iface_name': 'ens785f1',
+ 'netmask': '255.255.255.0',
+ 'local_ip': '152.16.100.21',
+ 'local_mac': '00:00:00:00:00:01',
+ 'driver': 'i40e',
+ 'vpci': '0000:05:00.1',
+ 'dpdk_port_num': 1,
+ },
+ },
+ 'password': 'r00t',
+ 'VNF model': 'tg_rfc2544_tpl.yaml',
+ 'user': 'root',
+ },
+ 'vnf__1': {
+ 'name': 'vnf.yardstick',
+ 'vnfd-id-ref': 'vnf__1',
+ 'ip': '1.2.1.1',
+ 'interfaces': {
+ 'xe0': {
+ 'local_iface_name': 'ens786f0',
+ 'vld_id': prox_vnf.ProxApproxVnf.UPLINK,
+ 'netmask': '255.255.255.0',
+ 'local_ip': '152.16.100.19',
+ 'dst_mac': '00:00:00:00:00:04',
+ 'local_mac': '00:00:00:00:00:02',
+ 'dst_ip': '152.16.100.20',
+ 'driver': 'i40e',
+ 'vpci': '0000:05:00.0',
+ 'dpdk_port_num': 0,
+ },
+ 'xe1': {
+ 'local_iface_name': 'ens786f1',
+ 'vld_id': prox_vnf.ProxApproxVnf.DOWNLINK,
+ 'netmask': '255.255.255.0',
+ 'local_ip': '152.16.40.19',
+ 'dst_mac': '00:00:00:00:00:03',
+ 'local_mac': '00:00:00:00:00:01',
+ 'dst_ip': '152.16.40.20',
+ 'driver': 'i40e',
+ 'vpci': '0000:05:00.1',
+ 'dpdk_port_num': 1,
+ },
+ },
+ 'routing_table': [
+ {
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'network': '152.16.100.20',
+ 'if': 'xe0',
+ },
+ {
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'network': '152.16.40.20',
+ 'if': 'xe1',
+ },
+ ],
+ 'member-vnf-index': '2',
+ 'host': '1.2.1.1',
+ 'role': 'vnf',
+ 'user': 'root',
+ 'nd_route_tbl': [
+ {
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
+ 'network': '0064:ff9b:0:0:0:0:9810:6414',
+ 'if': 'xe0',
+ },
+ {
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
+ 'network': '0064:ff9b:0:0:0:0:9810:2814',
+ 'if': 'xe1',
+ },
+ ],
+ 'password': 'r00t',
+ 'VNF model': 'prox_vnf.yaml',
+ },
+ },
+ }
+
+ def test___init__(self):
+ prox_irq_vnf = ProxIrqVNF('vnf1', self.VNFD_0)
+
+ self.assertEqual(prox_irq_vnf.name, 'vnf1')
+ self.assertDictEqual(prox_irq_vnf.vnfd_helper, self.VNFD_0)
+
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
+ @mock.patch(SSH_HELPER)
+ def test_collect_kpi(self, ssh, *args):
+ mock_ssh(ssh)
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ resource_helper = mock.MagicMock()
+
+ resource_helper = mock.MagicMock()
+
+ core_1 = {'bucket_1': 1, 'bucket_2': 2, 'bucket_3': 3, 'bucket_4': 4, 'bucket_5': 5,
+ 'bucket_6': 6, 'bucket_7': 7, 'bucket_8': 8, 'bucket_9': 9, 'bucket_10': 10,
+ 'bucket_11': 11, 'bucket_12': 12, 'bucket_0': 100, 'cpu': 1, 'max_irq': 12,
+ 'overflow': 10}
+ core_2 = {'bucket_1': 1, 'bucket_2': 2, 'bucket_3': 3, 'bucket_4': 4, 'bucket_5': 5,
+ 'bucket_6': 0, 'bucket_7': 0, 'bucket_8': 0, 'bucket_9': 0, 'bucket_10': 0,
+ 'bucket_11': 0, 'bucket_12': 0, 'bucket_0': 100, 'cpu': 2, 'max_irq': 12,
+ 'overflow': 10}
+
+ irq_data = {'core_1': core_1, 'core_2': core_2}
+ resource_helper.execute.return_value = (irq_data)
+
+ build_config_file = mock.MagicMock()
+ build_config_file.return_value = None
+
+ prox_irq_vnf = ProxIrqVNF(VNF_NAME, vnfd)
+
+ startup = ["global", [["eal", "-4"]]]
+ master_0 = ["core 0", [["mode", "master"]]]
+ core_1 = ["core 1", [["mode", "irq"]]]
+ core_2 = ["core 2", [["mode", "irq"], ["task", "2"]]]
+
+ prox_irq_vnf.setup_helper._prox_config_data = \
+ [startup, master_0, core_1, core_2]
+
+ prox_irq_vnf.scenario_helper.scenario_cfg = self.SCENARIO_CFG
+ prox_irq_vnf.resource_helper = resource_helper
+ prox_irq_vnf.setup_helper.build_config_file = build_config_file
+
+ result = prox_irq_vnf.collect_kpi()
+ self.assertDictEqual(result["collect_stats"], {})
+
+ result = prox_irq_vnf.collect_kpi()
+ self.assertFalse('bucket_10' in result["collect_stats"]['core_2'])
+ self.assertFalse('bucket_11' in result["collect_stats"]['core_2'])
+ self.assertFalse('bucket_12' in result["collect_stats"]['core_2'])
+ self.assertEqual(result["collect_stats"]['core_2']['max_irq'], 12)
+
+
+ @mock.patch(SSH_HELPER)
+ def test_vnf_execute_oserror(self, ssh, *args):
+ mock_ssh(ssh)
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ prox_irq_vnf = ProxIrqVNF(VNF_NAME, vnfd)
+ prox_irq_vnf.resource_helper = resource_helper = mock.Mock()
+
+ resource_helper.execute.side_effect = OSError(errno.EPIPE, "")
+ prox_irq_vnf.vnf_execute("", _ignore_errors=True)
+
+ resource_helper.execute.side_effect = OSError(errno.ESHUTDOWN, "")
+ prox_irq_vnf.vnf_execute("", _ignore_errors=True)
+
+ resource_helper.execute.side_effect = OSError(errno.EADDRINUSE, "")
+ with self.assertRaises(OSError):
+ prox_irq_vnf.vnf_execute("", _ignore_errors=True)
+
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.socket')
+ @mock.patch(SSH_HELPER)
+ def test_terminate(self, ssh, *args):
+ mock_ssh(ssh)
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+
+ mock_ssh(ssh, exec_result=(1, "", ""))
+ prox_irq_vnf = ProxIrqVNF(VNF_NAME, vnfd)
+
+ prox_irq_vnf._terminated = mock.MagicMock()
+ prox_irq_vnf._traffic_process = mock.MagicMock()
+ prox_irq_vnf._traffic_process.terminate = mock.Mock()
+ prox_irq_vnf.ssh_helper = mock.MagicMock()
+ prox_irq_vnf.setup_helper = mock.MagicMock()
+ prox_irq_vnf.resource_helper = mock.MagicMock()
+ prox_irq_vnf._vnf_wrapper.setup_helper = mock.MagicMock()
+ prox_irq_vnf._vnf_wrapper._vnf_process = mock.MagicMock(**{"is_alive.return_value": False})
+ prox_irq_vnf._vnf_wrapper.resource_helper = mock.MagicMock()
+
+ prox_irq_vnf._run_prox = mock.Mock(return_value=0)
+ prox_irq_vnf.q_in = mock.Mock()
+ prox_irq_vnf.q_out = mock.Mock()
+
+ self.assertIsNone(prox_irq_vnf.terminate())
+
+ @mock.patch(SSH_HELPER)
+ def test_wait_for_instantiate_panic(self, ssh, *args):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+
+ mock_ssh(ssh, exec_result=(1, "", ""))
+ prox_irq_vnf = ProxIrqVNF(VNF_NAME, vnfd)
+
+ prox_irq_vnf._terminated = mock.MagicMock()
+ prox_irq_vnf._traffic_process = mock.MagicMock()
+ prox_irq_vnf._traffic_process.terminate = mock.Mock()
+ prox_irq_vnf.ssh_helper = mock.MagicMock()
+ prox_irq_vnf.setup_helper = mock.MagicMock()
+ prox_irq_vnf.resource_helper = mock.MagicMock()
+ prox_irq_vnf._vnf_wrapper.setup_helper = mock.MagicMock()
+ prox_irq_vnf._vnf_wrapper._vnf_process = mock.MagicMock(**{"is_alive.return_value": False})
+ prox_irq_vnf._vnf_wrapper.resource_helper = mock.MagicMock()
+
+ prox_irq_vnf._run_prox = mock.Mock(return_value=0)
+ prox_irq_vnf.q_in = mock.Mock()
+ prox_irq_vnf.q_out = mock.Mock()
+ prox_irq_vnf.WAIT_TIME = 0
+ with self.assertRaises(RuntimeError):
+ prox_irq_vnf.wait_for_instantiate()
+
+class TestProxIrqGen(unittest.TestCase):
+
+ SCENARIO_CFG = {
+ 'task_path': "",
+ 'nodes': {
+ 'tg__1': 'trafficgen_1.yardstick',
+ 'vnf__1': 'vnf.yardstick'},
+ 'runner': {
+ 'duration': 600, 'type': 'Duration'},
+ 'topology': 'prox-tg-topology-2.yaml',
+ 'traffic_profile': '../../traffic_profiles/prox_binsearch.yaml',
+ 'type': 'NSPerf',
+ 'options': {
+ 'tg__1': {'prox_args': {'-e': '',
+ '-t': ''},
+ 'prox_config': 'configs/l3-gen-2.cfg',
+ 'prox_path':
+ '/root/dppd-PROX-v035/build/prox'},
+ 'vnf__1': {
+ 'prox_args': {'-t': ''},
+ 'prox_config': 'configs/l3-swap-2.cfg',
+ 'prox_path': '/root/dppd-PROX-v035/build/prox'}}}
+
+ VNFD_0 = {
+ 'short-name': 'VpeVnf',
+ 'vdu': [
+ {
+ 'routing_table': [
+ {
+ 'network': '152.16.100.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '152.16.40.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'if': 'xe1'
+ },
+ ],
+ 'description': 'VPE approximation using DPDK',
+ 'name': 'vpevnf-baremetal',
+ 'nd_route_tbl': [
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:6414',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:2814',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
+ 'if': 'xe1'
+ },
+ ],
+ 'id': 'vpevnf-baremetal',
+ 'external-interface': [
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:03',
+ 'vpci': '0000:05:00.0',
+ 'driver': 'i40e',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.100.20',
+ 'local_mac': '00:00:00:00:00:01'
+ },
+ 'vnfd-connection-point-ref': 'xe0',
+ 'name': 'xe0'
+ },
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:04',
+ 'vpci': '0000:05:00.1',
+ 'driver': 'ixgbe',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 1,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_mac': '00:00:00:00:00:02'
+ },
+ 'vnfd-connection-point-ref': 'xe1',
+ 'name': 'xe1'
+ },
+ ],
+ },
+ ],
+ 'description': 'Vpe approximation using DPDK',
+ 'mgmt-interface': {
+ 'vdu-id': 'vpevnf-baremetal',
+ 'host': '1.1.1.1',
+ 'password': 'r00t',
+ 'user': 'root',
+ 'ip': '1.1.1.1'
+ },
+ 'benchmark': {
+ 'kpi': [
+ 'packets_in',
+ 'packets_fwd',
+ 'packets_dropped',
+ ],
+ },
+ 'connection-point': [
+ {
+ 'type': 'VPORT',
+ 'name': 'xe0',
+ },
+ {
+ 'type': 'VPORT',
+ 'name': 'xe1',
+ },
+ ],
+ 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
+ }
+
+ VNFD = {
+ 'vnfd:vnfd-catalog': {
+ 'vnfd': [
+ VNFD_0,
+ ],
+ },
+ }
+
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100, # pps
+ "flow_number": 10,
+ "frame_size": 64,
+ },
+ }
+
+ CONTEXT_CFG = {
+ 'nodes': {
+ 'tg__2': {
+ 'member-vnf-index': '3',
+ 'role': 'TrafficGen',
+ 'name': 'trafficgen_2.yardstick',
+ 'vnfd-id-ref': 'tg__2',
+ 'ip': '1.2.1.1',
+ 'interfaces': {
+ 'xe0': {
+ 'local_iface_name': 'ens513f0',
+ 'vld_id': prox_vnf.ProxApproxVnf.DOWNLINK,
+ 'netmask': '255.255.255.0',
+ 'local_ip': '152.16.40.20',
+ 'dst_mac': '00:00:00:00:00:01',
+ 'local_mac': '00:00:00:00:00:03',
+ 'dst_ip': '152.16.40.19',
+ 'driver': 'ixgbe',
+ 'vpci': '0000:02:00.0',
+ 'dpdk_port_num': 0,
+ },
+ 'xe1': {
+ 'local_iface_name': 'ens513f1',
+ 'netmask': '255.255.255.0',
+ 'network': '202.16.100.0',
+ 'local_ip': '202.16.100.20',
+ 'local_mac': '00:1e:67:d0:60:5d',
+ 'driver': 'ixgbe',
+ 'vpci': '0000:02:00.1',
+ 'dpdk_port_num': 1,
+ },
+ },
+ 'password': 'r00t',
+ 'VNF model': 'l3fwd_vnf.yaml',
+ 'user': 'root',
+ },
+ 'tg__1': {
+ 'member-vnf-index': '1',
+ 'role': 'TrafficGen',
+ 'name': 'trafficgen_1.yardstick',
+ 'vnfd-id-ref': 'tg__1',
+ 'ip': '1.2.1.1',
+ 'interfaces': {
+ 'xe0': {
+ 'local_iface_name': 'ens785f0',
+ 'vld_id': prox_vnf.ProxApproxVnf.UPLINK,
+ 'netmask': '255.255.255.0',
+ 'local_ip': '152.16.100.20',
+ 'dst_mac': '00:00:00:00:00:02',
+ 'local_mac': '00:00:00:00:00:04',
+ 'dst_ip': '152.16.100.19',
+ 'driver': 'i40e',
+ 'vpci': '0000:05:00.0',
+ 'dpdk_port_num': 0,
+ },
+ 'xe1': {
+ 'local_iface_name': 'ens785f1',
+ 'netmask': '255.255.255.0',
+ 'local_ip': '152.16.100.21',
+ 'local_mac': '00:00:00:00:00:01',
+ 'driver': 'i40e',
+ 'vpci': '0000:05:00.1',
+ 'dpdk_port_num': 1,
+ },
+ },
+ 'password': 'r00t',
+ 'VNF model': 'tg_rfc2544_tpl.yaml',
+ 'user': 'root',
+ },
+ 'vnf__1': {
+ 'name': 'vnf.yardstick',
+ 'vnfd-id-ref': 'vnf__1',
+ 'ip': '1.2.1.1',
+ 'interfaces': {
+ 'xe0': {
+ 'local_iface_name': 'ens786f0',
+ 'vld_id': prox_vnf.ProxApproxVnf.UPLINK,
+ 'netmask': '255.255.255.0',
+ 'local_ip': '152.16.100.19',
+ 'dst_mac': '00:00:00:00:00:04',
+ 'local_mac': '00:00:00:00:00:02',
+ 'dst_ip': '152.16.100.20',
+ 'driver': 'i40e',
+ 'vpci': '0000:05:00.0',
+ 'dpdk_port_num': 0,
+ },
+ 'xe1': {
+ 'local_iface_name': 'ens786f1',
+ 'vld_id': prox_vnf.ProxApproxVnf.DOWNLINK,
+ 'netmask': '255.255.255.0',
+ 'local_ip': '152.16.40.19',
+ 'dst_mac': '00:00:00:00:00:03',
+ 'local_mac': '00:00:00:00:00:01',
+ 'dst_ip': '152.16.40.20',
+ 'driver': 'i40e',
+ 'vpci': '0000:05:00.1',
+ 'dpdk_port_num': 1,
+ },
+ },
+ 'routing_table': [
+ {
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'network': '152.16.100.20',
+ 'if': 'xe0',
+ },
+ {
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'network': '152.16.40.20',
+ 'if': 'xe1',
+ },
+ ],
+ 'member-vnf-index': '2',
+ 'host': '1.2.1.1',
+ 'role': 'vnf',
+ 'user': 'root',
+ 'nd_route_tbl': [
+ {
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
+ 'network': '0064:ff9b:0:0:0:0:9810:6414',
+ 'if': 'xe0',
+ },
+ {
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
+ 'network': '0064:ff9b:0:0:0:0:9810:2814',
+ 'if': 'xe1',
+ },
+ ],
+ 'password': 'r00t',
+ 'VNF model': 'prox_vnf.yaml',
+ },
+ },
+ }
+
+
+ def test__check_status(self):
+ prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
+
+ with self.assertRaises(NotImplementedError):
+ prox_irq_gen._check_status()
+
+ def test_listen_traffic(self):
+ prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
+
+ prox_irq_gen.listen_traffic(mock.Mock())
+
+ def test_verify_traffic(self):
+ prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
+
+ prox_irq_gen.verify_traffic(mock.Mock())
+
+ mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.socket')
+ @mock.patch(SSH_HELPER)
+ def test_terminate(self, ssh, *args):
+ mock_ssh(ssh)
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ prox_traffic_gen = ProxIrqGen(VNF_NAME, vnfd)
+ prox_traffic_gen._terminated = mock.MagicMock()
+ prox_traffic_gen._traffic_process = mock.MagicMock()
+ prox_traffic_gen._traffic_process.terminate = mock.Mock()
+ prox_traffic_gen.ssh_helper = mock.MagicMock()
+ prox_traffic_gen.setup_helper = mock.MagicMock()
+ prox_traffic_gen.resource_helper = mock.MagicMock()
+ prox_traffic_gen._vnf_wrapper.setup_helper = mock.MagicMock()
+ prox_traffic_gen._vnf_wrapper._vnf_process = mock.MagicMock()
+ prox_traffic_gen._vnf_wrapper.resource_helper = mock.MagicMock()
+ self.assertIsNone(prox_traffic_gen.terminate())
+
+ def test__wait_for_process(self):
+ prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
+ with mock.patch.object(prox_irq_gen, '_check_status',
+ return_value=0) as mock_status, \
+ mock.patch.object(prox_irq_gen, '_tg_process') as mock_proc:
+ mock_proc.is_alive.return_value = True
+ mock_proc.exitcode = 234
+ self.assertEqual(prox_irq_gen._wait_for_process(), 234)
+ mock_proc.is_alive.assert_called_once()
+ mock_status.assert_called_once()
+
+ def test__wait_for_process_not_alive(self):
+ prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
+ with mock.patch.object(prox_irq_gen, '_tg_process') as mock_proc:
+ mock_proc.is_alive.return_value = False
+ self.assertRaises(RuntimeError, prox_irq_gen._wait_for_process)
+ mock_proc.is_alive.assert_called_once()
+
+ def test__wait_for_process_delayed(self):
+ prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
+ with mock.patch.object(prox_irq_gen, '_check_status',
+ side_effect=[1, 0]) as mock_status, \
+ mock.patch.object(prox_irq_gen,
+ '_tg_process') as mock_proc:
+ mock_proc.is_alive.return_value = True
+ mock_proc.exitcode = 234
+ self.assertEqual(prox_irq_gen._wait_for_process(), 234)
+ mock_proc.is_alive.assert_has_calls([mock.call(), mock.call()])
+ mock_status.assert_has_calls([mock.call(), mock.call()])
+
+ def test_scale(self):
+ prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
+ self.assertRaises(y_exceptions.FunctionNotImplemented,
+ prox_irq_gen.scale)
+
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
+ @mock.patch(SSH_HELPER)
+ def test_collect_kpi(self, ssh, *args):
+ mock_ssh(ssh)
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ resource_helper = mock.MagicMock()
+
+ core_1 = {'bucket_1': 1, 'bucket_2': 2, 'bucket_3': 3, 'bucket_4': 4, 'bucket_5': 5,
+ 'bucket_6': 6, 'bucket_7': 7, 'bucket_8': 8, 'bucket_9': 9, 'bucket_10': 10,
+ 'bucket_11': 11, 'bucket_12': 12, 'bucket_0': 100, 'cpu': 1, 'max_irq': 12,
+ 'overflow': 10}
+ core_2 = {'bucket_1': 1, 'bucket_2': 2, 'bucket_3': 3, 'bucket_4': 4, 'bucket_5': 5,
+ 'bucket_6': 0, 'bucket_7': 0, 'bucket_8': 0, 'bucket_9': 0, 'bucket_10': 0,
+ 'bucket_11': 0, 'bucket_12': 0, 'bucket_0': 100, 'cpu': 2, 'max_irq': 12,
+ 'overflow': 10}
+
+ irq_data = {'core_1': core_1, 'core_2': core_2}
+ resource_helper.sut.irq_core_stats.return_value = (irq_data)
+
+ build_config_file = mock.MagicMock()
+ build_config_file.return_value = None
+
+ prox_irq_gen = ProxIrqGen(VNF_NAME, vnfd)
+
+ startup = ["global", [["eal", "-4"]]]
+ master_0 = ["core 0", [["mode", "master"]]]
+ core_1 = ["core 1", [["mode", "irq"]]]
+ core_2 = ["core 2", [["mode", "irq"], ["task", "2"]]]
+
+ prox_irq_gen.setup_helper._prox_config_data = \
+ [startup, master_0, core_1, core_2]
+
+ prox_irq_gen.scenario_helper.scenario_cfg = self.SCENARIO_CFG
+ prox_irq_gen.resource_helper = resource_helper
+ prox_irq_gen.setup_helper.build_config_file = build_config_file
+
+ result = prox_irq_gen.collect_kpi()
+ self.assertDictEqual(result["collect_stats"], {})
+
+ result = prox_irq_gen.collect_kpi()
+ self.assertFalse('bucket_10' in result["collect_stats"]['core_2'])
+ self.assertFalse('bucket_11' in result["collect_stats"]['core_2'])
+ self.assertFalse('bucket_12' in result["collect_stats"]['core_2'])
+ self.assertEqual(result["collect_stats"]['core_2']['max_irq'], 12)
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py
index 769279066..76fd74dfe 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -21,7 +19,8 @@ import unittest
import mock
from copy import deepcopy
-from tests.unit import STL_MOCKS
+from yardstick.tests import STL_MOCKS
+from yardstick.benchmark.contexts import base as ctx_base
SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
@@ -31,8 +30,8 @@ stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
stl_patch.start()
if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.prox_vnf import ProxApproxVnf
- from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+ from yardstick.network_services.vnf_generic.vnf import prox_vnf
+ from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
NAME = "vnf__1"
@@ -131,6 +130,8 @@ class TestProxApproxVnf(unittest.TestCase):
'packets_in',
'packets_fwd',
'packets_dropped',
+ 'curr_packets_fwd',
+ 'curr_packets_in'
],
},
'connection-point': [
@@ -187,7 +188,7 @@ class TestProxApproxVnf(unittest.TestCase):
'interfaces': {
'xe0': {
'local_iface_name': 'ens513f0',
- 'vld_id': ProxApproxVnf.DOWNLINK,
+ 'vld_id': prox_vnf.ProxApproxVnf.DOWNLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.40.20',
'dst_mac': '00:00:00:00:00:01',
@@ -221,7 +222,7 @@ class TestProxApproxVnf(unittest.TestCase):
'interfaces': {
'xe0': {
'local_iface_name': 'ens785f0',
- 'vld_id': ProxApproxVnf.UPLINK,
+ 'vld_id': prox_vnf.ProxApproxVnf.UPLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.100.20',
'dst_mac': '00:00:00:00:00:02',
@@ -252,7 +253,7 @@ class TestProxApproxVnf(unittest.TestCase):
'interfaces': {
'xe0': {
'local_iface_name': 'ens786f0',
- 'vld_id': ProxApproxVnf.UPLINK,
+ 'vld_id': prox_vnf.ProxApproxVnf.UPLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.100.19',
'dst_mac': '00:00:00:00:00:04',
@@ -264,7 +265,7 @@ class TestProxApproxVnf(unittest.TestCase):
},
'xe1': {
'local_iface_name': 'ens786f1',
- 'vld_id': ProxApproxVnf.DOWNLINK,
+ 'vld_id': prox_vnf.ProxApproxVnf.DOWNLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.40.19',
'dst_mac': '00:00:00:00:00:03',
@@ -316,51 +317,112 @@ class TestProxApproxVnf(unittest.TestCase):
@mock.patch(SSH_HELPER)
def test___init__(self, ssh, *args):
mock_ssh(ssh)
- prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
self.assertIsNone(prox_approx_vnf._vnf_process)
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
@mock.patch(SSH_HELPER)
def test_collect_kpi_no_client(self, ssh, *args):
mock_ssh(ssh)
- prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {prox_approx_vnf.name: "mock"}
+ }
prox_approx_vnf.resource_helper = None
expected = {
+ 'physical_node': 'mock_node',
'packets_in': 0,
'packets_dropped': 0,
'packets_fwd': 0,
- 'collect_stats': {'core': {}},
+ 'curr_packets_in': 0,
+ 'curr_packets_fwd': 0,
+ 'collect_stats': {'core': {}}
}
result = prox_approx_vnf.collect_kpi()
self.assertEqual(result, expected)
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
@mock.patch(SSH_HELPER)
def test_collect_kpi(self, ssh, *args):
mock_ssh(ssh)
resource_helper = mock.MagicMock()
- resource_helper.execute.return_value = list(range(12))
+ resource_helper.execute.return_value = (True,
+ [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]])
resource_helper.collect_collectd_kpi.return_value = {'core': {'result': 234}}
- prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {prox_approx_vnf.name: "mock"}
+ }
prox_approx_vnf.resource_helper = resource_helper
+ prox_approx_vnf.tsc_hz = 1000
expected = {
- 'packets_in': 6,
- 'packets_dropped': 1,
- 'packets_fwd': 7,
+ 'curr_packets_in': 200,
+ 'curr_packets_fwd': 400,
+ 'physical_node': 'mock_node',
+ 'packets_in': 2,
+ 'packets_dropped': 2,
+ 'packets_fwd': 4,
'collect_stats': {'core': {'result': 234}},
}
result = prox_approx_vnf.collect_kpi()
- self.assertEqual(result, expected)
+ self.assertEqual(result['packets_in'], expected['packets_in'])
+ self.assertEqual(result['packets_dropped'], expected['packets_dropped'])
+ self.assertEqual(result['packets_fwd'], expected['packets_fwd'])
+ self.assertEqual(result['curr_packets_in'], expected['curr_packets_in'])
+ self.assertEqual(result['curr_packets_fwd'], expected['curr_packets_fwd'])
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
@mock.patch(SSH_HELPER)
- def test_collect_kpi_error(self, ssh, *args):
+ def test_collect_kpi_bad_input(self, ssh, *args):
mock_ssh(ssh)
resource_helper = mock.MagicMock()
+ resource_helper.execute.return_value = (True,
+ [[0, 'A', 'B', 'C', 'D', 'E'],
+ ['F', 1, 2, 3, 4, 5]])
- prox_approx_vnf = ProxApproxVnf(NAME, deepcopy(self.VNFD0))
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {prox_approx_vnf.name: "mock"}
+ }
+ prox_approx_vnf.resource_helper = resource_helper
+
+ result = prox_approx_vnf.collect_kpi()
+ self.assertDictEqual(result, {})
+
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
+ @mock.patch(SSH_HELPER)
+ def test_collect_kpi_bad_input2(self, ssh, *args):
+ mock_ssh(ssh)
+
+ resource_helper = mock.MagicMock()
+ resource_helper.execute.return_value = (False,
+ [[0, 'A', 'B', 'C', 'D', 'E'],
+ ['F', 1, 2, 3, 4, 5]])
+
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {prox_approx_vnf.name: "mock"}
+ }
+ prox_approx_vnf.resource_helper = resource_helper
+
+ result = prox_approx_vnf.collect_kpi()
+ self.assertDictEqual(result, {})
+
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
+ @mock.patch(SSH_HELPER)
+ def test_collect_kpi_error(self, ssh, *args):
+ mock_ssh(ssh)
+
+ resource_helper = mock.MagicMock()
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, deepcopy(self.VNFD0))
+ prox_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {prox_approx_vnf.name: "mock"}
+ }
prox_approx_vnf.resource_helper = resource_helper
prox_approx_vnf.vnfd_helper['vdu'][0]['external-interface'] = []
prox_approx_vnf.vnfd_helper.port_pairs.interfaces = []
@@ -373,9 +435,28 @@ class TestProxApproxVnf(unittest.TestCase):
file_path = os.path.join(curr_path, filename)
return file_path
+ @mock.patch('yardstick.common.utils.open', create=True)
+ @mock.patch('yardstick.benchmark.scenarios.networking.vnf_generic.open', create=True)
+ @mock.patch('yardstick.network_services.helpers.iniparser.open', create=True)
+ @mock.patch(SSH_HELPER)
+ def test_run_prox(self, ssh, *_):
+ mock_ssh(ssh)
+
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf.scenario_helper.scenario_cfg = self.SCENARIO_CFG
+ prox_approx_vnf.ssh_helper.join_bin_path.return_value = '/tool_path12/tool_file34'
+ prox_approx_vnf.setup_helper.remote_path = 'configs/file56.cfg'
+
+ expected = "sudo bash -c 'cd /tool_path12; " \
+ "/tool_path12/tool_file34 -o cli -t -f /tmp/l3-swap-2.cfg '"
+
+ prox_approx_vnf._run()
+ result = prox_approx_vnf.ssh_helper.run.call_args[0][0]
+ self.assertEqual(result, expected)
+
@mock.patch(SSH_HELPER)
def bad_test_instantiate(self, *args):
- prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
prox_approx_vnf.scenario_helper = mock.MagicMock()
prox_approx_vnf.setup_helper = mock.MagicMock()
# we can't mock super
@@ -385,7 +466,7 @@ class TestProxApproxVnf(unittest.TestCase):
@mock.patch(SSH_HELPER)
def test_wait_for_instantiate_panic(self, ssh, *args):
mock_ssh(ssh, exec_result=(1, "", ""))
- prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
prox_approx_vnf._vnf_process = mock.MagicMock(**{"is_alive.return_value": True})
prox_approx_vnf._run_prox = mock.Mock(return_value=0)
prox_approx_vnf.WAIT_TIME = 0
@@ -397,7 +478,7 @@ class TestProxApproxVnf(unittest.TestCase):
@mock.patch(SSH_HELPER)
def test_terminate(self, ssh, *args):
mock_ssh(ssh)
- prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
prox_approx_vnf._vnf_process = mock.MagicMock()
prox_approx_vnf._vnf_process.terminate = mock.Mock()
prox_approx_vnf.ssh_helper = mock.MagicMock()
@@ -409,16 +490,16 @@ class TestProxApproxVnf(unittest.TestCase):
@mock.patch(SSH_HELPER)
def test__vnf_up_post(self, ssh, *args):
mock_ssh(ssh)
- prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
prox_approx_vnf.resource_helper = resource_helper = mock.Mock()
prox_approx_vnf._vnf_up_post()
- self.assertEqual(resource_helper.up_post.call_count, 1)
+ resource_helper.up_post.assert_called_once()
@mock.patch(SSH_HELPER)
def test_vnf_execute_oserror(self, ssh, *args):
mock_ssh(ssh)
- prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
+ prox_approx_vnf = prox_vnf.ProxApproxVnf(NAME, self.VNFD0)
prox_approx_vnf.resource_helper = resource_helper = mock.Mock()
resource_helper.execute.side_effect = OSError(errno.EPIPE, "")
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_router_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_router_vnf.py
index 9ed6fd5b3..b8f3fcaca 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_router_vnf.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_router_vnf.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,23 +11,13 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
-
-from __future__ import absolute_import
import unittest
import mock
-from tests.unit import STL_MOCKS
-from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
-
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.router_vnf import RouterVNF
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.vnf_generic.vnf.router_vnf import RouterVNF
TEST_FILE_YAML = 'nsb_test_case.yaml'
@@ -218,15 +206,25 @@ class TestRouterVNF(unittest.TestCase):
stats = RouterVNF.get_stats(self.IP_SHOW_STATS_OUTPUT)
self.assertDictEqual(stats, self.STATS)
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
@mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
@mock.patch(SSH_HELPER)
- def test_collect_kpi(self, ssh, _):
+ def test_collect_kpi(self, ssh, *args):
m = mock_ssh(ssh)
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
router_vnf = RouterVNF(name, vnfd)
+ router_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {router_vnf.name: "mock"}
+ }
router_vnf.ssh_helper = m
- result = {'packets_dropped': 0, 'packets_fwd': 0, 'packets_in': 0, 'link_stats': {}}
+ result = {
+ 'physical_node': 'mock_node',
+ 'packets_dropped': 0,
+ 'packets_fwd': 0,
+ 'packets_in': 0,
+ 'link_stats': {}
+ }
self.assertEqual(result, router_vnf.collect_kpi())
@mock.patch(SSH_HELPER)
@@ -239,9 +237,9 @@ class TestRouterVNF(unittest.TestCase):
router_vnf._run()
router_vnf.ssh_helper.drop_connection.assert_called_once()
- @mock.patch("yardstick.network_services.vnf_generic.vnf.router_vnf.Context")
+ @mock.patch.object(ctx_base, 'Context')
@mock.patch(SSH_HELPER)
- def test_instantiate(self, ssh, _):
+ def test_instantiate(self, ssh, *args):
mock_ssh(ssh)
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
@@ -261,7 +259,4 @@ class TestRouterVNF(unittest.TestCase):
router_vnf = RouterVNF(name, vnfd)
router_vnf._vnf_process = mock.MagicMock()
router_vnf._vnf_process.terminate = mock.Mock()
- self.assertEqual(None, router_vnf.terminate())
-
-if __name__ == '__main__':
- unittest.main()
+ self.assertIsNone(router_vnf.terminate())
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_sample_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_sample_vnf.py
new file mode 100644
index 000000000..21f0c5e1f
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_sample_vnf.py
@@ -0,0 +1,1532 @@
+# Copyright (c) 2017-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from copy import deepcopy
+
+import unittest
+import mock
+import six
+import subprocess
+import time
+
+import paramiko
+
+from yardstick.common import exceptions as y_exceptions
+from yardstick.common import utils
+from yardstick.network_services.nfvi import resource
+from yardstick.network_services.vnf_generic.vnf import base
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+from yardstick.network_services.vnf_generic.vnf import vnf_ssh_helper
+from yardstick import ssh
+from yardstick.tests.unit.network_services.vnf_generic.vnf import test_base
+from yardstick.benchmark.contexts import base as ctx_base
+
+
+class MockError(Exception):
+ pass
+
+
+class TestVnfSshHelper(unittest.TestCase):
+
+ VNFD_0 = {
+ 'short-name': 'VpeVnf',
+ 'vdu': [
+ {
+ 'routing_table': [
+ {
+ 'network': '152.16.100.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '152.16.40.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'if': 'xe1'
+ },
+ ],
+ 'description': 'VPE approximation using DPDK',
+ 'name': 'vpevnf-baremetal',
+ 'nd_route_tbl': [
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:6414',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:2814',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
+ 'if': 'xe1'
+ },
+ ],
+ 'id': 'vpevnf-baremetal',
+ 'external-interface': [
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:03',
+ 'vpci': '0000:05:00.0',
+ 'dpdk_port_num': 0,
+ 'driver': 'i40e',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.100.20',
+ 'local_mac': '00:00:00:00:00:01',
+ 'vld_id': 'uplink_0',
+ 'ifname': 'xe0',
+ },
+ 'vnfd-connection-point-ref': 'xe0',
+ 'name': 'xe0'
+ },
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:04',
+ 'vpci': '0000:05:00.1',
+ 'dpdk_port_num': 1,
+ 'driver': 'ixgbe',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_mac': '00:00:00:00:00:02',
+ 'vld_id': 'downlink_0',
+ 'ifname': 'xe1',
+ },
+ 'vnfd-connection-point-ref': 'xe1',
+ 'name': 'xe1'
+ },
+ ],
+ },
+ ],
+ 'description': 'Vpe approximation using DPDK',
+ 'mgmt-interface': {
+ 'vdu-id': 'vpevnf-baremetal',
+ 'host': '1.1.1.1',
+ 'password': 'r00t',
+ 'user': 'root',
+ 'ip': '1.1.1.1'
+ },
+ 'benchmark': {
+ 'kpi': [
+ 'packets_in',
+ 'packets_fwd',
+ 'packets_dropped',
+ ],
+ },
+ 'connection-point': [
+ {
+ 'type': 'VPORT',
+ 'name': 'xe0',
+ },
+ {
+ 'type': 'VPORT',
+ 'name': 'xe1',
+ },
+ ],
+ 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
+ }
+
+ VNFD = {
+ 'vnfd:vnfd-catalog': {
+ 'vnfd': [
+ VNFD_0,
+ ]
+ }
+ }
+
+ def setUp(self):
+ self.ssh_helper = vnf_ssh_helper.VnfSshHelper(
+ self.VNFD_0['mgmt-interface'], 'my/bin/path')
+ self.ssh_helper._run = mock.Mock()
+
+ def assertAll(self, iterable, message=None):
+ self.assertTrue(all(iterable), message)
+
+ def test_get_class(self):
+ self.assertIs(vnf_ssh_helper.VnfSshHelper.get_class(),
+ vnf_ssh_helper.VnfSshHelper)
+
+ @mock.patch.object(ssh, 'paramiko')
+ def test_copy(self, _):
+ self.ssh_helper.execute('ls')
+ self.assertTrue(self.ssh_helper.is_connected)
+ result = self.ssh_helper.copy()
+ self.assertIsInstance(result, vnf_ssh_helper.VnfSshHelper)
+ self.assertFalse(result.is_connected)
+ self.assertEqual(result.bin_path, self.ssh_helper.bin_path)
+ self.assertEqual(result.host, self.ssh_helper.host)
+ self.assertEqual(result.port, self.ssh_helper.port)
+ self.assertEqual(result.user, self.ssh_helper.user)
+ self.assertEqual(result.password, self.ssh_helper.password)
+ self.assertEqual(result.key_filename, self.ssh_helper.key_filename)
+
+ @mock.patch.object(paramiko, 'SSHClient')
+ def test_upload_config_file(self, mock_paramiko):
+ self.assertFalse(self.ssh_helper.is_connected)
+ cfg_file = self.ssh_helper.upload_config_file('/my/prefix', 'my content')
+ self.assertTrue(self.ssh_helper.is_connected)
+ mock_paramiko.assert_called_once()
+ self.assertEqual(cfg_file, '/my/prefix')
+
+ @mock.patch.object(paramiko, 'SSHClient')
+ def test_upload_config_file_path_does_not_exist(self, mock_paramiko):
+ self.assertFalse(self.ssh_helper.is_connected)
+ cfg_file = self.ssh_helper.upload_config_file('my/prefix', 'my content')
+ self.assertTrue(self.ssh_helper.is_connected)
+ mock_paramiko.assert_called_once()
+ self.assertTrue(cfg_file.startswith('/tmp'))
+
+ def test_join_bin_path(self):
+ expected_start = 'my'
+ expected_middle_list = ['bin']
+ expected_end = 'path'
+ result = self.ssh_helper.join_bin_path()
+ self.assertTrue(result.startswith(expected_start))
+ self.assertAll(middle in result for middle in expected_middle_list)
+ self.assertTrue(result.endswith(expected_end))
+
+ expected_middle_list.append(expected_end)
+ expected_end = 'some_file.sh'
+ result = self.ssh_helper.join_bin_path('some_file.sh')
+ self.assertTrue(result.startswith(expected_start))
+ self.assertAll(middle in result for middle in expected_middle_list)
+ self.assertTrue(result.endswith(expected_end))
+
+ expected_middle_list.append('some_dir')
+ expected_end = 'some_file.sh'
+ result = self.ssh_helper.join_bin_path('some_dir', 'some_file.sh')
+ self.assertTrue(result.startswith(expected_start))
+ self.assertAll(middle in result for middle in expected_middle_list)
+ self.assertTrue(result.endswith(expected_end))
+
+ @mock.patch.object(paramiko, 'SSHClient')
+ @mock.patch.object(ssh, 'provision_tool')
+ def test_provision_tool(self, mock_provision_tool, mock_paramiko):
+ self.assertFalse(self.ssh_helper.is_connected)
+ self.ssh_helper.provision_tool()
+ self.assertTrue(self.ssh_helper.is_connected)
+ mock_paramiko.assert_called_once()
+ mock_provision_tool.assert_called_once()
+
+ self.ssh_helper.provision_tool(tool_file='my_tool.sh')
+ self.assertTrue(self.ssh_helper.is_connected)
+ mock_paramiko.assert_called_once()
+ self.assertEqual(mock_provision_tool.call_count, 2)
+
+ self.ssh_helper.provision_tool('tool_path', 'my_tool.sh')
+ self.assertTrue(self.ssh_helper.is_connected)
+ mock_paramiko.assert_called_once()
+ self.assertEqual(mock_provision_tool.call_count, 3)
+
+
+class TestSetupEnvHelper(unittest.TestCase):
+
+ VNFD_0 = TestVnfSshHelper.VNFD_0
+
+ def setUp(self):
+ self.setup_env_helper = sample_vnf.SetupEnvHelper(
+ mock.Mock(), mock.Mock(), mock.Mock())
+
+ def test_build_config(self):
+ with self.assertRaises(NotImplementedError):
+ self.setup_env_helper.build_config()
+
+ def test_setup_vnf_environment(self):
+ self.assertIsNone(self.setup_env_helper.setup_vnf_environment())
+
+ def test_tear_down(self):
+ with self.assertRaises(NotImplementedError):
+ self.setup_env_helper.tear_down()
+
+
+class TestDpdkVnfSetupEnvHelper(unittest.TestCase):
+
+ VNFD_0 = TestVnfSshHelper.VNFD_0
+
+ VNFD = TestVnfSshHelper.VNFD
+
+ def setUp(self):
+ self.vnfd_helper = base.VnfdHelper(deepcopy(self.VNFD_0))
+ self.scenario_helper = mock.Mock()
+ self.ssh_helper = mock.Mock()
+ self.dpdk_setup_helper = sample_vnf.DpdkVnfSetupEnvHelper(
+ self.vnfd_helper, self.ssh_helper, self.scenario_helper)
+
+ def test__update_packet_type(self):
+ ip_pipeline_cfg = 'pkt_type = ipv4'
+ pkt_type = {'pkt_type': '1'}
+
+ expected = "pkt_type = 1"
+ result = self.dpdk_setup_helper._update_packet_type(
+ ip_pipeline_cfg, pkt_type)
+ self.assertEqual(result, expected)
+
+ def test__update_packet_type_no_op(self):
+ ip_pipeline_cfg = 'pkt_type = ipv6'
+ pkt_type = {'pkt_type': '1'}
+
+ expected = "pkt_type = ipv6"
+ result = self.dpdk_setup_helper._update_packet_type(
+ ip_pipeline_cfg, pkt_type)
+ self.assertEqual(result, expected)
+
+ def test__update_packet_type_multi_op(self):
+ ip_pipeline_cfg = 'pkt_type = ipv4\npkt_type = 1\npkt_type = ipv4'
+ pkt_type = {'pkt_type': '1'}
+ expected = 'pkt_type = 1\npkt_type = 1\npkt_type = 1'
+
+ result = self.dpdk_setup_helper._update_packet_type(
+ ip_pipeline_cfg, pkt_type)
+ self.assertEqual(result, expected)
+
+ def test__update_traffic_type(self):
+ ip_pipeline_cfg = 'pkt_type = ipv4'
+ traffic_options = {
+ "vnf_type": sample_vnf.DpdkVnfSetupEnvHelper.APP_NAME,
+ "traffic_type": 4}
+ expected = "pkt_type = ipv4"
+
+ result = self.dpdk_setup_helper._update_traffic_type(
+ ip_pipeline_cfg, traffic_options)
+ self.assertEqual(result, expected)
+
+ def test__update_traffic_type_ipv6(self):
+ ip_pipeline_cfg = 'pkt_type = ipv4'
+ traffic_options = {
+ "vnf_type": sample_vnf.DpdkVnfSetupEnvHelper.APP_NAME,
+ "traffic_type": 6}
+ expected = "pkt_type = ipv6"
+
+ result = self.dpdk_setup_helper._update_traffic_type(
+ ip_pipeline_cfg, traffic_options)
+ self.assertEqual(result, expected)
+
+ def test__update_traffic_type_not_app_name(self):
+ ip_pipeline_cfg = 'traffic_type = 4'
+ vnf_type = ''.join(["Not", sample_vnf.DpdkVnfSetupEnvHelper.APP_NAME])
+ traffic_options = {"vnf_type": vnf_type, 'traffic_type': 8}
+ expected = "traffic_type = 8"
+
+ result = self.dpdk_setup_helper._update_traffic_type(
+ ip_pipeline_cfg, traffic_options)
+ self.assertEqual(result, expected)
+
+ @mock.patch.object(six.moves.builtins, 'open')
+ @mock.patch.object(utils, 'find_relative_file')
+ @mock.patch.object(sample_vnf, 'MultiPortConfig')
+ def test_build_config(self, mock_multi_port_config_class,
+ mock_find, *args):
+ mock_multi_port_config = mock_multi_port_config_class()
+ self.scenario_helper.vnf_cfg = {}
+ self.scenario_helper.options = {}
+ self.scenario_helper.all_options = {}
+
+ self.dpdk_setup_helper.PIPELINE_COMMAND = expected = 'pipeline command'
+ result = self.dpdk_setup_helper.build_config()
+ self.assertEqual(result, expected)
+ self.assertGreaterEqual(self.ssh_helper.upload_config_file.call_count, 2)
+ mock_find.assert_called()
+ mock_multi_port_config.generate_config.assert_called()
+ mock_multi_port_config.generate_script.assert_called()
+
+ @mock.patch.object(six.moves.builtins, 'open')
+ @mock.patch.object(utils, 'find_relative_file')
+ @mock.patch.object(sample_vnf, 'MultiPortConfig')
+ @mock.patch.object(utils, 'open_relative_file')
+ def test_build_config2(self, mock_open_rf, mock_multi_port_config_class,
+ mock_find, *args):
+ mock_multi_port_config = mock_multi_port_config_class()
+ self.scenario_helper.options = {'rules': 'fake_file'}
+ self.scenario_helper.vnf_cfg = {'file': 'fake_file'}
+ self.scenario_helper.all_options = {}
+ mock_open_rf.side_effect = mock.mock_open(read_data='fake_data')
+ self.dpdk_setup_helper.PIPELINE_COMMAND = expected = 'pipeline command'
+
+ result = self.dpdk_setup_helper.build_config()
+
+ mock_open_rf.assert_called()
+ self.assertEqual(result, expected)
+ self.assertGreaterEqual(self.ssh_helper.upload_config_file.call_count, 2)
+ mock_find.assert_called()
+ mock_multi_port_config.generate_config.assert_called()
+ mock_multi_port_config.generate_script.assert_called()
+
+ def test__build_pipeline_kwargs(self):
+ self.ssh_helper.provision_tool.return_value = 'tool_path'
+ self.dpdk_setup_helper.CFG_CONFIG = 'config'
+ self.dpdk_setup_helper.CFG_SCRIPT = 'script'
+ self.dpdk_setup_helper.pipeline_kwargs = {}
+ self.dpdk_setup_helper.all_ports = [0, 1, 2]
+ self.dpdk_setup_helper.scenario_helper.vnf_cfg = {'lb_config': 'HW',
+ 'worker_threads': 1}
+
+ expected = {
+ 'cfg_file': 'config',
+ 'script': 'script',
+ 'port_mask_hex': '0x3',
+ 'tool_path': 'tool_path',
+ 'hwlb': ' --hwlb 1',
+ }
+ self.dpdk_setup_helper._build_pipeline_kwargs()
+ self.assertDictEqual(self.dpdk_setup_helper.pipeline_kwargs, expected)
+
+ @mock.patch.object(time, 'sleep')
+ @mock.patch.object(ssh, 'SSH')
+ def test_setup_vnf_environment(self, *args):
+ self.scenario_helper.nodes = [None, None]
+
+ def execute(cmd):
+ if cmd.startswith('which '):
+ return exec_failure
+ return exec_success
+
+ exec_success = (0, 'good output', '')
+ exec_failure = (1, 'bad output', 'error output')
+ self.ssh_helper.execute = execute
+
+ self.dpdk_setup_helper._validate_cpu_cfg = mock.Mock(return_value=[])
+
+ with mock.patch.object(self.dpdk_setup_helper, '_setup_dpdk'):
+ self.assertIsInstance(
+ self.dpdk_setup_helper.setup_vnf_environment(),
+ resource.ResourceProfile)
+
+ @mock.patch.object(utils, 'setup_hugepages')
+ def test__setup_dpdk(self, mock_setup_hugepages):
+ self.ssh_helper.execute = mock.Mock()
+ self.ssh_helper.execute.return_value = (0, 0, 0)
+ self.scenario_helper.all_options = {'hugepages_gb': 8}
+ self.dpdk_setup_helper._setup_dpdk()
+ mock_setup_hugepages.assert_called_once_with(
+ self.ssh_helper, 8*1024*1024)
+ self.ssh_helper.execute.assert_has_calls([
+ mock.call('sudo modprobe uio && sudo modprobe igb_uio'),
+ mock.call('lsmod | grep -i igb_uio')
+ ])
+
+ @mock.patch.object(ssh, 'SSH')
+ def test__setup_resources(self, _):
+ self.dpdk_setup_helper._validate_cpu_cfg = mock.Mock()
+ self.dpdk_setup_helper.bound_pci = [v['virtual-interface']["vpci"] for v in
+ self.vnfd_helper.interfaces]
+ result = self.dpdk_setup_helper._setup_resources()
+ self.assertIsInstance(result, resource.ResourceProfile)
+ self.assertEqual(self.dpdk_setup_helper.socket, 0)
+
+ @mock.patch.object(ssh, 'SSH')
+ def test__setup_resources_socket_1(self, _):
+ self.vnfd_helper.interfaces[0]['virtual-interface']['vpci'] = \
+ '0000:55:00.0'
+ self.vnfd_helper.interfaces[1]['virtual-interface']['vpci'] = \
+ '0000:35:00.0'
+
+ self.dpdk_setup_helper._validate_cpu_cfg = mock.Mock()
+ self.dpdk_setup_helper.bound_pci = [v['virtual-interface']["vpci"] for v in
+ self.vnfd_helper.interfaces]
+ result = self.dpdk_setup_helper._setup_resources()
+ self.assertIsInstance(result, resource.ResourceProfile)
+ self.assertEqual(self.dpdk_setup_helper.socket, 1)
+
+ @mock.patch.object(time, 'sleep')
+ def test__detect_and_bind_drivers(self, *args):
+ self.scenario_helper.nodes = [None, None]
+ rv = ['0000:05:00.1', '0000:05:00.0']
+
+ self.dpdk_setup_helper.dpdk_bind_helper._get_bound_pci_addresses = \
+ mock.Mock(return_value=rv)
+ self.dpdk_setup_helper.dpdk_bind_helper.bind = mock.Mock()
+ self.dpdk_setup_helper.dpdk_bind_helper.read_status = mock.Mock()
+
+ self.assertIsNone(self.dpdk_setup_helper._detect_and_bind_drivers())
+
+ intf_0 = self.vnfd_helper.vdu[0]['external-interface'][0]['virtual-interface']
+ intf_1 = self.vnfd_helper.vdu[0]['external-interface'][1]['virtual-interface']
+ self.assertEqual(0, intf_0['dpdk_port_num'])
+ self.assertEqual(1, intf_1['dpdk_port_num'])
+
+ def test_tear_down(self):
+ self.scenario_helper.nodes = [None, None]
+
+ self.dpdk_setup_helper.dpdk_bind_helper.bind = mock.Mock()
+ self.dpdk_setup_helper.dpdk_bind_helper.used_drivers = {
+ 'd1': ['0000:05:00.0'],
+ 'd3': ['0000:05:01.0'],
+ }
+
+ self.assertIsNone(self.dpdk_setup_helper.tear_down())
+ self.dpdk_setup_helper.dpdk_bind_helper.bind.assert_any_call(
+ ['0000:05:00.0'], 'd1', True)
+ self.dpdk_setup_helper.dpdk_bind_helper.bind.assert_any_call(
+ ['0000:05:01.0'], 'd3', True)
+
+
+class TestResourceHelper(unittest.TestCase):
+
+ VNFD_0 = {
+ 'short-name': 'VpeVnf',
+ 'vdu': [
+ {
+ 'routing_table': [
+ {
+ 'network': '152.16.100.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '152.16.40.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'if': 'xe1'
+ },
+ ],
+ 'description': 'VPE approximation using DPDK',
+ 'name': 'vpevnf-baremetal',
+ 'nd_route_tbl': [
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:6414',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:2814',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
+ 'if': 'xe1'
+ },
+ ],
+ 'id': 'vpevnf-baremetal',
+ 'external-interface': [
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:03',
+ 'vpci': '0000:05:00.0',
+ 'driver': 'i40e',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.100.20',
+ 'local_mac': '00:00:00:00:00:01'
+ },
+ 'vnfd-connection-point-ref': 'xe0',
+ 'name': 'xe0'
+ },
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:04',
+ 'vpci': '0000:05:00.1',
+ 'driver': 'ixgbe',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 1,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_mac': '00:00:00:00:00:02'
+ },
+ 'vnfd-connection-point-ref': 'xe1',
+ 'name': 'xe1'
+ },
+ ],
+ },
+ ],
+ 'description': 'Vpe approximation using DPDK',
+ 'mgmt-interface': {
+ 'vdu-id': 'vpevnf-baremetal',
+ 'host': '1.1.1.1',
+ 'password': 'r00t',
+ 'user': 'root',
+ 'ip': '1.1.1.1'
+ },
+ 'benchmark': {
+ 'kpi': [
+ 'packets_in',
+ 'packets_fwd',
+ 'packets_dropped',
+ ],
+ },
+ 'connection-point': [
+ {
+ 'type': 'VPORT',
+ 'name': 'xe0',
+ },
+ {
+ 'type': 'VPORT',
+ 'name': 'xe1',
+ },
+ ],
+ 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
+ }
+
+ def setUp(self):
+ self.vnfd_helper = base.VnfdHelper(self.VNFD_0)
+ self.dpdk_setup_helper = sample_vnf.DpdkVnfSetupEnvHelper(
+ self.vnfd_helper, mock.Mock(), mock.Mock())
+ self.resource_helper = sample_vnf.ResourceHelper(self.dpdk_setup_helper)
+
+ def test_setup(self):
+ resource = object()
+ self.dpdk_setup_helper.setup_vnf_environment = (
+ mock.Mock(return_value=resource))
+ resource_helper = sample_vnf.ResourceHelper(self.dpdk_setup_helper)
+
+ self.assertIsNone(resource_helper.setup())
+ self.assertIs(resource_helper.resource, resource)
+
+ def test_generate_cfg(self):
+ self.assertIsNone(self.resource_helper.generate_cfg())
+
+ def test_stop_collect(self):
+ self.resource_helper.resource = mock.Mock()
+
+ self.assertIsNone(self.resource_helper.stop_collect())
+
+ def test_stop_collect_none(self):
+ self.resource_helper.resource = None
+
+ self.assertIsNone(self.resource_helper.stop_collect())
+
+
+class TestClientResourceHelper(unittest.TestCase):
+
+ VNFD_0 = {
+ 'short-name': 'VpeVnf',
+ 'vdu': [
+ {
+ 'routing_table': [
+ {
+ 'network': '152.16.100.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '152.16.40.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'if': 'xe1'
+ },
+ ],
+ 'description': 'VPE approximation using DPDK',
+ 'name': 'vpevnf-baremetal',
+ 'nd_route_tbl': [
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:6414',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:2814',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
+ 'if': 'xe1'
+ },
+ ],
+ 'id': 'vpevnf-baremetal',
+ 'external-interface': [
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:03',
+ 'vpci': '0000:05:00.0',
+ 'driver': 'i40e',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.100.20',
+ 'local_mac': '00:00:00:00:00:01',
+ 'vld_id': 'uplink_0',
+ 'ifname': 'xe0',
+ },
+ 'vnfd-connection-point-ref': 'xe0',
+ 'name': 'xe0'
+ },
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:04',
+ 'vpci': '0000:05:00.1',
+ 'driver': 'ixgbe',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 1,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_mac': '00:00:00:00:00:02',
+ 'vld_id': 'downlink_0',
+ 'ifname': 'xe1',
+ },
+ 'vnfd-connection-point-ref': 'xe1',
+ 'name': 'xe1'
+ },
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:13',
+ 'vpci': '0000:05:00.2',
+ 'driver': 'ixgbe',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 2,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.30',
+ 'local_mac': '00:00:00:00:00:11'
+ },
+ 'vnfd-connection-point-ref': 'xe2',
+ 'name': 'xe2'
+ },
+ ],
+ },
+ ],
+ 'description': 'Vpe approximation using DPDK',
+ 'mgmt-interface': {
+ 'vdu-id': 'vpevnf-baremetal',
+ 'host': '1.1.1.1',
+ 'password': 'r00t',
+ 'user': 'root',
+ 'ip': '1.1.1.1'
+ },
+ 'benchmark': {
+ 'kpi': [
+ 'packets_in',
+ 'packets_fwd',
+ 'packets_dropped',
+ ],
+ },
+ 'connection-point': [
+ {
+ 'type': 'VPORT',
+ 'name': 'xe0',
+ },
+ {
+ 'type': 'VPORT',
+ 'name': 'xe1',
+ },
+ ],
+ 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
+ }
+
+ VNFD = {
+ 'vnfd:vnfd-catalog': {
+ 'vnfd': [
+ VNFD_0,
+ ],
+ },
+ }
+
+ def setUp(self):
+ vnfd_helper = base.VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ dpdk_setup_helper = sample_vnf.DpdkVnfSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
+ self.client_resource_helper = (
+ sample_vnf.ClientResourceHelper(dpdk_setup_helper))
+
+ @mock.patch.object(sample_vnf, 'LOG')
+ @mock.patch.object(sample_vnf, 'STLError', new_callable=lambda: MockError)
+ def test_get_stats_not_connected(self, mock_stl_error, *args):
+ self.client_resource_helper.client = mock.Mock()
+ self.client_resource_helper.client.get_stats.side_effect = \
+ mock_stl_error
+
+ self.assertEqual(self.client_resource_helper.get_stats(), {})
+ self.client_resource_helper.client.get_stats.assert_called_once()
+
+ def test_clear_stats(self):
+ self.client_resource_helper.client = mock.Mock()
+
+ self.assertIsNone(self.client_resource_helper.clear_stats())
+ self.assertEqual(
+ self.client_resource_helper.client.clear_stats.call_count, 1)
+
+ def test_clear_stats_of_ports(self):
+ self.client_resource_helper.client = mock.Mock()
+
+ self.assertIsNone(self.client_resource_helper.clear_stats([3, 4]))
+ self.client_resource_helper.client.clear_stats.assert_called_once()
+
+ def test_start(self):
+ self.client_resource_helper.client = mock.Mock()
+
+ self.assertIsNone(self.client_resource_helper.start())
+ self.client_resource_helper.client.start.assert_called_once()
+
+ def test_start_ports(self):
+ self.client_resource_helper.client = mock.Mock()
+
+ self.assertIsNone(self.client_resource_helper.start([3, 4]))
+ self.client_resource_helper.client.start.assert_called_once()
+
+ def test_collect_kpi_with_queue(self):
+ self.client_resource_helper._result = {
+ 'existing': 43,
+ 'replaceable': 12}
+ self.client_resource_helper._queue = mock.Mock()
+ self.client_resource_helper._queue.empty.return_value = False
+ self.client_resource_helper._queue.get.return_value = {
+ 'incoming': 34,
+ 'replaceable': 99}
+
+ expected = {
+ 'existing': 43,
+ 'incoming': 34,
+ 'replaceable': 99,
+ }
+ result = self.client_resource_helper.collect_kpi()
+ self.assertEqual(result, expected)
+
+ @mock.patch.object(time, 'sleep')
+ @mock.patch.object(sample_vnf, 'STLError')
+ def test__connect_with_failures(self, mock_stl_error, *args):
+ client = mock.MagicMock()
+ client.connect.side_effect = mock_stl_error(msg='msg')
+
+ self.assertIs(self.client_resource_helper._connect(client), client)
+
+
+class TestRfc2544ResourceHelper(unittest.TestCase):
+
+ RFC2544_CFG_1 = {
+ 'latency': True,
+ 'correlated_traffic': True,
+ 'allowed_drop_rate': '0.1 - 0.15',
+ }
+
+ RFC2544_CFG_2 = {
+ 'allowed_drop_rate': ' 0.25 - 0.05 ',
+ }
+
+ RFC2544_CFG_3 = {
+ 'allowed_drop_rate': '0.2',
+ }
+
+ RFC2544_CFG_4 = {
+ 'latency': True,
+ }
+
+ SCENARIO_CFG_1 = {
+ 'options': {
+ 'rfc2544': RFC2544_CFG_1,
+ }
+ }
+
+ SCENARIO_CFG_2 = {
+ 'options': {
+ 'rfc2544': RFC2544_CFG_2,
+ }
+ }
+
+ SCENARIO_CFG_3 = {
+ 'options': {
+ 'rfc2544': RFC2544_CFG_3,
+ }
+ }
+
+ SCENARIO_CFG_4 = {
+ 'options': {
+ 'rfc2544': RFC2544_CFG_4,
+ }
+ }
+
+ def setUp(self):
+ self.scenario_helper = sample_vnf.ScenarioHelper('name1')
+ self.rfc2544_resource_helper = \
+ sample_vnf.Rfc2544ResourceHelper(self.scenario_helper)
+
+ def test_property_rfc2544(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_1
+
+ self.assertIsNone(self.rfc2544_resource_helper._rfc2544)
+ self.assertEqual(self.rfc2544_resource_helper.rfc2544,
+ self.RFC2544_CFG_1)
+ self.assertEqual(self.rfc2544_resource_helper._rfc2544,
+ self.RFC2544_CFG_1)
+ # ensure that resource_helper caches
+ self.scenario_helper.scenario_cfg = {}
+ self.assertEqual(self.rfc2544_resource_helper.rfc2544,
+ self.RFC2544_CFG_1)
+
+ def test_property_tolerance_high(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_1
+
+ self.assertIsNone(self.rfc2544_resource_helper._tolerance_high)
+ self.assertEqual(self.rfc2544_resource_helper.tolerance_high, 0.15)
+ self.assertEqual(self.rfc2544_resource_helper._tolerance_high, 0.15)
+ self.assertEqual(self.rfc2544_resource_helper._tolerance_precision, 2)
+ # ensure that resource_helper caches
+ self.scenario_helper.scenario_cfg = {}
+ self.assertEqual(self.rfc2544_resource_helper.tolerance_high, 0.15)
+
+ def test_property_tolerance_low(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_1
+
+ self.assertIsNone(self.rfc2544_resource_helper._tolerance_low)
+ self.assertEqual(self.rfc2544_resource_helper.tolerance_low, 0.1)
+ self.assertEqual(self.rfc2544_resource_helper._tolerance_low, 0.1)
+ # ensure that resource_helper caches
+ self.scenario_helper.scenario_cfg = {}
+ self.assertEqual(self.rfc2544_resource_helper.tolerance_low, 0.1)
+
+ def test_property_tolerance_high_range_swap(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_2
+
+ self.assertEqual(self.rfc2544_resource_helper.tolerance_high, 0.25)
+
+ def test_property_tolerance_low_range_swap(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_2
+
+ self.assertEqual(self.rfc2544_resource_helper.tolerance_low, 0.05)
+
+ def test_property_tolerance_high_not_range(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_3
+
+ self.assertEqual(self.rfc2544_resource_helper.tolerance_high, 0.2)
+ self.assertEqual(self.rfc2544_resource_helper._tolerance_precision, 1)
+
+ def test_property_tolerance_low_not_range(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_3
+
+ self.assertEqual(self.rfc2544_resource_helper.tolerance_low, 0.2)
+
+ def test_property_tolerance_high_default(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_4
+
+ self.assertEqual(self.rfc2544_resource_helper.tolerance_high, 0.0001)
+
+ def test_property_tolerance_low_default(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_4
+
+ self.assertEqual(self.rfc2544_resource_helper.tolerance_low, 0.0001)
+
+ def test_property_latency(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_1
+
+ self.assertIsNone(self.rfc2544_resource_helper._latency)
+ self.assertTrue(self.rfc2544_resource_helper.latency)
+ self.assertTrue(self.rfc2544_resource_helper._latency)
+ # ensure that resource_helper caches
+ self.scenario_helper.scenario_cfg = {}
+ self.assertTrue(self.rfc2544_resource_helper.latency)
+
+ def test_property_latency_default(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_2
+
+ self.assertFalse(self.rfc2544_resource_helper.latency)
+
+ def test_property_correlated_traffic(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_1
+
+ self.assertIsNone(self.rfc2544_resource_helper._correlated_traffic)
+ self.assertTrue(self.rfc2544_resource_helper.correlated_traffic)
+ self.assertTrue(self.rfc2544_resource_helper._correlated_traffic)
+ # ensure that resource_helper caches
+ self.scenario_helper.scenario_cfg = {}
+ self.assertTrue(self.rfc2544_resource_helper.correlated_traffic)
+
+ def test_property_correlated_traffic_default(self):
+ self.scenario_helper.scenario_cfg = self.SCENARIO_CFG_2
+
+ self.assertFalse(self.rfc2544_resource_helper.correlated_traffic)
+
+
+class TestSampleVNFDeployHelper(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_time_sleep = mock.patch.object(time, 'sleep')
+ self.mock_time_sleep = self._mock_time_sleep.start()
+ self._mock_check_output = mock.patch.object(subprocess, 'check_output')
+ self.mock_check_output = self._mock_check_output.start()
+ self.addCleanup(self._stop_mocks)
+
+ self.ssh_helper = mock.Mock()
+ self.sample_vnf_deploy_helper = sample_vnf.SampleVNFDeployHelper(
+ mock.Mock(), self.ssh_helper)
+ self.ssh_helper.join_bin_path.return_value = 'joined_path'
+ self.ssh_helper.put.return_value = None
+
+ def _stop_mocks(self):
+ self._mock_time_sleep.stop()
+ self._mock_check_output.stop()
+
+ def test_deploy_vnfs_disabled(self):
+ self.ssh_helper.execute.return_value = 1, 'bad output', 'error output'
+
+ self.sample_vnf_deploy_helper.deploy_vnfs('name1')
+ self.sample_vnf_deploy_helper.DISABLE_DEPLOY = True
+ self.assertEqual(self.ssh_helper.execute.call_count, 5)
+ self.ssh_helper.put.assert_called_once()
+
+ def test_deploy_vnfs(self):
+ self.ssh_helper.execute.return_value = 1, 'bad output', 'error output'
+ self.sample_vnf_deploy_helper.DISABLE_DEPLOY = False
+
+ self.sample_vnf_deploy_helper.deploy_vnfs('name1')
+ self.assertEqual(self.ssh_helper.execute.call_count, 5)
+ self.ssh_helper.put.assert_called_once()
+
+ def test_deploy_vnfs_early_success(self):
+ self.ssh_helper.execute.return_value = 0, 'output', ''
+ self.sample_vnf_deploy_helper.DISABLE_DEPLOY = False
+
+ self.sample_vnf_deploy_helper.deploy_vnfs('name1')
+ self.ssh_helper.execute.assert_called_once()
+ self.ssh_helper.put.assert_not_called()
+
+
+class TestScenarioHelper(unittest.TestCase):
+
+ def setUp(self):
+ self.scenario_helper = sample_vnf.ScenarioHelper('name1')
+
+ def test_property_task_path(self):
+ self.scenario_helper.scenario_cfg = {
+ 'task_path': 'my_path',
+ }
+
+ self.assertEqual(self.scenario_helper.task_path, 'my_path')
+
+ def test_property_nodes(self):
+ nodes = ['node1', 'node2']
+ self.scenario_helper.scenario_cfg = {
+ 'nodes': nodes,
+ }
+
+ self.assertEqual(self.scenario_helper.nodes, nodes)
+
+ def test_property_all_options(self):
+ data = {
+ 'name1': {
+ 'key3': 'value3',
+ },
+ 'name2': {}
+ }
+ self.scenario_helper.scenario_cfg = {
+ 'options': data,
+ }
+
+ self.assertDictEqual(self.scenario_helper.all_options, data)
+
+ def test_property_options(self):
+ data = {
+ 'key1': 'value1',
+ 'key2': 'value2',
+ }
+ self.scenario_helper.scenario_cfg = {
+ 'options': {
+ 'name1': data,
+ },
+ }
+
+ self.assertDictEqual(self.scenario_helper.options, data)
+
+ def test_property_vnf_cfg(self):
+ self.scenario_helper.scenario_cfg = {
+ 'options': {
+ 'name1': {
+ 'vnf_config': 'my_config',
+ },
+ },
+ }
+
+ self.assertEqual(self.scenario_helper.vnf_cfg, 'my_config')
+
+ def test_property_vnf_cfg_default(self):
+ self.scenario_helper.scenario_cfg = {
+ 'options': {
+ 'name1': {},
+ },
+ }
+
+ self.assertEqual(self.scenario_helper.vnf_cfg,
+ sample_vnf.ScenarioHelper.DEFAULT_VNF_CFG)
+
+ def test_property_topology(self):
+ self.scenario_helper.scenario_cfg = {
+ 'topology': 'my_topology',
+ }
+
+ self.assertEqual(self.scenario_helper.topology, 'my_topology')
+
+
+class TestSampleVnf(unittest.TestCase):
+
+ VNFD_0 = {
+ 'short-name': 'VpeVnf',
+ 'vdu': [
+ {
+ 'routing_table': [
+ {
+ 'network': '152.16.100.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '152.16.40.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'if': 'xe1'
+ },
+ ],
+ 'description': 'VPE approximation using DPDK',
+ 'name': 'vpevnf-baremetal',
+ 'nd_route_tbl': [
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:6414',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
+ 'if': 'xe0'
+ },
+ {
+ 'network': '0064:ff9b:0:0:0:0:9810:2814',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
+ 'if': 'xe1'
+ },
+ ],
+ 'id': 'vpevnf-baremetal',
+ 'external-interface': [
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:03',
+ 'vpci': '0000:05:00.0',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.100.20',
+ 'local_mac': '00:00:00:00:00:01'
+ },
+ 'vnfd-connection-point-ref': 'xe0',
+ 'name': 'xe0'
+ },
+ {
+ 'virtual-interface': {
+ 'dst_mac': '00:00:00:00:00:04',
+ 'vpci': '0000:05:00.1',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 1,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_mac': '00:00:00:00:00:02'
+ },
+ 'vnfd-connection-point-ref': 'xe1',
+ 'name': 'xe1'
+ },
+ ],
+ },
+ ],
+ 'description': 'Vpe approximation using DPDK',
+ 'mgmt-interface': {
+ 'vdu-id': 'vpevnf-baremetal',
+ 'host': '1.1.1.1',
+ 'password': 'r00t',
+ 'user': 'root',
+ 'ip': '1.1.1.1'
+ },
+ 'benchmark': {
+ 'kpi': [
+ 'packets_in',
+ 'packets_fwd',
+ 'packets_dropped',
+ ],
+ },
+ 'connection-point': [
+ {
+ 'type': 'VPORT',
+ 'name': 'xe0',
+ },
+ {
+ 'type': 'VPORT',
+ 'name': 'xe1',
+ },
+ ],
+ 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'
+ }
+
+ VNFD = {
+ 'vnfd:vnfd-catalog': {
+ 'vnfd': [
+ VNFD_0,
+ ]
+ }
+ }
+
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100, # pps
+ "flow_number": 10,
+ "frame_size": 64,
+ },
+ }
+ def setUp(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ self.vnf = sample_vnf.SampleVNF('vnf1', vnfd)
+ self.vnf.APP_NAME = 'sample1'
+
+ def test___init__(self):
+ vnf = sample_vnf.SampleVNF('vnf1', self.VNFD_0)
+
+ self.assertEqual(vnf.name, 'vnf1')
+ self.assertDictEqual(vnf.vnfd_helper, self.VNFD_0)
+
+ # test the default setup helper is SetupEnvHelper, not subclass
+ self.assertEqual(type(vnf.setup_helper),
+ sample_vnf.SetupEnvHelper)
+
+ # test the default resource helper is ResourceHelper, not subclass
+ self.assertEqual(type(vnf.resource_helper), sample_vnf.ResourceHelper)
+
+ def test___init___alt_types(self):
+ class MySetupEnvHelper(sample_vnf.SetupEnvHelper):
+ pass
+
+ class MyResourceHelper(sample_vnf.ResourceHelper):
+ pass
+
+ vnf = sample_vnf.SampleVNF('vnf1', self.VNFD_0,
+ MySetupEnvHelper, MyResourceHelper)
+
+ self.assertEqual(vnf.name, 'vnf1')
+ self.assertDictEqual(vnf.vnfd_helper, self.VNFD_0)
+
+ # test the default setup helper is MySetupEnvHelper, not subclass
+ self.assertEqual(type(vnf.setup_helper), MySetupEnvHelper)
+
+ # test the default resource helper is MyResourceHelper, not subclass
+ self.assertEqual(type(vnf.resource_helper), MyResourceHelper)
+
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.Process')
+ def test__start_vnf(self, *args):
+ self.vnf._run = mock.Mock()
+
+ self.assertIsNone(self.vnf.queue_wrapper)
+ self.assertIsNone(self.vnf._vnf_process)
+ self.vnf._start_vnf()
+ self.assertIsNotNone(self.vnf.queue_wrapper)
+ self.assertIsNotNone(self.vnf._vnf_process)
+
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server',
+ return_value='fake_context')
+ @mock.patch.object(ssh, "SSH")
+ def test_instantiate(self, ssh, *args):
+ test_base.mock_ssh(ssh)
+ nodes = {
+ 'vnf1': 'name1',
+ 'vnf2': 'name2',
+ }
+ self.vnf._start_server = mock.Mock(return_value=0)
+ self.vnf._vnf_process = mock.MagicMock()
+ self.vnf._vnf_process._is_alive.return_value = 1
+ self.vnf.ssh_helper = mock.MagicMock()
+ self.vnf.deploy_helper = mock.MagicMock()
+ self.vnf.resource_helper.ssh_helper = mock.MagicMock()
+ scenario_cfg = {
+ 'nodes': nodes,
+ }
+
+ self.assertIsNone(self.vnf.instantiate(scenario_cfg, {}))
+
+ def test__update_collectd_options(self):
+ scenario_cfg = {'options':
+ {'collectd':
+ {'interval': 3,
+ 'plugins':
+ {'plugin3': {'param': 3}}},
+ 'vnf1':
+ {'collectd':
+ {'interval': 2,
+ 'plugins':
+ {'plugin3': {'param': 2},
+ 'plugin2': {'param': 2}}}}}}
+ context_cfg = {'nodes':
+ {'vnf1':
+ {'collectd':
+ {'interval': 1,
+ 'plugins':
+ {'plugin3': {'param': 1},
+ 'plugin2': {'param': 1},
+ 'plugin1': {'param': 1}}}}}}
+ expected = {'interval': 1,
+ 'plugins':
+ {'plugin3': {'param': 1},
+ 'plugin2': {'param': 1},
+ 'plugin1': {'param': 1}}}
+
+ self.vnf._update_collectd_options(scenario_cfg, context_cfg)
+ self.assertEqual(self.vnf.setup_helper.collectd_options, expected)
+
+ def test__update_options(self):
+ options1 = {'interval': 1,
+ 'param1': 'value1',
+ 'plugins':
+ {'plugin3': {'param': 3},
+ 'plugin2': {'param': 1},
+ 'plugin1': {'param': 1}}}
+ options2 = {'interval': 2,
+ 'param2': 'value2',
+ 'plugins':
+ {'plugin4': {'param': 4},
+ 'plugin2': {'param': 2},
+ 'plugin1': {'param': 2}}}
+ expected = {'interval': 1,
+ 'param1': 'value1',
+ 'param2': 'value2',
+ 'plugins':
+ {'plugin4': {'param': 4},
+ 'plugin3': {'param': 3},
+ 'plugin2': {'param': 1},
+ 'plugin1': {'param': 1}}}
+
+ self.vnf._update_options(options2, options1)
+ self.assertEqual(options2, expected)
+
+ @mock.patch.object(time, 'sleep')
+ @mock.patch.object(ssh, 'SSH')
+ def test_wait_for_instantiate_empty_queue(self, ssh, *args):
+ test_base.mock_ssh(ssh, exec_result=(1, "", ""))
+
+ queue_size_list = [
+ 0,
+ 1,
+ 0,
+ 1,
+ ]
+
+ queue_get_list = [
+ 'some output',
+ 'pipeline> ',
+ ]
+
+ self.vnf.WAIT_TIME_FOR_SCRIPT = 0
+ self.vnf._start_server = mock.Mock(return_value=0)
+ self.vnf._vnf_process = mock.MagicMock()
+ self.vnf._vnf_process.exitcode = 0
+ self.vnf._vnf_process._is_alive.return_value = 1
+ self.vnf.queue_wrapper = mock.Mock()
+ self.vnf.q_out = mock.Mock()
+ self.vnf.q_out.qsize.side_effect = iter(queue_size_list)
+ self.vnf.q_out.get.side_effect = iter(queue_get_list)
+ self.vnf.ssh_helper = mock.MagicMock()
+ self.vnf.resource_helper.ssh_helper = mock.MagicMock()
+ self.vnf.resource_helper.start_collect = mock.MagicMock()
+
+ self.assertEqual(self.vnf.wait_for_instantiate(), 0)
+
+ @mock.patch.object(time, 'sleep')
+ @mock.patch.object(ssh, 'SSH')
+ def test_wait_for_initialize(self, ssh, *args):
+ test_base.mock_ssh(ssh, exec_result=(1, "", ""))
+ queue_get_list = [
+ 'some output',
+ 'pipeline> ',
+ 'run non_existent_script_name',
+ 'Cannot open file "non_existent_script_name"'
+ ]
+ queue_size_list = [
+ 0,
+ len(queue_get_list[0]),
+ 0,
+ len(queue_get_list[1]),
+ len(queue_get_list[2]),
+ 0,
+ len(queue_get_list[3])
+ ]
+ self.vnf.WAIT_TIME_FOR_SCRIPT = 0
+ self.vnf._start_server = mock.Mock(return_value=0)
+ self.vnf._vnf_process = mock.MagicMock()
+ self.vnf._vnf_process.exitcode = 0
+ self.vnf._vnf_process._is_alive.return_value = 1
+ self.vnf.queue_wrapper = mock.Mock()
+ self.vnf.q_out = mock.Mock()
+ self.vnf.q_out.qsize.side_effect = iter(queue_size_list)
+ self.vnf.q_out.get.side_effect = iter(queue_get_list)
+ self.vnf.ssh_helper = mock.MagicMock()
+ self.vnf.resource_helper.ssh_helper = mock.MagicMock()
+ self.vnf.resource_helper.start_collect = mock.MagicMock()
+
+ self.assertEqual(self.vnf.wait_for_initialize(), 0)
+
+ @mock.patch.object(time, "sleep")
+ def test_vnf_execute_with_queue_data(self, *args):
+ queue_size_list = [
+ 1,
+ 1,
+ 0,
+ ]
+
+ queue_get_list = [
+ 'hello ',
+ 'world'
+ ]
+ self.vnf.q_out = mock.Mock()
+ self.vnf.q_out.qsize.side_effect = iter(queue_size_list)
+ self.vnf.q_out.get.side_effect = iter(queue_get_list)
+
+ self.assertEqual(self.vnf.vnf_execute('my command'), 'hello world')
+
+ def test_terminate_without_vnf_process(self):
+ self.vnf.vnf_execute = mock.Mock()
+ self.vnf.ssh_helper = mock.Mock()
+ self.vnf._tear_down = mock.Mock()
+ self.vnf.resource_helper = mock.Mock()
+
+ self.assertIsNone(self.vnf.terminate())
+
+ def test_get_stats(self):
+ self.vnf.APP_WORD = 'sample1'
+ self.vnf.vnf_execute = mock.Mock(return_value='the stats')
+
+ self.assertEqual(self.vnf.get_stats(), 'the stats')
+
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server',
+ return_value='mock_node')
+ def test_collect_kpi(self, *args):
+ self.vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {self.vnf.name: "mock"}
+ }
+ self.vnf.COLLECT_KPI = r'\s(\d+)\D*(\d+)\D*(\d+)'
+ self.vnf.COLLECT_MAP = {
+ 'k1': 3,
+ 'k2': 1,
+ 'k3': 2,
+ }
+ self.vnf.get_stats = mock.Mock(return_value='index0: 34 -- 91, 27')
+ self.vnf.resource_helper = mock.Mock()
+ self.vnf.resource_helper.collect_kpi.return_value = {}
+
+ expected = {
+ 'k1': 27,
+ 'k2': 34,
+ 'k3': 91,
+ 'collect_stats': {},
+ 'physical_node': 'mock_node'
+ }
+ result = self.vnf.collect_kpi()
+ self.assertEqual(result, expected)
+
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server',
+ return_value='mock_node')
+ def test_collect_kpi_default(self, *args):
+ self.vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {self.vnf.name: "mock"}
+ }
+ self.vnf.COLLECT_KPI = r'\s(\d+)\D*(\d+)\D*(\d+)'
+ self.vnf.get_stats = mock.Mock(return_value='')
+
+ expected = {
+ 'physical_node': 'mock_node',
+ 'packets_in': 0,
+ 'packets_fwd': 0,
+ 'packets_dropped': 0,
+ }
+ result = self.vnf.collect_kpi()
+ self.assertEqual(result, expected)
+
+ def test_scale(self):
+ self.assertRaises(y_exceptions.FunctionNotImplemented, self.vnf.scale)
+
+ def test__run(self):
+ test_cmd = 'test cmd'
+ run_kwargs = {'arg1': 'val1', 'arg2': 'val2'}
+ self.vnf.ssh_helper = mock.Mock()
+ self.vnf.setup_helper = mock.Mock()
+ with mock.patch.object(self.vnf, '_build_config',
+ return_value=test_cmd), \
+ mock.patch.object(self.vnf, '_build_run_kwargs'):
+ self.vnf.run_kwargs = run_kwargs
+ self.vnf._run()
+ self.vnf.ssh_helper.drop_connection.assert_called_once()
+ self.vnf.ssh_helper.run.assert_called_once_with(test_cmd, **run_kwargs)
+ self.vnf.setup_helper.kill_vnf.assert_called_once()
+
+
+class TestSampleVNFTrafficGen(unittest.TestCase):
+
+ VNFD_0 = TestSampleVnf.VNFD_0
+ VNFD = TestSampleVnf.VNFD
+
+ TRAFFIC_PROFILE = TestSampleVnf.TRAFFIC_PROFILE
+
+ def setUp(self):
+ self.sample_vnf_tg = sample_vnf.SampleVNFTrafficGen(
+ 'tg1', self.VNFD_0)
+
+ def test__check_status(self):
+
+ with self.assertRaises(NotImplementedError):
+ self.sample_vnf_tg._check_status()
+
+ def test_listen_traffic(self):
+ self.sample_vnf_tg.listen_traffic(mock.Mock())
+
+ def test_verify_traffic(self):
+ self.sample_vnf_tg.verify_traffic(mock.Mock())
+
+ def test_terminate(self):
+ self.sample_vnf_tg._traffic_process = mock.Mock()
+ self.sample_vnf_tg._tg_process = mock.Mock()
+
+ self.sample_vnf_tg.terminate()
+
+ @mock.patch.object(time, 'sleep')
+ def test__wait_for_process(self, *args):
+ with mock.patch.object(self.sample_vnf_tg, '_check_status',
+ return_value=0) as mock_status, \
+ mock.patch.object(self.sample_vnf_tg, '_tg_process') as mock_proc:
+ mock_proc.is_alive.return_value = True
+ mock_proc.exitcode = 234
+ self.assertEqual(self.sample_vnf_tg._wait_for_process(), 234)
+ mock_proc.is_alive.assert_called_once()
+ mock_status.assert_called_once()
+
+ def test__wait_for_process_not_alive(self):
+ with mock.patch.object(self.sample_vnf_tg, '_tg_process') as mock_proc:
+ mock_proc.is_alive.return_value = False
+ self.assertRaises(RuntimeError, self.sample_vnf_tg._wait_for_process)
+ mock_proc.is_alive.assert_called_once()
+
+ @mock.patch.object(time, 'sleep')
+ def test__wait_for_process_delayed(self, *args):
+ with mock.patch.object(self.sample_vnf_tg, '_check_status',
+ side_effect=[1, 0]) as mock_status, \
+ mock.patch.object(self.sample_vnf_tg,
+ '_tg_process') as mock_proc:
+ mock_proc.is_alive.return_value = True
+ mock_proc.exitcode = 234
+ self.assertEqual(self.sample_vnf_tg._wait_for_process(), 234)
+ mock_proc.is_alive.assert_has_calls([mock.call(), mock.call()])
+ mock_status.assert_has_calls([mock.call(), mock.call()])
+
+ def test_scale(self):
+ self.assertRaises(y_exceptions.FunctionNotImplemented,
+ self.sample_vnf_tg.scale)
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_imsbench_sipp.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_imsbench_sipp.py
new file mode 100644
index 000000000..698b1b03f
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_imsbench_sipp.py
@@ -0,0 +1,481 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+import unittest
+from collections import deque
+
+from yardstick.network_services.vnf_generic.vnf import tg_imsbench_sipp
+from yardstick import ssh
+
+
+class TestSippVnf(unittest.TestCase):
+
+ VNFD = {
+ "short-name": "SippVnf",
+ "vdu": [
+ {
+ "id": "sippvnf-baremetal",
+ "routing_table": "",
+ "external-interface": [
+ {
+ "virtual-interface": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "vnfd-connection-point-ref": "xe0",
+ "name": "xe0"
+ },
+ {
+ "virtual-interface": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe1",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "vnfd-connection-point-ref": "xe1",
+ "name": "xe1"
+ }
+ ],
+ "name": "sippvnf-baremetal",
+ "description": "Sipp"
+ }
+ ],
+ "description": "ImsbenchSipp",
+ "mgmt-interface": {
+ "vdu-id": "sipp-baremetal",
+ "password": "r00t",
+ "user": "root",
+ "ip": "10.80.3.11"
+ },
+ "benchmark": {
+ "kpi": [
+ "packets_in",
+ "packets_fwd",
+ "packets_dropped"
+ ]
+ },
+ "id": "SippVnf",
+ "name": "SippVnf"
+ }
+
+ SCENARIO_CFG = {
+ "task_id": "ba636744-898e-4783-a4aa-0a79c60953cc",
+ "tc": "tc_vims_baremetal_sipp",
+ "runner": {
+ "interval": 1,
+ "output_config": {
+ "DEFAULT": {
+ "debug": "False",
+ "dispatcher": [
+ "influxdb"
+ ]
+ },
+ "nsb": {
+ "debug": "False",
+ "trex_client_lib": "/opt/nsb_bin/trex_client/stl",
+ "bin_path": "/opt/nsb_bin",
+ "trex_path": "/opt/nsb_bin/trex/scripts",
+ "dispatcher": "influxdb"
+ },
+ "dispatcher_influxdb": {
+ "username": "root",
+ "target": "http://10.80.3.11:8086",
+ "db_name": "yardstick",
+ "timeout": "5",
+ "debug": "False",
+ "password": "root",
+ "dispatcher": "influxdb"
+ },
+ "dispatcher_http": {
+ "debug": "False",
+ "dispatcher": "influxdb",
+ "timeout": "5",
+ "target": "http://127.0.0.1:8000/results"
+ },
+ "dispatcher_file": {
+ "debug": "False",
+ "backup_count": "0",
+ "max_bytes": "0",
+ "dispatcher": "influxdb",
+ "file_path": "/tmp/yardstick.out"
+ }
+ },
+ "runner_id": 18148,
+ "duration": 60,
+ "type": "Vims"
+ },
+ "nodes": {
+ "vnf__0": "pcscf.yardstick-ba636744",
+ "vnf__1": "hss.yardstick-ba636744",
+ "tg__0": "sipp.yardstick-ba636744"
+ },
+ "topology": "vims-topology.yaml",
+ "type": "NSPerf",
+ "traffic_profile": "../../traffic_profiles/ipv4_throughput.yaml",
+ "task_path": "samples/vnf_samples/nsut/vims",
+ "options": {
+ "init_reg_max": 5000,
+ "end_user": 10000,
+ "reg_cps": 20,
+ "rereg_cps": 20,
+ "rereg_step": 10,
+ "wait_time": 5,
+ "start_user": 1,
+ "msgc_cps": 10,
+ "dereg_step": 10,
+ "call_cps": 10,
+ "reg_step": 10,
+ "init_reg_cps": 50,
+ "dereg_cps": 20,
+ "msgc_step": 5,
+ "call_step": 5,
+ "hold_time": 15,
+ "port": 5060,
+ "run_mode": "nortp"
+ }
+ }
+ CONTEXT_CFG = {
+ "nodes": {
+ "tg__0": {
+ "ip": "10.80.3.11",
+ "interfaces": {
+ "xe0": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "xe1": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe1",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ }
+ },
+ "user": "root",
+ "password": "r00t",
+ "VNF model": "../../vnf_descriptors/tg_sipp_vnfd.yaml",
+ "name": "sipp.yardstick-a75a3aff",
+ "vnfd-id-ref": "tg__0",
+ "member-vnf-index": "1",
+ "role": "TrafficGen",
+ "ctx_type": "Node"
+ },
+ "vnf__0": {
+ "ip": "10.80.3.7",
+ "interfaces": {
+ "xe0": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "tg__0": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe1",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ }
+ },
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ }
+ },
+ "user": "root",
+ "password": "r00t",
+ "VNF model": "../../vnf_descriptors/vims_pcscf_vnfd.yaml",
+ "name": "pcscf.yardstick-a75a3aff",
+ "vnfd-id-ref": "vnf__0",
+ "member-vnf-index": "2",
+ "role": "VirtualNetworkFunction",
+ "ctx_type": "Node"
+ },
+ "vnf__1": {
+ "ip": "10.80.3.7",
+ "interfaces": {
+ "xe0": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "tg__0": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe1",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ }
+ },
+ "node_name": "vnf__1",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:e8"
+ }
+ },
+ "user": "root",
+ "password": "r00t",
+ "VNF model": "../../vnf_descriptors/vims_hss_vnfd.yaml",
+ "name": "hss.yardstick-a75a3aff",
+ "vnfd-id-ref": "vnf__1",
+ "member-vnf-index": "3",
+ "role": "VirtualNetworkFunction",
+ "ctx_type": "Node"
+ }
+ },
+ "networks": {}
+ }
+
+ FILE = "timestamp:1000 reg:100 reg_saps:0"
+
+ QUEUE = {'reg_saps': 0.0, 'timestamp': 1000.0, 'reg': 100.0}
+
+ TRAFFIC_PROFILE = {
+ "schema": "nsb:traffic_profile:0.1",
+ "name": "sip",
+ "description": "Traffic profile to run sip",
+ "traffic_profile": {
+ "traffic_type": "SipProfile",
+ "frame_rate": 100, # pps
+ "enable_latency": False
+ },
+ }
+
+ def setUp(self):
+ self._mock_ssh = mock.patch.object(ssh, 'SSH')
+ self.mock_ssh = self._mock_ssh.start()
+
+ self.addCleanup(self._stop_mocks)
+ self.sipp_vnf = tg_imsbench_sipp.SippVnf('tg__0', self.VNFD)
+
+ def _stop_mocks(self):
+ self._mock_ssh.stop()
+
+ def test___init__(self):
+ self.assertIsInstance(self.sipp_vnf.resource_helper,
+ tg_imsbench_sipp.SippResourceHelper)
+
+ def test_wait_for_instantiate(self):
+ self.assertIsNone(self.sipp_vnf.wait_for_instantiate())
+
+ @mock.patch('six.moves.builtins.open', new_callable=mock.mock_open, read_data=FILE)
+ def test_handle_result_files(self, mock_file):
+ result_deque = deque([self.QUEUE])
+ file = "/tmp/test.txt"
+ test = self.sipp_vnf.handle_result_files(file)
+ self.assertEqual(result_deque, test)
+ mock_file.assert_called_with(file, 'r')
+
+ @mock.patch.object(ssh.SSH, 'get')
+ def test_get_result_files(self, mock_get):
+ self.sipp_vnf.get_result_files()
+ mock_get.assert_called()
+
+ def test_collect_kpi(self):
+ self.sipp_vnf.queue = deque([self.QUEUE])
+ self.assertEqual(self.QUEUE, self.sipp_vnf.collect_kpi())
+
+ def test_collect_kpi_empty(self):
+ self.sipp_vnf.queue = deque([])
+ self.assertEqual({}, self.sipp_vnf.collect_kpi())
+
+ @mock.patch('six.moves.builtins.open', new_callable=mock.mock_open, read_data=FILE)
+ def test_count_line_num(self, mock_file):
+ file = "/tmp/test.txt"
+ mock_file.return_value.__iter__.return_value = self.FILE.splitlines()
+ self.assertEqual(1, self.sipp_vnf.count_line_num(file))
+ mock_file.assert_called_with(file, 'r')
+
+ @mock.patch('six.moves.builtins.open', new_callable=mock.mock_open, read_data='')
+ def test_count_line_num_file_empty(self, mock_file):
+ file = "/tmp/test.txt"
+ self.assertEqual(0, self.sipp_vnf.count_line_num(file))
+ mock_file.assert_called_with(file, 'r')
+
+ @mock.patch('six.moves.builtins.open', new_callable=mock.mock_open, read_data=FILE)
+ def test_count_line_num_file_error(self, mock_file):
+ file = "/tmp/test.txt"
+ mock_file.side_effect = IOError()
+ self.assertEqual(0, self.sipp_vnf.count_line_num(file))
+
+ def test_is_ended_false(self):
+ self.sipp_vnf.count_line_num = mock.Mock(return_value=1)
+ not_end = self.sipp_vnf.is_ended()
+ self.assertFalse(not_end)
+
+ def test_is_ended_true(self):
+ self.sipp_vnf.count_line_num = mock.Mock(return_value=0)
+ end = self.sipp_vnf.is_ended()
+ self.assertTrue(end)
+
+ def test_terminate(self):
+ self.sipp_vnf.ssh_helper = mock.MagicMock()
+ self.sipp_vnf.resource_helper.ssh_helper = mock.MagicMock()
+ self.assertIsNone(self.sipp_vnf.terminate())
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_ixload.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_ixload.py
new file mode 100644
index 000000000..dd1c277c3
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_ixload.py
@@ -0,0 +1,287 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import subprocess
+
+import mock
+import six
+
+from yardstick import ssh
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.common import utils
+from yardstick.network_services.vnf_generic.vnf import tg_ixload
+from yardstick.network_services.traffic_profile import base as tp_base
+from yardstick.tests.unit import base as ut_base
+
+
+NAME = "tg__1"
+
+
+class TestIxLoadTrafficGen(ut_base.BaseUnitTestCase):
+ VNFD = {'vnfd:vnfd-catalog':
+ {'vnfd':
+ [{'short-name': 'VpeVnf',
+ 'vdu':
+ [{'routing_table':
+ [{'network': '152.16.100.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'if': 'xe0'},
+ {'network': '152.16.40.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'if': 'xe1'}],
+ 'description': 'VPE approximation using DPDK',
+ 'name': 'vpevnf-baremetal',
+ 'nd_route_tbl':
+ [{'network': '0064:ff9b:0:0:0:0:9810:6414',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
+ 'if': 'xe0'},
+ {'network': '0064:ff9b:0:0:0:0:9810:2814',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
+ 'if': 'xe1'}],
+ 'id': 'vpevnf-baremetal',
+ 'external-interface':
+ [{'virtual-interface':
+ {'dst_mac': '00:00:00:00:00:04',
+ 'vld_id': 'uplink_0',
+ 'vpci': '0000:05:00.0',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'bandwidth': '10 Gbps',
+ 'driver': "i40e",
+ 'dst_ip': '152.16.100.20',
+ 'local_iface_name': 'xe0',
+ 'local_mac': '00:00:00:00:00:02'},
+ 'vnfd-connection-point-ref': 'xe0',
+ 'name': 'xe0'},
+ {'virtual-interface':
+ {'dst_mac': '00:00:00:00:00:03',
+ 'vld_id': 'downlink_0',
+ 'vpci': '0000:05:00.1',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'driver': "i40e",
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 1,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_iface_name': 'xe1',
+ 'local_mac': '00:00:00:00:00:01'},
+ 'vnfd-connection-point-ref': 'xe1',
+ 'name': 'xe1'}]}],
+ 'description': 'Vpe approximation using DPDK',
+ 'mgmt-interface':
+ {'vdu-id': 'vpevnf-baremetal',
+ 'host': '1.1.1.1',
+ 'password': 'r00t',
+ 'user': 'root',
+ 'ip': '1.1.1.1'},
+ 'benchmark':
+ {'kpi': ['packets_in', 'packets_fwd', 'packets_dropped']},
+ 'connection-point': [{'type': 'VPORT', 'name': 'xe0'},
+ {'type': 'VPORT', 'name': 'xe1'}],
+ 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'}]}}
+
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100, # pps
+ "flow_number": 10,
+ "frame_size": 64}}
+
+ def setUp(self):
+ self._mock_call = mock.patch.object(subprocess, 'call')
+ self.mock_call = self._mock_call.start()
+ self._mock_open = mock.patch.object(tg_ixload, 'open')
+ self.mock_open = self._mock_open.start()
+ self._mock_ssh = mock.patch.object(ssh, 'SSH')
+ self.mock_ssh = self._mock_ssh.start()
+ ssh_obj_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_obj_mock.execute = mock.Mock(return_value=(0, '', ''))
+ ssh_obj_mock.run = mock.Mock(return_value=(0, '', ''))
+ self.mock_ssh.from_node.return_value = ssh_obj_mock
+ self.addCleanup(self._stop_mock)
+
+ def _stop_mock(self):
+ self._mock_call.stop()
+ self._mock_open.stop()
+ self._mock_ssh.stop()
+
+ def test___init__(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ self.assertIsNone(ixload_traffic_gen.resource_helper.data)
+
+ def test_update_gateways(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ links = {'uplink_0': {'ip': {}},
+ 'downlink_1': {'ip': {}}}
+
+ ixload_traffic_gen.update_gateways(links)
+
+ self.assertEqual("152.16.100.20", links["uplink_0"]["ip"]["gateway"])
+ self.assertEqual("0.0.0.0", links["downlink_1"]["ip"]["gateway"])
+
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server',
+ return_value='mock_node')
+ def test_collect_kpi(self, *args):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ ixload_traffic_gen.scenario_helper.scenario_cfg = {
+ 'nodes': {ixload_traffic_gen.name: "mock"}
+ }
+ ixload_traffic_gen.data = {}
+ result = ixload_traffic_gen.collect_kpi()
+
+ expected = {
+ 'physical_node': 'mock_node',
+ 'collect_stats': {}}
+ self.assertEqual(expected, result)
+
+ def test_listen_traffic(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ self.assertIsNone(ixload_traffic_gen.listen_traffic({}))
+
+ @mock.patch.object(utils, 'find_relative_file')
+ @mock.patch.object(utils, 'makedirs')
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server')
+ @mock.patch.object(tg_ixload, 'shutil')
+ def test_instantiate(self, mock_shutil, *args):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ scenario_cfg = {'tc': "nsb_test_case",
+ 'ixia_profile': "ixload.cfg",
+ 'task_path': "/path/to/task"}
+ ixload_traffic_gen.RESULTS_MOUNT = "/tmp/result"
+ mock_shutil.copy = mock.Mock()
+ scenario_cfg.update(
+ {'options':
+ {'packetsize': 64, 'traffic_type': 4,
+ 'rfc2544': {'allowed_drop_rate': '0.8 - 1'},
+ 'vnf__1': {'rules': 'acl_1rule.yaml',
+ 'vnf_config': {'lb_config': 'SW',
+ 'lb_count': 1,
+ 'worker_config':
+ '1C/1T',
+ 'worker_threads': 1}}
+ }
+ }
+ )
+ scenario_cfg.update({'nodes': {ixload_traffic_gen.name: "mock"}})
+ with mock.patch.object(six.moves.builtins, 'open',
+ create=True) as mock_open:
+ mock_open.return_value = mock.MagicMock()
+ ixload_traffic_gen.instantiate(scenario_cfg, {})
+
+ @mock.patch.object(tg_ixload, 'open')
+ @mock.patch.object(tg_ixload, 'min')
+ @mock.patch.object(tg_ixload, 'max')
+ @mock.patch.object(tg_ixload, 'len')
+ @mock.patch.object(tg_ixload, 'shutil')
+ def test_run_traffic(self, *args):
+ mock_traffic_profile = mock.Mock(autospec=tp_base.TrafficProfile)
+ mock_traffic_profile.get_traffic_definition.return_value = '64'
+ mock_traffic_profile.get_links_param.return_value = {
+ 'uplink_0': {'ip': {}}}
+ mock_traffic_profile.params = self.TRAFFIC_PROFILE
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vnfd['mgmt-interface'].update({'tg-config': {}})
+ vnfd['mgmt-interface']['tg-config'].update({'ixchassis': '1.1.1.1'})
+ vnfd['mgmt-interface']['tg-config'].update({'py_bin_path': '/root'})
+ sut = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ sut.connection = mock.Mock()
+ sut._traffic_runner = mock.Mock(return_value=0)
+ result = sut.run_traffic(mock_traffic_profile)
+ self.assertIsNone(result)
+
+ @mock.patch.object(tg_ixload, 'open')
+ @mock.patch.object(tg_ixload, 'min')
+ @mock.patch.object(tg_ixload, 'max')
+ @mock.patch.object(tg_ixload, 'len')
+ @mock.patch.object(tg_ixload, 'shutil')
+ def test_run_traffic_csv(self, *args):
+ mock_traffic_profile = mock.Mock(autospec=tp_base.TrafficProfile)
+ mock_traffic_profile.get_traffic_definition.return_value = '64'
+ mock_traffic_profile.get_links_param.return_value = {
+ 'uplink_0': {'ip': {}}}
+ mock_traffic_profile.params = self.TRAFFIC_PROFILE
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vnfd['mgmt-interface'].update({'tg-config': {}})
+ vnfd['mgmt-interface']['tg-config'].update({'ixchassis': '1.1.1.1'})
+ vnfd['mgmt-interface']['tg-config'].update({'py_bin_path': '/root'})
+ sut = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ sut.connection = mock.Mock()
+ sut._traffic_runner = mock.Mock(return_value=0)
+ subprocess.call(['touch', '/tmp/1.csv'])
+ sut.rel_bin_path = mock.Mock(return_value='/tmp/*.csv')
+ result = sut.run_traffic(mock_traffic_profile)
+ self.assertIsNone(result)
+
+ def test_terminate(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ self.assertIsNone(ixload_traffic_gen.terminate())
+
+ def test_parse_csv_read(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ kpi_data = {
+ 'HTTP Total Throughput (Kbps)': 1,
+ 'HTTP Simulated Users': 2,
+ 'HTTP Concurrent Connections': '3',
+ 'HTTP Connection Rate': 4.3,
+ 'HTTP Transaction Rate': True,
+ }
+ http_reader = [kpi_data]
+ ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ result = ixload_traffic_gen.resource_helper.result
+ ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
+ for k_left, k_right in tg_ixload.IxLoadResourceHelper.KPI_LIST.items():
+ self.assertEqual(result[k_left][-1], int(kpi_data[k_right]))
+
+ def test_parse_csv_read_value_error(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ http_reader = [{
+ 'HTTP Total Throughput (Kbps)': 1,
+ 'HTTP Simulated Users': 2,
+ 'HTTP Concurrent Connections': "not a number",
+ 'HTTP Connection Rate': 4,
+ 'HTTP Transaction Rate': 5,
+ }]
+ ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ init_value = ixload_traffic_gen.resource_helper.result
+ ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
+ self.assertDictEqual(ixload_traffic_gen.resource_helper.result,
+ init_value)
+
+ def test_parse_csv_read_error(self,):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ http_reader = [{
+ 'HTTP Total Throughput (Kbps)': 1,
+ 'HTTP Simulated Users': 2,
+ 'HTTP Concurrent Connections': 3,
+ 'HTTP Transaction Rate': 5,
+ }]
+ ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
+ with self.assertRaises(KeyError):
+ ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_landslide.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_landslide.py
new file mode 100644
index 000000000..2d8c01bec
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_landslide.py
@@ -0,0 +1,1951 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import copy
+import mock
+import requests
+import time
+import unittest
+
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.common import exceptions
+from yardstick.common import utils as common_utils
+from yardstick.common import yaml_loader
+from yardstick.network_services import utils as net_serv_utils
+from yardstick.network_services.traffic_profile import landslide_profile
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+from yardstick.network_services.vnf_generic.vnf import tg_landslide
+from yardstick.network_services.vnf_generic.vnf import base as vnf_base
+
+NAME = "tg__0"
+
+EXAMPLE_URL = 'http://example.com/'
+TCL_SUCCESS_RESPONSE = 'ls_ok'
+
+TEST_SERVERS = [
+ {'ip': '192.168.122.101',
+ 'phySubnets': [
+ {'mask': '/24',
+ 'base': '10.42.32.100',
+ 'numIps': 20,
+ 'name': 'eth1'}
+ ],
+ 'role': 'SGW_Node',
+ 'name': 'TestServer_1'},
+ {'ip': '192.168.122.102',
+ 'phySubnets': [
+ {'mask': '/24',
+ 'base': '10.42.32.1',
+ 'numIps': 100,
+ 'name': 'eth1'
+ },
+ {'mask': '/24',
+ 'base': '10.42.33.1',
+ 'numIps': 100,
+ 'name': 'eth2'}
+ ],
+ 'preResolvedArpAddress': [
+ {'NumNodes': 1,
+ 'StartingAddress': '10.42.33.5'}
+ ],
+ 'role': 'SGW_Nodal',
+ 'name': 'TestServer_2',
+ 'thread_model': 'Fireball'
+ }
+]
+
+TS1_SUTS = [
+ {'name': 'SGW - C TestNode',
+ 'role': 'SgwControlAddr',
+ 'managementIp': '12.0.1.1',
+ 'ip': '10.42.32.100',
+ 'phy': 'eth5',
+ 'nextHop': '10.42.32.5'
+ },
+ {'name': 'SGW - U TestNode',
+ 'role': 'SgwUserAddr',
+ 'managementIp': '12.0.1.2',
+ 'ip': '10.42.32.101',
+ 'phy': 'eth5',
+ 'nextHop': '10.42.32.5'
+ }
+]
+
+TS2_SUTS = [
+ {'name': 'eNodeB TestNode',
+ 'role': 'EnbUserAddr',
+ 'managementIp': '12.0.2.1',
+ 'ip': '10.42.32.2',
+ 'phy': 'eth5',
+ 'nextHop': '10.42.32.5'
+ },
+ {'name': 'MME TestNode',
+ 'role': 'MmeControlAddr',
+ 'managementIp': '12.0.3.1',
+ 'ip': '10.42.32.1',
+ 'phy': 'eth5',
+ 'nextHop': '10.42.32.5'
+ },
+ {'name': 'NetHost TestNode',
+ 'role': 'NetworkHostAddrLocal',
+ 'managementIp': '12.0.4.1',
+ 'ip': '10.42.33.1',
+ 'phy': 'eth5',
+ 'nextHop': '10.42.32.5'
+ },
+ {'name': 'PGW TestNode',
+ 'role': 'PgwV4Sut',
+ 'managementIp': '12.0.5.1',
+ 'ip': '10.42.32.105',
+ 'phy': 'eth5',
+ 'nextHop': '10.42.32.5'
+ },
+ {'name': 'SGW - C SUT',
+ 'role': 'SgwSut',
+ 'managementIp': '12.0.6.1',
+ 'ip': '10.42.32.100'
+ },
+ {'name': 'SGW - U SUT',
+ 'role': 'SgwUserSut',
+ 'managementIp': '12.0.6.2',
+ 'ip': '10.42.32.101'}
+]
+
+VNFD = {
+ 'vnfd:vnfd-catalog': {
+ 'vnfd': [{
+ 'short-name': 'landslide',
+ 'vdu': [{
+ 'description': 'AB client interface details',
+ 'name': 'abclient-baremetal',
+ 'id': 'abclient-baremetal',
+ 'external-interface': []}],
+ 'description': 'Spirent Landslide traffic generator',
+ 'config': [{'test_server': TEST_SERVERS[0], 'suts': TS1_SUTS},
+ {'test_server': TEST_SERVERS[1], 'suts': TS2_SUTS}],
+ 'mgmt-interface': {
+ 'vdu-id': 'landslide-tas',
+ 'user': 'user',
+ 'password': 'user',
+ 'super-user': 'super-user',
+ 'super-user-password': 'super-user-password',
+ 'cfguser_password': 'cfguser_password',
+ 'license': 48,
+ 'proto': 'http',
+ 'ip': '1.1.1.1'},
+ 'benchmark': {
+ 'kpi': [
+ 'tx_throughput_mbps',
+ 'rx_throughput_mbps',
+ 'in_packets',
+ 'out_packets',
+ 'activation_rate_sessps',
+ 'deactivation_rate_sessps']},
+ 'id': 'LandslideTrafficGen',
+ 'name': 'LandslideTrafficGen'}]}}
+
+TAS_INFO = VNFD['vnfd:vnfd-catalog']['vnfd'][0]['mgmt-interface']
+
+DMF_CFG = {
+ "dmf": {
+ "library": "test",
+ "name": "Basic UDP"
+ },
+ "clientPort": {
+ "clientPort": 2002,
+ "isClientPortRange": "false"
+ },
+ "dataProtocol": "udp",
+ "serverPort": 2003
+}
+
+RESERVATIONS = [
+ {'tsName': TEST_SERVERS[0]['name'],
+ 'phySubnets': TEST_SERVERS[0]['phySubnets'],
+ 'tsId': TEST_SERVERS[0]['name'],
+ 'tsIndex': 0},
+ {'tsName': TEST_SERVERS[1]['name'],
+ 'phySubnets': TEST_SERVERS[1]['phySubnets'],
+ 'tsId': TEST_SERVERS[1]['name'],
+ 'tsIndex': 1}]
+
+SESSION_PROFILE = {
+ 'keywords': '',
+ 'duration': 60,
+ 'iterations': 1,
+ 'description': 'UE default bearer creation test case',
+ 'name': 'default_bearer_capacity',
+ 'reportOptions': {'format': 'CSV'},
+ 'reservePorts': 'false',
+ 'tsGroups': [
+ {
+ 'testCases': [{
+ 'type': 'SGW_Node',
+ 'name': '',
+ 'linked': "false",
+ 'AssociatedPhys': '',
+ 'parameters': {
+ 'SgiPtpTunnelEn': 'false',
+ 'Gtp2Imsi': '505024101215074',
+ 'Sessions': '100000',
+ 'S5Protocol': 'GTPv2',
+ 'TrafficMtu': '1500',
+ 'Gtp2Version': '13.6.0',
+ 'BearerV4AddrPool': '1.0.0.1',
+ 'Gtp2Imei': '50502410121507',
+ 'PgwNodeEn': 'true',
+ 'DedicatedsPerDefaultBearer': '0',
+ 'DefaultBearers': '1',
+ 'SgwUserAddr': {
+ 'numLinksOrNodes': 1,
+ 'phy': 'eth1',
+ 'forcedEthInterface': '',
+ 'ip': 'SGW_USER_IP',
+ 'class': 'TestNode',
+ 'ethStatsEnabled': "false",
+ 'mtu': 1500
+ },
+ 'SgwControlAddr': {
+ 'numLinksOrNodes': 1,
+ 'phy': 'eth1',
+ 'forcedEthInterface': '',
+ 'ip': 'SGW_CONTROL_IP',
+ 'class': 'TestNode',
+ 'ethStatsEnabled': "false",
+ 'mtu': 1500,
+ 'nextHop': 'SGW_CONTROL_NEXT_HOP'
+ },
+ 'BearerAddrPool': '2001::1',
+ 'TestType': 'SGW-NODE'
+ }
+ }],
+ 'tsId': TEST_SERVERS[0]['name']},
+ {
+ 'testCases': [{
+ 'type': 'SGW_Nodal',
+ 'name': '',
+ 'parameters': {
+ 'DataTraffic': 'Continuous',
+ 'TrafficStartType': 'When All Sessions Established',
+ 'NetworkHost': 'Local',
+ 'Gtp2Imsi': '505024101215074',
+ 'Dmf': {
+ 'mainflows': [
+ {
+ 'name': 'Basic UDP',
+ 'library': 'test'
+ }
+ ],
+ 'class': 'Dmf',
+ 'instanceGroups': [
+ {
+ 'startPaused': "false",
+ 'rate': 0,
+ 'mainflowIdx': 0,
+ 'mixType': ''
+ }
+ ]
+ },
+ 'S5Protocol': 'GTPv2',
+ 'DataUserCfgFileEn': 'false',
+ 'PgwUserSutEn': 'false',
+ 'MmeControlAddr': {
+ 'numLinksOrNodes': 1,
+ 'phy': 'eth1',
+ 'forcedEthInterface': '',
+ 'ip': 'MME_CONTROL_IP',
+ 'class': 'TestNode',
+ 'ethStatsEnabled': "false",
+ 'mtu': 1500
+ },
+ 'SgwUserSut': {
+ 'class': 'Sut',
+ 'name': 'SGW_USER_NAME'
+ },
+ 'TestActivity': 'Capacity Test',
+ 'NetworkHostAddrLocal': {
+ 'numLinksOrNodes': 1,
+ 'phy': 'eth2',
+ 'forcedEthInterface': '',
+ 'ip': 'NET_HOST_IP',
+ 'class': 'TestNode',
+ 'ethStatsEnabled': "false",
+ 'mtu': 1500
+ },
+ 'DedicatedsPerDefaultBearer': '0',
+ 'DisconnectRate': '1000.0',
+ 'Sessions': '100000',
+ 'SgwSut': {
+ 'class': 'Sut',
+ 'name': 'SGW_CONTROL_NAME'
+ },
+ 'TrafficMtu': '1500',
+ 'Gtp2Version': '13.6.0',
+ 'Gtp2Imei': '50502410121507',
+ 'PgwNodeEn': 'false',
+ 'StartRate': '1000.0',
+ 'PgwV4Sut': {
+ 'class': 'Sut',
+ 'name': 'PGW_SUT_NAME'
+ },
+ 'DefaultBearers': '1',
+ 'EnbUserAddr': {
+ 'numLinksOrNodes': 1,
+ 'phy': 'eth1',
+ 'forcedEthInterface': '',
+ 'ip': 'ENB_USER_IP',
+ 'class': 'TestNode',
+ 'ethStatsEnabled': "false",
+ 'mtu': 1500
+ },
+ 'TestType': 'SGW-NODAL'
+ }
+ }],
+ 'tsId': TEST_SERVERS[1]['name']
+ }
+ ]
+}
+
+
+class TestLandslideTrafficGen(unittest.TestCase):
+ SCENARIO_CFG = {
+ 'session_profile': '/traffic_profiles/landslide/'
+ 'landslide_session_default_bearer.yaml',
+ 'task_path': '',
+ 'runner': {
+ 'type': 'Iteration',
+ 'iterations': 1
+ },
+ 'nodes': {
+ 'tg__0': 'tg__0.traffic_gen',
+ 'vnf__0': 'vnf__0.vnf_epc'
+ },
+ 'topology': 'landslide_tg_topology.yaml',
+ 'type': 'NSPerf',
+ 'traffic_profile': '../../traffic_profiles/landslide/'
+ 'landslide_dmf_udp.yaml',
+ 'options': {
+ 'traffic_duration': 71,
+ 'test_cases': [
+ {
+ 'BearerAddrPool': '2002::2',
+ 'type': 'SGW_Node',
+ 'BearerV4AddrPool': '2.0.0.2',
+ 'Sessions': '90000'
+ },
+ {
+ 'StartRate': '900.0',
+ 'type': 'SGW_Nodal',
+ 'DisconnectRate': '900.0',
+ 'Sessions': '90000'
+ }
+ ],
+ 'dmf':
+ {
+ 'transactionRate': 1000,
+ 'packetSize': 512
+ }
+ }
+ }
+
+ CONTEXT_CFG = {
+ 'contexts': [
+ {
+ 'type': 'Node',
+ 'name': 'traffic_gen',
+ 'file': '/etc/yardstick/nodes/pod_landslide.yaml'
+ },
+ {
+ 'type': 'Node',
+ 'name': 'vnf_epc',
+ 'file': '/etc/yardstick/nodes/pod_vepc_sut.yaml'
+ }
+ ]
+ }
+
+ TRAFFIC_PROFILE = {
+ "schema": "nsb:traffic_profile:0.1",
+ "name": "LandslideProfile",
+ "description": "Spirent Landslide traffic profile",
+ "traffic_profile": {
+ "traffic_type": "LandslideProfile"
+ },
+ "dmf_config": {
+ "dmf": {
+ "library": "test",
+ "name": "Basic UDP"
+ },
+ "description": "Basic data flow using UDP/IP",
+ "keywords": "UDP",
+ "dataProtocol": "udp"
+ }
+ }
+
+ SUCCESS_CREATED_CODE = 201
+ SUCCESS_OK_CODE = 200
+ SUCCESS_RECORD_ID = 5
+ TEST_USER_ID = 11
+
+ def setUp(self):
+ self.mock_lsapi = mock.patch.object(tg_landslide, 'LsApi')
+ self.mock_lsapi.start()
+
+ self.mock_ssh_helper = mock.patch.object(sample_vnf, 'VnfSshHelper')
+ self.mock_ssh_helper.start()
+ self.vnfd = VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ self.ls_tg = tg_landslide.LandslideTrafficGen(
+ NAME, self.vnfd)
+ self.session_profile = copy.deepcopy(SESSION_PROFILE)
+ self.ls_tg.session_profile = self.session_profile
+
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self.mock_lsapi.stop()
+ self.mock_ssh_helper.stop()
+
+ @mock.patch.object(net_serv_utils, 'get_nsb_option')
+ def test___init__(self, mock_get_nsb_option, *args):
+ _path_to_nsb = 'path/to/nsb'
+ mock_get_nsb_option.return_value = _path_to_nsb
+ ls_tg = tg_landslide.LandslideTrafficGen(NAME, self.vnfd)
+ self.assertIsInstance(ls_tg.resource_helper,
+ tg_landslide.LandslideResourceHelper)
+ mock_get_nsb_option.assert_called_once_with('bin_path')
+ self.assertEqual(_path_to_nsb, ls_tg.bin_path)
+ self.assertEqual(NAME, ls_tg.name)
+ self.assertTrue(ls_tg.runs_traffic)
+ self.assertFalse(ls_tg.traffic_finished)
+ self.assertIsNone(ls_tg.session_profile)
+
+ def test_listen_traffic(self):
+ _traffic_profile = {}
+ self.assertIsNone(self.ls_tg.listen_traffic(_traffic_profile))
+
+ def test_terminate(self, *args):
+ self.ls_tg.resource_helper._tcl = mock.Mock()
+ self.assertIsNone(self.ls_tg.terminate())
+ self.ls_tg.resource_helper._tcl.disconnect.assert_called_once()
+
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server',
+ return_value='fake_context')
+ def test_instantiate(self, *args):
+ self.ls_tg._tg_process = mock.Mock()
+ self.ls_tg._tg_process.start = mock.Mock()
+ self.ls_tg.resource_helper.connect = mock.Mock()
+ self.ls_tg.resource_helper.create_test_servers = mock.Mock()
+ self.ls_tg.resource_helper.create_suts = mock.Mock()
+ self.ls_tg._load_session_profile = mock.Mock()
+ self.assertIsNone(self.ls_tg.instantiate(self.SCENARIO_CFG,
+ self.CONTEXT_CFG))
+ self.ls_tg.resource_helper.connect.assert_called_once()
+ self.ls_tg.resource_helper.create_test_servers.assert_called_once()
+ _suts_blocks_num = len([item['suts'] for item in self.vnfd['config']])
+ self.assertEqual(_suts_blocks_num,
+ self.ls_tg.resource_helper.create_suts.call_count)
+ self.ls_tg._load_session_profile.assert_called_once()
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'get_running_tests')
+ def test_run_traffic(self, mock_get_tests, *args):
+ self.ls_tg.resource_helper._url = EXAMPLE_URL
+ self.ls_tg.scenario_helper.scenario_cfg = self.SCENARIO_CFG
+ mock_traffic_profile = mock.Mock(
+ spec=landslide_profile.LandslideProfile)
+ mock_traffic_profile.dmf_config = {
+ 'keywords': 'UDP',
+ 'dataProtocol': 'udp',
+ 'dmf': {'library': 'test', 'name': 'name'}}
+ mock_traffic_profile.params = self.TRAFFIC_PROFILE
+ self.ls_tg.resource_helper._user_id = self.TEST_USER_ID
+ mock_get_tests.return_value = [{'id': self.SUCCESS_RECORD_ID,
+ 'testStateOrStep': 'COMPLETE'}]
+ mock_post = mock.Mock()
+ mock_post.status_code = self.SUCCESS_CREATED_CODE
+ mock_post.json.return_value = {'id': self.SUCCESS_RECORD_ID}
+ mock_session = mock.Mock(spec=requests.Session)
+ mock_session.post.return_value = mock_post
+ self.ls_tg.resource_helper.session = mock_session
+ self.ls_tg.resource_helper._tcl = mock.Mock()
+ _tcl = self.ls_tg.resource_helper._tcl
+ self.assertIsNone(self.ls_tg.run_traffic(mock_traffic_profile))
+ self.assertEqual(self.SUCCESS_RECORD_ID,
+ self.ls_tg.resource_helper.run_id)
+ mock_traffic_profile.update_dmf.assert_called_with(
+ self.ls_tg.scenario_helper.all_options)
+ _tcl.create_dmf.assert_called_with(mock_traffic_profile.dmf_config)
+ _tcl.create_test_session.assert_called_with(self.session_profile)
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'check_running_test_state')
+ def test_collect_kpi(self, mock_check_running_test_state, *args):
+ self.ls_tg.resource_helper.run_id = self.SUCCESS_RECORD_ID
+ mock_check_running_test_state.return_value = 'COMPLETE'
+ self.assertEqual({'done': True}, self.ls_tg.collect_kpi())
+ mock_check_running_test_state.assert_called_once()
+
+ def test_wait_for_instantiate(self):
+ self.assertIsNone(self.ls_tg.wait_for_instantiate())
+ self.ls_tg.wait_for_instantiate()
+
+ def test__update_session_suts_no_tc_role(self, *args):
+ _suts = [{'role': 'epc_role'}]
+ _testcase = {'parameters': {'diff_epc_role': {'class': 'Sut'}}}
+ res = self.ls_tg._update_session_suts(_suts, _testcase)
+ self.assertEqual(_testcase, res)
+
+ def test__update_session_suts(self, *args):
+
+ def get_testnode_param(role, key, session_prof):
+ """ Get value by key from the deep nested dict to avoid calls like:
+ e.g. session_prof['tsGroups'][0]['testCases'][1]['parameters'][key]
+ """
+ for group in session_prof['tsGroups']:
+ for tc in group['testCases']:
+ tc_params = tc['parameters']
+ if tc_params.get(role):
+ return tc_params[role][key]
+
+ def get_sut_param(role, key, suts):
+ """ Search list of dicts for one with specific role.
+ Return the value of related dict by key. Expect key presence.
+ """
+ for sut in suts:
+ if sut.get('role') == role:
+ return sut[key]
+
+ # TestNode to verify
+ testnode_role = 'SgwControlAddr'
+ # SUT to verify
+ sut_role = 'SgwUserSut'
+
+ config_suts = [config['suts'] for config in self.vnfd['config']]
+ session_tcs = [_tc for _ts_group in self.ls_tg.session_profile['tsGroups']
+ for _tc in _ts_group['testCases']]
+ for suts, tc in zip(config_suts, session_tcs):
+ self.assertEqual(tc, self.ls_tg._update_session_suts(suts, tc))
+
+ # Verify TestNode class objects keys were updated
+ for _key in {'ip', 'phy', 'nextHop'}:
+ self.assertEqual(
+ get_testnode_param(testnode_role, _key, self.ls_tg.session_profile),
+ get_sut_param(testnode_role, _key, TS1_SUTS))
+ # Verify Sut class objects name was updated
+ self.assertEqual(
+ get_testnode_param(sut_role, 'name', self.ls_tg.session_profile),
+ get_sut_param(sut_role, 'name', TS2_SUTS))
+
+ def test__update_session_test_servers(self, *args):
+ for ts_index, ts in enumerate(TEST_SERVERS):
+ self.assertIsNone(
+ self.ls_tg._update_session_test_servers(ts, ts_index))
+ # Verify preResolvedArpAddress key was added
+ self.assertTrue(any(
+ _item.get('preResolvedArpAddress')
+ for _item in self.ls_tg.session_profile['tsGroups']))
+ # Verify reservations key was added to session profile
+ self.assertEqual(RESERVATIONS,
+ self.ls_tg.session_profile.get('reservations'))
+ self.assertEqual('true',
+ self.ls_tg.session_profile.get('reservePorts'))
+
+ def test__update_session_tc_params_assoc_phys(self):
+ _tc_options = {'AssociatedPhys': 'eth1'}
+ _testcase = {}
+ _testcase_orig = copy.deepcopy(_testcase)
+ res = self.ls_tg._update_session_tc_params(_tc_options, _testcase)
+ self.assertNotEqual(_testcase_orig, res)
+ self.assertEqual(_tc_options, _testcase)
+
+ def test__update_session_tc_params(self, *args):
+
+ def get_session_tc_param_value(param, tc_type, session_prof):
+ """ Get param value from the deep nested dict to avoid calls like:
+ session_prof['tsGroups'][0]['testCases'][0]['parameters'][key]
+ """
+ for test_group in session_prof['tsGroups']:
+ session_tc = test_group['testCases'][0]
+ if session_tc['type'] == tc_type:
+ return session_tc['parameters'].get(param)
+
+ session_tcs = [_tc for _ts_group in self.ls_tg.session_profile['tsGroups']
+ for _tc in _ts_group['testCases']]
+ scenario_tcs = [_tc for _tc in
+ self.SCENARIO_CFG['options']['test_cases']]
+ for tc_options, tc in zip(scenario_tcs, session_tcs):
+ self.assertEqual(
+ tc,
+ self.ls_tg._update_session_tc_params(tc_options, tc))
+
+ # Verify that each test case parameter was updated
+ # Params been compared are deeply nested. Using loops to ease access.
+ for _tc in self.SCENARIO_CFG['options']['test_cases']:
+ for _key, _val in _tc.items():
+ if _key != 'type':
+ self.assertEqual(
+ _val,
+ get_session_tc_param_value(_key, _tc.get('type'),
+ self.ls_tg.session_profile))
+
+ def test__update_session_library_name(self, *args):
+ _session = copy.deepcopy(SESSION_PROFILE)
+ _session['tsGroups'].pop(0)
+ self.ls_tg.vnfd_helper = mock.MagicMock()
+ self.ls_tg.vnfd_helper.mgmt_interface.__getitem__.side_effect = {
+ 'user': TAS_INFO['user']}
+ self.ls_tg._update_session_library_name(_session)
+ _dmf = _session['tsGroups'][0]['testCases'][0]['parameters']['Dmf']
+ # Expect DMF library name updated in Nodal test types
+ self.assertEqual(TAS_INFO['user'], _dmf['mainflows'][0]['library'])
+
+ def test__update_session_library_name_wrong_tc_type(self, *args):
+ _session = copy.deepcopy(SESSION_PROFILE)
+ _session['tsGroups'].pop(1)
+ self.ls_tg.vnfd_helper = mock.MagicMock()
+ self.ls_tg.vnfd_helper.mgmt_interface.__getitem__.side_effect = {
+ 'user': TAS_INFO['user']}
+ # Expect DMF library name not updated in Node test types
+ self.assertNotIn('Dmf',
+ _session['tsGroups'][0]['testCases'][0]['parameters'])
+ self.ls_tg._update_session_library_name(_session)
+
+ @mock.patch.object(common_utils, 'open_relative_file')
+ @mock.patch.object(yaml_loader, 'yaml_load')
+ @mock.patch.object(tg_landslide.LandslideTrafficGen,
+ '_update_session_test_servers')
+ @mock.patch.object(tg_landslide.LandslideTrafficGen,
+ '_update_session_suts')
+ @mock.patch.object(tg_landslide.LandslideTrafficGen,
+ '_update_session_tc_params')
+ def test__load_session_profile(self, mock_upd_ses_tc_params,
+ mock_upd_ses_suts, mock_upd_ses_ts,
+ mock_yaml_load, *args):
+ self.ls_tg.scenario_helper.scenario_cfg = \
+ copy.deepcopy(self.SCENARIO_CFG)
+ mock_yaml_load.return_value = copy.deepcopy(SESSION_PROFILE)
+ self.assertIsNone(self.ls_tg._load_session_profile())
+ self.assertIsNotNone(self.ls_tg.session_profile)
+ # Number of blocks in configuration files
+ # Number of test servers, suts and tc params blocks should be equal
+ _config_files_blocks_num = len([item['test_server']
+ for item in self.vnfd['config']])
+ self.assertEqual(_config_files_blocks_num,
+ mock_upd_ses_ts.call_count)
+ self.assertEqual(_config_files_blocks_num,
+ mock_upd_ses_suts.call_count)
+ self.assertEqual(_config_files_blocks_num,
+ mock_upd_ses_tc_params.call_count)
+
+ @mock.patch.object(common_utils, 'open_relative_file')
+ @mock.patch.object(yaml_loader, 'yaml_load')
+ def test__load_session_profile_unequal_num_of_cfg_blocks(
+ self, mock_yaml_load, *args):
+ vnfd = copy.deepcopy(VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ls_traffic_gen = tg_landslide.LandslideTrafficGen(NAME, vnfd)
+ ls_traffic_gen.scenario_helper.scenario_cfg = self.SCENARIO_CFG
+ mock_yaml_load.return_value = copy.deepcopy(SESSION_PROFILE)
+ # Delete test_servers item from pod file to make it not valid
+ ls_traffic_gen.vnfd_helper['config'].pop()
+ with self.assertRaises(RuntimeError):
+ ls_traffic_gen._load_session_profile()
+
+ @mock.patch.object(common_utils, 'open_relative_file')
+ @mock.patch.object(yaml_loader, 'yaml_load')
+ def test__load_session_profile_test_type_mismatch(self, mock_yaml_load,
+ *args):
+ vnfd = copy.deepcopy(VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ # Swap test servers data in pod file
+ vnfd['config'] = list(reversed(vnfd['config']))
+ ls_tg = tg_landslide.LandslideTrafficGen(NAME, vnfd)
+ ls_tg.scenario_helper.scenario_cfg = self.SCENARIO_CFG
+ mock_yaml_load.return_value = SESSION_PROFILE
+ with self.assertRaises(RuntimeError):
+ ls_tg._load_session_profile()
+
+
+class TestLandslideResourceHelper(unittest.TestCase):
+
+ PROTO_PORT = 8080
+ EXAMPLE_URL = ''.join([TAS_INFO['proto'], '://', TAS_INFO['ip'], ':',
+ str(PROTO_PORT), '/api/'])
+ SUCCESS_CREATED_CODE = 201
+ SUCCESS_OK_CODE = 200
+ INVALID_REST_CODE = '400'
+ NOT_MODIFIED_CODE = 500810
+ ERROR_CODE = 500800
+ SUCCESS_RECORD_ID = 11
+ EXPIRE_DATE = '2020/01/01 12:00 FLE Standard Time'
+ TEST_USER = 'test'
+ TEST_TERMINATED = 1
+ AUTH_DATA = {'user': TAS_INFO['user'], 'password': TAS_INFO['password']}
+ TEST_SESSION_NAME = 'default_bearer_capacity'
+
+ USERS_DATA = {
+ "users": [{
+ "url": ''.join([EXAMPLE_URL, 'users/', str(SUCCESS_RECORD_ID)]),
+ "id": SUCCESS_RECORD_ID,
+ "level": 1,
+ "username": TEST_USER
+ }]
+ }
+
+ CREATE_USER_DATA = {'username': TAS_INFO['user'],
+ 'expiresOn': EXPIRE_DATE,
+ 'level': 1,
+ 'contactInformation': '',
+ 'fullName': 'Test User',
+ 'password': TAS_INFO['password'],
+ 'isActive': 'true'}
+
+ SUTS_DATA = {
+ "suts": [
+ {
+ "url": ''.join([EXAMPLE_URL, 'suts/', str(SUCCESS_RECORD_ID)]),
+ "id": SUCCESS_RECORD_ID,
+ "name": "10.41.32.1"
+ }]}
+
+ TEST_SERVERS_DATA = {
+ "testServers": [
+ {
+ "url": ''.join([EXAMPLE_URL, "testServers/1"]),
+ "id": 1,
+ "name": TEST_SERVERS[0]['name'],
+ "state": "READY",
+ "version": "16.4.0.10"
+ },
+ {
+ "url": ''.join([EXAMPLE_URL, "testServers/2"]),
+ "id": 2,
+ "name": TEST_SERVERS[1]['name'],
+ "state": "READY",
+ "version": "16.4.0.10"
+ }
+
+ ]
+ }
+
+ RUN_ID = 3
+
+ RUNNING_TESTS_DATA = {
+ "runningTests": [{
+ "url": ''.join([EXAMPLE_URL, "runningTests/{}".format(RUN_ID)]),
+ "measurementsUrl": ''.join(
+ [EXAMPLE_URL,
+ "runningTests/{}/measurements".format(RUN_ID)]),
+ "criteriaUrl": ''.join(
+ [EXAMPLE_URL,
+ "runningTests/{}/criteria".format(RUN_ID)]),
+ "noteToUser": "",
+ "id": RUN_ID,
+ "library": SUCCESS_RECORD_ID,
+ "name": "default_bearer_capacity",
+ "user": TEST_USER,
+ "criteriaStatus": "NA",
+ "testStateOrStep": "COMPLETE"
+ }]}
+
+ TEST_RESULTS_DATA = {
+ "interval": 0,
+ "elapsedTime": 138,
+ "actualTime": 1521548057296,
+ "iteration": 1,
+ "tabs": {
+ "Test Summary": {
+ "Start Time": "Tue Mar 20 07:11:55 CDT 2018",
+ "Actual Dedicated Bearer Session Connects": "100",
+ "Actual Dedicated Bearer Session Disconnects": "100",
+ "Actual Disconnect Rate(Sessions / Second)(P - I)": "164.804",
+ "Average Session Disconnect Time(P - I)": "5.024 s",
+ "Total Data Sent + Received Packets / Sec(P - I)": "1,452.294"
+ }}}
+
+ def setUp(self):
+ self.mock_lsapi = mock.patch.object(tg_landslide, 'LsApi')
+ self.mock_lsapi.start()
+
+ mock_env_helper = mock.Mock()
+ self.res_helper = tg_landslide.LandslideResourceHelper(mock_env_helper)
+ self.res_helper._url = EXAMPLE_URL
+
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self.mock_lsapi.stop()
+ self.res_helper._url = None
+
+ def test___init__(self, *args):
+ self.assertIsInstance(self.res_helper,
+ tg_landslide.LandslideResourceHelper)
+ self.assertEqual({}, self.res_helper._result)
+ self.assertIsNone(self.res_helper.run_id)
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'stop_running_tests')
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'get_running_tests')
+ def test_abort_running_tests_no_running_tests(self, mock_get_tests,
+ mock_stop_tests, *args):
+ tests_data = [{'id': self.SUCCESS_RECORD_ID,
+ 'testStateOrStep': 'COMPLETE'}]
+ mock_get_tests.return_value = tests_data
+ self.assertIsNone(self.res_helper.abort_running_tests())
+ mock_stop_tests.assert_not_called()
+
+ @mock.patch.object(time, 'sleep')
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'stop_running_tests')
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'get_running_tests')
+ def test_abort_running_tests(self, mock_get_tests, mock_stop_tests, *args):
+ test_states_seq = iter(['RUNNING', 'COMPLETE'])
+
+ def configure_mock(*args):
+ return [{'id': self.SUCCESS_RECORD_ID,
+ 'testStateOrStep': next(test_states_seq)}]
+
+ mock_get_tests.side_effect = configure_mock
+ self.assertIsNone(self.res_helper.abort_running_tests())
+ mock_stop_tests.assert_called_once_with(
+ running_test_id=self.SUCCESS_RECORD_ID,
+ force=True)
+ self.assertEqual(2, mock_get_tests.call_count)
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'stop_running_tests')
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'get_running_tests')
+ def test_abort_running_tests_error(self, mock_get_tests, mock_stop_tests,
+ *args):
+ tests_data = {'id': self.SUCCESS_RECORD_ID,
+ 'testStateOrStep': 'RUNNING'}
+ mock_get_tests.return_value = [tests_data]
+ with self.assertRaises(RuntimeError):
+ self.res_helper.abort_running_tests(timeout=1, delay=1)
+ mock_stop_tests.assert_called_with(
+ running_test_id=self.SUCCESS_RECORD_ID,
+ force=True)
+
+ def test__build_url(self, *args):
+ resource = 'users'
+ action = {'action': 'userCreate'}
+ expected_url = ''.join([EXAMPLE_URL, 'users?action=userCreate'])
+ self.assertEqual(expected_url,
+ self.res_helper._build_url(resource, action))
+
+ def test__build_url_error(self, *args):
+ resource = ''
+ action = {'action': 'userCreate'}
+
+ with self.assertRaises(ValueError):
+ self.res_helper._build_url(resource, action)
+
+ def test_get_response_params(self, *args):
+ method = 'get'
+ resource = 'users'
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.USERS_DATA}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ resp = self.res_helper.get_response_params(method, resource)
+ self.assertTrue(resp)
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper, '_get_users')
+ @mock.patch.object(time, 'time')
+ def test__create_user(self, mock_time, mock_get_users, *args):
+ mock_time.strftime.return_value = self.EXPIRE_DATE
+ post_resp_data = {'status_code': self.SUCCESS_CREATED_CODE,
+ 'json.return_value': {'id': self.SUCCESS_RECORD_ID}}
+ mock_session = mock.Mock(spec=requests.Session)
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ self.assertEqual(self.SUCCESS_RECORD_ID,
+ self.res_helper._create_user(self.AUTH_DATA))
+ mock_get_users.assert_not_called()
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper, '_modify_user')
+ @mock.patch.object(time, 'time')
+ def test__create_user_username_exists(self, mock_time, mock_modify_user,
+ *args):
+ mock_time.strftime.return_value = self.EXPIRE_DATE
+ mock_modify_user.return_value = {'id': self.SUCCESS_RECORD_ID,
+ 'result': 'No changes requested'}
+ post_resp_data = {
+ 'status_code': self.ERROR_CODE,
+ 'json.return_value': {'id': self.SUCCESS_OK_CODE,
+ 'apiCode': self.NOT_MODIFIED_CODE}}
+ mock_session = mock.Mock(spec=requests.Session)
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ res = self.res_helper._create_user(self.AUTH_DATA)
+ mock_modify_user.assert_called_once_with(TAS_INFO['user'],
+ {'isActive': 'true'})
+ self.assertEqual(self.SUCCESS_RECORD_ID, res)
+
+ @mock.patch.object(time, 'time')
+ def test__create_user_error(self, mock_time, *args):
+ mock_time.strftime.return_value = self.EXPIRE_DATE
+ mock_session = mock.Mock(spec=requests.Session)
+ post_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': {'apiCode': self.ERROR_CODE}}
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ with self.assertRaises(exceptions.RestApiError):
+ self.res_helper._create_user(self.AUTH_DATA)
+
+ def test__modify_user(self, *args):
+ post_data = {'username': 'test_user'}
+ mock_session = mock.Mock(spec=requests.Session)
+ post_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': {'id': self.SUCCESS_RECORD_ID}}
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ res = self.res_helper._modify_user(username=self.TEST_USER,
+ fields=post_data)
+ self.assertEqual(self.SUCCESS_RECORD_ID, res['id'])
+
+ def test__modify_user_rest_resp_fail(self, *args):
+ post_data = {'non-existing-key': ''}
+ mock_session = mock.Mock(spec=requests.Session)
+ mock_session.post.ok = False
+ self.res_helper.session = mock_session
+ self.assertRaises(exceptions.RestApiError,
+ self.res_helper._modify_user,
+ username=self.TEST_USER, fields=post_data)
+ mock_session.post.assert_called_once()
+
+ def test__delete_user(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ self.res_helper.session = mock_session
+ self.assertIsNone(self.res_helper._delete_user(
+ username=self.TEST_USER))
+
+ def test__get_users(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.USERS_DATA}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ self.assertEqual(self.USERS_DATA['users'],
+ self.res_helper._get_users())
+
+ def test_exec_rest_request(self, *args):
+ resource = 'testServers'
+ action = {'action': 'modify'}
+ expected_url = ''.join([EXAMPLE_URL, 'testServers?action=modify'])
+ post_resp_data = {'status_code': self.SUCCESS_CREATED_CODE,
+ 'json.return_value': {'id': self.SUCCESS_RECORD_ID}}
+ mock_session = mock.Mock(spec=requests.Session)
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ self.res_helper.exec_rest_request('post', resource, action)
+ self.res_helper.session.post.assert_called_once_with(expected_url,
+ json={})
+
+ def test_exec_rest_request_unsupported_method_error(self, *args):
+ resource = 'testServers'
+ action = {'action': 'modify'}
+ with self.assertRaises(ValueError):
+ self.res_helper.exec_rest_request('patch', resource, action)
+
+ def test_exec_rest_request_missed_action_arg(self, *args):
+ resource = 'testServers'
+ with self.assertRaises(ValueError):
+ self.res_helper.exec_rest_request('post', resource)
+
+ def test_exec_rest_request_raise_exc(self):
+ resource = 'users'
+ action = {'action': 'modify'}
+ post_resp_data = {'status_code': self.ERROR_CODE,
+ 'json.return_value': {
+ 'status_code': self.ERROR_CODE}}
+ mock_session = mock.Mock(spec=requests.Session)
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.assertRaises(exceptions.RestApiError,
+ self.res_helper.exec_rest_request,
+ 'post', resource, action, raise_exc=True)
+
+ @mock.patch.object(time, 'time')
+ def test_connect(self, mock_time, *args):
+ vnfd = VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ mock_time.strftime.return_value = self.EXPIRE_DATE
+ self.res_helper.vnfd_helper = vnfd
+
+ self.res_helper._tcl = mock.Mock()
+ post_resp_data = {'status_code': self.SUCCESS_CREATED_CODE,
+ 'json.return_value': {'id': self.SUCCESS_RECORD_ID}}
+ mock_session = mock.Mock(spec=requests.Session, headers={})
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ self.assertIsInstance(self.res_helper.connect(), requests.Session)
+ self.res_helper._tcl.connect.assert_called_once_with(
+ TAS_INFO['ip'],
+ TAS_INFO['user'],
+ TAS_INFO['password'])
+
+ def test_disconnect(self, *args):
+ self.res_helper._tcl = mock.Mock()
+ self.assertIsNone(self.res_helper.disconnect())
+ self.assertIsNone(self.res_helper.session)
+ self.res_helper._tcl.disconnect.assert_called_once()
+
+ def test_terminate(self, *args):
+ self.assertIsNone(self.res_helper.terminate())
+ self.assertEqual(self.TEST_TERMINATED,
+ self.res_helper._terminated.value)
+
+ def test_create_dmf(self, *args):
+ self.res_helper._tcl = mock.Mock()
+ self.res_helper.vnfd_helper = mock.Mock(spec=vnf_base.VnfdHelper)
+ self.res_helper.vnfd_helper.mgmt_interface = {'user': TAS_INFO['user']}
+ self.assertIsNone(self.res_helper.create_dmf(DMF_CFG))
+ self.res_helper._tcl.create_dmf.assert_called_once_with(DMF_CFG)
+
+ def test_create_dmf_as_list(self, *args):
+ self.res_helper._tcl = mock.Mock()
+ self.res_helper.vnfd_helper = mock.Mock(spec=vnf_base.VnfdHelper)
+ self.res_helper.vnfd_helper.mgmt_interface = {'user': TAS_INFO['user']}
+ self.assertIsNone(self.res_helper.create_dmf([DMF_CFG]))
+ self.res_helper._tcl.create_dmf.assert_called_once_with(DMF_CFG)
+
+ def test_delete_dmf(self, *args):
+ self.res_helper._tcl = mock.Mock()
+ self.assertIsNone(self.res_helper.delete_dmf(DMF_CFG))
+ self.res_helper._tcl.delete_dmf.assert_called_once_with(DMF_CFG)
+
+ def test_delete_dmf_as_list(self, *args):
+ self.res_helper._tcl = mock.Mock()
+ self.assertIsNone(self.res_helper.delete_dmf([DMF_CFG]))
+ self.res_helper._tcl.delete_dmf.assert_called_once_with(DMF_CFG)
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper, 'configure_sut')
+ def test_create_suts(self, mock_configure_sut, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ post_resp_data = {'status_code': self.SUCCESS_CREATED_CODE}
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ self.assertIsNone(self.res_helper.create_suts(TS1_SUTS))
+ mock_configure_sut.assert_not_called()
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper, 'configure_sut')
+ def test_create_suts_sut_exists(self, mock_configure_sut, *args):
+ sut_name = 'test_sut'
+ suts = [
+ {'name': sut_name,
+ 'role': 'SgwControlAddr',
+ 'managementIp': '12.0.1.1',
+ 'ip': '10.42.32.100'
+ }
+ ]
+ mock_session = mock.Mock(spec=requests.Session)
+ post_resp_data = {'status_code': self.NOT_MODIFIED_CODE}
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ self.assertIsNone(self.res_helper.create_suts(suts))
+ mock_configure_sut.assert_called_once_with(
+ sut_name=sut_name,
+ json_data={k: v for k, v in suts[0].items()
+ if k not in {'phy', 'nextHop', 'role', 'name'}})
+
+ def test_get_suts(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.SUTS_DATA}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ self.assertIsInstance(self.res_helper.get_suts(), list)
+
+ def test_get_suts_single_id(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.SUTS_DATA['suts'][0]}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ self.assertIsInstance(self.res_helper.get_suts(suts_id=2), dict)
+
+ def test_configure_sut(self, *args):
+ post_data = {'managementIp': '2.2.2.2'}
+ mock_session = mock.Mock(spec=requests.Session)
+ post_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': {'id': self.SUCCESS_RECORD_ID}}
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ self.assertIsNone(self.res_helper.configure_sut('test_name',
+ post_data))
+ mock_session.post.assert_called_once()
+
+ def test_configure_sut_error(self, *args):
+ post_data = {'managementIp': '2.2.2.2'}
+ mock_session = mock.Mock(spec=requests.Session)
+ post_resp_data = {'status_code': self.NOT_MODIFIED_CODE}
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ with self.assertRaises(exceptions.RestApiError):
+ self.res_helper.configure_sut('test_name', post_data)
+
+ def test_delete_suts(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.SUTS_DATA}
+ delete_resp_data = {'status_code': self.SUCCESS_OK_CODE}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ mock_session.delete.return_value.configure_mock(**delete_resp_data)
+ self.res_helper.session = mock_session
+ self.assertIsNone(self.res_helper.delete_suts())
+ mock_session.delete.assert_called_once()
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'get_test_servers')
+ def test__check_test_servers_state(self, mock_get_test_servers, *args):
+ mock_get_test_servers.return_value = \
+ self.TEST_SERVERS_DATA['testServers']
+ self.res_helper._check_test_servers_state()
+ mock_get_test_servers.assert_called_once()
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'get_test_servers')
+ def test__check_test_servers_state_server_not_ready(
+ self, mock_get_test_servers, *args):
+ test_servers_not_ready = [
+ {
+ "url": ''.join([EXAMPLE_URL, "testServers/1"]),
+ "id": 1,
+ "name": "TestServer_1",
+ "state": "NOT_READY",
+ "version": "16.4.0.10"
+ }
+ ]
+
+ mock_get_test_servers.return_value = test_servers_not_ready
+ with self.assertRaises(RuntimeError):
+ self.res_helper._check_test_servers_state(timeout=1, delay=0)
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ '_check_test_servers_state')
+ def test_create_test_servers(self, mock_check_ts_state, *args):
+ test_servers_ids = [
+ ts['id'] for ts in self.TEST_SERVERS_DATA['testServers']]
+
+ self.res_helper.license_data['lic_id'] = TAS_INFO['license']
+ self.res_helper._tcl.create_test_server = mock.Mock()
+ self.res_helper._tcl.create_test_server.side_effect = test_servers_ids
+ self.assertIsNone(self.res_helper.create_test_servers(TEST_SERVERS))
+ mock_check_ts_state.assert_called_once_with(test_servers_ids)
+
+ @mock.patch.object(tg_landslide.LandslideTclClient,
+ 'resolve_test_server_name')
+ @mock.patch.object(tg_landslide.LsTclHandler, 'execute')
+ def test_create_test_servers_error(self, mock_execute,
+ mock_resolve_ts_name, *args):
+ self.res_helper.license_data['lic_id'] = TAS_INFO['license']
+ # Return message for case test server wasn't created
+ mock_execute.return_value = 'TS not found'
+ # Return message for case test server name wasn't resolved
+ mock_resolve_ts_name.return_value = 'TS not found'
+ with self.assertRaises(RuntimeError):
+ self.res_helper.create_test_servers(TEST_SERVERS)
+
+ def test_get_test_servers(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.TEST_SERVERS_DATA}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ res = self.res_helper.get_test_servers()
+ self.assertEqual(self.TEST_SERVERS_DATA['testServers'], res)
+
+ def test_get_test_servers_by_id(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+
+ _ts = self.TEST_SERVERS_DATA['testServers'][0]
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': _ts}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ res = self.res_helper.get_test_servers(test_server_ids=[_ts['id']])
+ self.assertEqual([_ts], res)
+
+ def test_configure_test_servers(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.TEST_SERVERS_DATA}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ res = self.res_helper.configure_test_servers(
+ action={'action': 'recycle'})
+ self.assertEqual(
+ [x['id'] for x in self.TEST_SERVERS_DATA['testServers']],
+ res)
+ self.assertEqual(len(self.TEST_SERVERS_DATA['testServers']),
+ mock_session.post.call_count)
+
+ def test_delete_test_servers(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.TEST_SERVERS_DATA}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ self.assertIsNone(self.res_helper.delete_test_servers())
+ self.assertEqual(len(self.TEST_SERVERS_DATA['testServers']),
+ mock_session.delete.call_count)
+
+ def test_create_test_session_res_helper(self, *args):
+ self.res_helper._user_id = self.SUCCESS_RECORD_ID
+ self.res_helper._tcl = mock.Mock()
+ self.res_helper.scenario_helper.all_options = {'traffic_duration': 71}
+ _session = {'name': 'test', 'duration': 60}
+ self.assertIsNone(self.res_helper.create_test_session(_session))
+ self.res_helper._tcl.create_test_session.assert_called_once_with(
+ {'name': _session['name'],
+ 'duration': 71,
+ 'library': self.SUCCESS_RECORD_ID})
+
+ def test_create_test_session_res_helper_no_traffic_duration(self, *args):
+ self.res_helper._user_id = self.SUCCESS_RECORD_ID
+ self.res_helper._tcl = mock.Mock()
+ self.res_helper.scenario_helper.all_options = {}
+ _session = {'name': 'test', 'duration': 60}
+ self.assertIsNone(self.res_helper.create_test_session(_session))
+ self.res_helper._tcl.create_test_session.assert_called_once_with(
+ {'name': _session['name'],
+ 'duration': 60,
+ 'library': self.SUCCESS_RECORD_ID})
+
+ @mock.patch.object(tg_landslide.LandslideTclClient,
+ 'resolve_test_server_name',
+ return_value='Not Found')
+ def test_create_test_session_ts_name_not_found(self, *args):
+ self.res_helper._user_id = self.SUCCESS_RECORD_ID
+ test_session = {
+ 'duration': 60,
+ 'description': 'UE default bearer creation test case',
+ 'name': 'default_bearer_capacity',
+ 'tsGroups': [{'testCases': [{'type': 'SGW_Node',
+ 'name': ''}],
+ 'tsId': 'TestServer_3'}]
+ }
+ with self.assertRaises(RuntimeError):
+ self.res_helper.create_test_session(test_session)
+
+ def test_get_test_session(self, *args):
+ test_session = {"name": self.TEST_SESSION_NAME}
+ self.res_helper._user_id = self.SUCCESS_RECORD_ID
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': test_session}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ res = self.res_helper.get_test_session(self.TEST_SESSION_NAME)
+ self.assertEqual(test_session, res)
+
+ def test_configure_test_session(self, *args):
+ test_session = {'name': self.TEST_SESSION_NAME}
+ self.res_helper._user_id = self.SUCCESS_RECORD_ID
+ self.res_helper.user_lib_uri = 'libraries/{{}}/{}'.format(
+ self.res_helper.test_session_uri)
+ mock_session = mock.Mock(spec=requests.Session)
+ self.res_helper.session = mock_session
+ res = self.res_helper.configure_test_session(self.TEST_SESSION_NAME,
+ test_session)
+ self.assertIsNotNone(res)
+ mock_session.post.assert_called_once()
+
+ def test_delete_test_session(self, *args):
+ self.res_helper._user_id = self.SUCCESS_RECORD_ID
+ self.res_helper.user_lib_uri = 'libraries/{{}}/{}'.format(
+ self.res_helper.test_session_uri)
+ mock_session = mock.Mock(spec=requests.Session)
+ self.res_helper.session = mock_session
+ res = self.res_helper.delete_test_session(self.TEST_SESSION_NAME)
+ self.assertIsNotNone(res)
+ mock_session.delete.assert_called_once()
+
+ def test_create_running_tests(self, *args):
+ self.res_helper._user_id = self.SUCCESS_RECORD_ID
+ test_session = {'id': self.SUCCESS_RECORD_ID}
+ mock_session = mock.Mock(spec=requests.Session)
+ post_resp_data = {'status_code': self.SUCCESS_CREATED_CODE,
+ 'json.return_value': test_session}
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ self.res_helper.create_running_tests(self.TEST_SESSION_NAME)
+ self.assertEqual(self.SUCCESS_RECORD_ID, self.res_helper.run_id)
+
+ def test_create_running_tests_error(self, *args):
+ self.res_helper._user_id = self.SUCCESS_RECORD_ID
+ mock_session = mock.Mock(spec=requests.Session)
+ post_resp_data = {'status_code': self.NOT_MODIFIED_CODE}
+ mock_session.post.return_value.configure_mock(**post_resp_data)
+ self.res_helper.session = mock_session
+ with self.assertRaises(exceptions.RestApiError):
+ self.res_helper.create_running_tests(self.TEST_SESSION_NAME)
+
+ def test_get_running_tests(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.RUNNING_TESTS_DATA}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ res = self.res_helper.get_running_tests()
+ self.assertEqual(self.RUNNING_TESTS_DATA['runningTests'], res)
+
+ def test_delete_running_tests(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ delete_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.RUNNING_TESTS_DATA}
+ mock_session.delete.return_value.configure_mock(**delete_resp_data)
+ self.res_helper.session = mock_session
+ self.assertIsNone(self.res_helper.delete_running_tests())
+
+ def test__running_tests_action(self, *args):
+ action = 'abort'
+ mock_session = mock.Mock(spec=requests.Session)
+ self.res_helper.session = mock_session
+ res = self.res_helper._running_tests_action(self.SUCCESS_RECORD_ID,
+ action)
+ self.assertIsNone(res)
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ '_running_tests_action')
+ def test_stop_running_tests(self, mock_tests_action, *args):
+ res = self.res_helper.stop_running_tests(self.SUCCESS_RECORD_ID)
+ self.assertIsNone(res)
+ mock_tests_action.assert_called_once()
+
+ def test_check_running_test_state(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {
+ 'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.RUNNING_TESTS_DATA["runningTests"][0]}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ res = self.res_helper.check_running_test_state(self.SUCCESS_RECORD_ID)
+ self.assertEqual(
+ self.RUNNING_TESTS_DATA["runningTests"][0]['testStateOrStep'],
+ res)
+
+ def test_get_running_tests_results(self, *args):
+ mock_session = mock.Mock(spec=requests.Session)
+ get_resp_data = {'status_code': self.SUCCESS_OK_CODE,
+ 'json.return_value': self.TEST_RESULTS_DATA}
+ mock_session.get.return_value.configure_mock(**get_resp_data)
+ self.res_helper.session = mock_session
+ res = self.res_helper.get_running_tests_results(
+ self.SUCCESS_RECORD_ID)
+ self.assertEqual(self.TEST_RESULTS_DATA, res)
+
+ def test__write_results(self, *args):
+ res = self.res_helper._write_results(self.TEST_RESULTS_DATA)
+ exp_res = {
+ "Test Summary::Actual Dedicated Bearer Session Connects": 100.0,
+ "Test Summary::Actual Dedicated Bearer Session Disconnects": 100.0,
+ "Test Summary::Actual Disconnect Rate(Sessions / Second)(P - I)": 164.804,
+ "Test Summary::Average Session Disconnect Time(P - I)": 5.024,
+ "Test Summary::Total Data Sent + Received Packets / Sec(P - I)": 1452.294
+ }
+ self.assertEqual(exp_res, res)
+
+ def test__write_results_no_tabs(self, *args):
+ _res_data = copy.deepcopy(self.TEST_RESULTS_DATA)
+ del _res_data['tabs']
+ # Return None if tabs not found in test results dict
+ self.assertIsNone(self.res_helper._write_results(_res_data))
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'check_running_test_state')
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'get_running_tests_results')
+ def test_collect_kpi_test_running(self, mock_tests_results,
+ mock_tests_state, *args):
+ self.res_helper.run_id = self.SUCCESS_RECORD_ID
+ mock_tests_state.return_value = 'RUNNING'
+ mock_tests_results.return_value = self.TEST_RESULTS_DATA
+ res = self.res_helper.collect_kpi()
+ self.assertNotIn('done', res)
+ mock_tests_state.assert_called_once_with(self.res_helper.run_id)
+ mock_tests_results.assert_called_once_with(self.res_helper.run_id)
+
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'check_running_test_state')
+ @mock.patch.object(tg_landslide.LandslideResourceHelper,
+ 'get_running_tests_results')
+ def test_collect_kpi_test_completed(self, mock_tests_results,
+ mock_tests_state, *args):
+ self.res_helper.run_id = self.SUCCESS_RECORD_ID
+ mock_tests_state.return_value = 'COMPLETE'
+ res = self.res_helper.collect_kpi()
+ self.assertIsNotNone(res)
+ mock_tests_state.assert_called_once_with(self.res_helper.run_id)
+ mock_tests_results.assert_not_called()
+ self.assertDictContainsSubset({'done': True}, res)
+
+
+class TestLandslideTclClient(unittest.TestCase):
+ def setUp(self):
+ self.mock_tcl_handler = mock.Mock(spec=tg_landslide.LsTclHandler)
+ self.ls_res_helper = mock.Mock(
+ spec=tg_landslide.LandslideResourceHelper)
+ self.ls_tcl_client = tg_landslide.LandslideTclClient(
+ self.mock_tcl_handler,
+ self.ls_res_helper)
+
+ def test___init__(self, *args):
+ self.ls_tcl_client = tg_landslide.LandslideTclClient(
+ self.mock_tcl_handler,
+ self.ls_res_helper)
+ self.assertIsNone(self.ls_tcl_client.tcl_server_ip)
+ self.assertIsNone(self.ls_tcl_client._user)
+ self.assertIsNone(self.ls_tcl_client._library_id)
+ self.assertIsNone(self.ls_tcl_client._basic_library_id)
+ self.assertEqual(set(), self.ls_tcl_client.ts_ids)
+ self.assertIsInstance(self.ls_tcl_client._tc_types, set)
+ self.assertIsNotNone(self.ls_tcl_client._tc_types)
+
+ def test_connect_login_success(self, *args):
+ lib_id = '123'
+ exec_responses = ['java0x2', lib_id, lib_id]
+ auth = ('user', 'password')
+ self.mock_tcl_handler.execute.side_effect = exec_responses
+ self.ls_tcl_client.connect(TAS_INFO['ip'], *auth)
+ self.assertEqual(lib_id, self.ls_tcl_client._library_id)
+ self.assertEqual(lib_id, self.ls_tcl_client._basic_library_id)
+ self.assertEqual(TAS_INFO['ip'], self.ls_tcl_client.tcl_server_ip)
+ self.assertEqual(auth[0], self.ls_tcl_client._user)
+ self.assertEqual(len(exec_responses),
+ self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call("ls::login 1.1.1.1 user password"),
+ mock.call("ls::get [ls::query LibraryInfo -userLibraryName user] -Id"),
+ ])
+
+ def test_connect_login_failed(self, *args):
+ exec_responses = ['Login failed']
+ auth = ('user', 'password')
+ self.mock_tcl_handler.execute.side_effect = exec_responses
+ self.assertRaises(exceptions.LandslideTclException,
+ self.ls_tcl_client.connect,
+ TAS_INFO['ip'],
+ *auth)
+ self.assertIsNone(self.ls_tcl_client._library_id)
+ self.assertIsNone(self.ls_tcl_client._basic_library_id)
+ self.assertIsNone(self.ls_tcl_client.tcl_server_ip)
+ self.assertIsNone(self.ls_tcl_client._user)
+ self.assertEqual(len(exec_responses),
+ self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_called_with(
+ "ls::login 1.1.1.1 user password")
+
+ def test_disconnect(self, *args):
+ self.ls_tcl_client.disconnect()
+ self.mock_tcl_handler.execute.assert_called_once_with("ls::logout")
+ self.assertIsNone(self.ls_tcl_client.tcl_server_ip)
+ self.assertIsNone(self.ls_tcl_client._user)
+ self.assertIsNone(self.ls_tcl_client._library_id)
+ self.assertIsNone(self.ls_tcl_client._basic_library_id)
+
+ def test_create_test_server(self, *args):
+ return_value = '2'
+ self.ls_tcl_client._ts_context.vnfd_helper = \
+ VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ self.ls_tcl_client._ts_context.license_data = {'lic_id': return_value}
+ self.mock_tcl_handler.execute.return_value = return_value
+ self.ls_tcl_client._set_thread_model = mock.Mock()
+ res = self.ls_tcl_client.create_test_server(TEST_SERVERS[1])
+ self.assertEqual(3, self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::query TsId TestServer_2'),
+ mock.call('set ts [ls::retrieve TsInfo -Name "TestServer_2"]'),
+ mock.call('ls::get $ts -RequestedLicense'),
+ ])
+ self.ls_tcl_client._set_thread_model.assert_called_once_with(
+ TEST_SERVERS[1]['name'],
+ TEST_SERVERS[1]['thread_model'])
+ self.assertEqual(int(return_value), res)
+
+ def test_create_test_server_fail_limit_reach(self, *args):
+ self.mock_tcl_handler.execute.side_effect = ['TS not found',
+ 'Add failed']
+ self.assertRaises(RuntimeError,
+ self.ls_tcl_client.create_test_server,
+ TEST_SERVERS[0])
+ self.assertEqual(2, self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::query TsId TestServer_1'),
+ mock.call('ls::perform AddTs -Name "TestServer_1" '
+ '-Ip "192.168.122.101"'),
+ ])
+
+ def test__add_test_server(self):
+ ts_id = '2'
+ self.mock_tcl_handler.execute.side_effect = ['TS not found', ts_id]
+ self.assertEqual(ts_id,
+ self.ls_tcl_client._add_test_server('name', 'ip'))
+ self.assertEqual(2, self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::query TsId name'),
+ mock.call('ls::perform AddTs -Name "name" -Ip "ip"'),
+ ])
+
+ def test__add_test_server_failed(self):
+ self.mock_tcl_handler.execute.side_effect = ['TS not found',
+ 'Add failed']
+ self.assertRaises(RuntimeError, self.ls_tcl_client._add_test_server,
+ 'name', 'ip')
+ self.assertEqual(2, self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::query TsId name'),
+ mock.call('ls::perform AddTs -Name "name" -Ip "ip"'),
+ ])
+
+ def test__update_license(self):
+ curr_lic_id = '111'
+ new_lic_id = '222'
+ exec_resp = ['java0x4',
+ curr_lic_id,
+ TCL_SUCCESS_RESPONSE,
+ TCL_SUCCESS_RESPONSE]
+ self.ls_tcl_client._ts_context.license_data = {'lic_id': new_lic_id}
+ self.mock_tcl_handler.execute.side_effect = exec_resp
+ self.ls_tcl_client._update_license('name')
+ self.assertEqual(len(exec_resp),
+ self.mock_tcl_handler.execute.call_count)
+
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('set ts [ls::retrieve TsInfo -Name "name"]'),
+ mock.call('ls::get $ts -RequestedLicense'),
+ mock.call('ls::config $ts -RequestedLicense 222'),
+ mock.call('ls::perform ModifyTs $ts'),
+ ])
+
+ def test__update_license_same_as_current(self):
+ curr_lic_id = '111'
+ new_lic_id = '111'
+ exec_resp = ['java0x4', curr_lic_id]
+ self.ls_tcl_client._ts_context.license_data = {'lic_id': new_lic_id}
+ self.mock_tcl_handler.execute.side_effect = exec_resp
+ self.ls_tcl_client._update_license('name')
+ self.assertEqual(len(exec_resp),
+ self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('set ts [ls::retrieve TsInfo -Name "name"]'),
+ mock.call('ls::get $ts -RequestedLicense'),
+ ])
+
+ def test__set_thread_model_update_needed(self):
+ self.ls_tcl_client._ts_context.vnfd_helper = {
+ 'mgmt-interface': {
+ 'cfguser_password': 'cfguser_password'
+ }
+ }
+ exec_resp = ['java0x4', 'V0', '', '']
+ self.mock_tcl_handler.execute.side_effect = exec_resp
+ self.ls_tcl_client._set_thread_model('name', 'Fireball')
+ self.assertEqual(len(exec_resp),
+ self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('set tsc [ls::perform RetrieveTsConfiguration '
+ '-name "name" cfguser_password]'),
+ mock.call('ls::get $tsc -ThreadModel'),
+ mock.call('ls::config $tsc -ThreadModel "V1_FB3"'),
+ mock.call('ls::perform ApplyTsConfiguration $tsc cfguser_password'),
+ ])
+
+ def test__set_thread_model_no_update_needed(self):
+ self.ls_tcl_client._ts_context.vnfd_helper = {
+ 'mgmt-interface': {
+ 'cfguser_password': 'cfguser_password'
+ }
+ }
+ exec_resp = ['java0x4', 'V0']
+ self.mock_tcl_handler.execute.side_effect = exec_resp
+ self.ls_tcl_client._set_thread_model('name', 'Legacy')
+ self.assertEqual(len(exec_resp),
+ self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('set tsc [ls::perform RetrieveTsConfiguration '
+ '-name "name" cfguser_password]'),
+ mock.call('ls::get $tsc -ThreadModel'),
+ ])
+
+ @mock.patch.object(tg_landslide.LandslideTclClient,
+ 'resolve_test_server_name', side_effect=['4', '2'])
+ def test_create_test_session(self, *args):
+ _session_profile = copy.deepcopy(SESSION_PROFILE)
+ _session_profile['reservations'] = RESERVATIONS
+ self.ls_tcl_client._save_test_session = mock.Mock()
+ self.ls_tcl_client._configure_ts_group = mock.Mock()
+ self.ls_tcl_client._library_id = 42
+ self.ls_tcl_client.create_test_session(_session_profile)
+ self.assertEqual(17, self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('set test_ [ls::create TestSession]'),
+ mock.call('ls::config $test_ -Library 42 '
+ '-Name "default_bearer_capacity"'),
+ mock.call('ls::config $test_ -Description ' \
+ '"UE default bearer creation test case"'),
+ mock.call('ls::config $test_ -Keywords ""'),
+ mock.call('ls::config $test_ -Duration "60"'),
+ mock.call('ls::config $test_ -Iterations "1"'),
+ # _configure_reservation
+ mock.call('set reservation_ [ls::create Reservation -under $test_]'),
+ mock.call('ls::config $reservation_ -TsIndex 0 '
+ '-TsId 4 -TsName "TestServer_1"'),
+ mock.call('set physubnet_ [ls::create PhySubnet -under $reservation_]'),
+ mock.call('ls::config $physubnet_ -Name "eth1" -Base "10.42.32.100" '
+ '-Mask "/24" -NumIps 20'),
+ # _configure_reservation
+ mock.call('set reservation_ [ls::create Reservation -under $test_]'),
+ mock.call('ls::config $reservation_ -TsIndex 1 '
+ '-TsId 2 -TsName "TestServer_2"'),
+ mock.call('set physubnet_ [ls::create PhySubnet -under $reservation_]'),
+ mock.call('ls::config $physubnet_ -Name "eth1" -Base "10.42.32.1" '
+ '-Mask "/24" -NumIps 100'),
+ mock.call('set physubnet_ [ls::create PhySubnet -under $reservation_]'),
+ mock.call('ls::config $physubnet_ -Name "eth2" -Base "10.42.33.1" '
+ '-Mask "/24" -NumIps 100'),
+ # _configure_report_options
+ mock.call('ls::config $test_.ReportOptions -Format 1 -Ts -3 -Tc -3'),
+ ])
+
+ def test_create_dmf(self):
+ self.mock_tcl_handler.execute.return_value = '2'
+ self.ls_tcl_client._save_dmf = mock.Mock()
+ self.ls_tcl_client.create_dmf(copy.deepcopy(DMF_CFG))
+ self.assertEqual(6, self.mock_tcl_handler.execute.call_count)
+ # This is needed because the dictionary is unordered and the arguments
+ # can come in either order
+ call1 = mock.call(
+ 'ls::config $dmf_ -clientPort 2002 -isClientPortRange "false"')
+ call2 = mock.call(
+ 'ls::config $dmf_ -isClientPortRange "false" -clientPort 2002')
+ self.assertTrue(
+ call1 in self.mock_tcl_handler.execute.mock_calls or
+ call2 in self.mock_tcl_handler.execute.mock_calls)
+
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('set dmf_ [ls::create Dmf]'),
+ mock.call(
+ 'ls::get [ls::query LibraryInfo -systemLibraryName user] -Id'),
+ mock.call('ls::config $dmf_ -Library 2 -Name "Basic UDP"'),
+ mock.call('ls::config $dmf_ -dataProtocol "udp"'),
+ # mock.call(
+ # 'ls::config $dmf_ -clientPort 2002 -isClientPortRange "false"'),
+ mock.call('ls::config $dmf_ -serverPort 2003'),
+ ], any_order=True)
+
+ def test_configure_dmf(self):
+ self.mock_tcl_handler.execute.return_value = '2'
+ self.ls_tcl_client._save_dmf = mock.Mock()
+ self.ls_tcl_client.configure_dmf(DMF_CFG)
+ self.assertEqual(6, self.mock_tcl_handler.execute.call_count)
+ # This is need because the dictionary is unordered and the arguments
+ # can come in either order
+ call1 = mock.call(
+ 'ls::config $dmf_ -clientPort 2002 -isClientPortRange "false"')
+ call2 = mock.call(
+ 'ls::config $dmf_ -isClientPortRange "false" -clientPort 2002')
+ self.assertTrue(
+ call1 in self.mock_tcl_handler.execute.mock_calls or
+ call2 in self.mock_tcl_handler.execute.mock_calls)
+
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('set dmf_ [ls::create Dmf]'),
+ mock.call(
+ 'ls::get [ls::query LibraryInfo -systemLibraryName user] -Id'),
+ mock.call('ls::config $dmf_ -Library 2 -Name "Basic UDP"'),
+ mock.call('ls::config $dmf_ -dataProtocol "udp"'),
+ # mock.call(
+ # 'ls::config $dmf_ -clientPort 2002 -isClientPortRange "false"'),
+ mock.call('ls::config $dmf_ -serverPort 2003'),
+ ], any_order=True)
+
+ def test_delete_dmf(self):
+ self.assertRaises(NotImplementedError,
+ self.ls_tcl_client.delete_dmf,
+ DMF_CFG)
+
+ def test__save_dmf_valid(self):
+ exec_resp = [TCL_SUCCESS_RESPONSE, TCL_SUCCESS_RESPONSE]
+ self.mock_tcl_handler.execute.side_effect = exec_resp
+ self.ls_tcl_client._save_dmf()
+ self.assertEqual(len(exec_resp),
+ self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::perform Validate -Dmf $dmf_'),
+ mock.call('ls::save $dmf_ -overwrite'),
+ ])
+
+ def test__save_dmf_invalid(self):
+ exec_resp = ['Invalid', 'List of errors and warnings']
+ self.mock_tcl_handler.execute.side_effect = exec_resp
+ self.assertRaises(exceptions.LandslideTclException,
+ self.ls_tcl_client._save_dmf)
+ self.assertEqual(len(exec_resp),
+ self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::perform Validate -Dmf $dmf_'),
+ mock.call('ls::get $dmf_ -ErrorsAndWarnings'),
+ ])
+
+ def test__configure_report_options(self):
+ _options = {'format': 'CSV', 'PerInterval': 'false'}
+ self.ls_tcl_client._configure_report_options(_options)
+ self.assertEqual(2, self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::config $test_.ReportOptions -Format 1 -Ts -3 -Tc -3'),
+ mock.call('ls::config $test_.ReportOptions -PerInterval false'),
+ ],
+ any_order=True)
+
+ def test___configure_ts_group(self, *args):
+ _ts_group = copy.deepcopy(SESSION_PROFILE['tsGroups'][0])
+ self.ls_tcl_client._configure_tc_type = mock.Mock()
+ self.ls_tcl_client._configure_preresolved_arp = mock.Mock()
+ self.ls_tcl_client.resolve_test_server_name = mock.Mock(
+ return_value='2')
+ self.ls_tcl_client._configure_ts_group(_ts_group, 0)
+ self.mock_tcl_handler.execute.assert_called_once_with(
+ 'set tss_ [ls::create TsGroup -under $test_ -tsId 2 ]')
+
+ def test___configure_ts_group_resolve_ts_fail(self, *args):
+ _ts_group = copy.deepcopy(SESSION_PROFILE['tsGroups'][0])
+ self.ls_tcl_client._configure_tc_type = mock.Mock()
+ self.ls_tcl_client._configure_preresolved_arp = mock.Mock()
+ self.ls_tcl_client.resolve_test_server_name = mock.Mock(
+ return_value='TS Not Found')
+ self.assertRaises(RuntimeError, self.ls_tcl_client._configure_ts_group,
+ _ts_group, 0)
+ self.mock_tcl_handler.execute.assert_not_called()
+
+ def test__configure_tc_type(self):
+ _tc = copy.deepcopy(SESSION_PROFILE['tsGroups'][0]['testCases'][0])
+ self.mock_tcl_handler.execute.return_value = TCL_SUCCESS_RESPONSE
+ self.ls_tcl_client._configure_parameters = mock.Mock()
+ self.ls_tcl_client._configure_tc_type(_tc, 0)
+ self.assertEqual(7, self.mock_tcl_handler.execute.call_count)
+
+ def test__configure_tc_type_optional_param_omitted(self):
+ _tc = copy.deepcopy(SESSION_PROFILE['tsGroups'][0]['testCases'][0])
+ del _tc['linked']
+ self.mock_tcl_handler.execute.return_value = TCL_SUCCESS_RESPONSE
+ self.ls_tcl_client._configure_parameters = mock.Mock()
+ self.ls_tcl_client._configure_tc_type(_tc, 0)
+ self.assertEqual(6, self.mock_tcl_handler.execute.call_count)
+
+ def test__configure_tc_type_wrong_type(self):
+ _tc = copy.deepcopy(SESSION_PROFILE['tsGroups'][0]['testCases'][0])
+ _tc['type'] = 'not_supported'
+ self.ls_tcl_client._configure_parameters = mock.Mock()
+ self.assertRaises(RuntimeError,
+ self.ls_tcl_client._configure_tc_type,
+ _tc, 0)
+ self.mock_tcl_handler.assert_not_called()
+
+ def test__configure_tc_type_not_found_basic_lib(self):
+ _tc = copy.deepcopy(SESSION_PROFILE['tsGroups'][0]['testCases'][0])
+ self.ls_tcl_client._configure_parameters = mock.Mock()
+ self.mock_tcl_handler.execute.return_value = 'Invalid'
+ self.assertRaises(RuntimeError,
+ self.ls_tcl_client._configure_tc_type,
+ _tc, 0)
+
+ def test__configure_parameters(self):
+ _params = copy.deepcopy(
+ SESSION_PROFILE['tsGroups'][0]['testCases'][0]['parameters'])
+ self.ls_tcl_client._configure_parameters(_params)
+ self.assertEqual(16, self.mock_tcl_handler.execute.call_count)
+
+ def test__configure_array_param(self):
+ _array = {"class": "Array",
+ "array": ["0"]}
+ self.ls_tcl_client._configure_array_param('name', _array)
+ self.assertEqual(2, self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::create -Array-name -under $p_ ;'),
+ mock.call('ls::create ArrayItem -under $p_.name -Value "0"'),
+ ])
+
+ def test__configure_test_node_param(self):
+ _params = copy.deepcopy(
+ SESSION_PROFILE['tsGroups'][0]['testCases'][0]['parameters'])
+ self.ls_tcl_client._configure_test_node_param('SgwUserAddr',
+ _params['SgwUserAddr'])
+ cmd = ('ls::create -TestNode-SgwUserAddr -under $p_ -Type "eth" '
+ '-Phy "eth1" -Ip "SGW_USER_IP" -NumLinksOrNodes 1 '
+ '-NextHop "SGW_CONTROL_NEXT_HOP" -Mac "" -MTU 1500 '
+ '-ForcedEthInterface "" -EthStatsEnabled false -VlanId 0 '
+ '-VlanUserPriority 0 -NumVlan 1 -UniqueVlanAddr false;')
+ self.mock_tcl_handler.execute.assert_called_once_with(cmd)
+
+ def test__configure_sut_param(self):
+ _params = {'name': 'name'}
+ self.ls_tcl_client._configure_sut_param('name', _params)
+ self.mock_tcl_handler.execute.assert_called_once_with(
+ 'ls::create -Sut-name -under $p_ -Name "name";')
+
+ def test__configure_dmf_param(self):
+ _params = {"mainflows": [{"library": '111',
+ "name": "Basic UDP"}],
+ "instanceGroups": [{
+ "mainflowIdx": 0,
+ "mixType": "",
+ "rate": 0.0,
+ "rows": [{
+ "clientPort": 0,
+ "context": 0,
+ "node": 0,
+ "overridePort": "false",
+ "ratingGroup": 0,
+ "role": 0,
+ "serviceId": 0,
+ "transport": "Any"}]
+ }]}
+ self.ls_tcl_client._get_library_id = mock.Mock(return_value='111')
+ res = self.ls_tcl_client._configure_dmf_param('name', _params)
+ self.assertEqual(5, self.mock_tcl_handler.execute.call_count)
+ self.assertIsNone(res)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::create -Dmf-name -under $p_ ;'),
+ mock.call('ls::perform AddDmfMainflow $p_.Dmf 111 "Basic UDP"'),
+ mock.call('ls::config $p_.Dmf.InstanceGroup(0) -mixType '),
+ mock.call('ls::config $p_.Dmf.InstanceGroup(0) -rate 0.0'),
+ mock.call('ls::config $p_.Dmf.InstanceGroup(0).Row(0) -Node 0 '
+ '-OverridePort false -ClientPort 0 -Context 0 -Role 0 '
+ '-PreferredTransport Any -RatingGroup 0 '
+ '-ServiceID 0'),
+ ])
+
+ def test__configure_dmf_param_no_instance_groups(self):
+ _params = {"mainflows": [{"library": '111',
+ "name": "Basic UDP"}]}
+ self.ls_tcl_client._get_library_id = mock.Mock(return_value='111')
+ res = self.ls_tcl_client._configure_dmf_param('name', _params)
+ self.assertEqual(2, self.mock_tcl_handler.execute.call_count)
+ self.assertIsNone(res)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::create -Dmf-name -under $p_ ;'),
+ mock.call('ls::perform AddDmfMainflow $p_.Dmf 111 "Basic UDP"'),
+ ])
+
+ def test__configure_reservation(self):
+ _reservation = copy.deepcopy(RESERVATIONS[0])
+ self.ls_tcl_client.resolve_test_server_name = mock.Mock(
+ return_value='4')
+ res = self.ls_tcl_client._configure_reservation(_reservation)
+ self.assertIsNone(res)
+ self.assertEqual(4, self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('set reservation_ [ls::create Reservation -under $test_]'),
+ mock.call('ls::config $reservation_ -TsIndex 0 -TsId 4 ' + \
+ '-TsName "TestServer_1"'),
+ mock.call('set physubnet_ [ls::create PhySubnet -under $reservation_]'),
+ mock.call('ls::config $physubnet_ -Name "eth1" ' + \
+ '-Base "10.42.32.100" -Mask "/24" -NumIps 20'),
+ ])
+
+ def test__configure_preresolved_arp(self):
+ _arp = [{'StartingAddress': '10.81.1.10',
+ 'NumNodes': 1}]
+ res = self.ls_tcl_client._configure_preresolved_arp(_arp)
+ self.mock_tcl_handler.execute.assert_called_once()
+ self.assertIsNone(res)
+ self.mock_tcl_handler.execute.assert_called_once_with(
+ 'ls::create PreResolvedArpAddress -under $tss_ ' + \
+ '-StartingAddress "10.81.1.10" -NumNodes 1')
+
+ def test__configure_preresolved_arp_none(self):
+ res = self.ls_tcl_client._configure_preresolved_arp(None)
+ self.assertIsNone(res)
+ self.mock_tcl_handler.execute.assert_not_called()
+
+ def test_delete_test_session(self):
+ self.assertRaises(NotImplementedError,
+ self.ls_tcl_client.delete_test_session, {})
+
+ def test__save_test_session(self):
+ self.mock_tcl_handler.execute.side_effect = [TCL_SUCCESS_RESPONSE,
+ TCL_SUCCESS_RESPONSE]
+ res = self.ls_tcl_client._save_test_session()
+ self.assertEqual(2, self.mock_tcl_handler.execute.call_count)
+ self.assertIsNone(res)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::perform Validate -TestSession $test_'),
+ mock.call('ls::save $test_ -overwrite'),
+ ])
+
+ def test__save_test_session_invalid(self):
+ self.mock_tcl_handler.execute.side_effect = ['Invalid', 'Errors']
+ self.assertRaises(exceptions.LandslideTclException,
+ self.ls_tcl_client._save_test_session)
+ self.assertEqual(2, self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call('ls::perform Validate -TestSession $test_'),
+ mock.call('ls::get $test_ -ErrorsAndWarnings'),
+ ])
+
+ def test__get_library_id_system_lib(self):
+ self.mock_tcl_handler.execute.return_value = '111'
+ res = self.ls_tcl_client._get_library_id('name')
+ self.mock_tcl_handler.execute.assert_called_once()
+ self.assertEqual('111', res)
+ self.mock_tcl_handler.execute.assert_called_with(
+ 'ls::get [ls::query LibraryInfo -systemLibraryName name] -Id')
+
+ def test__get_library_id_user_lib(self):
+ self.mock_tcl_handler.execute.side_effect = ['Not found', '222']
+ res = self.ls_tcl_client._get_library_id('name')
+ self.assertEqual(2, self.mock_tcl_handler.execute.call_count)
+ self.assertEqual('222', res)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call(
+ 'ls::get [ls::query LibraryInfo -systemLibraryName name] -Id'),
+ mock.call(
+ 'ls::get [ls::query LibraryInfo -userLibraryName name] -Id'),
+ ])
+
+ def test__get_library_id_exception(self):
+ self.mock_tcl_handler.execute.side_effect = ['Not found', 'Not found']
+ self.assertRaises(exceptions.LandslideTclException,
+ self.ls_tcl_client._get_library_id,
+ 'name')
+ self.assertEqual(2, self.mock_tcl_handler.execute.call_count)
+ self.mock_tcl_handler.execute.assert_has_calls([
+ mock.call(
+ 'ls::get [ls::query LibraryInfo -systemLibraryName name] -Id'),
+ mock.call(
+ 'ls::get [ls::query LibraryInfo -userLibraryName name] -Id'),
+ ])
+
+
+class TestLsTclHandler(unittest.TestCase):
+
+ def setUp(self):
+ self.mock_lsapi = mock.patch.object(tg_landslide, 'LsApi')
+ self.mock_lsapi.start()
+
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self.mock_lsapi.stop()
+
+ def test___init__(self, *args):
+ self.ls_tcl_handler = tg_landslide.LsTclHandler()
+ self.assertEqual({}, self.ls_tcl_handler.tcl_cmds)
+ self.ls_tcl_handler._ls.tcl.assert_called_once()
+
+ def test_execute(self, *args):
+ self.ls_tcl_handler = tg_landslide.LsTclHandler()
+ self.ls_tcl_handler.execute('command')
+ self.assertIn('command', self.ls_tcl_handler.tcl_cmds)
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_tg_ping.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_ping.py
index 63b2ac4ab..a3e4384cf 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_tg_ping.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_ping.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -15,28 +13,22 @@
# limitations under the License.
#
-from __future__ import absolute_import
-
-import unittest
-import mock
from multiprocessing import Queue
import multiprocessing
-from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
-from tests.unit import STL_MOCKS
+import mock
+import unittest
-SSH_HELPER = "yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper"
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.vnf_generic.vnf.tg_ping import PingParser
+from yardstick.network_services.vnf_generic.vnf.tg_ping import PingTrafficGen
+from yardstick.network_services.vnf_generic.vnf.tg_ping import PingResourceHelper
+from yardstick.network_services.vnf_generic.vnf.tg_ping import PingSetupEnvHelper
+from yardstick.network_services.vnf_generic.vnf.vnf_ssh_helper import VnfSshHelper
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.tg_ping import PingParser
- from yardstick.network_services.vnf_generic.vnf.tg_ping import PingTrafficGen
- from yardstick.network_services.vnf_generic.vnf.tg_ping import PingResourceHelper
- from yardstick.network_services.vnf_generic.vnf.tg_ping import PingSetupEnvHelper
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import VnfSshHelper
+SSH_HELPER = "yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper"
class TestPingResourceHelper(unittest.TestCase):
@@ -80,7 +72,7 @@ class TestPingParser(unittest.TestCase):
ping_parser = PingParser(q_out)
ping_parser.write(sample_out)
ping_parser.clear()
- self.assertEqual(True, q_out.empty())
+ self.assertTrue(q_out.empty())
def test_close(self):
q_out = Queue()
@@ -238,7 +230,7 @@ class TestPingTrafficGen(unittest.TestCase):
self.assertIsInstance(ping_traffic_gen.setup_helper, PingSetupEnvHelper)
self.assertIsInstance(ping_traffic_gen.resource_helper, PingResourceHelper)
- self.assertEquals(ping_traffic_gen._result, {})
+ self.assertEqual(ping_traffic_gen._result, {})
@mock.patch("yardstick.ssh.SSH")
def test__bind_device_kernel_with_failure(self, ssh):
@@ -256,14 +248,25 @@ class TestPingTrafficGen(unittest.TestCase):
self.assertNotEqual(ext_ifs[0]['virtual-interface']['local_iface_name'], 'if_name_1')
self.assertNotEqual(ext_ifs[1]['virtual-interface']['local_iface_name'], 'if_name_2')
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
@mock.patch("yardstick.ssh.SSH")
- def test_collect_kpi(self, ssh):
+ def test_collect_kpi(self, ssh, *args):
mock_ssh(ssh, exec_result=(0, "success", ""))
+
ping_traffic_gen = PingTrafficGen('vnf1', self.VNFD_0)
+ ping_traffic_gen.scenario_helper.scenario_cfg = {
+ 'nodes': {ping_traffic_gen.name: "mock"}
+ }
ping_traffic_gen._queue = Queue()
ping_traffic_gen._queue.put({})
- ping_traffic_gen.collect_kpi()
- self.assertEqual(ping_traffic_gen._result, {})
+ expected = {
+ 'physical_node': 'mock_node',
+ 'collect_stats': {}
+ }
+ # NOTE: Why we check _result but not collect_kpi() return value
+ # self.assertEqual(ping_traffic_gen._result, {})
+ self.assertEqual(ping_traffic_gen.collect_kpi(), expected)
+
@mock.patch(SSH_HELPER)
def test_instantiate(self, ssh):
@@ -282,8 +285,7 @@ class TestPingTrafficGen(unittest.TestCase):
self.assertEqual(self.CMD_KWARGS, ping_traffic_gen.resource_helper.cmd_kwargs)
self.assertIsNotNone(ping_traffic_gen._result)
- @mock.patch("yardstick.ssh.SSH")
- def test_listen_traffic(self, *args):
+ def test_listen_traffic(self):
ping_traffic_gen = PingTrafficGen('vnf1', self.VNFD_0)
self.assertIsNone(ping_traffic_gen.listen_traffic({}))
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_pktgen.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_pktgen.py
new file mode 100644
index 000000000..1ecb6ffc9
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_pktgen.py
@@ -0,0 +1,66 @@
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import mock
+
+from yardstick.common import constants
+from yardstick.common import exceptions
+from yardstick.network_services.vnf_generic.vnf import base as vnf_base
+from yardstick.network_services.vnf_generic.vnf import tg_pktgen
+from yardstick.tests.unit import base as ut_base
+
+
+class PktgenTrafficGenTestCase(ut_base.BaseUnitTestCase):
+
+ SERVICE_PORTS = [{'port': constants.LUA_PORT,
+ 'node_port': '34501'}]
+ VNFD = {'mgmt-interface': {'ip': '1.2.3.4',
+ 'service_ports': SERVICE_PORTS},
+ 'vdu': [{'external-interface': 'interface'}],
+ 'benchmark': {'kpi': 'fake_kpi'}
+ }
+
+ def test__init(self):
+ tg = tg_pktgen.PktgenTrafficGen('name1', self.VNFD)
+ self.assertTrue(isinstance(tg, vnf_base.GenericTrafficGen))
+
+ def test_run_traffic(self):
+ tg = tg_pktgen.PktgenTrafficGen('name1', self.VNFD)
+ mock_tp = mock.Mock()
+ with mock.patch.object(tg, '_is_running', return_value=True):
+ tg.run_traffic(mock_tp)
+
+ mock_tp.init.assert_called_once_with(tg._node_ip, tg._lua_node_port)
+
+ def test__get_lua_node_port(self):
+ tg = tg_pktgen.PktgenTrafficGen('name1', self.VNFD)
+ service_ports = [{'port': constants.LUA_PORT,
+ 'node_port': '12345'}]
+ self.assertEqual(12345, tg._get_lua_node_port(service_ports))
+
+ def test__get_lua_node_port_no_lua_port(self):
+ tg = tg_pktgen.PktgenTrafficGen('name1', self.VNFD)
+ service_ports = [{'port': '333'}]
+ self.assertIsNone(tg._get_lua_node_port(service_ports))
+
+ def test__is_running(self):
+ tg = tg_pktgen.PktgenTrafficGen('name1', self.VNFD)
+ with mock.patch.object(tg, '_traffic_profile'):
+ self.assertTrue(tg._is_running())
+
+ def test__is_running_exception(self):
+ tg = tg_pktgen.PktgenTrafficGen('name1', self.VNFD)
+ with mock.patch.object(tg, '_traffic_profile') as mock_tp:
+ mock_tp.help.side_effect = exceptions.PktgenActionError()
+ self.assertFalse(tg._is_running())
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_tg_prox.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_prox.py
index 7b4d79e02..0aaf17790 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_tg_prox.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_prox.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,21 +16,15 @@
import unittest
import mock
-from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
-from tests.unit import STL_MOCKS
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.vnf_generic.vnf.tg_prox import ProxTrafficGen
+from yardstick.network_services.traffic_profile.base import TrafficProfile
SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
NAME = 'vnf__1'
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.tg_prox import ProxTrafficGen
- from yardstick.network_services.traffic_profile.base import TrafficProfile
-
@mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.time')
class TestProxTrafficGen(unittest.TestCase):
@@ -324,16 +318,37 @@ class TestProxTrafficGen(unittest.TestCase):
self.assertIsNone(prox_traffic_gen._tg_process)
self.assertIsNone(prox_traffic_gen._traffic_process)
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
@mock.patch(SSH_HELPER)
def test_collect_kpi(self, ssh, *args):
mock_ssh(ssh)
-
prox_traffic_gen = ProxTrafficGen(NAME, self.VNFD0)
+ prox_traffic_gen.scenario_helper.scenario_cfg = {
+ 'nodes': {prox_traffic_gen.name: "mock"}
+ }
prox_traffic_gen._vnf_wrapper.resource_helper.resource = mock.MagicMock(
- **{"check_if_sa_running.return_value": [False]})
- prox_traffic_gen._vnf_wrapper.vnf_execute = mock.Mock(return_value="")
- self.assertEqual({}, prox_traffic_gen.collect_kpi())
+ **{"self.check_if_system_agent_running.return_value": [False]})
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+ prox_traffic_gen.resource_helper.vnfd_helper = vnfd_helper
+
+ prox_traffic_gen._vnf_wrapper.resource_helper.client = mock.MagicMock()
+ prox_traffic_gen._vnf_wrapper.resource_helper.client.multi_port_stats.return_value = \
+ [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]]
+ prox_traffic_gen._vnf_wrapper.resource_helper.client.multi_port_stats_diff.return_value = \
+ [0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7]
+ prox_traffic_gen._vnf_wrapper.resource_helper.client.\
+ multi_port_stats_tuple.return_value = \
+ {"xe0": {"in_packets": 1, "out_packets": 2}}
+
+ prox_traffic_gen._vnf_wrapper.vnf_execute = mock.Mock(return_value="")
+ expected = {
+ 'collect_stats': {'live_stats': {'xe0': {'in_packets': 1, 'out_packets': 2}}},
+ 'physical_node': 'mock_node'
+ }
+ result = prox_traffic_gen.collect_kpi()
+ self.assertDictEqual(result, expected)
@mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.find_relative_file')
@mock.patch(
@@ -396,7 +411,7 @@ class TestProxTrafficGen(unittest.TestCase):
sut.ssh_helper = mock.Mock()
sut.ssh_helper.run = mock.Mock()
sut.setup_helper.prox_config_dict = {}
- sut._connect_client = mock.Mock(autospec=STLClient)
+ sut._connect_client = mock.Mock(autospec=mock.Mock())
sut._connect_client.get_stats = mock.Mock(return_value="0")
sut._traffic_runner(mock_traffic_profile)
@@ -423,4 +438,4 @@ class TestProxTrafficGen(unittest.TestCase):
prox_traffic_gen._vnf_wrapper.setup_helper = mock.MagicMock()
prox_traffic_gen._vnf_wrapper._vnf_process = mock.MagicMock()
prox_traffic_gen._vnf_wrapper.resource_helper = mock.MagicMock()
- self.assertEqual(None, prox_traffic_gen.terminate())
+ self.assertIsNone(prox_traffic_gen.terminate())
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py
new file mode 100644
index 000000000..c3f3e5f67
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py
@@ -0,0 +1,1265 @@
+# Copyright (c) 2016-2019 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import os
+
+import mock
+import six
+import unittest
+import ipaddress
+import time
+from collections import OrderedDict
+
+from yardstick.common import utils
+from yardstick.common import exceptions
+from yardstick.benchmark import contexts
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.libs.ixia_libs.ixnet import ixnet_api
+from yardstick.network_services.traffic_profile import base as tp_base
+from yardstick.network_services.vnf_generic.vnf import tg_rfc2544_ixia
+from yardstick.network_services.traffic_profile import ixia_rfc2544
+
+
+TEST_FILE_YAML = 'nsb_test_case.yaml'
+
+NAME = "tg__1"
+
+
+class TestIxiaResourceHelper(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_IxNextgen = mock.patch.object(ixnet_api, 'IxNextgen')
+ self.mock_IxNextgen = self._mock_IxNextgen.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_IxNextgen.stop()
+
+ def test___init___with_custom_rfc_helper(self):
+ class MyRfcHelper(tg_rfc2544_ixia.IxiaRfc2544Helper):
+ pass
+
+ ixia_resource_helper = tg_rfc2544_ixia.IxiaResourceHelper(
+ mock.Mock(), MyRfcHelper)
+ self.assertIsInstance(ixia_resource_helper.rfc_helper, MyRfcHelper)
+
+ def test__init_ix_scenario(self):
+ mock_scenario = mock.Mock()
+ mock_scenario_helper = mock.Mock()
+ mock_scenario_helper.scenario_cfg = {'ixia_config': 'TestScenario',
+ 'options': 'scenario_options'}
+ mock_setup_helper = mock.Mock(scenario_helper=mock_scenario_helper)
+ ixia_resource_helper = tg_rfc2544_ixia.IxiaResourceHelper(mock_setup_helper)
+ ixia_resource_helper._ixia_scenarios = {'TestScenario': mock_scenario}
+ ixia_resource_helper.client = 'client'
+ ixia_resource_helper.context_cfg = 'context'
+ ixia_resource_helper._init_ix_scenario()
+ mock_scenario.assert_called_once_with('client', 'context', 'scenario_options')
+
+ def test__init_ix_scenario_not_supported_cfg_type(self):
+ mock_scenario_helper = mock.Mock()
+ mock_scenario_helper.scenario_cfg = {'ixia_config': 'FakeScenario',
+ 'options': 'scenario_options'}
+ mock_setup_helper = mock.Mock(scenario_helper=mock_scenario_helper)
+ ixia_resource_helper = tg_rfc2544_ixia.IxiaResourceHelper(mock_setup_helper)
+ ixia_resource_helper._ixia_scenarios = {'TestScenario': mock.Mock()}
+ with self.assertRaises(RuntimeError):
+ ixia_resource_helper._init_ix_scenario()
+
+ @mock.patch.object(tg_rfc2544_ixia.IxiaResourceHelper, '_init_ix_scenario')
+ def test_setup(self, mock__init_ix_scenario):
+ ixia_resource_helper = tg_rfc2544_ixia.IxiaResourceHelper(mock.Mock())
+ ixia_resource_helper.setup()
+ mock__init_ix_scenario.assert_called_once()
+
+ def test_stop_collect_with_client(self):
+ mock_client = mock.Mock()
+ ixia_resource_helper = tg_rfc2544_ixia.IxiaResourceHelper(mock.Mock())
+ ixia_resource_helper.client = mock_client
+ ixia_resource_helper._ix_scenario = mock.Mock()
+ ixia_resource_helper.stop_collect()
+ self.assertEqual(1, ixia_resource_helper._terminated.value)
+ ixia_resource_helper._ix_scenario.stop_protocols.assert_called_once()
+
+ def test_run_traffic(self):
+ mock_tprofile = mock.Mock()
+ mock_tprofile.config.duration = 10
+ mock_tprofile.get_drop_percentage.return_value = True, 'fake_samples'
+ ixia_rhelper = tg_rfc2544_ixia.IxiaResourceHelper(mock.Mock())
+ ixia_rhelper.rfc_helper = mock.Mock()
+ ixia_rhelper.vnfd_helper = mock.Mock()
+ ixia_rhelper._ix_scenario = mock.Mock()
+ ixia_rhelper.vnfd_helper.port_pairs.all_ports = []
+ with mock.patch.object(ixia_rhelper, 'generate_samples'), \
+ mock.patch.object(ixia_rhelper, '_build_ports'), \
+ mock.patch.object(ixia_rhelper, '_initialize_client'), \
+ mock.patch.object(utils, 'wait_until_true'):
+ ixia_rhelper.run_traffic(mock_tprofile)
+
+ self.assertEqual('fake_samples', ixia_rhelper._queue.get())
+ mock_tprofile.update_traffic_profile.assert_called_once()
+
+ def test_run_test(self):
+ expected_result = {'test': 'fake_samples', 'Iteration': 1}
+ mock_tprofile = mock.Mock()
+ mock_tprofile.config.duration = 10
+ mock_tprofile.get_drop_percentage.return_value = \
+ True, {'test': 'fake_samples', 'Iteration': 1}
+ ixia_rhelper = tg_rfc2544_ixia.IxiaResourceHelper(mock.Mock())
+ tasks_queue = mock.Mock()
+ tasks_queue.get.return_value = 'RUN_TRAFFIC'
+ results_queue = mock.Mock()
+ ixia_rhelper.rfc_helper = mock.Mock()
+ ixia_rhelper.vnfd_helper = mock.Mock()
+ ixia_rhelper._ix_scenario = mock.Mock()
+ ixia_rhelper.vnfd_helper.port_pairs.all_ports = []
+ with mock.patch.object(ixia_rhelper, 'generate_samples'), \
+ mock.patch.object(ixia_rhelper, '_build_ports'), \
+ mock.patch.object(ixia_rhelper, '_initialize_client'), \
+ mock.patch.object(utils, 'wait_until_true'):
+ ixia_rhelper.run_test(mock_tprofile, tasks_queue, results_queue)
+
+ self.assertEqual(expected_result, ixia_rhelper._queue.get())
+ mock_tprofile.update_traffic_profile.assert_called_once()
+ tasks_queue.task_done.assert_called_once()
+ results_queue.put.assert_called_once_with('COMPLETE')
+
+
+@mock.patch.object(tg_rfc2544_ixia, 'ixnet_api')
+class TestIXIATrafficGen(unittest.TestCase):
+ VNFD = {'vnfd:vnfd-catalog':
+ {'vnfd':
+ [{'short-name': 'VpeVnf',
+ 'vdu':
+ [{'routing_table':
+ [{'network': '152.16.100.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'if': 'xe0'},
+ {'network': '152.16.40.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'if': 'xe1'}],
+ 'description': 'VPE approximation using DPDK',
+ 'name': 'vpevnf-baremetal',
+ 'nd_route_tbl':
+ [{'network': '0064:ff9b:0:0:0:0:9810:6414',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
+ 'if': 'xe0'},
+ {'network': '0064:ff9b:0:0:0:0:9810:2814',
+ 'netmask': '112',
+ 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
+ 'if': 'xe1'}],
+ 'id': 'vpevnf-baremetal',
+ 'external-interface':
+ [{'virtual-interface':
+ {'dst_mac': '00:00:00:00:00:04',
+ 'vpci': '0000:05:00.0',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'bandwidth': '10 Gbps',
+ 'driver': "i40e",
+ 'dst_ip': '152.16.100.20',
+ 'local_iface_name': 'xe0',
+ 'local_mac': '00:00:00:00:00:02'},
+ 'vnfd-connection-point-ref': 'xe0',
+ 'name': 'xe0'},
+ {'virtual-interface':
+ {'dst_mac': '00:00:00:00:00:03',
+ 'vpci': '0000:05:00.1',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'driver': "i40e",
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 1,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_iface_name': 'xe1',
+ 'local_mac': '00:00:00:00:00:01'},
+ 'vnfd-connection-point-ref': 'xe1',
+ 'name': 'xe1'}]}],
+ 'description': 'Vpe approximation using DPDK',
+ 'mgmt-interface':
+ {'vdu-id': 'vpevnf-baremetal',
+ 'host': '1.1.1.1',
+ 'password': 'r00t',
+ 'user': 'root',
+ 'ip': '1.1.1.1'},
+ 'benchmark':
+ {'kpi': ['packets_in', 'packets_fwd',
+ 'packets_dropped']},
+ 'connection-point': [{'type': 'VPORT', 'name': 'xe0'},
+ {'type': 'VPORT', 'name': 'xe1'}],
+ 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'}]}}
+
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100, # pps
+ "flow_number": 10,
+ "frame_size": 64}}
+
+ TC_YAML = {'scenarios': [{'tc_options':
+ {'rfc2544': {'allowed_drop_rate': '0.8 - 1'}},
+ 'runner': {'duration': 400,
+ 'interval': 35, 'type': 'Duration'},
+ 'traffic_options':
+ {'flow': 'ipv4_1flow_Packets_vpe.yaml',
+ 'imix': 'imix_voice.yaml'},
+ 'vnf_options': {'vpe': {'cfg': 'vpe_config'}},
+ 'traffic_profile': 'ipv4_throughput_vpe.yaml',
+ 'type': 'NSPerf',
+ 'nodes': {'tg__1': 'trafficgen_1.yardstick',
+ 'vnf__1': 'vnf.yardstick'},
+ 'topology': 'vpe_vnf_topology.yaml'}],
+ 'context': {'nfvi_type': 'baremetal',
+ 'type': contexts.CONTEXT_NODE,
+ 'name': 'yardstick',
+ 'file': '/etc/yardstick/nodes/pod.yaml'},
+ 'schema': 'yardstick:task:0.1'}
+
+ def test___init__(self, *args):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, "", ""))
+ ssh.from_node.return_value = ssh_mock
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ # NOTE(ralonsoh): check the object returned.
+ tg_rfc2544_ixia.IxiaTrafficGen(NAME, vnfd)
+
+ def test_listen_traffic(self, *args):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, "", ""))
+ ssh.from_node.return_value = ssh_mock
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ ixnet_traffic_gen = tg_rfc2544_ixia.IxiaTrafficGen(NAME, vnfd)
+ self.assertIsNone(ixnet_traffic_gen.listen_traffic({}))
+
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server', return_value='fake_context')
+ def test_instantiate(self, *args):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, "", ""))
+ ssh_mock.run = \
+ mock.Mock(return_value=(0, "", ""))
+ ssh.from_node.return_value = ssh_mock
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ ixnet_traffic_gen = tg_rfc2544_ixia.IxiaTrafficGen(NAME, vnfd)
+ scenario_cfg = {'tc': "nsb_test_case",
+ "topology": ""}
+ scenario_cfg.update(
+ {
+ 'options': {
+ 'packetsize': 64,
+ 'traffic_type': 4,
+ 'rfc2544': {
+ 'allowed_drop_rate': '0.8 - 1'},
+ 'vnf__1': {
+ 'rules': 'acl_1rule.yaml',
+ 'vnf_config': {
+ 'lb_config': 'SW',
+ 'lb_count': 1,
+ 'worker_config': '1C/1T',
+ 'worker_threads': 1}}}})
+ scenario_cfg.update({
+ 'nodes': {ixnet_traffic_gen.name: "mock"}
+ })
+ ixnet_traffic_gen.topology = ""
+ ixnet_traffic_gen.get_ixobj = mock.MagicMock()
+ ixnet_traffic_gen._ixia_traffic_gen = mock.MagicMock()
+ ixnet_traffic_gen._ixia_traffic_gen._connect = mock.Mock()
+ self.assertRaises(
+ IOError,
+ ixnet_traffic_gen.instantiate(scenario_cfg, {}))
+
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
+ def test_collect_kpi(self, *args):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, "", ""))
+ ssh.from_node.return_value = ssh_mock
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ ixnet_traffic_gen = tg_rfc2544_ixia.IxiaTrafficGen(NAME, vnfd)
+ ixnet_traffic_gen.scenario_helper.scenario_cfg = {
+ 'nodes': {ixnet_traffic_gen.name: "mock"}
+ }
+ ixnet_traffic_gen.data = {}
+ restult = ixnet_traffic_gen.collect_kpi()
+
+ expected = {'collect_stats': {},
+ 'physical_node': 'mock_node'}
+
+ self.assertEqual(expected, restult)
+
+ def test_terminate(self, *args):
+ with mock.patch("yardstick.ssh.SSH") as ssh:
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ ssh_mock = mock.Mock(autospec=ssh.SSH)
+ ssh_mock.execute = \
+ mock.Mock(return_value=(0, "", ""))
+ ssh.from_node.return_value = ssh_mock
+ ixnet_traffic_gen = tg_rfc2544_ixia.IxiaTrafficGen(
+ NAME, vnfd, resource_helper_type=mock.Mock())
+ ixnet_traffic_gen._terminated = mock.MagicMock()
+ ixnet_traffic_gen._terminated.value = 0
+ ixnet_traffic_gen._ixia_traffic_gen = mock.MagicMock()
+ ixnet_traffic_gen._ixia_traffic_gen.ix_stop_traffic = mock.Mock()
+ ixnet_traffic_gen._traffic_process = mock.MagicMock()
+ ixnet_traffic_gen._traffic_process.terminate = mock.Mock()
+ self.assertIsNone(ixnet_traffic_gen.terminate())
+
+ def _get_file_abspath(self, filename):
+ curr_path = os.path.dirname(os.path.abspath(__file__))
+ file_path = os.path.join(curr_path, filename)
+ return file_path
+
+ def test__check_status(self, *args):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ sut = tg_rfc2544_ixia.IxiaTrafficGen('vnf1', vnfd)
+ sut._check_status()
+
+ @mock.patch("yardstick.ssh.SSH")
+ def test_traffic_runner(self, mock_ssh, *args):
+ mock_traffic_profile = mock.Mock(autospec=tp_base.TrafficProfile)
+ mock_traffic_profile.get_traffic_definition.return_value = "64"
+ mock_traffic_profile.params = self.TRAFFIC_PROFILE
+ # traffic_profile.ports is standardized on port_num
+ mock_traffic_profile.ports = [0, 1]
+
+ mock_ssh_instance = mock.Mock(autospec=mock_ssh.SSH)
+ mock_ssh_instance.execute.return_value = 0, "", ""
+ mock_ssh_instance.run.return_value = 0, "", ""
+
+ mock_ssh.from_node.return_value = mock_ssh_instance
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vnfd["mgmt-interface"].update({
+ 'tg-config': {
+ "ixchassis": "1.1.1.1",
+ "py_bin_path": "/root",
+ }
+ })
+
+ samples = {}
+ name = ''
+ for ifname in range(1):
+ name = "xe{}".format(ifname)
+ samples[name] = {
+ "Rx_Rate_Kbps": 20,
+ "Tx_Rate_Kbps": 20,
+ "Rx_Rate_Mbps": 10,
+ "Tx_Rate_Mbps": 10,
+ "RxThroughput": 10,
+ "TxThroughput": 10,
+ "Valid_Frames_Rx": 1000,
+ "Frames_Tx": 1000,
+ "in_packets": 1000,
+ "out_packets": 1000,
+ }
+
+ samples.update({"CurrentDropPercentage": 0.0})
+
+ last_res = [
+ 0,
+ {
+ "Rx_Rate_Kbps": [20, 20],
+ "Tx_Rate_Kbps": [20, 20],
+ "Rx_Rate_Mbps": [10, 10],
+ "Tx_Rate_Mbps": [10, 10],
+ "CurrentDropPercentage": [0, 0],
+ "RxThroughput": [10, 10],
+ "TxThroughput": [10, 10],
+ "Frames_Tx": [1000, 1000],
+ "in_packets": [1000, 1000],
+ "Valid_Frames_Rx": [1000, 1000],
+ "out_packets": [1000, 1000],
+ },
+ ]
+
+ mock_traffic_profile.execute_traffic.return_value = [
+ 'Completed', samples]
+ mock_traffic_profile.get_drop_percentage.return_value = [
+ 'Completed', samples]
+
+ sut = tg_rfc2544_ixia.IxiaTrafficGen(name, vnfd)
+ sut.vnf_port_pairs = [[[0], [1]]]
+ sut.tc_file_name = self._get_file_abspath(TEST_FILE_YAML)
+ sut.topology = ""
+
+ sut.ssh_helper = mock.Mock()
+ sut._traffic_process = mock.MagicMock()
+ sut.generate_port_pairs = mock.Mock()
+
+ sut._ixia_traffic_gen = mock.MagicMock()
+ sut._ixia_traffic_gen.ix_get_statistics.return_value = last_res
+
+ sut.resource_helper.client = mock.MagicMock()
+ sut.resource_helper.client_started = mock.MagicMock()
+ sut.resource_helper.client_started.value = 1
+ sut.resource_helper.rfc_helper.iteration.value = 11
+ sut.resource_helper._ix_scenario = mock.Mock()
+
+ sut.scenario_helper.scenario_cfg = {
+ 'options': {
+ 'packetsize': 64,
+ 'traffic_type': 4,
+ 'rfc2544': {
+ 'allowed_drop_rate': '0.8 - 1',
+ 'latency': True
+ },
+ 'vnf__1': {
+ 'rules': 'acl_1rule.yaml',
+ 'vnf_config': {
+ 'lb_config': 'SW',
+ 'lb_count': 1,
+ 'worker_config': '1C/1T',
+ 'worker_threads': 1,
+ },
+ },
+ },
+ 'task_path': '/path/to/task'
+ }
+
+ @mock.patch.object(six.moves.builtins, 'open', create=True)
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia.open',
+ mock.mock_open(), create=True)
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia.LOG.exception')
+ def _traffic_runner(*args):
+ result = sut._traffic_runner(mock_traffic_profile)
+ self.assertIsNone(result)
+
+ _traffic_runner()
+
+ def test_run_traffic_once(self, *args):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ sut = tg_rfc2544_ixia.IxiaTrafficGen('vnf1', vnfd)
+ sut._init_traffic_process = mock.Mock()
+ sut._tasks_queue.put = mock.Mock()
+ sut.resource_helper.client_started.value = 0
+ sut.run_traffic_once(self.TRAFFIC_PROFILE)
+ sut._tasks_queue.put.assert_called_once_with("RUN_TRAFFIC")
+ sut._init_traffic_process.assert_called_once_with(self.TRAFFIC_PROFILE)
+
+ def test__test_runner(self, *args):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ sut = tg_rfc2544_ixia.IxiaTrafficGen('vnf1', vnfd)
+ tasks = 'tasks'
+ results = 'results'
+ sut.resource_helper = mock.Mock()
+ sut._test_runner(self.TRAFFIC_PROFILE, tasks, results)
+ sut.resource_helper.run_test.assert_called_once_with(self.TRAFFIC_PROFILE,
+ tasks, results)
+
+ @mock.patch.object(time, 'sleep', return_value=0)
+ def test__init_traffic_process(self, *args):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ sut = tg_rfc2544_ixia.IxiaTrafficGen('vnf1', vnfd)
+ sut._test_runner = mock.Mock(return_value=0)
+ sut.resource_helper = mock.Mock()
+ sut.resource_helper.client_started.value = 0
+ sut._init_traffic_process(self.TRAFFIC_PROFILE)
+
+ def test_wait_on_traffic(self, *args):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ sut = tg_rfc2544_ixia.IxiaTrafficGen('vnf1', vnfd)
+ sut._tasks_queue.join = mock.Mock(return_value=0)
+ sut._result_queue.get = mock.Mock(return_value='COMPLETE')
+ result = sut.wait_on_traffic()
+ sut._tasks_queue.join.assert_called_once()
+ sut._result_queue.get.assert_called_once()
+ self.assertEqual(result, 'COMPLETE')
+
+
+class TestIxiaBasicScenario(unittest.TestCase):
+
+ STATS = {'stat_name': ['Card01/Port01',
+ 'Card02/Port02'],
+ 'port_name': ['Ethernet - 001', 'Ethernet - 002'],
+ 'Frames_Tx': ['150', '150'],
+ 'Valid_Frames_Rx': ['150', '150'],
+ 'Frames_Tx_Rate': ['0.0', '0.0'],
+ 'Valid_Frames_Rx_Rate': ['0.0', '0.0'],
+ 'Bytes_Rx': ['9600', '9600'],
+ 'Bytes_Tx': ['9600', '9600'],
+ 'Tx_Rate_Kbps': ['0.0', '0.0'],
+ 'Rx_Rate_Mbps': ['0.0', '0.0'],
+ 'Tx_Rate_Mbps': ['0.0', '0.0'],
+ 'Rx_Rate_Kbps': ['0.0', '0.0'],
+ 'Store-Forward_Max_latency_ns': ['100', '200'],
+ 'Store-Forward_Min_latency_ns': ['100', '200'],
+ 'Store-Forward_Avg_latency_ns': ['100', '200']}
+
+ def setUp(self):
+ self._mock_IxNextgen = mock.patch.object(ixnet_api, 'IxNextgen')
+ self.mock_IxNextgen = self._mock_IxNextgen.start()
+ self.context_cfg = mock.Mock()
+ self.ixia_cfg = mock.Mock()
+ self.scenario = tg_rfc2544_ixia.IxiaBasicScenario(self.mock_IxNextgen,
+ self.context_cfg,
+ self.ixia_cfg)
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_IxNextgen.stop()
+
+ def test___init___(self):
+ self.assertIsInstance(self.scenario, tg_rfc2544_ixia.IxiaBasicScenario)
+ self.assertEqual(self.scenario.client, self.mock_IxNextgen)
+
+ def test_create_traffic_model(self):
+ self.mock_IxNextgen.get_vports.return_value = [1, 2, 3, 4]
+ yaml_data = {'traffic_profile': {}
+ }
+ traffic_profile = ixia_rfc2544.IXIARFC2544Profile(yaml_data)
+ self.scenario.create_traffic_model(traffic_profile)
+ self.scenario.client.get_vports.assert_called_once()
+ self.scenario.client.create_traffic_model.assert_called_once_with(
+ [1, 3], [2, 4], traffic_profile)
+
+ def test_apply_config(self):
+ self.assertIsNone(self.scenario.apply_config())
+
+ def test_run_protocols(self):
+ self.assertIsNone(self.scenario.run_protocols())
+
+ def test_stop_protocols(self):
+ self.assertIsNone(self.scenario.stop_protocols())
+
+ def test__get_stats(self):
+ self.scenario._get_stats()
+ self.scenario.client.get_statistics.assert_called_once()
+
+ @mock.patch.object(tg_rfc2544_ixia.IxiaBasicScenario, '_get_stats')
+ def test_generate_samples(self, mock_get_stats):
+
+ expected_samples = {'xe0': {
+ 'InPackets': 150,
+ 'OutPackets': 150,
+ 'InBytes': 9600,
+ 'OutBytes': 9600,
+ 'RxThroughput': 5.0,
+ 'TxThroughput': 5.0,
+ 'RxThroughputBps': 320.0,
+ 'TxThroughputBps': 320.0,
+ 'LatencyMax': 100,
+ 'LatencyMin': 100,
+ 'LatencyAvg': 100},
+ 'xe1': {
+ 'InPackets': 150,
+ 'OutPackets': 150,
+ 'InBytes': 9600,
+ 'OutBytes': 9600,
+ 'RxThroughput': 5.0,
+ 'TxThroughput': 5.0,
+ 'RxThroughputBps': 320.0,
+ 'TxThroughputBps': 320.0,
+ 'LatencyMax': 200,
+ 'LatencyMin': 200,
+ 'LatencyAvg': 200}}
+
+ res_helper = mock.Mock()
+ res_helper.vnfd_helper.find_interface_by_port.side_effect = \
+ [{'name': 'xe0'}, {'name': 'xe1'}]
+ ports = [0, 1]
+ duration = 30
+ mock_get_stats.return_value = self.STATS
+ samples = self.scenario.generate_samples(res_helper, ports, duration)
+ mock_get_stats.assert_called_once()
+ self.assertEqual(samples, expected_samples)
+
+
+class TestIxiaL3Scenario(TestIxiaBasicScenario):
+ IXIA_CFG = {
+ 'flow': {
+ 'src_ip': ['192.168.0.1-192.168.0.50'],
+ 'dst_ip': ['192.168.1.1-192.168.1.150']
+ }
+ }
+
+ CONTEXT_CFG = {
+ 'nodes': {
+ 'tg__0': {
+ 'role': 'IxNet',
+ 'interfaces': {
+ 'xe0': {
+ 'vld_id': 'uplink_0',
+ 'local_ip': '10.1.1.1',
+ 'local_mac': 'aa:bb:cc:dd:ee:ff',
+ 'ifname': 'xe0'
+ },
+ 'xe1': {
+ 'vld_id': 'downlink_0',
+ 'local_ip': '20.2.2.2',
+ 'local_mac': 'bb:bb:cc:dd:ee:ee',
+ 'ifname': 'xe1'
+ }
+ },
+ 'routing_table': [{
+ 'network': "152.16.100.20",
+ 'netmask': '255.255.0.0',
+ 'gateway': '152.16.100.21',
+ 'if': 'xe0'
+ }]
+ }
+ }
+ }
+
+ def setUp(self):
+ super(TestIxiaL3Scenario, self).setUp()
+ self.ixia_cfg = self.IXIA_CFG
+ self.context_cfg = self.CONTEXT_CFG
+ self.scenario = tg_rfc2544_ixia.IxiaL3Scenario(self.mock_IxNextgen,
+ self.context_cfg,
+ self.ixia_cfg)
+
+ def test___init___(self):
+ self.assertIsInstance(self.scenario, tg_rfc2544_ixia.IxiaL3Scenario)
+ self.assertEqual(self.scenario.client, self.mock_IxNextgen)
+
+ def test_create_traffic_model(self):
+ self.mock_IxNextgen.get_vports.return_value = ['1', '2']
+ traffic_profile = 'fake_profile'
+ self.scenario.create_traffic_model(traffic_profile)
+ self.scenario.client.get_vports.assert_called_once()
+ self.scenario.client.create_ipv4_traffic_model.\
+ assert_called_once_with(['1/protocols/static'],
+ ['2/protocols/static'],
+ 'fake_profile')
+
+ def test_apply_config(self):
+ self.scenario._add_interfaces = mock.Mock()
+ self.scenario._add_static_ips = mock.Mock()
+ self.assertIsNone(self.scenario.apply_config())
+
+ def test__add_static(self):
+ self.mock_IxNextgen.get_vports.return_value = ['1', '2']
+ self.mock_IxNextgen.get_static_interface.side_effect = ['intf1',
+ 'intf2']
+
+ self.scenario._add_static_ips()
+
+ self.mock_IxNextgen.get_static_interface.assert_any_call('1')
+ self.mock_IxNextgen.get_static_interface.assert_any_call('2')
+
+ self.scenario.client.add_static_ipv4.assert_any_call(
+ 'intf1', '1', '192.168.0.1', 49, '32')
+ self.scenario.client.add_static_ipv4.assert_any_call(
+ 'intf2', '2', '192.168.1.1', 149, '32')
+
+ def test__add_interfaces(self):
+ self.mock_IxNextgen.get_vports.return_value = ['1', '2']
+
+ self.scenario._add_interfaces()
+
+ self.mock_IxNextgen.add_interface.assert_any_call('1',
+ '10.1.1.1',
+ 'aa:bb:cc:dd:ee:ff',
+ '152.16.100.21')
+ self.mock_IxNextgen.add_interface.assert_any_call('2',
+ '20.2.2.2',
+ 'bb:bb:cc:dd:ee:ee',
+ None)
+
+
+class TestIxiaPppoeClientScenario(unittest.TestCase):
+
+ IXIA_CFG = {
+ 'pppoe_client': {
+ 'sessions_per_port': 4,
+ 'sessions_per_svlan': 1,
+ 's_vlan': 10,
+ 'c_vlan': 20,
+ 'ip': ['10.3.3.1', '10.4.4.1']
+ },
+ 'ipv4_client': {
+ 'sessions_per_port': 1,
+ 'sessions_per_vlan': 1,
+ 'vlan': 101,
+ 'gateway_ip': ['10.1.1.1', '10.2.2.1'],
+ 'ip': ['10.1.1.1', '10.2.2.1'],
+ 'prefix': ['24', '24']
+ },
+ 'priority': {
+ 'tos': {'precedence': [0, 4]}
+ }
+ }
+
+ CONTEXT_CFG = {
+ 'nodes': {'tg__0': {
+ 'interfaces': {'xe0': {
+ 'local_ip': '10.1.1.1',
+ 'netmask': '255.255.255.0'
+ }}}}}
+
+ def setUp(self):
+ self._mock_IxNextgen = mock.patch.object(ixnet_api, 'IxNextgen')
+ self.mock_IxNextgen = self._mock_IxNextgen.start()
+ self.scenario = tg_rfc2544_ixia.IxiaPppoeClientScenario(
+ self.mock_IxNextgen, self.CONTEXT_CFG, self.IXIA_CFG)
+ tg_rfc2544_ixia.WAIT_PROTOCOLS_STARTED = 2
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_IxNextgen.stop()
+
+ def test___init___(self):
+ self.assertIsInstance(self.scenario, tg_rfc2544_ixia.IxiaPppoeClientScenario)
+ self.assertEqual(self.scenario.client, self.mock_IxNextgen)
+
+ @mock.patch.object(tg_rfc2544_ixia.IxiaPppoeClientScenario,
+ '_fill_ixia_config')
+ @mock.patch.object(tg_rfc2544_ixia.IxiaPppoeClientScenario,
+ '_apply_access_network_config')
+ @mock.patch.object(tg_rfc2544_ixia.IxiaPppoeClientScenario,
+ '_apply_core_network_config')
+ def test_apply_config(self, mock_apply_core_net_cfg,
+ mock_apply_access_net_cfg,
+ mock_fill_ixia_config):
+ self.mock_IxNextgen.get_vports.return_value = [1, 2, 3, 4]
+ self.scenario.apply_config()
+ self.scenario.client.get_vports.assert_called_once()
+ self.assertEqual(self.scenario._uplink_vports, [1, 3])
+ self.assertEqual(self.scenario._downlink_vports, [2, 4])
+ mock_fill_ixia_config.assert_called_once()
+ mock_apply_core_net_cfg.assert_called_once()
+ mock_apply_access_net_cfg.assert_called_once()
+
+ @mock.patch.object(tg_rfc2544_ixia.IxiaPppoeClientScenario,
+ '_get_endpoints_src_dst_id_pairs')
+ @mock.patch.object(tg_rfc2544_ixia.IxiaPppoeClientScenario,
+ '_get_endpoints_src_dst_obj_pairs')
+ def test_create_traffic_model(self, mock_obj_pairs, mock_id_pairs):
+ uplink_endpoints = ['group1', 'group2']
+ downlink_endpoints = ['group3', 'group3']
+ mock_id_pairs.return_value = ['xe0', 'xe1', 'xe0', 'xe1']
+ mock_obj_pairs.return_value = ['group1', 'group3', 'group2', 'group3']
+ mock_tp = mock.Mock()
+ mock_tp.full_profile = {'uplink_0': 'data',
+ 'downlink_0': 'data',
+ 'uplink_1': 'data',
+ 'downlink_1': 'data'
+ }
+ self.scenario.create_traffic_model(mock_tp)
+ mock_id_pairs.assert_called_once_with(mock_tp.full_profile)
+ mock_obj_pairs.assert_called_once_with(['xe0', 'xe1', 'xe0', 'xe1'])
+ self.scenario.client.create_ipv4_traffic_model.assert_called_once_with(
+ uplink_endpoints, downlink_endpoints, mock_tp)
+
+ @mock.patch.object(tg_rfc2544_ixia.IxiaPppoeClientScenario,
+ '_get_endpoints_src_dst_id_pairs')
+ @mock.patch.object(tg_rfc2544_ixia.IxiaPppoeClientScenario,
+ '_get_endpoints_src_dst_obj_pairs')
+ def test_create_traffic_model_topology_based_flows(self, mock_obj_pairs,
+ mock_id_pairs):
+ uplink_topologies = ['topology1', 'topology3']
+ downlink_topologies = ['topology2', 'topology4']
+ mock_id_pairs.return_value = []
+ mock_obj_pairs.return_value = []
+ mock_tp = mock.Mock()
+ mock_tp.full_profile = {'uplink_0': 'data',
+ 'downlink_0': 'data',
+ 'uplink_1': 'data',
+ 'downlink_1': 'data'
+ }
+ self.scenario._access_topologies = ['topology1', 'topology3']
+ self.scenario._core_topologies = ['topology2', 'topology4']
+ self.scenario.create_traffic_model(mock_tp)
+ mock_id_pairs.assert_called_once_with(mock_tp.full_profile)
+ mock_obj_pairs.assert_called_once_with([])
+ self.scenario.client.create_ipv4_traffic_model.assert_called_once_with(
+ uplink_topologies, downlink_topologies, mock_tp)
+
+ def test__get_endpoints_src_dst_id_pairs(self):
+ full_tp = OrderedDict([
+ ('uplink_0', {'ipv4': {'port': 'xe0'}}),
+ ('downlink_0', {'ipv4': {'port': 'xe1'}}),
+ ('uplink_1', {'ipv4': {'port': 'xe0'}}),
+ ('downlink_1', {'ipv4': {'port': 'xe3'}})])
+ endpoints_src_dst_pairs = ['xe0', 'xe1', 'xe0', 'xe3']
+ res = self.scenario._get_endpoints_src_dst_id_pairs(full_tp)
+ self.assertEqual(res, endpoints_src_dst_pairs)
+
+ def test__get_endpoints_src_dst_id_pairs_wrong_flows_number(self):
+ full_tp = OrderedDict([
+ ('uplink_0', {'ipv4': {'port': 'xe0'}}),
+ ('downlink_0', {'ipv4': {'port': 'xe1'}}),
+ ('uplink_1', {'ipv4': {'port': 'xe0'}})])
+ with self.assertRaises(RuntimeError):
+ self.scenario._get_endpoints_src_dst_id_pairs(full_tp)
+
+ def test__get_endpoints_src_dst_id_pairs_no_port_key(self):
+ full_tp = OrderedDict([
+ ('uplink_0', {'ipv4': {'id': 1}}),
+ ('downlink_0', {'ipv4': {'id': 2}})])
+ self.assertEqual(
+ self.scenario._get_endpoints_src_dst_id_pairs(full_tp), [])
+
+ def test__get_endpoints_src_dst_obj_pairs_tp_with_port_key(self):
+ endpoints_id_pairs = ['xe0', 'xe1',
+ 'xe0', 'xe1',
+ 'xe0', 'xe3',
+ 'xe0', 'xe3']
+ ixia_cfg = {
+ 'pppoe_client': {
+ 'sessions_per_port': 4,
+ 'sessions_per_svlan': 1
+ },
+ 'flow': {
+ 'src_ip': [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}],
+ 'dst_ip': [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}]
+ }
+ }
+
+ expected_result = ['tp1_dg1', 'tp3_dg1', 'tp1_dg2', 'tp3_dg1',
+ 'tp1_dg3', 'tp4_dg1', 'tp1_dg4', 'tp4_dg1']
+
+ self.scenario._ixia_cfg = ixia_cfg
+ self.scenario._access_topologies = ['topology1', 'topology2']
+ self.scenario._core_topologies = ['topology3', 'topology4']
+ self.mock_IxNextgen.get_topology_device_groups.side_effect = \
+ [['tp1_dg1', 'tp1_dg2', 'tp1_dg3', 'tp1_dg4'],
+ ['tp2_dg1', 'tp2_dg2', 'tp2_dg3', 'tp2_dg4'],
+ ['tp3_dg1'],
+ ['tp4_dg1']]
+ res = self.scenario._get_endpoints_src_dst_obj_pairs(
+ endpoints_id_pairs)
+ self.assertEqual(res, expected_result)
+
+ def test__get_endpoints_src_dst_obj_pairs_default_flows_mapping(self):
+ endpoints_id_pairs = []
+ ixia_cfg = {
+ 'pppoe_client': {
+ 'sessions_per_port': 4,
+ 'sessions_per_svlan': 1
+ },
+ 'flow': {
+ 'src_ip': [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}],
+ 'dst_ip': [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}]
+ }
+ }
+
+ self.scenario._ixia_cfg = ixia_cfg
+ res = self.scenario._get_endpoints_src_dst_obj_pairs(
+ endpoints_id_pairs)
+ self.assertEqual(res, [])
+
+ def test_run_protocols(self):
+ self.scenario.client.is_protocols_running.return_value = True
+ self.scenario.run_protocols()
+ self.scenario.client.start_protocols.assert_called_once()
+
+ def test_run_protocols_timeout_exception(self):
+ self.scenario.client.is_protocols_running.return_value = False
+ with self.assertRaises(exceptions.WaitTimeout):
+ self.scenario.run_protocols()
+ self.scenario.client.start_protocols.assert_called_once()
+
+ def test_stop_protocols(self):
+ self.scenario.stop_protocols()
+ self.scenario.client.stop_protocols.assert_called_once()
+
+ def test__get_intf_addr_str_type_input(self):
+ intf = '192.168.10.2/24'
+ ip, mask = self.scenario._get_intf_addr(intf)
+ self.assertEqual(ip, '192.168.10.2')
+ self.assertEqual(mask, 24)
+
+ def test__get_intf_addr_dict_type_input(self):
+ intf = {'tg__0': 'xe0'}
+ ip, mask = self.scenario._get_intf_addr(intf)
+ self.assertEqual(ip, '10.1.1.1')
+ self.assertEqual(mask, 24)
+
+ @mock.patch.object(tg_rfc2544_ixia.IxiaPppoeClientScenario, '_get_intf_addr')
+ def test__fill_ixia_config(self, mock_get_intf_addr):
+
+ ixia_cfg = {
+ 'pppoe_client': {
+ 'sessions_per_port': 4,
+ 'sessions_per_svlan': 1,
+ 's_vlan': 10,
+ 'c_vlan': 20,
+ 'ip': ['10.3.3.1/24', '10.4.4.1/24']
+ },
+ 'ipv4_client': {
+ 'sessions_per_port': 1,
+ 'sessions_per_vlan': 1,
+ 'vlan': 101,
+ 'gateway_ip': ['10.1.1.1/24', '10.2.2.1/24'],
+ 'ip': ['10.1.1.1/24', '10.2.2.1/24']
+ }
+ }
+
+ mock_get_intf_addr.side_effect = [
+ ('10.3.3.1', '24'),
+ ('10.4.4.1', '24'),
+ ('10.1.1.1', '24'),
+ ('10.2.2.1', '24'),
+ ('10.1.1.1', '24'),
+ ('10.2.2.1', '24')
+ ]
+ self.scenario._ixia_cfg = ixia_cfg
+ self.scenario._fill_ixia_config()
+ self.assertEqual(mock_get_intf_addr.call_count, 6)
+ self.assertEqual(self.scenario._ixia_cfg['pppoe_client']['ip'],
+ ['10.3.3.1', '10.4.4.1'])
+ self.assertEqual(self.scenario._ixia_cfg['ipv4_client']['ip'],
+ ['10.1.1.1', '10.2.2.1'])
+ self.assertEqual(self.scenario._ixia_cfg['ipv4_client']['prefix'],
+ ['24', '24'])
+
+ @mock.patch('yardstick.network_services.libs.ixia_libs.ixnet.ixnet_api.Vlan')
+ def test__apply_access_network_config_pap_auth(self, mock_vlan):
+ _ixia_cfg = {
+ 'pppoe_client': {
+ 'sessions_per_port': 4,
+ 'sessions_per_svlan': 1,
+ 's_vlan': 10,
+ 'c_vlan': 20,
+ 'pap_user': 'test_pap',
+ 'pap_password': 'pap'
+ }}
+ pap_user = _ixia_cfg['pppoe_client']['pap_user']
+ pap_passwd = _ixia_cfg['pppoe_client']['pap_password']
+ self.scenario._ixia_cfg = _ixia_cfg
+ self.scenario._uplink_vports = [0, 2]
+ self.scenario.client.add_topology.side_effect = ['Topology 1', 'Topology 2']
+ self.scenario.client.add_device_group.side_effect = ['Dg1', 'Dg2', 'Dg3',
+ 'Dg4', 'Dg5', 'Dg6',
+ 'Dg7', 'Dg8']
+ self.scenario.client.add_ethernet.side_effect = ['Eth1', 'Eth2', 'Eth3',
+ 'Eth4', 'Eth5', 'Eth6',
+ 'Eth7', 'Eth8']
+ self.scenario._apply_access_network_config()
+ self.assertEqual(self.scenario.client.add_topology.call_count, 2)
+ self.assertEqual(self.scenario.client.add_device_group.call_count, 8)
+ self.assertEqual(self.scenario.client.add_ethernet.call_count, 8)
+ self.assertEqual(mock_vlan.call_count, 16)
+ self.assertEqual(self.scenario.client.add_vlans.call_count, 8)
+ self.assertEqual(self.scenario.client.add_pppox_client.call_count, 8)
+ self.scenario.client.add_topology.assert_has_calls([
+ mock.call('Topology access 0', 0),
+ mock.call('Topology access 1', 2)
+ ])
+ self.scenario.client.add_device_group.assert_has_calls([
+ mock.call('Topology 1', 'SVLAN 10', 1),
+ mock.call('Topology 1', 'SVLAN 11', 1),
+ mock.call('Topology 1', 'SVLAN 12', 1),
+ mock.call('Topology 1', 'SVLAN 13', 1),
+ mock.call('Topology 2', 'SVLAN 14', 1),
+ mock.call('Topology 2', 'SVLAN 15', 1),
+ mock.call('Topology 2', 'SVLAN 16', 1),
+ mock.call('Topology 2', 'SVLAN 17', 1)
+ ])
+ self.scenario.client.add_ethernet.assert_has_calls([
+ mock.call('Dg1', 'Ethernet'),
+ mock.call('Dg2', 'Ethernet'),
+ mock.call('Dg3', 'Ethernet'),
+ mock.call('Dg4', 'Ethernet'),
+ mock.call('Dg5', 'Ethernet'),
+ mock.call('Dg6', 'Ethernet'),
+ mock.call('Dg7', 'Ethernet'),
+ mock.call('Dg8', 'Ethernet')
+ ])
+ mock_vlan.assert_has_calls([
+ mock.call(vlan_id=10),
+ mock.call(vlan_id=20, vlan_id_step=1),
+ mock.call(vlan_id=11),
+ mock.call(vlan_id=20, vlan_id_step=1),
+ mock.call(vlan_id=12),
+ mock.call(vlan_id=20, vlan_id_step=1),
+ mock.call(vlan_id=13),
+ mock.call(vlan_id=20, vlan_id_step=1),
+ mock.call(vlan_id=14),
+ mock.call(vlan_id=20, vlan_id_step=1),
+ mock.call(vlan_id=15),
+ mock.call(vlan_id=20, vlan_id_step=1),
+ mock.call(vlan_id=16),
+ mock.call(vlan_id=20, vlan_id_step=1),
+ mock.call(vlan_id=17),
+ mock.call(vlan_id=20, vlan_id_step=1)
+ ])
+ self.scenario.client.add_pppox_client.assert_has_calls([
+ mock.call('Eth1', 'pap', pap_user, pap_passwd),
+ mock.call('Eth2', 'pap', pap_user, pap_passwd),
+ mock.call('Eth3', 'pap', pap_user, pap_passwd),
+ mock.call('Eth4', 'pap', pap_user, pap_passwd),
+ mock.call('Eth5', 'pap', pap_user, pap_passwd),
+ mock.call('Eth6', 'pap', pap_user, pap_passwd),
+ mock.call('Eth7', 'pap', pap_user, pap_passwd),
+ mock.call('Eth8', 'pap', pap_user, pap_passwd)
+ ])
+
+ def test__apply_access_network_config_chap_auth(self):
+ _ixia_cfg = {
+ 'pppoe_client': {
+ 'sessions_per_port': 4,
+ 'sessions_per_svlan': 1,
+ 's_vlan': 10,
+ 'c_vlan': 20,
+ 'chap_user': 'test_chap',
+ 'chap_password': 'chap'
+ }}
+ chap_user = _ixia_cfg['pppoe_client']['chap_user']
+ chap_passwd = _ixia_cfg['pppoe_client']['chap_password']
+ self.scenario._ixia_cfg = _ixia_cfg
+ self.scenario._uplink_vports = [0, 2]
+ self.scenario.client.add_ethernet.side_effect = ['Eth1', 'Eth2', 'Eth3',
+ 'Eth4', 'Eth5', 'Eth6',
+ 'Eth7', 'Eth8']
+ self.scenario._apply_access_network_config()
+ self.assertEqual(self.scenario.client.add_pppox_client.call_count, 8)
+ self.scenario.client.add_pppox_client.assert_has_calls([
+ mock.call('Eth1', 'chap', chap_user, chap_passwd),
+ mock.call('Eth2', 'chap', chap_user, chap_passwd),
+ mock.call('Eth3', 'chap', chap_user, chap_passwd),
+ mock.call('Eth4', 'chap', chap_user, chap_passwd),
+ mock.call('Eth5', 'chap', chap_user, chap_passwd),
+ mock.call('Eth6', 'chap', chap_user, chap_passwd),
+ mock.call('Eth7', 'chap', chap_user, chap_passwd),
+ mock.call('Eth8', 'chap', chap_user, chap_passwd)
+ ])
+
+ @mock.patch('yardstick.network_services.libs.ixia_libs.ixnet.ixnet_api.Vlan')
+ def test__apply_core_network_config_no_bgp_proto(self, mock_vlan):
+ self.scenario._downlink_vports = [1, 3]
+ self.scenario.client.add_topology.side_effect = ['Topology 1', 'Topology 2']
+ self.scenario.client.add_device_group.side_effect = ['Dg1', 'Dg2']
+ self.scenario.client.add_ethernet.side_effect = ['Eth1', 'Eth2']
+ self.scenario._apply_core_network_config()
+ self.assertEqual(self.scenario.client.add_topology.call_count, 2)
+ self.assertEqual(self.scenario.client.add_device_group.call_count, 2)
+ self.assertEqual(self.scenario.client.add_ethernet.call_count, 2)
+ self.assertEqual(mock_vlan.call_count, 2)
+ self.assertEqual(self.scenario.client.add_vlans.call_count, 2)
+ self.assertEqual(self.scenario.client.add_ipv4.call_count, 2)
+ self.scenario.client.add_topology.assert_has_calls([
+ mock.call('Topology core 0', 1),
+ mock.call('Topology core 1', 3)
+ ])
+ self.scenario.client.add_device_group.assert_has_calls([
+ mock.call('Topology 1', 'Core port 0', 1),
+ mock.call('Topology 2', 'Core port 1', 1)
+ ])
+ self.scenario.client.add_ethernet.assert_has_calls([
+ mock.call('Dg1', 'Ethernet'),
+ mock.call('Dg2', 'Ethernet')
+ ])
+ mock_vlan.assert_has_calls([
+ mock.call(vlan_id=101),
+ mock.call(vlan_id=102)
+ ])
+ self.scenario.client.add_ipv4.assert_has_calls([
+ mock.call('Eth1', name='ipv4', addr=ipaddress.IPv4Address('10.1.1.2'),
+ addr_step='0.0.0.1', prefix='24', gateway='10.1.1.1'),
+ mock.call('Eth2', name='ipv4', addr=ipaddress.IPv4Address('10.2.2.2'),
+ addr_step='0.0.0.1', prefix='24', gateway='10.2.2.1')
+ ])
+ self.scenario.client.add_bgp.assert_not_called()
+
+ def test__apply_core_network_config_with_bgp_proto(self):
+ bgp_params = {
+ 'bgp': {
+ 'bgp_type': 'external',
+ 'dut_ip': '10.0.0.1',
+ 'as_number': 65000
+ }
+ }
+ self.scenario._ixia_cfg['ipv4_client'].update(bgp_params)
+ self.scenario._downlink_vports = [1, 3]
+ self.scenario.client.add_ipv4.side_effect = ['ipv4_1', 'ipv4_2']
+ self.scenario._apply_core_network_config()
+ self.assertEqual(self.scenario.client.add_bgp.call_count, 2)
+ self.scenario.client.add_bgp.assert_has_calls([
+ mock.call('ipv4_1', dut_ip=bgp_params["bgp"]["dut_ip"],
+ local_as=bgp_params["bgp"]["as_number"],
+ bgp_type=bgp_params["bgp"]["bgp_type"]),
+ mock.call('ipv4_2', dut_ip=bgp_params["bgp"]["dut_ip"],
+ local_as=bgp_params["bgp"]["as_number"],
+ bgp_type=bgp_params["bgp"]["bgp_type"])
+ ])
+
+ def test_update_tracking_options_raw_priority(self):
+ raw_priority = {'raw': 4}
+ self.scenario._ixia_cfg['priority'] = raw_priority
+ self.scenario.update_tracking_options()
+ self.scenario.client.set_flow_tracking.assert_called_once_with(
+ ['flowGroup0', 'vlanVlanId0', 'ipv4Raw0'])
+
+ def test_update_tracking_options_tos_priority(self):
+ tos_priority = {'tos': {'precedence': [4, 7]}}
+ self.scenario._ixia_cfg['priority'] = tos_priority
+ self.scenario.update_tracking_options()
+ self.scenario.client.set_flow_tracking.assert_called_once_with(
+ ['flowGroup0', 'vlanVlanId0', 'ipv4Precedence0'])
+
+ def test_update_tracking_options_dscp_priority(self):
+ dscp_priority = {'dscp': {'defaultPHB': [4, 7]}}
+ self.scenario._ixia_cfg['priority'] = dscp_priority
+ self.scenario.update_tracking_options()
+ self.scenario.client.set_flow_tracking.assert_called_once_with(
+ ['flowGroup0', 'vlanVlanId0', 'ipv4DefaultPhb0'])
+
+ def test_update_tracking_options_invalid_priority_data(self):
+ invalid_priority = {'tos': {'inet-precedence': [4, 7]}}
+ self.scenario._ixia_cfg['priority'] = invalid_priority
+ self.scenario.update_tracking_options()
+ self.scenario.client.set_flow_tracking.assert_called_once_with(
+ ['flowGroup0', 'vlanVlanId0', 'ipv4Precedence0'])
+
+ def test_get_tc_rfc2544_options(self):
+ rfc2544_tc_opts = {'allowed_drop_rate': '0.0001 - 0.0001'}
+ self.scenario._ixia_cfg['rfc2544'] = rfc2544_tc_opts
+ res = self.scenario.get_tc_rfc2544_options()
+ self.assertEqual(res, rfc2544_tc_opts)
+
+ def test__get_stats(self):
+ self.scenario._get_stats()
+ self.scenario.client.get_pppoe_scenario_statistics.assert_called_once()
+
+ def test_get_flow_id_data(self):
+ stats = [{'id': 1, 'in_packets': 10, 'out_packets': 20}]
+ key = "in_packets"
+ flow_id = 1
+ res = self.scenario.get_flow_id_data(stats, flow_id, key)
+ self.assertEqual(res, 10)
+
+ @mock.patch.object(tg_rfc2544_ixia.IxiaPppoeClientScenario, '_get_stats')
+ @mock.patch.object(tg_rfc2544_ixia.IxiaPppoeClientScenario,
+ 'get_priority_flows_stats')
+ def test_generate_samples(self, mock_prio_flow_statistics,
+ mock_get_stats):
+ ixia_stats = {
+ 'flow_statistic': [
+ {'Flow_Group': 'RFC2544-1 - Flow Group 0001',
+ 'Frames_Delta': '0',
+ 'IP_Priority': '0',
+ 'Rx_Frames': '3000',
+ 'Tx_Frames': '3000',
+ 'VLAN-ID': '100',
+ 'Tx_Port': 'Ethernet - 001',
+ 'Store-Forward_Avg_latency_ns': '2',
+ 'Store-Forward_Min_latency_ns': '2',
+ 'Store-Forward_Max_latency_ns': '2'},
+ {'Flow_Group': 'RFC2544-2 - Flow Group 0001',
+ 'Frames_Delta': '0',
+ 'IP_Priority': '0',
+ 'Rx_Frames': '3000',
+ 'Tx_Frames': '3000',
+ 'VLAN-ID': '101',
+ 'Tx_Port': 'Ethernet - 002',
+ 'Store-Forward_Avg_latency_ns': '2',
+ 'Store-Forward_Min_latency_ns': '2',
+ 'Store-Forward_Max_latency_ns': '2'
+ }],
+ 'port_statistics': [
+ {'Frames_Tx': '3000',
+ 'Valid_Frames_Rx': '3000',
+ 'Bytes_Rx': '192000',
+ 'Bytes_Tx': '192000',
+ 'Rx_Rate_Kbps': '0.0',
+ 'Tx_Rate_Kbps': '0.0',
+ 'Rx_Rate_Mbps': '0.0',
+ 'Tx_Rate_Mbps': '0.0',
+ 'port_name': 'Ethernet - 001'},
+ {'Frames_Tx': '3000',
+ 'Valid_Frames_Rx': '3000',
+ 'Bytes_Rx': '192000',
+ 'Bytes_Tx': '192000',
+ 'Rx_Rate_Kbps': '0.0',
+ 'Tx_Rate_Kbps': '0.0',
+ 'Rx_Rate_Mbps': '0.0',
+ 'Tx_Rate_Mbps': '0.0',
+ 'port_name': 'Ethernet - 002'}],
+ 'pppox_client_per_port': [
+ {'Sessions_Down': '0',
+ 'Sessions_Not_Started': '0',
+ 'Sessions_Total': '1',
+ 'Sessions_Up': '1',
+ 'subs_port': 'Ethernet - 001'}]}
+
+ prio_flows_stats = {
+ '0': {
+ 'InPackets': 6000,
+ 'OutPackets': 6000,
+ 'RxThroughput': 200.0,
+ 'TxThroughput': 200.0,
+ 'LatencyAvg': 2,
+ 'LatencyMax': 2,
+ 'LatencyMin': 2
+ }
+ }
+
+ expected_result = {'priority_stats': {
+ '0': {'RxThroughput': 200.0,
+ 'TxThroughput': 200.0,
+ 'LatencyAvg': 2,
+ 'LatencyMax': 2,
+ 'LatencyMin': 2,
+ 'InPackets': 6000,
+ 'OutPackets': 6000}},
+ 'xe0': {'RxThroughput': 100.0,
+ 'LatencyAvg': 2,
+ 'LatencyMax': 2,
+ 'LatencyMin': 2,
+ 'TxThroughput': 100.0,
+ 'InPackets': 3000,
+ 'OutPackets': 3000,
+ 'InBytes': 192000,
+ 'OutBytes': 192000,
+ 'RxThroughputBps': 6400.0,
+ 'TxThroughputBps': 6400.0,
+ 'SessionsDown': 0,
+ 'SessionsNotStarted': 0,
+ 'SessionsTotal': 1,
+ 'SessionsUp': 1},
+ 'xe1': {'RxThroughput': 100.0,
+ 'LatencyAvg': 2,
+ 'LatencyMax': 2,
+ 'LatencyMin': 2,
+ 'TxThroughput': 100.0,
+ 'InPackets': 3000,
+ 'OutPackets': 3000,
+ 'InBytes': 192000,
+ 'OutBytes': 192000,
+ 'RxThroughputBps': 6400.0,
+ 'TxThroughputBps': 6400.0}}
+
+ mock_get_stats.return_value = ixia_stats
+ mock_prio_flow_statistics.return_value = prio_flows_stats
+ ports = [0, 1]
+ port_names = [{'name': 'xe0'}, {'name': 'xe1'}]
+ duration = 30
+ res_helper = mock.Mock()
+ res_helper.vnfd_helper.find_interface_by_port.side_effect = \
+ port_names
+ samples = self.scenario.generate_samples(res_helper, ports, duration)
+ self.assertIsNotNone(samples)
+ self.assertIsNotNone(samples.get('xe0'))
+ self.assertIsNotNone(samples.get('xe1'))
+ self.assertEqual(samples, expected_result)
+ mock_get_stats.assert_called_once()
+ mock_prio_flow_statistics.assert_called_once()
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py
index 7342cfcdc..51b1b0d33 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,45 +11,42 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
-
-from __future__ import absolute_import
+import time
-import unittest
import mock
+import unittest
-from tests.unit import STL_MOCKS
-SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
-
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.tg_rfc2544_trex import TrexTrafficGenRFC, \
- TrexRfcResourceHelper
- from yardstick.network_services.vnf_generic.vnf import tg_rfc2544_trex
- from yardstick.network_services.traffic_profile.base import TrafficProfile
- from tests.unit.network_services.vnf_generic.vnf.test_base import FileAbsPath, mock_ssh
-
-MODULE_PATH = FileAbsPath(__file__)
-get_file_abspath = MODULE_PATH.get_path
+from yardstick.benchmark import contexts
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.traffic_profile import base as tp_base
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+from yardstick.network_services.vnf_generic.vnf import tg_rfc2544_trex
class TestTrexRfcResouceHelper(unittest.TestCase):
- @mock.patch('yardstick.network_services.helpers.samplevnf_helper.MultiPortConfig')
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_rfc2544_trex.time")
- @mock.patch(SSH_HELPER)
- def test__run_traffic_once(self, ssh, *_):
- mock_ssh(ssh)
-
- mock_traffic_profile = mock.MagicMock(autospec=TrafficProfile,
- **{'get_drop_percentage.return_value': {}})
- sut = TrexRfcResourceHelper(mock.MagicMock(), mock.MagicMock())
- sut.client = mock.MagicMock()
- sut._run_traffic_once(mock_traffic_profile)
+ @mock.patch.object(time, 'sleep')
+ def test__run_traffic_once(self, *args):
+ mock_setup_helper = mock.Mock()
+ mock_traffic_profile = mock.Mock()
+ mock_traffic_profile.config.duration = 3
+ mock_traffic_profile.execute_traffic.return_value = ('fake_ports',
+ 'port_pg_id_map')
+ mock_traffic_profile.get_drop_percentage.return_value = (True,
+ 'percentage')
+ rfc_rh = tg_rfc2544_trex.TrexRfcResourceHelper(mock_setup_helper)
+ rfc_rh.TRANSIENT_PERIOD = 0
+ rfc_rh.rfc2544_helper = mock.Mock()
+
+ with mock.patch.object(rfc_rh, '_get_samples') as mock_get_samples:
+ self.assertTrue(rfc_rh._run_traffic_once(mock_traffic_profile))
+
+ mock_traffic_profile.execute_traffic.assert_called_once_with(rfc_rh)
+ mock_traffic_profile.stop_traffic.assert_called_once_with(rfc_rh)
+ mock_traffic_profile.stop_traffic.assert_called_once()
+ mock_get_samples.assert_has_calls([
+ mock.call('fake_ports', port_pg_id='port_pg_id_map'),
+ mock.call('fake_ports', port_pg_id='port_pg_id_map')])
class TestTrexTrafficGenRFC(unittest.TestCase):
@@ -215,40 +210,44 @@ class TestTrexTrafficGenRFC(unittest.TestCase):
],
'context': {
'nfvi_type': 'baremetal',
- 'type': 'Node',
+ 'type': contexts.CONTEXT_NODE,
'name': 'yardstick',
'file': '/etc/yardstick/nodes/pod.yaml',
},
'schema': 'yardstick:task:0.1',
}
- @mock.patch(SSH_HELPER)
- def test___init__(self, ssh):
- mock_ssh(ssh)
- trex_traffic_gen = TrexTrafficGenRFC('vnf1', self.VNFD_0)
- self.assertIsNotNone(trex_traffic_gen.resource_helper._terminated.value)
+ def setUp(self):
+ self._mock_ssh_helper = mock.patch.object(sample_vnf, 'VnfSshHelper')
+ self.mock_ssh_helper = self._mock_ssh_helper.start()
+ self.addCleanup(self._stop_mocks)
- @mock.patch(SSH_HELPER)
- def test_collect_kpi(self, ssh):
- mock_ssh(ssh)
- trex_traffic_gen = TrexTrafficGenRFC('vnf1', self.VNFD_0)
- self.assertEqual(trex_traffic_gen.collect_kpi(), {})
+ def _stop_mocks(self):
+ self._mock_ssh_helper.stop()
- @mock.patch(SSH_HELPER)
- def test_listen_traffic(self, ssh):
- mock_ssh(ssh)
- trex_traffic_gen = TrexTrafficGenRFC('vnf1', self.VNFD_0)
- self.assertIsNone(trex_traffic_gen.listen_traffic({}))
+ def test___init__(self):
+ trex_traffic_gen = tg_rfc2544_trex.TrexTrafficGenRFC('vnf1', self.VNFD_0)
+ self.assertIsNotNone(trex_traffic_gen.resource_helper._terminated.value)
- @mock.patch(SSH_HELPER)
- def test_instantiate(self, ssh):
- mock_ssh(ssh)
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
+ def test_collect_kpi(self, *args):
+ trex_traffic_gen = tg_rfc2544_trex.TrexTrafficGenRFC('vnf1', self.VNFD_0)
+ trex_traffic_gen.scenario_helper.scenario_cfg = {
+ 'nodes': {trex_traffic_gen.name: "mock"}
+ }
+ expected = {
+ 'physical_node': 'mock_node',
+ 'collect_stats': {},
+ }
+ self.assertEqual(trex_traffic_gen.collect_kpi(), expected)
- mock_traffic_profile = mock.Mock(autospec=TrafficProfile)
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server', return_value='fake_context')
+ def test_instantiate(self, *args):
+ mock_traffic_profile = mock.Mock(autospec=tp_base.TrafficProfile)
mock_traffic_profile.get_traffic_definition.return_value = "64"
mock_traffic_profile.params = self.TRAFFIC_PROFILE
- trex_traffic_gen = TrexTrafficGenRFC('vnf1', self.VNFD_0)
+ trex_traffic_gen = tg_rfc2544_trex.TrexTrafficGenRFC('vnf1', self.VNFD_0)
trex_traffic_gen._start_server = mock.Mock(return_value=0)
trex_traffic_gen.resource_helper = mock.MagicMock()
trex_traffic_gen.setup_helper.setup_vnf_environment = mock.MagicMock()
@@ -274,26 +273,24 @@ class TestTrexTrafficGenRFC(unittest.TestCase):
},
}
tg_rfc2544_trex.WAIT_TIME = 3
- scenario_cfg.update({"nodes": ["tg_1", "vnf_1"]})
+ scenario_cfg.update({"nodes": {"tg_1": {}, "vnf1": {}}})
self.assertIsNone(trex_traffic_gen.instantiate(scenario_cfg, {}))
- @mock.patch(SSH_HELPER)
- def test_instantiate_error(self, ssh):
- mock_ssh(ssh, exec_result=(1, "", ""))
-
- mock_traffic_profile = mock.Mock(autospec=TrafficProfile)
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server', return_value='fake_context')
+ def test_instantiate_error(self, *args):
+ mock_traffic_profile = mock.Mock(autospec=tp_base.TrafficProfile)
mock_traffic_profile.get_traffic_definition.return_value = "64"
mock_traffic_profile.params = self.TRAFFIC_PROFILE
- trex_traffic_gen = TrexTrafficGenRFC('vnf1', self.VNFD_0)
+ trex_traffic_gen = tg_rfc2544_trex.TrexTrafficGenRFC('vnf1', self.VNFD_0)
trex_traffic_gen.resource_helper = mock.MagicMock()
trex_traffic_gen.setup_helper.setup_vnf_environment = mock.MagicMock()
scenario_cfg = {
"tc": "tc_baremetal_rfc2544_ipv4_1flow_64B",
- "nodes": [
- "tg_1",
- "vnf_1",
- ],
+ "nodes": {
+ "tg_1": {},
+ "vnf1": {}
+ },
"topology": 'nsb_test_case.yaml',
'options': {
'packetsize': 64,
@@ -313,29 +310,3 @@ class TestTrexTrafficGenRFC(unittest.TestCase):
},
}
trex_traffic_gen.instantiate(scenario_cfg, {})
-
- @mock.patch(SSH_HELPER)
- def test__start_server(self, ssh):
- mock_ssh(ssh)
- trex_traffic_gen = TrexTrafficGenRFC('vnf1', self.VNFD_0)
- trex_traffic_gen.resource_helper = mock.MagicMock()
- self.assertIsNone(trex_traffic_gen._start_server())
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.tg_rfc2544_trex.time")
- @mock.patch(SSH_HELPER)
- def test__generate_trex_cfg(self, ssh, _):
- mock_ssh(ssh)
-
- trex_traffic_gen = TrexTrafficGenRFC('vnf1', self.VNFD_0)
- trex_traffic_gen.ssh_helper = mock.MagicMock()
- trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
- self.assertIsNone(trex_traffic_gen.resource_helper.generate_cfg())
-
- def test_terminate(self):
- with mock.patch(SSH_HELPER) as ssh:
- ssh_mock = mock.Mock(autospec=ssh.SSH)
- ssh_mock.execute = mock.Mock(return_value=(0, "", ""))
- ssh.from_node.return_value = ssh_mock
- trex_traffic_gen = TrexTrafficGenRFC('vnf1', self.VNFD_0)
- trex_traffic_gen.resource_helper = mock.MagicMock()
- self.assertIsNone(trex_traffic_gen.terminate())
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py
index 618071507..0a441c8ce 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_trex.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,44 +11,37 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
import copy
-import mock
+import mock
import unittest
-from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
-from tests.unit import STL_MOCKS
-
+from yardstick.network_services.traffic_profile import base as tp_base
+from yardstick.network_services.traffic_profile import rfc2544
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+from yardstick.network_services.vnf_generic.vnf import tg_trex
+from yardstick.benchmark.contexts import base as ctx_base
-SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
-NAME = 'vnf_1'
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.tg_trex import \
- TrexTrafficGen, TrexResourceHelper
- from yardstick.network_services.traffic_profile.base import TrafficProfile
+NAME = 'vnf__1'
class TestTrexTrafficGen(unittest.TestCase):
+
VNFD = {'vnfd:vnfd-catalog':
- {'vnfd':
- [{'short-name': 'VpeVnf',
- 'vdu':
- [{'routing_table':
- [{'network': '152.16.100.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.100.20',
- 'if': 'xe0'},
- {'network': '152.16.40.20',
- 'netmask': '255.255.255.0',
- 'gateway': '152.16.40.20',
- 'if': 'xe1'}],
+ {'vnfd':
+ [{'short-name': 'VpeVnf',
+ 'vdu':
+ [{'routing_table':
+ [{'network': '152.16.100.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.100.20',
+ 'if': 'xe0'},
+ {'network': '152.16.40.20',
+ 'netmask': '255.255.255.0',
+ 'gateway': '152.16.40.20',
+ 'if': 'xe1'}],
'description': 'VPE approximation using DPDK',
'name': 'vpevnf-baremetal',
'nd_route_tbl':
@@ -65,49 +56,50 @@ class TestTrexTrafficGen(unittest.TestCase):
'id': 'vpevnf-baremetal',
'external-interface':
[{'virtual-interface':
- {'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.0',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 0,
- 'bandwidth': '10 Gbps',
- 'driver': "i40e",
- 'dst_ip': '152.16.100.20',
- 'local_iface_name': 'xe0',
- 'vld_id': 'downlink_0',
- 'ifname': 'xe0',
- 'local_mac': '00:00:00:00:00:02'},
+ {'dst_mac': '00:00:00:00:00:04',
+ 'vpci': '0000:05:00.0',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'bandwidth': '10 Gbps',
+ 'driver': "i40e",
+ 'dst_ip': '152.16.100.20',
+ 'local_iface_name': 'xe0',
+ 'vld_id': 'downlink_0',
+ 'ifname': 'xe0',
+ 'local_mac': '00:00:00:00:00:02'},
'vnfd-connection-point-ref': 'xe0',
'name': 'xe0'},
{'virtual-interface':
- {'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:05:00.1',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'driver': "i40e",
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 1,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_iface_name': 'xe1',
- 'vld_id': 'uplink_0',
- 'ifname': 'xe1',
- 'local_mac': '00:00:00:00:00:01'},
+ {'dst_mac': '00:00:00:00:00:03',
+ 'vpci': '0000:05:00.1',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'driver': "i40e",
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 1,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_iface_name': 'xe1',
+ 'vld_id': 'uplink_0',
+ 'ifname': 'xe1',
+ 'local_mac': '00:00:00:00:00:01'},
'vnfd-connection-point-ref': 'xe1',
'name': 'xe1'}]}],
- 'description': 'Vpe approximation using DPDK',
- 'mgmt-interface':
- {'vdu-id': 'vpevnf-baremetal',
- 'host': '1.1.1.1',
- 'password': 'r00t',
+ 'description': 'Vpe approximation using DPDK',
+ 'mgmt-interface':
+ {'vdu-id': 'vpevnf-baremetal',
+ 'host': '1.1.1.1',
+ 'password': 'r00t',
'user': 'root',
'ip': '1.1.1.1'},
- 'benchmark':
- {'kpi': ['packets_in', 'packets_fwd', 'packets_dropped']},
- 'connection-point': [{'type': 'VPORT', 'name': 'xe0'},
- {'type': 'VPORT', 'name': 'xe1'}],
- 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'}]}}
+ 'benchmark':
+ {'kpi': ['packets_in', 'packets_fwd',
+ 'packets_dropped']},
+ 'connection-point': [{'type': 'VPORT', 'name': 'xe0'},
+ {'type': 'VPORT', 'name': 'xe1'}],
+ 'id': 'VpeApproxVnf', 'name': 'VPEVnfSsh'}]}}
TRAFFIC_PROFILE = {
"schema": "isb:traffic_profile:0.1",
@@ -169,7 +161,7 @@ class TestTrexTrafficGen(unittest.TestCase):
"interfaces": {
"xe0": {
"local_iface_name": "ens786f0",
- "vld_id": TrafficProfile.UPLINK,
+ "vld_id": tp_base.TrafficProfile.UPLINK,
"netmask": "255.255.255.0",
"vpci": "0000:05:00.0",
"local_ip": "152.16.100.19",
@@ -181,7 +173,7 @@ class TestTrexTrafficGen(unittest.TestCase):
},
"xe1": {
"local_iface_name": "ens786f1",
- "vld_id": TrafficProfile.DOWNLINK,
+ "vld_id": tp_base.TrafficProfile.DOWNLINK,
"netmask": "255.255.255.0",
"vpci": "0000:05:00.1",
"local_ip": "152.16.40.19",
@@ -237,7 +229,7 @@ class TestTrexTrafficGen(unittest.TestCase):
"interfaces": {
"xe0": {
"local_iface_name": "ens513f0",
- "vld_id": TrafficProfile.DOWNLINK,
+ "vld_id": tp_base.TrafficProfile.DOWNLINK,
"netmask": "255.255.255.0",
"vpci": "0000:02:00.0",
"local_ip": "152.16.40.20",
@@ -271,7 +263,7 @@ class TestTrexTrafficGen(unittest.TestCase):
"interfaces": {
"xe0": {
"local_iface_name": "ens785f0",
- "vld_id": TrafficProfile.UPLINK,
+ "vld_id": tp_base.TrafficProfile.UPLINK,
"netmask": "255.255.255.0",
"vpci": "0000:05:00.0",
"local_ip": "152.16.100.20",
@@ -298,35 +290,44 @@ class TestTrexTrafficGen(unittest.TestCase):
}
}
- @mock.patch(SSH_HELPER)
- def test___init__(self, ssh):
- mock_ssh(ssh)
+ def setUp(self):
+ self._mock_ssh_helper = mock.patch.object(sample_vnf, 'VnfSshHelper')
+ self.mock_ssh_helper = self._mock_ssh_helper.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_ssh_helper.stop()
+
+ def test___init__(self):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
- self.assertIsInstance(trex_traffic_gen.resource_helper, TrexResourceHelper)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
+ self.assertIsInstance(trex_traffic_gen.resource_helper,
+ tg_trex.TrexResourceHelper)
- @mock.patch(SSH_HELPER)
- def test_collect_kpi(self, ssh):
- mock_ssh(ssh)
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
+ def test_collect_kpi(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen.scenario_helper.scenario_cfg = {
+ 'nodes': {trex_traffic_gen.name: "mock"}
+ }
trex_traffic_gen.resource_helper._queue.put({})
result = trex_traffic_gen.collect_kpi()
- self.assertEqual({}, result)
+ expected = {
+ 'physical_node': 'mock_node',
+ 'collect_stats': {}
+ }
+ self.assertEqual(expected, result)
- @mock.patch(SSH_HELPER)
- def test_listen_traffic(self, ssh):
- mock_ssh(ssh)
+ def test_listen_traffic(self):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
self.assertIsNone(trex_traffic_gen.listen_traffic({}))
- @mock.patch(SSH_HELPER)
- def test_instantiate(self, ssh):
- mock_ssh(ssh)
-
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server', return_value='fake_context')
+ def test_instantiate(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
trex_traffic_gen._start_server = mock.Mock(return_value=0)
trex_traffic_gen._tg_process = mock.MagicMock()
trex_traffic_gen._tg_process.start = mock.Mock()
@@ -335,15 +336,13 @@ class TestTrexTrafficGen(unittest.TestCase):
trex_traffic_gen.ssh_helper = mock.MagicMock()
trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
trex_traffic_gen.setup_helper.setup_vnf_environment = mock.MagicMock()
+ self.assertIsNone(trex_traffic_gen.instantiate(self.SCENARIO_CFG,
+ self.CONTEXT_CFG))
- self.assertIsNone(trex_traffic_gen.instantiate(self.SCENARIO_CFG, self.CONTEXT_CFG))
-
- @mock.patch(SSH_HELPER)
- def test_instantiate_error(self, ssh):
- mock_ssh(ssh, exec_result=(1, "", ""))
-
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server', return_value='fake_context')
+ def test_instantiate_error(self, *args):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
trex_traffic_gen._start_server = mock.Mock(return_value=0)
trex_traffic_gen._tg_process = mock.MagicMock()
trex_traffic_gen._tg_process.start = mock.Mock()
@@ -351,113 +350,105 @@ class TestTrexTrafficGen(unittest.TestCase):
trex_traffic_gen.ssh_helper = mock.MagicMock()
trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
trex_traffic_gen.setup_helper.setup_vnf_environment = mock.MagicMock()
- self.assertIsNone(trex_traffic_gen.instantiate(self.SCENARIO_CFG, self.CONTEXT_CFG))
+ self.assertIsNone(trex_traffic_gen.instantiate(self.SCENARIO_CFG,
+ self.CONTEXT_CFG))
- @mock.patch(SSH_HELPER)
- def test__start_server(self, ssh):
- mock_ssh(ssh)
+ def test__start_server(self):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
trex_traffic_gen.ssh_helper = mock.MagicMock()
trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
trex_traffic_gen.scenario_helper.scenario_cfg = {}
self.assertIsNone(trex_traffic_gen._start_server())
- @mock.patch(SSH_HELPER)
- def test__start_server_multiple_queues(self, ssh):
- mock_ssh(ssh)
+ def test__start_server_multiple_queues(self):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
trex_traffic_gen.ssh_helper = mock.MagicMock()
trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
- trex_traffic_gen.scenario_helper.scenario_cfg = {"options": {NAME: {"queues_per_port": 2}}}
+ trex_traffic_gen.scenario_helper.scenario_cfg = {
+ "options": {NAME: {"queues_per_port": 2}}}
self.assertIsNone(trex_traffic_gen._start_server())
- @mock.patch(SSH_HELPER)
- def test__traffic_runner(self, ssh):
- mock_ssh(ssh)
-
- mock_traffic_profile = mock.Mock(autospec=TrafficProfile)
+ def test__traffic_runner(self):
+ mock_traffic_profile = mock.Mock(autospec=tp_base.TrafficProfile)
mock_traffic_profile.get_traffic_definition.return_value = "64"
mock_traffic_profile.execute_traffic.return_value = "64"
mock_traffic_profile.params = self.TRAFFIC_PROFILE
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- self.sut = TrexTrafficGen(NAME, vnfd)
+ self.sut = tg_trex.TrexTrafficGen(NAME, vnfd)
self.sut.ssh_helper = mock.Mock()
self.sut.ssh_helper.run = mock.Mock()
- self.sut._connect_client = mock.Mock(autospec=STLClient)
+ self.sut._connect_client = mock.Mock()
self.sut._connect_client.get_stats = mock.Mock(return_value="0")
self.sut.resource_helper.RUN_DURATION = 0
self.sut.resource_helper.QUEUE_WAIT_TIME = 0
- # must generate cfg before we can run traffic so Trex port mapping is created
+ # must generate cfg before we can run traffic so Trex port mapping is
+ # created
self.sut.resource_helper.generate_cfg()
- self.sut._traffic_runner(mock_traffic_profile)
+ with mock.patch.object(self.sut.resource_helper, 'run_traffic'):
+ self.sut._traffic_runner(mock_traffic_profile)
- @mock.patch(SSH_HELPER)
- def test__generate_trex_cfg(self, ssh):
- mock_ssh(ssh)
+ def test__generate_trex_cfg(self):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
self.assertIsNone(trex_traffic_gen.resource_helper.generate_cfg())
- @mock.patch(SSH_HELPER)
- def test_build_ports_reversed_pci_ordering(self, ssh):
- mock_ssh(ssh)
+ def test_build_ports_reversed_pci_ordering(self):
vnfd = copy.deepcopy(self.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
vnfd['vdu'][0]['external-interface'] = [
{'virtual-interface':
- {'dst_mac': '00:00:00:00:00:04',
- 'vpci': '0000:05:00.0',
- 'local_ip': '152.16.100.19',
- 'type': 'PCI-PASSTHROUGH',
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 2,
- 'bandwidth': '10 Gbps',
- 'driver': "i40e",
- 'dst_ip': '152.16.100.20',
- 'local_iface_name': 'xe0',
- 'vld_id': 'downlink_0',
- 'ifname': 'xe0',
- 'local_mac': '00:00:00:00:00:02'},
+ {'dst_mac': '00:00:00:00:00:04',
+ 'vpci': '0000:05:00.0',
+ 'local_ip': '152.16.100.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 2,
+ 'bandwidth': '10 Gbps',
+ 'driver': "i40e",
+ 'dst_ip': '152.16.100.20',
+ 'local_iface_name': 'xe0',
+ 'vld_id': 'downlink_0',
+ 'ifname': 'xe0',
+ 'local_mac': '00:00:00:00:00:02'},
'vnfd-connection-point-ref': 'xe0',
'name': 'xe0'},
{'virtual-interface':
- {'dst_mac': '00:00:00:00:00:03',
- 'vpci': '0000:04:00.0',
- 'local_ip': '152.16.40.19',
- 'type': 'PCI-PASSTHROUGH',
- 'driver': "i40e",
- 'netmask': '255.255.255.0',
- 'dpdk_port_num': 0,
- 'bandwidth': '10 Gbps',
- 'dst_ip': '152.16.40.20',
- 'local_iface_name': 'xe1',
- 'vld_id': 'uplink_0',
- 'ifname': 'xe1',
- 'local_mac': '00:00:00:00:00:01'},
+ {'dst_mac': '00:00:00:00:00:03',
+ 'vpci': '0000:04:00.0',
+ 'local_ip': '152.16.40.19',
+ 'type': 'PCI-PASSTHROUGH',
+ 'driver': "i40e",
+ 'netmask': '255.255.255.0',
+ 'dpdk_port_num': 0,
+ 'bandwidth': '10 Gbps',
+ 'dst_ip': '152.16.40.20',
+ 'local_iface_name': 'xe1',
+ 'vld_id': 'uplink_0',
+ 'ifname': 'xe1',
+ 'local_mac': '00:00:00:00:00:01'},
'vnfd-connection-point-ref': 'xe1',
'name': 'xe1'}]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
trex_traffic_gen.resource_helper.generate_cfg()
trex_traffic_gen.resource_helper._build_ports()
- self.assertEqual(sorted(trex_traffic_gen.resource_helper.all_ports), [0, 1])
+ self.assertEqual(sorted(trex_traffic_gen.resource_helper.all_ports),
+ [0, 1])
# there is a gap in ordering
- self.assertEqual(dict(trex_traffic_gen.resource_helper.dpdk_to_trex_port_map),
- {0: 0, 2: 1})
+ self.assertEqual(
+ {0: 0, 2: 1},
+ dict(trex_traffic_gen.resource_helper.dpdk_to_trex_port_map))
- @mock.patch(SSH_HELPER)
- def test_run_traffic(self, ssh):
- mock_ssh(ssh)
-
- mock_traffic_profile = mock.Mock(autospec=TrafficProfile)
+ def test_run_traffic(self):
+ mock_traffic_profile = mock.Mock(autospec=tp_base.TrafficProfile)
mock_traffic_profile.get_traffic_definition.return_value = "64"
mock_traffic_profile.params = self.TRAFFIC_PROFILE
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- self.sut = TrexTrafficGen(NAME, vnfd)
+ self.sut = tg_trex.TrexTrafficGen(NAME, vnfd)
self.sut.ssh_helper = mock.Mock()
self.sut.ssh_helper.run = mock.Mock()
self.sut._traffic_runner = mock.Mock(return_value=0)
@@ -466,24 +457,60 @@ class TestTrexTrafficGen(unittest.TestCase):
self.sut._traffic_process.terminate()
self.assertIsNotNone(result)
- @mock.patch(SSH_HELPER)
- def test_terminate(self, ssh):
- mock_ssh(ssh)
+ def test_terminate(self):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
trex_traffic_gen.ssh_helper = mock.MagicMock()
trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
self.assertIsNone(trex_traffic_gen.terminate())
- @mock.patch(SSH_HELPER)
- def test__connect_client(self, ssh):
- mock_ssh(ssh)
+ def test__connect_client(self):
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- trex_traffic_gen = TrexTrafficGen(NAME, vnfd)
- client = mock.Mock(autospec=STLClient)
+ trex_traffic_gen = tg_trex.TrexTrafficGen(NAME, vnfd)
+ client = mock.Mock()
client.connect = mock.Mock(return_value=0)
self.assertIsNotNone(trex_traffic_gen.resource_helper._connect(client))
-if __name__ == '__main__':
- unittest.main()
+class TrexResourceHelperTestCase(unittest.TestCase):
+
+ def test__get_samples(self):
+ mock_setup_helper = mock.Mock()
+ trex_rh = tg_trex.TrexResourceHelper(mock_setup_helper)
+ trex_rh.vnfd_helper.interfaces = [
+ {'name': 'interface1'},
+ {'name': 'interface2'}]
+ stats = {
+ 10: {'rx_pps': 5, 'ipackets': 200},
+ 20: {'rx_pps': 10, 'ipackets': 300},
+ 'latency': {1: {'latency': 'latency_port_10_pg_id_1'},
+ 2: {'latency': 'latency_port_10_pg_id_2'},
+ 3: {'latency': 'latency_port_20_pg_id_3'},
+ 4: {'latency': 'latency_port_20_pg_id_4'}}
+ }
+ port_pg_id = rfc2544.PortPgIDMap()
+ port_pg_id.add_port(10)
+ port_pg_id.increase_pg_id()
+ port_pg_id.increase_pg_id()
+ port_pg_id.add_port(20)
+ port_pg_id.increase_pg_id()
+ port_pg_id.increase_pg_id()
+
+ with mock.patch.object(trex_rh, 'get_stats') as mock_get_stats, \
+ mock.patch.object(trex_rh.vnfd_helper, 'port_num') as \
+ mock_port_num:
+ mock_get_stats.return_value = stats
+ mock_port_num.side_effect = [10, 20]
+ output = trex_rh._get_samples([10, 20], port_pg_id=port_pg_id)
+
+ interface = output['interface1']
+ self.assertEqual(5.0, interface['rx_throughput_fps'])
+ self.assertEqual(200, interface['in_packets'])
+ self.assertEqual('latency_port_10_pg_id_1', interface['latency'][1])
+ self.assertEqual('latency_port_10_pg_id_2', interface['latency'][2])
+
+ interface = output['interface2']
+ self.assertEqual(10.0, interface['rx_throughput_fps'])
+ self.assertEqual(300, interface['in_packets'])
+ self.assertEqual('latency_port_20_pg_id_3', interface['latency'][3])
+ self.assertEqual('latency_port_20_pg_id_4', interface['latency'][4])
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_trex_vpp.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_trex_vpp.py
new file mode 100644
index 000000000..ef1ae1182
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_trex_vpp.py
@@ -0,0 +1,1130 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+from multiprocessing import Process
+
+import mock
+from trex_stl_lib.trex_stl_exceptions import STLError
+
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.traffic_profile import base as tp_base
+from yardstick.network_services.traffic_profile import rfc2544
+from yardstick.network_services.vnf_generic.vnf import base, sample_vnf, \
+ tg_trex_vpp
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import \
+ mock_ssh
+
+
+class TestTrexVppResourceHelper(unittest.TestCase):
+ TRAFFIC_PROFILE = {
+ "schema": "isb:traffic_profile:0.1",
+ "name": "fixed",
+ "description": "Fixed traffic profile to run UDP traffic",
+ "traffic_profile": {
+ "traffic_type": "FixedTraffic",
+ "frame_rate": 100, # pps
+ "flow_number": 10,
+ "frame_size": 64
+ },
+ }
+
+ def test_fmt_latency(self):
+ mock_setup_helper = mock.Mock()
+ vpp_rfc = tg_trex_vpp.TrexVppResourceHelper(mock_setup_helper)
+ self.assertEqual('10/90/489', vpp_rfc.fmt_latency(10, 90, 489))
+
+ def test_fmt_latency_error(self):
+ mock_setup_helper = mock.Mock()
+ vpp_rfc = tg_trex_vpp.TrexVppResourceHelper(mock_setup_helper)
+ self.assertEqual('-1/-1/-1', vpp_rfc.fmt_latency('err', 'err', 'err'))
+
+ def test_generate_samples(self):
+ stats = {
+ 0: {
+ "ibytes": 55549120,
+ "ierrors": 0,
+ "ipackets": 867955,
+ "obytes": 55549696,
+ "oerrors": 0,
+ "opackets": 867964,
+ "rx_bps": 104339032.0,
+ "rx_bps_L1": 136944984.0,
+ "rx_pps": 203787.2,
+ "rx_util": 1.36944984,
+ "tx_bps": 134126008.0,
+ "tx_bps_L1": 176040392.0,
+ "tx_pps": 261964.9,
+ "tx_util": 1.7604039200000001
+ },
+ 1: {
+ "ibytes": 55549696,
+ "ierrors": 0,
+ "ipackets": 867964,
+ "obytes": 55549120,
+ "oerrors": 0,
+ "opackets": 867955,
+ "rx_bps": 134119648.0,
+ "rx_bps_L1": 176032032.0,
+ "rx_pps": 261952.4,
+ "rx_util": 1.76032032,
+ "tx_bps": 104338192.0,
+ "tx_bps_L1": 136943872.0,
+ "tx_pps": 203785.5,
+ "tx_util": 1.36943872
+ },
+ "flow_stats": {
+ 1: {
+ "rx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "rx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "rx_bytes": {
+ "0": 6400,
+ "1": 0,
+ "total": 6400
+ },
+ "rx_pkts": {
+ "0": 100,
+ "1": 0,
+ "total": 100
+ },
+ "rx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "tx_bytes": {
+ "0": 0,
+ "1": 6400,
+ "total": 6400
+ },
+ "tx_pkts": {
+ "0": 0,
+ "1": 100,
+ "total": 100
+ },
+ "tx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ }
+ },
+ 2: {
+ "rx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "rx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "rx_bytes": {
+ "0": 0,
+ "1": 6464,
+ "total": 6464
+ },
+ "rx_pkts": {
+ "0": 0,
+ "1": 101,
+ "total": 101
+ },
+ "rx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "tx_bytes": {
+ "0": 6464,
+ "1": 0,
+ "total": 6464
+ },
+ "tx_pkts": {
+ "0": 101,
+ "1": 0,
+ "total": 101
+ },
+ "tx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ }
+ },
+ "global": {
+ "rx_err": {
+ "0": 0,
+ "1": 0
+ },
+ "tx_err": {
+ "0": 0,
+ "1": 0
+ }
+ }
+ },
+ "global": {
+ "bw_per_core": 45.6,
+ "cpu_util": 0.1494,
+ "queue_full": 0,
+ "rx_bps": 238458672.0,
+ "rx_cpu_util": 4.751e-05,
+ "rx_drop_bps": 0.0,
+ "rx_pps": 465739.6,
+ "tx_bps": 238464208.0,
+ "tx_pps": 465750.4
+ },
+ "latency": {
+ 1: {
+ "err_cntrs": {
+ "dropped": 0,
+ "dup": 0,
+ "out_of_order": 0,
+ "seq_too_high": 0,
+ "seq_too_low": 0
+ },
+ "latency": {
+ "average": 63.375,
+ "histogram": {
+ "20": 1,
+ "30": 18,
+ "40": 12,
+ "50": 10,
+ "60": 12,
+ "70": 11,
+ "80": 6,
+ "90": 10,
+ "100": 20
+ },
+ "jitter": 23,
+ "last_max": 122,
+ "total_max": 123,
+ "total_min": 20
+ }
+ },
+ 2: {
+ "err_cntrs": {
+ "dropped": 0,
+ "dup": 0,
+ "out_of_order": 0,
+ "seq_too_high": 0,
+ "seq_too_low": 0
+ },
+ "latency": {
+ "average": 74,
+ "histogram": {
+ "60": 20,
+ "70": 10,
+ "80": 3,
+ "90": 4,
+ "100": 64
+ },
+ "jitter": 6,
+ "last_max": 83,
+ "total_max": 135,
+ "total_min": 60
+ }
+ },
+ "global": {
+ "bad_hdr": 0,
+ "old_flow": 0
+ }
+ },
+ "total": {
+ "ibytes": 111098816,
+ "ierrors": 0,
+ "ipackets": 1735919,
+ "obytes": 111098816,
+ "oerrors": 0,
+ "opackets": 1735919,
+ "rx_bps": 238458680.0,
+ "rx_bps_L1": 312977016.0,
+ "rx_pps": 465739.6,
+ "rx_util": 3.1297701599999996,
+ "tx_bps": 238464200.0,
+ "tx_bps_L1": 312984264.0,
+ "tx_pps": 465750.4,
+ "tx_util": 3.12984264
+ }
+ }
+ expected = {
+ "xe0": {
+ "in_packets": 867955,
+ "latency": {
+ 2: {
+ "avg_latency": 74.0,
+ "max_latency": 135.0,
+ "min_latency": 60.0
+ }
+ },
+ "out_packets": 867964,
+ "rx_throughput_bps": 104339032.0,
+ "rx_throughput_fps": 203787.2,
+ "tx_throughput_bps": 134126008.0,
+ "tx_throughput_fps": 261964.9
+ },
+ "xe1": {
+ "in_packets": 867964,
+ "latency": {
+ 1: {
+ "avg_latency": 63.375,
+ "max_latency": 123.0,
+ "min_latency": 20.0
+ }
+ },
+ "out_packets": 867955,
+ "rx_throughput_bps": 134119648.0,
+ "rx_throughput_fps": 261952.4,
+ "tx_throughput_bps": 104338192.0,
+ "tx_throughput_fps": 203785.5
+ }
+ }
+ mock_setup_helper = mock.Mock()
+ vpp_rfc = tg_trex_vpp.TrexVppResourceHelper(mock_setup_helper)
+ vpp_rfc.vnfd_helper = base.VnfdHelper(TestTrexTrafficGenVpp.VNFD_0)
+ port_pg_id = rfc2544.PortPgIDMap()
+ port_pg_id.add_port(1)
+ port_pg_id.increase_pg_id()
+ port_pg_id.add_port(0)
+ port_pg_id.increase_pg_id()
+ self.assertEqual(expected,
+ vpp_rfc.generate_samples(stats, [0, 1], port_pg_id,
+ True))
+
+ def test_generate_samples_error(self):
+ stats = {
+ 0: {
+ "ibytes": 55549120,
+ "ierrors": 0,
+ "ipackets": 867955,
+ "obytes": 55549696,
+ "oerrors": 0,
+ "opackets": 867964,
+ "rx_bps": 104339032.0,
+ "rx_bps_L1": 136944984.0,
+ "rx_pps": 203787.2,
+ "rx_util": 1.36944984,
+ "tx_bps": 134126008.0,
+ "tx_bps_L1": 176040392.0,
+ "tx_pps": 261964.9,
+ "tx_util": 1.7604039200000001
+ },
+ 1: {
+ "ibytes": 55549696,
+ "ierrors": 0,
+ "ipackets": 867964,
+ "obytes": 55549120,
+ "oerrors": 0,
+ "opackets": 867955,
+ "rx_bps": 134119648.0,
+ "rx_bps_L1": 176032032.0,
+ "rx_pps": 261952.4,
+ "rx_util": 1.76032032,
+ "tx_bps": 104338192.0,
+ "tx_bps_L1": 136943872.0,
+ "tx_pps": 203785.5,
+ "tx_util": 1.36943872
+ },
+ "flow_stats": {
+ 1: {
+ "rx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "rx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "rx_bytes": {
+ "0": 6400,
+ "1": 0,
+ "total": 6400
+ },
+ "rx_pkts": {
+ "0": 100,
+ "1": 0,
+ "total": 100
+ },
+ "rx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "tx_bytes": {
+ "0": 0,
+ "1": 6400,
+ "total": 6400
+ },
+ "tx_pkts": {
+ "0": 0,
+ "1": 100,
+ "total": 100
+ },
+ "tx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ }
+ },
+ 2: {
+ "rx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "rx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "rx_bytes": {
+ "0": 0,
+ "1": 6464,
+ "total": 6464
+ },
+ "rx_pkts": {
+ "0": 0,
+ "1": 101,
+ "total": 101
+ },
+ "rx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "tx_bytes": {
+ "0": 6464,
+ "1": 0,
+ "total": 6464
+ },
+ "tx_pkts": {
+ "0": 101,
+ "1": 0,
+ "total": 101
+ },
+ "tx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ }
+ },
+ "global": {
+ "rx_err": {
+ "0": 0,
+ "1": 0
+ },
+ "tx_err": {
+ "0": 0,
+ "1": 0
+ }
+ }
+ },
+ "global": {
+ "bw_per_core": 45.6,
+ "cpu_util": 0.1494,
+ "queue_full": 0,
+ "rx_bps": 238458672.0,
+ "rx_cpu_util": 4.751e-05,
+ "rx_drop_bps": 0.0,
+ "rx_pps": 465739.6,
+ "tx_bps": 238464208.0,
+ "tx_pps": 465750.4
+ },
+ "latency": {
+ 1: {
+ "err_cntrs": {
+ "dropped": 0,
+ "dup": 0,
+ "out_of_order": 0,
+ "seq_too_high": 0,
+ "seq_too_low": 0
+ },
+ "latency": {
+ "average": "err",
+ "histogram": {
+ "20": 1,
+ "30": 18,
+ "40": 12,
+ "50": 10,
+ "60": 12,
+ "70": 11,
+ "80": 6,
+ "90": 10,
+ "100": 20
+ },
+ "jitter": 23,
+ "last_max": 122,
+ "total_max": "err",
+ "total_min": "err"
+ }
+ },
+ 2: {
+ "err_cntrs": {
+ "dropped": 0,
+ "dup": 0,
+ "out_of_order": 0,
+ "seq_too_high": 0,
+ "seq_too_low": 0
+ },
+ "latency": {
+ "average": 74,
+ "histogram": {
+ "60": 20,
+ "70": 10,
+ "80": 3,
+ "90": 4,
+ "100": 64
+ },
+ "jitter": 6,
+ "last_max": 83,
+ "total_max": 135,
+ "total_min": 60
+ }
+ },
+ "global": {
+ "bad_hdr": 0,
+ "old_flow": 0
+ }
+ },
+ "total": {
+ "ibytes": 111098816,
+ "ierrors": 0,
+ "ipackets": 1735919,
+ "obytes": 111098816,
+ "oerrors": 0,
+ "opackets": 1735919,
+ "rx_bps": 238458680.0,
+ "rx_bps_L1": 312977016.0,
+ "rx_pps": 465739.6,
+ "rx_util": 3.1297701599999996,
+ "tx_bps": 238464200.0,
+ "tx_bps_L1": 312984264.0,
+ "tx_pps": 465750.4,
+ "tx_util": 3.12984264
+ }
+ }
+ expected = {'xe0': {'in_packets': 867955,
+ 'latency': {2: {'avg_latency': 74.0,
+ 'max_latency': 135.0,
+ 'min_latency': 60.0}},
+ 'out_packets': 867964,
+ 'rx_throughput_bps': 104339032.0,
+ 'rx_throughput_fps': 203787.2,
+ 'tx_throughput_bps': 134126008.0,
+ 'tx_throughput_fps': 261964.9},
+ 'xe1': {'in_packets': 867964,
+ 'latency': {1: {'avg_latency': -1.0,
+ 'max_latency': -1.0,
+ 'min_latency': -1.0}},
+ 'out_packets': 867955,
+ 'rx_throughput_bps': 134119648.0,
+ 'rx_throughput_fps': 261952.4,
+ 'tx_throughput_bps': 104338192.0,
+ 'tx_throughput_fps': 203785.5}}
+ mock_setup_helper = mock.Mock()
+ vpp_rfc = tg_trex_vpp.TrexVppResourceHelper(mock_setup_helper)
+ vpp_rfc.vnfd_helper = base.VnfdHelper(TestTrexTrafficGenVpp.VNFD_0)
+ vpp_rfc.get_stats = mock.Mock()
+ vpp_rfc.get_stats.return_value = stats
+ port_pg_id = rfc2544.PortPgIDMap()
+ port_pg_id.add_port(1)
+ port_pg_id.increase_pg_id()
+ port_pg_id.add_port(0)
+ port_pg_id.increase_pg_id()
+ self.assertEqual(expected,
+ vpp_rfc.generate_samples(stats=None, ports=[0, 1],
+ port_pg_id=port_pg_id,
+ latency=True))
+
+ def test__run_traffic_once(self):
+ mock_setup_helper = mock.Mock()
+ mock_traffic_profile = mock.Mock()
+ vpp_rfc = tg_trex_vpp.TrexVppResourceHelper(mock_setup_helper)
+ vpp_rfc.TRANSIENT_PERIOD = 0
+ vpp_rfc.rfc2544_helper = mock.Mock()
+
+ self.assertTrue(vpp_rfc._run_traffic_once(mock_traffic_profile))
+ mock_traffic_profile.execute_traffic.assert_called_once_with(vpp_rfc)
+
+ def test_run_traffic(self):
+ mock_traffic_profile = mock.Mock(autospec=tp_base.TrafficProfile)
+ mock_traffic_profile.get_traffic_definition.return_value = "64"
+ mock_traffic_profile.params = self.TRAFFIC_PROFILE
+ mock_setup_helper = mock.Mock()
+ vpp_rfc = tg_trex_vpp.TrexVppResourceHelper(mock_setup_helper)
+ vpp_rfc.ssh_helper = mock.Mock()
+ vpp_rfc.ssh_helper.run = mock.Mock()
+ vpp_rfc._traffic_runner = mock.Mock(return_value=0)
+ vpp_rfc._build_ports = mock.Mock()
+ vpp_rfc._connect = mock.Mock()
+ vpp_rfc.run_traffic(mock_traffic_profile)
+
+ def test_send_traffic_on_tg(self):
+ stats = {
+ 0: {
+ "ibytes": 55549120,
+ "ierrors": 0,
+ "ipackets": 867955,
+ "obytes": 55549696,
+ "oerrors": 0,
+ "opackets": 867964,
+ "rx_bps": 104339032.0,
+ "rx_bps_L1": 136944984.0,
+ "rx_pps": 203787.2,
+ "rx_util": 1.36944984,
+ "tx_bps": 134126008.0,
+ "tx_bps_L1": 176040392.0,
+ "tx_pps": 261964.9,
+ "tx_util": 1.7604039200000001
+ },
+ 1: {
+ "ibytes": 55549696,
+ "ierrors": 0,
+ "ipackets": 867964,
+ "obytes": 55549120,
+ "oerrors": 0,
+ "opackets": 867955,
+ "rx_bps": 134119648.0,
+ "rx_bps_L1": 176032032.0,
+ "rx_pps": 261952.4,
+ "rx_util": 1.76032032,
+ "tx_bps": 104338192.0,
+ "tx_bps_L1": 136943872.0,
+ "tx_pps": 203785.5,
+ "tx_util": 1.36943872
+ },
+ "flow_stats": {
+ 1: {
+ "rx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "rx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "rx_bytes": {
+ "0": 6400,
+ "1": 0,
+ "total": 6400
+ },
+ "rx_pkts": {
+ "0": 100,
+ "1": 0,
+ "total": 100
+ },
+ "rx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "tx_bytes": {
+ "0": 0,
+ "1": 6400,
+ "total": 6400
+ },
+ "tx_pkts": {
+ "0": 0,
+ "1": 100,
+ "total": 100
+ },
+ "tx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ }
+ },
+ 2: {
+ "rx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "rx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "rx_bytes": {
+ "0": 0,
+ "1": 6464,
+ "total": 6464
+ },
+ "rx_pkts": {
+ "0": 0,
+ "1": 101,
+ "total": 101
+ },
+ "rx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ },
+ "tx_bps_l1": {
+ "0": 0.0,
+ "1": 0.0,
+ "total": 0.0
+ },
+ "tx_bytes": {
+ "0": 6464,
+ "1": 0,
+ "total": 6464
+ },
+ "tx_pkts": {
+ "0": 101,
+ "1": 0,
+ "total": 101
+ },
+ "tx_pps": {
+ "0": 0,
+ "1": 0,
+ "total": 0
+ }
+ },
+ "global": {
+ "rx_err": {
+ "0": 0,
+ "1": 0
+ },
+ "tx_err": {
+ "0": 0,
+ "1": 0
+ }
+ }
+ },
+ "global": {
+ "bw_per_core": 45.6,
+ "cpu_util": 0.1494,
+ "queue_full": 0,
+ "rx_bps": 238458672.0,
+ "rx_cpu_util": 4.751e-05,
+ "rx_drop_bps": 0.0,
+ "rx_pps": 465739.6,
+ "tx_bps": 238464208.0,
+ "tx_pps": 465750.4
+ },
+ "latency": {
+ 1: {
+ "err_cntrs": {
+ "dropped": 0,
+ "dup": 0,
+ "out_of_order": 0,
+ "seq_too_high": 0,
+ "seq_too_low": 0
+ },
+ "latency": {
+ "average": 63.375,
+ "histogram": {
+ "20": 1,
+ "30": 18,
+ "40": 12,
+ "50": 10,
+ "60": 12,
+ "70": 11,
+ "80": 6,
+ "90": 10,
+ "100": 20
+ },
+ "jitter": 23,
+ "last_max": 122,
+ "total_max": 123,
+ "total_min": 20
+ }
+ },
+ 2: {
+ "err_cntrs": {
+ "dropped": 0,
+ "dup": 0,
+ "out_of_order": 0,
+ "seq_too_high": 0,
+ "seq_too_low": 0
+ },
+ "latency": {
+ "average": 74,
+ "histogram": {
+ "60": 20,
+ "70": 10,
+ "80": 3,
+ "90": 4,
+ "100": 64
+ },
+ "jitter": 6,
+ "last_max": 83,
+ "total_max": 135,
+ "total_min": 60
+ }
+ },
+ "global": {
+ "bad_hdr": 0,
+ "old_flow": 0
+ }
+ },
+ "total": {
+ "ibytes": 111098816,
+ "ierrors": 0,
+ "ipackets": 1735919,
+ "obytes": 111098816,
+ "oerrors": 0,
+ "opackets": 1735919,
+ "rx_bps": 238458680.0,
+ "rx_bps_L1": 312977016.0,
+ "rx_pps": 465739.6,
+ "rx_util": 3.1297701599999996,
+ "tx_bps": 238464200.0,
+ "tx_bps_L1": 312984264.0,
+ "tx_pps": 465750.4,
+ "tx_util": 3.12984264
+ }
+ }
+ mock_setup_helper = mock.Mock()
+ vpp_rfc = tg_trex_vpp.TrexVppResourceHelper(mock_setup_helper)
+ vpp_rfc.vnfd_helper = base.VnfdHelper(TestTrexTrafficGenVpp.VNFD_0)
+ vpp_rfc.client = mock.Mock()
+ vpp_rfc.client.get_warnings.return_value = 'get_warnings'
+ vpp_rfc.client.get_stats.return_value = stats
+ port_pg_id = rfc2544.PortPgIDMap()
+ port_pg_id.add_port(1)
+ port_pg_id.increase_pg_id()
+ port_pg_id.add_port(0)
+ port_pg_id.increase_pg_id()
+ self.assertEqual(stats,
+ vpp_rfc.send_traffic_on_tg([0, 1], port_pg_id, 30,
+ 10000, True))
+
+ def test_send_traffic_on_tg_error(self):
+ mock_setup_helper = mock.Mock()
+ vpp_rfc = tg_trex_vpp.TrexVppResourceHelper(mock_setup_helper)
+ vpp_rfc.vnfd_helper = base.VnfdHelper(TestTrexTrafficGenVpp.VNFD_0)
+ vpp_rfc.client = mock.Mock()
+ vpp_rfc.client.get_warnings.return_value = 'get_warnings'
+ vpp_rfc.client.get_stats.side_effect = STLError('get_stats')
+ vpp_rfc.client.wait_on_traffic.side_effect = STLError(
+ 'wait_on_traffic')
+ port_pg_id = rfc2544.PortPgIDMap()
+ port_pg_id.add_port(1)
+ port_pg_id.increase_pg_id()
+ port_pg_id.add_port(0)
+ port_pg_id.increase_pg_id()
+ # with self.assertRaises(RuntimeError) as raised:
+ vpp_rfc.send_traffic_on_tg([0, 1], port_pg_id, 30, 10000, True)
+ # self.assertIn('TRex stateless runtime error', str(raised.exception))
+
+
+class TestTrexTrafficGenVpp(unittest.TestCase):
+ VNFD_0 = {
+ "benchmark": {
+ "kpi": [
+ "rx_throughput_fps",
+ "tx_throughput_fps",
+ "tx_throughput_mbps",
+ "rx_throughput_mbps",
+ "in_packets",
+ "out_packets",
+ "min_latency",
+ "max_latency",
+ "avg_latency"
+ ]
+ },
+ "description": "TRex stateless traffic verifier",
+ "id": "TrexTrafficGenVpp",
+ "mgmt-interface": {
+ "ip": "10.10.10.10",
+ "password": "r00t",
+ "user": "root",
+ "vdu-id": "trexgen-baremetal"
+ },
+ "name": "trexverifier",
+ "short-name": "trexverifier",
+ "vdu": [
+ {
+ "description": "TRex stateless traffic verifier",
+ "external-interface": [
+ {
+ "name": "xe0",
+ "virtual-interface": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.2",
+ "dst_mac": "90:e2:ba:7c:41:a8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.1",
+ "local_mac": "90:e2:ba:7c:30:e8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_intf": {
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.2",
+ "local_mac": "90:e2:ba:7c:41:a8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe0",
+ "peer_name": "tg__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:ff:06.0"
+ },
+ "peer_name": "vnf__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:81:00.0"
+ },
+ "vnfd-connection-point-ref": "xe0"
+ },
+ {
+ "name": "xe1",
+ "virtual-interface": {
+ "dpdk_port_num": 1,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.101.2",
+ "dst_mac": "90:e2:ba:7c:41:a9",
+ "ifname": "xe1",
+ "local_ip": "192.168.101.1",
+ "local_mac": "90:e2:ba:7c:30:e9",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_intf": {
+ "driver": "igb_uio",
+ "dst_ip": "192.168.101.1",
+ "dst_mac": "90:e2:ba:7c:30:e9",
+ "ifname": "xe0",
+ "local_ip": "192.168.101.2",
+ "local_mac": "90:e2:ba:7c:41:a9",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_name": "tg__0",
+ "vld_id": "downlink_0",
+ "vpci": "0000:ff:06.0"
+ },
+ "peer_name": "vnf__1",
+ "vld_id": "downlink_0",
+ "vpci": "0000:81:00.1"
+ },
+ "vnfd-connection-point-ref": "xe1"
+ }
+ ],
+ "id": "trexgen-baremetal",
+ "name": "trexgen-baremetal"
+ }
+ ]
+ }
+
+ VNFD = {
+ 'vnfd:vnfd-catalog': {
+ 'vnfd': [
+ VNFD_0,
+ ],
+ },
+ }
+
+ def setUp(self):
+ self._mock_ssh_helper = mock.patch.object(sample_vnf, 'VnfSshHelper')
+ self.mock_ssh_helper = self._mock_ssh_helper.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_ssh_helper.stop()
+
+ def test___init__(self):
+ trex_traffic_gen = tg_trex_vpp.TrexTrafficGenVpp(
+ 'tg0', self.VNFD_0)
+ self.assertIsNotNone(
+ trex_traffic_gen.resource_helper._terminated.value)
+
+ def test__check_status(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ trex_traffic_gen = tg_trex_vpp.TrexTrafficGenVpp('tg0', vnfd)
+ trex_traffic_gen.ssh_helper = mock.MagicMock()
+ trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
+ trex_traffic_gen.resource_helper.ssh_helper.execute.return_value = 0, '', ''
+ trex_traffic_gen.scenario_helper.scenario_cfg = {}
+ self.assertEqual(0, trex_traffic_gen._check_status())
+
+ def test__start_server(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ trex_traffic_gen = tg_trex_vpp.TrexTrafficGenVpp('tg0', vnfd)
+ trex_traffic_gen.ssh_helper = mock.MagicMock()
+ trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
+ trex_traffic_gen.scenario_helper.scenario_cfg = {}
+ self.assertIsNone(trex_traffic_gen._start_server())
+
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server',
+ return_value='mock_node')
+ def test_collect_kpi(self, *args):
+ trex_traffic_gen = tg_trex_vpp.TrexTrafficGenVpp(
+ 'tg0', self.VNFD_0)
+ trex_traffic_gen.scenario_helper.scenario_cfg = {
+ 'nodes': {trex_traffic_gen.name: "mock"}
+ }
+ expected = {
+ 'physical_node': 'mock_node',
+ 'collect_stats': {},
+ }
+ self.assertEqual(trex_traffic_gen.collect_kpi(), expected)
+
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server',
+ return_value='fake_context')
+ def test_instantiate(self, *args):
+ trex_traffic_gen = tg_trex_vpp.TrexTrafficGenVpp(
+ 'tg0', self.VNFD_0)
+ trex_traffic_gen._start_server = mock.Mock(return_value=0)
+ trex_traffic_gen.resource_helper = mock.MagicMock()
+ trex_traffic_gen.setup_helper.setup_vnf_environment = mock.MagicMock()
+
+ scenario_cfg = {
+ "tc": "tc_baremetal_rfc2544_ipv4_1flow_64B",
+ "topology": 'nsb_test_case.yaml',
+ 'options': {
+ 'packetsize': 64,
+ 'traffic_type': 4,
+ 'rfc2544': {
+ 'allowed_drop_rate': '0.8 - 1',
+ },
+ 'vnf__0': {
+ 'rules': 'acl_1rule.yaml',
+ 'vnf_config': {
+ 'lb_config': 'SW',
+ 'lb_count': 1,
+ 'worker_config': '1C/1T',
+ 'worker_threads': 1
+ },
+ },
+ },
+ }
+ tg_trex_vpp.WAIT_TIME = 3
+ scenario_cfg.update({"nodes": {"tg0": {}, "vnf0": {}}})
+ self.assertIsNone(trex_traffic_gen.instantiate(scenario_cfg, {}))
+
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server',
+ return_value='fake_context')
+ def test_instantiate_error(self, *args):
+ trex_traffic_gen = tg_trex_vpp.TrexTrafficGenVpp(
+ 'tg0', self.VNFD_0)
+ trex_traffic_gen.resource_helper = mock.MagicMock()
+ trex_traffic_gen.setup_helper.setup_vnf_environment = mock.MagicMock()
+ scenario_cfg = {
+ "tc": "tc_baremetal_rfc2544_ipv4_1flow_64B",
+ "nodes": {
+ "tg0": {},
+ "vnf0": {}
+ },
+ "topology": 'nsb_test_case.yaml',
+ 'options': {
+ 'packetsize': 64,
+ 'traffic_type': 4,
+ 'rfc2544': {
+ 'allowed_drop_rate': '0.8 - 1',
+ },
+ 'vnf__0': {
+ 'rules': 'acl_1rule.yaml',
+ 'vnf_config': {
+ 'lb_config': 'SW',
+ 'lb_count': 1,
+ 'worker_config': '1C/1T',
+ 'worker_threads': 1,
+ },
+ },
+ },
+ }
+ trex_traffic_gen.instantiate(scenario_cfg, {})
+
+ @mock.patch(
+ 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper')
+ def test_wait_for_instantiate(self, ssh, *args):
+ mock_ssh(ssh)
+
+ mock_process = mock.Mock(autospec=Process)
+ mock_process.is_alive.return_value = True
+ mock_process.exitcode = 432
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ trex_traffic_gen = tg_trex_vpp.TrexTrafficGenVpp('tg0', vnfd)
+ trex_traffic_gen.ssh_helper = mock.MagicMock()
+ trex_traffic_gen.resource_helper.ssh_helper = mock.MagicMock()
+ trex_traffic_gen.resource_helper.ssh_helper.execute.return_value = 0, '', ''
+ trex_traffic_gen.scenario_helper.scenario_cfg = {}
+ trex_traffic_gen._tg_process = mock_process
+ self.assertEqual(432, trex_traffic_gen.wait_for_instantiate())
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_vcmts_pktgen.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_vcmts_pktgen.py
new file mode 100755
index 000000000..3b226d3f1
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_vcmts_pktgen.py
@@ -0,0 +1,652 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+import mock
+import socket
+import threading
+import time
+import os
+import copy
+
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
+from yardstick.network_services.vnf_generic.vnf import tg_vcmts_pktgen
+from yardstick.common import exceptions
+
+
+NAME = "tg__0"
+
+
+class TestPktgenHelper(unittest.TestCase):
+
+ def test___init__(self):
+ pktgen_helper = tg_vcmts_pktgen.PktgenHelper("localhost", 23000)
+ self.assertEqual(pktgen_helper.host, "localhost")
+ self.assertEqual(pktgen_helper.port, 23000)
+ self.assertFalse(pktgen_helper.connected)
+
+ def _run_fake_server(self):
+ server_sock = socket.socket()
+ server_sock.bind(('localhost', 23000))
+ server_sock.listen(0)
+ client_socket, _ = server_sock.accept()
+ client_socket.close()
+ server_sock.close()
+
+ def test__connect(self):
+ pktgen_helper = tg_vcmts_pktgen.PktgenHelper("localhost", 23000)
+ self.assertFalse(pktgen_helper._connect())
+ server_thread = threading.Thread(target=self._run_fake_server)
+ server_thread.start()
+ time.sleep(0.5)
+ self.assertTrue(pktgen_helper._connect())
+ pktgen_helper._sock.close()
+ server_thread.join()
+
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.tg_vcmts_pktgen.time')
+ def test_connect(self, *args):
+ pktgen_helper = tg_vcmts_pktgen.PktgenHelper("localhost", 23000)
+ pktgen_helper.connected = True
+ self.assertTrue(pktgen_helper.connect())
+ pktgen_helper.connected = False
+
+ pktgen_helper._connect = mock.MagicMock(return_value=True)
+ self.assertTrue(pktgen_helper.connect())
+ self.assertTrue(pktgen_helper.connected)
+
+ pktgen_helper = tg_vcmts_pktgen.PktgenHelper("localhost", 23000)
+ pktgen_helper._connect = mock.MagicMock(return_value=False)
+ self.assertFalse(pktgen_helper.connect())
+ self.assertFalse(pktgen_helper.connected)
+
+ def test_send_command(self):
+ pktgen_helper = tg_vcmts_pktgen.PktgenHelper("localhost", 23000)
+ self.assertFalse(pktgen_helper.send_command(""))
+
+ pktgen_helper.connected = True
+ pktgen_helper._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ self.assertFalse(pktgen_helper.send_command(""))
+
+ pktgen_helper._sock = mock.MagicMock()
+ self.assertTrue(pktgen_helper.send_command(""))
+
+
+class TestVcmtsPktgenSetupEnvHelper(unittest.TestCase):
+
+ PKTGEN_PARAMETERS = "export LUA_PATH=/vcmts/Pktgen.lua;"\
+ "export CMK_PROC_FS=/host/proc;"\
+ " /pktgen-config/setup.sh 0 4 18:02.0 "\
+ "18:02.1 18:02.2 18:02.3 00:00.0 00:00.0 "\
+ "00:00.0 00:00.0 imix1_100cms_1ofdm.pcap "\
+ "imix1_100cms_1ofdm.pcap imix1_100cms_1ofdm.pcap "\
+ "imix1_100cms_1ofdm.pcap imix1_100cms_1ofdm.pcap "\
+ "imix1_100cms_1ofdm.pcap imix1_100cms_1ofdm.pcap "\
+ "imix1_100cms_1ofdm.pcap"
+
+ OPTIONS = {
+ "pktgen_values": "/tmp/pktgen_values.yaml",
+ "tg__0": {
+ "pktgen_id": 0
+ },
+ "vcmts_influxdb_ip": "10.80.5.150",
+ "vcmts_influxdb_port": 8086,
+ "vcmtsd_values": "/tmp/vcmtsd_values.yaml",
+ "vnf__0": {
+ "sg_id": 0,
+ "stream_dir": "us"
+ },
+ "vnf__1": {
+ "sg_id": 0,
+ "stream_dir": "ds"
+ }
+ }
+
+ def setUp(self):
+ vnfd_helper = VnfdHelper(
+ TestVcmtsPktgen.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+
+ self.setup_helper = tg_vcmts_pktgen.VcmtsPktgenSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
+
+ def test_generate_pcap_filename(self):
+ pcap_file_name = self.setup_helper.generate_pcap_filename(\
+ TestVcmtsPktgen.PKTGEN_POD_VALUES[0]['ports'][0])
+ self.assertEquals(pcap_file_name, "imix1_100cms_1ofdm.pcap")
+
+ def test_find_port_cfg(self):
+ port_cfg = self.setup_helper.find_port_cfg(\
+ TestVcmtsPktgen.PKTGEN_POD_VALUES[0]['ports'], "port_0")
+ self.assertIsNotNone(port_cfg)
+
+ port_cfg = self.setup_helper.find_port_cfg(\
+ TestVcmtsPktgen.PKTGEN_POD_VALUES[0]['ports'], "port_8")
+ self.assertIsNone(port_cfg)
+
+ def test_build_pktgen_parameters(self):
+ parameters = self.setup_helper.build_pktgen_parameters(
+ TestVcmtsPktgen.PKTGEN_POD_VALUES[0])
+ self.assertEquals(parameters, self.PKTGEN_PARAMETERS)
+
+ def test_start_pktgen(self):
+ self.setup_helper.ssh_helper = mock.MagicMock()
+ self.setup_helper.start_pktgen(TestVcmtsPktgen.PKTGEN_POD_VALUES[0])
+ self.setup_helper.ssh_helper.send_command.assert_called_with(
+ self.PKTGEN_PARAMETERS)
+
+ def test_setup_vnf_environment(self):
+ self.assertIsNone(self.setup_helper.setup_vnf_environment())
+
+class TestVcmtsPktgen(unittest.TestCase):
+
+ VNFD = {'vnfd:vnfd-catalog':
+ {'vnfd':
+ [{
+ "benchmark": {
+ "kpi": [
+ "upstream/bits_per_second"
+ ]
+ },
+ "connection-point": [
+ {
+ "name": "xe0",
+ "type": "VPORT"
+ },
+ {
+ "name": "xe1",
+ "type": "VPORT"
+ }
+ ],
+ "description": "vCMTS Pktgen Kubernetes",
+ "id": "VcmtsPktgen",
+ "mgmt-interface": {
+ "ip": "192.168.24.150",
+ "key_filename": "/tmp/yardstick_key-a3b663c2",
+ "user": "root",
+ "vdu-id": "vcmtspktgen-kubernetes"
+ },
+ "name": "vcmtspktgen",
+ "short-name": "vcmtspktgen",
+ "vdu": [
+ {
+ "description": "vCMTS Pktgen Kubernetes",
+ "external-interface": [],
+ "id": "vcmtspktgen-kubernetes",
+ "name": "vcmtspktgen-kubernetes"
+ }
+ ],
+ "vm-flavor": {
+ "memory-mb": "4096",
+ "vcpu-count": "4"
+ }
+ }]
+ }}
+
+ PKTGEN_POD_VALUES = [
+ {
+ "num_ports": "4",
+ "pktgen_id": "0",
+ "ports": [
+ {
+ "net_pktgen": "18:02.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_0": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "18:02.1",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_1": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "18:02.2",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_2": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "18:02.3",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_3": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "00:00.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_4": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "00:00.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_5": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "00:00.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_6": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "00:00.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_7": "",
+ "traffic_type": "imix1"
+ }
+ ]
+ },
+ {
+ "num_ports": 4,
+ "pktgen_id": 1,
+ "ports": [
+ {
+ "net_pktgen": "18:0a.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_0": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "18:0a.1",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_1": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "18:0a.2",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_2": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "18:0a.3",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_3": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "00:00.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_4": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "00:00.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_5": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "00:00.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_6": "",
+ "traffic_type": "imix1"
+ },
+ {
+ "net_pktgen": "00:00.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "port_7": "",
+ "traffic_type": "imix1"
+ }
+ ]
+ }
+ ]
+
+ SCENARIO_CFG = {
+ "nodes": {
+ "tg__0": "pktgen0-k8syardstick-a3b663c2",
+ "vnf__0": "vnf0us-k8syardstick-a3b663c2",
+ "vnf__1": "vnf0ds-k8syardstick-a3b663c2"
+ },
+ "options": {
+ "pktgen_values": "/tmp/pktgen_values.yaml",
+ "tg__0": {
+ "pktgen_id": 0
+ },
+ "vcmts_influxdb_ip": "10.80.5.150",
+ "vcmts_influxdb_port": 8086,
+ "vcmtsd_values": "/tmp/vcmtsd_values.yaml",
+ "vnf__0": {
+ "sg_id": 0,
+ "stream_dir": "us"
+ },
+ "vnf__1": {
+ "sg_id": 0,
+ "stream_dir": "ds"
+ }
+ },
+ "task_id": "a3b663c2-e616-4777-b6d0-ec2ea7a06f42",
+ "task_path": "samples/vnf_samples/nsut/cmts",
+ "tc": "tc_vcmts_k8s_pktgen",
+ "topology": "k8s_vcmts_topology.yaml",
+ "traffic_profile": "../../traffic_profiles/fixed.yaml",
+ "type": "NSPerf"
+ }
+
+ CONTEXT_CFG = {
+ "networks": {
+ "flannel": {
+ "name": "flannel"
+ },
+ "xe0": {
+ "name": "xe0"
+ },
+ "xe1": {
+ "name": "xe1"
+ }
+ },
+ "nodes": {
+ "tg__0": {
+ "VNF model": "../../vnf_descriptors/tg_vcmts_tpl.yaml",
+ "interfaces": {
+ "flannel": {
+ "local_ip": "192.168.24.150",
+ "local_mac": None,
+ "network_name": "flannel"
+ },
+ "xe0": {
+ "local_ip": "192.168.24.150",
+ "local_mac": None,
+ "network_name": "xe0"
+ },
+ "xe1": {
+ "local_ip": "192.168.24.150",
+ "local_mac": None,
+ "network_name": "xe1"
+ }
+ },
+ "ip": "192.168.24.150",
+ "key_filename": "/tmp/yardstick_key-a3b663c2",
+ "member-vnf-index": "1",
+ "name": "pktgen0-k8syardstick-a3b663c2",
+ "private_ip": "192.168.24.150",
+ "service_ports": [
+ {
+ "name": "ssh",
+ "node_port": 60270,
+ "port": 22,
+ "protocol": "TCP",
+ "target_port": 22
+ },
+ {
+ "name": "lua",
+ "node_port": 43619,
+ "port": 22022,
+ "protocol": "TCP",
+ "target_port": 22022
+ }
+ ],
+ "ssh_port": 60270,
+ "user": "root",
+ "vnfd-id-ref": "tg__0"
+ },
+ "vnf__0": {
+ "VNF model": "../../vnf_descriptors/vnf_vcmts_tpl.yaml",
+ "interfaces": {
+ "flannel": {
+ "local_ip": "192.168.100.132",
+ "local_mac": None,
+ "network_name": "flannel"
+ },
+ "xe0": {
+ "local_ip": "192.168.100.132",
+ "local_mac": None,
+ "network_name": "xe0"
+ },
+ "xe1": {
+ "local_ip": "192.168.100.132",
+ "local_mac": None,
+ "network_name": "xe1"
+ }
+ },
+ "ip": "192.168.100.132",
+ "key_filename": "/tmp/yardstick_key-a3b663c2",
+ "member-vnf-index": "3",
+ "name": "vnf0us-k8syardstick-a3b663c2",
+ "private_ip": "192.168.100.132",
+ "service_ports": [
+ {
+ "name": "ssh",
+ "node_port": 57057,
+ "port": 22,
+ "protocol": "TCP",
+ "target_port": 22
+ },
+ {
+ "name": "lua",
+ "node_port": 29700,
+ "port": 22022,
+ "protocol": "TCP",
+ "target_port": 22022
+ }
+ ],
+ "ssh_port": 57057,
+ "user": "root",
+ "vnfd-id-ref": "vnf__0"
+ },
+ "vnf__1": {
+ "VNF model": "../../vnf_descriptors/vnf_vcmts_tpl.yaml",
+ "interfaces": {
+ "flannel": {
+ "local_ip": "192.168.100.134",
+ "local_mac": None,
+ "network_name": "flannel"
+ },
+ "xe0": {
+ "local_ip": "192.168.100.134",
+ "local_mac": None,
+ "network_name": "xe0"
+ },
+ "xe1": {
+ "local_ip": "192.168.100.134",
+ "local_mac": None,
+ "network_name": "xe1"
+ }
+ },
+ "ip": "192.168.100.134",
+ "key_filename": "/tmp/yardstick_key-a3b663c2",
+ "member-vnf-index": "4",
+ "name": "vnf0ds-k8syardstick-a3b663c2",
+ "private_ip": "192.168.100.134",
+ "service_ports": [
+ {
+ "name": "ssh",
+ "node_port": 18581,
+ "port": 22,
+ "protocol": "TCP",
+ "target_port": 22
+ },
+ {
+ "name": "lua",
+ "node_port": 18469,
+ "port": 22022,
+ "protocol": "TCP",
+ "target_port": 22022
+ }
+ ],
+ "ssh_port": 18581,
+ "user": "root",
+ "vnfd-id-ref": "vnf__1"
+ }
+ }
+ }
+
+ PKTGEN_VALUES_PATH = "/tmp/pktgen_values.yaml"
+
+ PKTGEN_VALUES = \
+ "serviceAccount: cmk-serviceaccount\n" \
+ "images:\n" \
+ " vcmts_pktgen: vcmts-pktgen:v18.10\n" \
+ "topology:\n" \
+ " pktgen_replicas: 8\n" \
+ " pktgen_pods:\n" \
+ " - pktgen_id: 0\n" \
+ " num_ports: 4\n" \
+ " ports:\n" \
+ " - port_0:\n" \
+ " traffic_type: 'imix2'\n" \
+ " num_ofdm: 4\n" \
+ " num_subs: 300\n" \
+ " net_pktgen: 8a:02.0\n" \
+ " - port_1:\n" \
+ " traffic_type: 'imix2'\n" \
+ " num_ofdm: 4\n" \
+ " num_subs: 300\n" \
+ " net_pktgen: 8a:02.1\n" \
+ " - port_2:\n" \
+ " traffic_type: 'imix2'\n" \
+ " num_ofdm: 4\n" \
+ " num_subs: 300\n" \
+ " net_pktgen: 8a:02.2\n" \
+ " - port_3:\n" \
+ " traffic_type: 'imix2'\n" \
+ " num_ofdm: 4\n" \
+ " num_subs: 300\n" \
+ " net_pktgen: 8a:02.3\n" \
+ " - port_4:\n" \
+ " traffic_type: 'imix2'\n" \
+ " num_ofdm: 4\n" \
+ " num_subs: 300\n" \
+ " net_pktgen: 8a:02.4\n" \
+ " - port_5:\n" \
+ " traffic_type: 'imix2'\n" \
+ " num_ofdm: 4\n" \
+ " num_subs: 300\n" \
+ " net_pktgen: 8a:02.5\n" \
+ " - port_6:\n" \
+ " traffic_type: 'imix2'\n" \
+ " num_ofdm: 4\n" \
+ " num_subs: 300\n" \
+ " net_pktgen: 8a:02.6\n" \
+ " - port_7:\n" \
+ " traffic_type: 'imix2'\n" \
+ " num_ofdm: 4\n" \
+ " num_subs: 300\n" \
+ " net_pktgen: 8a:02.7\n"
+
+ def setUp(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ self.vcmts_pktgen = tg_vcmts_pktgen.VcmtsPktgen(NAME, vnfd)
+ self.vcmts_pktgen._start_server = mock.Mock(return_value=0)
+ self.vcmts_pktgen.resource_helper = mock.MagicMock()
+ self.vcmts_pktgen.setup_helper = mock.MagicMock()
+
+ def test___init__(self):
+ self.assertFalse(self.vcmts_pktgen.traffic_finished)
+ self.assertIsNotNone(self.vcmts_pktgen.setup_helper)
+ self.assertIsNotNone(self.vcmts_pktgen.resource_helper)
+
+ def test_extract_pod_cfg(self):
+ pod_cfg = self.vcmts_pktgen.extract_pod_cfg(self.PKTGEN_POD_VALUES, "0")
+ self.assertIsNotNone(pod_cfg)
+ self.assertEqual(pod_cfg["pktgen_id"], "0")
+ pod_cfg = self.vcmts_pktgen.extract_pod_cfg(self.PKTGEN_POD_VALUES, "4")
+ self.assertIsNone(pod_cfg)
+
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server',
+ return_value='fake_context')
+ def test_instantiate_missing_pktgen_values_key(self, *args):
+ err_scenario_cfg = copy.deepcopy(self.SCENARIO_CFG)
+ err_scenario_cfg['options'].pop('pktgen_values', None)
+ with self.assertRaises(KeyError):
+ self.vcmts_pktgen.instantiate(err_scenario_cfg, self.CONTEXT_CFG)
+
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server',
+ return_value='fake_context')
+ def test_instantiate_missing_pktgen_values_file(self, *args):
+ if os.path.isfile(self.PKTGEN_VALUES_PATH):
+ os.remove(self.PKTGEN_VALUES_PATH)
+ err_scenario_cfg = copy.deepcopy(self.SCENARIO_CFG)
+ err_scenario_cfg['options']['pktgen_values'] = self.PKTGEN_VALUES_PATH
+ with self.assertRaises(RuntimeError):
+ self.vcmts_pktgen.instantiate(err_scenario_cfg, self.CONTEXT_CFG)
+
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server',
+ return_value='fake_context')
+ def test_instantiate_empty_pktgen_values_file(self, *args):
+ yaml_sample = open(self.PKTGEN_VALUES_PATH, 'w')
+ yaml_sample.write("")
+ yaml_sample.close()
+
+ err_scenario_cfg = copy.deepcopy(self.SCENARIO_CFG)
+ err_scenario_cfg['options']['pktgen_values'] = self.PKTGEN_VALUES_PATH
+ with self.assertRaises(RuntimeError):
+ self.vcmts_pktgen.instantiate(err_scenario_cfg, self.CONTEXT_CFG)
+
+ if os.path.isfile(self.PKTGEN_VALUES_PATH):
+ os.remove(self.PKTGEN_VALUES_PATH)
+
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server',
+ return_value='fake_context')
+ def test_instantiate_invalid_pktgen_id(self, *args):
+ yaml_sample = open(self.PKTGEN_VALUES_PATH, 'w')
+ yaml_sample.write(self.PKTGEN_VALUES)
+ yaml_sample.close()
+
+ err_scenario_cfg = copy.deepcopy(self.SCENARIO_CFG)
+ err_scenario_cfg['options'][NAME]['pktgen_id'] = 12
+ with self.assertRaises(KeyError):
+ self.vcmts_pktgen.instantiate(err_scenario_cfg, self.CONTEXT_CFG)
+
+ if os.path.isfile(self.PKTGEN_VALUES_PATH):
+ os.remove(self.PKTGEN_VALUES_PATH)
+
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server',
+ return_value='fake_context')
+ def test_instantiate_all_valid(self, *args):
+ yaml_sample = open(self.PKTGEN_VALUES_PATH, 'w')
+ yaml_sample.write(self.PKTGEN_VALUES)
+ yaml_sample.close()
+
+ self.vcmts_pktgen.instantiate(self.SCENARIO_CFG, self.CONTEXT_CFG)
+ self.assertIsNotNone(self.vcmts_pktgen.pod_cfg)
+ self.assertEqual(self.vcmts_pktgen.pod_cfg["pktgen_id"], "0")
+
+ if os.path.isfile(self.PKTGEN_VALUES_PATH):
+ os.remove(self.PKTGEN_VALUES_PATH)
+
+ def test_run_traffic_failed_connect(self):
+ self.vcmts_pktgen.pktgen_helper = mock.MagicMock()
+ self.vcmts_pktgen.pktgen_helper.connect.return_value = False
+ with self.assertRaises(exceptions.PktgenActionError):
+ self.vcmts_pktgen.run_traffic({})
+
+ def test_run_traffic_successful_connect(self):
+ self.vcmts_pktgen.pktgen_helper = mock.MagicMock()
+ self.vcmts_pktgen.pktgen_helper.connect.return_value = True
+ self.vcmts_pktgen.pktgen_rate = 8.0
+ self.assertTrue(self.vcmts_pktgen.run_traffic({}))
+ self.vcmts_pktgen.pktgen_helper.connect.assert_called_once()
+ self.vcmts_pktgen.pktgen_helper.send_command.assert_called_with(
+ 'pktgen.start("all");')
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_udp_replay.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_udp_replay.py
index 635ce2735..aabd402a6 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_udp_replay.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_udp_replay.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,30 +11,21 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
import unittest
import mock
import os
-from tests.unit import STL_MOCKS
-from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.vnf_generic.vnf.udp_replay import UdpReplayApproxVnf
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import ScenarioHelper
SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.udp_replay import UdpReplayApproxVnf
- from yardstick.network_services.vnf_generic.vnf.sample_vnf import ScenarioHelper
-
-
TEST_FILE_YAML = 'nsb_test_case.yaml'
-
NAME = "vnf__1"
@@ -332,23 +321,33 @@ class TestUdpReplayApproxVnf(unittest.TestCase):
self.assertIsNone(udp_replay_approx_vnf._vnf_process)
@mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
@mock.patch(SSH_HELPER)
def test_collect_kpi(self, ssh, *args):
mock_ssh(ssh)
vnfd = self.VNFD_0
- result = "stats\r\r\n\r\nUDP_Replay stats:\r\n--------------\r\n" \
- "Port\t\tRx Packet\t\tTx Packet\t\tRx Pkt Drop\t\tTx Pkt Drop \r\n"\
- "0\t\t7374156\t\t7374136\t\t\t0\t\t\t0\r\n" \
- "1\t\t7374316\t\t7374315\t\t\t0\t\t\t0\r\n\r\nReplay>\r\r\nReplay>"
+ get_stats_ret_val = \
+ "stats\r\r\n\r\nUDP_Replay stats:\r\n--------------\r\n" \
+ "Port\t\tRx Packet\t\tTx Packet\t\tRx Pkt Drop\t\tTx Pkt Drop\t\tarp_pkts \r\n"\
+ "0\t\t7374156\t\t7374136\t\t\t0\t\t\t0\t\t\t0\r\n" \
+ "1\t\t7374316\t\t7374315\t\t\t0\t\t\t0\t\t\t0\r\n\r\nReplay>\r\r\nReplay>"
udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
+ udp_replay_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {udp_replay_approx_vnf.name: "mock"}
+ }
udp_replay_approx_vnf.q_in = mock.MagicMock()
udp_replay_approx_vnf.q_out = mock.MagicMock()
udp_replay_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
udp_replay_approx_vnf.all_ports = ["xe0", "xe1"]
- udp_replay_approx_vnf.get_stats = mock.Mock(return_value=result)
- result = {'collect_stats': {}, 'packets_dropped': 0,
- 'packets_fwd': 14748451, 'packets_in': 14748472}
+ udp_replay_approx_vnf.get_stats = mock.Mock(return_value=get_stats_ret_val)
+ result = {
+ 'physical_node': 'mock_node',
+ 'collect_stats': {},
+ 'packets_dropped': 0,
+ 'packets_fwd': 14748451,
+ 'packets_in': 14748472
+ }
self.assertEqual(result, udp_replay_approx_vnf.collect_kpi())
@mock.patch(SSH_HELPER)
@@ -372,14 +371,18 @@ class TestUdpReplayApproxVnf(unittest.TestCase):
file_path = os.path.join(curr_path, filename)
return file_path
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.Context")
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server')
@mock.patch(SSH_HELPER)
- def test__build_config(self, ssh, mock_context, *args):
+ def test__build_config(self, ssh, mock_get_ctx, *args):
mock_ssh(ssh)
+ nfvi_context = mock.Mock()
+ nfvi_context.attrs = {'nfvi_type': 'baremetal'}
+ mock_get_ctx.return_value = nfvi_context
+
udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
udp_replay_approx_vnf.queue_wrapper = mock.MagicMock()
- udp_replay_approx_vnf.nfvi_context = mock_context
+ udp_replay_approx_vnf.nfvi_context = mock_get_ctx
udp_replay_approx_vnf.nfvi_context.attrs = {'nfvi_type': 'baremetal'}
udp_replay_approx_vnf.setup_helper.bound_pci = []
udp_replay_approx_vnf.ssh_helper.provision_tool = mock.MagicMock(return_value="tool_path")
@@ -393,13 +396,16 @@ class TestUdpReplayApproxVnf(unittest.TestCase):
self.assertEqual(cmd_line, expected)
@mock.patch('yardstick.network_services.vnf_generic.vnf.udp_replay.open')
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.Context")
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server')
@mock.patch(SSH_HELPER)
- def test__build_pipeline_kwargs(self, ssh, mock_context, *args):
+ def test__build_pipeline_kwargs(self, ssh, mock_get_ctx, *args):
mock_ssh(ssh)
+
+ nfvi_context = mock.Mock()
+ nfvi_context.attrs = {'nfvi_type': "baremetal"}
+ mock_get_ctx.return_value = nfvi_context
+
udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
- udp_replay_approx_vnf.nfvi_context = mock_context
- udp_replay_approx_vnf.nfvi_context.attrs = {'nfvi_type': 'baremetal'}
udp_replay_approx_vnf.setup_helper.bound_pci = ['0000:00:0.1', '0000:00:0.3']
udp_replay_approx_vnf.all_ports = ["xe0", "xe1"]
udp_replay_approx_vnf.ssh_helper.provision_tool = mock.MagicMock(return_value="tool_path")
@@ -430,7 +436,7 @@ class TestUdpReplayApproxVnf(unittest.TestCase):
udp_replay_approx_vnf.ssh_helper.run.assert_called_once()
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.Context")
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server')
@mock.patch(SSH_HELPER)
def test_instantiate(self, ssh, *args):
mock_ssh(ssh)
@@ -447,9 +453,9 @@ class TestUdpReplayApproxVnf(unittest.TestCase):
udp_replay_approx_vnf._vnf_process.is_alive = mock.Mock(return_value=1)
udp_replay_approx_vnf._vnf_process.exitcode = 0
- self.assertEquals(udp_replay_approx_vnf.wait_for_instantiate(), 0)
+ self.assertEqual(udp_replay_approx_vnf.wait_for_instantiate(), 0)
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.Context")
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server')
@mock.patch('yardstick.ssh.SSH')
@mock.patch(SSH_HELPER)
def test_instantiate_panic(self, *args):
@@ -462,15 +468,3 @@ class TestUdpReplayApproxVnf(unittest.TestCase):
self.assertIsNone(udp_replay_approx_vnf.instantiate(self.SCENARIO_CFG, self.CONTEXT_CFG))
with self.assertRaises(RuntimeError):
udp_replay_approx_vnf.wait_for_instantiate()
-
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
- @mock.patch(SSH_HELPER)
- def test_terminate(self, ssh, *args):
- mock_ssh(ssh)
-
- udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
- udp_replay_approx_vnf._vnf_process = mock.MagicMock()
- udp_replay_approx_vnf._vnf_process.terminate = mock.Mock()
- udp_replay_approx_vnf.used_drivers = {"01:01.0": "i40e", "01:01.1": "i40e"}
- udp_replay_approx_vnf.dpdk_nic_bind = "dpdk_nic_bind.py"
- self.assertEqual(None, udp_replay_approx_vnf.terminate())
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vcmts_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vcmts_vnf.py
new file mode 100755
index 000000000..11e3d6e17
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vcmts_vnf.py
@@ -0,0 +1,651 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+import mock
+import copy
+import os
+
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
+from yardstick.network_services.vnf_generic.vnf import vcmts_vnf
+from yardstick.common import exceptions
+
+from influxdb.resultset import ResultSet
+
+NAME = "vnf__0"
+
+
+class TestInfluxDBHelper(unittest.TestCase):
+
+ def test___init__(self):
+ influxdb_helper = vcmts_vnf.InfluxDBHelper("localhost", 8086)
+ self.assertEqual(influxdb_helper._vcmts_influxdb_ip, "localhost")
+ self.assertEqual(influxdb_helper._vcmts_influxdb_port, 8086)
+ self.assertIsNotNone(influxdb_helper._last_upstream_rx)
+ self.assertIsNotNone(influxdb_helper._last_values_time)
+
+ def test_start(self):
+ influxdb_helper = vcmts_vnf.InfluxDBHelper("localhost", 8086)
+ influxdb_helper.start()
+ self.assertIsNotNone(influxdb_helper._read_client)
+ self.assertIsNotNone(influxdb_helper._write_client)
+
+ def test__get_last_value_time(self):
+ influxdb_helper = vcmts_vnf.InfluxDBHelper("localhost", 8086)
+ self.assertEqual(influxdb_helper._get_last_value_time('cpu_value'),
+ vcmts_vnf.InfluxDBHelper.INITIAL_VALUE)
+
+ influxdb_helper._last_values_time['cpu_value'] = "RANDOM"
+ self.assertEqual(influxdb_helper._get_last_value_time('cpu_value'),
+ "RANDOM")
+
+ def test__set_last_value_time(self):
+ influxdb_helper = vcmts_vnf.InfluxDBHelper("localhost", 8086)
+ influxdb_helper._set_last_value_time('cpu_value', '00:00')
+ self.assertEqual(influxdb_helper._last_values_time['cpu_value'],
+ "'00:00'")
+
+ def test__query_measurement(self):
+ influxdb_helper = vcmts_vnf.InfluxDBHelper("localhost", 8086)
+ influxdb_helper._read_client = mock.MagicMock()
+
+ resulted_generator = mock.MagicMock()
+ resulted_generator.keys.return_value = []
+ influxdb_helper._read_client.query.return_value = resulted_generator
+ query_result = influxdb_helper._query_measurement('cpu_value')
+ self.assertIsNone(query_result)
+
+ resulted_generator = mock.MagicMock()
+ resulted_generator.keys.return_value = ["", ""]
+ resulted_generator.get_points.return_value = ResultSet({"":""})
+ influxdb_helper._read_client.query.return_value = resulted_generator
+ query_result = influxdb_helper._query_measurement('cpu_value')
+ self.assertIsNotNone(query_result)
+
+ def test__rw_measurment(self):
+ influxdb_helper = vcmts_vnf.InfluxDBHelper("localhost", 8086)
+ influxdb_helper._query_measurement = mock.MagicMock()
+ influxdb_helper._query_measurement.return_value = None
+ influxdb_helper._rw_measurment('cpu_value', [])
+ self.assertEqual(len(influxdb_helper._last_values_time), 0)
+
+ entry = {
+ "type":"type",
+ "host":"host",
+ "time":"time",
+ "id": "1",
+ "value": "1.0"
+ }
+ influxdb_helper._query_measurement.return_value = [entry]
+ influxdb_helper._write_client = mock.MagicMock()
+ influxdb_helper._rw_measurment('cpu_value', ["id", "value"])
+ self.assertEqual(len(influxdb_helper._last_values_time), 1)
+ influxdb_helper._write_client.write_points.assert_called_once()
+
+ def test_copy_kpi(self):
+ influxdb_helper = vcmts_vnf.InfluxDBHelper("localhost", 8086)
+ influxdb_helper._rw_measurment = mock.MagicMock()
+ influxdb_helper.copy_kpi()
+ influxdb_helper._rw_measurment.assert_called()
+
+
+class TestVcmtsdSetupEnvHelper(unittest.TestCase):
+ POD_CFG = {
+ "cm_crypto": "aes",
+ "cpu_socket_id": "0",
+ "ds_core_pool_index": "2",
+ "ds_core_type": "exclusive",
+ "net_ds": "1a:02.1",
+ "net_us": "1a:02.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "power_mgmt": "pm_on",
+ "qat": "qat_off",
+ "service_group_config": "",
+ "sg_id": "0",
+ "vcmtsd_image": "vcmts-d:perf"
+ }
+
+ OPTIONS = {
+ "pktgen_values": "/tmp/pktgen_values.yaml",
+ "tg__0": {
+ "pktgen_id": 0
+ },
+ "vcmts_influxdb_ip": "10.80.5.150",
+ "vcmts_influxdb_port": 8086,
+ "vcmtsd_values": "/tmp/vcmtsd_values.yaml",
+ "vnf__0": {
+ "sg_id": 0,
+ "stream_dir": "us"
+ },
+ "vnf__1": {
+ "sg_id": 0,
+ "stream_dir": "ds"
+ }
+ }
+
+ def setUp(self):
+ vnfd_helper = VnfdHelper(
+ TestVcmtsVNF.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+
+ self.setup_helper = vcmts_vnf.VcmtsdSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
+
+ def _build_us_parameters(self):
+ return vcmts_vnf.VcmtsdSetupEnvHelper.BASE_PARAMETERS + " " \
+ + " /opt/bin/cmk isolate --conf-dir=/etc/cmk" \
+ + " --socket-id=" + str(self.POD_CFG['cpu_socket_id']) \
+ + " --pool=shared" \
+ + " /vcmts-config/run_upstream.sh " + self.POD_CFG['sg_id'] \
+ + " " + self.POD_CFG['ds_core_type'] \
+ + " " + str(self.POD_CFG['num_ofdm']) + "ofdm" \
+ + " " + str(self.POD_CFG['num_subs']) + "cm" \
+ + " " + self.POD_CFG['cm_crypto'] \
+ + " " + self.POD_CFG['qat'] \
+ + " " + self.POD_CFG['net_us'] \
+ + " " + self.POD_CFG['power_mgmt']
+
+ def test_build_us_parameters(self):
+ constructed = self._build_us_parameters()
+ result = self.setup_helper.build_us_parameters(self.POD_CFG)
+ self.assertEqual(constructed, result)
+
+ def _build_ds_parameters(self):
+ return vcmts_vnf.VcmtsdSetupEnvHelper.BASE_PARAMETERS + " " \
+ + " /opt/bin/cmk isolate --conf-dir=/etc/cmk" \
+ + " --socket-id=" + str(self.POD_CFG['cpu_socket_id']) \
+ + " --pool=" + self.POD_CFG['ds_core_type'] \
+ + " /vcmts-config/run_downstream.sh " + self.POD_CFG['sg_id'] \
+ + " " + self.POD_CFG['ds_core_type'] \
+ + " " + str(self.POD_CFG['ds_core_pool_index']) \
+ + " " + str(self.POD_CFG['num_ofdm']) + "ofdm" \
+ + " " + str(self.POD_CFG['num_subs']) + "cm" \
+ + " " + self.POD_CFG['cm_crypto'] \
+ + " " + self.POD_CFG['qat'] \
+ + " " + self.POD_CFG['net_ds'] \
+ + " " + self.POD_CFG['power_mgmt']
+
+ def test_build_ds_parameters(self):
+ constructed = self._build_ds_parameters()
+ result = self.setup_helper.build_ds_parameters(self.POD_CFG)
+ self.assertEqual(constructed, result)
+
+ def test_build_cmd(self):
+ us_constructed = self._build_us_parameters()
+ us_result = self.setup_helper.build_cmd('us', self.POD_CFG)
+ self.assertEqual(us_constructed, us_result)
+ ds_constructed = self._build_ds_parameters()
+ ds_result = self.setup_helper.build_cmd('ds', self.POD_CFG)
+ self.assertEqual(ds_constructed, ds_result)
+
+ def test_run_vcmtsd(self):
+ us_constructed = self._build_us_parameters()
+
+ vnfd_helper = VnfdHelper(
+ TestVcmtsVNF.VNFD['vnfd:vnfd-catalog']['vnfd'][0])
+ ssh_helper = mock.MagicMock()
+ scenario_helper = mock.Mock()
+ scenario_helper.options = self.OPTIONS
+
+ setup_helper = vcmts_vnf.VcmtsdSetupEnvHelper(
+ vnfd_helper, ssh_helper, scenario_helper)
+
+ setup_helper.run_vcmtsd('us', self.POD_CFG)
+ ssh_helper.send_command.assert_called_with(us_constructed)
+
+ def test_setup_vnf_environment(self):
+ self.assertIsNone(self.setup_helper.setup_vnf_environment())
+
+class TestVcmtsVNF(unittest.TestCase):
+
+ VNFD = {'vnfd:vnfd-catalog':
+ {'vnfd':
+ [{
+ "benchmark": {
+ "kpi": [
+ "upstream/bits_per_second"
+ ]
+ },
+ "connection-point": [
+ {
+ "name": "xe0",
+ "type": "VPORT"
+ },
+ {
+ "name": "xe1",
+ "type": "VPORT"
+ }
+ ],
+ "description": "vCMTS Upstream-Downstream Kubernetes",
+ "id": "VcmtsVNF",
+ "mgmt-interface": {
+ "ip": "192.168.100.35",
+ "key_filename": "/tmp/yardstick_key-81dcca91",
+ "user": "root",
+ "vdu-id": "vcmtsvnf-kubernetes"
+ },
+ "name": "vcmtsvnf",
+ "short-name": "vcmtsvnf",
+ "vdu": [
+ {
+ "description": "vCMTS Upstream-Downstream Kubernetes",
+ "external-interface": [],
+ "id": "vcmtsvnf-kubernetes",
+ "name": "vcmtsvnf-kubernetes"
+ }
+ ],
+ "vm-flavor": {
+ "memory-mb": "4096",
+ "vcpu-count": "4"
+ }
+ }]
+ }
+ }
+
+ POD_CFG = [
+ {
+ "cm_crypto": "aes",
+ "cpu_socket_id": "0",
+ "ds_core_pool_index": "2",
+ "ds_core_type": "exclusive",
+ "net_ds": "1a:02.1",
+ "net_us": "1a:02.0",
+ "num_ofdm": "1",
+ "num_subs": "100",
+ "power_mgmt": "pm_on",
+ "qat": "qat_off",
+ "service_group_config": "",
+ "sg_id": "0",
+ "vcmtsd_image": "vcmts-d:perf"
+ },
+ ]
+
+ SCENARIO_CFG = {
+ "nodes": {
+ "tg__0": "pktgen0-k8syardstick-afae18b2",
+ "vnf__0": "vnf0us-k8syardstick-afae18b2",
+ "vnf__1": "vnf0ds-k8syardstick-afae18b2"
+ },
+ "options": {
+ "pktgen_values": "/tmp/pktgen_values.yaml",
+ "tg__0": {
+ "pktgen_id": 0
+ },
+ "vcmts_influxdb_ip": "10.80.5.150",
+ "vcmts_influxdb_port": 8086,
+ "vcmtsd_values": "/tmp/vcmtsd_values.yaml",
+ "vnf__0": {
+ "sg_id": 0,
+ "stream_dir": "us"
+ },
+ "vnf__1": {
+ "sg_id": 0,
+ "stream_dir": "ds"
+ }
+ },
+ "task_id": "afae18b2-9902-477f-8128-49afde7c3040",
+ "task_path": "samples/vnf_samples/nsut/cmts",
+ "tc": "tc_vcmts_k8s_pktgen",
+ "topology": "k8s_vcmts_topology.yaml",
+ "traffic_profile": "../../traffic_profiles/fixed.yaml",
+ "type": "NSPerf"
+ }
+
+ CONTEXT_CFG = {
+ "networks": {
+ "flannel": {
+ "name": "flannel"
+ },
+ "xe0": {
+ "name": "xe0"
+ },
+ "xe1": {
+ "name": "xe1"
+ }
+ },
+ "nodes": {
+ "tg__0": {
+ "VNF model": "../../vnf_descriptors/tg_vcmts_tpl.yaml",
+ "interfaces": {
+ "flannel": {
+ "local_ip": "192.168.24.110",
+ "local_mac": None,
+ "network_name": "flannel"
+ },
+ "xe0": {
+ "local_ip": "192.168.24.110",
+ "local_mac": None,
+ "network_name": "xe0"
+ },
+ "xe1": {
+ "local_ip": "192.168.24.110",
+ "local_mac": None,
+ "network_name": "xe1"
+ }
+ },
+ "ip": "192.168.24.110",
+ "key_filename": "/tmp/yardstick_key-afae18b2",
+ "member-vnf-index": "1",
+ "name": "pktgen0-k8syardstick-afae18b2",
+ "private_ip": "192.168.24.110",
+ "service_ports": [
+ {
+ "name": "ssh",
+ "node_port": 17153,
+ "port": 22,
+ "protocol": "TCP",
+ "target_port": 22
+ },
+ {
+ "name": "lua",
+ "node_port": 51250,
+ "port": 22022,
+ "protocol": "TCP",
+ "target_port": 22022
+ }
+ ],
+ "ssh_port": 17153,
+ "user": "root",
+ "vnfd-id-ref": "tg__0"
+ },
+ "vnf__0": {
+ "VNF model": "../../vnf_descriptors/vnf_vcmts_tpl.yaml",
+ "interfaces": {
+ "flannel": {
+ "local_ip": "192.168.100.53",
+ "local_mac": None,
+ "network_name": "flannel"
+ },
+ "xe0": {
+ "local_ip": "192.168.100.53",
+ "local_mac": None,
+ "network_name": "xe0"
+ },
+ "xe1": {
+ "local_ip": "192.168.100.53",
+ "local_mac": None,
+ "network_name": "xe1"
+ }
+ },
+ "ip": "192.168.100.53",
+ "key_filename": "/tmp/yardstick_key-afae18b2",
+ "member-vnf-index": "3",
+ "name": "vnf0us-k8syardstick-afae18b2",
+ "private_ip": "192.168.100.53",
+ "service_ports": [
+ {
+ "name": "ssh",
+ "node_port": 34027,
+ "port": 22,
+ "protocol": "TCP",
+ "target_port": 22
+ },
+ {
+ "name": "lua",
+ "node_port": 32580,
+ "port": 22022,
+ "protocol": "TCP",
+ "target_port": 22022
+ }
+ ],
+ "ssh_port": 34027,
+ "user": "root",
+ "vnfd-id-ref": "vnf__0"
+ },
+ "vnf__1": {
+ "VNF model": "../../vnf_descriptors/vnf_vcmts_tpl.yaml",
+ "interfaces": {
+ "flannel": {
+ "local_ip": "192.168.100.52",
+ "local_mac": None,
+ "network_name": "flannel"
+ },
+ "xe0": {
+ "local_ip": "192.168.100.52",
+ "local_mac": None,
+ "network_name": "xe0"
+ },
+ "xe1": {
+ "local_ip": "192.168.100.52",
+ "local_mac": None,
+ "network_name": "xe1"
+ }
+ },
+ "ip": "192.168.100.52",
+ "key_filename": "/tmp/yardstick_key-afae18b2",
+ "member-vnf-index": "4",
+ "name": "vnf0ds-k8syardstick-afae18b2",
+ "private_ip": "192.168.100.52",
+ "service_ports": [
+ {
+ "name": "ssh",
+ "node_port": 58661,
+ "port": 22,
+ "protocol": "TCP",
+ "target_port": 22
+ },
+ {
+ "name": "lua",
+ "node_port": 58233,
+ "port": 22022,
+ "protocol": "TCP",
+ "target_port": 22022
+ }
+ ],
+ "ssh_port": 58661,
+ "user": "root",
+ "vnfd-id-ref": "vnf__1"
+ },
+ }
+ }
+
+ VCMTSD_VALUES_PATH = "/tmp/vcmtsd_values.yaml"
+
+ VCMTSD_VALUES = \
+ "serviceAccount: cmk-serviceaccount\n" \
+ "topology:\n" \
+ " vcmts_replicas: 16\n" \
+ " vcmts_pods:\n" \
+ " - service_group_config:\n" \
+ " sg_id: 0\n" \
+ " net_us: 18:02.0\n" \
+ " net_ds: 18:02.1\n" \
+ " num_ofdm: 4\n" \
+ " num_subs: 300\n" \
+ " cm_crypto: aes\n" \
+ " qat: qat_off\n" \
+ " power_mgmt: pm_on\n" \
+ " cpu_socket_id: 0\n" \
+ " ds_core_type: exclusive\n" \
+ " ds_core_pool_index: 0\n" \
+ " vcmtsd_image: vcmts-d:feat"
+
+ VCMTSD_VALUES_INCOMPLETE = \
+ "serviceAccount: cmk-serviceaccount\n" \
+ "topology:\n" \
+ " vcmts_replicas: 16"
+
+ def setUp(self):
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ self.vnf = vcmts_vnf.VcmtsVNF(NAME, vnfd)
+
+ def test___init__(self, *args):
+ self.assertIsNotNone(self.vnf.setup_helper)
+
+ def test_extract_pod_cfg(self):
+ pod_cfg = self.vnf.extract_pod_cfg(self.POD_CFG, "0")
+ self.assertIsNotNone(pod_cfg)
+ self.assertEqual(pod_cfg['sg_id'], '0')
+ pod_cfg = self.vnf.extract_pod_cfg(self.POD_CFG, "1")
+ self.assertIsNone(pod_cfg)
+
+ def test_instantiate_missing_influxdb_info(self):
+ err_scenario_cfg = copy.deepcopy(self.SCENARIO_CFG)
+ err_scenario_cfg['options'].pop('vcmts_influxdb_ip', None)
+ with self.assertRaises(KeyError):
+ self.vnf.instantiate(err_scenario_cfg, self.CONTEXT_CFG)
+
+ def test_instantiate_missing_vcmtsd_values_file(self):
+ if os.path.isfile(self.VCMTSD_VALUES_PATH):
+ os.remove(self.VCMTSD_VALUES_PATH)
+ err_scenario_cfg = copy.deepcopy(self.SCENARIO_CFG)
+ err_scenario_cfg['options']['vcmtsd_values'] = self.VCMTSD_VALUES_PATH
+ with self.assertRaises(RuntimeError):
+ self.vnf.instantiate(err_scenario_cfg, self.CONTEXT_CFG)
+
+ def test_instantiate_empty_vcmtsd_values_file(self):
+ yaml_sample = open(self.VCMTSD_VALUES_PATH, 'w')
+ yaml_sample.write("")
+ yaml_sample.close()
+
+ err_scenario_cfg = copy.deepcopy(self.SCENARIO_CFG)
+ err_scenario_cfg['options']['vcmtsd_values'] = self.VCMTSD_VALUES_PATH
+ with self.assertRaises(RuntimeError):
+ self.vnf.instantiate(err_scenario_cfg, self.CONTEXT_CFG)
+
+ if os.path.isfile(self.VCMTSD_VALUES_PATH):
+ os.remove(self.VCMTSD_VALUES_PATH)
+
+ def test_instantiate_missing_vcmtsd_values_key(self):
+ err_scenario_cfg = copy.deepcopy(self.SCENARIO_CFG)
+ err_scenario_cfg['options'].pop('vcmtsd_values', None)
+ with self.assertRaises(KeyError):
+ self.vnf.instantiate(err_scenario_cfg, self.CONTEXT_CFG)
+
+ def test_instantiate_invalid_vcmtsd_values(self):
+ yaml_sample = open(self.VCMTSD_VALUES_PATH, 'w')
+ yaml_sample.write(self.VCMTSD_VALUES_INCOMPLETE)
+ yaml_sample.close()
+
+ err_scenario_cfg = copy.deepcopy(self.SCENARIO_CFG)
+ with self.assertRaises(KeyError):
+ self.vnf.instantiate(err_scenario_cfg, self.CONTEXT_CFG)
+
+ if os.path.isfile(self.VCMTSD_VALUES_PATH):
+ os.remove(self.VCMTSD_VALUES_PATH)
+
+ def test_instantiate_invalid_sg_id(self):
+ yaml_sample = open(self.VCMTSD_VALUES_PATH, 'w')
+ yaml_sample.write(self.VCMTSD_VALUES)
+ yaml_sample.close()
+
+ err_scenario_cfg = copy.deepcopy(self.SCENARIO_CFG)
+ err_scenario_cfg['options'][NAME]['sg_id'] = 8
+ with self.assertRaises(exceptions.IncorrectConfig):
+ self.vnf.instantiate(err_scenario_cfg, self.CONTEXT_CFG)
+
+ if os.path.isfile(self.VCMTSD_VALUES_PATH):
+ os.remove(self.VCMTSD_VALUES_PATH)
+
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.vcmts_vnf.VnfSshHelper')
+ def test_instantiate_all_valid(self, ssh, *args):
+ mock_ssh(ssh)
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vnf = vcmts_vnf.VcmtsVNF(NAME, vnfd)
+
+ yaml_sample = open(self.VCMTSD_VALUES_PATH, 'w')
+ yaml_sample.write(self.VCMTSD_VALUES)
+ yaml_sample.close()
+
+ vnf.instantiate(self.SCENARIO_CFG, self.CONTEXT_CFG)
+ self.assertEqual(vnf.vcmts_influxdb_ip, "10.80.5.150")
+ self.assertEqual(vnf.vcmts_influxdb_port, 8086)
+
+ if os.path.isfile(self.VCMTSD_VALUES_PATH):
+ os.remove(self.VCMTSD_VALUES_PATH)
+
+ def test__update_collectd_options(self):
+ scenario_cfg = {'options':
+ {'collectd':
+ {'interval': 3,
+ 'plugins':
+ {'plugin3': {'param': 3}}},
+ 'vnf__0':
+ {'collectd':
+ {'interval': 2,
+ 'plugins':
+ {'plugin3': {'param': 2},
+ 'plugin2': {'param': 2}}}}}}
+ context_cfg = {'nodes':
+ {'vnf__0':
+ {'collectd':
+ {'interval': 1,
+ 'plugins':
+ {'plugin3': {'param': 1},
+ 'plugin2': {'param': 1},
+ 'plugin1': {'param': 1}}}}}}
+ expected = {'interval': 1,
+ 'plugins':
+ {'plugin3': {'param': 1},
+ 'plugin2': {'param': 1},
+ 'plugin1': {'param': 1}}}
+
+ self.vnf._update_collectd_options(scenario_cfg, context_cfg)
+ self.assertEqual(self.vnf.setup_helper.collectd_options, expected)
+
+ def test__update_options(self):
+ options1 = {'interval': 1,
+ 'param1': 'value1',
+ 'plugins':
+ {'plugin3': {'param': 3},
+ 'plugin2': {'param': 1},
+ 'plugin1': {'param': 1}}}
+ options2 = {'interval': 2,
+ 'param2': 'value2',
+ 'plugins':
+ {'plugin4': {'param': 4},
+ 'plugin2': {'param': 2},
+ 'plugin1': {'param': 2}}}
+ expected = {'interval': 1,
+ 'param1': 'value1',
+ 'param2': 'value2',
+ 'plugins':
+ {'plugin4': {'param': 4},
+ 'plugin3': {'param': 3},
+ 'plugin2': {'param': 1},
+ 'plugin1': {'param': 1}}}
+
+ vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
+ vnf = vcmts_vnf.VcmtsVNF('vnf1', vnfd)
+ vnf._update_options(options2, options1)
+ self.assertEqual(options2, expected)
+
+ def test_wait_for_instantiate(self):
+ self.assertIsNone(self.vnf.wait_for_instantiate())
+
+ def test_terminate(self):
+ self.assertIsNone(self.vnf.terminate())
+
+ def test_scale(self):
+ self.assertIsNone(self.vnf.scale())
+
+ def test_collect_kpi(self):
+ self.vnf.influxdb_helper = mock.MagicMock()
+ self.vnf.collect_kpi()
+ self.vnf.influxdb_helper.copy_kpi.assert_called_once()
+
+ def test_start_collect(self):
+ self.vnf.vcmts_influxdb_ip = "localhost"
+ self.vnf.vcmts_influxdb_port = 8800
+
+ self.assertIsNone(self.vnf.start_collect())
+ self.assertIsNotNone(self.vnf.influxdb_helper)
+
+ def test_stop_collect(self):
+ self.assertIsNone(self.vnf.stop_collect())
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_vfw_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vfw_vnf.py
index d128db0b4..5334ce18c 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_vfw_vnf.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vfw_vnf.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,22 +11,17 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
import unittest
import mock
import os
-from tests.unit import STL_MOCKS
-from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.vfw_vnf import FWApproxVnf
- from yardstick.network_services.nfvi.resource import ResourceProfile
+from yardstick.common import utils
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.vnf_generic.vnf.vfw_vnf import FWApproxVnf
+from yardstick.network_services.nfvi.resource import ResourceProfile
+from yardstick.network_services.vnf_generic.vnf.vfw_vnf import FWApproxSetupEnvHelper
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
TEST_FILE_YAML = 'nsb_test_case.yaml'
@@ -251,18 +244,21 @@ VFW TOTAL: pkts_received: 6007180, "pkts_fw_forwarded": 6007180, "pkts_drop_fw":
"CT TOTAL: ct_packets_forwarded" : 6007180, " ct_packets_dropped" : 0, "ct_sessions" : {"active" : 130050, "open_attempt" : 130050, "re-open_attempt" : 0, "established" : 0, "closed" : 0, "timeout" : 0}, "ct_drops" : {"out_of_window" : 0, "invalid_conn" : 0, "invalid_state_transition" : 0 "RST" : 0}
Action ID: 00, packetCount: 2954633, byteCount: 177277980
Action ID: 01, packetCount: 3052547, byteCount: 183152820
-pipeline>
+pipeline>
-pipeline>
+pipeline>
""" # noqa
@mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
@mock.patch(SSH_HELPER)
def test_collect_kpi(self, ssh, *args):
mock_ssh(ssh)
-
vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
vfw_approx_vnf = FWApproxVnf(name, vnfd)
+ vfw_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {vfw_approx_vnf.name: "mock"}
+ }
vfw_approx_vnf.q_in = mock.MagicMock()
vfw_approx_vnf.q_out = mock.MagicMock()
vfw_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
@@ -271,6 +267,7 @@ pipeline>
**{'collect_kpi.return_value': {"core": {}}})
vfw_approx_vnf.vnf_execute = mock.Mock(return_value=self.STATS)
result = {
+ 'physical_node': 'mock_node',
'packets_dropped': 0,
'packets_fwd': 6007180,
'packets_in': 6007180,
@@ -331,9 +328,8 @@ pipeline>
vfw_approx_vnf._run()
vfw_approx_vnf.ssh_helper.run.assert_called_once()
- @mock.patch("yardstick.network_services.vnf_generic.vnf.vfw_vnf.find_relative_file")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.vfw_vnf.YangModel")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.Context")
+ @mock.patch.object(utils, 'find_relative_file')
+ @mock.patch.object(ctx_base.Context, 'get_context_from_server')
@mock.patch(SSH_HELPER)
def test_instantiate(self, ssh, *args):
mock_ssh(ssh)
@@ -349,17 +345,27 @@ pipeline>
self.scenario_cfg.update({"nodes": {"vnf__1": ""}})
self.assertIsNone(vfw_approx_vnf.instantiate(self.scenario_cfg, self.context_cfg))
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.time")
- @mock.patch(SSH_HELPER)
- def test_terminate(self, ssh, *args):
- mock_ssh(ssh)
- vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
- vfw_approx_vnf = FWApproxVnf(name, vnfd)
- vfw_approx_vnf._vnf_process = mock.MagicMock()
- vfw_approx_vnf.used_drivers = {"01:01.0": "i40e",
- "01:01.1": "i40e"}
- vfw_approx_vnf.vnf_execute = mock.Mock()
- vfw_approx_vnf.dpdk_nic_bind = "dpdk_nic_bind.py"
- vfw_approx_vnf._resource_collect_stop = mock.Mock()
- self.assertIsNone(vfw_approx_vnf.terminate())
+class TestFWApproxSetupEnvHelper(unittest.TestCase):
+
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.open')
+ @mock.patch.object(utils, 'find_relative_file')
+ @mock.patch('yardstick.network_services.vnf_generic.vnf.sample_vnf.MultiPortConfig')
+ @mock.patch.object(utils, 'open_relative_file')
+ def test_build_config(self, *args):
+ vnfd_helper = mock.Mock()
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ scenario_helper.vnf_cfg = {'lb_config': 'HW'}
+ scenario_helper.options = {}
+ scenario_helper.all_options = {}
+
+ vfw_approx_setup_helper = FWApproxSetupEnvHelper(vnfd_helper, ssh_helper, scenario_helper)
+ vfw_approx_setup_helper.get_flows_config = mock.Mock()
+
+ vfw_approx_setup_helper.ssh_helper.provision_tool = mock.Mock(return_value='tool_path')
+ vfw_approx_setup_helper.ssh_helper.all_ports = mock.Mock()
+ vfw_approx_setup_helper.vnfd_helper.port_nums = mock.Mock(return_value=[0, 1])
+ expected = 'sudo tool_path -p 0x3 -f /tmp/vfw_config -s /tmp/vfw_script --hwlb 3'
+ self.assertEqual(vfw_approx_setup_helper.build_config(), expected)
+ vfw_approx_setup_helper.get_flows_config.assert_called_once()
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vims_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vims_vnf.py
new file mode 100644
index 000000000..d86dab8ad
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vims_vnf.py
@@ -0,0 +1,713 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License,Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+import mock
+
+from yardstick.network_services.vnf_generic.vnf import vims_vnf
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+
+
+class TestVimsPcscfVnf(unittest.TestCase):
+
+ VNFD_0 = {
+ "short-name": "SippVnf",
+ "vdu": [
+ {
+ "id": "sippvnf-baremetal",
+ "routing_table": "",
+ "external-interface": [
+ {
+ "virtual-interface": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vnf__0": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "vnf__1": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__1",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:e8"
+ }
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "vnfd-connection-point-ref": "xe0",
+ "name": "xe0"
+ },
+ {
+ "virtual-interface": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vnf__0": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "vnf__1": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "node_name": "vnf__1",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:e8"
+ }
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe1",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "vnfd-connection-point-ref": "xe1",
+ "name": "xe1"
+ }
+ ],
+ "name": "sippvnf-baremetal",
+ "description": "Sipp"
+ }
+ ],
+ "description": "ImsbenchSipp",
+ "mgmt-interface": {
+ "vdu-id": "sipp-baremetal",
+ "password": "r00t",
+ "user": "root",
+ "ip": "10.80.3.11"
+ },
+ "benchmark": {
+ "kpi": [
+ "packets_in",
+ "packets_fwd",
+ "packets_dropped"
+ ]
+ },
+ "id": "SippVnf",
+ "name": "SippVnf"
+ }
+
+ def setUp(self):
+ self.pcscf_vnf = vims_vnf.VimsPcscfVnf('vnf__0', self.VNFD_0)
+
+ def test___init__(self):
+ self.assertEqual(self.pcscf_vnf.name, 'vnf__0')
+ self.assertIsInstance(self.pcscf_vnf.resource_helper,
+ vims_vnf.VimsResourceHelper)
+ self.assertIsNone(self.pcscf_vnf._vnf_process)
+
+ def test_wait_for_instantiate(self):
+ self.assertIsNone(self.pcscf_vnf.wait_for_instantiate())
+
+ def test__run(self):
+ self.assertIsNone(self.pcscf_vnf._run())
+
+ def test_start_collect(self):
+ self.assertIsNone(self.pcscf_vnf.start_collect())
+
+ def test_collect_kpi(self):
+ self.assertIsNone(self.pcscf_vnf.collect_kpi())
+
+
+class TestVimsHssVnf(unittest.TestCase):
+
+ VNFD_1 = {
+ "short-name": "SippVnf",
+ "vdu": [
+ {
+ "id": "sippvnf-baremetal",
+ "routing_table": "",
+ "external-interface": [
+ {
+ "virtual-interface": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vnf__0": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "vnf__1": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__1",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:e8"
+ }
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "vnfd-connection-point-ref": "xe0",
+ "name": "xe0"
+ },
+ {
+ "virtual-interface": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vnf__0": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "vnf__1": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "node_name": "vnf__1",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:e8"
+ }
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe1",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "vnfd-connection-point-ref": "xe1",
+ "name": "xe1"
+ }
+ ],
+ "name": "sippvnf-baremetal",
+ "description": "Sipp"
+ }
+ ],
+ "description": "ImsbenchSipp",
+ "mgmt-interface": {
+ "vdu-id": "sipp-baremetal",
+ "password": "r00t",
+ "user": "root",
+ "ip": "10.80.3.11"
+ },
+ "benchmark": {
+ "kpi": [
+ "packets_in",
+ "packets_fwd",
+ "packets_dropped"
+ ]
+ },
+ "id": "SippVnf",
+ "name": "SippVnf"
+ }
+
+ SCENARIO_CFG = {
+ "task_id": "86414e11-5ef5-4426-b175-71baaa00fbd7",
+ "tc": "tc_vims_baremetal_sipp",
+ "runner": {
+ "interval": 1,
+ "output_config": {
+ "DEFAULT": {
+ "debug": "False",
+ "dispatcher": [
+ "influxdb"
+ ]
+ },
+ "nsb": {
+ "debug": "False",
+ "trex_client_lib": "/opt/nsb_bin/trex_client/stl",
+ "bin_path": "/opt/nsb_bin",
+ "trex_path": "/opt/nsb_bin/trex/scripts",
+ "dispatcher": "influxdb"
+ },
+ "dispatcher_influxdb": {
+ "username": "root",
+ "target": "http://10.80.3.11:8086",
+ "db_name": "yardstick",
+ "timeout": "5",
+ "debug": "False",
+ "password": "root",
+ "dispatcher": "influxdb"
+ },
+ "dispatcher_http": {
+ "debug": "False",
+ "dispatcher": "influxdb",
+ "timeout": "5",
+ "target": "http://127.0.0.1:8000/results"
+ },
+ "dispatcher_file": {
+ "debug": "False",
+ "backup_count": "0",
+ "max_bytes": "0",
+ "dispatcher": "influxdb",
+ "file_path": "/tmp/yardstick.out"
+ }
+ },
+ "runner_id": 22610,
+ "duration": 60,
+ "type": "Vims"
+ },
+ "nodes": {
+ "vnf__0": "pcscf.yardstick-86414e11",
+ "vnf__1": "hss.yardstick-86414e11",
+ "tg__0": "sipp.yardstick-86414e11"
+ },
+ "topology": "vims-topology.yaml",
+ "type": "NSPerf",
+ "traffic_profile": "../../traffic_profiles/ipv4_throughput.yaml",
+ "task_path": "samples/vnf_samples/nsut/vims",
+ "options": {
+ "init_reg_max": 5000,
+ "end_user": 10000,
+ "reg_cps": 20,
+ "rereg_cps": 20,
+ "rereg_step": 10,
+ "wait_time": 5,
+ "start_user": 1,
+ "msgc_cps": 10,
+ "dereg_step": 10,
+ "call_cps": 10,
+ "reg_step": 10,
+ "init_reg_cps": 50,
+ "dereg_cps": 20,
+ "msgc_step": 5,
+ "call_step": 5,
+ "hold_time": 15,
+ "port": 5060,
+ "run_mode": "nortp"
+ }
+ }
+
+ CONTEXT_CFG = {
+ "nodes": {
+ "tg__0": {
+ "ip": "10.80.3.11",
+ "interfaces": {
+ "xe0": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vnf__0": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "vnf__1": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__1",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:e8"
+ }
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "xe1": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vnf__0": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "vnf__1": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "node_name": "vnf__1",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:e8"
+ }
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe1",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ }
+ },
+ "user": "root",
+ "password": "r00t",
+ "VNF model": "../../vnf_descriptors/tg_sipp_vnfd.yaml",
+ "name": "sipp.yardstick-86414e11",
+ "vnfd-id-ref": "tg__0",
+ "member-vnf-index": "1",
+ "role": "TrafficGen",
+ "ctx_type": "Node"
+ },
+ "vnf__0": {
+ "ip": "10.80.3.7",
+ "interfaces": {
+ "xe0": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "tg__0": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe1",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ }
+ },
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ }
+ },
+ "user": "root",
+ "password": "r00t",
+ "VNF model": "../../vnf_descriptors/vims_pcscf_vnfd.yaml",
+ "name": "pcscf.yardstick-86414e11",
+ "vnfd-id-ref": "vnf__0",
+ "member-vnf-index": "2",
+ "role": "VirtualNetworkFunction",
+ "ctx_type": "Node"
+ },
+ "vnf__1": {
+ "ip": "10.80.3.7",
+ "interfaces": {
+ "xe0": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "tg__0": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "peer_intf": {
+ "vld_id": "data_network",
+ "peer_ifname": "xe1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "network": {},
+ "local_ip": "10.80.3.7",
+ "peer_intf": {
+ "vld_id": "ims_network",
+ "peer_ifname": "xe0",
+ "dst_mac": "90:e2:ba:7c:41:e8",
+ "network": {},
+ "local_ip": "10.80.3.11",
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ },
+ "node_name": "vnf__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:a8"
+ },
+ "node_name": "tg__0",
+ "netmask": "255.255.255.0",
+ "peer_name": "vnf__1",
+ "dst_ip": "10.80.3.7",
+ "ifname": "xe1",
+ "local_mac": "90:e2:ba:7c:30:e8"
+ }
+ },
+ "node_name": "vnf__1",
+ "netmask": "255.255.255.0",
+ "peer_name": "tg__0",
+ "dst_ip": "10.80.3.11",
+ "ifname": "xe0",
+ "local_mac": "90:e2:ba:7c:41:e8"
+ }
+ },
+ "user": "root",
+ "password": "r00t",
+ "VNF model": "../../vnf_descriptors/vims_hss_vnfd.yaml",
+ "name": "hss.yardstick-86414e11",
+ "vnfd-id-ref": "vnf__1",
+ "member-vnf-index": "3",
+ "role": "VirtualNetworkFunction",
+ "ctx_type": "Node"
+ }
+ },
+ "networks": {}
+ }
+
+ def setUp(self):
+ self.hss_vnf = vims_vnf.VimsHssVnf('vnf__1', self.VNFD_1)
+
+ def test___init__(self):
+ self.assertIsInstance(self.hss_vnf.resource_helper,
+ vims_vnf.VimsResourceHelper)
+ self.assertIsNone(self.hss_vnf._vnf_process)
+
+ @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper")
+ def test_instantiate(self, ssh):
+ mock_ssh(ssh)
+ hss_vnf = vims_vnf.VimsHssVnf('vnf__1', self.VNFD_1)
+ self.assertIsNone(hss_vnf.instantiate(self.SCENARIO_CFG,
+ self.CONTEXT_CFG))
+
+ def test_wait_for_instantiate(self):
+ self.assertIsNone(self.hss_vnf.wait_for_instantiate())
+
+ def test_start_collect(self):
+ self.assertIsNone(self.hss_vnf.start_collect())
+
+ def test_collect_kpi(self):
+ self.assertIsNone(self.hss_vnf.collect_kpi())
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_vpe_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vpe_vnf.py
index 55cd4d2e8..8342f5faa 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_vpe_vnf.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vpe_vnf.py
@@ -1,6 +1,4 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,33 +11,19 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
-import mock
from multiprocessing import Process, Queue
-import os
-import six.moves.configparser as configparser
import time
-import unittest
-
-from tests.unit import STL_MOCKS
-from tests.unit.network_services.vnf_generic.vnf.test_base import FileAbsPath
-from tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
-from yardstick.network_services.vnf_generic.vnf.base import QueueFileWrapper
-from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
+import mock
+import unittest
-SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
-
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
- from yardstick.network_services.vnf_generic.vnf.vpe_vnf import ConfigCreate
- from yardstick.network_services.nfvi.resource import ResourceProfile
- from yardstick.network_services.vnf_generic.vnf.vpe_vnf import \
- VpeApproxVnf, VpeApproxSetupEnvHelper
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.nfvi.resource import ResourceProfile
+from yardstick.network_services.vnf_generic.vnf import base as vnf_base
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+from yardstick.network_services.vnf_generic.vnf import vpe_vnf
+from yardstick.tests.unit.network_services.vnf_generic.vnf import test_base
TEST_FILE_YAML = 'nsb_test_case.yaml'
@@ -48,7 +32,7 @@ NAME = 'vnf_1'
PING_OUTPUT_1 = "Pkts in: 101\r\n\tPkts dropped by AH: 100\r\n\tPkts dropped by other: 100"
-MODULE_PATH = FileAbsPath(__file__)
+MODULE_PATH = test_base.FileAbsPath(__file__)
get_file_abspath = MODULE_PATH.get_path
@@ -156,52 +140,15 @@ class TestConfigCreate(unittest.TestCase):
}
def test___init__(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- config_create = ConfigCreate(vnfd_helper, 2)
+ vnfd_helper = vnf_base.VnfdHelper(self.VNFD_0)
+ config_create = vpe_vnf.ConfigCreate(vnfd_helper, 2)
self.assertEqual(config_create.uplink_ports, ['xe0'])
self.assertEqual(config_create.downlink_ports, ['xe1'])
self.assertEqual(config_create.socket, 2)
- def test_vpe_initialize(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- config_create = ConfigCreate(vnfd_helper, 2)
- config = configparser.ConfigParser()
- config_create.vpe_initialize(config)
- self.assertEqual(config.get('EAL', 'log_level'), '0')
- self.assertEqual(config.get('PIPELINE0', 'type'), 'MASTER')
- self.assertEqual(config.get('PIPELINE0', 'core'), 's2C0')
- self.assertEqual(config.get('MEMPOOL0', 'pool_size'), '256K')
- self.assertEqual(config.get('MEMPOOL1', 'pool_size'), '2M')
-
- def test_vpe_rxq(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- config_create = ConfigCreate(vnfd_helper, 2)
- config = configparser.ConfigParser()
- config_create.downlink_ports = ['xe0']
- config_create.vpe_rxq(config)
- self.assertEqual(config.get('RXQ0.0', 'mempool'), 'MEMPOOL1')
-
- def test_get_sink_swq(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- config_create = ConfigCreate(vnfd_helper, 2)
- config = configparser.ConfigParser()
- config.add_section('PIPELINE0')
- config.set('PIPELINE0', 'key1', 'value1')
- config.set('PIPELINE0', 'key2', 'value2 SINK')
- config.set('PIPELINE0', 'key3', 'TM value3')
- config.set('PIPELINE0', 'key4', 'value4')
- config.set('PIPELINE0', 'key5', 'the SINK value5')
-
- self.assertEqual(config_create.get_sink_swq(config, 'PIPELINE0', 'key1', 5), 'SWQ-1')
- self.assertEqual(config_create.get_sink_swq(config, 'PIPELINE0', 'key2', 5), 'SWQ-1 SINK0')
- self.assertEqual(config_create.get_sink_swq(config, 'PIPELINE0', 'key3', 5), 'SWQ-1 TM5')
- config_create.sw_q += 1
- self.assertEqual(config_create.get_sink_swq(config, 'PIPELINE0', 'key4', 5), 'SWQ0')
- self.assertEqual(config_create.get_sink_swq(config, 'PIPELINE0', 'key5', 5), 'SWQ0 SINK1')
-
def test_generate_vpe_script(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- vpe_config_vnf = ConfigCreate(vnfd_helper, 2)
+ vnfd_helper = vnf_base.VnfdHelper(self.VNFD_0)
+ vpe_config_vnf = vpe_vnf.ConfigCreate(vnfd_helper, 2)
intf = [
{
"name": 'xe1',
@@ -224,17 +171,6 @@ class TestConfigCreate(unittest.TestCase):
self.assertIsInstance(result, str)
self.assertNotEqual(result, '')
- def test_create_vpe_config(self):
- vnfd_helper = VnfdHelper(self.VNFD_0)
- config_create = ConfigCreate(vnfd_helper, 23)
- config_create.downlink_ports = ['xe1']
- config_create.uplink_ports = ['xe1']
- curr_path = os.path.dirname(os.path.abspath(__file__))
- vpe_cfg = "samples/vnf_samples/nsut/vpe/vpe_config"
- vnf_cfg = os.path.join(curr_path, "../../../../..", vpe_cfg)
- config_create.create_vpe_config(vnf_cfg)
- os.system("git checkout -- %s" % vnf_cfg)
-
class TestVpeApproxVnf(unittest.TestCase):
@@ -405,7 +341,7 @@ class TestVpeApproxVnf(unittest.TestCase):
'interfaces': {
'xe0': {
'local_iface_name': 'ens513f0',
- 'vld_id': VpeApproxVnf.DOWNLINK,
+ 'vld_id': vpe_vnf.VpeApproxVnf.DOWNLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.40.20',
'dst_mac': '00:00:00:00:00:01',
@@ -439,7 +375,7 @@ class TestVpeApproxVnf(unittest.TestCase):
'interfaces': {
'xe0': {
'local_iface_name': 'ens785f0',
- 'vld_id': VpeApproxVnf.UPLINK,
+ 'vld_id': vpe_vnf.VpeApproxVnf.UPLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.100.20',
'dst_mac': '00:00:00:00:00:02',
@@ -470,7 +406,7 @@ class TestVpeApproxVnf(unittest.TestCase):
'interfaces': {
'xe0': {
'local_iface_name': 'ens786f0',
- 'vld_id': VpeApproxVnf.UPLINK,
+ 'vld_id': vpe_vnf.VpeApproxVnf.UPLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.100.19',
'dst_mac': '00:00:00:00:00:04',
@@ -482,7 +418,7 @@ class TestVpeApproxVnf(unittest.TestCase):
},
'xe1': {
'local_iface_name': 'ens786f1',
- 'vld_id': VpeApproxVnf.DOWNLINK,
+ 'vld_id': vpe_vnf.VpeApproxVnf.DOWNLINK,
'netmask': '255.255.255.0',
'local_ip': '152.16.40.19',
'dst_mac': '00:00:00:00:00:03',
@@ -532,28 +468,39 @@ class TestVpeApproxVnf(unittest.TestCase):
}
def setUp(self):
- self.mock_sleep = mock.patch.object(time, 'sleep').start()
+ self._mock_time_sleep = mock.patch.object(time, 'sleep')
+ self.mock_time_sleep = self._mock_time_sleep.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_time_sleep.stop()
def test___init__(self):
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
self.assertIsNone(vpe_approx_vnf._vnf_process)
- @mock.patch(SSH_HELPER)
- def test_collect_kpi_sa_not_running(self, ssh):
- mock_ssh(ssh)
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server',
+ return_value='mock_node')
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
+ def test_collect_kpi_sa_not_running(self, ssh, *args):
+ test_base.mock_ssh(ssh)
resource = mock.Mock(autospec=ResourceProfile)
- resource.check_if_sa_running.return_value = 1, ''
+ resource.check_if_system_agent_running.return_value = 1, ''
resource.amqp_collect_nfvi_kpi.return_value = {'foo': 234}
- resource.check_if_sa_running.return_value = (1, None)
+ resource.check_if_system_agent_running.return_value = (1, None)
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {vpe_approx_vnf.name: "mock"}
+ }
vpe_approx_vnf.q_in = mock.MagicMock()
vpe_approx_vnf.q_out = mock.MagicMock()
vpe_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
vpe_approx_vnf.resource_helper.resource = resource
expected = {
+ 'physical_node': 'mock_node',
'pkt_in_down_stream': 0,
'pkt_in_up_stream': 0,
'pkt_drop_down_stream': 0,
@@ -562,21 +509,27 @@ class TestVpeApproxVnf(unittest.TestCase):
}
self.assertEqual(vpe_approx_vnf.collect_kpi(), expected)
- @mock.patch(SSH_HELPER)
- def test_collect_kpi_sa_running(self, ssh):
- mock_ssh(ssh)
+ @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server',
+ return_value='mock_node')
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
+ def test_collect_kpi_sa_running(self, ssh, *args):
+ test_base.mock_ssh(ssh)
resource = mock.Mock(autospec=ResourceProfile)
- resource.check_if_sa_running.return_value = 0, '1234'
+ resource.check_if_system_agent_running.return_value = 0, '1234'
resource.amqp_collect_nfvi_kpi.return_value = {'foo': 234}
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf.scenario_helper.scenario_cfg = {
+ 'nodes': {vpe_approx_vnf.name: "mock"}
+ }
vpe_approx_vnf.q_in = mock.MagicMock()
vpe_approx_vnf.q_out = mock.MagicMock()
vpe_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
vpe_approx_vnf.resource_helper.resource = resource
expected = {
+ 'physical_node': 'mock_node',
'pkt_in_down_stream': 0,
'pkt_in_up_stream': 0,
'pkt_drop_down_stream': 0,
@@ -585,20 +538,20 @@ class TestVpeApproxVnf(unittest.TestCase):
}
self.assertEqual(vpe_approx_vnf.collect_kpi(), expected)
- @mock.patch(SSH_HELPER)
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
def test_vnf_execute(self, ssh):
- mock_ssh(ssh)
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ test_base.mock_ssh(ssh)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
vpe_approx_vnf.q_in = mock.MagicMock()
vpe_approx_vnf.q_out = mock.MagicMock()
vpe_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
self.assertEqual(vpe_approx_vnf.vnf_execute("quit", 0), '')
- @mock.patch(SSH_HELPER)
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
def test_run_vpe(self, ssh):
- mock_ssh(ssh)
+ test_base.mock_ssh(ssh)
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
vpe_approx_vnf.tc_file_name = get_file_abspath(TEST_FILE_YAML)
vpe_approx_vnf.vnf_cfg = {
'lb_config': 'SW',
@@ -625,14 +578,13 @@ class TestVpeApproxVnf(unittest.TestCase):
self.assertIsNone(vpe_approx_vnf._run())
@mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.MultiPortConfig")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.Context")
@mock.patch("yardstick.network_services.vnf_generic.vnf.vpe_vnf.ConfigCreate")
- @mock.patch("yardstick.network_services.vnf_generic.vnf.vpe_vnf.open")
- @mock.patch(SSH_HELPER)
+ @mock.patch("six.moves.builtins.open")
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
def test_build_config(self, ssh, *args):
- mock_ssh(ssh)
- vpe_approx_vnf = VpeApproxSetupEnvHelper(mock.MagicMock(),
- mock.MagicMock, mock.MagicMock)
+ test_base.mock_ssh(ssh)
+ vpe_approx_vnf = vpe_vnf.VpeApproxSetupEnvHelper(
+ mock.MagicMock(), mock.MagicMock(), mock.MagicMock())
vpe_approx_vnf.tc_file_name = get_file_abspath(TEST_FILE_YAML)
vpe_approx_vnf.generate_port_pairs = mock.Mock()
vpe_approx_vnf.vnf_cfg = {
@@ -659,11 +611,18 @@ class TestVpeApproxVnf(unittest.TestCase):
vpe_approx_vnf.ssh_helper.bin_path = mock.Mock()
vpe_approx_vnf.ssh_helper.upload_config_file = mock.MagicMock()
self.assertIsNone(vpe_approx_vnf._build_vnf_ports())
- self.assertIsNotNone(vpe_approx_vnf.build_config())
- @mock.patch(SSH_HELPER)
+ vpe_approx_vnf.ssh_helper.provision_tool = mock.Mock(return_value='tool_path')
+ vpe_approx_vnf.ssh_helper.all_ports = mock.Mock()
+ vpe_approx_vnf.vnfd_helper.port_nums = mock.Mock(return_value=[0, 1])
+ vpe_approx_vnf.scenario_helper.vnf_cfg = {'lb_config': 'HW'}
+
+ expected = 'sudo tool_path -p 0x3 -f /tmp/vpe_config -s /tmp/vpe_script --hwlb 3'
+ self.assertEqual(vpe_approx_vnf.build_config(), expected)
+
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
def test_wait_for_instantiate(self, ssh):
- mock_ssh(ssh)
+ test_base.mock_ssh(ssh)
mock_process = mock.Mock(autospec=Process)
mock_process.is_alive.return_value = True
@@ -675,18 +634,19 @@ class TestVpeApproxVnf(unittest.TestCase):
mock_resource = mock.MagicMock()
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
vpe_approx_vnf._vnf_process = mock_process
vpe_approx_vnf.q_out = mock_q_out
- vpe_approx_vnf.queue_wrapper = mock.Mock(autospec=QueueFileWrapper)
+ vpe_approx_vnf.queue_wrapper = mock.Mock(
+ autospec=vnf_base.QueueFileWrapper)
vpe_approx_vnf.resource_helper.resource = mock_resource
vpe_approx_vnf.q_out.put("pipeline>")
self.assertEqual(vpe_approx_vnf.wait_for_instantiate(), 432)
- @mock.patch(SSH_HELPER)
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
def test_wait_for_instantiate_fragmented(self, ssh):
- mock_ssh(ssh)
+ test_base.mock_ssh(ssh)
mock_process = mock.Mock(autospec=Process)
mock_process.is_alive.return_value = True
@@ -699,17 +659,18 @@ class TestVpeApproxVnf(unittest.TestCase):
mock_resource = mock.MagicMock()
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
vpe_approx_vnf._vnf_process = mock_process
vpe_approx_vnf.q_out = mock_q_out
- vpe_approx_vnf.queue_wrapper = mock.Mock(autospec=QueueFileWrapper)
+ vpe_approx_vnf.queue_wrapper = mock.Mock(
+ autospec=vnf_base.QueueFileWrapper)
vpe_approx_vnf.resource_helper.resource = mock_resource
self.assertEqual(vpe_approx_vnf.wait_for_instantiate(), 432)
- @mock.patch(SSH_HELPER)
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
def test_wait_for_instantiate_crash(self, ssh):
- mock_ssh(ssh, exec_result=(1, "", ""))
+ test_base.mock_ssh(ssh, exec_result=(1, "", ""))
mock_process = mock.Mock(autospec=Process)
mock_process.is_alive.return_value = False
@@ -717,7 +678,7 @@ class TestVpeApproxVnf(unittest.TestCase):
mock_resource = mock.MagicMock()
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
vpe_approx_vnf._vnf_process = mock_process
vpe_approx_vnf.resource_helper.resource = mock_resource
@@ -726,9 +687,9 @@ class TestVpeApproxVnf(unittest.TestCase):
self.assertIn('VNF process died', str(raised.exception))
- @mock.patch(SSH_HELPER)
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
def test_wait_for_instantiate_panic(self, ssh):
- mock_ssh(ssh, exec_result=(1, "", ""))
+ test_base.mock_ssh(ssh, exec_result=(1, "", ""))
mock_process = mock.Mock(autospec=Process)
mock_process.is_alive.return_value = True
@@ -736,7 +697,7 @@ class TestVpeApproxVnf(unittest.TestCase):
mock_resource = mock.MagicMock()
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
vpe_approx_vnf._vnf_process = mock_process
vpe_approx_vnf.resource_helper.resource = mock_resource
@@ -746,9 +707,9 @@ class TestVpeApproxVnf(unittest.TestCase):
self.assertIn('Error starting', str(raised.exception))
- @mock.patch(SSH_HELPER)
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
def test_wait_for_instantiate_panic_fragmented(self, ssh):
- mock_ssh(ssh, exec_result=(1, "", ""))
+ test_base.mock_ssh(ssh, exec_result=(1, "", ""))
mock_process = mock.Mock(autospec=Process)
mock_process.is_alive.return_value = True
@@ -761,7 +722,7 @@ class TestVpeApproxVnf(unittest.TestCase):
mock_resource = mock.MagicMock()
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
vpe_approx_vnf._vnf_process = mock_process
vpe_approx_vnf.q_out = mock_q_out
vpe_approx_vnf.resource_helper.resource = mock_resource
@@ -771,11 +732,11 @@ class TestVpeApproxVnf(unittest.TestCase):
self.assertIn('Error starting', str(raised.exception))
- @mock.patch(SSH_HELPER)
+ @mock.patch.object(sample_vnf, 'VnfSshHelper')
def test_terminate(self, ssh):
- mock_ssh(ssh)
+ test_base.mock_ssh(ssh)
- vpe_approx_vnf = VpeApproxVnf(NAME, self.VNFD_0)
+ vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
vpe_approx_vnf._vnf_process = mock.MagicMock()
vpe_approx_vnf._resource_collect_stop = mock.Mock()
vpe_approx_vnf.resource_helper = mock.MagicMock()
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vpp_helpers.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vpp_helpers.py
new file mode 100644
index 000000000..cca604f43
--- /dev/null
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vpp_helpers.py
@@ -0,0 +1,1723 @@
+# Copyright (c) 2019 Viosoft Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import ipaddress
+import unittest
+
+import mock
+
+from yardstick.common import exceptions
+from yardstick.network_services.helpers import cpu
+from yardstick.network_services.vnf_generic.vnf import vpp_helpers
+from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
+from yardstick.network_services.vnf_generic.vnf.vpp_helpers import \
+ VppSetupEnvHelper, VppConfigGenerator, VatTerminal
+
+
+class TestVppConfigGenerator(unittest.TestCase):
+
+ def test_add_config_item(self):
+ test_item = {}
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_config_item(test_item, '/tmp/vpe.log',
+ ['unix', 'log'])
+ self.assertEqual({'unix': {'log': '/tmp/vpe.log'}}, test_item)
+
+ def test_add_config_item_str(self):
+ test_item = {'unix': ''}
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_config_item(test_item, '/tmp/vpe.log',
+ ['unix', 'log'])
+ self.assertEqual({'unix': {'log': '/tmp/vpe.log'}}, test_item)
+
+ def test_add_unix_log(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_unix_log()
+ self.assertEqual('unix\n{\n log /tmp/vpe.log\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_unix_cli_listen(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_unix_cli_listen()
+ self.assertEqual('unix\n{\n cli-listen /run/vpp/cli.sock\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_unix_nodaemon(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_unix_nodaemon()
+ self.assertEqual('unix\n{\n nodaemon \n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_unix_coredump(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_unix_coredump()
+ self.assertEqual('unix\n{\n full-coredump \n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_dev(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_dev('0000:00:00.0')
+ self.assertEqual('dpdk\n{\n dev 0000:00:00.0 \n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_cryptodev(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_cryptodev(2, '0000:00:00.0')
+ self.assertEqual(
+ 'dpdk\n{\n dev 0000:00:01.0 \n dev 0000:00:01.1 \n uio-driver igb_uio\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_sw_cryptodev(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_sw_cryptodev('aesni_gcm', 0, 2)
+ self.assertEqual(
+ 'dpdk\n{\n vdev cryptodev_aesni_gcm_pmd,socket_id=0 \n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_dev_default_rxq(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_dev_default_rxq(1)
+ self.assertEqual(
+ 'dpdk\n{\n dev default\n {\n num-rx-queues 1\n }\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_dev_default_rxd(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_dev_default_rxd(2048)
+ self.assertEqual(
+ 'dpdk\n{\n dev default\n {\n num-rx-desc 2048\n }\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_dev_default_txd(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_dev_default_txd(2048)
+ self.assertEqual(
+ 'dpdk\n{\n dev default\n {\n num-tx-desc 2048\n }\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_log_level(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_log_level('debug')
+ self.assertEqual('dpdk\n{\n log-level debug\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_socketmem(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_socketmem('1024,1024')
+ self.assertEqual('dpdk\n{\n socket-mem 1024,1024\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_num_mbufs(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_num_mbufs(32768)
+ self.assertEqual('dpdk\n{\n num-mbufs 32768\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_uio_driver(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_uio_driver('igb_uio')
+ self.assertEqual('dpdk\n{\n uio-driver igb_uio\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_cpu_main_core(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_cpu_main_core('1,2')
+ self.assertEqual('cpu\n{\n main-core 1,2\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_cpu_corelist_workers(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_cpu_corelist_workers('1,2')
+ self.assertEqual('cpu\n{\n corelist-workers 1,2\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_heapsize(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_heapsize('4G')
+ self.assertEqual('heapsize 4G\n', vpp_config_generator.dump_config())
+
+ def test_add_ip6_hash_buckets(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_ip6_hash_buckets(2000000)
+ self.assertEqual('ip6\n{\n hash-buckets 2000000\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_ip6_heap_size(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_ip6_heap_size('4G')
+ self.assertEqual('ip6\n{\n heap-size 4G\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_ip_heap_size(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_ip_heap_size('4G')
+ self.assertEqual('ip\n{\n heap-size 4G\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_statseg_size(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_statseg_size('4G')
+ self.assertEqual('statseg\n{\n size 4G\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_plugin(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_plugin('enable', ['dpdk_plugin.so'])
+ self.assertEqual(
+ 'plugins\n{\n plugin [\'dpdk_plugin.so\']\n {\n enable \n }\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_no_multi_seg(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_no_multi_seg()
+ self.assertEqual('dpdk\n{\n no-multi-seg \n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_add_dpdk_no_tx_checksum_offload(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_dpdk_no_tx_checksum_offload()
+ self.assertEqual('dpdk\n{\n no-tx-checksum-offload \n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_dump_config(self):
+ vpp_config_generator = VppConfigGenerator()
+ vpp_config_generator.add_unix_log()
+ self.assertEqual('unix\n{\n log /tmp/vpe.log\n}\n',
+ vpp_config_generator.dump_config())
+
+ def test_pci_dev_check(self):
+ self.assertTrue(VppConfigGenerator.pci_dev_check('0000:00:00.0'))
+
+ def test_pci_dev_check_error(self):
+ with self.assertRaises(ValueError) as raised:
+ VppConfigGenerator.pci_dev_check('0000:00:0.0')
+ self.assertIn(
+ 'PCI address 0000:00:0.0 is not in valid format xxxx:xx:xx.x',
+ str(raised.exception))
+
+
+class TestVppSetupEnvHelper(unittest.TestCase):
+ VNFD_0 = {
+ "benchmark": {
+ "kpi": [
+ "packets_in",
+ "packets_fwd",
+ "packets_dropped"
+ ]
+ },
+ "connection-point": [
+ {
+ "name": "xe0",
+ "type": "VPORT"
+ },
+ {
+ "name": "xe1",
+ "type": "VPORT"
+ }
+ ],
+ "description": "VPP IPsec",
+ "id": "VipsecApproxVnf",
+ "mgmt-interface": {
+ "ip": "10.10.10.101",
+ "password": "r00t",
+ "user": "root",
+ "vdu-id": "ipsecvnf-baremetal"
+ },
+ "name": "IpsecVnf",
+ "short-name": "IpsecVnf",
+ "vdu": [
+ {
+ "description": "VPP Ipsec",
+ "external-interface": [
+ {
+ "name": "xe0",
+ "virtual-interface": {
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.2",
+ "local_mac": "90:e2:ba:7c:41:a8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe0",
+ "peer_intf": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.2",
+ "dst_mac": "90:e2:ba:7c:41:a8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.1",
+ "local_mac": "90:e2:ba:7c:30:e8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_name": "vnf__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:81:00.0"
+ },
+ "peer_name": "tg__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:ff:06.0"
+ },
+ "vnfd-connection-point-ref": "xe0"
+ },
+ {
+ "name": "xe1",
+ "virtual-interface": {
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.2",
+ "dst_mac": "0a:b1:ec:fd:a2:66",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.1",
+ "local_mac": "4e:90:85:d3:c5:13",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe1",
+ "peer_intf": {
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.1",
+ "dst_mac": "4e:90:85:d3:c5:13",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.2",
+ "local_mac": "0a:b1:ec:fd:a2:66",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_name": "vnf__0",
+ "vld_id": "ciphertext",
+ "vpci": "0000:00:07.0"
+ },
+ "peer_name": "vnf__1",
+ "vld_id": "ciphertext",
+ "vpci": "0000:ff:07.0"
+ },
+ "vnfd-connection-point-ref": "xe1"
+ }
+ ],
+ "id": "ipsecvnf-baremetal",
+ "name": "ipsecvnf-baremetal",
+ "routing_table": []
+ }
+ ]
+ }
+
+ VNFD_1 = {
+ "benchmark": {
+ "kpi": [
+ "packets_in",
+ "packets_fwd",
+ "packets_dropped"
+ ]
+ },
+ "connection-point": [
+ {
+ "name": "xe0",
+ "type": "VPORT"
+ },
+ {
+ "name": "xe1",
+ "type": "VPORT"
+ }
+ ],
+ "description": "VPP IPsec",
+ "id": "VipsecApproxVnf",
+ "mgmt-interface": {
+ "ip": "10.10.10.101",
+ "password": "r00t",
+ "user": "root",
+ "vdu-id": "ipsecvnf-baremetal"
+ },
+ "name": "IpsecVnf",
+ "short-name": "IpsecVnf",
+ "vdu": [
+ {
+ "description": "VPP Ipsec",
+ "external-interface": [
+ {
+ "name": "xe0",
+ "virtual-interface": {
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.2",
+ "local_mac": "90:e2:ba:7c:41:a8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe0",
+ "peer_intf": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.2",
+ "dst_mac": "90:e2:ba:7c:41:a8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.1",
+ "local_mac": "90:e2:ba:7c:30:e8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_name": "vnf__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:81:00.0"
+ },
+ "peer_name": "tg__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:ff:06.0"
+ },
+ "vnfd-connection-point-ref": "xe0"
+ },
+ {
+ "name": "xe1",
+ "virtual-interface": {
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.2",
+ "dst_mac": "0a:b1:ec:fd:a2:66",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.1",
+ "local_mac": "4e:90:85:d3:c5:13",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe1",
+ "peer_intf": {
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.1",
+ "dst_mac": "4e:90:85:d3:c5:13",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.2",
+ "local_mac": "0a:b1:ec:fd:a2:66",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_name": "vnf__0",
+ "vld_id": "ciphertext",
+ "vpci": "0000:00:07.0"
+ },
+ "peer_name": "vnf__1",
+ "vld_id": "ciphertext",
+ "vpci": "0000:ff:07.0"
+ },
+ "vnfd-connection-point-ref": "xe1"
+ }
+ ],
+ "id": "ipsecvnf-baremetal",
+ "name": "ipsecvnf-baremetal",
+ "routing_table": []
+ }
+ ]
+ }
+
+ VNFD_2 = {
+ "benchmark": {
+ "kpi": [
+ "packets_in",
+ "packets_fwd",
+ "packets_dropped"
+ ]
+ },
+ "connection-point": [
+ {
+ "name": "xe0",
+ "type": "VPORT"
+ },
+ {
+ "name": "xe1",
+ "type": "VPORT"
+ }
+ ],
+ "description": "VPP IPsec",
+ "id": "VipsecApproxVnf",
+ "mgmt-interface": {
+ "ip": "10.10.10.101",
+ "password": "r00t",
+ "user": "root",
+ "vdu-id": "ipsecvnf-baremetal"
+ },
+ "name": "IpsecVnf",
+ "short-name": "IpsecVnf",
+ "vdu": [
+ {
+ "description": "VPP Ipsec",
+ "external-interface": [
+ {
+ "name": "xe0",
+ "virtual-interface": {
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.1",
+ "dst_mac": "90:e2:ba:7c:30:e8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.2",
+ "local_mac": "90:e2:ba:7c:41:a8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe0",
+ "peer_intf": {
+ "dpdk_port_num": 0,
+ "driver": "igb_uio",
+ "dst_ip": "192.168.100.2",
+ "dst_mac": "90:e2:ba:7c:41:a8",
+ "ifname": "xe0",
+ "local_ip": "192.168.100.1",
+ "local_mac": "90:e2:ba:7c:30:e8",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "tg__0",
+ "peer_ifname": "xe0",
+ "peer_name": "vnf__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:81:00.0"
+ },
+ "peer_name": "tg__0",
+ "vld_id": "uplink_0",
+ "vpci": "0000:ff:06.0"
+ },
+ "vnfd-connection-point-ref": "xe0"
+ },
+ {
+ "name": "xe1",
+ "virtual-interface": {
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.2",
+ "dst_mac": "0a:b1:ec:fd:a2:66",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.1",
+ "local_mac": "4e:90:85:d3:c5:13",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__0",
+ "peer_ifname": "xe1",
+ "peer_intf": {
+ "driver": "igb_uio",
+ "dst_ip": "1.1.1.1",
+ "dst_mac": "4e:90:85:d3:c5:13",
+ "ifname": "xe1",
+ "local_ip": "1.1.1.2",
+ "local_mac": "0a:b1:ec:fd:a2:66",
+ "netmask": "255.255.255.0",
+ "network": {},
+ "node_name": "vnf__1",
+ "peer_ifname": "xe1",
+ "peer_name": "vnf__0",
+ "vld_id": "ciphertext",
+ "vpci": "0000:00:07.0"
+ },
+ "peer_name": "vnf__1",
+ "vld_id": "ciphertext",
+ "vpci": "0000:ff:07.0"
+ },
+ "vnfd-connection-point-ref": "xe1"
+ }
+ ],
+ "id": "ipsecvnf-baremetal",
+ "name": "ipsecvnf-baremetal",
+ "routing_table": []
+ }
+ ]
+ }
+
+ VNFD = {
+ 'vnfd:vnfd-catalog': {
+ 'vnfd': [
+ VNFD_0,
+ ],
+ },
+ }
+
+ VPP_INTERFACES_DUMP = [
+ {
+ "sw_if_index": 0,
+ "sup_sw_if_index": 0,
+ "l2_address_length": 0,
+ "l2_address": [0, 0, 0, 0, 0, 0, 0, 0],
+ "interface_name": "local0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 0,
+ "link_speed": 0,
+ "mtu": 0,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ },
+ {
+ "sw_if_index": 1,
+ "sup_sw_if_index": 1,
+ "l2_address_length": 6,
+ "l2_address": [144, 226, 186, 124, 65, 168, 0, 0],
+ "interface_name": "TenGigabitEthernetff/6/0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 2,
+ "link_speed": 32,
+ "mtu": 9202,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ },
+ {
+ "sw_if_index": 2,
+ "sup_sw_if_index": 2,
+ "l2_address_length": 6,
+ "l2_address": [78, 144, 133, 211, 197, 19, 0, 0],
+ "interface_name": "VirtualFunctionEthernetff/7/0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 2,
+ "link_speed": 32,
+ "mtu": 9206,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ }
+ ]
+
+ VPP_INTERFACES_DUMP_MAC_ERR = [
+ {
+ "sw_if_index": 0,
+ "sup_sw_if_index": 0,
+ "l2_address_length": 0,
+ "l2_address": [0, 0, 0, 0, 0, 0, 0, 0],
+ "interface_name": "local0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 0,
+ "link_speed": 0,
+ "mtu": 0,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ },
+ {
+ "sw_if_index": 1,
+ "sup_sw_if_index": 1,
+ "l2_address_length": 6,
+ "l2_address": [144, 226, 186, 124, 65, 169, 0, 0],
+ "interface_name": "TenGigabitEthernetff/6/0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 2,
+ "link_speed": 32,
+ "mtu": 9202,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ },
+ {
+ "sw_if_index": 2,
+ "sup_sw_if_index": 2,
+ "l2_address_length": 6,
+ "l2_address": [78, 144, 133, 211, 197, 20, 0, 0],
+ "interface_name": "VirtualFunctionEthernetff/7/0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 2,
+ "link_speed": 32,
+ "mtu": 9206,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ }
+ ]
+
+ CPU_LAYOUT = {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 0, 0, 0, 0, 1, 1, 0]]}
+ CPU_SMT = {'cpuinfo': [[0, 0, 0, 0, 0, 0, 0, 0],
+ [1, 0, 0, 0, 0, 1, 1, 0],
+ [2, 1, 0, 0, 0, 2, 2, 1],
+ [3, 1, 0, 0, 0, 3, 3, 1],
+ [4, 2, 0, 0, 0, 4, 4, 2],
+ [5, 2, 0, 0, 0, 5, 5, 2],
+ [6, 3, 0, 0, 0, 6, 6, 3],
+ [7, 3, 0, 0, 0, 7, 7, 3],
+ [8, 4, 0, 0, 0, 8, 8, 4],
+ [9, 5, 0, 1, 0, 0, 0, 0],
+ [10, 6, 0, 1, 0, 1, 1, 0],
+ [11, 6, 0, 1, 0, 2, 2, 1],
+ [12, 7, 0, 1, 0, 3, 3, 1],
+ [13, 7, 0, 1, 0, 4, 4, 2],
+ [14, 8, 0, 1, 0, 5, 5, 2],
+ [15, 8, 0, 1, 0, 6, 6, 3],
+ [16, 9, 0, 1, 0, 7, 7, 3],
+ [17, 9, 0, 1, 0, 8, 8, 4]]}
+
+ def test_kill_vnf(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, 0, 0
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper.kill_vnf()
+
+ def test_kill_vnf_error(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 1, 0, 0
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ with self.assertRaises(RuntimeError) as raised:
+ vpp_setup_env_helper.kill_vnf()
+
+ self.assertIn('Failed to stop service vpp', str(raised.exception))
+
+ def test_tear_down(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper.tear_down()
+
+ def test_start_vpp_service(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, 0, 0
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper.start_vpp_service()
+
+ def test_start_vpp_service_error(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 1, 0, 0
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ with self.assertRaises(RuntimeError) as raised:
+ vpp_setup_env_helper.start_vpp_service()
+
+ self.assertIn('Failed to start service vpp', str(raised.exception))
+
+ def test__update_vnfd_helper(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper._update_vnfd_helper(
+ {'vpp-data': {'vpp-key': 'vpp-value'}})
+
+ self.assertEqual({'vpp-key': 'vpp-value'},
+ vpp_setup_env_helper.vnfd_helper.get('vpp-data', {}))
+
+ def test__update_vnfd_helper_with_key(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper._update_vnfd_helper({'driver': 'qat'}, 'xe0')
+
+ self.assertEqual('qat',
+ vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe0', 'driver'))
+
+ def test__update_vnfd_helper_dict_without_key(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper._update_vnfd_helper(
+ {'mgmt-interface': {'name': 'net'}})
+
+ self.assertEqual({'ip': '10.10.10.101',
+ 'name': 'net',
+ 'password': 'r00t',
+ 'user': 'root',
+ 'vdu-id': 'ipsecvnf-baremetal'},
+ vpp_setup_env_helper.vnfd_helper.get('mgmt-interface',
+ {}))
+
+ def test_get_value_by_interface_key(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper._update_vnfd_helper(
+ {'vpp-data': {'vpp-key': 'vpp-value'}}, 'xe0')
+
+ self.assertEqual({'vpp-key': 'vpp-value'},
+ vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe0', 'vpp-data'))
+
+ def test_get_value_by_interface_key_error(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper._update_vnfd_helper(
+ {'vpp-data': {'vpp-key': 'vpp-value'}}, 'xe0')
+
+ self.assertIsNone(vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe2', 'vpp-err'))
+
+ def test_crypto_device_init(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper.dpdk_bind_helper.load_dpdk_driver = mock.Mock()
+ vpp_setup_env_helper.dpdk_bind_helper.bind = mock.Mock()
+
+ vpp_setup_env_helper.kill_vnf = mock.Mock()
+ vpp_setup_env_helper.pci_driver_unbind = mock.Mock()
+
+ with mock.patch.object(vpp_setup_env_helper, 'get_pci_dev_driver') as \
+ mock_get_pci_dev_driver, \
+ mock.patch.object(vpp_setup_env_helper, 'set_sriov_numvfs') as \
+ mock_set_sriov_numvfs:
+ mock_get_pci_dev_driver.return_value = 'igb_uio'
+ self.assertIsNone(
+ vpp_setup_env_helper.crypto_device_init('0000:ff:06.0', 32))
+ mock_set_sriov_numvfs.assert_called()
+
+ def test_get_sriov_numvfs(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '32', ''
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ self.assertEqual(32,
+ vpp_setup_env_helper.get_sriov_numvfs('0000:ff:06.0'))
+
+ def test_get_sriov_numvfs_error(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, 'err', ''
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ self.assertEqual(0,
+ vpp_setup_env_helper.get_sriov_numvfs('0000:ff:06.0'))
+
+ def test_set_sriov_numvfs(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper.set_sriov_numvfs('0000:ff:06.0')
+ self.assertEqual(ssh_helper.execute.call_count, 1)
+
+ def test_pci_driver_unbind(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper.pci_driver_unbind('0000:ff:06.0')
+ self.assertEqual(ssh_helper.execute.call_count, 1)
+
+ def test_get_pci_dev_driver(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = \
+ 0, 'Slot: ff:07.0\n' \
+ 'Class: Ethernet controller\n' \
+ 'Vendor: Intel Corporation\n' \
+ 'Device: 82599 Ethernet Controller Virtual Function\n' \
+ 'SVendor: Intel Corporation\n' \
+ 'SDevice: 82599 Ethernet Controller Virtual Function\n' \
+ 'Rev: 01\n' \
+ 'Driver: igb_uio\n' \
+ 'Module: ixgbevf', ''
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ self.assertEqual('igb_uio', vpp_setup_env_helper.get_pci_dev_driver(
+ '0000:ff:06.0'))
+
+ def test_get_pci_dev_driver_error(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 1, 'err', ''
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ with self.assertRaises(RuntimeError) as raised:
+ vpp_setup_env_helper.get_pci_dev_driver(
+ '0000:ff:06.0')
+
+ self.assertIn("'lspci -vmmks 0000:ff:06.0' failed",
+ str(raised.exception))
+
+ def test_get_pci_dev_driver_output_error(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = \
+ 0, 'Slot: ff:07.0\n' \
+ '\n\t' \
+ 'Vendor: Intel Corporation\n' \
+ 'Device: 82599 Ethernet Controller Virtual Function\n' \
+ 'SVendor: Intel Corporation\n' \
+ 'SDevice: 82599 Ethernet Controller Virtual Function\n' \
+ 'Rev: 01\n' \
+ 'Driver_err: igb_uio\n' \
+ 'Module: ixgbevf', ''
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ self.assertIsNone(
+ vpp_setup_env_helper.get_pci_dev_driver('0000:ff:06.0'))
+
+ def test_vpp_create_ipsec_tunnels(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '', ''
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ self.assertIsNone(
+ vpp_setup_env_helper.vpp_create_ipsec_tunnels('10.10.10.2',
+ '10.10.10.1', 'xe0',
+ 1, 1, mock.Mock(),
+ 'crypto_key',
+ mock.Mock(),
+ 'integ_key',
+ '20.20.20.0'))
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 2)
+
+ def test_vpp_create_ipsec_1000_tunnels(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '', ''
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ self.assertIsNone(
+ vpp_setup_env_helper.vpp_create_ipsec_tunnels('10.10.10.2',
+ '10.10.10.1', 'xe0',
+ 1000, 128000,
+ mock.Mock(),
+ 'crypto_key',
+ mock.Mock(),
+ 'integ_key',
+ '20.20.20.0'))
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 2)
+
+ def test_apply_config(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '', ''
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ self.assertIsNone(vpp_setup_env_helper.apply_config(mock.Mock()))
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 2)
+
+ def test_apply_config_error(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 1, '', ''
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ with self.assertRaises(RuntimeError) as raised:
+ vpp_setup_env_helper.apply_config(mock.Mock())
+
+ self.assertIn('Writing config file failed', str(raised.exception))
+
+ def test_vpp_route_add(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = ''
+ self.assertIsNone(
+ vpp_setup_env_helper.vpp_route_add('xe0', '10.10.10.1', 24))
+
+ def test_vpp_route_add_without_index(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = ''
+ self.assertIsNone(
+ vpp_setup_env_helper.vpp_route_add('xe0', '10.10.10.1', 24,
+ interface='xe0',
+ use_sw_index=False))
+
+ def test_add_arp_on_dut(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = ''
+ self.assertEqual('', vpp_setup_env_helper.add_arp_on_dut('xe0',
+ '10.10.10.1',
+ '00:00:00:00:00:00'))
+
+ def test_set_ip(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = ''
+ self.assertEqual('',
+ vpp_setup_env_helper.set_ip('xe0', '10.10.10.1',
+ 24))
+
+ def test_set_interface_state(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = ''
+ self.assertEqual('',
+ vpp_setup_env_helper.set_interface_state('xe0',
+ 'up'))
+
+ def test_set_interface_state_error(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = ''
+ with self.assertRaises(ValueError) as raised:
+ vpp_setup_env_helper.set_interface_state('xe0', 'error')
+ self.assertIn('Unexpected interface state: error',
+ str(raised.exception))
+
+ def test_set_interface_down_state(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = ''
+ self.assertEqual('',
+ vpp_setup_env_helper.set_interface_state('xe0',
+ 'down'))
+
+ def test_vpp_set_interface_mtu(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = ''
+ self.assertIsNone(
+ vpp_setup_env_helper.vpp_set_interface_mtu('xe0', 9200))
+
+ def test_vpp_interfaces_ready_wait(self):
+ json_output = [self.VPP_INTERFACES_DUMP]
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = json_output
+ self.assertIsNone(vpp_setup_env_helper.vpp_interfaces_ready_wait())
+
+ def test_vpp_interfaces_ready_wait_timeout(self):
+ json_output = [[
+ {
+ "sw_if_index": 0,
+ "sup_sw_if_index": 0,
+ "l2_address_length": 0,
+ "l2_address": [0, 0, 0, 0, 0, 0, 0, 0],
+ "interface_name": "xe0",
+ "admin_up_down": 1,
+ "link_up_down": 0,
+ "link_duplex": 0,
+ "link_speed": 0,
+ "mtu": 0,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ }]]
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = json_output
+ with self.assertRaises(RuntimeError) as raised:
+ vpp_setup_env_helper.vpp_interfaces_ready_wait(5)
+ self.assertIn('timeout, not up [\'xe0\']', str(raised.exception))
+
+ def test_vpp_get_interface_data(self):
+ json_output = [self.VPP_INTERFACES_DUMP]
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = json_output
+ self.assertEqual(json_output[0],
+ vpp_setup_env_helper.vpp_get_interface_data())
+
+ def test_vpp_get_interface_data_ifname(self):
+ json_output = [self.VPP_INTERFACES_DUMP]
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = json_output
+ self.assertEqual(json_output[0][2],
+ vpp_setup_env_helper.vpp_get_interface_data(
+ 'VirtualFunctionEthernetff/7/0'))
+
+ def test_vpp_get_interface_data_ifname_error(self):
+ json_output = [self.VPP_INTERFACES_DUMP]
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = json_output
+ self.assertEqual({}, vpp_setup_env_helper.vpp_get_interface_data(
+ 'error'))
+
+ def test_vpp_get_interface_data_ifindex(self):
+ json_output = [self.VPP_INTERFACES_DUMP]
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = json_output
+ self.assertEqual(json_output[0][1],
+ vpp_setup_env_helper.vpp_get_interface_data(1))
+
+ def test_vpp_get_interface_data_error(self):
+ json_output = [self.VPP_INTERFACES_DUMP]
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+
+ with mock.patch.object(vpp_helpers.VatTerminal,
+ 'vat_terminal_exec_cmd_from_template') as \
+ mock_vat_terminal_exec_cmd_from_template:
+ mock_vat_terminal_exec_cmd_from_template.return_value = json_output
+ with self.assertRaises(TypeError) as raised:
+ vpp_setup_env_helper.vpp_get_interface_data(1.0)
+ self.assertEqual('', str(raised.exception))
+
+ def test_update_vpp_interface_data(self):
+ output = '{}\n{}'.format(self.VPP_INTERFACES_DUMP,
+ 'dump_interface_table:6019: JSON output ' \
+ 'supported only for VPE API calls and dump_stats_table\n' \
+ '/opt/nsb_bin/vpp/templates/dump_interfaces.vat(2): \n' \
+ 'dump_interface_table error: Misc')
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, output.replace("\'", "\""), ''
+ ssh_helper.join_bin_path.return_value = '/opt/nsb_bin/vpp/templates'
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ self.assertIsNone(vpp_setup_env_helper.update_vpp_interface_data())
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 1)
+ self.assertEqual('TenGigabitEthernetff/6/0',
+ vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe0', 'vpp_name'))
+ self.assertEqual(1, vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe0', 'vpp_sw_index'))
+ self.assertEqual('VirtualFunctionEthernetff/7/0',
+ vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe1', 'vpp_name'))
+ self.assertEqual(2, vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe1', 'vpp_sw_index'))
+
+ def test_update_vpp_interface_data_error(self):
+ output = '{}\n{}'.format(self.VPP_INTERFACES_DUMP_MAC_ERR,
+ 'dump_interface_table:6019: JSON output ' \
+ 'supported only for VPE API calls and dump_stats_table\n' \
+ '/opt/nsb_bin/vpp/templates/dump_interfaces.vat(2): \n' \
+ 'dump_interface_table error: Misc')
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, output.replace("\'", "\""), ''
+ ssh_helper.join_bin_path.return_value = '/opt/nsb_bin/vpp/templates'
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ self.assertIsNone(vpp_setup_env_helper.update_vpp_interface_data())
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 1)
+
+ def test_iface_update_numa(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '0', ''
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ self.assertIsNone(vpp_setup_env_helper.iface_update_numa())
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 2)
+ self.assertEqual(0, vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe0', 'numa_node'))
+ self.assertEqual(0, vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe1', 'numa_node'))
+
+ def test_iface_update_numa_error(self):
+ vnfd_helper = VnfdHelper(self.VNFD_1)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '-1', ''
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout:
+ mock_get_cpu_layout.return_value = self.CPU_LAYOUT
+ sys_cores = cpu.CpuSysCores(ssh_helper)
+ vpp_setup_env_helper._update_vnfd_helper(
+ sys_cores.get_cpu_layout())
+ self.assertIsNone(vpp_setup_env_helper.iface_update_numa())
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 2)
+ self.assertEqual(0, vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe0', 'numa_node'))
+ self.assertEqual(0, vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe1', 'numa_node'))
+
+ def test_iface_update_without_numa(self):
+ vnfd_helper = VnfdHelper(self.VNFD_2)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, '-1', ''
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ with mock.patch.object(cpu.CpuSysCores, 'get_cpu_layout') as \
+ mock_get_cpu_layout:
+ mock_get_cpu_layout.return_value = self.CPU_SMT
+ sys_cores = cpu.CpuSysCores(ssh_helper)
+ vpp_setup_env_helper._update_vnfd_helper(
+ sys_cores.get_cpu_layout())
+ self.assertIsNone(vpp_setup_env_helper.iface_update_numa())
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 2)
+ self.assertIsNone(vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe0', 'numa_node'))
+ self.assertIsNone(vpp_setup_env_helper.get_value_by_interface_key(
+ 'xe1', 'numa_node'))
+
+ def test_execute_script(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ vpp_setup_env_helper.execute_script('dump_interfaces.vat', True, True)
+ self.assertGreaterEqual(ssh_helper.put_file.call_count, 1)
+ self.assertGreaterEqual(ssh_helper.execute.call_count, 1)
+
+ def test_execute_script_error(self):
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.side_effect = Exception
+
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ with self.assertRaises(Exception) as raised:
+ vpp_setup_env_helper.execute_script('dump_interfaces.vat', True,
+ True)
+ self.assertIn(
+ 'VAT script execution failed: vpp_api_test json in dump_interfaces.vat script',
+ str(raised.exception))
+ self.assertGreaterEqual(ssh_helper.put_file.call_count, 1)
+
+ def test_execute_script_json_out(self):
+ json_output = [
+ {
+ "sw_if_index": 0,
+ "sup_sw_if_index": 0
+ },
+ {
+ "l2_address_length": 6,
+ "l2_address": [144, 226, 186, 124, 65, 168, 0, 0]
+ },
+ {
+ "interface_name": "VirtualFunctionEthernetff/7/0",
+ "admin_up_down": 0
+ }
+ ]
+ output = '{}\n{}'.format(json_output,
+ 'dump_interface_table:6019: JSON output ' \
+ 'supported only for VPE API calls and dump_stats_table\n' \
+ '/opt/nsb_bin/vpp/templates/dump_interfaces.vat(2): \n' \
+ 'dump_interface_table error: Misc')
+ vnfd_helper = VnfdHelper(self.VNFD_0)
+ ssh_helper = mock.Mock()
+ ssh_helper.execute.return_value = 0, output, ''
+ ssh_helper.join_bin_path.return_value = '/opt/nsb_bin/vpp/templates'
+ scenario_helper = mock.Mock()
+ vpp_setup_env_helper = VppSetupEnvHelper(vnfd_helper, ssh_helper,
+ scenario_helper)
+ self.assertEqual(str(json_output),
+ vpp_setup_env_helper.execute_script_json_out(
+ 'dump_interfaces.vat'))
+
+ def test_self_cleanup_vat_json_output(self):
+ json_output = [
+ {
+ "sw_if_index": 0,
+ "sup_sw_if_index": 0
+ },
+ {
+ "l2_address_length": 6,
+ "l2_address": [144, 226, 186, 124, 65, 168, 0, 0]
+ },
+ {
+ "interface_name": "VirtualFunctionEthernetff/7/0",
+ "admin_up_down": 0
+ }
+ ]
+
+ output = '{}\n{}'.format(json_output,
+ 'dump_interface_table:6019: JSON output ' \
+ 'supported only for VPE API calls and dump_stats_table\n' \
+ '/opt/nsb_bin/vpp/templates/dump_interfaces.vat(2): \n' \
+ 'dump_interface_table error: Misc')
+ self.assertEqual(str(json_output),
+ VppSetupEnvHelper.cleanup_vat_json_output(output,
+ '/opt/nsb_bin/vpp/templates/dump_interfaces.vat'))
+
+ def test__convert_mac_to_number_list(self):
+ self.assertEqual([144, 226, 186, 124, 65, 168],
+ VppSetupEnvHelper._convert_mac_to_number_list(
+ '90:e2:ba:7c:41:a8'))
+
+ def test_get_vpp_interface_by_mac(self):
+ mac_address = '90:e2:ba:7c:41:a8'
+ self.assertEqual({'admin_up_down': 0,
+ 'interface_name': 'TenGigabitEthernetff/6/0',
+ 'l2_address': [144, 226, 186, 124, 65, 168, 0, 0],
+ 'l2_address_length': 6,
+ 'link_duplex': 2,
+ 'link_speed': 32,
+ 'link_up_down': 0,
+ 'mtu': 9202,
+ 'sub_default': 0,
+ 'sub_dot1ad': 0,
+ 'sub_exact_match': 0,
+ 'sub_id': 0,
+ 'sub_inner_vlan_id': 0,
+ 'sub_inner_vlan_id_any': 0,
+ 'sub_number_of_tags': 0,
+ 'sub_outer_vlan_id': 0,
+ 'sub_outer_vlan_id_any': 0,
+ 'sup_sw_if_index': 1,
+ 'sw_if_index': 1,
+ 'vtr_op': 0,
+ 'vtr_push_dot1q': 0,
+ 'vtr_tag1': 0,
+ 'vtr_tag2': 0},
+ VppSetupEnvHelper.get_vpp_interface_by_mac(
+ self.VPP_INTERFACES_DUMP, mac_address))
+
+ def test_get_vpp_interface_by_mac_error(self):
+ mac_address = '90:e2:ba:7c:41:a9'
+ with self.assertRaises(ValueError) as raised:
+ VppSetupEnvHelper.get_vpp_interface_by_mac(
+ [{
+ "sw_if_index": 1,
+ "sup_sw_if_index": 1,
+ "l2_address_length": 7,
+ "l2_address": [144, 226, 186, 124, 65, 169, 0, 0],
+ "interface_name": "TenGigabitEthernetff/6/0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 2,
+ "link_speed": 32,
+ "mtu": 9202,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ }], mac_address)
+
+ self.assertIn('l2_address_length value is not 6.',
+ str(raised.exception))
+
+ def test_get_vpp_interface_by_mac_l2_error(self):
+ mac_address = '90:e2:ba:7c:41:a7'
+ with self.assertRaises(KeyError) as raised:
+ VppSetupEnvHelper.get_vpp_interface_by_mac(
+ [{
+ "sw_if_index": 1,
+ "sup_sw_if_index": 1,
+ "l2_address_length": 6,
+ "l2_address_err": [144, 226, 186, 124, 65, 167, 0, 0],
+ "interface_name": "TenGigabitEthernetff/6/0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 2,
+ "link_speed": 32,
+ "mtu": 9202,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ }], mac_address)
+
+ self.assertIn(
+ 'key l2_address not found in interface dict.Probably input list ' \
+ 'is not parsed from correct VAT json output.',
+ str(raised.exception))
+
+ def test_get_vpp_interface_by_mac_l2_length_error(self):
+ mac_address = '90:e2:ba:7c:41:a6'
+ with self.assertRaises(KeyError) as raised:
+ VppSetupEnvHelper.get_vpp_interface_by_mac(
+ [{
+ "sw_if_index": 1,
+ "sup_sw_if_index": 1,
+ "l2_address_length_err": 6,
+ "l2_address": [144, 226, 186, 124, 65, 166, 0, 0],
+ "interface_name": "TenGigabitEthernetff/6/0",
+ "admin_up_down": 0,
+ "link_up_down": 0,
+ "link_duplex": 2,
+ "link_speed": 32,
+ "mtu": 9202,
+ "sub_id": 0,
+ "sub_dot1ad": 0,
+ "sub_number_of_tags": 0,
+ "sub_outer_vlan_id": 0,
+ "sub_inner_vlan_id": 0,
+ "sub_exact_match": 0,
+ "sub_default": 0,
+ "sub_outer_vlan_id_any": 0,
+ "sub_inner_vlan_id_any": 0,
+ "vtr_op": 0,
+ "vtr_push_dot1q": 0,
+ "vtr_tag1": 0,
+ "vtr_tag2": 0
+ }], mac_address)
+
+ self.assertIn(
+ 'key l2_address_length not found in interface dict. Probably ' \
+ 'input list is not parsed from correct VAT json output.',
+ str(raised.exception))
+
+ def test_get_prefix_length(self):
+ start_ip = '10.10.10.0'
+ end_ip = '10.10.10.127'
+ ips = [ipaddress.ip_address(ip) for ip in
+ [str(ipaddress.ip_address(start_ip)), str(end_ip)]]
+ lowest_ip, highest_ip = min(ips), max(ips)
+
+ self.assertEqual(25,
+ VppSetupEnvHelper.get_prefix_length(int(lowest_ip),
+ int(highest_ip),
+ lowest_ip.max_prefixlen))
+
+ def test_get_prefix_length_zero_prefix(self):
+ start_ip = '10.0.0.0'
+ end_ip = '10.0.0.0'
+ ips = [ipaddress.ip_address(ip) for ip in
+ [str(ipaddress.ip_address(start_ip)), str(end_ip)]]
+ lowest_ip, highest_ip = min(ips), max(ips)
+
+ self.assertEqual(0,
+ VppSetupEnvHelper.get_prefix_length(int(lowest_ip),
+ int(highest_ip),
+ 0))
+
+
+class TestVatTerminal(unittest.TestCase):
+
+ def test___init___error(self):
+ ssh_helper = mock.Mock()
+ ssh_helper.interactive_terminal_open.side_effect = exceptions.SSHTimeout
+
+ with self.assertRaises(RuntimeError) as raised:
+ VatTerminal(ssh_helper, json_param=True)
+ self.assertIn('Cannot open interactive terminal',
+ str(raised.exception))
+
+ def test___init___exec_error(self):
+ ssh_helper = mock.Mock()
+ ssh_helper.interactive_terminal_exec_command.side_effect = exceptions.SSHTimeout
+ VatTerminal(ssh_helper, json_param=True)
+
+ def test_vat_terminal_exec_cmd(self):
+ ssh_helper = mock.Mock()
+ ssh_helper.interactive_terminal_exec_command.return_value = str(
+ {'empty': 'value'}).replace("\'", "\"")
+ vat_terminal = VatTerminal(ssh_helper, json_param=True)
+
+ self.assertEqual({'empty': 'value'},
+ vat_terminal.vat_terminal_exec_cmd(
+ "hw_interface_set_mtu sw_if_index 1 mtu 9200"))
+
+ def test_vat_terminal_exec_cmd_array(self):
+ ssh_helper = mock.Mock()
+ ssh_helper.interactive_terminal_exec_command.return_value = str(
+ [{'empty': 'value'}]).replace("\'", "\"")
+ vat_terminal = VatTerminal(ssh_helper, json_param=True)
+
+ self.assertEqual([{'empty': 'value'}],
+ vat_terminal.vat_terminal_exec_cmd(
+ "hw_interface_set_mtu sw_if_index 1 mtu 9200"))
+
+ def test_vat_terminal_exec_cmd_without_output(self):
+ ssh_helper = mock.Mock()
+ ssh_helper.interactive_terminal_exec_command.return_value = str(
+ {'empty': 'value'}).replace("\'", "\"")
+ vat_terminal = VatTerminal(ssh_helper, json_param=False)
+
+ self.assertIsNone(vat_terminal.vat_terminal_exec_cmd(
+ "hw_interface_set_mtu sw_if_index 1 mtu 9200"))
+
+ def test_vat_terminal_exec_cmd_error(self):
+ ssh_helper = mock.Mock()
+ ssh_helper.interactive_terminal_exec_command.return_value = str(
+ {'empty': 'value'}).replace("\'", "\"")
+ ssh_helper.interactive_terminal_exec_command.side_effect = exceptions.SSHTimeout
+
+ vat_terminal = VatTerminal(ssh_helper, json_param=True)
+
+ with self.assertRaises(RuntimeError) as raised:
+ vat_terminal.vat_terminal_exec_cmd(
+ "hw_interface_set_mtu sw_if_index 1 mtu 9200")
+ self.assertIn(
+ 'VPP is not running on node. VAT command hw_interface_set_mtu ' \
+ 'sw_if_index 1 mtu 9200 execution failed',
+ str(raised.exception))
+
+ def test_vat_terminal_exec_cmd_output_error(self):
+ ssh_helper = mock.Mock()
+ ssh_helper.interactive_terminal_exec_command.return_value = str(
+ 'empty: value').replace("\'", "\"")
+
+ vat_terminal = VatTerminal(ssh_helper, json_param=True)
+
+ with self.assertRaises(RuntimeError) as raised:
+ vat_terminal.vat_terminal_exec_cmd(
+ "hw_interface_set_mtu sw_if_index 1 mtu 9200")
+ self.assertIn(
+ 'VAT command hw_interface_set_mtu sw_if_index 1 mtu 9200: no JSON data.',
+ str(raised.exception))
+
+ def test_vat_terminal_close(self):
+ ssh_helper = mock.Mock()
+ vat_terminal = VatTerminal(ssh_helper, json_param=False)
+ self.assertIsNone(vat_terminal.vat_terminal_close())
+
+ def test_vat_terminal_close_error(self):
+ ssh_helper = mock.Mock()
+ ssh_helper.interactive_terminal_exec_command.side_effect = exceptions.SSHTimeout
+ vat_terminal = VatTerminal(ssh_helper, json_param=False)
+ with self.assertRaises(RuntimeError) as raised:
+ vat_terminal.vat_terminal_close()
+ self.assertIn('Failed to close VAT console', str(raised.exception))
+
+ def test_vat_terminal_close_vat_error(self):
+ ssh_helper = mock.Mock()
+ ssh_helper.interactive_terminal_close.side_effect = exceptions.SSHTimeout
+ vat_terminal = VatTerminal(ssh_helper, json_param=False)
+ with self.assertRaises(RuntimeError) as raised:
+ vat_terminal.vat_terminal_close()
+ self.assertIn('Cannot close interactive terminal',
+ str(raised.exception))
+
+ def test_vat_terminal_exec_cmd_from_template(self):
+ ssh_helper = mock.Mock()
+ vat_terminal = VatTerminal(ssh_helper, json_param=False)
+
+ with mock.patch.object(vat_terminal, 'vat_terminal_exec_cmd') as \
+ mock_vat_terminal_exec_cmd:
+ mock_vat_terminal_exec_cmd.return_value = 'empty'
+ self.assertEqual(['empty'],
+ vat_terminal.vat_terminal_exec_cmd_from_template(
+ "hw_interface_set_mtu.vat", sw_if_index=1,
+ mtu=9200))
diff --git a/yardstick/tests/unit/orchestrator/__init__.py b/yardstick/tests/unit/orchestrator/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/orchestrator/__init__.py
diff --git a/yardstick/tests/unit/orchestrator/test_heat.py b/yardstick/tests/unit/orchestrator/test_heat.py
new file mode 100644
index 000000000..2e60a72cb
--- /dev/null
+++ b/yardstick/tests/unit/orchestrator/test_heat.py
@@ -0,0 +1,417 @@
+##############################################################################
+# Copyright (c) 2017 Intel Corporation
+#
+# 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 tempfile
+
+import munch
+import mock
+from oslo_serialization import jsonutils
+from oslo_utils import uuidutils
+import shade
+import unittest
+
+from yardstick.benchmark.contexts import node
+from yardstick.common import constants
+from yardstick.common import exceptions
+from yardstick.orchestrator import heat
+
+
+class FakeStack(object):
+
+ def __init__(self, outputs=None, status=None, id=None):
+ self.outputs = outputs
+ self.status = status
+ self.id = id
+
+
+class HeatStackTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.stack_name = 'STACK NAME'
+ with mock.patch.object(shade, 'openstack_cloud'):
+ self.heatstack = heat.HeatStack(self.stack_name)
+ self._mock_stack_create = mock.patch.object(self.heatstack._cloud,
+ 'create_stack')
+ self.mock_stack_create = self._mock_stack_create.start()
+ self._mock_stack_delete = mock.patch.object(self.heatstack._cloud,
+ 'delete_stack')
+ self.mock_stack_delete = self._mock_stack_delete.start()
+ self._mock_stack_get = mock.patch.object(self.heatstack._cloud,
+ 'get_stack')
+ self.mock_stack_get = self._mock_stack_get.start()
+
+ self.addCleanup(self._cleanup)
+
+ def _cleanup(self):
+ self._mock_stack_create.stop()
+ self._mock_stack_delete.stop()
+ self._mock_stack_get.stop()
+ heat._DEPLOYED_STACKS = {}
+
+ @mock.patch.object(shade, 'openstack_cloud')
+ def test__init(self, mock_openstack_cloud):
+ os_cloud_config = {'key': 'value'}
+ heatstack = heat.HeatStack('name', os_cloud_config=os_cloud_config)
+ self.assertEqual('name', heatstack.name)
+ os_cloud_config.update(constants.OS_CLOUD_DEFAULT_CONFIG)
+ mock_openstack_cloud.assert_called_once_with(**os_cloud_config)
+
+ def test_create(self):
+ template = {'tkey': 'tval'}
+ heat_parameters = {'pkey': 'pval'}
+ outputs = [{'output_key': 'okey', 'output_value': 'oval'}]
+ id = uuidutils.generate_uuid()
+ self.mock_stack_create.return_value = FakeStack(
+ outputs=outputs, status=mock.Mock(), id=id)
+ mock_tfile = mock.Mock()
+ with mock.patch.object(tempfile._TemporaryFileWrapper, '__enter__',
+ return_value=mock_tfile):
+ self.heatstack.create(template, heat_parameters, True, 100)
+ mock_tfile.write.assert_called_once_with(jsonutils.dump_as_bytes(template))
+ mock_tfile.close.assert_called_once()
+
+ self.mock_stack_create.assert_called_once_with(
+ self.stack_name, template_file=mock_tfile.name, wait=True,
+ timeout=100, pkey='pval')
+ self.assertEqual({'okey': 'oval'}, self.heatstack.outputs)
+ self.assertEqual(heat._DEPLOYED_STACKS[id], self.heatstack._stack)
+
+ def test_stacks_exist(self):
+ self.assertEqual(0, self.heatstack.stacks_exist())
+ heat._DEPLOYED_STACKS['id'] = 'stack'
+ self.assertEqual(1, self.heatstack.stacks_exist())
+
+ def test_delete_not_uuid(self):
+ self.assertIsNone(self.heatstack.delete())
+
+ def test_delete_existing_uuid(self):
+ id = uuidutils.generate_uuid()
+ self.heatstack._stack = FakeStack(
+ outputs=mock.Mock(), status=mock.Mock(), id=id)
+ heat._DEPLOYED_STACKS[id] = self.heatstack._stack
+ delete_return = mock.Mock()
+ self.mock_stack_delete.return_value = delete_return
+
+ ret = self.heatstack.delete(wait=True)
+ self.assertEqual(delete_return, ret)
+ self.assertFalse(heat._DEPLOYED_STACKS)
+ self.mock_stack_delete.assert_called_once_with(id, wait=True)
+
+ def test_delete_bug_in_shade(self):
+ id = uuidutils.generate_uuid()
+ self.heatstack._stack = FakeStack(
+ outputs=mock.Mock(), status=mock.Mock(), id=id)
+ heat._DEPLOYED_STACKS[id] = self.heatstack._stack
+ self.mock_stack_delete.side_effect = TypeError()
+
+ ret = self.heatstack.delete(wait=True)
+ self.assertTrue(ret)
+ self.assertFalse(heat._DEPLOYED_STACKS)
+ self.mock_stack_delete.assert_called_once_with(id, wait=True)
+
+ def test_get(self):
+ # make sure shade/get_stack is called with the appropriate vars
+ self.mock_stack_get.return_value = munch.Munch(
+ id="my-existing-stack-id",
+ outputs=[
+ {
+ u'output_value': u'b734d06a-dec7-...',
+ u'output_key': u'ares.demo-test-port-network_id',
+ u'description': u''
+ },
+ {u'output_value': u'b08da78c-2218-...',
+ u'output_key': u'ares.demo-test-port-subnet_id',
+ u'description': u''
+ },
+ {u'output_value': u'10.0.1.0/24',
+ u'output_key': u'demo-test-subnet-cidr',
+ u'description': u''
+ },
+ {u'output_value': u'b08da78c-2218-...',
+ u'output_key': u'demo-test-subnet',
+ u'description': u''
+ },
+ {u'output_value': u'b1a03624-aefc-...',
+ u'output_key': u'ares.demo',
+ u'description': u''
+ },
+ {u'output_value': u'266a8088-c630-...',
+ u'output_key': u'demo-secgroup',
+ u'description': u''
+ },
+ {u'output_value': u'10.0.1.5',
+ u'output_key': u'ares.demo-test-port',
+ u'description': u''
+ },
+ {u'output_value': u'10.0.1.1',
+ u'output_key': u'demo-test-subnet-gateway_ip',
+ u'description': u''
+ },
+ {u'output_value': u'',
+ u'output_key': u'ares.demo-test-port-device_id',
+ u'description': u''
+ },
+ {u'output_value': u'172.24.4.7',
+ u'output_key': u'ares.demo-fip',
+ u'description': u''
+ },
+ {u'output_value': u'fa:16:3e:6c:c3:0f',
+ u'output_key': u'ares.demo-test-port-mac_address',
+ u'description': u''}
+ ]
+ )
+ expected_outputs = {
+ 'ares.demo-test-port-network_id': 'b734d06a-dec7-...',
+ 'ares.demo-test-port-subnet_id': 'b08da78c-2218-...',
+ 'demo-test-subnet-cidr': '10.0.1.0/24',
+ 'demo-test-subnet': 'b08da78c-2218-...',
+ 'ares.demo': 'b1a03624-aefc-...',
+ 'demo-secgroup': '266a8088-c630-...',
+ 'ares.demo-test-port': '10.0.1.5',
+ 'demo-test-subnet-gateway_ip': '10.0.1.1',
+ 'ares.demo-test-port-device_id': '',
+ 'ares.demo-fip': '172.24.4.7',
+ 'ares.demo-test-port-mac_address': 'fa:16:3e:6c:c3:0f',
+ }
+
+ stack_id = "my-existing-stack-id"
+ self.heatstack.name = "my-existing-stack"
+ self.heatstack.get()
+
+ self.mock_stack_get.assert_called_once_with(self.heatstack.name)
+ self.assertEqual(expected_outputs, self.heatstack.outputs)
+ self.assertEqual(1, len(heat._DEPLOYED_STACKS))
+ self.assertEqual(self.heatstack._stack,
+ heat._DEPLOYED_STACKS[stack_id])
+
+ def test_get_invalid_name(self):
+ # No context matching this name exists
+ self.mock_stack_get.return_value = []
+ self.heatstack.name = 'not-a-stack'
+ self.heatstack.get()
+ self.assertEqual(0, len(heat._DEPLOYED_STACKS))
+
+
+class HeatTemplateTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self._os_cloud_config = {'key1': 'value1'}
+ self.template = heat.HeatTemplate(
+ 'test', os_cloud_config=self._os_cloud_config)
+
+ def test_add_tenant_network(self):
+ self.template.add_network('some-network')
+
+ self.assertEqual('OS::Neutron::Net',
+ self.template.resources['some-network']['type'])
+
+ def test_add_provider_network(self):
+ self.template.add_network('some-network', 'physnet2', 'sriov')
+
+ self.assertEqual(self.template.resources['some-network']['type'],
+ 'OS::Neutron::ProviderNet')
+ self.assertEqual(self.template.resources['some-network'][
+ 'properties']['physical_network'], 'physnet2')
+
+ def test_add_subnet(self):
+ netattrs = {'cidr': '10.0.0.0/24',
+ 'provider': None,
+ 'external_network': 'ext_net'}
+ self.template.add_subnet('some-subnet', "some-network",
+ netattrs['cidr'])
+
+ self.assertEqual(self.template.resources['some-subnet']['type'],
+ 'OS::Neutron::Subnet')
+ self.assertEqual(self.template.resources['some-subnet']['properties'][
+ 'cidr'], '10.0.0.0/24')
+
+ def test_add_router(self):
+ self.template.add_router('some-router', 'ext-net', 'some-subnet')
+
+ self.assertEqual(self.template.resources['some-router']['type'],
+ 'OS::Neutron::Router')
+ self.assertIn('some-subnet',
+ self.template.resources['some-router']['depends_on'])
+
+ def test_add_router_interface(self):
+ self.template.add_router_interface('some-router-if', 'some-router',
+ 'some-subnet')
+
+ self.assertEqual(self.template.resources['some-router-if']['type'],
+ 'OS::Neutron::RouterInterface')
+ self.assertIn('some-subnet',
+ self.template.resources['some-router-if']['depends_on'])
+
+ def test_add_servergroup(self):
+ self.template.add_servergroup('some-server-group', 'anti-affinity')
+
+ self.assertEqual(self.template.resources['some-server-group']['type'],
+ 'OS::Nova::ServerGroup')
+ self.assertEqual(self.template.resources['some-server-group'][
+ 'properties']['policies'], ['anti-affinity'])
+
+ def test_add_security_group(self):
+ security_group = {
+ 'rules': [
+ {'remote_ip_prefix': '0.0.0.0/0',
+ 'port_range_max': 65535,
+ 'port_range_min': 1,
+ 'protocol': 'custom'},
+ ]
+ }
+ self.template.add_security_group('some-security-group', security_group)
+
+ secgroup_rsc = self.template.resources['some-security-group']
+
+ self.assertEqual(secgroup_rsc['type'], "OS::Neutron::SecurityGroup")
+ self.assertEqual(secgroup_rsc['properties']['description'],
+ "Custom security group rules defined by the user")
+ self.assertEqual(secgroup_rsc['properties']['rules'][0]['protocol'],
+ 'custom')
+
+ def test__add_resources_to_template_raw(self):
+ test_context = node.NodeContext()
+ self.addCleanup(test_context._delete_context)
+ test_context._name = 'foo'
+ test_context.template_file = '/tmp/some-heat-file'
+ test_context.heat_parameters = {'image': 'cirros'}
+ test_context.key_filename = "/tmp/1234"
+ test_context.keypair_name = "foo-key"
+ test_context.secgroup_name = "foo-secgroup"
+ test_context.key_uuid = "2f2e4997-0a8e-4eb7-9fa4-f3f8fbbc393b"
+
+ test_context.tmpfile = tempfile.NamedTemporaryFile(
+ delete=True, mode='w+t')
+ test_context.tmpfile.write("heat_template_version: 2015-04-30")
+ test_context.tmpfile.flush()
+ test_context.tmpfile.seek(0)
+ heat_template = heat.HeatTemplate('template name')
+ heat_template.resources = {}
+
+ heat_template.add_network("network1")
+ heat_template.add_network("network2")
+ heat_template.add_security_group("sec_group1")
+ heat_template.add_security_group("sec_group2")
+ heat_template.add_subnet("subnet1", "network1", "cidr1")
+ heat_template.add_subnet("subnet2", "network2", "cidr2")
+ heat_template.add_router("router1", "gw1", "subnet1")
+ heat_template.add_router_interface("router_if1", "router1", "subnet1")
+ network1 = mock.MagicMock()
+ network1.stack_name = "network1"
+ network1.subnet_stack_name = "subnet1"
+ network1.vnic_type = "normal"
+ network2 = mock.MagicMock()
+ network2.stack_name = "network2"
+ network2.subnet_stack_name = "subnet2"
+ network2.vnic_type = "normal"
+ heat_template.add_port("port1", network1)
+ heat_template.add_port("port2", network2,
+ sec_group_id="sec_group1", provider="not-sriov")
+ heat_template.add_port("port3", network2,
+ sec_group_id="sec_group1", provider="sriov")
+ heat_template.add_floating_ip("floating_ip1", "network1", "port1",
+ "router_if1")
+ heat_template.add_floating_ip("floating_ip2", "network2", "port2",
+ "router_if2", "foo-secgroup")
+ heat_template.add_floating_ip_association("floating_ip1_association",
+ "floating_ip1", "port1")
+ heat_template.add_servergroup("server_grp2", "affinity")
+ heat_template.add_servergroup("server_grp3", "anti-affinity")
+ heat_template.add_security_group("security_group")
+ heat_template.add_server(name="server1", image="image1",
+ flavor="flavor1", flavors=[])
+ heat_template.add_server_group(name="servergroup",
+ policies=["policy1", "policy2"])
+ heat_template.add_server_group(name="servergroup",
+ policies="policy1")
+ heat_template.add_server(
+ name="server2", image="image1", flavor="flavor1", flavors=[],
+ ports=["port1", "port2"], networks=["network1", "network2"],
+ scheduler_hints="hints1", user="user1", key_name="foo-key",
+ user_data="user", metadata={"cat": 1, "doc": 2},
+ additional_properties={"prop1": 1, "prop2": 2})
+ heat_template.add_server(
+ name="server2", image="image1", flavor="flavor1",
+ flavors=["flavor1", "flavor2"], ports=["port1", "port2"],
+ networks=["network1", "network2"], scheduler_hints="hints1",
+ user="user1", key_name="foo-key", user_data="user",
+ metadata={"cat": 1, "doc": 2},
+ additional_properties={"prop1": 1, "prop2": 2})
+ heat_template.add_server(
+ name="server2", image="image1", flavor="flavor1",
+ flavors=["flavor3", "flavor4"], ports=["port1", "port2"],
+ networks=["network1", "network2"], scheduler_hints="hints1",
+ user="user1", key_name="foo-key", user_data="user",
+ metadata={"cat": 1, "doc": 2},
+ additional_properties={"prop1": 1, "prop2": 2})
+ heat_template.add_flavor(name="flavor1", vcpus=1, ram=2048, disk=1,
+ extra_specs={"cat": 1, "dog": 2})
+ heat_template.add_flavor(name=None, vcpus=1, ram=2048)
+ heat_template.add_server(
+ name="server1", image="image1", flavor="flavor1", flavors=[],
+ ports=["port1", "port2"], networks=["network1", "network2"],
+ scheduler_hints="hints1", user="user1", key_name="foo-key",
+ user_data="user", metadata={"cat": 1, "doc": 2},
+ additional_properties={"prop1": 1, "prop2": 2})
+ heat_template.add_network("network1")
+
+ heat_template.add_flavor("test")
+ self.assertEqual(heat_template.resources['test']['type'],
+ 'OS::Nova::Flavor')
+
+ def test_create_not_block(self):
+ heat_stack = mock.Mock()
+ with mock.patch.object(heat, 'HeatStack', return_value=heat_stack) \
+ as mock_heatstack:
+ ret = self.template.create(block=False)
+
+ mock_heatstack.assert_called_once_with(
+ self.template.name, os_cloud_config=self.template._os_cloud_config)
+ heat_stack.create.assert_called_once_with(
+ self.template._template, self.template.heat_parameters, False,
+ 3600)
+ self.assertEqual(heat_stack, ret)
+
+ def test_create_block(self):
+ heat_stack = mock.Mock()
+ heat_stack.status = self.template.HEAT_STATUS_COMPLETE
+ with mock.patch.object(heat, 'HeatStack', return_value=heat_stack):
+ ret = self.template.create(block=False)
+ heat_stack.create.assert_called_once_with(
+ self.template._template, self.template.heat_parameters, False,
+ 3600)
+ self.assertEqual(heat_stack, ret)
+
+ def test_create_block_status_no_complete(self):
+ heat_stack = mock.Mock()
+ heat_stack.status = 'other status'
+ heat_stack.get_failures.return_value = []
+ with mock.patch.object(heat, 'HeatStack', return_value=heat_stack):
+ self.assertRaises(exceptions.HeatTemplateError,
+ self.template.create, block=True)
+ heat_stack.create.assert_called_once_with(
+ self.template._template, self.template.heat_parameters, True,
+ 3600)
+
+ def test_create_block_status_no_complete_with_reasons(self):
+ heat_stack = mock.Mock()
+ heat_stack.status = 'other status'
+ heat_stack.get_failures.return_value = [
+ mock.Mock(resource_status_reason="A reason"),
+ mock.Mock(resource_status_reason="Something else")
+ ]
+ with mock.patch.object(heat, 'HeatStack', return_value=heat_stack):
+ with mock.patch.object(heat, 'log') as mock_log:
+ self.assertRaises(exceptions.HeatTemplateError,
+ self.template.create, block=True)
+ mock_log.error.assert_any_call("%s", "A reason")
+ mock_log.error.assert_any_call("%s", "Something else")
+ heat_stack.create.assert_called_once_with(
+ self.template._template, self.template.heat_parameters, True,
+ 3600)
diff --git a/yardstick/tests/unit/orchestrator/test_kubernetes.py b/yardstick/tests/unit/orchestrator/test_kubernetes.py
new file mode 100644
index 000000000..2d5c4a26f
--- /dev/null
+++ b/yardstick/tests/unit/orchestrator/test_kubernetes.py
@@ -0,0 +1,643 @@
+##############################################################################
+# Copyright (c) 2017 Intel Corporation
+#
+# 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 copy
+
+import mock
+
+from yardstick.common import exceptions
+from yardstick.common import kubernetes_utils
+from yardstick.orchestrator import kubernetes
+from yardstick.tests.unit import base
+
+
+class GetTemplateTestCase(base.BaseUnitTestCase):
+
+ def test_get_template(self):
+ output_t = {
+ "apiVersion": "v1",
+ "kind": "ReplicationController",
+ "metadata": {
+ "name": "host-k8s-86096c30"
+ },
+ "spec": {
+ "replicas": 1,
+ "template": {
+ "metadata": {
+ "labels": {
+ "app": "host-k8s-86096c30"
+ }
+ },
+ "spec": {
+ "containers": [
+ {
+ "args": [
+ "-c",
+ "chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \
+service ssh restart;while true ; do sleep 10000; done"
+ ],
+ "command": [
+ "/bin/bash"
+ ],
+ "image": "openretriever/yardstick",
+ "name": "host-k8s-86096c30-container",
+ "volumeMounts": [
+ {
+ "mountPath": "/tmp/.ssh/",
+ "name": "k8s-86096c30-key",
+ "readOnly": False
+ }
+ ]
+ }
+ ],
+ "volumes": [
+ {
+ "configMap": {
+ "name": "k8s-86096c30-key"
+ },
+ "name": "k8s-86096c30-key"
+ }
+ ],
+ "nodeSelector": {
+ "kubernetes.io/hostname": "node-01"
+ },
+ "restartPolicy": "Always",
+ "tolerations": [
+ {"operator": "Exists"}
+ ]
+ }
+ }
+ }
+ }
+ input_s = {
+ 'command': '/bin/bash',
+ 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \
+service ssh restart;while true ; do sleep 10000; done'],
+ 'ssh_key': 'k8s-86096c30-key',
+ 'nodeSelector': {'kubernetes.io/hostname': 'node-01'},
+ 'volumes': [],
+ 'restartPolicy': 'Always'
+ }
+ name = 'host-k8s-86096c30'
+ output_r = kubernetes.ReplicationControllerObject(
+ name, **input_s).get_template()
+ self.assertEqual(output_r, output_t)
+
+ def test_get_template_invalid_restart_policy(self):
+ input_s = {'restartPolicy': 'invalid_option'}
+ name = 'host-k8s-86096c30'
+ with self.assertRaises(exceptions.KubernetesWrongRestartPolicy):
+ kubernetes.ReplicationControllerObject(
+ name, **input_s).get_template()
+
+
+class GetRcPodsTestCase(base.BaseUnitTestCase):
+
+ @mock.patch('yardstick.orchestrator.kubernetes.k8s_utils.get_pod_list')
+ def test_get_rc_pods(self, mock_get_pod_list):
+ servers = {
+ 'host': {
+ 'image': 'openretriever/yardstick',
+ 'command': '/bin/bash',
+ 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \
+service ssh restart;while true ; do sleep 10000; done']
+ },
+ 'target': {
+ 'image': 'openretriever/yardstick',
+ 'command': '/bin/bash',
+ 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \
+service ssh restart;while true ; do sleep 10000; done']
+ }
+ }
+ k8s_template = kubernetes.KubernetesTemplate('k8s-86096c30', servers)
+ mock_get_pod_list.return_value.items = []
+ pods = k8s_template.get_rc_pods()
+ self.assertEqual(pods, [])
+
+
+class ReplicationControllerObjectTestCase(base.BaseUnitTestCase):
+
+ def test__init_one_container(self):
+ pod_name = 'pod_name'
+ _kwargs = {'args': ['arg1', 'arg2'],
+ 'image': 'fake_image',
+ 'command': 'fake_command'}
+ k8s_obj = kubernetes.ReplicationControllerObject(pod_name, **_kwargs)
+ self.assertEqual(1, len(k8s_obj._containers))
+ container = k8s_obj._containers[0]
+ self.assertEqual(['arg1', 'arg2'], container._args)
+ self.assertEqual('fake_image', container._image)
+ self.assertEqual(['fake_command'], container._command)
+ self.assertEqual([], container._volume_mounts)
+
+ def test__init_multipe_containers(self):
+ pod_name = 'pod_name'
+ containers = []
+ for i in range(5):
+ containers.append({'args': ['arg1', 'arg2'],
+ 'image': 'fake_image_%s' % i,
+ 'command': 'fake_command_%s' % i})
+ _kwargs = {'containers': containers}
+ k8s_obj = kubernetes.ReplicationControllerObject(pod_name, **_kwargs)
+ self.assertEqual(5, len(k8s_obj._containers))
+ for i in range(5):
+ container = k8s_obj._containers[i]
+ self.assertEqual(['arg1', 'arg2'], container._args)
+ self.assertEqual('fake_image_%s' % i, container._image)
+ self.assertEqual(['fake_command_%s' % i], container._command)
+ self.assertEqual([], container._volume_mounts)
+
+ def test__add_volumes(self):
+ volume1 = {'name': 'fake_sshkey',
+ 'configMap': {'name': 'fake_sshkey'}}
+ volume2 = {'name': 'volume2',
+ 'configMap': 'data'}
+ k8s_obj = kubernetes.ReplicationControllerObject(
+ 'name', ssh_key='fake_sshkey', volumes=[volume2])
+ k8s_obj._add_volumes()
+ volumes = k8s_obj.template['spec']['template']['spec']['volumes']
+ self.assertEqual(sorted([volume1, volume2], key=lambda k: k['name']),
+ sorted(volumes, key=lambda k: k['name']))
+
+ def test__add_volumes_no_volumes(self):
+ volume1 = {'name': 'fake_sshkey',
+ 'configMap': {'name': 'fake_sshkey'}}
+ k8s_obj = kubernetes.ReplicationControllerObject(
+ 'name', ssh_key='fake_sshkey')
+ k8s_obj._add_volumes()
+ volumes = k8s_obj.template['spec']['template']['spec']['volumes']
+ self.assertEqual([volume1], volumes)
+
+ def test__create_ssh_key_volume(self):
+ expected = {'name': 'fake_sshkey',
+ 'configMap': {'name': 'fake_sshkey'}}
+ k8s_obj = kubernetes.ReplicationControllerObject(
+ 'name', ssh_key='fake_sshkey')
+ self.assertEqual(expected, k8s_obj._create_ssh_key_volume())
+
+ def test__create_volume_item(self):
+ for vol_type in kubernetes_utils.get_volume_types():
+ volume = {'name': 'vol_name',
+ vol_type: 'data'}
+ self.assertEqual(
+ volume,
+ kubernetes.ReplicationControllerObject.
+ _create_volume_item(volume))
+
+ def test__create_volume_item_invalid_type(self):
+ volume = {'name': 'vol_name',
+ 'invalid_type': 'data'}
+ with self.assertRaises(exceptions.KubernetesTemplateInvalidVolumeType):
+ kubernetes.ReplicationControllerObject._create_volume_item(volume)
+
+ def test__add_security_context(self):
+ k8s_obj = kubernetes.ReplicationControllerObject('pod_name')
+ self.assertNotIn('securityContext',
+ k8s_obj.template['spec']['template']['spec'])
+
+ k8s_obj._security_context = {'key_pod': 'value_pod'}
+ k8s_obj._add_security_context()
+ self.assertEqual(
+ {'key_pod': 'value_pod'},
+ k8s_obj.template['spec']['template']['spec']['securityContext'])
+
+ def test__add_security_context_by_init(self):
+ containers = []
+ for i in range(5):
+ containers.append(
+ {'securityContext': {'key%s' % i: 'value%s' % i}})
+ _kwargs = {'containers': containers,
+ 'securityContext': {'key_pod': 'value_pod'}}
+ k8s_obj = kubernetes.ReplicationControllerObject('pod_name', **_kwargs)
+ self.assertEqual(
+ {'key_pod': 'value_pod'},
+ k8s_obj.template['spec']['template']['spec']['securityContext'])
+ for i in range(5):
+ container = (
+ k8s_obj.template['spec']['template']['spec']['containers'][i])
+ self.assertEqual({'key%s' % i: 'value%s' % i},
+ container['securityContext'])
+
+ def test__add_networks(self):
+ k8s_obj = kubernetes.ReplicationControllerObject(
+ 'name', networks=['network1', 'network2', 'network3'])
+ k8s_obj._add_networks()
+ networks = k8s_obj.\
+ template['spec']['template']['metadata']['annotations']['networks']
+ expected = ('[{"name": "network1"}, {"name": "network2"}, '
+ '{"name": "network3"}]')
+ self.assertEqual(expected, networks)
+
+ def test__add_tolerations(self):
+ _kwargs = {'tolerations': [{'key': 'key1',
+ 'value': 'value2',
+ 'effect': 'effect3',
+ 'operator': 'operator4',
+ 'wrong_key': 'error_key'}]
+ }
+ k8s_obj = kubernetes.ReplicationControllerObject('pod_name', **_kwargs)
+ k8s_obj._add_tolerations()
+ _tol = k8s_obj.template['spec']['template']['spec']['tolerations']
+ self.assertEqual(1, len(_tol))
+ self.assertEqual({'key': 'key1',
+ 'value': 'value2',
+ 'effect': 'effect3',
+ 'operator': 'operator4'},
+ _tol[0])
+
+ def test__add_tolerations_default(self):
+ k8s_obj = kubernetes.ReplicationControllerObject('pod_name')
+ k8s_obj._add_tolerations()
+ _tol = k8s_obj.template['spec']['template']['spec']['tolerations']
+ self.assertEqual(1, len(_tol))
+ self.assertEqual({'operator': 'Exists'}, _tol[0])
+
+
+class ContainerObjectTestCase(base.BaseUnitTestCase):
+
+ def test__create_volume_mounts(self):
+ volume_mount = {'name': 'fake_name',
+ 'mountPath': 'fake_path'}
+ ssh_vol = {'name': 'fake_ssh_key',
+ 'mountPath': kubernetes.ContainerObject.SSH_MOUNT_PATH,
+ 'readOnly': False}
+ expected = copy.deepcopy(volume_mount)
+ expected['readOnly'] = False
+ expected = [expected, ssh_vol]
+ container_obj = kubernetes.ContainerObject(
+ 'cname', 'fake_ssh_key', volumeMounts=[volume_mount])
+ output = container_obj._create_volume_mounts()
+ self.assertEqual(expected, output)
+
+ def test__create_volume_mounts_no_volume_mounts(self):
+ ssh_vol = {'name': 'fake_ssh_key2',
+ 'mountPath': kubernetes.ContainerObject.SSH_MOUNT_PATH,
+ 'readOnly': False}
+ container_obj = kubernetes.ContainerObject('name', 'fake_ssh_key2')
+ output = container_obj._create_volume_mounts()
+ self.assertEqual([ssh_vol], output)
+
+ def test__create_volume_mounts_item(self):
+ volume_mount = {'name': 'fake_name',
+ 'mountPath': 'fake_path'}
+ expected = copy.deepcopy(volume_mount)
+ expected['readOnly'] = False
+ output = kubernetes.ContainerObject._create_volume_mounts_item(
+ volume_mount)
+ self.assertEqual(expected, output)
+
+ def test_get_container_item(self):
+ volume_mount = {'name': 'fake_name',
+ 'mountPath': 'fake_path'}
+ args = ['arg1', 'arg2']
+ container_obj = kubernetes.ContainerObject(
+ 'cname', ssh_key='fake_sshkey', volumeMount=[volume_mount],
+ args=args)
+ expected = {'args': args,
+ 'command': kubernetes.ContainerObject.COMMAND_DEFAULT,
+ 'image': kubernetes.ContainerObject.IMAGE_DEFAULT,
+ 'name': 'cname-container',
+ 'volumeMounts': container_obj._create_volume_mounts()}
+ self.assertEqual(expected, container_obj.get_container_item())
+
+ def test_get_container_item_with_security_context(self):
+ volume_mount = {'name': 'fake_name',
+ 'mountPath': 'fake_path'}
+ args = ['arg1', 'arg2']
+ container_obj = kubernetes.ContainerObject(
+ 'cname', ssh_key='fake_sshkey', volumeMount=[volume_mount],
+ args=args, securityContext={'key': 'value'})
+ expected = {'args': args,
+ 'command': kubernetes.ContainerObject.COMMAND_DEFAULT,
+ 'image': kubernetes.ContainerObject.IMAGE_DEFAULT,
+ 'name': 'cname-container',
+ 'volumeMounts': container_obj._create_volume_mounts(),
+ 'securityContext': {'key': 'value'}}
+ self.assertEqual(expected, container_obj.get_container_item())
+
+ def test_get_container_item_with_env(self):
+ volume_mount = {'name': 'fake_name',
+ 'mountPath': 'fake_path'}
+ args = ['arg1', 'arg2']
+ container_obj = kubernetes.ContainerObject(
+ 'cname', ssh_key='fake_sshkey', volumeMount=[volume_mount],
+ args=args, env=[{'name': 'fake_var_name',
+ 'value': 'fake_var_value'}])
+ expected = {'args': args,
+ 'command': kubernetes.ContainerObject.COMMAND_DEFAULT,
+ 'image': kubernetes.ContainerObject.IMAGE_DEFAULT,
+ 'name': 'cname-container',
+ 'volumeMounts': container_obj._create_volume_mounts(),
+ 'env': [{'name': 'fake_var_name',
+ 'value': 'fake_var_value'}]}
+ self.assertEqual(expected, container_obj.get_container_item())
+
+ def test_get_container_item_with_ports_multi_parameter(self):
+ volume_mount = {'name': 'fake_name',
+ 'mountPath': 'fake_path'}
+ args = ['arg1', 'arg2']
+ container_obj = kubernetes.ContainerObject(
+ 'cname', ssh_key='fake_sshkey', volumeMount=[volume_mount],
+ args=args, ports=[{'containerPort': 'fake_port_name',
+ 'hostPort': 'fake_host_port',
+ 'name': 'fake_name',
+ 'protocol': 'fake_protocol',
+ 'invalid_varible': 'fakeinvalid_varible',
+ 'hostIP': 'fake_port_number'}])
+ expected = {'args': args,
+ 'command': kubernetes.ContainerObject.COMMAND_DEFAULT,
+ 'image': kubernetes.ContainerObject.IMAGE_DEFAULT,
+ 'name': 'cname-container',
+ 'volumeMounts': container_obj._create_volume_mounts(),
+ 'ports': [{'containerPort': 'fake_port_name',
+ 'hostPort': 'fake_host_port',
+ 'name': 'fake_name',
+ 'protocol': 'fake_protocol',
+ 'hostIP': 'fake_port_number'}]}
+ self.assertEqual(expected, container_obj.get_container_item())
+
+ def test_get_container_item_with_ports_no_container_port(self):
+ with self.assertRaises(exceptions.KubernetesContainerPortNotDefined):
+ volume_mount = {'name': 'fake_name',
+ 'mountPath': 'fake_path'}
+ args = ['arg1', 'arg2']
+ container_obj = kubernetes.ContainerObject(
+ 'cname', ssh_key='fake_sshkey', volumeMount=[volume_mount],
+ args=args, ports=[{'hostPort': 'fake_host_port',
+ 'name': 'fake_name',
+ 'protocol': 'fake_protocol',
+ 'hostIP': 'fake_port_number'}])
+ container_obj.get_container_item()
+
+ def test_get_container_item_with_resources(self):
+ volume_mount = {'name': 'fake_name',
+ 'mountPath': 'fake_path'}
+ args = ['arg1', 'arg2']
+ resources = {'requests': {'key1': 'val1'},
+ 'limits': {'key2': 'val2'},
+ 'other_key': {'key3': 'val3'}}
+ container_obj = kubernetes.ContainerObject(
+ 'cname', ssh_key='fake_sshkey', volumeMount=[volume_mount],
+ args=args, resources=resources)
+ expected = {'args': args,
+ 'command': kubernetes.ContainerObject.COMMAND_DEFAULT,
+ 'image': kubernetes.ContainerObject.IMAGE_DEFAULT,
+ 'name': 'cname-container',
+ 'volumeMounts': container_obj._create_volume_mounts(),
+ 'resources': {'requests': {'key1': 'val1'},
+ 'limits': {'key2': 'val2'}}}
+ self.assertEqual(expected, container_obj.get_container_item())
+
+ def test_get_container_item_image_pull_policy(self):
+ container_obj = kubernetes.ContainerObject(
+ 'cname', ssh_key='fake_sshkey', imagePullPolicy='Always')
+ expected = {'args': [],
+ 'command': kubernetes.ContainerObject.COMMAND_DEFAULT,
+ 'image': kubernetes.ContainerObject.IMAGE_DEFAULT,
+ 'name': 'cname-container',
+ 'volumeMounts': container_obj._create_volume_mounts(),
+ 'imagePullPolicy':'Always'}
+ self.assertEqual(expected, container_obj.get_container_item())
+
+ def test_get_container_item_with_tty_stdin(self):
+ args = ['arg1', 'arg2']
+ container_obj = kubernetes.ContainerObject(
+ 'cname', 'fake_sshkey', args=args, tty=False, stdin=True)
+ expected = {'args': args,
+ 'command': kubernetes.ContainerObject.COMMAND_DEFAULT,
+ 'image': kubernetes.ContainerObject.IMAGE_DEFAULT,
+ 'name': 'cname-container',
+ 'volumeMounts': container_obj._create_volume_mounts(),
+ 'tty': False,
+ 'stdin': True}
+ self.assertEqual(expected, container_obj.get_container_item())
+
+ def test__parse_commands_string(self):
+ container_obj = kubernetes.ContainerObject('cname', 'fake_sshkey')
+ self.assertEqual(['fake command'],
+ container_obj._parse_commands('fake command'))
+
+ def test__parse_commands_list(self):
+ container_obj = kubernetes.ContainerObject('cname', 'fake_sshkey')
+ self.assertEqual(['cmd1', 'cmd2'],
+ container_obj._parse_commands(['cmd1', 'cmd2']))
+
+ def test__parse_commands_exception(self):
+ container_obj = kubernetes.ContainerObject('cname', 'fake_sshkey')
+ with self.assertRaises(exceptions.KubernetesContainerCommandType):
+ container_obj._parse_commands({})
+
+
+class CustomResourceDefinitionObjectTestCase(base.BaseUnitTestCase):
+
+ def test__init(self):
+ template = {
+ 'metadata': {
+ 'name': 'newcrds.ctx_name.com'
+ },
+ 'spec': {
+ 'group': 'ctx_name.com',
+ 'version': 'v2',
+ 'scope': 'scope',
+ 'names': {'plural': 'newcrds',
+ 'singular': 'newcrd',
+ 'kind': 'Newcrd'}
+ }
+ }
+ crd_obj = kubernetes.CustomResourceDefinitionObject(
+ 'ctx_name', name='newcrd', version='v2', scope='scope')
+ self.assertEqual('newcrds.ctx_name.com', crd_obj._name)
+ self.assertEqual(template, crd_obj._template)
+
+ def test__init_missing_parameter(self):
+ with self.assertRaises(exceptions.KubernetesCRDObjectDefinitionError):
+ kubernetes.CustomResourceDefinitionObject('ctx_name',
+ noname='name')
+
+
+class NetworkObjectTestCase(base.BaseUnitTestCase):
+
+ def setUp(self):
+ self.net_obj = kubernetes.NetworkObject(name='fake_name',
+ plugin='fake_plugin',
+ args='fake_args')
+
+ def test__init_missing_parameter(self):
+ with self.assertRaises(
+ exceptions.KubernetesNetworkObjectDefinitionError):
+ kubernetes.NetworkObject('network_name', plugin='plugin')
+ with self.assertRaises(
+ exceptions.KubernetesNetworkObjectDefinitionError):
+ kubernetes.NetworkObject('network_name', args='args')
+
+ @mock.patch.object(kubernetes_utils, 'get_custom_resource_definition')
+ def test_crd(self, mock_get_crd):
+ mock_crd = mock.Mock()
+ mock_get_crd.return_value = mock_crd
+ net_obj = copy.deepcopy(self.net_obj)
+ self.assertEqual(mock_crd, net_obj.crd)
+
+ def test_template(self):
+ net_obj = copy.deepcopy(self.net_obj)
+ expected = {'apiVersion': 'group.com/v2',
+ 'kind': kubernetes.NetworkObject.KIND,
+ 'metadata': {
+ 'name': 'fake_name'},
+ 'plugin': 'fake_plugin',
+ 'args': 'fake_args'}
+ crd = mock.Mock()
+ crd.spec.group = 'group.com'
+ crd.spec.version = 'v2'
+ net_obj._crd = crd
+ self.assertEqual(expected, net_obj.template)
+
+ def test_group(self):
+ net_obj = copy.deepcopy(self.net_obj)
+ net_obj._crd = mock.Mock()
+ net_obj._crd.spec.group = 'fake_group'
+ self.assertEqual('fake_group', net_obj.group)
+
+ def test_version(self):
+ net_obj = copy.deepcopy(self.net_obj)
+ net_obj._crd = mock.Mock()
+ net_obj._crd.spec.version = 'version_4'
+ self.assertEqual('version_4', net_obj.version)
+
+ def test_plural(self):
+ net_obj = copy.deepcopy(self.net_obj)
+ net_obj._crd = mock.Mock()
+ net_obj._crd.spec.names.plural = 'name_ending_in_s'
+ self.assertEqual('name_ending_in_s', net_obj.plural)
+
+ def test_scope(self):
+ net_obj = copy.deepcopy(self.net_obj)
+ net_obj._crd = mock.Mock()
+ net_obj._crd.spec.scope = 'Cluster'
+ self.assertEqual('Cluster', net_obj.scope)
+
+ @mock.patch.object(kubernetes_utils, 'create_network')
+ def test_create(self, mock_create_network):
+ net_obj = copy.deepcopy(self.net_obj)
+ net_obj._scope = 'scope'
+ net_obj._group = 'group'
+ net_obj._version = 'version'
+ net_obj._plural = 'plural'
+ net_obj._template = 'template'
+ net_obj._name = 'fake_name'
+ net_obj.create()
+ mock_create_network.assert_called_once_with(
+ 'scope', 'group', 'version', 'plural', 'template', 'fake_name')
+
+ @mock.patch.object(kubernetes_utils, 'delete_network')
+ def test_delete(self, mock_delete_network):
+ net_obj = copy.deepcopy(self.net_obj)
+ net_obj._scope = 'scope'
+ net_obj._group = 'group'
+ net_obj._version = 'version'
+ net_obj._plural = 'plural'
+ net_obj._name = 'name'
+ net_obj.delete()
+ mock_delete_network.assert_called_once_with(
+ 'scope', 'group', 'version', 'plural', 'name', skip_codes=[404])
+
+
+class ServiceNodePortObjectTestCase(base.BaseUnitTestCase):
+
+ def test__init(self):
+ with mock.patch.object(kubernetes.ServiceNodePortObject, '_add_port') \
+ as mock_add_port:
+ kubernetes.ServiceNodePortObject(
+ 'fake_name', node_ports=[{'port': 80, 'name': 'web'}])
+
+ mock_add_port.assert_has_calls([mock.call(22, 'ssh', protocol='TCP'),
+ mock.call(80, 'web')])
+
+ @mock.patch.object(kubernetes.ServiceNodePortObject, '_add_port')
+ def test__init_missing_mandatory_parameters(self, *args):
+ with self.assertRaises(
+ exceptions.KubernetesServiceObjectDefinitionError):
+ kubernetes.ServiceNodePortObject(
+ 'fake_name', node_ports=[{'port': 80}])
+ with self.assertRaises(
+ exceptions.KubernetesServiceObjectDefinitionError):
+ kubernetes.ServiceNodePortObject(
+ 'fake_name', node_ports=[{'name': 'web'}])
+
+ @mock.patch.object(kubernetes.ServiceNodePortObject, '_add_port')
+ def test__init_missing_bad_name(self, *args):
+ with self.assertRaises(
+ exceptions.KubernetesServiceObjectNameError):
+ kubernetes.ServiceNodePortObject(
+ 'fake_name', node_ports=[{'port': 80, 'name': '-web'}])
+ with self.assertRaises(
+ exceptions.KubernetesServiceObjectNameError):
+ kubernetes.ServiceNodePortObject(
+ 'fake_name', node_ports=[{'port': 80, 'name': 'Web'}])
+ with self.assertRaises(
+ exceptions.KubernetesServiceObjectNameError):
+ kubernetes.ServiceNodePortObject(
+ 'fake_name', node_ports=[{'port': 80, 'name': 'web-'}])
+
+ def test__add_port(self):
+ nodeport_object = kubernetes.ServiceNodePortObject('fake_name')
+ port_ssh = {'name': 'ssh',
+ 'port': 22,
+ 'protocol': 'TCP'}
+ port_definition = {'port': 80,
+ 'protocol': 'TCP',
+ 'name': 'web',
+ 'targetPort': 10080,
+ 'nodePort': 30080}
+ port = copy.deepcopy(port_definition)
+ _port = port.pop('port')
+ name = port.pop('name')
+ nodeport_object._add_port(_port, name, **port)
+ self.assertEqual([port_ssh, port_definition],
+ nodeport_object.template['spec']['ports'])
+
+ @mock.patch.object(kubernetes_utils, 'create_service')
+ def test_create(self, mock_create_service):
+ nodeport_object = kubernetes.ServiceNodePortObject('fake_name')
+ nodeport_object.template = 'fake_template'
+ nodeport_object.create()
+ mock_create_service.assert_called_once_with('fake_template')
+
+ @mock.patch.object(kubernetes_utils, 'delete_service')
+ def test_delete(self, mock_delete_service):
+ nodeport_object = kubernetes.ServiceNodePortObject('fake_name')
+ nodeport_object.delete()
+ mock_delete_service.assert_called_once_with('fake_name-service',
+ skip_codes=[404])
+
+
+class KubernetesTemplate(base.BaseUnitTestCase):
+
+ def test_get_rc_by_name(self):
+ ctx_cfg = {
+ 'servers': {
+ 'host1': {'args': 'some data'}
+ }
+ }
+ k_template = kubernetes.KubernetesTemplate('k8s_name', ctx_cfg)
+ rc = k_template.get_rc_by_name('host1-k8s_name')
+ self.assertTrue(isinstance(rc, kubernetes.ReplicationControllerObject))
+
+ def test_get_rc_by_name_wrong_name(self):
+ ctx_cfg = {
+ 'servers': {
+ 'host1': {'args': 'some data'}
+ }
+ }
+ k_template = kubernetes.KubernetesTemplate('k8s_name', ctx_cfg)
+ self.assertIsNone(k_template.get_rc_by_name('wrong_host_name'))
+
+ def test_get_rc_by_name_no_rcs(self):
+ ctx_cfg = {'servers': {}}
+ k_template = kubernetes.KubernetesTemplate('k8s_name', ctx_cfg)
+ self.assertIsNone(k_template.get_rc_by_name('any_host_name'))
diff --git a/yardstick/tests/unit/service/__init__.py b/yardstick/tests/unit/service/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/service/__init__.py
diff --git a/yardstick/tests/unit/service/test_environment.py b/yardstick/tests/unit/service/test_environment.py
new file mode 100644
index 000000000..779e6eaa0
--- /dev/null
+++ b/yardstick/tests/unit/service/test_environment.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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 mock
+
+from yardstick.common import exceptions
+from yardstick.service import environment
+from yardstick.tests.unit import base as ut_base
+
+
+class EnvironmentTestCase(ut_base.BaseUnitTestCase):
+
+ def test_get_sut_info(self):
+ pod_info = {
+ 'nodes': [
+ {
+ 'name': 'node1',
+ 'host_name': 'host1',
+ 'role': 'Controller',
+ 'ip': '10.1.0.50',
+ 'user': 'root',
+ 'passward': 'root'
+ }
+ ]
+ }
+
+ with mock.patch.object(environment.AnsibleCommon,
+ 'gen_inventory_ini_dict'), \
+ mock.patch.object(environment.AnsibleCommon, 'get_sut_info',
+ return_value={'node1': {}}), \
+ mock.patch.object(environment.Environment, '_format_sut_info'):
+ env = environment.Environment(pod=pod_info)
+ env.get_sut_info()
+
+ def test_get_sut_info_pod_str(self):
+ pod_info = 'nodes'
+
+ env = environment.Environment(pod=pod_info)
+ with self.assertRaises(exceptions.UnsupportedPodFormatError):
+ env.get_sut_info()
diff --git a/yardstick/tests/unit/test_cmd/__init__.py b/yardstick/tests/unit/test_cmd/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/test_cmd/__init__.py
diff --git a/yardstick/tests/unit/test_cmd/commands/__init__.py b/yardstick/tests/unit/test_cmd/commands/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/tests/unit/test_cmd/commands/__init__.py
diff --git a/yardstick/tests/unit/test_cmd/commands/test_env.py b/yardstick/tests/unit/test_cmd/commands/test_env.py
new file mode 100644
index 000000000..5d3520986
--- /dev/null
+++ b/yardstick/tests/unit/test_cmd/commands/test_env.py
@@ -0,0 +1,69 @@
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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 os
+import sys
+
+import mock
+import uuid
+
+from yardstick.cmd.commands import env
+from yardstick.tests.unit import base
+
+
+class EnvCommandTestCase(base.BaseUnitTestCase):
+
+ @mock.patch.object(env.EnvCommand, '_start_async_task')
+ @mock.patch.object(env.EnvCommand, '_check_status')
+ def test_do_influxdb(self, check_status_mock, start_async_task_mock):
+ _env = env.EnvCommand()
+ _env.do_influxdb({})
+ start_async_task_mock.assert_called_once()
+ check_status_mock.assert_called_once()
+
+ @mock.patch.object(env.EnvCommand, '_start_async_task')
+ @mock.patch.object(env.EnvCommand, '_check_status')
+ def test_do_grafana(self, check_status_mock, start_async_task_mock):
+ _env = env.EnvCommand()
+ _env.do_grafana({})
+ start_async_task_mock.assert_called_once()
+ check_status_mock.assert_called_once()
+
+ @mock.patch.object(env.EnvCommand, '_start_async_task')
+ @mock.patch.object(env.EnvCommand, '_check_status')
+ def test_do_prepare(self, check_status_mock, start_async_task_mock):
+ _env = env.EnvCommand()
+ _env.do_prepare({})
+ start_async_task_mock.assert_called_once()
+ check_status_mock.assert_called_once()
+
+ @mock.patch.object(env.HttpClient, 'post')
+ def test_start_async_task(self, post_mock):
+ data = {'action': 'create_grafana'}
+ env.EnvCommand()._start_async_task(data)
+ post_mock.assert_called_once()
+
+ @mock.patch.object(env.HttpClient, 'get')
+ @mock.patch.object(env.EnvCommand, '_print_status')
+ def test_check_status(self, mock_print, mock_get):
+ task_id = str(uuid.uuid4())
+ mock_get.return_value = {'status': 2, 'result': 'error'}
+ self.assertEqual(
+ 2, env.EnvCommand()._check_status(task_id, 'hello world'))
+ self.assertEqual(2, mock_print.call_count)
+
+ @mock.patch.object(sys, 'stdout')
+ @mock.patch.object(os, 'popen')
+ def test_print_status(self, mock_popen, mock_stdout):
+ mock_popen_obj = mock.Mock()
+ mock_popen_obj.read.return_value = ''
+ mock_popen.return_value = mock_popen_obj
+ env.EnvCommand()._print_status('hello', 'word')
+ mock_stdout.write.assert_not_called()
+ mock_stdout.flush.assert_not_called()
diff --git a/tests/unit/cmd/commands/test_testcase.py b/yardstick/tests/unit/test_cmd/commands/test_testcase.py
index 7ef157c19..922167614 100644
--- a/tests/unit/cmd/commands/test_testcase.py
+++ b/yardstick/tests/unit/test_cmd/commands/test_testcase.py
@@ -18,12 +18,4 @@ class TestcaseCommandsUT(unittest.TestCase):
def test_do_list(self, mock_client, mock_print):
mock_client.get.return_value = {'result': []}
TestcaseCommands().do_list({})
- self.assertTrue(mock_print.called)
-
-
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
+ mock_print.assert_called_once()
diff --git a/tests/unit/cmd/test_NSBperf.py b/yardstick/tests/unit/test_cmd/test_NSBperf.py
index e1b4da7fc..5de892212 100644
--- a/tests/unit/cmd/test_NSBperf.py
+++ b/yardstick/tests/unit/test_cmd/test_NSBperf.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright (c) 2016-2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,52 +11,62 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-#
-from __future__ import absolute_import
-import unittest
-import mock
-import subprocess
+import argparse
import os
+import subprocess
+
+import mock
+from six.moves import builtins
+import unittest
-from yardstick.cmd.NSBperf import YardstickNSCli
from yardstick.cmd import NSBperf
@mock.patch('six.moves.input', return_value='0')
class TestHandler(unittest.TestCase):
- def test_handler(self, test):
+
+ def test_handler(self, *args):
subprocess.call = mock.Mock(return_value=0)
self.assertRaises(SystemExit, NSBperf.sigint_handler)
class TestYardstickNSCli(unittest.TestCase):
+
+ def setUp(self):
+ self._mock_print = mock.patch.object(builtins, 'print')
+ self.mock_print = self._mock_print.start()
+ self.addCleanup(self._stop_mocks)
+
+ def _stop_mocks(self):
+ self._mock_print.stop()
+
def test___init__(self):
- yardstick_ns_cli = YardstickNSCli()
+ yardstick_ns_cli = NSBperf.YardstickNSCli()
self.assertIsNotNone(yardstick_ns_cli)
def test_generate_final_report(self):
- yardstick_ns_cli = YardstickNSCli()
+ yardstick_ns_cli = NSBperf.YardstickNSCli()
test_case = "tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml"
if os.path.isfile("/tmp/yardstick.out"):
os.remove('/tmp/yardstick.out')
self.assertIsNone(yardstick_ns_cli.generate_final_report(test_case))
def test_generate_kpi_results(self):
- yardstick_ns_cli = YardstickNSCli()
+ yardstick_ns_cli = NSBperf.YardstickNSCli()
tkey = "cpu"
tgen = {"cpu": {"ipc": 0}}
self.assertIsNone(yardstick_ns_cli.generate_kpi_results(tkey, tgen))
def test_generate_nfvi_results(self):
- yardstick_ns_cli = YardstickNSCli()
+ yardstick_ns_cli = NSBperf.YardstickNSCli()
nfvi = {"collect_stats": {"cpu": {"ipc": 0, "Hz": 2.6}}}
self.assertIsNone(yardstick_ns_cli.generate_nfvi_results(nfvi))
def test_handle_list_options(self):
- yardstick_ns_cli = YardstickNSCli()
+ yardstick_ns_cli = NSBperf.YardstickNSCli()
CLI_PATH = os.path.dirname(os.path.realpath(__file__))
- repo_dir = CLI_PATH + "/../../"
+ repo_dir = CLI_PATH + "/../../../"
test_path = os.path.join(repo_dir, "../samples/vnf_samples/nsut/")
args = {"list_vnfs": True, "list": False}
self.assertRaises(SystemExit, yardstick_ns_cli.handle_list_options,
@@ -69,16 +77,21 @@ class TestYardstickNSCli(unittest.TestCase):
args, test_path)
def test_main(self):
- yardstick_ns_cli = YardstickNSCli()
+ yardstick_ns_cli = NSBperf.YardstickNSCli()
yardstick_ns_cli.parse_arguments = mock.Mock(return_value=0)
yardstick_ns_cli.handle_list_options = mock.Mock(return_value=0)
yardstick_ns_cli.terminate_if_less_options = mock.Mock(return_value=0)
yardstick_ns_cli.run_test = mock.Mock(return_value=0)
self.assertIsNone(yardstick_ns_cli.main())
- def test_parse_arguments(self):
- yardstick_ns_cli = YardstickNSCli()
- self.assertRaises(SystemExit, yardstick_ns_cli.parse_arguments)
+ @mock.patch.object(argparse.ArgumentParser, 'parse_args')
+ def test_parse_arguments(self, mock_parse):
+ class DummyArgs(object):
+ var1 = 'value1'
+
+ mock_parse.return_value = DummyArgs
+ yardstick_ns_cli = NSBperf.YardstickNSCli()
+ self.assertIn('var1', yardstick_ns_cli.parse_arguments())
def test_run_test(self):
cur_dir = os.getcwd()
@@ -86,31 +99,31 @@ class TestYardstickNSCli(unittest.TestCase):
YARDSTICK_REPOS_DIR = os.path.join(CLI_PATH + "/../../")
test_path = os.path.join(YARDSTICK_REPOS_DIR,
"../samples/vnf_samples/nsut/")
- yardstick_ns_cli = YardstickNSCli()
+ yardstick_ns_cli = NSBperf.YardstickNSCli()
subprocess.check_output = mock.Mock(return_value=0)
args = {"vnf": "vpe",
"test": "tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml"}
- self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path))
+ self.assertIsNone(yardstick_ns_cli.run_test(args, test_path))
os.chdir(cur_dir)
args = {"vnf": "vpe1"}
- self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path))
+ self.assertIsNone(yardstick_ns_cli.run_test(args, test_path))
os.chdir(cur_dir)
args = {"vnf": "vpe",
"test": "tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml."}
- self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path))
+ self.assertIsNone(yardstick_ns_cli.run_test(args, test_path))
os.chdir(cur_dir)
args = []
- self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path))
+ self.assertIsNone(yardstick_ns_cli.run_test(args, test_path))
os.chdir(cur_dir)
def test_terminate_if_less_options(self):
- yardstick_ns_cli = YardstickNSCli()
+ yardstick_ns_cli = NSBperf.YardstickNSCli()
args = {"vnf": False}
self.assertRaises(SystemExit,
yardstick_ns_cli.terminate_if_less_options, args)
def test_validate_input(self):
- yardstick_ns_cli = YardstickNSCli()
+ yardstick_ns_cli = NSBperf.YardstickNSCli()
self.assertEqual(1, yardstick_ns_cli.validate_input("", 4))
NSBperf.input = lambda _: 'yes'
self.assertEqual(1, yardstick_ns_cli.validate_input(5, 4))
diff --git a/tests/unit/test_ssh.py b/yardstick/tests/unit/test_ssh.py
index 88699fd85..374fb6644 100644
--- a/tests/unit/test_ssh.py
+++ b/yardstick/tests/unit/test_ssh.py
@@ -13,20 +13,17 @@
# License for the specific language governing permissions and limitations
# under the License.
-# yardstick comment: this file is a modified copy of
-# rally/tests/unit/common/test_sshutils.py
-
-from __future__ import absolute_import
import os
import socket
import unittest
from io import StringIO
+from itertools import count
import mock
from oslo_utils import encodeutils
+from yardstick.common import exceptions
from yardstick import ssh
-from yardstick.ssh import SSHError
from yardstick.ssh import SSH
from yardstick.ssh import AutoConnectSSH
@@ -126,7 +123,7 @@ class SSHTestCase(unittest.TestCase):
dss = mock_paramiko.dsskey.DSSKey
rsa.from_private_key.side_effect = mock_paramiko.SSHException
dss.from_private_key.side_effect = mock_paramiko.SSHException
- self.assertRaises(ssh.SSHError, self.test_client._get_pkey, "key")
+ self.assertRaises(exceptions.SSHError, self.test_client._get_pkey, "key")
@mock.patch("yardstick.ssh.six.moves.StringIO")
@mock.patch("yardstick.ssh.paramiko")
@@ -193,13 +190,13 @@ class SSHTestCase(unittest.TestCase):
test_ssh = ssh.SSH("admin", "example.net", pkey="key")
- with self.assertRaises(SSHError) as raised:
+ with self.assertRaises(exceptions.SSHError) as raised:
test_ssh._get_client()
- self.assertEqual(mock_paramiko.SSHClient.call_count, 1)
- self.assertEqual(mock_paramiko.AutoAddPolicy.call_count, 1)
- self.assertEqual(fake_client.set_missing_host_key_policy.call_count, 1)
- self.assertEqual(fake_client.connect.call_count, 1)
+ mock_paramiko.SSHClient.assert_called_once()
+ mock_paramiko.AutoAddPolicy.assert_called_once()
+ fake_client.set_missing_host_key_policy.assert_called_once()
+ fake_client.connect.assert_called_once()
exc_str = str(raised.exception)
self.assertIn('raised during connect', exc_str)
self.assertIn('MyError', exc_str)
@@ -241,28 +238,47 @@ class SSHTestCase(unittest.TestCase):
self.assertEqual("stdout fake data", stdout)
self.assertEqual("stderr fake data", stderr)
+ @mock.patch("yardstick.ssh.six.moves.StringIO")
+ def test_execute_raise_on_error_passed(self, mock_string_io):
+ mock_string_io.side_effect = stdio = [mock.Mock(), mock.Mock()]
+ stdio[0].read.return_value = "stdout fake data"
+ stdio[1].read.return_value = "stderr fake data"
+ with mock.patch.object(self.test_client, "run", return_value=0) \
+ as mock_run:
+ status, stdout, stderr = self.test_client.execute(
+ "cmd",
+ stdin="fake_stdin",
+ timeout=43,
+ raise_on_error=True)
+ mock_run.assert_called_once_with(
+ "cmd", stdin="fake_stdin", stdout=stdio[0],
+ stderr=stdio[1], timeout=43, raise_on_error=True)
+ self.assertEqual(0, status)
+ self.assertEqual("stdout fake data", stdout)
+ self.assertEqual("stderr fake data", stderr)
+
@mock.patch("yardstick.ssh.time")
def test_wait_timeout(self, mock_time):
mock_time.time.side_effect = [1, 50, 150]
- self.test_client.execute = mock.Mock(side_effect=[ssh.SSHError,
- ssh.SSHError,
+ self.test_client.execute = mock.Mock(side_effect=[exceptions.SSHError,
+ exceptions.SSHError,
0])
- self.assertRaises(ssh.SSHTimeout, self.test_client.wait)
+ self.assertRaises(exceptions.SSHTimeout, self.test_client.wait)
self.assertEqual([mock.call("uname")] * 2,
self.test_client.execute.mock_calls)
@mock.patch("yardstick.ssh.time")
def test_wait(self, mock_time):
mock_time.time.side_effect = [1, 50, 100]
- self.test_client.execute = mock.Mock(side_effect=[ssh.SSHError,
- ssh.SSHError,
+ self.test_client.execute = mock.Mock(side_effect=[exceptions.SSHError,
+ exceptions.SSHError,
0])
self.test_client.wait()
self.assertEqual([mock.call("uname")] * 3,
self.test_client.execute.mock_calls)
@mock.patch("yardstick.ssh.paramiko")
- def test_send_command(self, mock_paramiko):
+ def test_send_command(self, _):
paramiko_sshclient = self.test_client._get_client()
with mock.patch.object(paramiko_sshclient, "exec_command") \
as mock_paramiko_exec_command:
@@ -270,6 +286,48 @@ class SSHTestCase(unittest.TestCase):
mock_paramiko_exec_command.assert_called_once_with('cmd',
get_pty=True)
+ @mock.patch("yardstick.ssh.paramiko")
+ def test_interactive_terminal_open(self, mock_paramiko):
+ fake_client = mock.Mock()
+ fake_session = mock.Mock()
+ fake_session.recv.return_value = ":~# "
+ fake_transport = mock.Mock()
+ fake_transport.open_session.return_value = fake_session
+ fake_client.get_transport.return_value = fake_transport
+ mock_paramiko.SSHClient.return_value = fake_client
+
+ test_ssh = ssh.SSH("admin", "example.net", pkey="key")
+ result = test_ssh.interactive_terminal_open()
+ self.assertEqual(fake_session, result)
+
+ @mock.patch("yardstick.ssh.paramiko")
+ def test_interactive_terminal_exec_command(self, mock_paramiko):
+ fake_client = mock.Mock()
+ fake_session = mock.Mock()
+ fake_session.recv.return_value = "stdout fake data"
+ fake_transport = mock.Mock()
+ fake_transport.open_session.return_value = fake_session
+ fake_client.get_transport.return_value = fake_transport
+ mock_paramiko.SSHClient.return_value = fake_client
+
+ test_ssh = ssh.SSH("admin", "example.net", pkey="key")
+ with mock.patch.object(fake_session, "sendall") \
+ as mock_paramiko_send_command:
+ result = test_ssh.interactive_terminal_exec_command(fake_session,
+ 'cmd', "vat# ")
+ self.assertEqual("stdout fake data", result)
+ mock_paramiko_send_command.assert_called_once_with('cmd\n')
+
+ @mock.patch("yardstick.ssh.paramiko")
+ def test_interactive_terminal_close(self, _):
+ fake_session = mock.Mock()
+ paramiko_sshclient = self.test_client._get_client()
+ paramiko_sshclient.get_transport.open_session.return_value = fake_session
+ with mock.patch.object(fake_session, "close") \
+ as mock_paramiko_terminal_close:
+ self.test_client.interactive_terminal_close(fake_session)
+ mock_paramiko_terminal_close.assert_called_once_with()
+
class SSHRunTestCase(unittest.TestCase):
"""Test SSH.run method in different aspects.
@@ -332,7 +390,7 @@ class SSHRunTestCase(unittest.TestCase):
def test_run_nonzero_status(self, mock_select):
mock_select.select.return_value = ([], [], [])
self.fake_session.recv_exit_status.return_value = 1
- self.assertRaises(ssh.SSHError, self.test_client.run, "cmd")
+ self.assertRaises(exceptions.SSHError, self.test_client.run, "cmd")
self.assertEqual(1, self.test_client.run("cmd", raise_on_error=False))
@mock.patch("yardstick.ssh.select")
@@ -400,7 +458,7 @@ class SSHRunTestCase(unittest.TestCase):
def test_run_select_error(self, mock_select):
self.fake_session.exit_status_ready.return_value = False
mock_select.select.return_value = ([], [], [True])
- self.assertRaises(ssh.SSHError, self.test_client.run, "cmd")
+ self.assertRaises(exceptions.SSHError, self.test_client.run, "cmd")
@mock.patch("yardstick.ssh.time")
@mock.patch("yardstick.ssh.select")
@@ -408,7 +466,7 @@ class SSHRunTestCase(unittest.TestCase):
mock_time.time.side_effect = [1, 3700]
mock_select.select.return_value = ([], [], [])
self.fake_session.exit_status_ready.return_value = False
- self.assertRaises(ssh.SSHTimeout, self.test_client.run, "cmd")
+ self.assertRaises(exceptions.SSHTimeout, self.test_client.run, "cmd")
@mock.patch("yardstick.ssh.open", create=True)
def test__put_file_shell(self, mock_open):
@@ -508,13 +566,45 @@ class SSHRunTestCase(unittest.TestCase):
class TestAutoConnectSSH(unittest.TestCase):
- def test__connect_with_wait(self):
- auto_connect_ssh = AutoConnectSSH('user1', 'host1', wait=True)
- auto_connect_ssh._get_client = mock.Mock()
- auto_connect_ssh.wait = mock_wait = mock.Mock()
+ def test__connect_loop(self):
+ auto_connect_ssh = AutoConnectSSH('user1', 'host1', wait=0)
+ auto_connect_ssh._get_client = mock__get_client = mock.Mock()
auto_connect_ssh._connect()
- self.assertEqual(mock_wait.call_count, 1)
+ mock__get_client.assert_called_once()
+
+ def test___init___negative(self):
+ with self.assertRaises(TypeError):
+ AutoConnectSSH('user1', 'host1', wait=['wait'])
+
+ with self.assertRaises(ValueError):
+ AutoConnectSSH('user1', 'host1', wait='wait')
+
+ @mock.patch('yardstick.ssh.time')
+ def test__connect_loop_ssh_error(self, mock_time):
+ mock_time.time.side_effect = count()
+
+ auto_connect_ssh = AutoConnectSSH('user1', 'host1', wait=10)
+ auto_connect_ssh._get_client = mock__get_client = mock.Mock()
+ mock__get_client.side_effect = exceptions.SSHError
+
+ with self.assertRaises(exceptions.SSHTimeout):
+ auto_connect_ssh._connect()
+
+ self.assertEqual(mock_time.time.call_count, 12)
+
+ def test_get_file_obj(self):
+ auto_connect_ssh = AutoConnectSSH('user1', 'host1', wait=10)
+ auto_connect_ssh._get_client = mock__get_client = mock.Mock()
+ mock_client = mock__get_client()
+ mock_open_sftp = mock_client.open_sftp()
+ mock_sftp = mock.Mock()
+ mock_open_sftp.__enter__ = mock.Mock(return_value=mock_sftp)
+ mock_open_sftp.__exit__ = mock.Mock()
+
+ auto_connect_ssh.get_file_obj('remote/path', mock.Mock())
+
+ mock_sftp.getfo.assert_called_once()
def test__make_dict(self):
auto_connect_ssh = AutoConnectSSH('user1', 'host1')
@@ -527,7 +617,7 @@ class TestAutoConnectSSH(unittest.TestCase):
'key_filename': None,
'password': None,
'name': None,
- 'wait': True,
+ 'wait': AutoConnectSSH.DEFAULT_WAIT_TIMEOUT,
}
result = auto_connect_ssh._make_dict()
self.assertDictEqual(result, expected)
@@ -537,6 +627,13 @@ class TestAutoConnectSSH(unittest.TestCase):
self.assertEqual(auto_connect_ssh.get_class(), AutoConnectSSH)
+ def test_drop_connection(self):
+ auto_connect_ssh = AutoConnectSSH('user1', 'host1')
+ self.assertFalse(auto_connect_ssh._client)
+ auto_connect_ssh._client = True
+ auto_connect_ssh.drop_connection()
+ self.assertFalse(auto_connect_ssh._client)
+
@mock.patch('yardstick.ssh.SCPClient')
def test_put(self, mock_scp_client_type):
auto_connect_ssh = AutoConnectSSH('user1', 'host1')
@@ -544,7 +641,7 @@ class TestAutoConnectSSH(unittest.TestCase):
auto_connect_ssh.put('a', 'z')
with mock_scp_client_type() as mock_scp_client:
- self.assertEqual(mock_scp_client.put.call_count, 1)
+ mock_scp_client.put.assert_called_once()
@mock.patch('yardstick.ssh.SCPClient')
def test_get(self, mock_scp_client_type):
@@ -553,7 +650,7 @@ class TestAutoConnectSSH(unittest.TestCase):
auto_connect_ssh.get('a', 'z')
with mock_scp_client_type() as mock_scp_client:
- self.assertEqual(mock_scp_client.get.call_count, 1)
+ mock_scp_client.get.assert_called_once()
def test_put_file(self):
auto_connect_ssh = AutoConnectSSH('user1', 'host1')
@@ -561,12 +658,27 @@ class TestAutoConnectSSH(unittest.TestCase):
auto_connect_ssh._put_file_sftp = mock_put_sftp = mock.Mock()
auto_connect_ssh.put_file('a', 'b')
- self.assertEqual(mock_put_sftp.call_count, 1)
-
+ mock_put_sftp.assert_called_once()
-def main():
- unittest.main()
-
-
-if __name__ == '__main__':
- main()
+ def test_execute(self):
+ auto_connect_ssh = AutoConnectSSH('user1', 'host1')
+ auto_connect_ssh._client = mock.Mock()
+ auto_connect_ssh.run = mock.Mock(return_value=0)
+ exit_code, _, _ = auto_connect_ssh.execute('')
+ self.assertEqual(exit_code, 0)
+
+ def _mock_run(self, *args, **kwargs):
+ if args[0] == 'ls':
+ if kwargs.get('raise_on_error'):
+ raise exceptions.SSHError(error_msg='Command error')
+ return 1
+ return 0
+
+ def test_execute_command_error(self):
+ auto_connect_ssh = AutoConnectSSH('user1', 'host1')
+ auto_connect_ssh._client = mock.Mock()
+ auto_connect_ssh.run = mock.Mock(side_effect=self._mock_run)
+ self.assertRaises(exceptions.SSHError, auto_connect_ssh.execute, 'ls',
+ raise_on_error=True)
+ exit_code, _, _ = auto_connect_ssh.execute('ls')
+ self.assertNotEqual(exit_code, 0)